Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -517,6 +517,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
// globals.SugarLogger.Debugf("从美团上获取门店失败:%s", err)
|
||||
// isBlendWay = strings.Contains(mtStoreInfo.LogisticsCodes, model.MTWMStorePSWay8)
|
||||
//}
|
||||
//if order.VendorID == model.VendorIDDD {
|
||||
// partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrderRider()
|
||||
//}
|
||||
|
||||
// 暂时只处理抖音平台,抖音暂无配送,只要是抖音订单,三方配送压单了,直接通知送出
|
||||
if bill.Status == model.WaybillStatusNew {
|
||||
@@ -1019,7 +1022,7 @@ func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2
|
||||
func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInfo, bill *model.Waybill, retryCount int, duration time.Duration) {
|
||||
order := savedOrderInfo.order
|
||||
if order.WaybillVendorID != order.VendorID {
|
||||
if err := s.Swtich2SelfDeliver(order, "Swtich2SelfDeliver转自送"); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { //301251饿了转自送 1047美团混合送
|
||||
if err := s.Swtich2SelfDeliver(order, "Swtich2SelfDeliver转自送"); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && err != scheduler.ErrOrderStatusShippedCurOperation) { //301251饿了转自送 1047美团混合送
|
||||
partner.CurOrderManager.OnOrderMsg(order, "调用[swtich2SelfDeliverWithRetry]转自送", err.Error())
|
||||
if retryCount > 0 {
|
||||
utils.AfterFuncWithRecover(duration, func() {
|
||||
@@ -1047,7 +1050,6 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
|
||||
// todo 之前这里为什么要设置OrderDeliveryFlagMaskScheduleDisabled标志呢
|
||||
// order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
|
||||
// partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
||||
|
||||
partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", errStr)
|
||||
}
|
||||
}
|
||||
@@ -1060,10 +1062,8 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
|
||||
s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrNotAcceptIntime)
|
||||
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
||||
|
||||
// 进到这里的原因是,在这个时间点,购物平台物流已经抢单(但抢单消息还没有被收到),所以转自送会失败 (比如:818810379000941),更好的做法应该是判断Swtich2SelfDeliver的返回值,这种情况下就不得试了
|
||||
partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", "平台物流已接单")
|
||||
// globals.SugarLogger.Warnf("swtich2SelfDeliverWithRetry orderID:%s status is wrong, order details:%v", order.VendorOrderID, order)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ var (
|
||||
var (
|
||||
ErrOrderStatusIsNotSuitable4CurOperation = errors.New("订单锁定或状态不适合当前操作")
|
||||
ErrOrderStatusAlreadySatisfyCurOperation = errors.New("订单当前状态已满足当前操作")
|
||||
ErrOrderStatusShippedCurOperation = errors.New("订单已发货,不允许再次执行发货")
|
||||
ErrOrderStatusAlreadySatisfyCurOperationELM = errors.New("无需切自配送")
|
||||
ErrOrderStatusAlreadySatisfyCurOperationMTWM = errors.New("非专送、快送、混合送订单不允许调用此接口 level:0, code:1047")
|
||||
|
||||
|
||||
@@ -1733,7 +1733,6 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku
|
||||
}
|
||||
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
|
||||
num = int64(len(skuIDs))
|
||||
globals.SugarLogger.Debugf("关注商品成功需要同步=======%s", utils.Format4Output(skuIDs, false))
|
||||
if num > 0 {
|
||||
hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
|
||||
}
|
||||
|
||||
@@ -678,7 +678,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
switch step {
|
||||
case 0:
|
||||
if len(deleteList) > 0 {
|
||||
globals.SugarLogger.Debugf("========删除门店商品")
|
||||
_, err = putils.FreeBatchStoreSkuInfo("删除门店商品", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
if failedList, err = singleStoreHandler.DeleteStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); err != nil {
|
||||
@@ -703,7 +702,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
}
|
||||
case 1:
|
||||
if len(createList) > 0 {
|
||||
globals.SugarLogger.Debugf("========创建门店商品")
|
||||
_, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) {
|
||||
@@ -754,7 +752,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
}
|
||||
case 2:
|
||||
if len(updateList) > 0 {
|
||||
globals.SugarLogger.Debugf("========更新门店商品基础信息")
|
||||
_, err = putils.FreeBatchStoreSkuSyncInfo("更新门店商品基础信息", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
failedList, err = singleStoreHandler.UpdateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList)
|
||||
@@ -772,7 +769,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
case 3:
|
||||
// for k, list := range [][]*partner.StoreSkuInfo{stockList /*, onlineList*/} {
|
||||
if len(stockList) > 0 {
|
||||
globals.SugarLogger.Debugf("========更新门店商品库存")
|
||||
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
failedList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList)
|
||||
@@ -798,7 +794,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
name = "不可售门店商品"
|
||||
}
|
||||
if len(statusList) > 0 {
|
||||
globals.SugarLogger.Debugf("========%s", name)
|
||||
_, err = putils.FreeBatchStoreSkuInfo(name, func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
failedList, err = storeSkuHandler.UpdateStoreSkusStatus(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList, status)
|
||||
|
||||
@@ -344,6 +344,16 @@ const (
|
||||
WaybillStatusEndEnd = 120
|
||||
)
|
||||
|
||||
const (
|
||||
RiderGetOrder = "骑手接单"
|
||||
RiderToStore = "骑手到店"
|
||||
RiderGetOrderDelivering = "骑手配送中"
|
||||
RiderGetOrderDelivered = "骑手配送完成"
|
||||
RiderGetOrderCanceled = "骑手取消"
|
||||
RiderGetOrderDeliverFailed = "骑手配送异常"
|
||||
RiderGetOrderDeliverOther = "其他待处理信息"
|
||||
)
|
||||
|
||||
const (
|
||||
BusinessTypeImmediate = 1
|
||||
BusinessTypeDingshida = 2
|
||||
|
||||
@@ -449,6 +449,7 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
CourierPhone: order.TransporterPhone,
|
||||
LogisticsProviderCode: mtpsapi.DaDaCode,
|
||||
LogisticsStatus: order.StatusCode,
|
||||
LogisticsContext: "",
|
||||
Latitude: order.TransporterLat,
|
||||
Longitude: order.TransporterLng,
|
||||
}
|
||||
@@ -458,16 +459,22 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
// result.LogisticsStatus = model.WaybillStatusCourierAssigned
|
||||
case 100: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 3: // 配送中
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case 4: // 完成
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case 5: // 取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
case 9: // 配送异常
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverFailed
|
||||
default:
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
}
|
||||
|
||||
return result, nil
|
||||
|
||||
@@ -319,18 +319,25 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
switch order.OrderStatus {
|
||||
case 20: // 骑手接单
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 80: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderToStore
|
||||
case 2: // 配送中
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case 3: // 完成
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case 4: // 取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
case 5: // 配送异常
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverFailed
|
||||
default:
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
}
|
||||
|
||||
return result, nil
|
||||
|
||||
@@ -411,14 +411,19 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
switch int(utils.MustInterface2Int64(order["status"])) {
|
||||
case 20: //已接单
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 30: //已取货
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case 50: //已送达
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case 90: //已取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
default:
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
}
|
||||
|
||||
return result, nil
|
||||
|
||||
@@ -2,10 +2,8 @@ package tiktok_store
|
||||
|
||||
import (
|
||||
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
@@ -13,8 +11,6 @@ import (
|
||||
func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackResponse) {
|
||||
if CurPurchaseHandler != nil {
|
||||
orderId, _ := api.TiktokStore.GetCallbackOrderId(msgId, msg)
|
||||
globals.SugarLogger.Debugf("======orderId:%s", orderId)
|
||||
globals.SugarLogger.Debugf("======msg:%s", utils.Format4Output(msg, false))
|
||||
|
||||
jxutils.CallMsgHandler(func() {
|
||||
response = CurPurchaseHandler.onOrderMsg(msgId, orderId, msg)
|
||||
|
||||
@@ -70,7 +70,8 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus int64) int {
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
|
||||
order, _, _ = c.getOrder("", orderData["vendorOrderID"].(string), "")
|
||||
globals.SugarLogger.Debugf("Map2Order=====:%s", utils.Format4Output(orderData, false))
|
||||
order, _, _ = c.getOrder(orderData["VendorOrgCode"].(string), orderData["vendorOrderID"].(string), "")
|
||||
return order
|
||||
}
|
||||
|
||||
|
||||
@@ -183,21 +183,14 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
// 根据本地商品id获取线上商品是否存在,存在则只创建子商品
|
||||
var tiktokResultProductId int64 = 0
|
||||
// 获取本地存储映射关系
|
||||
globals.SugarLogger.Debugf("=======storeSku.SkuID :%d", storeSku.SkuID)
|
||||
globals.SugarLogger.Debugf("=======storeSku :%s", utils.Format4Output(storeSku, false))
|
||||
localThing, err := dao.GetThingToTiktokMapList(dao.GetDB(), model.VendorIDDD, int64(storeSku.SkuID))
|
||||
globals.SugarLogger.Debugf("=======localThing :%s", utils.Format4Output(localThing, false))
|
||||
globals.SugarLogger.Debugf("=======localThing :%s", utils.Format4Output(localThing, false))
|
||||
globals.SugarLogger.Debugf("localThing=======err :%s", err)
|
||||
if len(localThing) == 0 { // 线上不存在创建
|
||||
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("CreateStoreCommodity=======err :%s", err)
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
|
||||
continue
|
||||
}
|
||||
globals.SugarLogger.Debugf("tiktokResult=======err :%s", utils.Format4Output(tiktokResult, false))
|
||||
|
||||
tiktokResultProductId = tiktokResult.ProductId
|
||||
var attrId []string
|
||||
@@ -438,10 +431,7 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao
|
||||
tempDetail.Template.TemplateName += "满减运费模板"
|
||||
tempDetail.Columns = Columns // 满减
|
||||
}
|
||||
globals.SugarLogger.Debugf("tempDetail ========= %s", utils.Format4Output(tempDetail, false))
|
||||
temp, err := api.FreightTemplateCreate(tempDetail)
|
||||
globals.SugarLogger.Debugf("FreightTemplateCreate =err %s", utils.Format4Output(temp, false))
|
||||
globals.SugarLogger.Debugf("FreightTemplateCreate =err %s", err)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -2,9 +2,7 @@ package controllers
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"github.com/astaxie/beego/server/web"
|
||||
"strings"
|
||||
@@ -37,7 +35,6 @@ func (t *TiktokController) CallbackTiktokOrderMsg() {
|
||||
return
|
||||
}
|
||||
|
||||
globals.SugarLogger.Debugf("========callback===%s", utils.Format4Output(orderStatus, false))
|
||||
for k, v := range orderStatus {
|
||||
for _, callback := range v {
|
||||
resp2 := tiktok_store.OnOrderMsg(k, callback)
|
||||
|
||||
Reference in New Issue
Block a user