From ae043ed566e03c98d3a4ba022962a1d54d916a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Dec 2019 17:27:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=85=E9=94=80=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 ++++ business/model/dao/store_sku.go | 33 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 06a6a6f6a..6d137da56 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2235,6 +2235,10 @@ func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNam } for _, v := range skuNameAndPlace { if skuNameMap[v.ID] != nil { + midPrice, err := dao.GetMidPriceByNameID(db, cityCode, v.ID, utils.Time2Date(time.Now().AddDate(0, 0, -1))) + if err == nil { + v.Price = midPrice + } v.Type = skuNameMap[v.ID].BrandID skuNameAndPlaceList = append(skuNameAndPlaceList, v) } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 730f8f7d1..542db6533 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1344,3 +1344,36 @@ func GetDeletedStoreSkuBind(db *DaoDB, storeID, skuID int) (storeSkuBind *model. } return storeSkuBind } + +func GetMidPriceByNameID(db *DaoDB, cityCode, skuNameID int, snapDate time.Time) (midPrice int, err error) { + var ( + storeSkuExt []*StoreSkuExt + price int + skuMap = make(map[int]int) + ) + sql := ` + SELECT a.mid_price bind_price,a.sku_id,b.spec_quality + FROM price_refer_snapshot a + JOIN sku b ON a.sku_id = b.id + JOIN sku_name c ON c.id = b.name_id + WHERE c.id = ? + AND a.snapshot_at = ? + AND a.city_code = ? + ` + sqlParams := []interface{}{ + skuNameID, + snapDate, + cityCode, + } + err = GetRows(db, &storeSkuExt, sql, sqlParams...) + if err != nil { + return 0, err + } + for _, v := range storeSkuExt { + price = model.SpecialSpecQuality / int(utils.Float64TwoInt64(float64(v.SkuSpecQuality))) * v.BindPrice + if skuMap[skuNameID] < price { + skuMap[skuNameID] = price + } + } + return skuMap[skuNameID], err +}