2025-01-08 17:48:14 +08:00
|
|
|
package pay
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"common/connection"
|
|
|
|
|
"goutil/logUtilPlus"
|
|
|
|
|
"sync"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
// 用户缓存对象
|
|
|
|
|
orderMap = make(map[int64]*Order)
|
|
|
|
|
rwmu sync.RWMutex
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// GetUserByID 根据用户id获取用户信息
|
|
|
|
|
func GetUserByID(orderID int64) (*Order, error) {
|
|
|
|
|
|
|
|
|
|
//判断缓存是否存在
|
|
|
|
|
var order *Order
|
|
|
|
|
|
|
|
|
|
func() *Order {
|
|
|
|
|
rwmu.RLock()
|
|
|
|
|
defer rwmu.RUnlock()
|
|
|
|
|
ok := true
|
|
|
|
|
if order, ok = orderMap[orderID]; ok {
|
|
|
|
|
return order
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
if order != nil {
|
|
|
|
|
return order, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result := connection.GetPayDB().First(&order, orderID)
|
|
|
|
|
if result.Error != nil {
|
|
|
|
|
return nil, result.Error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//添加缓存
|
|
|
|
|
func() {
|
|
|
|
|
rwmu.Lock()
|
|
|
|
|
defer rwmu.Unlock()
|
|
|
|
|
orderMap[order.OrderID] = order
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
return order, nil
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-15 17:36:12 +08:00
|
|
|
// AddOrderCache 添加用户缓存
|
|
|
|
|
func AddOrderCache(order *Order) {
|
2025-01-08 17:48:14 +08:00
|
|
|
rwmu.Lock()
|
|
|
|
|
defer rwmu.Unlock()
|
|
|
|
|
orderMap[order.OrderID] = order
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AddOrder 添加订单
|
|
|
|
|
func AddOrder(order *Order) (int64, error) {
|
|
|
|
|
|
|
|
|
|
//处理一些验证
|
|
|
|
|
|
|
|
|
|
// 写入到数据库
|
|
|
|
|
result := connection.GetPayDB().Create(&order) // 通过数据的指针来创建
|
|
|
|
|
if result.Error != nil {
|
|
|
|
|
logUtilPlus.ErrorLog("添加支付订单失败 错误信息:", result.Error.Error())
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-15 17:36:12 +08:00
|
|
|
//添加缓存
|
|
|
|
|
AddOrderCache(order)
|
|
|
|
|
|
2025-01-08 17:48:14 +08:00
|
|
|
return order.OrderID, nil
|
|
|
|
|
}
|