新增会员订单取消订单
This commit is contained in:
parent
98ccf380af
commit
0cb771ecbb
@ -60,7 +60,7 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CouponExpire:", r)
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", r)
|
||||
_ = msg.Reject(false)
|
||||
}
|
||||
}()
|
||||
@ -75,7 +75,7 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
|
||||
orderSingle, err := orderSingleDao.GetOrderSingle(maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CouponExpire:", "订单异常")
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", "订单异常")
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
@ -84,14 +84,46 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
|
||||
res, err := orderSingleService.CancelOrderSingle(tx, orderSingle, 3)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CouponExpire:", err)
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
|
||||
if res == false {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CouponExpire:", "取消失败")
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败")
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 会员订单
|
||||
if data.OrderType == 1 {
|
||||
// 获取订单数据
|
||||
orderMemberDao := dao.OrderMemberDao{}
|
||||
maps := make(map[string]interface{})
|
||||
maps["user_id"] = userId
|
||||
maps["order_id"] = orderId
|
||||
orderMember, err := orderMemberDao.GetOrderMember(maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", "订单异常")
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
|
||||
orderMemberService := service.OrderMemberService{}
|
||||
res, err := orderMemberService.CancelOrderMember(tx, orderMember, 3)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
|
||||
if res == false {
|
||||
tx.Rollback()
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败")
|
||||
_ = msg.Reject(true)
|
||||
return
|
||||
}
|
||||
@ -101,13 +133,13 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
|
||||
if data.PayChannel == 1 {
|
||||
// h5支付
|
||||
err = weChat.CloseJsapiOrder(data.OrderNo)
|
||||
utils.LogJsonErr("consumer.CouponExpire:", err)
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
|
||||
}
|
||||
|
||||
if data.PayChannel == 2 {
|
||||
// app支付
|
||||
err = weChat.CloseAppOrder(data.OrderNo)
|
||||
utils.LogJsonErr("consumer.CouponExpire:", err)
|
||||
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
|
||||
}
|
||||
|
||||
tx.Commit()
|
||||
|
||||
@ -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{})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user