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