From 472c1f34e1385d2a04d3bed808243eb345f46cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 17 Jun 2020 18:31:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E5=B9=B3=E5=8F=B0=E5=95=86=E5=93=81?= =?UTF-8?q?=20=E6=B0=B4=E5=8D=B0=EF=BC=8C=E4=BA=AC=E4=B8=9C=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E8=AE=A2=E5=8D=95=E8=BD=AC=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 4 +- business/jxstore/cms/sku.go | 2 +- business/jxstore/cms/sync.go | 51 ++++++++++++++------ business/jxstore/misc/misc.go | 2 + business/model/dao/sku.go | 8 +-- business/partner/purchase/ebai/store_sku2.go | 8 ++- 6 files changed, 52 insertions(+), 23 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 2845122c2..dd813dae7 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1183,16 +1183,18 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) if len(storeMaps) > 0 { order.StoreID = storeID order.StoreName = storeMaps[0].StoreName + order.VendorStoreID = storeMaps[0].VendorStoreID } else { return "", fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID) } if len(order.VendorOrderID) > 12 { suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)]) suffix++ - order.VendorOrderID = order.VendorOrderID2 + utils.Int2Str(suffix) + order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(order.VendorOrderID2)*10) + utils.Int2Str(suffix) } for _, sku := range skus { sku.VendorOrderID = order.VendorOrderID + sku.ID = 0 order.Skus = append(order.Skus, sku) } order.Status = model.OrderStatusNew diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 1eae474ce..be91a073a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2562,7 +2562,7 @@ func UpdateSkuExinfoMap(ctx *jxcontext.Context, nameIDs []int, imgWaterMark stri EndAt: toTimeP, } dao.WrapAddIDCULDEntity(skuEx, ctx.GetUserName()) - skuExs, _ := dao.GetSkuExinfos(db, []int{nameID}, vendorID, "", utils.ZeroTimeValue, utils.ZeroTimeValue) + skuExs, _ := dao.GetSkuExinfos(db, []int{nameID}, []int{vendorID}, "", utils.ZeroTimeValue, utils.ZeroTimeValue) if len(skuExs) > 0 { skuEx2 := skuExs[0] skuEx2.DeletedAt = time.Now() diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index bb7815c84..634d0d14d 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -1108,23 +1108,26 @@ func (v *VendorSync) SyncJdsStoresSkus(ctx *jxcontext.Context, storeIDs []int, i } func syncJdsStoreStock(ctx *jxcontext.Context, db *dao.DaoDB, storeSkus []*model.StoreSkuBind, storeMap *model.StoreMap) (err error) { - task := tasksch.NewParallelTask("syncJdsStoreStock", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - storeSku := batchItemList[0].(*model.StoreSkuBind) - stock := 0 - if storeSku.Status == model.StoreSkuBindStatusNormal { - stock = 9999 + for _, storeSku := range storeSkus { + stock := 0 + if storeSku.Status == model.StoreSkuBindStatusNormal { + stock = 9999 + } + storeSku2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{storeSku.SkuID}) + if storeSku.JdsID != 0 && len(storeSku2) > 0 { + if storeSku.Status != storeSku2[0].Status { + err = api.JdShopAPI.UpdateSkuSiteStock(storeSku.JdsID, stock, utils.Str2Int(storeMap.VendorStoreID)) } - storeSku2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{storeSku.SkuID}) - if storeSku.JdsID != 0 && len(storeSku2) > 0 { - if storeSku.Status != storeSku2[0].Status { - err = api.JdShopAPI.UpdateSkuSiteStock(storeSku.JdsID, stock, utils.Str2Int(storeMap.VendorStoreID)) - } - } - return retVal, err - }, storeSkus) - tasksch.HandleTask(task, nil, true).Run() - _, err = task.GetResult(0) + } + } + // task := tasksch.NewParallelTask("syncJdsStoreStock", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + // func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // storeSku := batchItemList[0].(*model.StoreSkuBind) + + // return retVal, err + // }, storeSkus) + // tasksch.HandleTask(task, nil, true).Run() + // _, err = task.GetResult(0) return err } @@ -1214,3 +1217,19 @@ func buildStoreSkuBindInfo(db *dao.DaoDB, storeID int, storeBind *dao.StoreSkuSy skuBindInfo.Skus = skus return skuBindInfo } + +func SyncSkuExperfixAndWatermark(ctx *jxcontext.Context) (err error) { + var ( + db = dao.GetDB() + ) + dao.GetSkuExinfos(db, nil, []int{model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDJD}, "", utils.ZeroTimeValue, utils.ZeroTimeValue) + // task := tasksch.NewParallelTask("syncJdsStoreStock", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + // func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // storeSku := batchItemList[0].(*model.StoreSkuBind) + + // return retVal, err + // }, storeSkus) + // tasksch.HandleTask(task, nil, true).Run() + // _, err = task.GetResult(0) + return err +} diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 88538c5e4..1cd40c1ad 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -419,6 +419,8 @@ func doDailyWork() { orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, time.Now().AddDate(0, 0, -3).Format("20060102"), time.Now().Format("20060102")) //同步上架京东商城待售商品 cms.RefreshJdsSkusStatus(jxcontext.AdminCtx) + //同步商品额外前缀和水印图 + cms.SyncSkuExperfixAndWatermark(jxcontext.AdminCtx) } func RefreshRealMobile(ctx *jxcontext.Context, vendorID int, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) { diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 3cde6b769..6bbab2c14 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -380,7 +380,7 @@ func InsertUpcDepot(db *DaoDB, result *aliupcapi.GetAliUpcInfoResult) (err error return err } -func GetSkuExinfos(db *DaoDB, nameIDs []int, vendorID int, exPrefix string, fromTime, toTime time.Time) (skuExinfoMaps []*model.SkuExinfoMap, err error) { +func GetSkuExinfos(db *DaoDB, nameIDs []int, vendorIDs []int, exPrefix string, fromTime, toTime time.Time) (skuExinfoMaps []*model.SkuExinfoMap, err error) { sql := ` SELECT * FROM sku_exinfo_map @@ -393,9 +393,9 @@ func GetSkuExinfos(db *DaoDB, nameIDs []int, vendorID int, exPrefix string, from sql += " AND name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")" sqlParams = append(sqlParams, nameIDs) } - if vendorID != -1 { - sql += " AND vendor_id = ?" - sqlParams = append(sqlParams, vendorID) + if len(vendorIDs) > 0 { + sql += " AND vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, vendorIDs) } if exPrefix != "" { sql += " AND ex_prefix LIKE ?" diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index f17ce5bf1..ed7b1287d 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -316,10 +316,16 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg } func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate, isExd bool) (params map[string]interface{}) { + var img string + if storeSku.ImgMix != "" { + img = storeSku.ImgMix + } else { + img = storeSku.Img + } photos := []map[string]interface{}{ map[string]interface{}{ "is_master": true, - "url": storeSku.Img, + "url": img, }, } if storeSku.Img2 != "" {