UploadImg4Vendors中处理skuName之前没有ImgHashCode的情况
This commit is contained in:
@@ -346,13 +346,68 @@ func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
rootTask := tasksch.NewParallelTask("UploadImg4Vendors", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx,
|
db := dao.GetDB()
|
||||||
|
rootTask := tasksch.NewSeqTask("UploadImg4Vendors", ctx,
|
||||||
|
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
|
switch step {
|
||||||
|
case 0:
|
||||||
|
var skuNameList []*model.SkuName
|
||||||
|
if err = dao.GetRows(db, &skuNameList, `
|
||||||
|
SELECT t1.*
|
||||||
|
FROM sku_name t1
|
||||||
|
WHERE t1.img <> '' AND t1.img_hash_code = ''
|
||||||
|
`); err == nil && len(skuNameList) > 0 {
|
||||||
|
calcTask := tasksch.NewParallelTask("UploadImg4Vendors calc hashCode",
|
||||||
|
tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
skuName := batchItemList[0].(*model.SkuName)
|
||||||
|
_, skuName.ImgHashCode, err = jxutils.DownloadFileByURL(skuName.Img)
|
||||||
|
if err == nil {
|
||||||
|
dao.UpdateEntity(db, skuName, "ImgHashCode")
|
||||||
|
}
|
||||||
|
return retVal, err
|
||||||
|
}, skuNameList)
|
||||||
|
tasksch.HandleTask(calcTask, task, false).Run()
|
||||||
|
_, err = calcTask.GetResult(0)
|
||||||
|
}
|
||||||
|
case 1:
|
||||||
|
_, err = dao.ExecuteSQL(db, `
|
||||||
|
INSERT INTO data_resource(created_at, updated_at, last_operator, hash_code,
|
||||||
|
resoure_type, name, main_url, ebai_url, qiniu_url, is_vendor)
|
||||||
|
SELECT t1.created_at, t1.created_at, t1.last_operator, t1.img_hash_code,
|
||||||
|
CASE
|
||||||
|
WHEN INSTR(t1.img, ".jpg") > 0 OR INSTR(t1.img, ".jpeg") > 0 THEN
|
||||||
|
'image/jpeg'
|
||||||
|
WHEN INSTR(t1.img, ".png") > 0 OR INSTR(t1.img, ".peg") > 0 THEN
|
||||||
|
'image/png'
|
||||||
|
WHEN INSTR(t1.img, ".gif") THEN
|
||||||
|
'image/gif'
|
||||||
|
ELSE
|
||||||
|
''
|
||||||
|
END resoure_type
|
||||||
|
, t1.name, img, img_ebai, IF(INSTR(t1.img, "image.jxc4.com") > 0, t1.img, '') qiniu_url, 1
|
||||||
|
FROM sku_name t1
|
||||||
|
JOIN (
|
||||||
|
SELECT img_hash_code, MAX(id) id
|
||||||
|
FROM sku_name
|
||||||
|
GROUP BY 1
|
||||||
|
) t3 ON t3.id = t1.id
|
||||||
|
LEFT JOIN data_resource t2 ON t2.main_url = t1.img
|
||||||
|
WHERE t1.img <> '' AND t2.id IS NULL;
|
||||||
|
`)
|
||||||
|
case 2:
|
||||||
|
uploadTask := tasksch.NewParallelTask("UploadImg4Vendors",
|
||||||
|
tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), 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) {
|
||||||
dataRes := batchItemList[0].(*model.DataResource)
|
dataRes := batchItemList[0].(*model.DataResource)
|
||||||
_, err = datares.UploadImage2Vendors(ctx, task, dataRes, nil, false)
|
_, err = datares.UploadImage2Vendors(ctx, task, dataRes, nil, false)
|
||||||
return nil, err
|
return nil, err
|
||||||
}, dataResList)
|
}, dataResList)
|
||||||
tasksch.ManageTask(rootTask).Run()
|
tasksch.HandleTask(uploadTask, task, true).Run()
|
||||||
|
_, err = uploadTask.GetResult(0)
|
||||||
|
}
|
||||||
|
return result, err
|
||||||
|
}, 3)
|
||||||
if !isAsync {
|
if !isAsync {
|
||||||
_, err = rootTask.GetResult(0)
|
_, err = rootTask.GetResult(0)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -170,14 +170,13 @@ func UploadImage2Vendors(ctx *jxcontext.Context, parentTask tasksch.ITask, dataR
|
|||||||
}
|
}
|
||||||
if len(vendorIDs) > 0 {
|
if len(vendorIDs) > 0 {
|
||||||
imgName := jxutils.GetShortNameFromURL(dataRes.MainURL)
|
imgName := jxutils.GetShortNameFromURL(dataRes.MainURL)
|
||||||
task := tasksch.NewParallelTask(fmt.Sprintf("UploadImage2Vendors:%s,%s", dataRes.Name, dataRes.MainURL), nil, ctx,
|
task := tasksch.NewSeqTask(fmt.Sprintf("UploadImage2Vendors:%s,%s", dataRes.Name, dataRes.MainURL), ctx,
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
step := batchItemList[0].(int)
|
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
if imgData == nil {
|
if imgData == nil {
|
||||||
if imgData, _, err = jxutils.DownloadFileByURL(dataRes.MainURL); err != nil {
|
if imgData, _, err = jxutils.DownloadFileByURL(dataRes.MainURL); err != nil {
|
||||||
return "", err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
@@ -217,16 +216,14 @@ func UploadImage2Vendors(ctx *jxcontext.Context, parentTask tasksch.ITask, dataR
|
|||||||
}
|
}
|
||||||
dao.UpdateEntity(db, dataRes, updateField)
|
dao.UpdateEntity(db, dataRes, updateField)
|
||||||
}
|
}
|
||||||
retVal = resultList
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return retVal, err
|
return result, err
|
||||||
}, []int{0, 1})
|
}, 2)
|
||||||
tasksch.HandleTask(task, parentTask, false).Run()
|
tasksch.HandleTask(task, parentTask, false).Run()
|
||||||
if !isAsync {
|
if !isAsync {
|
||||||
resultList, err2 := task.GetResult(0)
|
if _, err = task.GetResult(0); err == nil {
|
||||||
if err = err2; err == nil {
|
hint = "1"
|
||||||
hint = utils.Int2Str(len(resultList))
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
hint = task.GetID()
|
hint = task.GetID()
|
||||||
|
|||||||
Reference in New Issue
Block a user