- 京东售后单基本处理完成

This commit is contained in:
gazebo
2019-05-10 12:09:35 +08:00
parent a9cb391c51
commit 5af086fe25
6 changed files with 67 additions and 16 deletions

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
@@ -54,11 +56,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
return err
}
dao.Commit(db)
if orderStatus.Status == model.AfsOrderStatusWait4Approve {
} else {
}
scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false)
return err
}
@@ -141,7 +139,7 @@ func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (
}
}
}()
isDuplicated, _, err := c.addAfsOrderStatus(db, orderStatus)
isDuplicated, afsOrder, err := c.addAfsOrderStatus(db, orderStatus)
if err != nil || isDuplicated {
if err == nil {
dao.Commit(db)
@@ -149,6 +147,7 @@ func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (
return err
}
dao.Commit(db)
scheduler.CurrentScheduler.OnAfsOrderStatusChanged(afsOrder, orderStatus, false)
return err
}
@@ -195,10 +194,7 @@ func (c *OrderManager) addAfsOrderStatus(db *dao.DaoDB, orderStatus *model.Order
func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.AfsOrder) (err error) {
globals.SugarLogger.Debugf("updateAfsOrderSkuOtherInfo orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
jxStoreID := order.JxStoreID
if jxStoreID == 0 {
jxStoreID = order.StoreID
}
jxStoreID := jxutils.GetSaleStoreIDFromAfsOrder(order)
opNumStr := "2"
if jxStoreID == 0 {
globals.SugarLogger.Infof("updateAfsOrderSkuOtherInfo [运营%s]订单在京西与平台都找不到京西门店信息orderID:%s, VendorStoreID:%s", opNumStr, order.VendorOrderID, order.VendorStoreID)

View File

@@ -0,0 +1,24 @@
package defsch
import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/msghub"
)
func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err error) {
if order.Status == model.AfsOrderStatusWait4Approve {
if !isPending {
msghub.OnNewWait4ApproveAfsOrder(order)
}
}
return err
}
func (s *DefScheduler) OnAfsOrderStatusChanged(order *model.AfsOrder, status *model.OrderStatus, isPending bool) (err error) {
if status.Status == model.AfsOrderStatusWait4ReceiveGoods {
if !isPending {
msghub.OnKeyAfsOrderStatusChanged(order)
}
}
return err
}

View File

@@ -40,4 +40,8 @@ type IScheduler interface {
// 以下是运单
OnWaybillStatusChanged(bill *model.Waybill, isPending bool) (err error)
// 以下是售后单
OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err error)
OnAfsOrderStatusChanged(order *model.AfsOrder, status *model.OrderStatus, isPending bool) (err error)
}

View File

@@ -82,6 +82,13 @@ func GetSkuIDFromOrderSku(sku *model.OrderSku) (skuID int) {
return sku.SkuID
}
func GetSaleStoreIDFromAfsOrder(order *model.AfsOrder) (retVal int) {
if order.JxStoreID > 0 {
return order.JxStoreID
}
return order.StoreID
}
func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) {
index := strings.Index(universalOrderID, "|")
if index != -1 {

View File

@@ -19,6 +19,9 @@ const (
ServerMsgNewOrder = "newOrder"
ServerMsgKeyOrderStatusChanged = "keyOrderStatusChanged" // 重要订单状态变化
ServerMsgNewWait4ApproveAfsOrder = "newWait4ApproveAfsOrder"
ServerMsgKeyAfsOrderStatusChanged = "keyAfsOrderStatusChanged" // 重要售后单状态变化
)
const (
@@ -174,11 +177,28 @@ func OnKeyOrderStatusChanged(order *model.GoodsOrder) {
Type: ServerMsgKeyOrderStatusChanged,
StoreID: jxutils.GetSaleStoreIDFromOrder(order),
MsgData: order,
// MsgData: []*model.GoodsOrderExt{
// &model.GoodsOrderExt{
// GoodsOrder: *order,
// },
// },
}
})
}
func OnNewWait4ApproveAfsOrder(order *model.AfsOrder) {
globals.SugarLogger.Debugf("msghub OnNewWait4ApproveAfsOrder, order:%s", utils.Format4Output(order, true))
utils.CallFuncAsync(func() {
msgChan <- &ServerMsg{
Type: ServerMsgNewWait4ApproveAfsOrder,
StoreID: jxutils.GetSaleStoreIDFromAfsOrder(order),
MsgData: order,
}
})
}
func OnKeyAfsOrderStatusChanged(order *model.AfsOrder) {
globals.SugarLogger.Debugf("msghub OnKeyAfsOrderStatusChanged, order:%s", utils.Format4Output(order, true))
utils.CallFuncAsync(func() {
msgChan <- &ServerMsg{
Type: ServerMsgKeyAfsOrderStatusChanged,
StoreID: jxutils.GetSaleStoreIDFromAfsOrder(order),
MsgData: order,
}
})
}

View File

@@ -136,7 +136,7 @@ func (c *PurchaseHandler) buildAfsOrder(afsInfo *jdapi.AfsServiceResponse) (afsO
VendorReasonType: utils.Int2Str(afsInfo.QuestionTypeCid),
ReasonType: c.convertAfsReasonType(afsInfo.QuestionTypeCid),
ReasonDesc: utils.LimitUTF8StringLen(afsInfo.QuestionDesc, 1024),
ReasonImgList: utils.LimitUTF8StringLen(afsInfo.QuestionPic, 1024),
ReasonImgList: utils.LimitUTF8StringLen(jdapi.ProcessQuestionPic(afsInfo.QuestionPic), 1024),
VendorAppealType: afsInfo.ApplyDeal,
AppealType: c.convertAfsAppealType(afsInfo.ApplyDeal),
}