修正错误

This commit is contained in:
Rosy-zhudan
2019-07-30 14:22:09 +08:00
parent 0fa2d29dca
commit df92f78cc4

View File

@@ -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)
@@ -78,53 +76,38 @@ func StartOrEndOpStore(startOrEnd bool, startTime, endTime int16) {
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 if isStart {
_, err = putils.FreeBatchStoreSkuInfo(func(batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, err error) { AddOrDelExtraStoreOptime(vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true)
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 successList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeID, vendorStoreID, filterBatchedStoreSkuList); err == nil {
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)
} }
} }
} }