diff --git a/internal/dao/orderRecordsDao.go b/internal/dao/orderRecordsDao.go index 0b61384..db85ff1 100644 --- a/internal/dao/orderRecordsDao.go +++ b/internal/dao/orderRecordsDao.go @@ -454,7 +454,7 @@ func CreateOrderAddRecord(req *bundle.OrderAddRecord) (res *bundle.CommonRespons }() // 生成订单号和UUID - orderNo := utils.GetOrderNo() + orderNo := utils.GetOrderNo(model.OrderTypeValueAdd) mainOrderUUID := app.ModuleClients.SfNode.Generate().Base64() // 增值订单默认先用后付(规则 2:增值服务订单只有先用后付类型) @@ -1572,7 +1572,7 @@ func UpdateOrderExpiration() (int64, error) { // INNER JOIN bundle_balance bb ON bor.uuid = bb.order_uuid // SET bor.expiration_time = bb.expired_at // WHERE (bor.expiration_time IS NULL OR bor.expiration_time = '') - + result := app.ModuleClients.BundleDB.Exec(` UPDATE bundle_order_records bor INNER JOIN bundle_balance bb ON bor.uuid = bb.order_uuid @@ -1582,11 +1582,11 @@ func UpdateOrderExpiration() (int64, error) { AND bb.deleted_at IS NULL AND bor.deleted_at IS NULL `) - + if result.Error != nil { return 0, fmt.Errorf("更新订单过期时间失败: %v", result.Error) } - + return result.RowsAffected, nil } @@ -1595,12 +1595,12 @@ func UpdateOrderExpiration() (int64, error) { func CompleteExpiredOrders() (int64, error) { // UPDATE bundle_order_records // SET status = 4 - // WHERE status = 2 - // AND expiration_time IS NOT NULL + // WHERE status = 2 + // AND expiration_time IS NOT NULL // AND expiration_time != '' // AND expiration_time < NOW() // AND deleted_at IS NULL - + result := app.ModuleClients.BundleDB.Exec(` UPDATE bundle_order_records SET status = 4 @@ -1610,10 +1610,10 @@ func CompleteExpiredOrders() (int64, error) { AND STR_TO_DATE(expiration_time, '%Y-%m-%d %H:%i:%s') < NOW() AND deleted_at IS NULL `) - + if result.Error != nil { return 0, fmt.Errorf("完成已过期订单失败: %v", result.Error) } - + return result.RowsAffected, nil } diff --git a/internal/logic/orderRecordsLogic.go b/internal/logic/orderRecordsLogic.go index 6d3a216..67b46b6 100644 --- a/internal/logic/orderRecordsLogic.go +++ b/internal/logic/orderRecordsLogic.go @@ -39,7 +39,7 @@ func CreateOrderRecord(req *bundle.OrderCreateRecord) (res *bundle.CommonRespons return nil, errors.New("生成uuid失败") } orderUUID := uuidV4.String() - orderNo := utils.GetOrderNo() + orderNo := utils.GetOrderNo(req.OrderType) if req.OrderNo != "" { orderNo = req.OrderNo } diff --git a/pkg/utils/orderNo.go b/pkg/utils/orderNo.go index b0aa064..45763b8 100644 --- a/pkg/utils/orderNo.go +++ b/pkg/utils/orderNo.go @@ -2,14 +2,20 @@ package utils import ( "math/rand" + "micro-bundle/internal/model" "time" ) const source = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" // 生成订单号 模版 BD20250220104501+6位随机数 避免 订单号重复 -func GetOrderNo() string { - return "BD" + GetRandomString(20) +func GetOrderNo(orderType int32) string { + if orderType == model.OrderTypeBundle { + return "BD" + GetRandomString(20) + } else if orderType == model.OrderTypeValueAdd { + return "BNPL" + GetRandomString(20) + } + return "" } // 生成随机字符串