Accept Merge Request #148: (su -> mark)
Merge Request: 按全国中位价刷新门店价格 Created By: @苏尹岚 Accepted By: @苏尹岚 URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/148
This commit is contained in:
@@ -808,9 +808,9 @@ func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*St
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
if len(skuBindInfos) > maxStoreNameBind {
|
// if len(skuBindInfos) > maxStoreNameBind {
|
||||||
return "", fmt.Errorf("门店商品信息大于%d", maxStoreNameBind)
|
// return "", fmt.Errorf("门店商品信息大于%d", maxStoreNameBind)
|
||||||
}
|
// }
|
||||||
skuBindInfosMap := make(map[int][]*StoreSkuBindInfo)
|
skuBindInfosMap := make(map[int][]*StoreSkuBindInfo)
|
||||||
storeIDMap := make(map[int]int)
|
storeIDMap := make(map[int]int)
|
||||||
for _, v := range skuBindInfos {
|
for _, v := range skuBindInfos {
|
||||||
@@ -824,17 +824,17 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk
|
|||||||
var num int64
|
var num int64
|
||||||
skuIDMap := make(map[int]int)
|
skuIDMap := make(map[int]int)
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
// dao.Begin(db)
|
||||||
defer func() {
|
// defer func() {
|
||||||
if r := recover(); r != nil {
|
// if r := recover(); r != nil {
|
||||||
dao.Rollback(db)
|
// dao.Rollback(db)
|
||||||
panic(r)
|
// panic(r)
|
||||||
}
|
// }
|
||||||
}()
|
// }()
|
||||||
for _, storeID := range storeIDs {
|
for _, storeID := range storeIDs {
|
||||||
skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false)
|
skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
dao.Rollback(db)
|
// dao.Rollback(db)
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
for _, v := range skuIDs {
|
for _, v := range skuIDs {
|
||||||
@@ -842,7 +842,7 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk
|
|||||||
}
|
}
|
||||||
num += int64(len(skuIDs))
|
num += int64(len(skuIDs))
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
// dao.Commit(db)
|
||||||
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
|
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
|
||||||
if num > 0 {
|
if num > 0 {
|
||||||
skuIDs := jxutils.IntMap2List(skuIDMap)
|
skuIDs := jxutils.IntMap2List(skuIDMap)
|
||||||
@@ -2405,7 +2405,7 @@ func GetTopCategoriesByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCate
|
|||||||
return skuCategory, err
|
return skuCategory, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func RefershStoreSkusMidPrice(ctx *jxcontext.Context, storeIDs []int) (err error) {
|
func RefershStoreSkusMidPrice(ctx *jxcontext.Context, storeIDs []int, isCountry bool) (err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if len(storeIDs) == 0 {
|
if len(storeIDs) == 0 {
|
||||||
return err
|
return err
|
||||||
@@ -2424,7 +2424,12 @@ func RefershStoreSkusMidPrice(ctx *jxcontext.Context, storeIDs []int) (err error
|
|||||||
}
|
}
|
||||||
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{v}, nil)
|
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{v}, nil)
|
||||||
for _, storeSku := range storeSkuList {
|
for _, storeSku := range storeSkuList {
|
||||||
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{store.CityCode}, []int{storeSku.SkuID}, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
var priceReferList []*model.PriceReferSnapshot
|
||||||
|
if isCountry {
|
||||||
|
priceReferList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, []int{storeSku.SkuID}, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
||||||
|
} else {
|
||||||
|
priceReferList, err = dao.GetPriceReferSnapshotNoPage(db, []int{store.CityCode}, []int{storeSku.SkuID}, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -3096,12 +3101,6 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
var (
|
var (
|
||||||
result1 []interface{}
|
result1 []interface{}
|
||||||
// cityCodes = []int{
|
|
||||||
// 530100, //昆明
|
|
||||||
// 430300, //湘潭市
|
|
||||||
// 510700, //绵阳市
|
|
||||||
// 520100, //贵阳市
|
|
||||||
// }
|
|
||||||
)
|
)
|
||||||
storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "")
|
storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "")
|
||||||
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
@@ -3132,8 +3131,8 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe
|
|||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
err = dao.GetRows(db, &skuName, sql, sqlParams...)
|
err = dao.GetRows(db, &skuName, sql, sqlParams...)
|
||||||
for _, v := range skuName {
|
for _, name := range skuName {
|
||||||
skuNameMap[v.ID] = v.ID
|
skuNameMap[name.ID] = name.ID
|
||||||
}
|
}
|
||||||
skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, 0)
|
skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, 0)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
@@ -3167,19 +3166,19 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe
|
|||||||
}
|
}
|
||||||
return retVal, err
|
return retVal, err
|
||||||
}
|
}
|
||||||
taskParallel := tasksch.NewParallelTask("自动关注畅销品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
|
taskParallel := tasksch.NewParallelTask("自动关注畅销品-设置数据", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
|
||||||
tasksch.HandleTask(taskParallel, task, true).Run()
|
tasksch.HandleTask(taskParallel, task, true).Run()
|
||||||
result1, _ = taskParallel.GetResult(0)
|
result1, _ = taskParallel.GetResult(0)
|
||||||
case 2:
|
case 1:
|
||||||
var skuBindInfos []*StoreSkuBindInfo
|
var skuBindInfos []*StoreSkuBindInfo
|
||||||
for _, v := range result1 {
|
for _, v := range result1 {
|
||||||
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
|
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
|
||||||
}
|
}
|
||||||
UpdateStoresSkusByBind(ctx, nil, skuBindInfos, isAsync, isContinueWhenError)
|
hint, err = UpdateStoresSkusByBind(ctx, nil, skuBindInfos, isAsync, isContinueWhenError)
|
||||||
}
|
}
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
taskSeq := tasksch.NewSeqTask2("自动关注畅销品", ctx, isContinueWhenError, taskSeqFunc, 3)
|
taskSeq := tasksch.NewSeqTask2("自动关注畅销品", ctx, isContinueWhenError, taskSeqFunc, 2)
|
||||||
tasksch.HandleTask(taskSeq, nil, true).Run()
|
tasksch.HandleTask(taskSeq, nil, true).Run()
|
||||||
if !isAsync {
|
if !isAsync {
|
||||||
_, err = taskSeq.GetResult(0)
|
_, err = taskSeq.GetResult(0)
|
||||||
|
|||||||
@@ -517,7 +517,8 @@ func (c *StoreSkuController) GetTopCategoriesByStoreIDs() {
|
|||||||
// @Title 根据门店刷新中位价
|
// @Title 根据门店刷新中位价
|
||||||
// @Description 根据门店刷新中位价
|
// @Description 根据门店刷新中位价
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param storeIDs query string true "门店列表"
|
// @Param isCountry formData bool true "是否按全国中位价刷新"
|
||||||
|
// @Param storeIDs formData string true "门店列表"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /RefershStoreSkusMidPrice [put]
|
// @router /RefershStoreSkusMidPrice [put]
|
||||||
@@ -525,7 +526,7 @@ func (c *StoreSkuController) RefershStoreSkusMidPrice() {
|
|||||||
var storeIDList []int
|
var storeIDList []int
|
||||||
c.callRefershStoreSkusMidPrice(func(params *tStoreSkuRefershStoreSkusMidPriceParams) (retVal interface{}, errCode string, err error) {
|
c.callRefershStoreSkusMidPrice(func(params *tStoreSkuRefershStoreSkusMidPriceParams) (retVal interface{}, errCode string, err error) {
|
||||||
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil {
|
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil {
|
||||||
err = cms.RefershStoreSkusMidPrice(params.Ctx, storeIDList)
|
err = cms.RefershStoreSkusMidPrice(params.Ctx, storeIDList, params.IsCountry)
|
||||||
}
|
}
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user