From 8e0de49db2d5cc347b03e99a243b7e3b380f0020 Mon Sep 17 00:00:00 2001 From: JNG <365252428@qq.com> Date: Mon, 15 Dec 2025 12:00:23 +0800 Subject: [PATCH] Update pay.go --- pkg/service/bundle/pay.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/service/bundle/pay.go b/pkg/service/bundle/pay.go index da73930..ba16b4c 100644 --- a/pkg/service/bundle/pay.go +++ b/pkg/service/bundle/pay.go @@ -2,7 +2,6 @@ package bundle import ( "context" - "dubbo.apache.org/dubbo-go/v3/common/logger" "encoding/json" "errors" "fmt" @@ -10,6 +9,7 @@ import ( "fonchain-fiee/api/bundle" "fonchain-fiee/api/order" "fonchain-fiee/api/payment" + "fonchain-fiee/pkg/cache" "fonchain-fiee/pkg/config" "fonchain-fiee/pkg/model/login" "fonchain-fiee/pkg/service" @@ -19,6 +19,9 @@ import ( "math" "net/http" "strconv" + "time" + + "dubbo.apache.org/dubbo-go/v3/common/logger" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" @@ -141,7 +144,13 @@ func CreateAntomPay(c *gin.Context) { // 获取 用户信息 userInfo := login.GetUserInfoFromC(c) - + // 创建审批 防止重复提交 + lockKey := fmt.Sprintf("create_antom_pay_%v", userInfo.ID) + reply := cache.RedisClient.SetNX(lockKey, 0, 5*time.Second) + if !reply.Val() { + service.Error(c, errors.New(common.CreateBundleFailed)) + return + } // outTradeNo就是orderNo,根据这个去查询子表的source,如果是2就时单独的子套餐,如果是1就是主套餐 orderLimit, err := service.BundleProvider.OrderListByOrderNo(context.Background(), &bundle.OrderInfoByOrderNoRequest{ OrderNo: req.OutTradeNo,