Browse Source

修复支付订单bug

kobe6258 5 months ago
parent
commit
62a03c7144

+ 2 - 0
common/exception/exc_enums.go

@@ -82,6 +82,7 @@ const (
 	AccountNotOpen
 	IDExpired
 	SubscribeFailed
+	DuplicateSubscribe
 	GenerateOrderNoFailed
 	IllegalOrderNo
 	GetOrderListFailed
@@ -215,6 +216,7 @@ var ErrorMap = map[int]string{
 	OfficialUserNotFound:               "用户未开户",
 	IllegalAccountStatus:               "非法的开户状态",
 	SubscribeFailed:                    "订阅失败",
+	DuplicateSubscribe:                 "重复订阅",
 	GenerateOrderNoFailed:              "生成订单号",
 	IllegalOrderNo:                     "非法的商品订单号",
 	GetOrderListFailed:                 "获取产品订单列表失败",

+ 3 - 0
controllers/order/subscribe_controller.go

@@ -182,6 +182,9 @@ func (sc *SubscribeController) SubscribeProduct() {
 		//返回订单信息、商品信息
 		orderInfo, err := order.CreateProductOrder(userInfo, subscribeReq.ProductId, subscribeReq.OrderNo)
 		if err != nil {
+			if err.Error() == exception.GetMsg(exception.DuplicateSubscribe) {
+				sc.FailedResult("请勿重复订阅"+err.Error(), result)
+			}
 			sc.FailedResult("创建订单失败", result)
 			return
 		}

+ 2 - 2
service/order/order_service.go

@@ -86,14 +86,14 @@ func CreateProductOrder(templateUser user.User, productId int, orderNo string) (
 	var exisitOrder orderService.ProductOrderDTO
 	exisitOrder, err = orderService.GetUserOrderByProduct(productId, templateUser.Id)
 	if (err != nil && !errors.Is(err, gorm.ErrRecordNotFound)) || exisitOrder.Status == productOrderStatusMap[orderDao.OrderStatusPending] {
-		err = exception.NewWithException(exception.SubscribeFailed, "当前产品有正在进行中的订单,请勿重复下单")
+		err = exception.NewWithException(exception.DuplicateSubscribe, "当前产品有正在进行中的订单,请勿重复下单")
 		return
 	}
 	//是否在有效期的产品
 	var access merchantService.UserAccessDTO
 	access, err = merchantService.GetUserSubscribe(templateUser.Id, productId)
 	if (err != nil && !errors.Is(err, gorm.ErrRecordNotFound)) || access.Status == accessStatusMap[merchantDao.SubscribeValid] {
-		err = exception.NewWithException(exception.SubscribeFailed, "当前产品已订阅,请勿重复下单")
+		err = exception.NewWithException(exception.DuplicateSubscribe, "当前产品已订阅,请勿重复下单")
 		return
 	}
 	orderNo, err = orderService.CreateProductOrder(orderService.ProductOrderDTO{