- 京东售后单基本处理完成
This commit is contained in:
@@ -4,6 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"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"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
@@ -54,11 +56,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
if orderStatus.Status == model.AfsOrderStatusWait4Approve {
|
scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false)
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
|
||||||
return err
|
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 || isDuplicated {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
@@ -149,6 +147,7 @@ func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
|
scheduler.CurrentScheduler.OnAfsOrderStatusChanged(afsOrder, orderStatus, false)
|
||||||
return err
|
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) {
|
func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.AfsOrder) (err error) {
|
||||||
globals.SugarLogger.Debugf("updateAfsOrderSkuOtherInfo orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
|
globals.SugarLogger.Debugf("updateAfsOrderSkuOtherInfo orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
|
||||||
jxStoreID := order.JxStoreID
|
jxStoreID := jxutils.GetSaleStoreIDFromAfsOrder(order)
|
||||||
if jxStoreID == 0 {
|
|
||||||
jxStoreID = order.StoreID
|
|
||||||
}
|
|
||||||
opNumStr := "2"
|
opNumStr := "2"
|
||||||
if jxStoreID == 0 {
|
if jxStoreID == 0 {
|
||||||
globals.SugarLogger.Infof("updateAfsOrderSkuOtherInfo [运营%s]订单在京西与平台都找不到京西门店信息orderID:%s, VendorStoreID:%s", opNumStr, order.VendorOrderID, order.VendorStoreID)
|
globals.SugarLogger.Infof("updateAfsOrderSkuOtherInfo [运营%s]订单在京西与平台都找不到京西门店信息orderID:%s, VendorStoreID:%s", opNumStr, order.VendorOrderID, order.VendorStoreID)
|
||||||
|
|||||||
24
business/jxcallback/scheduler/defsch/defsch_afs.go
Normal file
24
business/jxcallback/scheduler/defsch/defsch_afs.go
Normal 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
|
||||||
|
}
|
||||||
@@ -40,4 +40,8 @@ type IScheduler interface {
|
|||||||
|
|
||||||
// 以下是运单
|
// 以下是运单
|
||||||
OnWaybillStatusChanged(bill *model.Waybill, isPending bool) (err error)
|
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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,13 @@ func GetSkuIDFromOrderSku(sku *model.OrderSku) (skuID int) {
|
|||||||
return sku.SkuID
|
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) {
|
func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) {
|
||||||
index := strings.Index(universalOrderID, "|")
|
index := strings.Index(universalOrderID, "|")
|
||||||
if index != -1 {
|
if index != -1 {
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ const (
|
|||||||
|
|
||||||
ServerMsgNewOrder = "newOrder"
|
ServerMsgNewOrder = "newOrder"
|
||||||
ServerMsgKeyOrderStatusChanged = "keyOrderStatusChanged" // 重要订单状态变化
|
ServerMsgKeyOrderStatusChanged = "keyOrderStatusChanged" // 重要订单状态变化
|
||||||
|
|
||||||
|
ServerMsgNewWait4ApproveAfsOrder = "newWait4ApproveAfsOrder"
|
||||||
|
ServerMsgKeyAfsOrderStatusChanged = "keyAfsOrderStatusChanged" // 重要售后单状态变化
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -174,11 +177,28 @@ func OnKeyOrderStatusChanged(order *model.GoodsOrder) {
|
|||||||
Type: ServerMsgKeyOrderStatusChanged,
|
Type: ServerMsgKeyOrderStatusChanged,
|
||||||
StoreID: jxutils.GetSaleStoreIDFromOrder(order),
|
StoreID: jxutils.GetSaleStoreIDFromOrder(order),
|
||||||
MsgData: 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,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ func (c *PurchaseHandler) buildAfsOrder(afsInfo *jdapi.AfsServiceResponse) (afsO
|
|||||||
VendorReasonType: utils.Int2Str(afsInfo.QuestionTypeCid),
|
VendorReasonType: utils.Int2Str(afsInfo.QuestionTypeCid),
|
||||||
ReasonType: c.convertAfsReasonType(afsInfo.QuestionTypeCid),
|
ReasonType: c.convertAfsReasonType(afsInfo.QuestionTypeCid),
|
||||||
ReasonDesc: utils.LimitUTF8StringLen(afsInfo.QuestionDesc, 1024),
|
ReasonDesc: utils.LimitUTF8StringLen(afsInfo.QuestionDesc, 1024),
|
||||||
ReasonImgList: utils.LimitUTF8StringLen(afsInfo.QuestionPic, 1024),
|
ReasonImgList: utils.LimitUTF8StringLen(jdapi.ProcessQuestionPic(afsInfo.QuestionPic), 1024),
|
||||||
VendorAppealType: afsInfo.ApplyDeal,
|
VendorAppealType: afsInfo.ApplyDeal,
|
||||||
AppealType: c.convertAfsAppealType(afsInfo.ApplyDeal),
|
AppealType: c.convertAfsAppealType(afsInfo.ApplyDeal),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user