diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index d28719ae3..8bee2eef2 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -6,7 +6,6 @@ import ( bida "git.rosy.net.cn/baseapi/platformapi/q_bida" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/jxstore/financial" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" @@ -251,13 +250,27 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return FailCode, err } + userBill, err := dao.GetUserBill(db, orderWay.UserID, "") + if err != nil { + return FailCode, err + } if orderWay.Status == 110 { if orderWay.PayMethod == 1 { // 余额支付 - if err := financial.AddBillIncome(txDB, 0, model.BillTypePayByMixPay1, orderWay.PayPrice, 0); err != nil { + txDB, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + panic(r) + } + dao.Commit(db, txDB) + }() + userBill.AccountBalance += orderWay.PayPrice + if _, err := dao.UpdateEntityTx(txDB, userBill, "AccountBalance"); err != nil { + dao.Rollback(db, txDB) return FailCode, err } order.OrderStatus = model.OrderStatusCancel if _, err := dao.UpdateEntityTx(txDB, order, "OrderStatus"); err != nil { + dao.Rollback(db, txDB) return FailCode, err } // 支付方式为余额支付,则需要修改order/userVendorOrder,修改订单状态,给用户账户价钱,生成一个价钱数据 @@ -273,9 +286,11 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if orderWay.PayMethod == 5 { //混合支付 //余额增加相应金额 mixPayInfo, err := dao.GetMixPayDetail(orderWay.OrderID) - if err := financial.AddBillIncome(txDB, 0, model.BillTypePayByMixPay1, mixPayInfo[0].BalancePrice, 0); err != nil { + userBill.AccountBalance += mixPayInfo[0].BalancePrice + if _, err := dao.UpdateEntityTx(txDB, userBill, "AccountBalance"); err != nil { return FailCode, err } + //更新mixPay 状态 mixPayInfo[0].Status = model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntityTx(txDB, &mixPayInfo, "Status"); err != nil {