新增会员订单取消订单
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"hepa-calc-api/api/dao"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/config"
|
||||
"hepa-calc-api/extend/rabbitMq"
|
||||
"hepa-calc-api/extend/weChat"
|
||||
"hepa-calc-api/global"
|
||||
"hepa-calc-api/utils"
|
||||
@@ -181,12 +182,41 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
|
||||
}
|
||||
}
|
||||
|
||||
// 增加未支付取消订单延迟队列
|
||||
if payChannel == 1 || payChannel == 2 {
|
||||
delay := 30 * time.Minute
|
||||
|
||||
if config.C.Env == "dev" {
|
||||
delay = 1 * time.Minute
|
||||
}
|
||||
|
||||
data := make(map[string]interface{})
|
||||
data["order_id"] = fmt.Sprintf("%d", orderMember.OrderId)
|
||||
data["order_no"] = orderMember.OrderNo
|
||||
data["user_id"] = fmt.Sprintf("%d", orderMember.UserId)
|
||||
data["order_type"] = 2
|
||||
data["pay_channel"] = orderMember.PayChannel
|
||||
|
||||
p := rabbitMq.PublishS{
|
||||
QueueName: "cancel.unpay.order.delay.queue",
|
||||
ExchangeName: "amqp.delay.direct",
|
||||
RoutingKey: "CancelUnPayOrder",
|
||||
Message: data,
|
||||
Delay: delay,
|
||||
}
|
||||
err := p.PublishWithDelay()
|
||||
if err != nil {
|
||||
utils.LogJsonErr("添加处理取消未支付订单队列失败:", err.Error())
|
||||
return nil, errors.New("订单创建失败")
|
||||
}
|
||||
}
|
||||
|
||||
return orderMember, nil
|
||||
}
|
||||
|
||||
// CancelOrderSingle 取消会员订单
|
||||
// CancelOrderMember 取消会员订单
|
||||
// cancelReason:订单取消原因(1:主动取消 2:后台取消 3:支付超时取消)
|
||||
func (r *OrderMemberService) CancelOrderSingle(tx *gorm.DB, orderMember *model.OrderMember, cancelReason int) (bool, error) {
|
||||
func (r *OrderMemberService) CancelOrderMember(tx *gorm.DB, orderMember *model.OrderMember, cancelReason int) (bool, error) {
|
||||
// 检测多次请求
|
||||
redisKey := "CancelOrderMember" + fmt.Sprintf("%d", orderMember.UserId) + fmt.Sprintf("%d", orderMember.OrderId)
|
||||
res, _ := global.Redis.Get(context.Background(), redisKey).Result()
|
||||
|
||||
@@ -186,7 +186,7 @@ func (r *OrderSingleService) AddOrderSingle(tx *gorm.DB, UserId, QuestionId int6
|
||||
delay := 30 * time.Minute
|
||||
|
||||
if config.C.Env == "dev" {
|
||||
delay = 3 * time.Minute
|
||||
delay = 1 * time.Minute
|
||||
}
|
||||
|
||||
data := make(map[string]interface{})
|
||||
|
||||
Reference in New Issue
Block a user