Merge branch 'mark' of e.coding.net:rosydev/jx-callback into mark

This commit is contained in:
gazebo
2020-01-15 16:50:42 +08:00
2 changed files with 28 additions and 28 deletions

View File

@@ -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)

View File

@@ -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
}) })