根据excel中skuid关注商品

This commit is contained in:
苏尹岚
2019-12-26 09:24:14 +08:00
parent 6f84d79901
commit f8e6fd4bdd

View File

@@ -2766,57 +2766,73 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
SkuRow: 1, SkuRow: 1,
} }
// xlsx, err := excelize.OpenFile("111.xlsx") // xlsx, err := excelize.OpenFile("111.xlsx")
xlsx, err := excelize.OpenReader(reader) taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
if err != nil { switch step {
return "", err case 0:
} xlsx, err := excelize.OpenReader(reader)
rows, _ := xlsx.GetRows(xlsx.GetSheetName(1)) if err != nil {
for rowNum, row := range rows { return result, err
if rowNum < sheetParam.SkuRow {
continue
}
GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap)
}
for k, _ := range skuMap {
skuIDs = append(skuIDs, k)
}
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
if err != nil && len(skuList) == 0 {
return
}
for _, v := range skuList {
var (
price int
specQuality float64
)
if v.Unit == model.SpecialUnit {
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
specQuality = float64(v.SpecQuality) * 1000
} else {
specQuality = float64(v.SpecQuality)
} }
price = int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality) / specQuality * utils.Int2Float64(skuMap[v.ID]))) rows, _ := xlsx.GetRows(xlsx.GetSheetName(1))
} else { for rowNum, row := range rows {
price = skuMap[v.ID] if rowNum < sheetParam.SkuRow {
} continue
if skuNameMap[v.NameID] < price { }
skuNameMap[v.NameID] = price GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap)
}
case 1:
for k, _ := range skuMap {
skuIDs = append(skuIDs, k)
}
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
if err != nil && len(skuList) == 0 {
return result, err
}
for _, v := range skuList {
var (
price int
specQuality float64
)
if v.Unit == model.SpecialUnit {
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
specQuality = float64(v.SpecQuality) * 1000
} else {
specQuality = float64(v.SpecQuality)
}
price = int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality) / specQuality * utils.Int2Float64(skuMap[v.ID])))
} else {
price = skuMap[v.ID]
}
if skuNameMap[v.NameID] < price {
skuNameMap[v.NameID] = price
}
}
for k, v := range skuNameMap {
skuBindInfo := &StoreSkuBindInfo{
NameID: k,
UnitPrice: v,
IsFocus: 1,
IsSale: 1,
}
skuBindInfos = append(skuBindInfos, skuBindInfo)
}
storeList, err := dao.GetStoreList(db, nil, nil, "")
for _, v := range storeList {
storeIDs = append(storeIDs, v.ID)
}
case 2:
UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError)
} }
return result, err
} }
for k, v := range skuNameMap { taskSeq := tasksch.NewSeqTask2("根据Excel中skuID批量关注商品", ctx, isContinueWhenError, taskSeqFunc, 3)
skuBindInfo := &StoreSkuBindInfo{ tasksch.HandleTask(taskSeq, nil, true).Run()
NameID: k, if !isAsync {
UnitPrice: v, _, err = taskSeq.GetResult(0)
IsFocus: 1, hint = "1"
IsSale: 1, } else {
} hint = taskSeq.GetID()
skuBindInfos = append(skuBindInfos, skuBindInfo)
} }
storeList, err := dao.GetStoreList(db, nil, nil, "")
for _, v := range storeList {
storeIDs = append(storeIDs, v.ID)
}
hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError)
return hint, err return hint, err
} }