diff --git a/business/jxstore/misc/store_score.go b/business/jxstore/misc/store_score.go index 0ee5d0e9d..f16909a2f 100644 --- a/business/jxstore/misc/store_score.go +++ b/business/jxstore/misc/store_score.go @@ -497,6 +497,24 @@ func ScheduleScoreStore() { }, scoreStoreTimeList) } +func Time2Week(t time.Time) int { + yearDay := t.YearDay() + yearFirstDay := t.AddDate(0, 0, -yearDay+1) + firstDayInWeek := int(yearFirstDay.Weekday()) + + firstWeekDays := 1 + if firstDayInWeek != 0 { + firstWeekDays = 7 - firstDayInWeek + 1 + } + var week int + if yearDay <= firstWeekDays { + week = 1 + } else { + week = (yearDay-firstWeekDays)/7 + 2 + } + return week +} + func SplitToSingelWeekDataList(storeScoreList []*model.StoreScore) (weekDataList [][]*model.StoreScore) { singelWeekData := []*model.StoreScore{} count := 0 @@ -525,6 +543,7 @@ func GetWeeklyStoreScore(storeID, weekIndex int) (outWeeklyStoreScoreDataList [] weeklyData.ItemTotalScore = ItemTotalScore weeklyData.StoreID = storeID weeklyStoreScoreDataList = append(weeklyStoreScoreDataList, weeklyData) + weekDataListCount := len(weekDataList) for dayIndex, dayData := range weekDataList { for _, fieldName := range storeScoreFieldName { srcFieldValue := refutil.GetObjFieldByName(dayData, fieldName).(int) @@ -533,20 +552,21 @@ func GetWeeklyStoreScore(storeID, weekIndex int) (outWeeklyStoreScoreDataList [] } if dayIndex == 0 { weeklyData.EndTime = dayData.CreatedAt - } else if dayIndex == WeekDayCount-1 { + } else if dayIndex == weekDataListCount-1 { weeklyData.BeginTime = dayData.CreatedAt } weeklyData.StoreName = dayData.StoreName } for _, fieldName := range storeScoreFieldName { destFieldValueR := refutil.GetObjFieldByName(weeklyData, fieldName).(int) - refutil.SetObjFieldByName(weeklyData, fieldName, int(math.Round(float64(destFieldValueR)/WeekDayCount))) + refutil.SetObjFieldByName(weeklyData, fieldName, int(math.Round(float64(destFieldValueR)/float64(weekDataListCount)))) } for _, fieldName := range storeScoreFieldName { srcFieldValue := refutil.GetObjFieldByName(weeklyData, fieldName).(int) destFieldValueR := refutil.GetObjFieldByName(weeklyData, "TotalScore").(int) refutil.SetObjFieldByName(weeklyData, "TotalScore", destFieldValueR+srcFieldValue) } + weeklyData.Level = 0 } if weekIndex == -1 { outWeeklyStoreScoreDataList = weeklyStoreScoreDataList diff --git a/business/model/store_score.go b/business/model/store_score.go index a88852ca4..845c19d24 100644 --- a/business/model/store_score.go +++ b/business/model/store_score.go @@ -26,4 +26,5 @@ type WeeklyStoreScore struct { EndTime time.Time `json:"endTime"` TotalScore int `json:"totalScore"` ItemTotalScore int `json:"itemTotalScore"` + Level int `json:"level"` } diff --git a/controllers/cms_store.go b/controllers/cms_store.go index f7fe8d61d..ca293dda1 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -3,6 +3,7 @@ package controllers import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/cms" + "git.rosy.net.cn/jx-callback/business/jxstore/misc" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/model" @@ -422,3 +423,36 @@ func (c *StoreController) SyncStoresQualify() { return retVal, "", err }) } + +// @Title 门店评分 +// @Description 门店评分 +// @Param token header string true "认证token" +// @Param storeIDs formData string false "京西门店ID列表" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /ScoreStore [post] +func (c *StoreController) ScoreStore() { + c.callScoreStore(func(params *tStoreScoreStoreParams) (retVal interface{}, errCode string, err error) { + var storeIDList []int + if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil { + misc.ScoreStore(params.Ctx, storeIDList) + } + + return retVal, "", err + }) +} + +// @Title 得到门店周平均分数数据 +// @Description 得到门店周平均分数数据 +// @Param token header string true "认证token" +// @Param storeID query int true "京西门店ID" +// @Param weekIndex query int true "周索引(起始索引为0, -1为所有周数据)" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetWeeklyStoreScore [get] +func (c *StoreController) GetWeeklyStoreScore() { + c.callGetWeeklyStoreScore(func(params *tStoreGetWeeklyStoreScoreParams) (retVal interface{}, errCode string, err error) { + retVal, err = misc.GetWeeklyStoreScore(params.StoreID, params.WeekIndex) + return retVal, "", err + }) +} diff --git a/controllers/temp_op.go b/controllers/temp_op.go index b1249758f..ca73868e1 100644 --- a/controllers/temp_op.go +++ b/controllers/temp_op.go @@ -316,37 +316,3 @@ func (c *TempOpController) CheckSkuDiffBetweenJxAndVendor() { return retVal, "", err }) } - -// @Title 门店评分 -// @Description 门店评分 -// @Param token header string true "认证token" -// @Param storeIDs formData string false "京西门店ID列表" -// @Success 200 {object} controllers.CallResult -// @Failure 200 {object} controllers.CallResult -// @router /ScoreStore [post] -func (c *TempOpController) ScoreStore() { - c.callScoreStore(func(params *tTempopScoreStoreParams) (retVal interface{}, errCode string, err error) { - var storeIDList []int - if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil { - misc.ScoreStore(params.Ctx, storeIDList) - } - - return retVal, "", err - }) -} - -// @Title 得到门店周平均分数数据 -// @Description 得到门店周平均分数数据 -// @Param token header string true "认证token" -// @Param storeID query int true "京西门店ID" -// @Param weekIndex query int true "周索引(起始索引为0, -1为所有周数据)" -// @Success 200 {object} controllers.CallResult -// @Failure 200 {object} controllers.CallResult -// @router /GetWeeklyStoreScore [get] -func (c *TempOpController) GetWeeklyStoreScore() { - c.callGetWeeklyStoreScore(func(params *tTempopGetWeeklyStoreScoreParams) (retVal interface{}, errCode string, err error) { - retVal, err = misc.GetWeeklyStoreScore(params.StoreID, params.WeekIndex) - - return retVal, "", err - }) -} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index c4b114faf..cca5b44b8 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1305,6 +1305,24 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "GetWeeklyStoreScore", + Router: `/GetWeeklyStoreScore`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "ScoreStore", + Router: `/ScoreStore`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "SyncStoresQualify", @@ -1647,15 +1665,6 @@ func init() { Filters: nil, Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"], - beego.ControllerComments{ - Method: "GetWeeklyStoreScore", - Router: `/GetWeeklyStoreScore`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"], beego.ControllerComments{ Method: "PrintMsg", @@ -1683,15 +1692,6 @@ func init() { Filters: nil, Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"], - beego.ControllerComments{ - Method: "ScoreStore", - Router: `/ScoreStore`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"], beego.ControllerComments{ Method: "TestIt",