From 07ae683b226cbfd44d3971be820b6d3d9ee097ae Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 29 Jul 2022 18:16:41 +0800 Subject: [PATCH 01/61] mixpay --- business/jxstore/financial/bill.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/financial/bill.go b/business/jxstore/financial/bill.go index 6da16f798..30ecd1cbe 100644 --- a/business/jxstore/financial/bill.go +++ b/business/jxstore/financial/bill.go @@ -17,6 +17,7 @@ func AddMixPay(txDB orm.TxOrmer, orderID string, balancePrice, totalPrice, metho BalancePrice: balancePrice, TotalPrice: totalPrice, Method: method, + WxPrice: totalPrice - balancePrice, } dao.WrapAddIDCULEntity(mixPayInfo, jxcontext.AdminCtx.GetUserName()) return dao.CreateEntityTx(txDB, mixPayInfo) From 577823a8049a726ee5a0cf9a2f219c9a21b198af Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 14:17:11 +0800 Subject: [PATCH 02/61] add pay --- business/jxstore/cms/order.go | 98 +++++++++++++++---------- business/jxstore/financial/bill.go | 9 +-- business/jxstore/financial/financial.go | 8 ++ business/model/bill.go | 3 +- business/model/dao/dao_bill.go | 24 ++++++ business/q_bida/q_bida_server.go | 49 ++++++++++--- controllers/order_controller.go | 7 +- controllers/q_bida.go | 2 +- 8 files changed, 141 insertions(+), 59 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 7ffe7ff8d..737734db0 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -3,7 +3,6 @@ package cms import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxstore/event" - "github.com/astaxie/beego/client/orm" "strings" "time" @@ -81,7 +80,7 @@ func CreateOrder(ctx *jxcontext.Context, type1, orderType int, way string, price return order.OrderID, errCode, err } -func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, appId string) (result *financial.WxPayParam, err error) { +func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, appId string, payPrice int) (result *financial.WxPayParam, err error) { var ( db = dao.GetDB() order = &model.Order{ @@ -93,6 +92,17 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app VendorPayType: vendorPayType, } ) + //支付金额<原金额 + if payPrice < order.PayPrice { + order = &model.Order{ + PayPrice: payPrice, + PayMethod: 5, //混合支付 + } + } else { + order = &model.Order{ + PayMethod: 2, //微信支付 + } + } globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") if order.ID == 0 { @@ -124,20 +134,21 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } var ( - NotPay = 2 //订单待支付 - AlreadyPay = 1 //订单已支付 + NotPay = 2 //订单待支付 + AlreadyPay = 1 //订单已支付 + Choose = 1 //选中余额支付 + NotChoose = -1 //未选中余额支付 ) //余额支付 微信补差值 -func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int, vendorPayType, appID string) (*financial.WxPayParam, string, error) { +func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, vendorPayType, appID string) (*financial.WxPayParam, string, error) { var ( - db = dao.GetDB() - txDB orm.TxOrmer + db = dao.GetDB() + //txDB orm.TxOrmer ) //获取订单信息 globals.SugarLogger.Debug("begin get order_info") orderInfo, err := dao.GetOrderByID(db, orderID) - //tempPrice := orderInfo.PayPrice if err != nil { return nil, "获取订单信息失败", err } @@ -152,46 +163,57 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, restPrice, payType int globals.SugarLogger.Debug("进入账单未支付") globals.SugarLogger.Debug("user_bill.balance==================", userBill.AccountBalance) // (3)使用余额且 余额大于支付金额 - if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && restPrice == 0 { - //余额>0 + if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && isChoose == NotChoose { globals.SugarLogger.Debug("进入余额支付部分") - if userBill.AccountBalance > orderInfo.PayPrice && userBill.AccountBalance-orderInfo.PayPrice > 0 { - if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, orderInfo.PayPrice, 0); err != nil { - return nil, "使用余额支付失败:", err + var order = &model.Order{ + PayPrice: orderInfo.PayPrice, + PayMethod: 1, //余额支付 + } + txDB, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + panic(r) } - //修改订单状态 - orderInfo.Status = model.OrderStatusSuccessPay - orderInfo.PayMethod = 1 //1-余额支付,2-微信支付 + dao.Commit(db, txDB) + }() + if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, order.PayPrice, 0); err != nil { + dao.Rollback(db, txDB) + return nil, "使用余额支付失败:", err } + //更新订单状态 + order = &model.Order{ + Status: 110, //支付成功 + } + if _, err := dao.UpdateEntityTx(txDB, order, "Status"); err != nil { + dao.Rollback(db, txDB) + return nil, "", err + } + dao.Commit(db, txDB) } - if restPrice > 0 { + if isChoose == Choose { //(1)用户不使用余额或者余额=0 即直接微信支付 - //if orderInfo.PayPrice == restPrice || userBill.AccountBalance == 0 { - // WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID) - // //orderInfo.PayMethod = 2 //微信支付方式 - // if err != nil { - // globals.SugarLogger.Debug("err=================", err) - // return nil, "微信支付失败:", err - // } - // return WxPayParam, "", err - //} - //(2)用户使用余额,剩余微信支付 - if userBill.AccountBalance+restPrice != orderInfo.PayPrice { - return nil, "支付金额错误,请重新计算", err + if userBill.AccountBalance == 0 { + WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID, orderInfo.PayPrice) + if err != nil { + globals.SugarLogger.Debug("err=================", err) + return nil, "微信支付失败:", err + } + return WxPayParam, "", err } + //(2)用户使用余额,剩余微信支付 + totalPrice := orderInfo.PayPrice //订单原价 if userBill.AccountBalance > 0 && userBill.AccountBalance < orderInfo.PayPrice { globals.SugarLogger.Debug("进入混合支付部分") - orderInfo.PayMethod = 5 //混合支付 - orderInfo.PayPrice = restPrice + //orderInfo.PayMethod = 5 //混合支付状态 + needPay := totalPrice - userBill.AccountBalance //需支付金额 globals.SugarLogger.Debug("orderInfo.PayPrice=================", orderInfo.PayPrice) + WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID, needPay) + if err != nil { + globals.SugarLogger.Debug("err=================", err) + return nil, "微信支付失败:", err + } + return WxPayParam, "", err } - WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID) - if err != nil { - globals.SugarLogger.Debug("err=================", err) - return nil, "微信支付失败:", err - } - //orderInfo.PayPrice = tempPrice //存储原价 - return WxPayParam, "", err } } return nil, "", err diff --git a/business/jxstore/financial/bill.go b/business/jxstore/financial/bill.go index 30ecd1cbe..396fda19e 100644 --- a/business/jxstore/financial/bill.go +++ b/business/jxstore/financial/bill.go @@ -11,12 +11,12 @@ import ( "time" ) -func AddMixPay(txDB orm.TxOrmer, orderID string, balancePrice, totalPrice, method int) error { +func AddMixPay(txDB orm.TxOrmer, orderID string, balancePrice, totalPrice, status int) error { mixPayInfo := &model.MixPay{ OrderID: orderID, BalancePrice: balancePrice, TotalPrice: totalPrice, - Method: method, + Status: status, WxPrice: totalPrice - balancePrice, } dao.WrapAddIDCULEntity(mixPayInfo, jxcontext.AdminCtx.GetUserName()) @@ -62,11 +62,6 @@ func AddUserBillDb(db *dao.DaoDB, billID int64, userID string) (err error) { return dao.CreateEntity(db, userBillInsert) } -// -//func AddExpendMixPay(txDB orm.TxOrmer, userBill *model.UserBill, billType, price, jobID int) (err error) { -//err=AddMixPay() -//} - func GetUserBillDetail(ctx *jxcontext.Context, userID, fromTime, toTime string, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { return dao.GetUserBillDetail(dao.GetDB(), userID, utils.Str2Time(fromTime), utils.Str2Time(toTime), pageSize, offset) } diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index b5709f61a..49e4ef85b 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -311,6 +311,14 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { return err } } + if order.PayMethod == 5 || order.PayMethod == 2 { + //更新order状态 + order.Status = 110 //支付成功 + if _, err := dao.UpdateEntityTx(txdb, &order, "Status"); err != nil { + dao.Rollback(db, txdb) + return err + } + } dao.Commit(db, txdb) if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { switch order.OrderType { diff --git a/business/model/bill.go b/business/model/bill.go index 07500c322..d771f2aff 100644 --- a/business/model/bill.go +++ b/business/model/bill.go @@ -16,6 +16,7 @@ const ( BillTypePayByAccountBalance = 25 //余额支付 BillTypePayByMixPay1 = 26 //混合支付中的 余额部分状态码 BillTypePayByMixPay2 = 27 //混合支付中的 微信部分状态码 + BillMixPayRefund1 = 28 //混合支付 余额部分退款 BillTypeQuitGroup = 30 //退群 BillTypeJdWaybillOverWeight = 40 //京东物流超重扣款 @@ -51,7 +52,7 @@ type MixPay struct { BalancePrice int `orm:"column(balance_price)" json:"balance_price"` //余额支付部分 TotalPrice int `orm:"column(total_price)" json:"total_price"` //订单总额 WxPrice int `orm:"column(wx_price)" json:"wx_price"` //微信支付部分 - Method int `orm:"column(method)" json:"method"` //支付方式 1-余额支付,2-微信支付,5-余额+微信混合支付 + Status int `orm:"column(status)" json:"status"` //订单状态 退款/正常 } func (v *MixPay) TableIndex() [][]string { diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index c7f980e35..8df438809 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -135,3 +135,27 @@ func UpdateUserBill(userId string, money int) error { _, err := ExecuteSQL(GetDB(), `UPDATE user_bill SET account_balance = ? WHERE user_id = ? `, []interface{}{money, userId}...) return err } + +type MixPayDetail struct { + CreatedAt time.Time `json:"created_at"` + LastOperator string `json:"lastOperator"` + OrderID string `json:"order_id"` + BalancePrice int `json:"balance_price"` + TotalPrice int `json:"total_price"` + WxPrice int `json:"wx_price"` + Status int `json:"status"` +} + +//获取混合支付 余额部分信息 +func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { + sql := `SELECT * FROM mix_pay WHERE deleted_at = ? ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + if orderID != "" { + sql += "AND order_id = ?" + sqlParams = append(sqlParams, orderID) + } + err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) + return mixPayDetail, err +} diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 2f5334f70..d28719ae3 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -6,12 +6,14 @@ 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" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" + "github.com/astaxie/beego/client/orm" "time" ) @@ -203,6 +205,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd SuccessCode = 0 tmp_orderNo = param.OrderNo db = dao.GetDB() + txDB orm.TxOrmer ) // 查询订单 order, err := dao.GetUserVendorOrder(db, userId, param.OrderNo) @@ -248,17 +251,45 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return FailCode, err } - if orderWay.PayMethod == 1 && orderWay.Status == 110 { // 余额支付且已支付 - // 支付方式为余额支付,则需要修改order/userVendorOrder,修改订单状态,给用户账户价钱,生成一个价钱数据 - } else if orderWay.PayMethod == 2 && orderWay.Status == 110 { // 微信支付且已支付 - // 微信支付原路退款,发起退款申请 - res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") - if len(res.VendorRefundID) > 0 { - return SuccessCode, err - } else { - return FailCode, err + if orderWay.Status == 110 { + if orderWay.PayMethod == 1 { // 余额支付 + if err := financial.AddBillIncome(txDB, 0, model.BillTypePayByMixPay1, orderWay.PayPrice, 0); err != nil { + return FailCode, err + } + order.OrderStatus = model.OrderStatusCancel + if _, err := dao.UpdateEntityTx(txDB, order, "OrderStatus"); err != nil { + return FailCode, err + } + // 支付方式为余额支付,则需要修改order/userVendorOrder,修改订单状态,给用户账户价钱,生成一个价钱数据 + } else if orderWay.PayMethod == 2 { // 微信支付 + // 微信支付原路退款,发起退款申请 + res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") + if len(res.VendorRefundID) > 0 { + return SuccessCode, err + } else { + return FailCode, err + } + } + if orderWay.PayMethod == 5 { //混合支付 + //余额增加相应金额 + mixPayInfo, err := dao.GetMixPayDetail(orderWay.OrderID) + if err := financial.AddBillIncome(txDB, 0, model.BillTypePayByMixPay1, mixPayInfo[0].BalancePrice, 0); err != nil { + return FailCode, err + } + //更新mixPay 状态 + mixPayInfo[0].Status = model.BillMixPayRefund1 //退款状态 + if _, err := dao.UpdateEntityTx(txDB, &mixPayInfo, "Status"); err != nil { + return FailCode, err + } + res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") + if len(res.VendorRefundID) > 0 { + return SuccessCode, err + } else { + return FailCode, err + } } } + } return SuccessCode, nil } diff --git a/controllers/order_controller.go b/controllers/order_controller.go index 5a00d28dc..1dff39e97 100644 --- a/controllers/order_controller.go +++ b/controllers/order_controller.go @@ -20,12 +20,13 @@ type OrderController struct { // @Param vendorPayType formData string true "平台支付类型" // @Param orderType formData string true "订单类型member(会员),express快递,recharge充值" // @Param appId formData string true "appId" +// @Param isChoose formData int true "-1:未选中余额抵消 1:余额抵消" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /Pay [post] func (c *OrderController) Pay() { c.callPay(func(params *tOrderPayParams) (retVal interface{}, errCode string, err error) { - retVal, err = cms.Pay(params.Ctx, params.OrderID, params.PayType, params.VendorPayType, params.AppId) + retVal, err = cms.Pay(params.Ctx, params.OrderID, params.PayType, params.VendorPayType, params.AppId, params.IsChoose) return retVal, "", err }) } @@ -38,13 +39,13 @@ func (c *OrderController) Pay() { // @Param vendorPayType formData string true "平台支付类型" // @Param orderType formData string true "订单类型member(会员),express快递,recharge充值" // @Param appId formData string true "appId" -// @Param restPrice formData int true "需要微信支付的价格" +// @Param isChoose formData int true "-1:未选中余额抵消 1:余额抵消" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /PayByBalance [post] func (c *OrderController) PayByBalance() { c.callPayByBalance(func(params *tOrderPayByBalanceParams) (retVal interface{}, errMsg string, err 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.IsChoose, params.PayType, params.VendorPayType, params.AppId) return retVal, "", err }) } diff --git a/controllers/q_bida.go b/controllers/q_bida.go index 494c2bf78..3b718167b 100644 --- a/controllers/q_bida.go +++ b/controllers/q_bida.go @@ -134,7 +134,7 @@ func (c *QBiDaExpressController) CreateWayOrder() { }) } -// CancelWayVendorOrder 取消运单 +// pay 取消运单 // @Title Q必达 // @Description 取消运单 // @Param token header string true "管理员token" From edd7949cf4dcf6ee90bd0cab22f4901d15cf4410 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:10:21 +0800 Subject: [PATCH 03/61] add pay --- business/q_bida/q_bida_server.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) 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 { From e9f9a68c610a17e72d9ee37dac634ee8412555d7 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:28:10 +0800 Subject: [PATCH 04/61] add pay --- business/jxstore/cms/order.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 737734db0..d61b2a89e 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -93,16 +93,22 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } ) //支付金额<原金额 + globals.SugarLogger.Debug("order.PayPrice=========================", order.PayPrice) if payPrice < order.PayPrice { order = &model.Order{ + OrderID: orderID, PayPrice: payPrice, PayMethod: 5, //混合支付 } } else { order = &model.Order{ + OrderID: orderID, PayMethod: 2, //微信支付 } } + globals.SugarLogger.Debug("order.OrderID after=========================", order.OrderID) + globals.SugarLogger.Debug("order.PayPrice after=========================", order.PayPrice) + globals.SugarLogger.Debug("order.PayMethod after=========================", order.PayMethod) globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") if order.ID == 0 { @@ -207,6 +213,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, //orderInfo.PayMethod = 5 //混合支付状态 needPay := totalPrice - userBill.AccountBalance //需支付金额 globals.SugarLogger.Debug("orderInfo.PayPrice=================", orderInfo.PayPrice) + globals.SugarLogger.Debug("orderInfo.OrderID=================", orderInfo.OrderID) WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID, needPay) if err != nil { globals.SugarLogger.Debug("err=================", err) From e9225a2a2fc0df3ac8aa57baf0ff44439592f71b Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:35:20 +0800 Subject: [PATCH 05/61] add pay --- business/jxstore/cms/order.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index d61b2a89e..c4272f4e4 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -92,6 +92,10 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app VendorPayType: vendorPayType, } ) + orderInfo, err := dao.GetOrderByID(db, orderID) + if err != nil { + return nil, err + } //支付金额<原金额 globals.SugarLogger.Debug("order.PayPrice=========================", order.PayPrice) if payPrice < order.PayPrice { @@ -103,6 +107,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } else { order = &model.Order{ OrderID: orderID, + PayPrice: orderInfo.PayPrice, PayMethod: 2, //微信支付 } } @@ -212,6 +217,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, globals.SugarLogger.Debug("进入混合支付部分") //orderInfo.PayMethod = 5 //混合支付状态 needPay := totalPrice - userBill.AccountBalance //需支付金额 + globals.SugarLogger.Debug("needPay=================", needPay) globals.SugarLogger.Debug("orderInfo.PayPrice=================", orderInfo.PayPrice) globals.SugarLogger.Debug("orderInfo.OrderID=================", orderInfo.OrderID) WxPayParam, err := Pay(ctx, orderInfo.OrderID, payType, vendorPayType, appID, needPay) From 03d3b5a5816cdec5536b11b7f59047ade99979b3 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:39:16 +0800 Subject: [PATCH 06/61] add pay --- business/jxstore/cms/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index c4272f4e4..adf40d785 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -92,6 +92,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app VendorPayType: vendorPayType, } ) + globals.SugarLogger.Debug("payPrice before1111=========================", payPrice) orderInfo, err := dao.GetOrderByID(db, orderID) if err != nil { return nil, err From 65a96e5dfb71fb8f11d5060e2e9465df6c69fe61 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:43:55 +0800 Subject: [PATCH 07/61] add pay --- business/jxstore/cms/order.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index adf40d785..d88d7940d 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -81,10 +81,15 @@ func CreateOrder(ctx *jxcontext.Context, type1, orderType int, way string, price } func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, appId string, payPrice int) (result *financial.WxPayParam, err error) { + orderInfo, err := dao.GetOrderByID(dao.GetDB(), orderID) + if err != nil { + return nil, err + } var ( db = dao.GetDB() order = &model.Order{ - OrderID: orderID, + OrderID: orderID, + PayPrice: orderInfo.PayPrice, } payHandler = &financial.PayHandler{ PayType: payType, @@ -93,10 +98,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } ) globals.SugarLogger.Debug("payPrice before1111=========================", payPrice) - orderInfo, err := dao.GetOrderByID(db, orderID) - if err != nil { - return nil, err - } + //支付金额<原金额 globals.SugarLogger.Debug("order.PayPrice=========================", order.PayPrice) if payPrice < order.PayPrice { From 648f0c8b189492b97389133b8d29907ad1420bd7 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:46:51 +0800 Subject: [PATCH 08/61] add pay --- business/jxstore/cms/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index d88d7940d..588110f5b 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -118,7 +118,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app globals.SugarLogger.Debug("order.PayPrice after=========================", order.PayPrice) globals.SugarLogger.Debug("order.PayMethod after=========================", order.PayMethod) globals.SugarLogger.Debugf("pay begin……") - err = dao.GetEntity(db, order, "OrderID") + //err = dao.GetEntity(db, order, "OrderID") if order.ID == 0 { return result, fmt.Errorf("未找到此订单!") } From 5213725aeb922a9a54ec02e256a5e496b212e498 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:47:54 +0800 Subject: [PATCH 09/61] add pay --- business/jxstore/cms/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 588110f5b..eae869c0c 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -135,6 +135,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app // 给用户创建一个银行卡账户 globals.SugarLogger.Debug("create bill begin……") + globals.SugarLogger.Debug("order.UserID……", order.UserID) userBill, err := dao.GetUserBill(db, order.UserID, "") if userBill == nil { err = financial.AddUserBill(txDB, jxutils.GenBillID(), order.UserID) From f98f9005506e7d818a32c4f0375d7e8d3fb340fd Mon Sep 17 00:00:00 2001 From: richboo111 Date: Mon, 1 Aug 2022 15:58:33 +0800 Subject: [PATCH 10/61] add pay --- business/jxstore/cms/order.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index eae869c0c..a0d5c1b60 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -90,6 +90,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app order = &model.Order{ OrderID: orderID, PayPrice: orderInfo.PayPrice, + UserID: orderInfo.UserID, } payHandler = &financial.PayHandler{ PayType: payType, @@ -119,7 +120,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app globals.SugarLogger.Debug("order.PayMethod after=========================", order.PayMethod) globals.SugarLogger.Debugf("pay begin……") //err = dao.GetEntity(db, order, "OrderID") - if order.ID == 0 { + if order.OrderID == "" { return result, fmt.Errorf("未找到此订单!") } payHandler.Order = order @@ -142,7 +143,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } err = payHandler.CreatePay(txDB, appId) globals.SugarLogger.Debug("errrrrr=========================", err) - dao.Commit(db, txDB) + //dao.Commit(db, txDB) globals.SugarLogger.Debug("the last step of this program,return err……", err) globals.SugarLogger.Debugf("result : %v", utils.Format4Output(payHandler.WxPayParam, false)) return payHandler.WxPayParam, err From 78796da29a12e2f07c6f36d9a736e78e5c74462d Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 16:48:01 +0800 Subject: [PATCH 11/61] pay --- business/jxstore/cms/order.go | 51 ++++++++++++++++--------- business/jxstore/financial/financial.go | 22 ++++++----- business/model/bill.go | 2 +- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index a0d5c1b60..e4f755d84 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -106,44 +106,57 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app order = &model.Order{ OrderID: orderID, PayPrice: payPrice, + UserID: orderInfo.UserID, PayMethod: 5, //混合支付 } } else { order = &model.Order{ OrderID: orderID, PayPrice: orderInfo.PayPrice, + UserID: orderInfo.UserID, PayMethod: 2, //微信支付 } } - globals.SugarLogger.Debug("order.OrderID after=========================", order.OrderID) - globals.SugarLogger.Debug("order.PayPrice after=========================", order.PayPrice) - globals.SugarLogger.Debug("order.PayMethod after=========================", order.PayMethod) + globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayPrice, order.PayMethod) + txdb, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + panic(r) + } + }() + //微信支付实际金额更新到数据库 + if _, err := dao.UpdateEntity(db, order, "PayPrice"); err != nil { + return nil, err + } + if _, err := dao.UpdateEntity(db, order, "PayMethod"); err != nil { + return nil, err + } + //if _, err := dao.UpdateEntityTx(txdb, &order, "PayPrice"); err != nil { + // dao.Rollback(db, txdb) + // return nil, err + //} + //if _, err := dao.UpdateEntityTx(txdb, &order, "PayMethod"); err != nil { + // dao.Rollback(db, txdb) + // return nil, err + //} + dao.Commit(db, txdb) + globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debugf("pay begin……") - //err = dao.GetEntity(db, order, "OrderID") + err = dao.GetEntity(db, order, "OrderID") if order.OrderID == "" { return result, fmt.Errorf("未找到此订单!") } payHandler.Order = order - globals.SugarLogger.Debug("order.payprice==================", payHandler.Order.PayPrice) + globals.SugarLogger.Debug("再次从数据库获得order详情", payHandler.Order.PayPrice, payHandler.Order.PayMethod) //如果用户没有对应账单信息就给他生成一条 - txDB, _ := dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db, txDB) - panic(r) - } - }() - // 给用户创建一个银行卡账户 globals.SugarLogger.Debug("create bill begin……") - globals.SugarLogger.Debug("order.UserID……", order.UserID) userBill, err := dao.GetUserBill(db, order.UserID, "") if userBill == nil { - err = financial.AddUserBill(txDB, jxutils.GenBillID(), order.UserID) + globals.SugarLogger.Debug("order.UserID,userBill=======================", order.UserID, userBill) + err = financial.AddUserBill(txdb, jxutils.GenBillID(), order.UserID) } - err = payHandler.CreatePay(txDB, appId) - globals.SugarLogger.Debug("errrrrr=========================", err) - //dao.Commit(db, txDB) + err = payHandler.CreatePay(txdb, appId) globals.SugarLogger.Debug("the last step of this program,return err……", err) globals.SugarLogger.Debugf("result : %v", utils.Format4Output(payHandler.WxPayParam, false)) return payHandler.WxPayParam, err @@ -192,6 +205,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, } dao.Commit(db, txDB) }() + //增加账单 余额减去相应金额 if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, order.PayPrice, 0); err != nil { dao.Rollback(db, txDB) return nil, "使用余额支付失败:", err @@ -222,6 +236,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, globals.SugarLogger.Debug("进入混合支付部分") //orderInfo.PayMethod = 5 //混合支付状态 needPay := totalPrice - userBill.AccountBalance //需支付金额 + globals.SugarLogger.Debug("needPay=================", needPay) globals.SugarLogger.Debug("orderInfo.PayPrice=================", orderInfo.PayPrice) globals.SugarLogger.Debug("orderInfo.OrderID=================", orderInfo.OrderID) diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index 49e4ef85b..c51e4d631 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -245,6 +245,7 @@ func OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) { } func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { + globals.SugarLogger.Debug("进入微信回调============================") order := &model.Order{ OrderID: call.CusorderID, } @@ -272,21 +273,25 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { if (order.OrderType == 2 || order.OrderType == 5) && call.TrxStatus == tonglianpayapi.TrxStatusSuccess { return OnWXPayFinished(order) } else if order.OrderType == 3 && call.TrxStatus == tonglianpayapi.TrxStatusSuccess { + globals.SugarLogger.Debug("得到微信回调结果,快递流程开始") txdb, _ := dao.Begin(db) defer func() { if r := recover(); r != nil { panic(r) } }() + globals.SugarLogger.Debug("更新order") if _, err := dao.UpdateEntityTx(txdb, order); err != nil { dao.Rollback(db, txdb) return err } + globals.SugarLogger.Debug("获取UserVendorOrder") userOrder := model.UserVendorOrder{LocalWayBill: order.OrderID} if err := dao.GetEntity(db, &userOrder, "LocalWayBill"); err != nil { dao.Rollback(db, txdb) return err } + globals.SugarLogger.Debug("更新UserVendorOrder") userOrder.OrderStatus = payStatus if _, err := dao.UpdateEntityTx(txdb, &userOrder, "OrderStatus"); err != nil { dao.Rollback(db, txdb) @@ -294,32 +299,31 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { } //1-余额,2-微信,5-混合 if order.PayMethod == 5 { + globals.SugarLogger.Debug("进入混合支付回调流程") userBill, err := dao.GetUserBill(db, order.UserID, "") if err != nil { return err } //创建混合支付账单 totalPrice := order.PayPrice + userBill.AccountBalance - if err := AddMixPay(txdb, order.OrderID, userBill.AccountBalance, totalPrice, 5); err != nil { + globals.SugarLogger.Debug("totalPrice=================", totalPrice) + globals.SugarLogger.Debug("进入增加mixpay账单") + if err := AddMixPay(txdb, order.OrderID, userBill.AccountBalance, totalPrice, 1); err != nil { + globals.SugarLogger.Debug("增加mixpay账单失败") dao.Rollback(db, txdb) return err } //余额清空 + globals.SugarLogger.Debug("开始清空余额") if err := dao.UpdateUserBill(order.UserID, 0); err != nil { globals.SugarLogger.Debug("修改余额失败") dao.Rollback(db, txdb) return err } } - if order.PayMethod == 5 || order.PayMethod == 2 { - //更新order状态 - order.Status = 110 //支付成功 - if _, err := dao.UpdateEntityTx(txdb, &order, "Status"); err != nil { - dao.Rollback(db, txdb) - return err - } - } dao.Commit(db, txdb) + globals.SugarLogger.Debug("call.TrxStatus======================", call.TrxStatus) + globals.SugarLogger.Debug("order.OrderType======================", order.OrderType) if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { switch order.OrderType { case model.PayType4Express: diff --git a/business/model/bill.go b/business/model/bill.go index d771f2aff..4aa175d2c 100644 --- a/business/model/bill.go +++ b/business/model/bill.go @@ -52,7 +52,7 @@ type MixPay struct { BalancePrice int `orm:"column(balance_price)" json:"balance_price"` //余额支付部分 TotalPrice int `orm:"column(total_price)" json:"total_price"` //订单总额 WxPrice int `orm:"column(wx_price)" json:"wx_price"` //微信支付部分 - Status int `orm:"column(status)" json:"status"` //订单状态 退款/正常 + Status int `orm:"column(status)" json:"status"` //订单状态 -1:退款/1:正常 } func (v *MixPay) TableIndex() [][]string { From b21b94beca7f57277a6505fd38530896e65e4b5b Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 16:55:03 +0800 Subject: [PATCH 12/61] pay --- business/jxstore/cms/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index e4f755d84..ee99b65a9 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -139,7 +139,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app // dao.Rollback(db, txdb) // return nil, err //} - dao.Commit(db, txdb) + //dao.Commit(db, txdb) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") From 9a9be62928aff5f6eb8495fb2c72b114825fbd5a Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 17:07:37 +0800 Subject: [PATCH 13/61] pay --- business/jxstore/cms/order.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index ee99b65a9..6d07eec32 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -125,21 +125,15 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } }() //微信支付实际金额更新到数据库 - if _, err := dao.UpdateEntity(db, order, "PayPrice"); err != nil { + if _, err := dao.UpdateEntityTx(txdb, &order, "PayPrice"); err != nil { + dao.Rollback(db, txdb) return nil, err } - if _, err := dao.UpdateEntity(db, order, "PayMethod"); err != nil { + if _, err := dao.UpdateEntityTx(txdb, &order, "PayMethod"); err != nil { + dao.Rollback(db, txdb) return nil, err } - //if _, err := dao.UpdateEntityTx(txdb, &order, "PayPrice"); err != nil { - // dao.Rollback(db, txdb) - // return nil, err - //} - //if _, err := dao.UpdateEntityTx(txdb, &order, "PayMethod"); err != nil { - // dao.Rollback(db, txdb) - // return nil, err - //} - //dao.Commit(db, txdb) + dao.Commit(db, txdb) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") From 979769669f51fc8d8e83364b4482b9e70376a331 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 17:21:08 +0800 Subject: [PATCH 14/61] pay --- business/jxstore/cms/order.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 6d07eec32..7fbb26d9e 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -3,6 +3,7 @@ package cms import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxstore/event" + "github.com/astaxie/beego/client/orm" "strings" "time" @@ -86,6 +87,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app return nil, err } var ( + txDB orm.TxOrmer db = dao.GetDB() order = &model.Order{ OrderID: orderID, @@ -118,22 +120,22 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } } globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayPrice, order.PayMethod) - txdb, _ := dao.Begin(db) - defer func() { - if r := recover(); r != nil { - panic(r) - } - }() + //txDB, _ := dao.Begin(db) + //defer func() { + // if r := recover(); r != nil { + // panic(r) + // } + //}() //微信支付实际金额更新到数据库 - if _, err := dao.UpdateEntityTx(txdb, &order, "PayPrice"); err != nil { - dao.Rollback(db, txdb) + if _, err := dao.UpdateEntityTx(txDB, &order); err != nil { + //dao.Rollback(db, txDB) return nil, err } - if _, err := dao.UpdateEntityTx(txdb, &order, "PayMethod"); err != nil { - dao.Rollback(db, txdb) - return nil, err - } - dao.Commit(db, txdb) + //if _, err := dao.UpdateEntityTx(txDB, &order, "PayMethod"); err != nil { + // dao.Rollback(db, txDB) + // return nil, err + //} + //dao.Commit(db, txDB) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") From 2b948d7d352cd01035ae7ecd9f900b92cdbb4efc Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 17:22:15 +0800 Subject: [PATCH 15/61] pay --- business/jxstore/cms/order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 7fbb26d9e..909f52a95 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -150,9 +150,9 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app userBill, err := dao.GetUserBill(db, order.UserID, "") if userBill == nil { globals.SugarLogger.Debug("order.UserID,userBill=======================", order.UserID, userBill) - err = financial.AddUserBill(txdb, jxutils.GenBillID(), order.UserID) + err = financial.AddUserBill(txDB, jxutils.GenBillID(), order.UserID) } - err = payHandler.CreatePay(txdb, appId) + err = payHandler.CreatePay(txDB, appId) globals.SugarLogger.Debug("the last step of this program,return err……", err) globals.SugarLogger.Debugf("result : %v", utils.Format4Output(payHandler.WxPayParam, false)) return payHandler.WxPayParam, err From 6c625c4592b30bb30dbc2d451e51dc7318a7c556 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 17:53:02 +0800 Subject: [PATCH 16/61] pay --- business/jxstore/cms/order.go | 44 +++++++++++++++++++++------------ business/model/dao/dao_order.go | 25 +++++++------------ 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 909f52a95..4f03edc18 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -82,13 +82,17 @@ func CreateOrder(ctx *jxcontext.Context, type1, orderType int, way string, price } func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, appId string, payPrice int) (result *financial.WxPayParam, err error) { + var ( + temp_PayPrice int + temp_PayMethod int + txDB orm.TxOrmer + db = dao.GetDB() + ) orderInfo, err := dao.GetOrderByID(dao.GetDB(), orderID) if err != nil { return nil, err } var ( - txDB orm.TxOrmer - db = dao.GetDB() order = &model.Order{ OrderID: orderID, PayPrice: orderInfo.PayPrice, @@ -101,25 +105,29 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app } ) globals.SugarLogger.Debug("payPrice before1111=========================", payPrice) - //支付金额<原金额 globals.SugarLogger.Debug("order.PayPrice=========================", order.PayPrice) if payPrice < order.PayPrice { - order = &model.Order{ - OrderID: orderID, - PayPrice: payPrice, - UserID: orderInfo.UserID, - PayMethod: 5, //混合支付 - } + temp_PayPrice = payPrice + temp_PayMethod = 5 + //order = &model.Order{ + // OrderID: orderID, + // PayPrice: payPrice, + // UserID: orderInfo.UserID, + // PayMethod: 5, //混合支付 + //} } else { - order = &model.Order{ - OrderID: orderID, - PayPrice: orderInfo.PayPrice, - UserID: orderInfo.UserID, - PayMethod: 2, //微信支付 - } + temp_PayPrice = orderInfo.PayPrice + temp_PayMethod = 2 + //order = &model.Order{ + // OrderID: orderID, + // PayPrice: orderInfo.PayPrice, + // UserID: orderInfo.UserID, + // PayMethod: 2, //微信支付 + //} } - globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayPrice, order.PayMethod) + globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayMethod) + globals.SugarLogger.Debug("检验初始数据情况", order.PayPrice) //txDB, _ := dao.Begin(db) //defer func() { // if r := recover(); r != nil { @@ -127,6 +135,9 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app // } //}() //微信支付实际金额更新到数据库 + if _, err := dao.SetOrderStatus(db, temp_PayPrice, temp_PayMethod, orderID); err != nil { + return nil, err + } if _, err := dao.UpdateEntityTx(txDB, &order); err != nil { //dao.Rollback(db, txDB) return nil, err @@ -137,6 +148,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app //} //dao.Commit(db, txDB) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) + globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.PayPrice) globals.SugarLogger.Debugf("pay begin……") err = dao.GetEntity(db, order, "OrderID") if order.OrderID == "" { diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index e57fa28ec..cba4efa55 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -668,22 +668,7 @@ func GetUnionOrdersPage(db *DaoDB, vendorIDs, statuss []int, beginTime, endTime } return page, err } -func SetOrderStatus(db *DaoDB, orderID string, status int) (msg string, err error) { - sqlParams := []interface{}{} - sql := `UPDATE order o SET o.status = ? ` - if status > 0 { - sqlParams = append(sqlParams, status) - } - if orderID != "" { - sql += `WHERE o.order_id = ?` - sqlParams = append(sqlParams, orderID) - } - orderInfos := &model.Order{} - if err := GetRow(db, orderInfos, sql, sqlParams); err != nil { - return "更新order状态失败", err - } - return "更新order状态成功", err -} + func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg string, err error) { sqlParams := []interface{}{} sql := `UPDATE user_vendor_order a SET a.order_status = ?` @@ -700,3 +685,11 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg } return "更新UserVendorOrder状态成功", err } + +//更新order 价格和状态 +func SetOrderStatus(db *DaoDB, payPrice, payMethod int, orderID string) (string, error) { + if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ?,pay_method=? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { + return "", err + } + return "更新Order状态成功", nil +} From 7dbfd7594437ed49005706a0b181ad23d2345e3e Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 17:58:17 +0800 Subject: [PATCH 17/61] pay --- business/q_bida/q_bida_server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 8bee2eef2..34b4e12d2 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -263,18 +263,20 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd } 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,修改订单状态,给用户账户价钱,生成一个价钱数据 - } else if orderWay.PayMethod == 2 { // 微信支付 + } + if orderWay.PayMethod == 2 { // 微信支付 // 微信支付原路退款,发起退款申请 res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") if len(res.VendorRefundID) > 0 { From 59085a5b1323595972486036ecbeff24dac716dc Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 18:09:54 +0800 Subject: [PATCH 18/61] pay --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index cba4efa55..25bfb0d57 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -688,7 +688,7 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(db *DaoDB, payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ?,pay_method=? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ? ,pay_method = ? WHERE order_id = ?`, []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From adbc9d83b23ac01d93b8db60e1d4ca29c797e097 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 18:18:24 +0800 Subject: [PATCH 19/61] pay --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 25bfb0d57..21ddfe0b2 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -688,7 +688,7 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(db *DaoDB, payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ? ,pay_method = ? WHERE order_id = ?`, []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From c705214b94a382bee66da7e43114f8816bce069d Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 2 Aug 2022 18:26:17 +0800 Subject: [PATCH 20/61] pay --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 21ddfe0b2..542b8b4e8 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -688,7 +688,7 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(db *DaoDB, payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE order SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), `UPDATE 'order' SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From 396d123b4f45862631e24eb050601f7510c06e40 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 09:03:26 +0800 Subject: [PATCH 21/61] pay --- business/jxstore/cms/order.go | 2 +- business/model/dao/dao_order.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 4f03edc18..6bfb0c530 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -135,7 +135,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app // } //}() //微信支付实际金额更新到数据库 - if _, err := dao.SetOrderStatus(db, temp_PayPrice, temp_PayMethod, orderID); err != nil { + if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderID); err != nil { return nil, err } if _, err := dao.UpdateEntityTx(txDB, &order); err != nil { diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 542b8b4e8..331a059a5 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -687,8 +687,8 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg } //更新order 价格和状态 -func SetOrderStatus(db *DaoDB, payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE 'order' SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { +func SetOrderStatus(payPrice, payMethod int, orderID string) (string, error) { + if _, err := ExecuteSQL(GetDB(), `UPDATE %s SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{"order", payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From 0d27fb7bd5693704149ba55274c6977439298492 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 09:46:18 +0800 Subject: [PATCH 22/61] pay --- business/model/dao/dao_order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 331a059a5..e8edb2819 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -688,7 +688,8 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE %s SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{"order", payPrice, payMethod, orderID}...); err != nil { + + if _, err := ExecuteSQL(GetDB(), `UPDATE `+`order`+` SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From bc6ec1e49864588d828e1db30271730206cf2c6d Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 10:01:08 +0800 Subject: [PATCH 23/61] pay --- business/jxstore/cms/order_test.go | 13 +++++++++++++ business/model/dao/dao_order.go | 2 +- globals/beegodb/beegodb.go | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 business/jxstore/cms/order_test.go diff --git a/business/jxstore/cms/order_test.go b/business/jxstore/cms/order_test.go new file mode 100644 index 000000000..e9f1ca95a --- /dev/null +++ b/business/jxstore/cms/order_test.go @@ -0,0 +1,13 @@ +package cms + +import ( + "git.rosy.net.cn/jx-callback/business/model/dao" + "testing" +) + +func Test_Set(t *testing.T) { + if _, err := dao.SetOrderStatus(110, 5, "165943225529BCVFdaX"); err != nil { + return + } + return +} diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index e8edb2819..57fcd87bd 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -689,7 +689,7 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE `+`order`+` SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), `UPDATE [order] SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 737436b28..50b08045c 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -10,7 +10,7 @@ import ( func Init() { // set default database orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr")) - //orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(gold1.jxc4.com:3306)/api?charset=utf8mb4&loc=Local&parseTime=true") + //orm.RegisterDataBase("jxd_dev_0", "mysql", "root:WebServer@1@tcp(test1.jxc4.com:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true") if beego.BConfig.RunMode == "rsm" { //用户 orm.RegisterModel(&model.AuthBind{}, &model.User{}) @@ -58,4 +58,5 @@ func Init() { orm.RegisterModel(&model.Printer{}) // create table orm.RunSyncdb("default", false, true) + //orm.RunSyncdb("jxd_dev_0", false, true) } From bfdc340a77c2a6bd00e35e264013aa4016679b01 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 10:09:52 +0800 Subject: [PATCH 24/61] pay --- business/jxstore/cms/order.go | 2 +- business/model/dao/dao_order.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 6bfb0c530..032aed826 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -138,7 +138,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderID); err != nil { return nil, err } - if _, err := dao.UpdateEntityTx(txDB, &order); err != nil { + if _, err := dao.UpdateEntityTx(txDB, order); err != nil { //dao.Rollback(db, txDB) return nil, err } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 57fcd87bd..234af6260 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -689,7 +689,7 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg //更新order 价格和状态 func SetOrderStatus(payPrice, payMethod int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), `UPDATE [order] SET pay_price = ?,pay_method= ? WHERE order_id = ? `, []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), "UPDATE `order` SET pay_price = ?,pay_method= ? WHERE order_id = ? ", []interface{}{payPrice, payMethod, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil From 37337b9611940d900ea543327c2f5cc05106ec7a Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 10:44:30 +0800 Subject: [PATCH 25/61] pay --- business/jxstore/cms/order.go | 24 ------------------------ business/q_bida/q_bida_server.go | 4 +++- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 032aed826..5e58ace30 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -110,43 +110,19 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app if payPrice < order.PayPrice { temp_PayPrice = payPrice temp_PayMethod = 5 - //order = &model.Order{ - // OrderID: orderID, - // PayPrice: payPrice, - // UserID: orderInfo.UserID, - // PayMethod: 5, //混合支付 - //} } else { temp_PayPrice = orderInfo.PayPrice temp_PayMethod = 2 - //order = &model.Order{ - // OrderID: orderID, - // PayPrice: orderInfo.PayPrice, - // UserID: orderInfo.UserID, - // PayMethod: 2, //微信支付 - //} } globals.SugarLogger.Debug("检验初始数据情况", order.OrderID, order.PayMethod) globals.SugarLogger.Debug("检验初始数据情况", order.PayPrice) - //txDB, _ := dao.Begin(db) - //defer func() { - // if r := recover(); r != nil { - // panic(r) - // } - //}() //微信支付实际金额更新到数据库 if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderID); err != nil { return nil, err } if _, err := dao.UpdateEntityTx(txDB, order); err != nil { - //dao.Rollback(db, txDB) return nil, err } - //if _, err := dao.UpdateEntityTx(txDB, &order, "PayMethod"); err != nil { - // dao.Rollback(db, txDB) - // return nil, err - //} - //dao.Commit(db, txDB) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.PayPrice) globals.SugarLogger.Debugf("pay begin……") diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 34b4e12d2..2244cc2f2 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -250,10 +250,12 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return FailCode, err } + globals.SugarLogger.Debug("回调获取order详情", orderWay) userBill, err := dao.GetUserBill(db, orderWay.UserID, "") if err != nil { return FailCode, err } + globals.SugarLogger.Debug("回调获取user_bill详情", userBill) if orderWay.Status == 110 { if orderWay.PayMethod == 1 { // 余额支付 txDB, _ := dao.Begin(db) @@ -294,7 +296,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd } //更新mixPay 状态 - mixPayInfo[0].Status = model.BillMixPayRefund1 //退款状态 + mixPayInfo[0].Status = -1 //model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntityTx(txDB, &mixPayInfo, "Status"); err != nil { return FailCode, err } From 6eaf2b37c91c0202b39f966ef25cd32f51eda6f9 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:03:20 +0800 Subject: [PATCH 26/61] pay --- business/q_bida/q_bida_server.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 2244cc2f2..9a0a76b89 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -224,7 +224,6 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd panic(r) } }() - order.OrderStatus = model.OrderStatusCancel if _, err := dao.UpdateEntityTx(tx, order, "OrderStatus"); err != nil { tx.Rollback() @@ -288,9 +287,11 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd } } if orderWay.PayMethod == 5 { //混合支付 + globals.SugarLogger.Debug("回调进入混合支付流程") //余额增加相应金额 mixPayInfo, err := dao.GetMixPayDetail(orderWay.OrderID) userBill.AccountBalance += mixPayInfo[0].BalancePrice + globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) if _, err := dao.UpdateEntityTx(txDB, userBill, "AccountBalance"); err != nil { return FailCode, err } From 3ab6fd6b21bb3b180a83d8a323e2e4195b171aa2 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:11:28 +0800 Subject: [PATCH 27/61] pay --- business/model/dao/dao_bill.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 8df438809..f7a7bb42f 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,7 +148,7 @@ type MixPayDetail struct { //获取混合支付 余额部分信息 func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { - sql := `SELECT * FROM mix_pay WHERE deleted_at = ? ` + sql := "SELECT * FROM mix_pay WHERE deleted_at = ? " sqlParams := []interface{}{ utils.DefaultTimeValue, } From ad062f5355db00bbf708b31c80eca42d9b932f78 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:16:16 +0800 Subject: [PATCH 28/61] pay --- business/model/dao/dao_bill.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index f7a7bb42f..56e90748e 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,14 +148,11 @@ type MixPayDetail struct { //获取混合支付 余额部分信息 func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { - sql := "SELECT * FROM mix_pay WHERE deleted_at = ? " - sqlParams := []interface{}{ - utils.DefaultTimeValue, - } + sqlParams := []interface{}{} if orderID != "" { - sql += "AND order_id = ?" + sql := "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) + err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) } - err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) return mixPayDetail, err } From 9baac98681c26fffcfcf2da7dc71bb9497d32578 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:20:47 +0800 Subject: [PATCH 29/61] pay --- business/model/dao/dao_bill.go | 2 ++ business/q_bida/q_bida_server.go | 1 + 2 files changed, 3 insertions(+) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 56e90748e..b9c3c7389 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -1,6 +1,7 @@ package dao import ( + "git.rosy.net.cn/jx-callback/globals" "time" "git.rosy.net.cn/baseapi/utils" @@ -154,5 +155,6 @@ func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { sqlParams = append(sqlParams, orderID) err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) } + globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail[0].OrderID) return mixPayDetail, err } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 9a0a76b89..535831da4 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -289,6 +289,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if orderWay.PayMethod == 5 { //混合支付 globals.SugarLogger.Debug("回调进入混合支付流程") //余额增加相应金额 + globals.SugarLogger.Debug("回调输出订单id", orderWay.OrderID) mixPayInfo, err := dao.GetMixPayDetail(orderWay.OrderID) userBill.AccountBalance += mixPayInfo[0].BalancePrice globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) From a1a080b68eb05bb1da8817ba819c60d462592468 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:30:02 +0800 Subject: [PATCH 30/61] pay --- business/model/dao/dao_bill.go | 4 ++-- business/q_bida/q_bida_server.go | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index b9c3c7389..f3545ebe9 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,13 +148,13 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { +func GetMixPayDetail(orderID string) (mixPayDetail *MixPayDetail, err error) { sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) } - globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail[0].OrderID) + globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail.OrderID) return mixPayDetail, err } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 535831da4..b3bcf1561 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -291,14 +291,17 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd //余额增加相应金额 globals.SugarLogger.Debug("回调输出订单id", orderWay.OrderID) mixPayInfo, err := dao.GetMixPayDetail(orderWay.OrderID) - userBill.AccountBalance += mixPayInfo[0].BalancePrice + if err != nil { + return FailCode, err + } + userBill.AccountBalance += mixPayInfo.BalancePrice globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) if _, err := dao.UpdateEntityTx(txDB, userBill, "AccountBalance"); err != nil { return FailCode, err } //更新mixPay 状态 - mixPayInfo[0].Status = -1 //model.BillMixPayRefund1 //退款状态 + mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntityTx(txDB, &mixPayInfo, "Status"); err != nil { return FailCode, err } From 0901922618b6598f3501b4c7e88f8e3b815bd110 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:39:07 +0800 Subject: [PATCH 31/61] pay --- business/q_bida/q_bida_server.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index b3bcf1561..e7f3986bf 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -302,9 +302,22 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd //更新mixPay 状态 mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 - if _, err := dao.UpdateEntityTx(txDB, &mixPayInfo, "Status"); err != nil { + if _, err := dao.UpdateEntityTx(txDB, mixPayInfo, "Status"); err != nil { return FailCode, err } + ///////////// + mixPayInfo1, err := dao.GetMixPayDetail(orderWay.OrderID) + if err != nil { + return 0, err + } + globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) + userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") + if err != nil { + return 0, err + } + globals.SugarLogger.Debug("输出userBill", userBill1.AccountBalance) + //////////////// + globals.SugarLogger.Debug("回调进入微信退款") res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") if len(res.VendorRefundID) > 0 { return SuccessCode, err From c457f143b3ff65124a029e747a66e54e759d0128 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:44:52 +0800 Subject: [PATCH 32/61] pay --- business/q_bida/q_bida_server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index e7f3986bf..c662ec3ac 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -296,13 +296,13 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd } userBill.AccountBalance += mixPayInfo.BalancePrice globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) - if _, err := dao.UpdateEntityTx(txDB, userBill, "AccountBalance"); err != nil { + if _, err := dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil { return FailCode, err } //更新mixPay 状态 mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 - if _, err := dao.UpdateEntityTx(txDB, mixPayInfo, "Status"); err != nil { + if _, err := dao.UpdateEntity(db, mixPayInfo, "Status"); err != nil { return FailCode, err } ///////////// From c06d648a04ed500b00f161afce509df50f13e402 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 11:47:36 +0800 Subject: [PATCH 33/61] pay --- business/q_bida/q_bida_server.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index c662ec3ac..fe6ee6d2c 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -12,7 +12,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" - "github.com/astaxie/beego/client/orm" "time" ) @@ -204,7 +203,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd SuccessCode = 0 tmp_orderNo = param.OrderNo db = dao.GetDB() - txDB orm.TxOrmer + //txDB orm.TxOrmer ) // 查询订单 order, err := dao.GetUserVendorOrder(db, userId, param.OrderNo) From cbc471ac934b784206b7c7d1b4a03d2615de5b81 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 13:42:27 +0800 Subject: [PATCH 34/61] pay --- business/model/dao/dao_bill.go | 4 ++-- business/q_bida/q_bida_server.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index f3545ebe9..b9c3c7389 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,13 +148,13 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (mixPayDetail *MixPayDetail, err error) { +func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) } - globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail.OrderID) + globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail[0].OrderID) return mixPayDetail, err } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index fe6ee6d2c..754a9c484 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -293,14 +293,14 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return FailCode, err } - userBill.AccountBalance += mixPayInfo.BalancePrice + userBill.AccountBalance += mixPayInfo[0].BalancePrice globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) if _, err := dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil { return FailCode, err } //更新mixPay 状态 - mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 + mixPayInfo[0].Status = -1 //model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntity(db, mixPayInfo, "Status"); err != nil { return FailCode, err } @@ -309,7 +309,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return 0, err } - globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) + globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1[0].Status) userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") if err != nil { return 0, err From 7e7859c45e015bf3aaabb1b4695f9202a6f74f68 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 13:47:44 +0800 Subject: [PATCH 35/61] pay --- business/model/dao/dao_bill.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index b9c3c7389..44d026565 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -149,12 +149,13 @@ type MixPayDetail struct { //获取混合支付 余额部分信息 func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { + info := make([]*MixPayDetail, len(mixPayDetail)) sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) - err = GetRow(GetDB(), &mixPayDetail, sql, sqlParams) + err = GetRow(GetDB(), &info, sql, sqlParams) } - globals.SugarLogger.Debug("输出mix pay信息", mixPayDetail[0].OrderID) - return mixPayDetail, err + globals.SugarLogger.Debug("输出mix pay信息", info[0].OrderID) + return info, err } From f03a46a0da31c6d4fd6f0c9b6b21f41ac35993af Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 13:49:55 +0800 Subject: [PATCH 36/61] pay --- business/model/dao/dao_bill.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 44d026565..46e74684a 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -149,7 +149,7 @@ type MixPayDetail struct { //获取混合支付 余额部分信息 func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { - info := make([]*MixPayDetail, len(mixPayDetail)) + info := make([]*MixPayDetail, len(orderID)) sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" From c2fe05bd5db32ee13d9ae8e4266cd1371dcd6dea Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 13:52:49 +0800 Subject: [PATCH 37/61] pay --- business/model/dao/dao_bill.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 46e74684a..4eecd68c4 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,8 +148,8 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (mixPayDetail []*MixPayDetail, err error) { - info := make([]*MixPayDetail, len(orderID)) +func GetMixPayDetail(orderID string) (info []*MixPayDetail, err error) { + info = make([]*MixPayDetail, len(orderID)) sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" From 302ff68ab60a5a626402ac22b78aa22358b7bfd6 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 13:58:03 +0800 Subject: [PATCH 38/61] pay --- business/model/dao/dao_bill.go | 7 ++++--- business/q_bida/q_bida_server.go | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 4eecd68c4..1ba3d6c15 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -148,14 +148,15 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (info []*MixPayDetail, err error) { - info = make([]*MixPayDetail, len(orderID)) +func GetMixPayDetail(orderID string) (info *MixPayDetail, err error) { + info = new(MixPayDetail) + //info = make([]*MixPayDetail, len(orderID)) sqlParams := []interface{}{} if orderID != "" { sql := "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) err = GetRow(GetDB(), &info, sql, sqlParams) } - globals.SugarLogger.Debug("输出mix pay信息", info[0].OrderID) + globals.SugarLogger.Debug("输出mix pay信息", info.OrderID) return info, err } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 754a9c484..fe6ee6d2c 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -293,14 +293,14 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return FailCode, err } - userBill.AccountBalance += mixPayInfo[0].BalancePrice + userBill.AccountBalance += mixPayInfo.BalancePrice globals.SugarLogger.Debug("回调输出userBill.AccountBalance", userBill.AccountBalance) if _, err := dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil { return FailCode, err } //更新mixPay 状态 - mixPayInfo[0].Status = -1 //model.BillMixPayRefund1 //退款状态 + mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntity(db, mixPayInfo, "Status"); err != nil { return FailCode, err } @@ -309,7 +309,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if err != nil { return 0, err } - globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1[0].Status) + globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") if err != nil { return 0, err From 63f96ca4261dacb538d9a69987906408d65e0714 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:09:27 +0800 Subject: [PATCH 39/61] pay --- business/model/dao/dao_bill.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 1ba3d6c15..0f57aa8ea 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -1,7 +1,6 @@ package dao import ( - "git.rosy.net.cn/jx-callback/globals" "time" "git.rosy.net.cn/baseapi/utils" @@ -148,15 +147,23 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (info *MixPayDetail, err error) { - info = new(MixPayDetail) - //info = make([]*MixPayDetail, len(orderID)) +func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { + var info []*model.MixPay sqlParams := []interface{}{} + sql := "" if orderID != "" { - sql := "SELECT * FROM mix_pay WHERE order_id = ?" + sql += "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) - err = GetRow(GetDB(), &info, sql, sqlParams) } - globals.SugarLogger.Debug("输出mix pay信息", info.OrderID) - return info, err + if err = GetRow(GetDB(), &info, sql, sqlParams); err == nil { + details = &model.MixPay{ + OrderID: info[0].OrderID, + BalancePrice: info[0].BalancePrice, + TotalPrice: info[0].TotalPrice, + WxPrice: info[0].WxPrice, + Status: info[0].Status, + } + } + //globals.SugarLogger.Debug("输出mix pay信息", info.OrderID) + return details, err } From 6bea930477387c0321ede080bf473beeda24af25 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:15:05 +0800 Subject: [PATCH 40/61] pay --- business/model/dao/dao_bill.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 0f57aa8ea..3857b23d0 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -152,7 +152,7 @@ func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { sqlParams := []interface{}{} sql := "" if orderID != "" { - sql += "SELECT * FROM mix_pay WHERE order_id = ?" + sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } if err = GetRow(GetDB(), &info, sql, sqlParams); err == nil { From 618f83ba52ebbce36b44c1ee06a1984ccb6874ef Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:27:54 +0800 Subject: [PATCH 41/61] pay --- business/model/dao/dao_bill.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 3857b23d0..50078be6e 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -155,15 +155,17 @@ func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - if err = GetRow(GetDB(), &info, sql, sqlParams); err == nil { - details = &model.MixPay{ - OrderID: info[0].OrderID, - BalancePrice: info[0].BalancePrice, - TotalPrice: info[0].TotalPrice, - WxPrice: info[0].WxPrice, - Status: info[0].Status, - } + err = GetRow(GetDB(), &info, sql, sqlParams) + if err != nil { + return nil, err + //details = info{ + // OrderID: info[0].OrderID, + // BalancePrice: info[0].BalancePrice, + // TotalPrice: info[0].TotalPrice, + // WxPrice: info[0].WxPrice, + // Status: info[0].Status, + //} } //globals.SugarLogger.Debug("输出mix pay信息", info.OrderID) - return details, err + return info[0], err } From 31cb67499485466d08aaf3b49e5df3362c493d0c Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:40:28 +0800 Subject: [PATCH 42/61] pay --- business/model/dao/dao_bill.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 50078be6e..80ae414bf 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -137,7 +137,9 @@ func UpdateUserBill(userId string, money int) error { } type MixPayDetail struct { + ID int `json:"id"` CreatedAt time.Time `json:"created_at"` + UpdateAt time.Time `json:"update_at"` LastOperator string `json:"lastOperator"` OrderID string `json:"order_id"` BalancePrice int `json:"balance_price"` @@ -147,25 +149,23 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { - var info []*model.MixPay +func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { + var info []*MixPayDetail sqlParams := []interface{}{} sql := "" if orderID != "" { sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - err = GetRow(GetDB(), &info, sql, sqlParams) - if err != nil { - return nil, err - //details = info{ - // OrderID: info[0].OrderID, - // BalancePrice: info[0].BalancePrice, - // TotalPrice: info[0].TotalPrice, - // WxPrice: info[0].WxPrice, - // Status: info[0].Status, - //} + if err = GetRow(GetDB(), &info, sql, sqlParams); err != nil { + //return nil, err + details = &MixPayDetail{ + OrderID: info[0].OrderID, + BalancePrice: info[0].BalancePrice, + TotalPrice: info[0].TotalPrice, + WxPrice: info[0].WxPrice, + Status: info[0].Status, + } } - //globals.SugarLogger.Debug("输出mix pay信息", info.OrderID) return info[0], err } From 92ef9b145f6c12aa73b114e6c1a2e552896f0293 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:43:12 +0800 Subject: [PATCH 43/61] pay --- business/model/dao/dao_bill.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 80ae414bf..46fed91fe 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -150,7 +150,8 @@ type MixPayDetail struct { //获取混合支付 余额部分信息 func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { - var info []*MixPayDetail + //var info []*MixPayDetail + info := make([]*MixPayDetail, 0) sqlParams := []interface{}{} sql := "" if orderID != "" { From a3b888c2c5fe60f15ba7cb22a63be69ed2d16a4c Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:45:29 +0800 Subject: [PATCH 44/61] pay --- business/model/dao/dao_bill.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 46fed91fe..b8df4b540 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -158,7 +158,7 @@ func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - if err = GetRow(GetDB(), &info, sql, sqlParams); err != nil { + if err = GetRow(GetDB(), &info, sql, sqlParams); err == nil { //return nil, err details = &MixPayDetail{ OrderID: info[0].OrderID, From b78d5c4ca2607b585f5471fe4dfb44956c7b88bf Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:49:41 +0800 Subject: [PATCH 45/61] pay --- business/model/dao/dao_bill.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index b8df4b540..c96a5c023 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -158,8 +158,8 @@ func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - if err = GetRow(GetDB(), &info, sql, sqlParams); err == nil { - //return nil, err + err = GetRow(GetDB(), &info, sql, sqlParams) + if err == nil { details = &MixPayDetail{ OrderID: info[0].OrderID, BalancePrice: info[0].BalancePrice, @@ -168,5 +168,5 @@ func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { Status: info[0].Status, } } - return info[0], err + return details, err } From 2d20a2b5c74794e84be2e7582877adf04cb4a329 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:53:36 +0800 Subject: [PATCH 46/61] pay --- business/model/dao/dao_bill.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index c96a5c023..0674fcd8f 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -161,6 +161,10 @@ func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { err = GetRow(GetDB(), &info, sql, sqlParams) if err == nil { details = &MixPayDetail{ + ID: info[0].ID, + LastOperator: info[0].LastOperator, + CreatedAt: info[0].CreatedAt, + UpdateAt: info[0].UpdateAt, OrderID: info[0].OrderID, BalancePrice: info[0].BalancePrice, TotalPrice: info[0].TotalPrice, From 74c36d269180f668b4fbbebc8821e4e29a030bde Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 14:58:54 +0800 Subject: [PATCH 47/61] pay --- business/model/dao/dao_bill.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 0674fcd8f..ae33d5490 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -152,19 +152,15 @@ type MixPayDetail struct { func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { //var info []*MixPayDetail info := make([]*MixPayDetail, 0) - sqlParams := []interface{}{} + var sqlParams []interface{} sql := "" if orderID != "" { sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - err = GetRow(GetDB(), &info, sql, sqlParams) + err = GetRows(GetDB(), &info, sql, sqlParams) if err == nil { details = &MixPayDetail{ - ID: info[0].ID, - LastOperator: info[0].LastOperator, - CreatedAt: info[0].CreatedAt, - UpdateAt: info[0].UpdateAt, OrderID: info[0].OrderID, BalancePrice: info[0].BalancePrice, TotalPrice: info[0].TotalPrice, From 74212b0456c96e7734492c1f2a37628da4c683a6 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 15:03:57 +0800 Subject: [PATCH 48/61] pay --- business/model/dao/dao_bill.go | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index ae33d5490..4fb61bb67 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -1,6 +1,7 @@ package dao import ( + "git.rosy.net.cn/jx-callback/globals" "time" "git.rosy.net.cn/baseapi/utils" @@ -149,24 +150,28 @@ type MixPayDetail struct { } //获取混合支付 余额部分信息 -func GetMixPayDetail(orderID string) (details *MixPayDetail, err error) { +func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { //var info []*MixPayDetail - info := make([]*MixPayDetail, 0) + info := make([]*model.MixPay, 0) var sqlParams []interface{} sql := "" if orderID != "" { - sql += "SELECT order_id,balance_price,total_price,wx_price,status FROM mix_pay WHERE order_id = ?" + sql += "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } err = GetRows(GetDB(), &info, sql, sqlParams) - if err == nil { - details = &MixPayDetail{ - OrderID: info[0].OrderID, - BalancePrice: info[0].BalancePrice, - TotalPrice: info[0].TotalPrice, - WxPrice: info[0].WxPrice, - Status: info[0].Status, - } + if err != nil { + globals.SugarLogger.Debug("er===========", err) + return nil, err } - return details, err + return info[0], err + //if err == nil { + // details = &MixPayDetail{ + // OrderID: info[0].OrderID, + // BalancePrice: info[0].BalancePrice, + // TotalPrice: info[0].TotalPrice, + // WxPrice: info[0].WxPrice, + // Status: info[0].Status, + // } + //} } From a243efcd744503e26f504878129140c5af9ceb35 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 15:04:35 +0800 Subject: [PATCH 49/61] pay --- business/model/dao/dao_bill.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_bill.go b/business/model/dao/dao_bill.go index 4fb61bb67..4c9086750 100644 --- a/business/model/dao/dao_bill.go +++ b/business/model/dao/dao_bill.go @@ -159,7 +159,7 @@ func GetMixPayDetail(orderID string) (details *model.MixPay, err error) { sql += "SELECT * FROM mix_pay WHERE order_id = ?" sqlParams = append(sqlParams, orderID) } - err = GetRows(GetDB(), &info, sql, sqlParams) + err = GetRows(GetDB(), &info, sql, sqlParams...) if err != nil { globals.SugarLogger.Debug("er===========", err) return nil, err From ff0ac93af15d4cf814f3c49073a78aff5ae339f3 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 15:14:10 +0800 Subject: [PATCH 50/61] pay --- business/q_bida/q_bida_server.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index fe6ee6d2c..4d87aa92e 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -317,6 +317,9 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd globals.SugarLogger.Debug("输出userBill", userBill1.AccountBalance) //////////////// globals.SugarLogger.Debug("回调进入微信退款") + globals.SugarLogger.Debug("orderWay==============", orderWay) + globals.SugarLogger.Debug("order==============", order) + globals.SugarLogger.Debug("order.OtherWayBill==============", order.OtherWayBill) res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") if len(res.VendorRefundID) > 0 { return SuccessCode, err From 2176e32aec0be0536cc3fa8ccfe9b04922f672f9 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 15:23:24 +0800 Subject: [PATCH 51/61] pay --- business/q_bida/q_bida_server.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 4d87aa92e..685fa3973 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -305,16 +305,16 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd return FailCode, err } ///////////// - mixPayInfo1, err := dao.GetMixPayDetail(orderWay.OrderID) - if err != nil { - return 0, err - } - globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) - userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") - if err != nil { - return 0, err - } - globals.SugarLogger.Debug("输出userBill", userBill1.AccountBalance) + //mixPayInfo1, err := dao.GetMixPayDetail(orderWay.OrderID) + //if err != nil { + // return 0, err + //} + //globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) + //userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") + //if err != nil { + // return 0, err + //} + //globals.SugarLogger.Debug("输出userBill", userBill1.AccountBalance) //////////////// globals.SugarLogger.Debug("回调进入微信退款") globals.SugarLogger.Debug("orderWay==============", orderWay) @@ -494,12 +494,14 @@ func RefundOrderByTL(ctx *jxcontext.Context, orderPay *model.Order, order *model dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) db := dao.GetDB() if result.TrxStatus == tonglianpayapi.TrxStatusSuccess { + globals.SugarLogger.Debug("dfjiaojfiaojfa") orderPayRefund.Status = model.RefundStatusYes } else { + globals.SugarLogger.Debug("gedgsedgresgwagwg") orderPayRefund.Status = model.RefundStatusFailed } orderPayRefund.OriginalData = utils.Format4Output(result, true) - + globals.SugarLogger.Debug("saferhgtrhew", orderPayRefund.OriginalData) tx, _ := dao.Begin(db) defer func() { if r := recover(); r != nil { @@ -517,11 +519,13 @@ func RefundOrderByTL(ctx *jxcontext.Context, orderPay *model.Order, order *model dao.Rollback(db, tx) return nil, err } + globals.SugarLogger.Debug("rtryjyttyejrthg") orderPay.Status = model.OrderStatusCancel if _, err := dao.UpdateEntityTx(tx, orderPay); err != nil { dao.Rollback(db, tx) return nil, err } + globals.SugarLogger.Debug("ferbdebere") dao.Commit(db, tx) } From 0494432fa1108da1d1b6ebc36a81f94bf08b9b4f Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 15:30:04 +0800 Subject: [PATCH 52/61] pay --- business/q_bida/q_bida_server.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 685fa3973..c870439cf 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -475,12 +475,14 @@ func CreateOrder2QBiDa(order *model.UserVendorOrder, orderId string) error { // RefundOrderByTL 发起取消订单 func RefundOrderByTL(ctx *jxcontext.Context, orderPay *model.Order, order *model.UserVendorOrder, refundID string, refundFee int, refundDesc string) (orderPayRefund *model.OrderPayRefund, err error) { + globals.SugarLogger.Debug("进入取消订单流程") result, err := api.TLpayAPI.PayRefund(&tonglianpayapi.PayRefundParam{ Trxamt: refundFee, Reqsn: utils.GetUUID(), Remark: refundDesc, OldTrxID: orderPay.TransactionID, }) + globals.SugarLogger.Debug("result===============", result) if err == nil { orderPayRefund = &model.OrderPayRefund{ RefundID: refundID, From a73dfb65277ee1a4d96e9fc8eabca60bfdc71147 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 16:17:45 +0800 Subject: [PATCH 53/61] pay --- business/jxstore/cms/order.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 5e58ace30..d26b6d71a 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -120,18 +120,25 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderID); err != nil { return nil, err } - if _, err := dao.UpdateEntityTx(txDB, order); err != nil { - return nil, err - } + //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { + // return nil, err + //} globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.OrderID, order.PayPrice, order.PayMethod) globals.SugarLogger.Debug("经过更新操作后的数据after=========================", order.PayPrice) globals.SugarLogger.Debugf("pay begin……") - err = dao.GetEntity(db, order, "OrderID") - if order.OrderID == "" { - return result, fmt.Errorf("未找到此订单!") + //err = dao.GetEntity(db, order, "OrderID") + //if order.OrderID == "" { + // return result, fmt.Errorf("未找到此订单!") + //} + + info, err := dao.GetOrderByID(db, orderID) + if err != nil { + return nil, err } - payHandler.Order = order - globals.SugarLogger.Debug("再次从数据库获得order详情", payHandler.Order.PayPrice, payHandler.Order.PayMethod) + globals.SugarLogger.Debug("Order再次从数据库获得order详情", info.PayPrice, info.PayMethod) + payHandler.Order = info + + globals.SugarLogger.Debug("payHandler.Order再次从数据库获得order详情", payHandler.Order.PayPrice, payHandler.Order.PayMethod) //如果用户没有对应账单信息就给他生成一条 // 给用户创建一个银行卡账户 globals.SugarLogger.Debug("create bill begin……") From d7c472372e906f60efc5d5f284ec583823f75afb Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 16:27:06 +0800 Subject: [PATCH 54/61] pay --- business/jxstore/cms/order.go | 2 +- business/jxstore/financial/financial.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index d26b6d71a..766d74a7e 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -148,7 +148,7 @@ func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType, app err = financial.AddUserBill(txDB, jxutils.GenBillID(), order.UserID) } err = payHandler.CreatePay(txDB, appId) - globals.SugarLogger.Debug("the last step of this program,return err……", err) + globals.SugarLogger.Debug("the last step o f this program,return err……", err) globals.SugarLogger.Debugf("result : %v", utils.Format4Output(payHandler.WxPayParam, false)) return payHandler.WxPayParam, err } diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index c51e4d631..87fb8192b 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -260,7 +260,7 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { order.PayFinishedAt = t1 order.OriginalData = utils.Format4Output(call, true) payStatus := 0 - order.PayMethod = 2 // 通联微信支付 + //order.PayMethod = 2 // 通联微信支付 if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { order.Status = model.OrderStatusFinished payStatus = model.OrderStatusSuccessPay From 8cd081671907274bf0a47f40ef574fe4525cd03b Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:00:54 +0800 Subject: [PATCH 55/61] pay --- business/jxstore/cms/order.go | 42 +++++++++++++++++------------- business/jxstore/financial/bill.go | 3 +++ business/model/dao/dao_order.go | 6 +++-- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 766d74a7e..984f0092b 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -117,7 +117,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, orderID); err != nil { + if _, err := dao.SetOrderStatus(temp_PayPrice, temp_PayMethod, orderInfo.Status, orderID); err != nil { return nil, err } //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { @@ -189,27 +189,33 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, PayPrice: orderInfo.PayPrice, PayMethod: 1, //余额支付 } - 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) + // } + // dao.Commit(db, txDB) + //}() //增加账单 余额减去相应金额 - if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, order.PayPrice, 0); err != nil { - dao.Rollback(db, txDB) - return nil, "使用余额支付失败:", err + money := userBill.AccountBalance - orderInfo.PayPrice + if err = dao.UpdateUserBill(userBill.UserID, money); err != nil { + return nil, "余额支付失败", err } + //if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, orderInfo.PayPrice, 0); err != nil { + // //dao.Rollback(db, txDB) + // return nil, "使用余额支付失败:", err + //} //更新订单状态 - order = &model.Order{ - Status: 110, //支付成功 + order.Status = 110 + order.PayMethod = 1 + if _, err := dao.SetOrderStatus(orderInfo.PayPrice, 1, 110, orderID); err != nil { + return nil, "更新order状态失败", err } - if _, err := dao.UpdateEntityTx(txDB, order, "Status"); err != nil { - dao.Rollback(db, txDB) - return nil, "", err - } - dao.Commit(db, txDB) + //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { + // dao.Rollback(db, txDB) + // return nil, "", err + //} + //dao.Commit(db, txDB) } if isChoose == Choose { //(1)用户不使用余额或者余额=0 即直接微信支付 diff --git a/business/jxstore/financial/bill.go b/business/jxstore/financial/bill.go index 396fda19e..e368bb0c6 100644 --- a/business/jxstore/financial/bill.go +++ b/business/jxstore/financial/bill.go @@ -7,6 +7,7 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/client/orm" "time" ) @@ -41,6 +42,7 @@ func AddBillExpend(txDB orm.TxOrmer, billID int64, billType, expendPrice, jobID ExpendPrice: expendPrice, JobID: jobID, } + globals.SugarLogger.Debug("进入AddBillExpend") dao.WrapAddIDCULEntity(billExpend, jxcontext.AdminCtx.GetUserName()) return dao.CreateEntityTx(txDB, billExpend) } @@ -68,6 +70,7 @@ func GetUserBillDetail(ctx *jxcontext.Context, userID, fromTime, toTime string, func AddExpendUpdateAccount(txDB orm.TxOrmer, userBill *model.UserBill, billType, price, jobID int) (err error) { //1、账户支出增加一条记录 + globals.SugarLogger.Debug("进入AddExpendUpdateAccount") err = AddBillExpend(txDB, userBill.BillID, billType, price, jobID) if err != nil { return err diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 234af6260..1124ad746 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -687,10 +687,12 @@ func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg } //更新order 价格和状态 -func SetOrderStatus(payPrice, payMethod int, orderID string) (string, error) { +func SetOrderStatus(payPrice, payMethod, status int, orderID string) (string, error) { - if _, err := ExecuteSQL(GetDB(), "UPDATE `order` SET pay_price = ?,pay_method= ? WHERE order_id = ? ", []interface{}{payPrice, payMethod, orderID}...); err != nil { + if _, err := ExecuteSQL(GetDB(), "UPDATE `order` SET pay_price = ?,pay_method= ?,status=? WHERE order_id = ? ", []interface{}{payPrice, payMethod, status, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil } + +//更新order 支付状态和 From 766a35d2f3453c59018d996b9ad508d0eadc82d9 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:05:31 +0800 Subject: [PATCH 56/61] pay --- business/jxstore/cms/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 984f0092b..a846a4a7b 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -183,7 +183,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, globals.SugarLogger.Debug("进入账单未支付") globals.SugarLogger.Debug("user_bill.balance==================", userBill.AccountBalance) // (3)使用余额且 余额大于支付金额 - if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && isChoose == NotChoose { + if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && isChoose == Choose { globals.SugarLogger.Debug("进入余额支付部分") var order = &model.Order{ PayPrice: orderInfo.PayPrice, From dd9b616371253eeee83a4793b26bac6ae34b0477 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:10:30 +0800 Subject: [PATCH 57/61] pay --- business/jxstore/cms/order.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index a846a4a7b..9791db521 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -185,10 +185,6 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, // (3)使用余额且 余额大于支付金额 if userBill.AccountBalance > 0 && userBill.AccountBalance > orderInfo.PayPrice && isChoose == Choose { globals.SugarLogger.Debug("进入余额支付部分") - var order = &model.Order{ - PayPrice: orderInfo.PayPrice, - PayMethod: 1, //余额支付 - } //txDB, _ := dao.Begin(db) //defer func() { // if r := recover(); r != nil { @@ -197,6 +193,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, // dao.Commit(db, txDB) //}() //增加账单 余额减去相应金额 + globals.SugarLogger.Debug("增加账单 余额减去相应金额") money := userBill.AccountBalance - orderInfo.PayPrice if err = dao.UpdateUserBill(userBill.UserID, money); err != nil { return nil, "余额支付失败", err @@ -206,8 +203,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, // return nil, "使用余额支付失败:", err //} //更新订单状态 - order.Status = 110 - order.PayMethod = 1 + globals.SugarLogger.Debug("更新订单状态") if _, err := dao.SetOrderStatus(orderInfo.PayPrice, 1, 110, orderID); err != nil { return nil, "更新order状态失败", err } From 3dd5cf5910418204af77d9df597bfdce8e03d3be Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:19:55 +0800 Subject: [PATCH 58/61] pay --- business/jxstore/cms/order.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 9791db521..730644fad 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -204,7 +204,9 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, //} //更新订单状态 globals.SugarLogger.Debug("更新订单状态") - if _, err := dao.SetOrderStatus(orderInfo.PayPrice, 1, 110, orderID); err != nil { + temp_method := 1 + temp_status := 110 + if _, err := dao.SetOrderStatus(orderInfo.PayPrice, temp_method, temp_status, orderID); err != nil { return nil, "更新order状态失败", err } //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { From f102b2753c8c7f177bd5336084c2d87f84eac14e Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:39:35 +0800 Subject: [PATCH 59/61] pay --- business/jxstore/cms/order.go | 6 ++++++ controllers/q_bida.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 730644fad..ba0b29bbb 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -179,6 +179,7 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, if err != nil { return nil, "获取用户会员账户余额失败", err } + if orderInfo.Status == NotPay { globals.SugarLogger.Debug("进入账单未支付") globals.SugarLogger.Debug("user_bill.balance==================", userBill.AccountBalance) @@ -209,6 +210,11 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, if _, err := dao.SetOrderStatus(orderInfo.PayPrice, temp_method, temp_status, orderID); err != nil { return nil, "更新order状态失败", err } + userOrder := model.UserVendorOrder{LocalWayBill: orderInfo.OrderID} + userOrder.OrderStatus = 4 //快递单已支付 + if _, err := dao.UpdateEntity(db, &userOrder, "OrderStatus"); err != nil { + return nil, "更新user_vendor_order状态失败", err + } //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { // dao.Rollback(db, txDB) // return nil, "", err diff --git a/controllers/q_bida.go b/controllers/q_bida.go index 3b718167b..e16c7b240 100644 --- a/controllers/q_bida.go +++ b/controllers/q_bida.go @@ -159,7 +159,7 @@ func (c *QBiDaExpressController) CancelWayVendorOrder() { }) } -// QueryUserOrderList 获取用户订单列表QueryUserOrderList +// pay 获取用户订单列表QueryUserOrderList // @Title Q必达 // @Description 获取用户订单列表 // @Param token header string true "管理员token" From 5eff50358a2deaec1788a5d2ad56ea7941920db0 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Wed, 3 Aug 2022 17:59:44 +0800 Subject: [PATCH 60/61] pay --- business/jxstore/cms/order.go | 14 ++------------ business/model/dao/dao_order.go | 18 ++++-------------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index ba0b29bbb..58dd51e93 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -199,10 +199,6 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, if err = dao.UpdateUserBill(userBill.UserID, money); err != nil { return nil, "余额支付失败", err } - //if err = financial.AddExpendUpdateAccount(txDB, userBill, model.BillTypePayByAccountBalance, orderInfo.PayPrice, 0); err != nil { - // //dao.Rollback(db, txDB) - // return nil, "使用余额支付失败:", err - //} //更新订单状态 globals.SugarLogger.Debug("更新订单状态") temp_method := 1 @@ -210,16 +206,10 @@ func PayByBalance(ctx *jxcontext.Context, orderID string, isChoose, payType int, if _, err := dao.SetOrderStatus(orderInfo.PayPrice, temp_method, temp_status, orderID); err != nil { return nil, "更新order状态失败", err } - userOrder := model.UserVendorOrder{LocalWayBill: orderInfo.OrderID} - userOrder.OrderStatus = 4 //快递单已支付 - if _, err := dao.UpdateEntity(db, &userOrder, "OrderStatus"); err != nil { + temp_vendor_status := 4 + if _, err := dao.SetUserVendorOrderStatus(orderInfo.OrderID, temp_vendor_status); err != nil { return nil, "更新user_vendor_order状态失败", err } - //if _, err := dao.UpdateEntityTx(txDB, order); err != nil { - // dao.Rollback(db, txDB) - // return nil, "", err - //} - //dao.Commit(db, txDB) } if isChoose == Choose { //(1)用户不使用余额或者余额=0 即直接微信支付 diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 1124ad746..3dfd7e6e6 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -669,19 +669,9 @@ func GetUnionOrdersPage(db *DaoDB, vendorIDs, statuss []int, beginTime, endTime return page, err } -func SetUserVendorOrderStatus(db *DaoDB, localWayBillID string, status int) (msg string, err error) { - sqlParams := []interface{}{} - sql := `UPDATE user_vendor_order a SET a.order_status = ?` - if status > 0 { - sqlParams = append(sqlParams, status) - } - if localWayBillID != "" { - sql += `WHERE a.local_way_bill = ?` - sqlParams = append(sqlParams, localWayBillID) - } - Infos := &model.UserVendorOrder{} - if err := GetRow(db, Infos, sql, sqlParams); err != nil { - return "更新UserVendorOrder状态失败", err +func SetUserVendorOrderStatus(localWayBillID string, status int) (msg string, err error) { + if _, err := ExecuteSQL(GetDB(), "UPDATE `user_vendor_order` SET order_status = ? WHERE local_way_bill = ? ", []interface{}{status, localWayBillID}...); err != nil { + return "", err } return "更新UserVendorOrder状态成功", err } @@ -695,4 +685,4 @@ func SetOrderStatus(payPrice, payMethod, status int, orderID string) (string, er return "更新Order状态成功", nil } -//更新order 支付状态和 +//更新user_vendor_order 支付状态 From 97baf97d97e1c5fb1bcb05a1508237c3c50b1aba Mon Sep 17 00:00:00 2001 From: richboo111 Date: Thu, 4 Aug 2022 09:42:51 +0800 Subject: [PATCH 61/61] pay --- business/jxstore/cms/order.go | 43 ++++++++++++++++++++++++-------- business/model/dao/dao_order.go | 8 +++--- business/q_bida/q_bida_server.go | 16 +++--------- 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 58dd51e93..b91599b19 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -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 即直接微信支付 diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3dfd7e6e6..f974b8de4 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1,6 +1,7 @@ package dao import ( + "github.com/astaxie/beego/client/orm" "time" "git.rosy.net.cn/baseapi/utils" @@ -669,7 +670,8 @@ func GetUnionOrdersPage(db *DaoDB, vendorIDs, statuss []int, beginTime, endTime return page, err } -func SetUserVendorOrderStatus(localWayBillID string, status int) (msg string, err error) { +//更新user_vendor_order 支付状态 +func SetUserVendorOrderStatus(tx orm.TxOrmer, localWayBillID string, status int) (msg string, err error) { if _, err := ExecuteSQL(GetDB(), "UPDATE `user_vendor_order` SET order_status = ? WHERE local_way_bill = ? ", []interface{}{status, localWayBillID}...); err != nil { return "", err } @@ -677,12 +679,10 @@ func SetUserVendorOrderStatus(localWayBillID string, status int) (msg string, er } //更新order 价格和状态 -func SetOrderStatus(payPrice, payMethod, status int, orderID string) (string, error) { +func SetOrderStatus(tx orm.TxOrmer, payPrice, payMethod, status int, orderID string) (string, error) { if _, err := ExecuteSQL(GetDB(), "UPDATE `order` SET pay_price = ?,pay_method= ?,status=? WHERE order_id = ? ", []interface{}{payPrice, payMethod, status, orderID}...); err != nil { return "", err } return "更新Order状态成功", nil } - -//更新user_vendor_order 支付状态 diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index c870439cf..9a3dd2322 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -254,6 +254,7 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd return FailCode, err } globals.SugarLogger.Debug("回调获取user_bill详情", userBill) + if orderWay.Status == 110 { if orderWay.PayMethod == 1 { // 余额支付 txDB, _ := dao.Begin(db) @@ -298,24 +299,12 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd if _, err := dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil { return FailCode, err } - //更新mixPay 状态 mixPayInfo.Status = -1 //model.BillMixPayRefund1 //退款状态 if _, err := dao.UpdateEntity(db, mixPayInfo, "Status"); err != nil { return FailCode, err } - ///////////// - //mixPayInfo1, err := dao.GetMixPayDetail(orderWay.OrderID) - //if err != nil { - // return 0, err - //} - //globals.SugarLogger.Debug("输出mixPayInfo1的status", mixPayInfo1.Status) - //userBill1, err := dao.GetUserBill(db, orderWay.UserID, "") - //if err != nil { - // return 0, err - //} - //globals.SugarLogger.Debug("输出userBill", userBill1.AccountBalance) - //////////////// + globals.SugarLogger.Debug("回调进入微信退款") globals.SugarLogger.Debug("orderWay==============", orderWay) globals.SugarLogger.Debug("order==============", order) @@ -483,6 +472,7 @@ func RefundOrderByTL(ctx *jxcontext.Context, orderPay *model.Order, order *model OldTrxID: orderPay.TransactionID, }) globals.SugarLogger.Debug("result===============", result) + globals.SugarLogger.Debug("errerrerr===============", err) if err == nil { orderPayRefund = &model.OrderPayRefund{ RefundID: refundID,