Merge remote-tracking branch 'origin/mark' into su

This commit is contained in:
苏尹岚
2020-01-08 10:45:36 +08:00
4 changed files with 41 additions and 40 deletions

View File

@@ -1042,7 +1042,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
}
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
dao.WrapAddIDCULDEntity(skuBind, userName)
globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
// globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil {
if err = dao.CreateEntity(db, skuBind); err != nil {
dao.Rollback(db)
@@ -2841,9 +2841,8 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
store := batchItemList[0].(*model.Store)
var (
skuBindInfos []*StoreSkuBindInfo
skuNameMap = make(map[int]int)
skuInfoMap = make(map[int][]*StoreSkuBindSkuInfo)
skuNameMap = make(map[int]int)
skuInfoMap = make(map[int][]*StoreSkuBindSkuInfo)
)
for _, v := range skuList {
var (
@@ -2877,29 +2876,26 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
}
for k, v := range skuNameMap {
skuBindInfo := &StoreSkuBindInfo{
StoreID: store.ID,
NameID: k,
UnitPrice: v,
IsFocus: 1,
IsSale: 1,
Skus: skuInfoMap[k],
}
skuBindInfos = append(skuBindInfos, skuBindInfo)
retVal = []*StoreSkuBindInfo{skuBindInfo}
}
tUpdate := &tUpdateStoresSkus{
StoreID: store.ID,
SkuBindInfos: skuBindInfos,
}
retVal = []*tUpdateStoresSkus{tUpdate}
return retVal, err
}
taskParallel := tasksch.NewParallelTask("根据skuID关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
tasksch.HandleTask(taskParallel, task, true).Run()
result1, _ = taskParallel.GetResult(0)
case 2:
var skuBindInfos []*StoreSkuBindInfo
for _, v := range result1 {
tUpdate := v.(*tUpdateStoresSkus)
UpdateStoresSkus(ctx, []int{tUpdate.StoreID}, tUpdate.SkuBindInfos, false, isAsync, isContinueWhenError)
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
}
UpdateStoresSkusByBind(ctx, skuBindInfos, true, true)
}
return result, err
}
@@ -2954,7 +2950,6 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
case 1:
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
store := batchItemList[0].(*model.Store)
var skuBindInfos []*StoreSkuBindInfo
for k, v := range skuNameMap {
var price int
focusList, _ := dao.GetStoreSkuBindByNameID(db, store.ID, k, model.StoreSkuBindStatusNormal)
@@ -2980,23 +2975,19 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
IsFocus: 1,
Skus: v,
}
skuBindInfos = append(skuBindInfos, skuBindInfo)
retVal = []*StoreSkuBindInfo{skuBindInfo}
}
tUpdate := &tUpdateStoresSkus{
StoreID: store.ID,
SkuBindInfos: skuBindInfos,
}
retVal = []*tUpdateStoresSkus{tUpdate}
return retVal, err
}
taskParallel := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
tasksch.HandleTask(taskParallel, task, true).Run()
result1, _ = taskParallel.GetResult(0)
case 2:
var skuBindInfos []*StoreSkuBindInfo
for _, v := range result1 {
tUpdate := v.(*tUpdateStoresSkus)
UpdateStoresSkusByBind(ctx, tUpdate.SkuBindInfos, isAsync, isContinueWhenError)
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
}
UpdateStoresSkusByBind(ctx, skuBindInfos, isAsync, isContinueWhenError)
}
return result, err
}
@@ -3013,12 +3004,12 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context) (err error) {
db := dao.GetDB()
var skuBindInfoList []*StoreSkuBindInfo
storeList, err := dao.GetStoreList(db, nil, nil, "")
for _, v := range storeList {
var (
skuName []*model.SkuName
skuNameMap = make(map[int]int)
skuBindInfoList []*StoreSkuBindInfo
skuName []*model.SkuName
skuNameMap = make(map[int]int)
)
sql := `
SELECT DISTINCT a.name_id id
@@ -3053,12 +3044,13 @@ func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context) (err error
payPercentage = v.PayPercentage
}
if len(skuNameAndPlaceList) > 0 {
for _, v := range skuNameAndPlaceList {
if skuNameMap[v.ID] != 0 {
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{v.CityCode}, nil, []int{v.ID}, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
for _, vv := range skuNameAndPlaceList {
if skuNameMap[vv.ID] != 0 {
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{vv.CityCode}, nil, []int{vv.ID}, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
if err == nil && len(priceReferList) > 0 {
storeSkuBindInfo := &StoreSkuBindInfo{
NameID: v.ID,
StoreID: v.ID,
NameID: vv.ID,
UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100,
IsFocus: 1,
IsSale: 0,
@@ -3068,8 +3060,8 @@ func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context) (err error
}
}
}
UpdateStoreSkus(ctx, v.ID, skuBindInfoList, true, true)
}
UpdateStoresSkusByBind(ctx, skuBindInfoList, true, true)
return err
}