增加商品力荐标志,目前只有美团

This commit is contained in:
苏尹岚
2020-01-19 16:27:41 +08:00
parent 27c3763ff9
commit 8b1c0726fb
7 changed files with 146 additions and 1 deletions

View File

@@ -1288,7 +1288,8 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
func BuildDiffData(mapData map[string]interface{}) string {
dd := utils.MustMarshal(mapData)
return string(dd)
result := utils.LimitUTF8StringLen(string(dd), 3200)
return result
}
func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuInfos []*StoreSkuBindSkuInfo) {
@@ -3250,3 +3251,86 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync
}
return err
}
func UpdateStoreSkusSpecTag(ctx *jxcontext.Context, vendorIDs []int, files []*multipart.FileHeader, isAsync, isContinueWhenError bool) (hint string, err error) {
if len(files) == 0 {
return "", errors.New("没有文件上传!")
}
fileHeader := files[0]
file, err := fileHeader.Open()
hint, err = UpdateStoreSkusSpecTagBin(ctx, file, vendorIDs, isAsync, isContinueWhenError)
file.Close()
return hint, err
}
func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
var (
db = dao.GetDB()
storeSkuMap = make(map[int][]*partner.StoreSkuInfo)
)
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
// xlsx, err := excelize.OpenFile("111.xlsx")
xlsx, err := excelize.OpenReader(reader)
if err != nil {
return result, err
}
rows, _ := xlsx.GetRows(xlsx.GetSheetName(1))
for rowNum, row := range rows {
if rowNum < 1 {
continue
}
getCellForSpecTag(rowNum, row, storeSkuMap)
}
case 1:
for storeID, storeSkuInfos := range storeSkuMap {
for i := 0; i < len(storeSkuInfos)/2; i++ {
tmp := storeSkuInfos[i]
storeSkuInfos[i] = storeSkuInfos[len(storeSkuInfos)-i-1]
storeSkuInfos[len(storeSkuInfos)-i-1] = tmp
}
for _, v := range vendorIDs {
store, _ := dao.GetStoreDetail(db, storeID, v)
for _, vv := range apimanager.CurAPIManager.GetAppOrgCodeList(v) {
handler := partner.GetPurchasePlatformFromVendorID(v).(partner.IPurchasePlatformStoreSkuHandler)
err = handler.UpdateStoreSkusSpecTag(ctx, vv, storeID, store.VendorStoreID, storeSkuMap[storeID])
}
}
}
}
return result, err
}
taskSeq := tasksch.NewSeqTask2("修改平台力荐商品", ctx, isContinueWhenError, taskSeqFunc, 2)
tasksch.HandleTask(taskSeq, nil, true).Run()
if !isAsync {
_, err = taskSeq.GetResult(0)
hint = "1"
} else {
hint = taskSeq.GetID()
}
return hint, err
}
func getCellForSpecTag(rowNum int, row []string, storeSkuMap map[int][]*partner.StoreSkuInfo) {
var (
skuMap = &partner.StoreSkuInfo{}
storeID int
skuID int
isSpec int
)
for k, cell := range row {
if k == 0 {
storeID = int(utils.Str2Int64(cell))
}
if k == 1 {
skuID = int(utils.Str2Int64(cell))
}
if k == 2 {
isSpec = int(utils.Str2Int64(cell))
}
}
skuMap.SkuID = skuID
skuMap.IsSpecialty = isSpec
storeSkuMap[storeID] = append(storeSkuMap[storeID], skuMap)
}