From 99c0f62d55bc37b29f46dbba501233bb7f063194 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Thu, 5 Sep 2024 17:41:50 +0800 Subject: [PATCH] 5555 --- api/controller/CallBack.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/api/controller/CallBack.go b/api/controller/CallBack.go index ce0cb3f..23b5d63 100644 --- a/api/controller/CallBack.go +++ b/api/controller/CallBack.go @@ -112,7 +112,7 @@ func (r *CallBack) WxPaySingle(c *gin.Context) { res, err := questionService.AddQuestionPayCount(tx, orderSingle.QuestionId) if err != nil || res == false { tx.Rollback() - responses.FailWithMessage("内部错误", c) + c.JSON(http.StatusBadRequest, gin.H{"code": "ERROR", "message": "内部错误"}) return } @@ -121,9 +121,33 @@ func (r *CallBack) WxPaySingle(c *gin.Context) { res, err = userService.AddUserSingleSubmitCount(tx, orderSingle.UserId) if err != nil || res == false { tx.Rollback() - responses.FailWithMessage("内部错误", c) + c.JSON(http.StatusBadRequest, gin.H{"code": "ERROR", "message": "内部错误"}) return } + + // 取消同题目未支付订单 + maps = make(map[string]interface{}) + maps["user_id"] = orderSingle.UserId + maps["question_id"] = orderSingle.QuestionId + orderSingles, err := orderSingleDao.GetOrderSingleList(maps) + if err != nil { + tx.Rollback() + c.JSON(http.StatusBadRequest, gin.H{"code": "ERROR", "message": "内部错误"}) + return + } + + orderSingleService := service.OrderSingleService{} + for _, single := range orderSingles { + if single.OrderId == orderSingle.OrderId { + continue + } + + // 取消单项订单 + res, err = orderSingleService.CancelOrderSingle(tx, orderSingle, 3) + if err != nil && res == false { + utils.LogJsonErr("微信支付回调-单项", "取消单项订单失败") + } + } } tx.Commit()