查询门店价格评分

This commit is contained in:
苏尹岚
2019-12-06 17:21:42 +08:00
parent 5d556203fe
commit 0a6f7d6777
4 changed files with 108 additions and 5 deletions

View File

@@ -2184,3 +2184,17 @@ func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCateg
}
return skuCategory, err
}
func GetStorePriceScore(ctx *jxcontext.Context, storeIDs []int, snapDate string, offset, pageSize int) (storeTotalScoreEx *model.StoreTotalScoreEx, err error) {
var snapDateParam time.Time
db := dao.GetDB()
if snapDate != "" {
snapDateParam = utils.Str2Time(snapDate)
}
storeTotalScore, totalCount, err := dao.GetStorePriceScore(db, storeIDs, snapDateParam, offset, pageSize)
storeTotalScoreEx = &model.StoreTotalScoreEx{
StoreTotalScoreList: storeTotalScore,
TotalCount: totalCount,
}
return storeTotalScoreEx, err
}

View File

@@ -662,16 +662,18 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St
func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAndName, err error) {
sql := `
SELECT t3.*, t4.name, t4.unit, t4.prefix
SELECT t3.*
FROM(
SELECT SUM(b.count) count,c.id
FROM goods_order a
JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id
JOIN sku c ON b.sku_id = c.id AND c.deleted_at = ?
JOIN sku_name d ON d.id = c.name_id AND d.deleted_at = ?
WHERE 1=1
AND a.order_created_at BETWEEN ? and NOW()
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
utils.DefaultTimeValue,
time.Now().AddDate(0, -1, 0),
}
@@ -681,9 +683,8 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAnd
}
sql += `
AND b.sale_price > ?
GROUP BY c.id)t1
JOIN sku t3 ON t1.id = t3.id
JOIN sku_name t4 ON t3.name_id = t4.id
GROUP BY d.id)t1
JOIN sku_name t3 ON t1.id = t3.id
ORDER BY t1.count DESC
LIMIT ?
`
@@ -736,6 +737,39 @@ func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model.
return skuCategory, err
}
func GetStorePriceScore(db *DaoDB, storeIDs []int, snapDate time.Time, offset, pageSize int) (storeTotalScore []*model.StoreTotalScore, totalCount int, err error) {
sql := `
SELECT SQL_CALC_FOUND_ROWS
t1.* FROM(
SELECT c.store_id,d.name store_name,e.name city_name,ROUND(count(c.price/100 <= a.mid_price or NULL)/count(*)*100,2) store_score
FROM price_refer_snapshot a
JOIN store_sku_bind c ON c.sku_id = a.sku_id AND c.status = 1 AND c.deleted_at = ?
JOIN store d ON c.store_id = d.id AND d.city_code = a.city_code AND d.deleted_at = ? AND d.status !=-2
JOIN place e ON e.code = d.city_code
WHERE 1=1
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
utils.DefaultTimeValue,
}
if !utils.IsTimeZero(snapDate) {
sql += " AND a.snapshot_at = ?"
sqlParams = append(sqlParams, snapDate)
}
sql += `
GROUP BY c.store_id)t1
ORDER BY t1.store_score
LIMIT ? OFFSET ?
`
sqlParams = append(sqlParams, pageSize, offset)
Begin(db)
defer Commit(db)
if err = GetRows(db, &storeTotalScore, sql, sqlParams...); err == nil {
totalCount = GetLastTotalRowCount(db)
}
return storeTotalScore, totalCount, err
}
func SetStoreSkuBindVendorPrice(storeSkuBind *model.StoreSkuBind, vendorID int, vendorPrice int) {
switch vendorID {
case model.VendorIDJD:

View File

@@ -481,3 +481,40 @@ func (c *StoreSkuController) GetTopCategorysByStoreIDs() {
return retVal, "", err
})
}
// @Title 根据门店刷新中位价
// @Description 根据门店刷新中位价
// @Param token header string false "认证token"
// @Param storeIDs query string true "门店列表"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /RefershStoreSkusMidPrice [put]
func (c *StoreSkuController) RefershStoreSkusMidPrice() {
var storeIDList []int
c.callRefershStoreSkusMidPrice(func(params *tStoreSkuRefershStoreSkusMidPriceParams) (retVal interface{}, errCode string, err error) {
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil {
// cms.RefershStoreSkusMidPrice()
}
return retVal, "", err
})
}
// @Title 查询门店价格评分
// @Description 查询门店价格评分
// @Param token header string true "认证token"
// @Param storeIDs query string false "门店列表"
// @Param snapDate query string true "时间默认当天格式2006-01-02"
// @Param offset query int false "门店列表起始序号以0开始缺省为0"
// @Param pageSize query int false "门店列表页大小缺省为50-1表示全部"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetStorePriceScore [post]
func (c *StoreSkuController) GetStorePriceScore() {
var storeIDList []int
c.callGetStorePriceScore(func(params *tStoreSkuGetStorePriceScoreParams) (retVal interface{}, errCode string, err error) {
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil {
retVal, err = cms.GetStorePriceScore(params.Ctx, storeIDList, params.SnapDate,params.Offset, params.PageSize)
}
return retVal, "", err
})
}

View File

@@ -1075,7 +1075,7 @@ func init() {
beego.ControllerComments{
Method: "StatisticsReportForStoreSkusPrice",
Router: `/StatisticsReportForStoreSkusPrice`,
AllowHTTPMethods: []string{"post"},
AllowHTTPMethods: []string{"Get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
@@ -1566,6 +1566,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: "GetStorePriceScore",
Router: `/GetStorePriceScore`,
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: "GetStoreSkus",
@@ -1620,6 +1629,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: "RefershStoreSkusMidPrice",
Router: `/RefershStoreSkusMidPrice`,
AllowHTTPMethods: []string{"put"},
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: "RefreshStoresSkuByVendor",