From 8c9b4081c8d343f7206d0c7fec38ba75412ed992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 13 Jan 2020 14:53:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=95=86=E5=93=81=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=85=B3=E6=B3=A8=EF=BC=8C=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E6=9A=82=E6=97=B6=E5=8F=AA=E6=95=B44?= =?UTF-8?q?=E4=B8=AA=E5=B0=8F=E5=9F=8E=E5=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 2 +- business/jxstore/cms/store.go | 4 +-- business/jxstore/cms/store_sku.go | 39 ++++++++++++++------------- business/jxstore/cms/user2.go | 2 +- business/jxstore/misc/misc.go | 3 +++ business/jxstore/report/report.go | 2 +- business/model/dao/store.go | 10 ++++++- controllers/cms_store_sku.go | 15 +++++++++++ routers/commentsRouter_controllers.go | 9 +++++++ 9 files changed, 62 insertions(+), 24 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 63a173773..a9e885025 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -365,7 +365,7 @@ func DeleteConfig(ctx *jxcontext.Context, key, configType string) (err error) { } } errList.AddErr(err) - storeList, err2 := dao.GetStoreList(db, nil, nil, key) + storeList, err2 := dao.GetStoreList(db, nil, nil, nil, nil, key) if err = err2; err == nil && len(storeList) > 0 { storeIDs := make([]int, len(storeList)) for k, v := range storeList { diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 07ee953e6..1071d9435 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1993,7 +1993,7 @@ func SendAlarmVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, p } if len(userList) > 0 { - allStores, err := dao.GetStoreList(db, nil, nil, "") + allStores, err := dao.GetStoreList(db, nil, nil, nil, nil, "") if err != nil { return err } @@ -2167,7 +2167,7 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs func SyncStoresCourierInfo(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { db := dao.GetDB() - storeList2, err := dao.GetStoreList(db, storeIDs, nil, "") + storeList2, err := dao.GetStoreList(db, storeIDs, nil, nil, nil, "") var storeList []*model.Store for _, v := range storeList2 { if v.Status != model.StoreStatusDisabled { diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 5c871e5ce..e3a26d67e 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -830,10 +830,6 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk } }() for _, storeID := range storeIDs { - fmt.Println(storeID) - for _, v := range skuBindInfosMap[storeID] { - fmt.Println(*v) - } skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false) if err = err2; err != nil { dao.Rollback(db) @@ -2886,7 +2882,7 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync, skuIDs = append(skuIDs, k) } skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) - storeList, err := dao.GetStoreList(db, nil, nil, "") + storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") if err != nil && len(skuList) == 0 { return result, err } @@ -3059,12 +3055,18 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInf return hint, err } -func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { +func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { db := dao.GetDB() var ( - result1 []interface{} + result1 []interface{} + cityCodes = []int{ + 530100, //昆明 + 430300, //湘潭市 + 510700, //绵阳市 + 520100, //贵阳市 + } ) - storeList, err := dao.GetStoreList(db, nil, nil, "") + storeList, err := dao.GetStoreList(db, nil, cityCodes, nil, nil, "") taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: @@ -3096,7 +3098,7 @@ func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context, isAsync, i for _, v := range skuName { skuNameMap[v.ID] = v.ID } - skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, v.ID) + skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, 0) if err2 != nil { return retVal, err2 } @@ -3110,17 +3112,18 @@ func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context, isAsync, i var skuBindInfoList []*StoreSkuBindInfo for _, vv := range skuNameAndPlaceList { if skuNameMap[vv.ID] != 0 { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: v.ID, + NameID: vv.ID, + // UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100, + IsFocus: 1, + IsSale: 0, + } priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{vv.CityCode}, nil, []int{vv.ID}, utils.Time2Date(time.Now().AddDate(0, 0, -1))) if err == nil && len(priceReferList) > 0 { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: v.ID, - NameID: vv.ID, - UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100, - IsFocus: 1, - IsSale: 0, - } - skuBindInfoList = append(skuBindInfoList, storeSkuBindInfo) + storeSkuBindInfo.UnitPrice = priceReferList[0].MidUnitPrice * payPercentage / 100 } + skuBindInfoList = append(skuBindInfoList, storeSkuBindInfo) } } retVal = skuBindInfoList @@ -3155,7 +3158,7 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync nameMap = make(map[int]*StoreSkuBindInfo) ) db := dao.GetDB() - storeList, err := dao.GetStoreList(db, nil, nil, "") + storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") for _, v := range storeList { storeSkuList, _ := dao.GetStoreSkusAndSkuName(db, []int{v.ID}, skuIDs, nil) for _, vv := range storeSkuList { diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index 8421a6506..34bcfa798 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -219,7 +219,7 @@ func TryAddStoreBossRole4User(ctx *jxcontext.Context, user *model.User) (err err if user.Type&model.UserTypeStoreBoss != 0 { userMobile := user.GetMobile() if userMobile != "" { - if storeList, err := dao.GetStoreList(dao.GetDB(), nil, []string{userMobile}, ""); err == nil && len(storeList) > 0 { + if storeList, err := dao.GetStoreList(dao.GetDB(), nil, nil, nil, []string{userMobile}, ""); err == nil && len(storeList) > 0 { roleList := make([]*authz.RoleInfo, len(storeList)) for k, v := range storeList { roleList[k] = autils.NewStoreBossRole(v.ID) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 6fa312cd7..daffca4fe 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -146,6 +146,9 @@ func Init() { ScheduleTimerFunc("CreateStorePriceScore", func() { cms.CreateStorePriceScore(jxcontext.AdminCtx) }, createStorePriceTimeList) + ScheduleTimerFunc("AutoFocusStoreSkusForTopSkus", func() { + cms.AutoFocusStoreSkusForTopSkus(jxcontext.AdminCtx, true, true) + }, createStorePriceTimeList) } ScheduleTimerFunc("AutoSaleStoreSku", func() { cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index ca0b29060..312a1df26 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -102,7 +102,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn resultMap = make(map[int]map[int]*model.PriceReferSnapshot) resultCountryMap = make(map[int]*model.PriceReferSnapshot) ) - storeList, err := dao.GetStoreList(db, nil, nil, "") + storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") if err != nil { return result, err } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 56a713cb3..8a76af7c0 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -422,7 +422,7 @@ func GetOpenedStoreCouriersByStoreID(db *DaoDB, storeID, vendorID int) (storeMap return storeMaps, nil } -func GetStoreList(db *DaoDB, idList []int, mobileList []string, shortRoleName string) (storeList []*model.Store, err error) { +func GetStoreList(db *DaoDB, idList, cityCodes, statuss []int, mobileList []string, shortRoleName string) (storeList []*model.Store, err error) { sql := ` SELECT t1.* FROM store t1 @@ -434,6 +434,14 @@ func GetStoreList(db *DaoDB, idList []int, mobileList []string, shortRoleName st sql += " AND t1.id IN (" + GenQuestionMarks(len(idList)) + ")" sqlParams = append(sqlParams, idList) } + if len(cityCodes) > 0 { + sql += " AND t1.city_code IN (" + GenQuestionMarks(len(cityCodes)) + ")" + sqlParams = append(sqlParams, cityCodes) + } + if len(statuss) > 0 { + sql += " AND t1.status IN (" + GenQuestionMarks(len(statuss)) + ")" + sqlParams = append(sqlParams, statuss) + } if len(mobileList) > 0 { sql += " AND (t1.tel1 IN (" + GenQuestionMarks(len(mobileList)) + ") OR t1.tel2 IN (" + GenQuestionMarks(len(mobileList)) + "))" sqlParams = append(sqlParams, mobileList, mobileList) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 04638b07b..81a9659b1 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -626,3 +626,18 @@ func (c *StoreSkuController) FocusStoreSkusBySku() { return retVal, "", err }) } + +// @Title 自动关注畅销品 +// @Description 自动关注畅销品 +// @Param token header string true "认证token" +// @Param isAsync formData bool true "是否异步,缺省是同步" +// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /AutoFocusStoreSkusForTopSkus [post] +func (c *StoreSkuController) AutoFocusStoreSkusForTopSkus() { + c.callAutoFocusStoreSkusForTopSkus(func(params *tStoreSkuAutoFocusStoreSkusForTopSkusParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.AutoFocusStoreSkusForTopSkus(params.Ctx, params.IsAsync, params.IsContinueWhenError) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 86bfd00cc..5fb650f4b 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1665,6 +1665,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "AutoFocusStoreSkusForTopSkus", + Router: `/AutoFocusStoreSkusForTopSkus`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "CopyStoreSkus",