diff --git a/business/jxstore/misc/misc2.go b/business/jxstore/misc/misc2.go index c72559692..08a8bf401 100644 --- a/business/jxstore/misc/misc2.go +++ b/business/jxstore/misc/misc2.go @@ -9,19 +9,22 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/baseapi" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" ) const ( specialSkuName = "温馨提示" startOpStoreStockNumber = 0 endOpStoreStockNumber = model.MaxStoreSkuStockQty - startOpStoreTimeDefault = int16(5) - endOpStoreTimeDefault = int16(2355) + startOpStoreTimeDefaultMTWM = int16(2200) + endOpStoreTimeDefaultMTWM = int16(2355) + startOpStoreTimeDefaultEBAI = int16(5) + endOpStoreTimeDefaultEBAI = int16(2355) ) var ( startOpStoreTimeList = []string { - "00:00:00", + "22:00:00", } endOpStoreTimeList = []string { "06:00:00", @@ -50,6 +53,16 @@ func GetStockValue(isStart bool) int { } } +func GetOpStoreTime(vendorID int) (startTime, endTime int16) { + if vendorID == model.VendorIDMTWM { + return startOpStoreTimeDefaultMTWM, endOpStoreTimeDefaultMTWM + } else if vendorID == model.VendorIDEBAI { + return startOpStoreTimeDefaultEBAI, endOpStoreTimeDefaultEBAI + } + + return 0, 0 +} + func FilterSkuNameList(storeSkuNameList []*partner.SkuNameInfo) (filterStoreSkuNameList []*partner.SkuNameInfo) { for _, skuNameInfo := range storeSkuNameList { if skuNameInfo.Name != specialSkuName { @@ -62,31 +75,31 @@ func FilterSkuNameList(storeSkuNameList []*partner.SkuNameInfo) (filterStoreSkuN func StartOrEndOpStore(isStart bool, startTime, endTime int16) { startProcessTime := time.Now().Unix() baseapi.SugarLogger.Debugf("StartOrEndOpStore start time: %v", time.Now()) - startOpStoreTime := startOpStoreTimeDefault - endOpStoreTime := endOpStoreTimeDefault - if startTime != 0 && endTime != 0 { - startOpStoreTime = startTime - endOpStoreTime = endTime - baseapi.SugarLogger.Debugf("SetStoreOptime:%d do:%d", startTime, endTime) - } ctx := jxcontext.AdminCtx storeInfo, err := cms.GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0) if err != nil { baseapi.SugarLogger.Errorf("storeInfo error:%v", err) } else { - for _, storeListValue := range storeInfo.Stores { + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + storeListValue := batchItemList[0].(*cms.StoreExt) storeID := storeListValue.ID if storeListValue.StoreMaps != nil { for _, vendorListValue := range storeListValue.StoreMaps { vendorID := int(utils.MustInterface2Int64(vendorListValue["vendorID"])) if _, ok := vendorList[vendorID]; ok { + startOpStoreTime, endOpStoreTime := GetOpStoreTime(vendorID) + if startTime != 0 && endTime != 0 { + startOpStoreTime = startTime + endOpStoreTime = endTime + baseapi.SugarLogger.Debugf("SetStoreOptime:%d do:%d", startTime, endTime) + } vendorStoreID := utils.Interface2String(vendorListValue["vendorStoreID"]) baseapi.SugarLogger.Debugf("storeID:%d vendorID:%d vendorStoreID:%s", storeID, vendorID, vendorStoreID) singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) storeSkuNameList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, storeID, vendorStoreID, nil) if err != nil { - baseapi.SugarLogger.Errorf("storeSkuList error:%v", err) + baseapi.SugarLogger.Errorf("storeSkuNameList error:%v storeID:%d vendorID:%d vendorStoreID:%s", err, storeID, vendorID, vendorStoreID) } else { filterStoreSkuNameList := FilterSkuNameList(storeSkuNameList) storeSkuList := putils.StoreSkuFullList2Bare(filterStoreSkuNameList) @@ -105,7 +118,7 @@ func StartOrEndOpStore(isStart bool, startTime, endTime int16) { //baseapi.SugarLogger.Debugf("successList:%v error:%v", successList, err) } return nil, err - }, ctx, nil, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true) + }, ctx, task, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true) if isStart { AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true) @@ -115,6 +128,13 @@ func StartOrEndOpStore(isStart bool, startTime, endTime int16) { } } } + return retVal, err + } + task := tasksch.NewParallelTask("StartOrEndOpStore", nil, ctx, taskFunc, storeInfo.Stores) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) + if err != nil { + baseapi.SugarLogger.Errorf("tasksch error:%v", err) } } endProcessTime := time.Now().Unix()