diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 32314ea4d..1a378b3d4 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1190,7 +1190,6 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor return 0, err } if num > 0 { - // TODO 重算京西商城价 if vendorID != model.VendorIDJX { if valid["pricePercentage"] != nil || valid["pricePercentagePack"] != nil { storeSkuBind := &model.StoreSkuBind{} diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index be5b6108b..f08588711 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -17,6 +17,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api/apimanager" ) const ( @@ -96,8 +97,9 @@ var ( diffData DiffDataLock depotDiffData DeoptDiffDataLock - multiStoreAllSkuInfoMap map[int]map[int]*partner.SkuNameInfo - multiStoreAllSkuInfoList map[int][]*partner.StoreSkuInfo + multiStoreAllSkuInfoMap map[int]map[string]map[int]*partner.SkuNameInfo + multiStoreAllSkuInfoList map[int]map[string][]*partner.StoreSkuInfo + skuNameInfoList []*partner.SkuNameInfo filterVendorDepotUnSaleSkuIds []int filterJxDepotUnSaleSkuIds []int @@ -166,16 +168,22 @@ func (d *DiffDataLock) InitData() { } func InitMultiStoreData() { - multiStoreAllSkuInfoMap = make(map[int]map[int]*partner.SkuNameInfo) - multiStoreAllSkuInfoList = make(map[int][]*partner.StoreSkuInfo) + multiStoreAllSkuInfoMap = make(map[int]map[string]map[int]*partner.SkuNameInfo) + multiStoreAllSkuInfoList = make(map[int]map[string][]*partner.StoreSkuInfo) } -func GetMultiStoreAllSkuInfoMap(vendorID int) map[int]*partner.SkuNameInfo { - return multiStoreAllSkuInfoMap[vendorID] +func GetMultiStoreAllSkuInfoMap(vendorID int, vendorOrgCode string) (retVal map[int]*partner.SkuNameInfo) { + if multiStoreAllSkuInfoMap[vendorID] != nil { + retVal = multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] + } + return retVal } -func GetMultiStoreAllSkuInfoList(vendorID int) []*partner.StoreSkuInfo { - return multiStoreAllSkuInfoList[vendorID] +func GetMultiStoreAllSkuInfoList(vendorID int, vendorOrgCode string) (retVal []*partner.StoreSkuInfo) { + if multiStoreAllSkuInfoList[vendorID] != nil { + retVal = multiStoreAllSkuInfoList[vendorID][vendorOrgCode] + } + return retVal } //过滤掉平台下架的 @@ -202,24 +210,26 @@ func GetMultiStoreAllSkuInfo(ctx *jxcontext.Context, vendorMap map[int]bool) { } if partner.IsMultiStore(vendorID) { multiHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) - // TODO vendorOrgCode处理 - allSkuNameInfoList, err := multiHandler.GetSkus(ctx, "", 0, "") - skuNameInfoList = allSkuNameInfoList - if err != nil { - baseapi.SugarLogger.Errorf("GetMultiStoreAllSkuInfo error:%v", err) - } else { - multiStoreAllSkuInfoList[vendorID] = StoreSkuFullList2BareFilter(allSkuNameInfoList) //map[平台ID:[]StoreSkuInfo1,StoreSkuInfo2...] - tempMap := make(map[int]*partner.SkuNameInfo) - for _, value := range allSkuNameInfoList { - for _, skuInfo := range value.SkuList { - //表示平台商品库未下架的 - if skuInfo.Status > model.SkuStatusDontSale { - filterVendorDepotUnSaleSkuIds = append(filterVendorDepotUnSaleSkuIds, skuInfo.SkuID) - tempMap[skuInfo.SkuID] = value + for _, vendorOrgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { + allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "") + skuNameInfoList = allSkuNameInfoList + if err != nil { + baseapi.SugarLogger.Errorf("GetMultiStoreAllSkuInfo error:%v", err) + } else { + multiStoreAllSkuInfoList[vendorID][vendorOrgCode] = StoreSkuFullList2BareFilter(allSkuNameInfoList) //map[平台ID:[]StoreSkuInfo1,StoreSkuInfo2...] + tempMap := make(map[int]*partner.SkuNameInfo) + for _, value := range allSkuNameInfoList { + for _, skuInfo := range value.SkuList { + //表示平台商品库未下架的 + if skuInfo.Status > model.SkuStatusDontSale { + filterVendorDepotUnSaleSkuIds = append(filterVendorDepotUnSaleSkuIds, skuInfo.SkuID) + tempMap[skuInfo.SkuID] = value + } } } + multiStoreAllSkuInfoMap[vendorID] = make(map[string]map[int]*partner.SkuNameInfo) + multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] = tempMap //map[平台ID][map[skuID1:SkuNameInfo1,skuID2:SkuNameInfo2]...] } - multiStoreAllSkuInfoMap[vendorID] = tempMap //map[平台ID][map[skuID1:SkuNameInfo1,skuID2:SkuNameInfo2]...] } } } @@ -255,8 +265,8 @@ func GetFilterJxSkuInfoMap2(jxSkuInfoList []*model.SkuAndName) map[int]*model.Sk return filterVendorSkuInfoMap } -func GetFilterMultiStoreSkuInfoMap(vendorID int, skuInfoList []*partner.StoreSkuInfo) map[int]*partner.SkuNameInfo { - allSkuInfoMap := GetMultiStoreAllSkuInfoMap(vendorID) +func GetFilterMultiStoreSkuInfoMap(vendorID int, vendorOrgCode string, skuInfoList []*partner.StoreSkuInfo) map[int]*partner.SkuNameInfo { + allSkuInfoMap := GetMultiStoreAllSkuInfoMap(vendorID, vendorOrgCode) filterSkuInfoMap := make(map[int]*partner.SkuNameInfo) for _, value := range skuInfoList { if value.Stock > 0 { @@ -570,12 +580,12 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int, if partner.IsMultiStore(vendorID) { singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler) - allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID) + allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID, vendorListValue.VendorOrgCode) skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, vendorListValue.VendorOrgCode, task, storeID, vendorStoreID, allSkuInfoList) if err != nil { baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err) } else if len(skuBareInfoList) > 0 { - filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, skuBareInfoList) //map[京东商品ID:SkuNameInfo] + filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo] CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap) } } else { diff --git a/business/jxstore/misc/misc2.go b/business/jxstore/misc/misc2.go index 3b374f0b4..c39f735d3 100644 --- a/business/jxstore/misc/misc2.go +++ b/business/jxstore/misc/misc2.go @@ -103,13 +103,13 @@ func (s *StoreListQueueData) TransferWaitQueueToProcessQueue() { } } -func AddOrDelExtraStoreOptime(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, storeInfo *model.Store, startOpStoreTime, endOpStoreTime int16, needAddTime bool) bool { +func AddOrDelExtraStoreOptime(ctx *jxcontext.Context, vendorID int, vendorOrgCode string, storeID int, vendorStoreID string, storeInfo *model.Store, startOpStoreTime, endOpStoreTime int16, needAddTime bool) bool { opTimeList := storeInfo.GetOpTimeList() if needAddTime { opTimeList = []int16{startOpStoreTime, endOpStoreTime} } handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler) - return handler.UpdateStoreOpTime(ctx, "", storeID, vendorStoreID, opTimeList) == nil // TODO vendorOrgCode应该用传入的值 + return handler.UpdateStoreOpTime(ctx, vendorOrgCode, storeID, vendorStoreID, opTimeList) == nil } func GetStockValue(isStart bool) int { @@ -142,14 +142,13 @@ func SetSkuStock(isStart bool, storeSkuNameList []*partner.SkuNameInfo) { } } -func SetSpecialSkuStatus(ctx *jxcontext.Context, storeID, vendorID int, vendorStoreID string, storeSkuNameList []*partner.SkuNameInfo) { +func SetSpecialSkuStatus(ctx *jxcontext.Context, vendorID int, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuNameList []*partner.SkuNameInfo) { singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) for _, skuNameInfo := range storeSkuNameList { for _, skuInfo := range skuNameInfo.SkuList { if IsSpecialSku(skuNameInfo.Name) || IsSpecialSku(skuInfo.SkuName) { storeSkuList := []*partner.StoreSkuInfo{&skuInfo.StoreSkuInfo} - // TODO vendorOrgCode - singleStoreHandler.UpdateStoreSkusStatus(ctx, "", storeID, vendorStoreID, storeSkuList, model.SkuStatusNormal) + singleStoreHandler.UpdateStoreSkusStatus(ctx, vendorOrgCode, storeID, vendorStoreID, storeSkuList, model.SkuStatusNormal) } } } @@ -244,24 +243,23 @@ func StartOrEndOpStoreEx(ctx *jxcontext.Context, isStart bool, startTime, endTim baseapi.SugarLogger.Errorf("StartOrEndOpStore GetStoreSkusFullInfo error:%v storeID:%d vendorID:%d vendorStoreID:%s", err, storeID, vendorID, vendorStoreID) } else { SetSkuStock(isStart, storeSkuNameList) - SetSpecialSkuStatus(ctx, storeID, vendorID, vendorStoreID, storeSkuNameList) + SetSpecialSkuStatus(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, storeSkuNameList) storeSkuList := putils.StoreSkuFullList2Bare(storeSkuNameList) if vendorID == model.VendorIDMTWM { storeSkuList = GetFilterStoreSkuList(storeSkuList) } if len(storeSkuList) > 0 { if !isStart { - AddOrDelExtraStoreOptime(ctx, vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, false) + AddOrDelExtraStoreOptime(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, false) } _, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { - // TODO vendorOrgCode - _, err = singleStoreHandler.UpdateStoreSkusStock(ctx, "", storeID, vendorStoreID, batchedStoreSkuList) + _, err = singleStoreHandler.UpdateStoreSkusStock(ctx, vendorListValue.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList) return nil, 0, err }, ctx, task, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true) if isStart { - AddOrDelExtraStoreOptime(ctx, vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true) + AddOrDelExtraStoreOptime(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true) } } }