商品额外信息

This commit is contained in:
苏尹岚
2020-06-16 13:57:23 +08:00
parent cb81ac6921
commit 79df2818c2
4 changed files with 109 additions and 4 deletions

View File

@@ -2534,3 +2534,51 @@ func deleteJdsSku(db *dao.DaoDB, skuID int) (err error) {
}
return err
}
func UpdateSkuExinfoMap(ctx *jxcontext.Context, nameIDs []int, imgWaterMark string, vendorID int, exPrefix, fromTime, toTime string, isAsync, isContinueWhenError bool) (hint string, err error) {
var (
fromTimeP time.Time
toTimeP time.Time
db = dao.GetDB()
)
if fromTime != "" {
fromTimeP = utils.Time2Date(utils.Str2Time(fromTime))
}
if toTime != "" {
toTimeP = utils.Time2Date(utils.Str2Time(toTime))
}
if toTimeP.Before(fromTimeP) {
return "", fmt.Errorf("结束时间不可以小于开始时间!开始时间:[%v],结束时间:[%v]", fromTimeP, toTimeP)
}
task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
nameID := batchItemList[0].(int)
skuEx := &model.SkuExinfoMap{
NameID: nameID,
ImgWatermark: imgWaterMark,
ExPrefix: exPrefix,
VendorID: vendorID,
BeginAt: fromTimeP,
EndAt: toTimeP,
}
dao.WrapAddIDCULEntity(skuEx, ctx.GetUserName())
skuExs, _ := dao.GetSkuExinfos(db, []int{nameID}, vendorID, "", utils.ZeroTimeValue, utils.ZeroTimeValue)
if len(skuExs) > 0 {
skuEx2 := skuExs[0]
dao.WrapAddIDCULDEntity(skuEx2, ctx.GetUserName())
dao.UpdateEntity(db, skuEx2)
dao.CreateEntity(db, skuEx)
} else {
dao.CreateEntity(db, skuEx)
}
return retVal, err
}, nameIDs)
tasksch.HandleTask(task, nil, true).Run()
if isAsync {
hint = task.GetID()
} else {
_, err = task.GetResult(0)
hint = "1"
}
return hint, err
}

View File

@@ -1,6 +1,8 @@
package dao
import (
"time"
"git.rosy.net.cn/baseapi/platformapi/aliupcapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
@@ -379,3 +381,34 @@ func InsertUpcDepot(db *DaoDB, result *aliupcapi.GetAliUpcInfoResult) (err error
_, err = ExecuteSQL(db, sql, sqlParams)
return err
}
func GetSkuExinfos(db *DaoDB, nameIDs []int, vendorID int, exPrefix string, fromTime, toTime time.Time) (skuExinfoMaps []*model.SkuExinfoMap, err error) {
sql := `
SELECT *
FROM sku_exinfo_map
WHERE deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if len(nameIDs) > 0 {
sql += " AND name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")"
sqlParams = append(sqlParams, nameIDs)
}
if vendorID != -1 {
sql += " AND vendor_id = ?"
sqlParams = append(sqlParams, vendorID)
}
if exPrefix != "" {
sql += " AND ex_prefix LIKE ?"
sqlParams = append(sqlParams, "%"+exPrefix+"%")
}
if fromTime != utils.ZeroTimeValue && toTime != utils.ZeroTimeValue {
sql += " AND NOT (begin_at > ? OR end_at < ?)"
sqlParams = append(sqlParams, toTime, fromTime)
}
if err = GetRows(db, &skuExinfoMaps, sql, sqlParams...); err == nil {
return skuExinfoMaps, nil
}
return nil, err
}

View File

@@ -285,12 +285,12 @@ type SkuNameExt struct {
type SkuExinfoMap struct {
ModelIDCULD
ExPrefix string `orm:"size(255)" json:"exPrefix"`
ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印
NameID int `orm:"column(name_id)" json:"nameID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"`
EndAt time.Time `orm:"type(datetime);index" json:"endAt"`
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"` //设置起始时间
EndAt time.Time `orm:"type(datetime);index" json:"endAt"` //设置结束时间
ExPrefix string `orm:"size(255)" json:"exPrefix"` //额外前缀
ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印
}
func (*SkuExinfoMap) TableIndex() [][]string {

View File

@@ -483,3 +483,27 @@ func (c *SkuController) RefreshJdDepot() {
return retVal, "", err
})
}
// @Title 批量设置商品额外信息
// @Description 批量设置商品额外信息
// @Param token header string true "认证token"
// @Param nameIDs formData string true "商品nameIDs"
// @Param exPrefix formData string false "商品额外前缀"
// @Param fromDate formData string true "生效开始时间,格式 2006-01-01 "
// @Param toDate formData string true "生效结束时间,格式 2006-01-01 "
// @Param imgWaterMark formData string false "商品水印图"
// @Param vendorID formData int true "平台ID"
// @Param isAsync formData bool false "是否异步"
// @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateSkuExinfoMap [put]
func (c *SkuController) UpdateSkuExinfoMap() {
c.callUpdateSkuExinfoMap(func(params *tSkuUpdateSkuExinfoMapParams) (retVal interface{}, errCode string, err error) {
var skuIDList []int
if err = jxutils.Strings2Objs(params.NameIDs, &skuIDList); err == nil {
retVal, err = cms.UpdateSkuExinfoMap(params.Ctx, skuIDList, params.ImgWaterMark, params.VendorID, params.ExPrefix, params.FromDate, params.ToDate, params.IsAsync, params.IsContinueWhenError)
}
return retVal, "", err
})
}