修正取消订单时重复消费问题

This commit is contained in:
wucongxing8150 2024-08-23 16:20:20 +08:00
parent c3d4333220
commit c324ecf054
3 changed files with 11 additions and 31 deletions

View File

@ -82,14 +82,7 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
orderSingleService := service.OrderSingleService{} orderSingleService := service.OrderSingleService{}
res, err := orderSingleService.CancelOrderSingle(tx, orderSingle, 3) res, err := orderSingleService.CancelOrderSingle(tx, orderSingle, 3)
if err != nil { if err != nil && res == false {
tx.Rollback()
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
_ = msg.Reject(true)
return
}
if res == false {
tx.Rollback() tx.Rollback()
utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败") utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败")
_ = msg.Reject(true) _ = msg.Reject(true)
@ -114,14 +107,7 @@ func CancelUnPayOrder(msg amqp091.Delivery) {
orderMemberService := service.OrderMemberService{} orderMemberService := service.OrderMemberService{}
res, err := orderMemberService.CancelOrderMember(tx, orderMember, 3) res, err := orderMemberService.CancelOrderMember(tx, orderMember, 3)
if err != nil { if err != nil && res == false {
tx.Rollback()
utils.LogJsonErr("consumer.CancelUnPayOrder:", err)
_ = msg.Reject(true)
return
}
if res == false {
tx.Rollback() tx.Rollback()
utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败") utils.LogJsonErr("consumer.CancelUnPayOrder:", "取消失败")
_ = msg.Reject(true) _ = msg.Reject(true)

View File

@ -167,13 +167,7 @@ func (b *OrderSingle) PutCancelOrderSingle(c *gin.Context) {
// 取消单项订单 // 取消单项订单
orderSingleService := service.OrderSingleService{} orderSingleService := service.OrderSingleService{}
res, err := orderSingleService.CancelOrderSingle(tx, orderSingle, 1) res, err := orderSingleService.CancelOrderSingle(tx, orderSingle, 1)
if err != nil { if err != nil && res == false {
tx.Rollback()
responses.FailWithMessage(err.Error(), c)
return
}
if res == false {
tx.Rollback() tx.Rollback()
responses.FailWithMessage("取消订单失败", c) responses.FailWithMessage("取消订单失败", c)
return return

View File

@ -236,38 +236,38 @@ func (r *OrderMemberService) CancelOrderMember(tx *gorm.DB, orderMember *model.O
// 订单状态1:待支付 2:已完成 3:已取消) // 订单状态1:待支付 2:已完成 3:已取消)
if orderMember.OrderStatus == 2 { if orderMember.OrderStatus == 2 {
return false, errors.New("订单已完成,无法取消") return true, errors.New("订单已完成,无法取消")
} }
if orderMember.OrderStatus == 3 { if orderMember.OrderStatus == 3 {
return false, errors.New("订单已取消,请勿重复操作") return true, errors.New("订单已取消,请勿重复操作")
} }
// 取消状态0:否 1:是) // 取消状态0:否 1:是)
if orderMember.CancelStatus == 1 { if orderMember.CancelStatus == 1 {
return false, errors.New("订单已取消") return true, errors.New("订单已取消")
} }
// 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
if orderMember.PayStatus == 2 { if orderMember.PayStatus == 2 {
return false, errors.New("订单已支付,无法取消") return true, errors.New("订单已支付,无法取消")
} }
// 订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款) // 订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款)
if orderMember.RefundStatus == 1 { if orderMember.RefundStatus == 1 {
return false, errors.New("订单已申请退款") return true, errors.New("订单已申请退款")
} }
if orderMember.RefundStatus == 2 { if orderMember.RefundStatus == 2 {
return false, errors.New("订单退款中") return true, errors.New("订单退款中")
} }
if orderMember.RefundStatus == 3 { if orderMember.RefundStatus == 3 {
return false, errors.New("订单已退款成功") return true, errors.New("订单已退款成功")
} }
if orderMember.RefundStatus == 6 { if orderMember.RefundStatus == 6 {
return false, errors.New("订单退款异常") return true, errors.New("订单退款异常")
} }
// 修改订单为取消 // 修改订单为取消