Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2022-10-31 15:00:18 +08:00
12 changed files with 36 additions and 28 deletions

View File

@@ -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)
}
}

View File

@@ -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")

View File

@@ -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)
}

View File

@@ -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)

View File

@@ -344,6 +344,16 @@ const (
WaybillStatusEndEnd = 120
)
const (
RiderGetOrder = "骑手接单"
RiderToStore = "骑手到店"
RiderGetOrderDelivering = "骑手配送中"
RiderGetOrderDelivered = "骑手配送完成"
RiderGetOrderCanceled = "骑手取消"
RiderGetOrderDeliverFailed = "骑手配送异常"
RiderGetOrderDeliverOther = "其他待处理信息"
)
const (
BusinessTypeImmediate = 1
BusinessTypeDingshida = 2

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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)