将美团和饿百取消订单申请索赔整合到interface中
This commit is contained in:
@@ -4,13 +4,10 @@ import (
|
|||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
|
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
|
|
||||||
"math"
|
"math"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -281,18 +278,16 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
|
|||||||
order2.OrderFinishedAt = time.Now()
|
order2.OrderFinishedAt = time.Now()
|
||||||
dao.UpdateEntity(db, order2, "OrderFinishedAt")
|
dao.UpdateEntity(db, order2, "OrderFinishedAt")
|
||||||
}
|
}
|
||||||
if orderStatus.Status == model.OrderStatusCanceled && orderStatus.VendorID == model.VendorIDMTWM {
|
|
||||||
num, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", utils.Int64ToFloat64(order2.TotalShopMoney)/float64(100)), 64)
|
if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil && (orderStatus.VendorID == model.VendorIDMTWM || orderStatus.VendorID == model.VendorIDEBAI) {
|
||||||
applyErr := mtwm.GetAPI(order2.VendorOrgCode, order2.StoreID, order2.VendorStoreID).ApplyCompensation(&mtwmapi.ApplyCompensationRes{
|
compensation, applyErr := handler.ApplyCompensationOrder(order2)
|
||||||
OrderId: utils.Str2Int64(order2.VendorOrderID),
|
|
||||||
Reason: "商户申请",
|
|
||||||
ApplyStatus: mtwmapi.ApplyCompensationStatusOne,
|
|
||||||
Amount: num,
|
|
||||||
})
|
|
||||||
if applyErr != nil {
|
if applyErr != nil {
|
||||||
partner.CurOrderManager.OnOrderMsg(order2, utils.Int2Str(order2.Status), fmt.Sprintf("取消订单申请赔付失败:%s", applyErr.Error()))
|
partner.CurOrderManager.OnOrderMsg(order2, utils.Int2Str(order2.Status), fmt.Sprintf("取消订单申请赔付失败:%s", applyErr.Error()))
|
||||||
} else {
|
} else {
|
||||||
partner.CurOrderManager.OnOrderMsg(order2, utils.Int2Str(order2.Status), fmt.Sprintf("取消订单申请赔付:%s", "成功"))
|
if compensation == "" {
|
||||||
|
compensation = "成功"
|
||||||
|
}
|
||||||
|
partner.CurOrderManager.OnOrderMsg(order2, utils.Int2Str(order2.Status), fmt.Sprintf("取消订单申请赔付:%s", compensation))
|
||||||
}
|
}
|
||||||
|
|
||||||
if order2.Status != model.OrderStatusCanceled {
|
if order2.Status != model.OrderStatusCanceled {
|
||||||
|
|||||||
@@ -544,6 +544,36 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 已经分配骑手,且超过十五分钟,不扣款
|
||||||
|
var cancelTime int64 = 0
|
||||||
|
var assignedTime int64 = 0
|
||||||
|
for i := 0; i < len(order.EventLogDetails); i++ {
|
||||||
|
switch order.EventLogDetails[i].OrderStatus {
|
||||||
|
case fnpsapi.OrderStatusAcceptCacle, fnpsapi.OrderStatusException: // 取消和异常状态,跳过查看上一状态
|
||||||
|
cancelTime = order.EventLogDetails[i].OccurTime
|
||||||
|
case fnpsapi.OrderStatusAssigned:
|
||||||
|
assignedTime = order.EventLogDetails[i].OccurTime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 还没分配骑手
|
||||||
|
nowTime := time.Now().UnixNano() / 1e6
|
||||||
|
if assignedTime == 0 {
|
||||||
|
return 0, nil
|
||||||
|
} else if cancelTime == 0 && assignedTime != 0 {
|
||||||
|
if nowTime-assignedTime > fnpsapi.WayBillPressureOrderTime || nowTime-assignedTime <= fnpsapi.WayBillPressureOrderTime2 {
|
||||||
|
return 0, nil
|
||||||
|
} else {
|
||||||
|
return 200, nil
|
||||||
|
}
|
||||||
|
} else if assignedTime != 0 && cancelTime != 0 {
|
||||||
|
if cancelTime-assignedTime > fnpsapi.WayBillPressureOrderTime || cancelTime-assignedTime > fnpsapi.WayBillPressureOrderTime2 {
|
||||||
|
return 0, nil
|
||||||
|
} else {
|
||||||
|
return 200, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if localPrice > vendorPrice {
|
if localPrice > vendorPrice {
|
||||||
return localPrice, nil
|
return localPrice, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,6 +91,9 @@ type IPurchasePlatformOrderHandler interface {
|
|||||||
GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error)
|
GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error)
|
||||||
// GetPlatformLogisticsFee 获取美团自配送订单的配送费
|
// GetPlatformLogisticsFee 获取美团自配送订单的配送费
|
||||||
GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error)
|
GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error)
|
||||||
|
|
||||||
|
// 美团和饿百的订单索赔
|
||||||
|
ApplyCompensationOrder(order *model.GoodsOrder) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IAddWaybillTip interface {
|
type IAddWaybillTip interface {
|
||||||
|
|||||||
@@ -83,8 +83,6 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int {
|
|||||||
|
|
||||||
func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) {
|
func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) {
|
||||||
order, _, err = p.getOrder(vendorOrderID)
|
order, _, err = p.getOrder(vendorOrderID)
|
||||||
globals.SugarLogger.Debugf("---------order GetOrder := %s", utils.Format4Output(order, false))
|
|
||||||
globals.SugarLogger.Debugf("---------order err := %v", err)
|
|
||||||
return order, err
|
return order, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1012,3 +1010,36 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
afsOrderList, err := dao.GetAfsOrders(dao.GetDB(), order.VendorID, order.VendorOrderID, "")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
refundList := make([]*ebaiapi.ApplyCompensationList, 0, 0)
|
||||||
|
for _, v := range afsOrderList {
|
||||||
|
if v.AfsOrderID != v.VendorOrderID {
|
||||||
|
refundList = append(refundList, &ebaiapi.ApplyCompensationList{
|
||||||
|
RefundId: v.AfsOrderID,
|
||||||
|
CompensationReason: ebaiapi.CompensationCodeE1,
|
||||||
|
Description: "分配骑手缓慢/骑手到店缓慢",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(refundList) > 0 {
|
||||||
|
result, err := api.EbaiAPI.ApplyCompensation(order.VendorOrderID, refundList)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
compensationStation := make([]string, 0, 0)
|
||||||
|
for _, r := range result {
|
||||||
|
compensationStation = append(compensationStation, fmt.Sprintf("售后ID:%s,索赔状态:%s,失败:%s", r.RefundId, r.CompensationStatusDesc, r.CompensationFailDesc))
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Join(compensationStation, ","), nil
|
||||||
|
}
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|||||||
@@ -349,3 +349,8 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -697,3 +697,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(goods *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "",nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -338,3 +338,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -166,3 +166,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "",nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||||
"net/url"
|
"net/url"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -1030,3 +1031,14 @@ func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int6
|
|||||||
|
|
||||||
return utils.Float64TwoInt64(fee * 100), nil
|
return utils.Float64TwoInt64(fee * 100), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
num, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", utils.Int64ToFloat64(order.TotalShopMoney)/float64(100)), 64)
|
||||||
|
return "", getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").ApplyCompensation(&mtwmapi.ApplyCompensationRes{
|
||||||
|
OrderId: utils.Str2Int64(order.VendorOrderID),
|
||||||
|
Reason: "商户申请",
|
||||||
|
ApplyStatus: mtwmapi.ApplyCompensationStatusOne,
|
||||||
|
Amount: num,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -986,3 +986,8 @@ func GetOrderTotalShopMoney(appOrgCode string, vendorStoreID string, start, end
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "",nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -1111,3 +1111,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -317,3 +317,8 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -117,3 +117,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyCompensationOrder 订单索赔
|
||||||
|
func (c *PurchaseHandler) ApplyCompensationOrder(order *model.GoodsOrder) (string, error) {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user