This commit is contained in:
邹宗楠
2023-08-28 13:32:18 +08:00
parent 315babf4a2
commit ec3b5d1a9f
4 changed files with 68 additions and 48 deletions

View File

@@ -994,14 +994,12 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
}
}
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
savedOrderInfo.retryCount++
} else {
partner.CurOrderManager.OnOrderMsg(order, utils.Int2Str(vendorID), fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],创建失败:%v", jxutils.GetVendorName(vendorID), err))
//content := "您的门店 [" + storeDetail.Name + "]OrderID:[" + order.VendorOrderID + "],自动呼叫骑手失败[" + fmt.Sprintf(err.Error()) + "],请手动呼叫骑手"
//if user, err := dao.GetUserByID(dao.GetDB(), "mobile", storeDetail.MarketManPhone); err == nil {
// ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "平台门店状态变化", content)
//}
if vendorID != model.NO {
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
savedOrderInfo.retryCount++
} else {
partner.CurOrderManager.OnOrderMsg(order, utils.Int2Str(vendorID), fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],创建失败:%v", jxutils.GetVendorName(vendorID), err))
}
}
}
} else {

View File

@@ -1,7 +1,6 @@
package ebai
import (
"encoding/json"
"errors"
"fmt"
"math"
@@ -679,26 +678,30 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
return fmt.Errorf("拒绝退单时,请填写拒单原因")
}
param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: afsOrderInfo.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeRefuse,
ReasonCode: "7001",
ReasonRemarks: reason,
RefundProductList: "",
ReverseOrderId: afsOrderInfo.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeRefuse,
ReasonCode: "7001",
ReasonRemarks: reason,
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{
SubBizOrderId: v.(map[string]interface{})["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v.(map[string]interface{})["platform_sku_id"], 0)),
SubBizOrderId: v2["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
}
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
case 0:
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
case 1:
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
}
refundProductList = append(refundProductList, refundProduct)
}
refundProductListStr, _ := json.Marshal(refundProductList)
param.RefundProductList = string(refundProductListStr)
param.RefundProductList = refundProductList
err = api.EbaiAPI.OrderDisagreeRefund(param)
}
}

View File

@@ -1,7 +1,6 @@
package ebai
import (
"encoding/json"
"errors"
"fmt"
"strings"
@@ -231,39 +230,42 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
return fmt.Errorf("拒绝退单时请填写原因")
}
param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeRefuseGoods,
ReasonCode: "7001",
ReasonRemarks: reason,
RefundProductList: "",
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeRefuseGoods,
ReasonCode: "7001",
ReasonRemarks: reason,
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{
SubBizOrderId: v.(map[string]interface{})["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v.(map[string]interface{})["platform_sku_id"], 0)),
SubBizOrderId: v2["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
}
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
case 0:
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
case 1:
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
}
refundProductList = append(refundProductList, refundProduct)
}
refundProductListStr, _ := json.Marshal(refundProductList)
param.RefundProductList = string(refundProductListStr)
param.RefundProductList = refundProductList
err = api.EbaiAPI.OrderDisagreeReturnGoods(param)
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
return errors.New("此平台暂时不支持")
} else {
param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgreeGoods,
ReasonCode: "",
ReasonRemarks: reason,
RefundProductList: "",
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgreeGoods,
ReasonCode: "",
ReasonRemarks: reason,
}
err = api.EbaiAPI.OrderAgreeReturnGoods(param)
}
@@ -297,14 +299,30 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
//售后部分多次退款
if order.Status > model.OrderStatusEndBegin {
param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: afsOrderInfo.AfsOrderID,
OrderId: afsOrderInfo.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgree,
ReasonCode: "",
ReasonRemarks: reason,
RefundProductList: "",
ReverseOrderId: afsOrderInfo.AfsOrderID,
OrderId: afsOrderInfo.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgree,
ReasonCode: "",
ReasonRemarks: reason,
}
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{
SubBizOrderId: v2["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
}
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
case 0:
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
case 1:
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
}
refundProductList = append(refundProductList, refundProduct)
}
param.RefundProductList = refundProductList
err = api.EbaiAPI.OrderAgreePartRefund(param)
} else {
if reason == "" {

View File

@@ -180,6 +180,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
order.BusinessType = model.BusinessTypeImmediate
order.ExpectedDeliveredTime = getTimeFromTimestamp(earliestTime + 30*60) // 预计最晚送达时间
}
order.PickDeadline = order.ExpectedDeliveredTime.Add(-1 * time.Hour)
// 用户信息
order.ConsigneeName = *orderDetail.ReceiveInfo.ReceiverName