diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index 7834e4814..9ef959546 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -265,17 +265,32 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { payStatus = model.OrderStatusFailPay } - if _, err := dao.UpdateEntity(db, order); err != nil { - return err - } - if _, err := dao.UpdateEntity(db, &model.UserVendorOrder{LocalWayBill: order.OrderID, OrderStatus: payStatus}, "OrderStatus"); err != nil { + txdb, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + panic(r) + } + }() + if _, err := dao.UpdateEntityTx(txdb, order); err != nil { + dao.Rollback(db, txdb) return err } + userOrder := model.UserVendorOrder{LocalWayBill: order.OrderID} + if err := dao.GetEntity(db, &userOrder, `LocalWayBill`); err != nil { + dao.Rollback(db, txdb) + return err + } + userOrder.OrderStatus = payStatus + if _, err := dao.UpdateEntityTx(txdb, &userOrder, "OrderStatus"); err != nil { + dao.Rollback(db, txdb) + return err + } + dao.Commit(db, txdb) if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { switch order.OrderType { case model.PayType4Express: - err = q_bida.CreateOrder2QBiDa(order.OrderID) + err = q_bida.CreateOrder2QBiDa(&userOrder) case model.PayType4Member, model.PayType4Recharge: err = OnPayFinished(order) } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index e6fb7faf7..5c6a2ee5d 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -325,18 +325,19 @@ func QueryUserOrderList(userId string, expressType, orderStatus int, pageNum, pa } // CreateOrder2QBiDa 订单回调成功,且为运费支付时使用该接口 -func CreateOrder2QBiDa(orderId string) error { - // 加载订单 - order := &model.UserVendorOrder{} - sql := `SELECT * FROM user_vendor_order WHERE local_way_bill = ? ` - if err := dao.GetRow(dao.GetDB(), order, sql, []interface{}{orderId}...); err != nil { - return err - } +func CreateOrder2QBiDa(order *model.UserVendorOrder) error { + //// 加载订单 + //order := &model.UserVendorOrder{} + //sql := `SELECT * FROM user_vendor_order WHERE local_way_bill = ? ` + //if err := dao.GetRow(dao.GetDB(), order, sql, []interface{}{orderId}...); err != nil { + // return err + //} + // + //if order.OrderStatus != model.OrderStatusSuccessPay { + // globals.SugarLogger.Debug("Callback Success But Order Status Update Fail ....") + // return errors.New("Callback Success But Order Status Update Fail ") + //} - if order.OrderStatus != model.OrderStatusSuccessPay { - globals.SugarLogger.Debug("Callback Success But Order Status Update Fail ....") - return errors.New("Callback Success But Order Status Update Fail ") - } // 创建QBIDA订单 makeOrder := &bida.MakeOrderReq{ PromiseTimeType: order.PromiseTimeType, diff --git a/controllers/wxpay_callback.go b/controllers/wxpay_callback.go index dba0951c1..519c8d45e 100644 --- a/controllers/wxpay_callback.go +++ b/controllers/wxpay_callback.go @@ -18,7 +18,6 @@ type WXPayController struct { } func (c *WXPayController) Msg() { - globals.SugarLogger.Debug("ceshihuidiaohanhu================", c.Ctx.Input.Method()) if c.Ctx.Input.Method() == http.MethodPost { msg, callbackResponse := api.WxpayAPI.GetCallbackMsg(c.Ctx.Request) globals.SugarLogger.Debugf("wxpayapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil)