根据excel中skuid关注商品
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user