取消快递订单

This commit is contained in:
richboo111
2022-07-27 16:40:14 +08:00
parent a7315ffa36
commit b7e26a3843
2 changed files with 20 additions and 33 deletions

View File

@@ -197,31 +197,22 @@ func CreateWayOrder(ctx *jxcontext.Context, param *model.MakeOrderParamReq, user
} }
// CancelWayOrder 取消运单 todo // CancelWayOrder 取消运单 todo
func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrderReq) error { func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrderReq) (int, error) {
var ( var (
FailCode = -1
SuccessCode = 0
tmp_orderNo = param.OrderNo tmp_orderNo = param.OrderNo
db = dao.GetDB() db = dao.GetDB()
) )
// 查询订单 // 查询订单
globals.SugarLogger.Debug("userid==================", userId)
globals.SugarLogger.Debug("param.order_no==================", param.OrderNo)
order, err := dao.GetUserVendorOrder(db, userId, param.OrderNo) order, err := dao.GetUserVendorOrder(db, userId, param.OrderNo)
if err != nil { if err != nil {
globals.SugarLogger.Debug("err=================", err) return FailCode, err
return err
} }
//order := &model.UserVendorOrder{UserId: userId, LocalWayBill: param.OrderNo}
//if err := dao.GetEntity(dao.GetDB(), order, "UserId", "LocalWayBill"); err != nil {
// return err
//}
globals.SugarLogger.Debugf("sdhgeagqweg344w33qgweag== %s ", order.OtherWayBill)
globals.SugarLogger.Debugf("jbhbhjdsgbgjhghiwsg== %s ", order.LastOperator)
if time.Now().Unix()-order.CreatedAt.Unix() <= 30 { if time.Now().Unix()-order.CreatedAt.Unix() <= 30 {
return errors.New("支付成功后超过30s才能取消") return FailCode, errors.New("支付成功后超过30s才能取消")
} }
// 待支付或者支付失败 // 待支付或者支付失败
globals.SugarLogger.Debugf("order.order_status====================== %d", order.OrderStatus)
switch order.OrderStatus { switch order.OrderStatus {
case model.OrderStatusFailPay, model.OrderStatusWaitPay: // 待支付订单或者支付失败订单不需要退款取消本地订单以及order记录表 case model.OrderStatusFailPay, model.OrderStatusWaitPay: // 待支付订单或者支付失败订单不需要退款取消本地订单以及order记录表
db := dao.GetDB() db := dao.GetDB()
@@ -235,11 +226,11 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd
order.OrderStatus = model.OrderStatusCancel order.OrderStatus = model.OrderStatusCancel
if _, err := dao.UpdateEntityTx(tx, order, "OrderStatus"); err != nil { if _, err := dao.UpdateEntityTx(tx, order, "OrderStatus"); err != nil {
tx.Rollback() tx.Rollback()
return err return FailCode, err
} }
if _, err := dao.UpdateEntityTx(tx, &model.Order{OrderID: param.OrderNo, UserID: userId, Status: model.OrderStatusCancel}, "Status"); err != nil { if _, err := dao.UpdateEntityTx(tx, &model.Order{OrderID: param.OrderNo, UserID: userId, Status: model.OrderStatusCancel}, "Status"); err != nil {
tx.Rollback() tx.Rollback()
return err return FailCode, err
} }
tx.Commit() tx.Commit()
case model.OrderStatusSuccessPay, model.OrderStatusWaitPickup: // 支付成功,取消三方订单,本地转取消状态,,原路退款 case model.OrderStatusSuccessPay, model.OrderStatusWaitPickup: // 支付成功,取消三方订单,本地转取消状态,,原路退款
@@ -250,30 +241,26 @@ func CancelWayOrder(ctx *jxcontext.Context, userId string, param *bida.CancelOrd
Type: param.Type, Type: param.Type,
} }
if err := api.QBiDaAPI.CancelOrder(cancelParma); err != nil { if err := api.QBiDaAPI.CancelOrder(cancelParma); err != nil {
globals.SugarLogger.Debug("err==========================", err) return FailCode, err
} }
// 暂时考虑余额支付渠道加载order表判断支付渠道方式 // 暂时考虑余额支付渠道加载order表判断支付渠道方式
orderWay, err := dao.GetOrderByID(db, tmp_orderNo) orderWay, err := dao.GetOrderByID(db, tmp_orderNo)
if err != nil { if err != nil {
return FailCode, err
return err
} }
globals.SugarLogger.Debug("orderWay.PayPrice==============", orderWay.PayPrice)
globals.SugarLogger.Debug("orderWay.PayMethod==============", orderWay.PayMethod)
//orderWay := &model.Order{OrderID: param.OrderNo, UserID: userId}
//if err := dao.GetEntity(dao.GetDB(), orderWay, "OrderID", "UserID"); err != nil {
// return err
//}
if orderWay.PayMethod == 1 { // 余额支付 if orderWay.PayMethod == 1 { // 余额支付
// 支付方式为余额支付则需要修改order/userVendorOrder修改订单状态给用户账户价钱生成一个价钱数据 // 支付方式为余额支付则需要修改order/userVendorOrder修改订单状态给用户账户价钱生成一个价钱数据
} else if orderWay.PayMethod == 2 { // 微信支付 } else if orderWay.PayMethod == 2 { // 微信支付
// 微信支付原路退款,发起退款申请 // 微信支付原路退款,发起退款申请
_, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款") res, err := RefundOrderByTL(ctx, orderWay, order, order.OtherWayBill, int(order.ChannelFee*100), "申请退款")
return err if len(res.VendorRefundID) > 0 {
return SuccessCode, err
} else {
return FailCode, err
}
} }
} }
return nil return SuccessCode, nil
} }
// QueryOrderDetail 获取订单详细信息 // QueryOrderDetail 获取订单详细信息

View File

@@ -151,11 +151,11 @@ func (c *QBiDaExpressController) CancelWayVendorOrder() {
OrderNo: params.OrderNo, OrderNo: params.OrderNo,
Type: params.Type, Type: params.Type,
} }
code, err := bidaServer.CancelWayOrder(params.Ctx, params.Ctx.GetUserID(), cancel)
if err := bidaServer.CancelWayOrder(params.Ctx, params.Ctx.GetUserID(), cancel); err != nil { if err != nil {
return nil, "", err return code, "", err
} }
return nil, "", nil return code, "", nil
}) })
} }