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

This commit is contained in:
richboo111
2022-10-26 14:36:21 +08:00
5 changed files with 31 additions and 15 deletions

View File

@@ -1732,6 +1732,7 @@ 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)
}
@@ -2003,7 +2004,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
}
var num int64
inSkuBind := inSkuBinsMap[v.RealSkuID]
isCanChangePrice := (isUserCanDirectChangePrice || jxutils.TranslateStorePriceType(v.ChangePriceType) != model.StoreChangePriceTypeBossDisabled)
isCanChangePrice := isUserCanDirectChangePrice || jxutils.TranslateStorePriceType(v.ChangePriceType) != model.StoreChangePriceTypeBossDisabled
var skuBind *model.StoreSkuBind
if v.ID == 0 {
// if v.ExdSkuID == "" {

View File

@@ -185,9 +185,10 @@ func SyncStoreSkuNew2(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFla
case 0:
if singleStoreHandler != nil {
_, err = SyncStoreCategories(ctx, task, vendorID, storeID, vendorStoreID, nameIDs, skuIDs, false, isContinueWhenError)
globals.SugarLogger.Debug("SyncStoreCategories in SyncStoreSkuNew2 err on:%v", err)
globals.SugarLogger.Debugf("SyncStoreCategories in SyncStoreSkuNew2 err on: %s", err)
}
case 1:
globals.SugarLogger.Debugf("同步商品分类,看看走不走: 门店地[%d],平台门店地[%s],商品id[%v]", storeID, vendorStoreID, skuIDs)
err = syncStoreSkuNew(ctx, task, causeFlag, false, vendorID, storeID, vendorOrgCode, nameIDs, skuIDs, excludeSkuIDs, useVendorPriceDirectly, isContinueWhenError)
}
return result, err
@@ -441,10 +442,14 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
vendorStoreID := storeDetail.VendorStoreID
var skus []*dao.StoreSkuSyncInfo
if isFull {
globals.SugarLogger.Debugf("===============true")
skus, err = dao.GetFullStoreSkus(db, vendorID, storeID)
} else {
globals.SugarLogger.Debugf("===============false")
skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs)
}
globals.SugarLogger.Debugf("===============skus:%s", utils.Format4Output(skus, false))
if err != nil || len(skus) == 0 {
return err
}
@@ -614,6 +619,8 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
return skuList
}
globals.SugarLogger.Debugf("bareSku2Sync==========%s", utils.Format4Output(bareSku2Sync, false))
isContinueWhenError2 := true
//如果是银豹平台则要按照商品skuname维度同步
if vendorID == model.VendorIDYB {
@@ -668,12 +675,14 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
// api.JdShop2API.SetCookieWithStr(configs[0].Value)
// }
}
task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
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 {
@@ -698,11 +707,10 @@ 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) {
if err != nil {
}
if skuNameList, err2 := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, []*partner.StoreSkuInfo{
&partner.StoreSkuInfo{
SkuID: batchedStoreSkuList[0].SkuID,
@@ -750,6 +758,7 @@ 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)
@@ -767,6 +776,7 @@ 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)
@@ -792,6 +802,7 @@ 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)
@@ -808,6 +819,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
case 6:
if len(priceList) > 0 {
globals.SugarLogger.Debugf("更新门店商品价格=====")
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品价格", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
if isNeedHandleAct(causeFlag) {
cancelStoreSkuActs(ctx, task, vendorID, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList, true)
@@ -834,6 +846,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
for vendorCatID := range reorderSkuMap {
vendorCatIDs = append(vendorCatIDs, vendorCatID)
}
globals.SugarLogger.Debugf("门店商品排序=====")
reorderTask := tasksch.NewParallelTask("门店商品排序", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError2), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorCatID := batchItemList[0].(string)

View File

@@ -241,7 +241,7 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
if len(order.Skus) == 0 {
return
}
var printData map[string]string
var printData = make(map[string]string, 0)
printData[AppID] = "1000" // 菜市应用
switch printType {
case "order": // 订单状态

View File

@@ -3,6 +3,7 @@ package tiktok_store
import (
"fmt"
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/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
@@ -112,9 +113,9 @@ var (
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
if globals.EnableDdStoreWrite {
if approveType == partner.AfsApproveTypeRefused { // 拒绝退货
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").ReturnGoodsToWareHouseSuccess(order.AfsOrderID)
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, order.AfsOrderID, "拒绝退货", utils.Str2Int64(order.VendorStoreID))
} else {
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").ReturnGoodsToWareHouseSuccess(order.AfsOrderID)
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, order.AfsOrderID, "同意仅退款", utils.Str2Int64(order.VendorStoreID))
}
}
return err

View File

@@ -266,7 +266,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
Weight: utils.Int2Float64(storeSku.Weight),
DeliveryDelayDay: tiktokShop.DeliveryDelayDayToDay,
PresellType: tiktokShop.SendGoodsTypeNow,
Supply7dayReturn: 0,
Supply7dayReturn: 2, // 是否支持7天无理由0不支持1支持2支持拆封后不支持
Mobile: storeDetail.Tel1,
Commit: true,
Specs: "净重|" + utils.Float64ToStr(float64(storeSku.SpecQuality)) + storeSku.SpecUnit,
@@ -307,15 +307,16 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
param.ProductFormatNew = storeSku.TiktokAttribute
// 获取品牌
param.StandardBrandId, err = api.GetSkuBrand(param.CategoryLeafId)
if err != nil {
return nil, err
}
//param.StandardBrandId, err = api.GetSkuBrand(param.CategoryLeafId)
//if err != nil {
// return nil, err
//}
param.StandardBrandId = 596120136
// 根据本地商品id获取线上商品是否存在,存在则只创建子商品
var tiktokResultProductId int64 = 0
skuMain, err := api.GetSkuDetailLocalID("", param.OuterProductId)
if err != nil { // 线上不存在创建
skuMain, err2 := api.GetSkuDetailLocalID("", param.OuterProductId)
if err2 != nil { // 线上不存在创建
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
@@ -394,7 +395,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
Weight: utils.Int2Float64(storeSku.Weight),
DeliveryDelayDay: tiktokShop.DeliveryDelayDayToDay,
PresellType: tiktokShop.SendGoodsTypeNow,
Supply7dayReturn: 0,
Supply7dayReturn: 2,
Mobile: storeDetail.Tel1,
Commit: true,
Specs: "净重|" + fmt.Sprintf("%f", storeSku.SpecQuality) + storeSku.SpecUnit,