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

View File

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

View File

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

View File

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