商品额外信息
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user