- mtwm售后单
This commit is contained in:
@@ -345,6 +345,12 @@ const (
|
||||
AfsReasonNotOthers = 0 // 其它
|
||||
)
|
||||
|
||||
const (
|
||||
AfsTypeUnknown = 0 // 未知
|
||||
AfsTypePartRefund = 1 // 部分退款
|
||||
AfsTypeFullRefund = 2 // 全额退款
|
||||
)
|
||||
|
||||
func IsPurchaseVendorExist(vendorID int) bool {
|
||||
_, ok := VendorNames[vendorID]
|
||||
return ok && vendorID >= VendorIDPurchaseBegin && vendorID <= VendorIDPurchaseEnd
|
||||
|
||||
@@ -90,6 +90,7 @@ type AfsOrder struct {
|
||||
AppealType int8 `json:"appealType"` // 售后方式
|
||||
VendorAppealType string `orm:"size(255)" json:"vendorAppealType"`
|
||||
Flag int `json:"flag"`
|
||||
RefundType int8 `json:"refundType"`
|
||||
|
||||
SkuUserMoney int64 `json:"skuUserMoney"` // 用户支付菜品金额
|
||||
FreightUserMoney int64 `json:"freightUserMoney"` // 用户支付运费金额
|
||||
|
||||
@@ -73,6 +73,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia
|
||||
ReasonType: c.convertAfsReasonType(partRefundData.ReasonType),
|
||||
ReasonDesc: utils.LimitUTF8StringLen(buildFullReason(partRefundData.Reason, partRefundData.AdditionReason), 1024),
|
||||
ReasonImgList: utils.LimitUTF8StringLen(strings.Join(partRefundData.Photos, ","), 1024),
|
||||
RefundType: model.AfsTypePartRefund,
|
||||
|
||||
// FreightUserMoney: afsInfo.OrderFreightMoney,
|
||||
// AfsFreightMoney: afsInfo.AfsFreight,
|
||||
@@ -100,9 +101,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia
|
||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||
}
|
||||
} else if msg.Cmd == ebaiapi.CmdOrderUserCancel {
|
||||
if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(afsOrder.VendorOrderID, afsOrder.VendorID); err2 == nil {
|
||||
if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(orderStatus.RefVendorOrderID, model.VendorIDEBAI); err2 == nil {
|
||||
afsOrder = c.OrderFinancialDetail2Refund(orderFinancial, msg)
|
||||
cancelData := msg.Data.(*ebaiapi.CBUserCancelInfo)
|
||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||
afsOrder.AppealType = model.AfsAppealTypeRefund
|
||||
afsOrder.VendorReasonType = ""
|
||||
afsOrder.ReasonType = model.AfsReasonNotOthers
|
||||
|
||||
@@ -220,11 +220,13 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) (orderSta
|
||||
case mtwmapi.MsgTypeOrderRefund, mtwmapi.MsgTypeOrderPartialRefund:
|
||||
notifyType := msg.FormData.Get("notify_type")
|
||||
vendorStatus = msg.Cmd + "-" + notifyType
|
||||
if true /*!c.isOrderFinished(utils.Str2Int64(orderID))*/ { // 已经提前判断了,到这里的都是售中
|
||||
if true { // 已经提前判断了,到这里的都是售中
|
||||
remark = msg.FormData.Get("reason")
|
||||
if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
||||
if notifyType == mtwmapi.NotifyTypePartyApply {
|
||||
api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "bu") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单
|
||||
if globals.EnableMtwmStoreWrite {
|
||||
api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "bu") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单
|
||||
}
|
||||
} else if notifyType == mtwmapi.NotifyTypeSuccess {
|
||||
vendorStatus = fakeOrderAdjustFinished
|
||||
}
|
||||
@@ -280,7 +282,9 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
c.postFakeMsg(order.VendorOrderID, FakeMsgTypeOrderReceived, mtwmapi.OrderStatusReceived)
|
||||
}
|
||||
} else {
|
||||
err = c.CancelOrder(jxcontext.AdminCtx, order, "bu")
|
||||
if globals.EnableMtwmStoreWrite {
|
||||
err = c.CancelOrder(jxcontext.AdminCtx, order, "bu")
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -407,12 +411,3 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) isOrderFinished(vendorOrderID int64) bool {
|
||||
if status, err := api.MtwmAPI.OrderViewStatus(vendorOrderID); err == nil {
|
||||
strStatus := utils.Int2Str(status)
|
||||
return strStatus == mtwmapi.OrderStatusFinished ||
|
||||
strStatus == mtwmapi.OrderStatusCanceled
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package mtwm
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -29,7 +30,13 @@ var (
|
||||
|
||||
func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool {
|
||||
if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
||||
return c.isOrderFinished(utils.Str2Int64(GetOrderIDFromMsg(msg)))
|
||||
refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
|
||||
orderID := utils.Str2Int64(GetOrderIDFromMsg(msg))
|
||||
orderInfo, err := api.MtwmAPI.OrderGetOrderDetail2(orderID, false)
|
||||
if err == nil {
|
||||
return orderInfo.Status >= int(utils.Str2Int64(mtwmapi.OrderStatusFinished)) && refundData.Timestamp > orderInfo.Utime
|
||||
}
|
||||
globals.SugarLogger.Warnf("mtwm isAfsMsg OrderGetOrderDetail2 orderID:%d failed with error:%v", orderID, err)
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -62,7 +69,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
|
||||
VendorReasonType: "",
|
||||
ReasonType: model.AfsReasonNotOthers,
|
||||
ReasonDesc: utils.LimitUTF8StringLen(refundData.Reason, 1024),
|
||||
ReasonImgList: utils.LimitUTF8StringLen(refundData.Pictures, 1024),
|
||||
ReasonImgList: utils.LimitUTF8StringLen(strings.Join(refundData.PictureList, ","), 1024),
|
||||
RefundType: model.AfsTypePartRefund,
|
||||
|
||||
// FreightUserMoney: afsInfo.OrderFreightMoney,
|
||||
// AfsFreightMoney: afsInfo.AfsFreight,
|
||||
@@ -90,13 +98,14 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
|
||||
}
|
||||
afsOrder.PmSubsidyMoney += afsOrder.RefundMoney - afsOrder.SkuUserMoney
|
||||
} else {
|
||||
if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(afsOrder.VendorOrderID, afsOrder.VendorID); err2 == nil {
|
||||
if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(orderStatus.RefVendorOrderID, model.VendorIDMTWM); err2 == nil {
|
||||
afsOrder = c.OrderFinancialDetail2Refund(orderFinancial, msg.FormData)
|
||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||
afsOrder.AppealType = model.AfsAppealTypeRefund
|
||||
afsOrder.VendorReasonType = ""
|
||||
afsOrder.ReasonType = model.AfsReasonNotOthers
|
||||
afsOrder.ReasonDesc = utils.LimitUTF8StringLen(refundData.Reason, 1024)
|
||||
afsOrder.ReasonImgList = utils.LimitUTF8StringLen(refundData.Pictures, 1024)
|
||||
afsOrder.ReasonImgList = utils.LimitUTF8StringLen(strings.Join(refundData.PictureList, ","), 1024)
|
||||
}
|
||||
}
|
||||
if afsOrder != nil {
|
||||
|
||||
Reference in New Issue
Block a user