diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index 9d561a5d2..1106c74e2 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -309,10 +309,28 @@ func onTLpayRefund(call *tonglianpayapi.CallBackResult) (err error) { } if err = dao.GetEntity(db, orderPay, "VendorOrderID"); err == nil { orderPay.Status = model.OrderStatusCancel - dao.UpdateEntity(db, orderPay) + } + if orderPay.OrderType == model.PayType4Express { + tx, _ := dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db, tx) + panic(r) + } + }() + + if _, err = dao.UpdateEntityTx(tx, orderPay); err != nil { + tx.Rollback() + return err + } + if _, err = dao.UpdateEntityTx(tx, &model.UserVendorOrder{LocalWayBill: call.CusorderID, OrderStatus: model.OrderStatusCancel}, "OrderStatus"); err != nil { + tx.Rollback() + return err + } + tx.Commit() + return err } - dao.UpdateEntity(db, &model.UserVendorOrder{LocalWayBill: call.CusorderID, OrderStatus: model.OrderStatusCancel}, "OrderStatus") return err } diff --git a/business/q_bida/q_bida_server.go b/business/q_bida/q_bida_server.go index 1e1a9e9de..5d382b43b 100644 --- a/business/q_bida/q_bida_server.go +++ b/business/q_bida/q_bida_server.go @@ -10,6 +10,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" "git.rosy.net.cn/jx-callback/globals/api" "time" ) @@ -225,7 +226,7 @@ func QueryOrderDetail(typeCode int, orderNo string) (*bida.OrderDetail, error) { } // QueryUserOrderList 查询用户订单列表 -func QueryUserOrderList(userId string, expressType, orderStatus int, pageNum, pageSize int, orderNo string) ([]*model.UserOrderList, error) { +func QueryUserOrderList(userId string, expressType, orderStatus int, pageNum, pageSize int, orderNo string) ([]*model.UserOrderList, int, error) { sql := ` SELECT a.type,a.other_way_bill,a.local_way_bill,a.user_id,a.receive_address_id,a.sender_address_id, a.created_at,a.order_status,a.channel_fee,add1.consignee_name send_user_name,add2.consignee_name receive_user_name, @@ -251,6 +252,8 @@ func QueryUserOrderList(userId string, expressType, orderStatus int, pageNum, pa sql = sql + ` AND a.order_status = ? ` param = append(param, orderStatus) } + + // 获取数据条数 sql = sql + ` ORDER BY a.created_at DESC LIMIT ? OFFSET ? ` pageSize = jxutils.FormalizePageSize(pageSize) param = append(param, pageSize, (pageNum-1)*pageSize) @@ -258,9 +261,12 @@ func QueryUserOrderList(userId string, expressType, orderStatus int, pageNum, pa // 获取数据 var result []*model.UserOrderList if err := dao.GetRows(dao.GetDB(), &result, sql, param...); err != nil { - return nil, err + return nil, 0, err } - return result, nil + + count := dao.GetLastTotalRowCount(dao.GetDB()) + + return result, count, nil } // CreateOrder2QBiDa 订单回调成功,且为运费支付时使用该接口 @@ -272,6 +278,10 @@ func CreateOrder2QBiDa(orderId string) error { 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 ") + } // 创建QBIDA订单 makeOrder := &bida.MakeOrderReq{ PromiseTimeType: order.PromiseTimeType, diff --git a/controllers/q_bida.go b/controllers/q_bida.go index 16df0a012..c82e86443 100644 --- a/controllers/q_bida.go +++ b/controllers/q_bida.go @@ -172,11 +172,12 @@ func (c *QBiDaExpressController) CancelWayVendorOrder() { // @router /QueryUserOrderList [post] func (c *QBiDaExpressController) QueryUserOrderList() { c.callQueryUserOrderList(func(params *tExpressQueryUserOrderListParams) (interface{}, string, error) { - result, err := bidaServer.QueryUserOrderList(params.Ctx.GetUserID(), params.ExpressType, params.OrderStatus, params.PageNum, params.PageSize, params.OrderNo) + result, count, err := bidaServer.QueryUserOrderList(params.Ctx.GetUserID(), params.ExpressType, params.OrderStatus, params.PageNum, params.PageSize, params.OrderNo) if err != nil { return nil, "", err } - return result, "", err + + return map[string]interface{}{"result": result, "count": count}, "", err }) }