去除对于SkuName.ImgHashCode的依赖

This commit is contained in:
gazebo
2019-09-26 21:02:42 +08:00
parent 8a1d364e4e
commit b88aa22b40
4 changed files with 44 additions and 72 deletions

View File

@@ -426,7 +426,6 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
t1.img2, t1.img2,
t1.status, t1.status,
t1.is_spu, t1.is_spu,
t1.img_hash_code,
t1.desc_img, t1.desc_img,
t1.upc` t1.upc`
if isBySku { if isBySku {
@@ -453,7 +452,6 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
t1.img2, t1.img2,
t1.status, t1.status,
t1.is_spu, t1.is_spu,
t1.img_hash_code,
t1.desc_img, t1.desc_img,
t1.upc, t1.upc,
t1.jd_id, t1.jd_id,
@@ -585,7 +583,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
if err = err2; err != nil { if err = err2; err != nil {
return nil, err return nil, err
} }
skuNameExt.ImgHashCode = dataRes.HashCode // skuNameExt.ImgHashCode = dataRes.HashCode
skuNameExt.ImgEbai = dataRes.EbaiURL skuNameExt.ImgEbai = dataRes.EbaiURL
if skuNameExt.Img2 != "" { if skuNameExt.Img2 != "" {
datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img2, true, model.ImgTypeMain, true) datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img2, true, model.ImgTypeMain, true)
@@ -703,7 +701,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
if err = err2; err != nil { if err = err2; err != nil {
return 0, err return 0, err
} }
valid["ImgHashCode"] = dataRes.HashCode // valid["ImgHashCode"] = dataRes.HashCode
valid["ImgEbai"] = dataRes.EbaiURL valid["ImgEbai"] = dataRes.EbaiURL
} }
if valid["img2"] != nil { if valid["img2"] != nil {

View File

@@ -3,14 +3,9 @@ package initdata
import ( import (
"bytes" "bytes"
"context" "context"
"crypto/md5"
"fmt" "fmt"
"io/ioutil"
"net/http"
"strings" "strings"
"git.rosy.net.cn/baseapi/platformapi"
"git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/autonavi"
"git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
@@ -186,47 +181,47 @@ func RefreshSkuNameImg(ctx *jxcontext.Context, parentTask tasksch.ITask, isForce
return hint, err return hint, err
} }
func RefreshImgMd5(ctx *jxcontext.Context, parentTask tasksch.ITask, isForce, isAsync, isContinueWhenError bool) (hint string, err error) { // func RefreshImgMd5(ctx *jxcontext.Context, parentTask tasksch.ITask, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
db := dao.GetDB() // db := dao.GetDB()
var skuNameList []*model.SkuName // var skuNameList []*model.SkuName
if err = dao.GetRows(db, &skuNameList, ` // if err = dao.GetRows(db, &skuNameList, `
SELECT * // SELECT *
FROM sku_name // FROM sku_name
WHERE deleted_at = ? AND img <> '' // WHERE deleted_at = ? AND img <> ''
ORDER BY id // ORDER BY id
`, utils.DefaultTimeValue); err != nil { // `, utils.DefaultTimeValue); err != nil {
return "", err // return "", err
} // }
task := tasksch.NewParallelTask("InitSkuName calculate md5", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, // task := tasksch.NewParallelTask("InitSkuName calculate md5", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), 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) {
skuName := batchItemList[0].(*model.SkuName) // skuName := batchItemList[0].(*model.SkuName)
if skuName.ImgHashCode == "" || isForce { // if skuName.ImgHashCode == "" || isForce {
response, err := http.Get(skuName.Img) // response, err := http.Get(skuName.Img)
if err == nil { // if err == nil {
defer response.Body.Close() // defer response.Body.Close()
if response.StatusCode == http.StatusOK { // if response.StatusCode == http.StatusOK {
data, err2 := ioutil.ReadAll(response.Body) // data, err2 := ioutil.ReadAll(response.Body)
if err = err2; err == nil { // if err = err2; err == nil {
skuName.ImgHashCode = fmt.Sprintf("%X", md5.Sum(data)) // skuName.ImgHashCode = fmt.Sprintf("%X", md5.Sum(data))
db := dao.GetDB() // db := dao.GetDB()
_, err = dao.UpdateEntity(db, skuName, "ImgHashCode") // _, err = dao.UpdateEntity(db, skuName, "ImgHashCode")
} // }
} else { // } else {
err = platformapi.ErrHTTPCodeIsNot200 // err = platformapi.ErrHTTPCodeIsNot200
} // }
} // }
} // }
return nil, err // return nil, err
}, skuNameList) // }, skuNameList)
tasksch.HandleTask(task, parentTask, true).Run() // tasksch.HandleTask(task, parentTask, true).Run()
if !isAsync { // if !isAsync {
_, err = task.GetResult(0) // _, err = task.GetResult(0)
} else { // } else {
hint = task.ID // hint = task.ID
} // }
return hint, err // return hint, err
} // }
func InitSkuName(ctx *jxcontext.Context, isForce, isAsync, isContinueWhenError bool) (hint string, err error) { func InitSkuName(ctx *jxcontext.Context, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
rootTask := tasksch.NewSeqTask("InitSkuName", ctx, rootTask := tasksch.NewSeqTask("InitSkuName", ctx,
@@ -235,7 +230,7 @@ func InitSkuName(ctx *jxcontext.Context, isForce, isAsync, isContinueWhenError b
case 0: case 0:
_, err = RefreshSkuNameImg(ctx, task, isForce, false, isContinueWhenError) _, err = RefreshSkuNameImg(ctx, task, isForce, false, isContinueWhenError)
case 1: case 1:
_, err = RefreshImgMd5(ctx, task, isForce, false, isContinueWhenError) // _, err = RefreshImgMd5(ctx, task, isForce, false, isContinueWhenError)
} }
return nil, err return nil, err
}, 2) }, 2)

View File

@@ -145,12 +145,7 @@ func GetDataResource(ctx *jxcontext.Context, hashCode string) (resourceURL strin
dataRes, err := dao.GetDataResource(db, hashCode, "") dataRes, err := dao.GetDataResource(db, hashCode, "")
if err != nil { if err != nil {
if dao.IsNoRowsError(err) { if dao.IsNoRowsError(err) {
skuName, err2 := dao.GetSkuNameByHashCode(db, hashCode) err = nil
if err = err2; err == nil {
resourceURL = skuName.Img
} else if dao.IsNoRowsError(err) {
err = nil
}
} }
} else { } else {
resourceURL = dataRes.MainURL resourceURL = dataRes.MainURL

View File

@@ -49,22 +49,6 @@ func DeleteSkuNamePlace(db *DaoDB, nameID int, placeCodes []int) (num int64, err
return ExecuteSQL(db, sql, sqlParams...) return ExecuteSQL(db, sql, sqlParams...)
} }
func GetSkuNameByHashCode(db *DaoDB, hashCode string) (skuName *model.SkuName, err error) {
sql := `
SELECT *
FROM sku_name
WHERE img_hash_code = ?
`
sqlParams := []interface{}{
hashCode,
}
skuName = &model.SkuName{}
if err = GetRow(db, skuName, sql, sqlParams...); err == nil {
return skuName, nil
}
return nil, err
}
func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*model.SkuAndName, err error) { func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*model.SkuAndName, err error) {
sql := ` sql := `
SELECT t1.*, t2.name, t2.unit SELECT t1.*, t2.name, t2.unit