This commit is contained in:
richboo111
2022-08-04 09:42:51 +08:00
parent 5eff50358a
commit 97baf97d97
3 changed files with 40 additions and 27 deletions

View File

@@ -3,6 +3,7 @@ package cms
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxstore/event"
"git.rosy.net.cn/jx-callback/business/q_bida"
"github.com/astaxie/beego/client/orm"
"strings"
"time"
@@ -117,7 +118,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app
globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayMethod)
globals.SugarLogger.Debug("检验初始数据情况", order.PayPrice)
//微信支付实际金额更新到数据库
if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderInfo.Status, orderID); err != nil {
if _, err := dao.SetOrderStatus(txDB, temp_PayPrice, temp_PayMethod, orderInfo.Status, orderID); err != nil {
return nil, err
}
//if _, err := dao.UpdateEntityTx(txDB, order); err != nil {
@@ -186,30 +187,52 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int,
// (3)使用余额且 余额大于支付金额
if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && isChoose == Choose {
globals.SugarLogger.Debug("进入余额支付部分")
//txDB, _ := dao.Begin(db)
//defer func() {
// if r := recover(); r != nil {
// panic(r)
// }
// dao.Commit(db, txDB)
//}()
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
panic(r)
}
}()
//增加账单 余额减去相应金额
flag := -1
globals.SugarLogger.Debug("增加账单 余额减去相应金额")
money := userBill.AccountBalance - orderInfo.PayPrice
if err = dao.UpdateUserBill(userBill.UserID, money); err != nil {
return nil, "余额支付失败", err
} else {
flag = 1 //支付成功
}
//更新订单状态
globals.SugarLogger.Debug("更新订单状态")
temp_method := 1
temp_status := 110
if _, err := dao.SetOrderStatus(orderInfo.PayPrice, temp_method, temp_status, orderID); err != nil {
if _, err := dao.SetOrderStatus(txDB, orderInfo.PayPrice, temp_method, temp_status, orderID); err != nil {
dao.Rollback(db, txDB)
return nil, "更新order状态失败", err
}
//todo 后续需增加其他订单类型
//(1)更新快递 订单状态
temp_vendor_status := 4
if _, err := dao.SetUserVendorOrderStatus(orderInfo.OrderID, temp_vendor_status); err != nil {
if _, err := dao.SetUserVendorOrderStatus(txDB, orderInfo.OrderID, temp_vendor_status); err != nil {
dao.Rollback(db, txDB)
return nil, "更新user_vendor_order状态失败", err
}
//再次从数据库获取order、userOrder
orderNew, err := dao.GetOrderByID(db, orderID)
if err != nil {
return nil, "获取orderNew失败", err
}
userOrder, err := dao.GetUserVendorOrder(db, orderNew.UserID, orderNew.OrderID)
if err != nil {
return nil, "获取userOrder失败", err
}
//快递单 同步到qbd
if orderInfo.Status == 110 && flag == 1 {
if err := q_bida.CreateOrder2QBiDa(userOrder, orderInfo.OrderID); err != nil {
return nil, "", err
}
}
dao.Commit(db, txDB)
}
if isChoose == Choose {
//1用户不使用余额或者余额=0 即直接微信支付