From 64178e8bdfaa30079d6fa1af357af8ed1eae8d78 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Thu, 28 Jul 2022 17:37:25 +0800 Subject: [PATCH] pay log --- business/jxstore/cms/order.go | 39 +++++++++++++++------------------ controllers/order_controller.go | 2 +- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 1fcfef313..04c9edd9e 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -108,9 +108,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app }() // 给用户创建一个银行卡账户 - globals.SugarLogger.Debugf("createbill begin……") userBill, err := dao.GetUserBill(db, order.UserID, "") - globals.SugarLogger.Debug("user_bill.billID……", userBill.BillID) if userBill == nil { err = financial.AddUserBill(txDB, jxutils.GenBillID(), order.UserID) } @@ -127,7 +125,7 @@ var ( ) //余额支付 微信补差值 -func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int, vendorPayType, appID string) (errMsg string, err error) { +func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int, vendorPayType, appID string) (*financial.WxPayParam, string, error) { var ( db = dao.GetDB() //wxPayParam *financial.WxPayParam @@ -136,14 +134,14 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int globals.SugarLogger.Debug("begin get order+info") orderInfo, err := dao.GetOrderByID(db, orderID) if err != nil { - return "获取订单信息失败", err + return nil, "获取订单信息失败", err } globals.SugarLogger.Debug("orderInfo.OrderType===============", orderInfo.OrderType) //获取用户 会员账户信息 globals.SugarLogger.Debug("开始获取会员信息") userBill, err := dao.GetUserBill(db, orderInfo.UserID, "") if err != nil { - return "获取用户会员账户余额失败", err + return nil, "获取用户会员账户余额失败", err } txDB, _ := dao.Begin(db) defer func() { @@ -161,7 +159,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int if userBill.AccountBalance > orderInfo.PayPrice && userBill.AccountBalance-orderInfo.PayPrice > 0 { if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, orderInfo.PayPrice, 0); err != nil { dao.Rollback(db, txDB) - return "使用余额支付失败:", err + return nil, "使用余额支付失败:", err } orderInfo.Status = AlreadyPay } @@ -172,32 +170,31 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int globals.SugarLogger.Debug("进入混合支付部分") orderInfo.PayPrice = restPrice globals.SugarLogger.Debug("orderInfo.PayPrice=================", orderInfo.PayPrice) - if _, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID); err != nil { - //dao.Rollback(db, txDB) - globals.SugarLogger.Debug("err=================", err) - return "微信支付失败:", err - } - - //支付成功后修改余额为0 + //修改余额为0 if err := dao.UpdateUserBill(orderInfo.UserID, 0); err != nil { - globals.SugarLogger.Debug("支付后修改余额失败") + globals.SugarLogger.Debug("修改余额失败") dao.Rollback(db, txDB) - return "余额修改失败:", err + return nil, "余额修改失败:", err } - //增加一条用户账单 + //增加用户账单 globals.SugarLogger.Debug("开始创建用户账单") globals.SugarLogger.Debug("微信需支付", orderInfo.PayPrice) if err = financial.AddBillExpend(txDB, userBill.BillID, model.BillTypePayByAccountBalance, orderInfo.PayPrice, 0); err != nil { globals.SugarLogger.Debug("创建账单失败") dao.Rollback(db, txDB) - return "创建账单失败", err + return nil, "创建账单失败", err } - return "混合支付成功", err + WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID) + if err != nil { + dao.Rollback(db, txDB) + globals.SugarLogger.Debug("err=================", err) + return nil, "微信支付失败:", err + } + dao.Commit(db, txDB) + return WxPayParam, "", err } - - dao.Commit(db, txDB) } - return "", err + return nil, "", err } func Cash(ctx *jxcontext.Context, orderID string, payType int, vendorPayType string) (errCode string, err error) { diff --git a/controllers/order_controller.go b/controllers/order_controller.go index 1687f94c0..509c55ae3 100644 --- a/controllers/order_controller.go +++ b/controllers/order_controller.go @@ -44,7 +44,7 @@ func (c *OrderController) Pay() { // @router /PayByBalance [post] func (c *OrderController) PayByBalance() { c.callPayByBalance(func(params *tOrderPayByBalanceParams) (interface{}, string, error) { - retVal, err := cms.PayByBalance(params.Ctx, params.OrderID, params.RestPrice, params.PayType, params.VendorPayType, params.AppId) + retVal, _, err := cms.PayByBalance(params.Ctx, params.OrderID, params.RestPrice, params.PayType, params.VendorPayType, params.AppId) return retVal, "", err }) }