商品额外信息
This commit is contained in:
@@ -2534,3 +2534,51 @@ func deleteJdsSku(db *dao.DaoDB, skuID int) (err error) {
|
|||||||
}
|
}
|
||||||
return err
|
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
|
package dao
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/aliupcapi"
|
"git.rosy.net.cn/baseapi/platformapi/aliupcapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"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)
|
_, err = ExecuteSQL(db, sql, sqlParams)
|
||||||
return err
|
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 {
|
type SkuExinfoMap struct {
|
||||||
ModelIDCULD
|
ModelIDCULD
|
||||||
|
|
||||||
ExPrefix string `orm:"size(255)" json:"exPrefix"`
|
|
||||||
ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印
|
|
||||||
NameID int `orm:"column(name_id)" json:"nameID"`
|
NameID int `orm:"column(name_id)" json:"nameID"`
|
||||||
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
|
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
|
||||||
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"`
|
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"` //设置起始时间
|
||||||
EndAt time.Time `orm:"type(datetime);index" json:"endAt"`
|
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 {
|
func (*SkuExinfoMap) TableIndex() [][]string {
|
||||||
|
|||||||
@@ -483,3 +483,27 @@ func (c *SkuController) RefreshJdDepot() {
|
|||||||
return retVal, "", err
|
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