From 626fd62c9be53eb68212cf81489800dd6aa9a32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 30 Apr 2020 12:43:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=90=8C=E6=AD=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 +- business/jxstore/cms/sync.go | 178 +++++++++--------- business/partner/purchase/jx/localjx/order.go | 3 + 3 files changed, 100 insertions(+), 89 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ca03ad205..f7c4fe833 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -234,6 +234,12 @@ var ( "商品名称", "备注", } + autoNotFoucsStoreMap = map[int]int{ + 667088: 667088, + model.MatterStoreID: model.MatterStoreID, + 103038: 103038, + 300397: 300397, + } ) func GetStoreSkus(ctx *jxcontext.Context, storeID int, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { @@ -3227,7 +3233,7 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe skuNameMap = make(map[int]int) ) //物料店不自动关注畅销品 - if v.ID == model.MatterStoreID { + if autoNotFoucsStoreMap[v.ID] != 0 { return retVal, err } sql := ` diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index d103b25d8..df7b0c78e 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -913,14 +913,14 @@ func (v *VendorSync) SyncStoreSkusFromYb(ctx *jxcontext.Context, storeIDs []int, func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorStoreID string, isAsync, isContinueWhenError bool) (hint string, err error) { var ( - db = dao.GetDB() - localSkuMap = make(map[string]*dao.StoreSkuSyncInfo) - vendorSkuMap = make(map[string]*partner.SkuNameInfo) - skuBindInfosDel []*StoreSkuBindInfo - skuBindInfosUpt []*StoreSkuBindInfo - addList []*partner.SkuNameInfo - updateList []*partner.SkuNameInfo - deleteList []*dao.StoreSkuSyncInfo + db = dao.GetDB() + localSkuMap = make(map[string]*dao.StoreSkuSyncInfo) + vendorSkuMap = make(map[string]*partner.SkuNameInfo) + // skuBindInfosDel []*StoreSkuBindInfo + // skuBindInfosUpt []*StoreSkuBindInfo + addList []*partner.SkuNameInfo + updateList []*partner.SkuNameInfo + deleteList []*dao.StoreSkuSyncInfo ) handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) @@ -953,91 +953,93 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt // fmt.Println("remoteSkuList", len(remoteSkuList)) // fmt.Println("addList", len(addList)) // fmt.Println("updateList", len(updateList)) - // fmt.Println("deleteList", len(deleteList)) + for _, v := range deleteList { + fmt.Println("deleteList", utils.Format4Output(v.SkuID, false)) + } taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { - store, _ := dao.GetStoreDetail(db, storeID, vendorID) + // store, _ := dao.GetStoreDetail(db, storeID, vendorID) switch step { case 0: - if len(addList) > 0 { - taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - var ( - v = batchItemList[0].(*partner.SkuNameInfo) - upc = v.YbBarCode - ) - err = AddSkuNameByUpc(ctx, upc, store, v) - if err != nil { - task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品")) - } - return retVal, err - } - taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList) - tasksch.HandleTask(taskParallel, task, true).Run() - _, err = taskParallel.GetResult(0) - } + // if len(addList) > 0 { + // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // var ( + // v = batchItemList[0].(*partner.SkuNameInfo) + // upc = v.YbBarCode + // ) + // err = AddSkuNameByUpc(ctx, upc, store, v) + // if err != nil { + // task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品")) + // } + // return retVal, err + // } + // taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList) + // tasksch.HandleTask(taskParallel, task, true).Run() + // _, err = taskParallel.GetResult(0) + // } case 1: - if len(deleteList) > 0 { - taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - var ( - v = batchItemList[0].(*dao.StoreSkuSyncInfo) - ) - skuBindInfo := &StoreSkuBindInfo{ - NameID: v.NameID, - IsFocus: -1, - } - retVal = []*StoreSkuBindInfo{skuBindInfo} - return retVal, err - } - taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList) - tasksch.HandleTask(taskParallel, task, true).Run() - resultDel, _ := taskParallel.GetResult(0) - for _, v := range resultDel { - skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo)) - } - _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false) - } + // if len(deleteList) > 0 { + // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // var ( + // v = batchItemList[0].(*dao.StoreSkuSyncInfo) + // ) + // skuBindInfo := &StoreSkuBindInfo{ + // NameID: v.NameID, + // IsFocus: -1, + // } + // retVal = []*StoreSkuBindInfo{skuBindInfo} + // return retVal, err + // } + // taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList) + // tasksch.HandleTask(taskParallel, task, true).Run() + // resultDel, _ := taskParallel.GetResult(0) + // for _, v := range resultDel { + // skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo)) + // } + // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false) + // } case 2: - if len(updateList) > 0 { - taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - var ( - v = batchItemList[0].(*partner.SkuNameInfo) - skuBindInfo = &StoreSkuBindInfo{} - storeSkus []*dao.StoreSkuExt - pricePercentagePack []*model.PricePercentageItem - ) - sql := ` - SELECT a.*, c.id name_id - FROM store_sku_bind a - JOIN sku b ON a.sku_id = b.id - JOIN sku_name c ON c.id = b.name_id - WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ? - ` - sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue} - err = dao.GetRows(db, &storeSkus, sql, sqlParams) - if len(storeSkus) > 0 { - if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) { - err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) - skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice)) - } - } else { - return retVal, fmt.Errorf("未查询到门店商品,yb_id [%v]", v.SkuList[0].VendorSkuID) - } - if v.SkuList[0].Stock < 1 { - skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale - } else { - skuBindInfo.IsSale = model.StoreSkuBindStatusNormal - } - skuBindInfo.NameID = storeSkus[0].NameID - retVal = []*StoreSkuBindInfo{skuBindInfo} - return retVal, err - } - taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList) - tasksch.HandleTask(taskParallel, task, true).Run() - resultUpt, _ := taskParallel.GetResult(0) - for _, v := range resultUpt { - skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo)) - } - _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false) - } + // if len(updateList) > 0 { + // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // var ( + // v = batchItemList[0].(*partner.SkuNameInfo) + // skuBindInfo = &StoreSkuBindInfo{} + // storeSkus []*dao.StoreSkuExt + // pricePercentagePack []*model.PricePercentageItem + // ) + // sql := ` + // SELECT a.*, c.id name_id + // FROM store_sku_bind a + // JOIN sku b ON a.sku_id = b.id + // JOIN sku_name c ON c.id = b.name_id + // WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ? + // ` + // sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue} + // err = dao.GetRows(db, &storeSkus, sql, sqlParams) + // if len(storeSkus) > 0 { + // if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) { + // err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) + // skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice)) + // } + // } else { + // return retVal, fmt.Errorf("未查询到门店商品,yb_id [%v]", v.SkuList[0].VendorSkuID) + // } + // if v.SkuList[0].Stock < 1 { + // skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale + // } else { + // skuBindInfo.IsSale = model.StoreSkuBindStatusNormal + // } + // skuBindInfo.NameID = storeSkus[0].NameID + // retVal = []*StoreSkuBindInfo{skuBindInfo} + // return retVal, err + // } + // taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList) + // tasksch.HandleTask(taskParallel, task, true).Run() + // resultUpt, _ := taskParallel.GetResult(0) + // for _, v := range resultUpt { + // skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo)) + // } + // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false) + // } } return result, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 72b23ebca..12b535c1a 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1370,6 +1370,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { v.Status = model.OrderStatusCanceled } } + if v.Status < model.OrderStatusDelivering { + v.Status = model.OrderStatusCanceled + } dao.UpdateEntity(db, v, "Status") dao.Commit(db) changeOrderStatus(v.VendorOrderID, v.Status, "")