修正错误
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
package misc
|
package misc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
@@ -21,8 +19,6 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
startOpStoreTime = startOpStoreTimeDefault
|
|
||||||
endOpStoreTime = endOpStoreTimeDefault
|
|
||||||
startOpStoreTimeList = []string {
|
startOpStoreTimeList = []string {
|
||||||
"00:00:00",
|
"00:00:00",
|
||||||
}
|
}
|
||||||
@@ -35,35 +31,37 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func AddOrDelExtraStoreOptime(vendorID, storeID int, vendorStoreID string, storeInfo *model.Store, needAddTime bool) {
|
func AddOrDelExtraStoreOptime(vendorID, storeID int, vendorStoreID string, storeInfo *model.Store, startOpStoreTime, endOpStoreTime int16, needAddTime bool) bool {
|
||||||
ctx := jxcontext.AdminCtx
|
ctx := jxcontext.AdminCtx
|
||||||
opTimeList := storeInfo.GetOpTimeList()
|
opTimeList := storeInfo.GetOpTimeList()
|
||||||
if needAddTime {
|
if needAddTime {
|
||||||
if len(opTimeList) == 0 {
|
opTimeList = []int16{startOpStoreTime, endOpStoreTime}
|
||||||
opTimeList = append(opTimeList, startOpStoreTime, endOpStoreTime)
|
|
||||||
} else if len(opTimeList) >= 2 {
|
|
||||||
opTimeList[0] = startOpStoreTime
|
|
||||||
opTimeList[1] = endOpStoreTime
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler)
|
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler)
|
||||||
handler.UpdateStoreOpTime(ctx, storeID, vendorStoreID, opTimeList)
|
return handler.UpdateStoreOpTime(ctx, storeID, vendorStoreID, opTimeList) == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStockValue(startOrEnd bool) int {
|
func GetStockValue(isStart bool) int {
|
||||||
if startOrEnd {
|
if isStart {
|
||||||
return startOpStoreStockNumber
|
return startOpStoreStockNumber
|
||||||
} else {
|
} else {
|
||||||
return endOpStoreStockNumber
|
return endOpStoreStockNumber
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func StartOrEndOpStore(startOrEnd bool, startTime, endTime int16) {
|
func FilterSkuNameList(storeSkuNameList []*partner.SkuNameInfo) (filterStoreSkuNameList []*partner.SkuNameInfo) {
|
||||||
if startTime == 0 || endTime == 0 {
|
for _, skuNameInfo := range storeSkuNameList {
|
||||||
startOpStoreTime = startOpStoreTimeDefault
|
if skuNameInfo.Name != specialSkuName {
|
||||||
endOpStoreTime = endOpStoreTimeDefault
|
filterStoreSkuNameList = append(filterStoreSkuNameList, skuNameInfo)
|
||||||
baseapi.SugarLogger.Debugf("The store time can't be 0")
|
}
|
||||||
} else {
|
}
|
||||||
|
return filterStoreSkuNameList
|
||||||
|
}
|
||||||
|
|
||||||
|
func StartOrEndOpStore(isStart bool, startTime, endTime int16) {
|
||||||
|
startOpStoreTime := startOpStoreTimeDefault
|
||||||
|
endOpStoreTime := endOpStoreTimeDefault
|
||||||
|
if startTime != 0 && endTime != 0 {
|
||||||
startOpStoreTime = startTime
|
startOpStoreTime = startTime
|
||||||
endOpStoreTime = endTime
|
endOpStoreTime = endTime
|
||||||
baseapi.SugarLogger.Debugf("SetStoreOptime:%d do:%d", startTime, endTime)
|
baseapi.SugarLogger.Debugf("SetStoreOptime:%d do:%d", startTime, endTime)
|
||||||
@@ -77,54 +75,39 @@ func StartOrEndOpStore(startOrEnd bool, startTime, endTime int16) {
|
|||||||
for _, storeListValue := range storeInfo.Stores {
|
for _, storeListValue := range storeInfo.Stores {
|
||||||
storeID := storeListValue.ID
|
storeID := storeListValue.ID
|
||||||
if storeListValue.StoreMaps != nil {
|
if storeListValue.StoreMaps != nil {
|
||||||
for _, vendorListValue := range storeListValue.StoreMaps {
|
for _, vendorListValue := range storeListValue.StoreMaps {
|
||||||
vendorID, _ := strconv.Atoi(vendorListValue["vendorID"].(json.Number).String())
|
vendorID := int(utils.MustInterface2Int64(vendorListValue["vendorID"]))
|
||||||
if _, ok := vendorList[vendorID]; ok {
|
if _, ok := vendorList[vendorID]; ok {
|
||||||
vendorStoreID := vendorListValue["vendorStoreID"].(string)
|
vendorStoreID := utils.Interface2String(vendorListValue["vendorStoreID"])
|
||||||
baseapi.SugarLogger.Debugf("storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue)
|
baseapi.SugarLogger.Debugf("storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue)
|
||||||
storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
|
|
||||||
// storeSkuList, err := storeSkuHandler.GetStoreSkusBareInfo(ctx, nil, storeID, vendorStoreID, nil)
|
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||||
storeSkuNameList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, storeID, vendorStoreID, nil)
|
storeSkuNameList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, storeID, vendorStoreID, nil)
|
||||||
storeSkuList := putils.StoreSkuFullList2Bare(storeSkuNameList)
|
filterStoreSkuNameList := FilterSkuNameList(storeSkuNameList)
|
||||||
|
storeSkuList := putils.StoreSkuFullList2Bare(filterStoreSkuNameList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
baseapi.SugarLogger.Errorf("storeSkuList error:%v", err)
|
baseapi.SugarLogger.Errorf("storeSkuList error:%v", err)
|
||||||
} else {
|
} else {
|
||||||
if len(storeSkuList) > 0 {
|
if len(storeSkuList) > 0 {
|
||||||
if !startOrEnd {
|
canProcessSkuList := true
|
||||||
AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, false)
|
if !isStart {
|
||||||
|
canProcessSkuList = AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, false)
|
||||||
}
|
}
|
||||||
skuNameMap := make(map[int]*partner.SkuNameInfo)
|
if canProcessSkuList {
|
||||||
for _, value := range storeSkuNameList {
|
_, err = putils.FreeBatchStoreSkuInfo(func(batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, err error) {
|
||||||
skuNameMap[value.NameID] = value
|
for _, skuValue := range batchedStoreSkuList {
|
||||||
|
skuValue.Stock = GetStockValue(isStart)
|
||||||
|
}
|
||||||
|
var successList []*partner.StoreSkuInfo
|
||||||
|
if successList, err = singleStoreHandler.UpdateStoreSkusStock(ctx, storeID, vendorStoreID, batchedStoreSkuList); err == nil {
|
||||||
|
successList = batchedStoreSkuList
|
||||||
|
baseapi.SugarLogger.Debugf("successList:%v error:%v", successList, err)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, ctx, nil, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
isContinueWhenError := true
|
|
||||||
_, err = putils.FreeBatchStoreSkuInfo(func(batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, err error) {
|
|
||||||
var filterBatchedStoreSkuList []*partner.StoreSkuInfo
|
|
||||||
for _, skuValue := range batchedStoreSkuList {
|
|
||||||
skuNameInfo := skuNameMap[skuValue.SkuID]
|
|
||||||
needCheckName := skuNameInfo != nil
|
|
||||||
skuName := ""
|
|
||||||
if skuNameInfo != nil {
|
|
||||||
skuName = skuNameInfo.Name
|
|
||||||
}
|
|
||||||
if (needCheckName && skuName != specialSkuName) || !needCheckName {
|
|
||||||
skuValue.Stock = GetStockValue(startOrEnd)
|
|
||||||
filterBatchedStoreSkuList = append(filterBatchedStoreSkuList, skuValue)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var successList []*partner.StoreSkuInfo
|
if isStart {
|
||||||
if successList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeID, vendorStoreID, filterBatchedStoreSkuList); err == nil {
|
AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true)
|
||||||
successList = batchedStoreSkuList
|
|
||||||
baseapi.SugarLogger.Debugf("successList:%v error:%v", successList, err)
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, ctx, nil, storeSkuList, storeSkuHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), isContinueWhenError)
|
|
||||||
|
|
||||||
if startOrEnd {
|
|
||||||
AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, true)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user