This commit is contained in:
苏尹岚
2021-03-17 17:55:37 +08:00
parent f0d41bc043
commit c4bcc120a4

View File

@@ -1888,117 +1888,146 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
// }, storeMaps) // }, storeMaps)
// tasksch.HandleTask(task, nil, true).Run() // tasksch.HandleTask(task, nil, true).Run()
// _, err = task.GetResult(0) // _, err = task.GetResult(0)
// var (
// db = dao.GetDB()
// skuNames []*model.SkuName
// failedSku []string
// )
// sql := `
// SELECT * FROM sku_name WHERE deleted_at = ? AND img = ?
// `
// sqlParams := []interface{}{
// utils.DefaultTimeValue, model.NOSkuNameImg,
// }
// dao.GetRows(db, &skuNames, sql, sqlParams)
// for _, v := range skuNames {
// if v.Upc != nil {
// result, _ := api.MtwmAPI.GetStandardProductListWithCond(*v.Upc)
// if result != nil {
// if v.Img == model.NOSkuNameImg {
// imgs := strings.Split(result.Pic, ",")
// if len(imgs) == 1 {
// v.Img = imgs[0]
// }
// if len(imgs) == 2 {
// v.Img = imgs[0]
// v.Img2 = imgs[1]
// }
// if len(imgs) >= 3 {
// v.Img = imgs[0]
// v.Img2 = imgs[1]
// v.Img3 = imgs[2]
// }
// dao.UpdateEntity(db, v, "Img", "Img2", "Img3")
// }
// } else {
// failedSku = append(failedSku, *v.Upc)
// }
// }
// }
var ( var (
db = dao.GetDB() db = dao.GetDB()
vendorIDs = []int{model.VendorIDJD, model.VendorIDMTWM, model.VendorIDEBAI} skuNames []*model.SkuName
// messageFlag = time.Now().Hour() == 10 && time.Now().Minute() > 0 && time.Now().Minute() < 12
) )
task := tasksch.NewParallelTask("RefreshStoreManageState", tasksch.NewParallelConfig().SetParallelCount(3).SetIsContinueWhenError(true), ctx, sql := `
SELECT * FROM sku_name WHERE deleted_at = ? AND upc <> '' AND img2 = ''
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
dao.GetRows(db, &skuNames, sql, sqlParams)
task := tasksch.NewParallelTask("uuuuu", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorID := batchItemList[0].(int) v := batchItemList[0].(*model.SkuName)
storeMaps, err := dao.GetStoresMapList(db, []int{vendorID}, nil, []int{model.StoreStatusOpened, model.StoreStatusClosed, model.StoreStatusHaveRest}, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "") if v.Upc != nil {
storeManageStates, err := dao.GetStoreManageStateSimple(db, nil, nil, vendorID) productInfos, _ := api.JdAPI.GetJdUpcCodeByName("", *v.Upc, 1, 30)
var ( if len(productInfos) > 0 {
storeMapsMap = make(map[int]*model.StoreMap) productInfo := productInfos[0]
storeManagesMap = make(map[int]*model.StoreManageState) if len(productInfo.ImgList) >= 5 {
deleteList []int v.Img = productInfo.ImgList[0]
createList, updateList []*model.StoreMap v.Img2 = productInfo.ImgList[1]
) v.Img3 = productInfo.ImgList[2]
for _, v := range storeMaps { v.Img4 = productInfo.ImgList[3]
storeMapsMap[v.StoreID] = v v.Img5 = productInfo.ImgList[4]
}
for _, v := range storeManageStates {
storeManagesMap[v.StoreID] = v
if storeMapsMap[v.StoreID] != nil {
updateList = append(updateList, storeMapsMap[v.StoreID])
} else { } else {
deleteList = append(deleteList, v.StoreID) result, _ := api.MtwmAPI.GetStandardProductListWithCond(*v.Upc)
if result != nil {
imgs := strings.Split(result.Pic, ",")
if len(imgs) >= 5 {
v.Img = imgs[0]
v.Img2 = imgs[1]
v.Img3 = imgs[2]
v.Img4 = imgs[3]
v.Img5 = imgs[4]
} else {
if len(imgs) > len(productInfo.ImgList) {
switch len(imgs) {
case 0:
case 1:
v.Img = imgs[0]
case 2:
v.Img = imgs[0]
v.Img2 = imgs[1]
case 3:
v.Img = imgs[0]
v.Img2 = imgs[1]
v.Img3 = imgs[2]
case 4:
v.Img = imgs[0]
v.Img2 = imgs[1]
v.Img3 = imgs[2]
v.Img4 = imgs[3]
case 5:
v.Img = imgs[0]
v.Img2 = imgs[1]
v.Img3 = imgs[2]
v.Img4 = imgs[3]
v.Img5 = imgs[4]
default:
v.Img = imgs[0]
v.Img2 = imgs[1]
v.Img3 = imgs[2]
v.Img4 = imgs[3]
v.Img5 = imgs[4]
}
} else {
switch len(productInfo.ImgList) {
case 0:
case 1:
v.Img = productInfo.ImgList[0]
case 2:
v.Img = productInfo.ImgList[0]
v.Img2 = productInfo.ImgList[1]
case 3:
v.Img = productInfo.ImgList[0]
v.Img2 = productInfo.ImgList[1]
v.Img3 = productInfo.ImgList[2]
case 4:
v.Img = productInfo.ImgList[0]
v.Img2 = productInfo.ImgList[1]
v.Img3 = productInfo.ImgList[2]
v.Img4 = productInfo.ImgList[3]
case 5:
v.Img = productInfo.ImgList[0]
v.Img2 = productInfo.ImgList[1]
v.Img3 = productInfo.ImgList[2]
v.Img4 = productInfo.ImgList[3]
v.Img5 = productInfo.ImgList[4]
default:
v.Img = productInfo.ImgList[0]
v.Img2 = productInfo.ImgList[1]
v.Img3 = productInfo.ImgList[2]
v.Img4 = productInfo.ImgList[3]
v.Img5 = productInfo.ImgList[4]
} }
} }
for _, v := range storeMapsMap {
if storeManagesMap[v.StoreID] == nil {
createList = append(createList, v)
} }
} }
// task2 := tasksch.NewParallelTask("deleteList", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, }
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { } else {
// storeID := batchItemList[0].(int) result, _ := api.MtwmAPI.GetStandardProductListWithCond(*v.Upc)
// storeManage := &model.StoreManageState{ if result != nil {
// StoreID: storeID, imgs := strings.Split(result.Pic, ",")
// VendorID: vendorID, switch len(imgs) {
// } case 0:
// dao.DeleteEntity(db, storeManage, "StoreID", "VendorID") case 1:
// return retVal, err v.Img = imgs[0]
// }, deleteList) case 2:
// tasksch.HandleTask(task2, task, true).Run() v.Img = imgs[0]
// task2.GetResult(0) v.Img2 = imgs[1]
// task3 := tasksch.NewParallelTask("createList", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, case 3:
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { v.Img = imgs[0]
// storeMap := batchItemList[0].(*model.StoreMap) v.Img2 = imgs[1]
// if storeMap.VendorOrgCode == "" || storeMap.VendorStoreID == "" { v.Img3 = imgs[2]
// return retVal, err case 4:
// } v.Img = imgs[0]
// storeDetail, _ := dao.GetStoreDetail(db, storeMap.StoreID, vendorID, storeMap.VendorOrgCode) v.Img2 = imgs[1]
// storeManage := buildStoreManageState(ctx, db, storeMap, storeDetail, messageFlag) v.Img3 = imgs[2]
// dao.CreateEntity(db, storeManage) v.Img4 = imgs[3]
// return retVal, err case 5:
// }, createList) v.Img = imgs[0]
// tasksch.HandleTask(task3, task, true).Run() v.Img2 = imgs[1]
// task3.GetResult(0) v.Img3 = imgs[2]
// task4 := tasksch.NewParallelTask("updateList", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, v.Img4 = imgs[3]
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { v.Img5 = imgs[4]
// storeMap := batchItemList[0].(*model.StoreMap) default:
// if storeMap.VendorOrgCode == "" || storeMap.VendorStoreID == "" { v.Img = imgs[0]
// return retVal, err v.Img2 = imgs[1]
// } v.Img3 = imgs[2]
// storeDetail, _ := dao.GetStoreDetail(db, storeMap.StoreID, vendorID, storeMap.VendorOrgCode) v.Img4 = imgs[3]
// storeManage := buildStoreManageState(ctx, db, storeMap, storeDetail, messageFlag) v.Img5 = imgs[4]
// dao.UpdateEntity(db, storeManage) }
// return retVal, err }
// }, updateList) }
// tasksch.HandleTask(task4, task, true).Run() dao.UpdateEntity(db, v, "Img", "Img2", "Img3", "Img4", "Img5")
// task4.GetResult(0) }
return retVal, err return retVal, err
}, vendorIDs) }, skuNames)
tasksch.HandleTask(task, nil, true).Run() tasksch.HandleTask(task, nil, true).Run()
task.GetID() _, err = task.GetResult(0)
return err return err
} }