UploadImg4Vendors中添加:统一SkuName中同hashCode,不同图片地址至同一地址

This commit is contained in:
gazebo
2019-09-26 10:31:25 +08:00
parent 3da4a38803
commit 3d916f5dd6
2 changed files with 15 additions and 8 deletions

View File

@@ -343,10 +343,10 @@ func UploadEbaiImg4SkuName(ctx *jxcontext.Context, nameIDs []int, isAsync, isCon
func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
db := dao.GetDB()
rootTask := tasksch.NewSeqTask("UploadImg4Vendors", ctx,
rootTask := tasksch.NewSeqTask("合并SkuName图片至DataResource", ctx,
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
case 0: // 计算SkuName中缺失的hashCode
var skuNameList []*model.SkuName
if err = dao.GetRows(db, &skuNameList, `
SELECT t1.*
@@ -366,7 +366,7 @@ func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool
tasksch.HandleTask(calcTask, task, false).Run()
_, err = calcTask.GetResult(0)
}
case 1:
case 1: // 从SkuName添加缺失的图片至DataResource
_, 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)
@@ -391,10 +391,17 @@ func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool
LEFT JOIN data_resource t2 ON ((t2.main_url <> '' AND t2.main_url = t1.img) OR (t2.hash_code <> '' AND t2.hash_code = t1.img_hash_code))
WHERE t1.img <> '' AND t2.id IS NULL;
`)
case 2:
case 2: // 统一SkuName中同hashCode不同图片地址至同一地址
_, err = dao.ExecuteSQL(db, `
UPDATE sku_name t1
JOIN data_resource t2 ON t2.hash_code = t1.img_hash_code AND t2.main_url <> ''
SET t1.img = t2.main_url
WHERE t1.img_hash_code <> '' AND t1.img <> t2.main_url;
`)
case 3: // 上传DataResource中缺失的平台图片
dataResList, err := dao.GetNeedUploadDataResource(db)
if err == nil && len(dataResList) > 0 {
uploadTask := tasksch.NewParallelTask("UploadImg4Vendors",
uploadTask := tasksch.NewParallelTask("批量上传图片至平台",
tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
dataRes := batchItemList[0].(*model.DataResource)
@@ -406,7 +413,7 @@ func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool
}
}
return result, err
}, 3)
}, 4)
tasksch.HandleTask(rootTask, nil, true).Run()
if !isAsync {
if _, err = rootTask.GetResult(0); err == nil {

View File

@@ -170,7 +170,7 @@ func UploadImage2Vendors(ctx *jxcontext.Context, parentTask tasksch.ITask, dataR
}
if len(vendorIDs) > 0 {
imgName := jxutils.GetShortNameFromURL(dataRes.MainURL)
task := tasksch.NewSeqTask(fmt.Sprintf("UploadImage2Vendors:%s,%s", dataRes.Name, dataRes.MainURL), ctx,
task := tasksch.NewSeqTask(fmt.Sprintf("上传图片至平台1:%s,%s", dataRes.Name, dataRes.MainURL), ctx,
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
@@ -180,7 +180,7 @@ func UploadImage2Vendors(ctx *jxcontext.Context, parentTask tasksch.ITask, dataR
}
}
case 1:
uploadTask := tasksch.NewParallelTask(fmt.Sprintf("UploadImage2Vendors Upload:%s,%s", dataRes.Name, dataRes.MainURL),
uploadTask := tasksch.NewParallelTask(fmt.Sprintf("上传图片至平台2:%s,%s", dataRes.Name, dataRes.MainURL),
tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorID := batchItemList[0].(int)