From ae5a923d3865876b89c93eb0315fc47b5a82abbe Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 13 Nov 2019 16:22:15 +0800 Subject: [PATCH] =?UTF-8?q?GetStoreSkus=E6=B7=BB=E5=8A=A0=E5=8F=82?= =?UTF-8?q?=E6=95=B0=EF=BC=9AactVendorID=E8=A1=A8=E7=A4=BA=E8=A6=81?= =?UTF-8?q?=E5=8F=96=E5=93=AA=E4=B8=AA=E5=B9=B3=E5=8F=B0=E7=9A=84=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 24 +++++++++++++++++++----- controllers/cms_store_sku.go | 2 ++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3dc915670..88c6833da 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -70,8 +70,12 @@ type StoreSkuExt struct { AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` - ActPrice int `json:"actPrice"` - EarningPrice int `json:"earningPrice"` + ActPrice int `json:"actPrice"` + ActID int `orm:"column(act_id)" json:"actID"` + + EarningPrice int `json:"earningPrice"` + EarningActID int `orm:"column(earning_act_id)" json:"earningActID"` + RealEarningPrice int `json:"realEarningPrice"` Count int `json:"count"` @@ -487,8 +491,12 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo if true { //!(offset == 0 && pageSize == model.UnlimitedPageSize) { storeIDs, skuIDs = GetStoreAndSkuIDsFromInfo(skuNamesInfo) } + actVendorID := -1 + if params["actVendorID"] != nil { + actVendorID = int(utils.Interface2Int64WithDefault(params["actVendorID"], -1)) + } beginTime := time.Now() - err = updateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo) + err = updateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo, actVendorID) globals.SugarLogger.Debugf("GetStoresSkusNew updateActPrice4StoreSkuName:%v", time.Now().Sub(beginTime)) if !isFocus { err = updateUnitPrice4StoreSkuNameNew(db, skuNamesInfo) @@ -535,11 +543,15 @@ func updateUnitPrice4StoreSkuNameNew(db *dao.DaoDB, skuNamesInfo *StoreSkuNamesI } // skuIDs为空,会导致性能极低,所以要skuIDs必须有值 -func updateActPrice4StoreSkuNameNew(db *dao.DaoDB, storeIDs, skuIDs []int, skuNamesInfo *StoreSkuNamesInfo) (err error) { +func updateActPrice4StoreSkuNameNew(db *dao.DaoDB, storeIDs, skuIDs []int, skuNamesInfo *StoreSkuNamesInfo, actVendorID int) (err error) { if len(skuIDs) == 0 { return nil } - actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, nil, storeIDs, skuIDs, time.Now(), time.Now()) + var vendorIDs []int + if actVendorID >= 0 { + vendorIDs = []int{actVendorID} + } + actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, storeIDs, skuIDs, time.Now(), time.Now()) if err != nil { globals.SugarLogger.Errorf("updateActPrice4StoreSkuNameNew can not get sku promotion info for error:%v", err) return err @@ -552,9 +564,11 @@ func updateActPrice4StoreSkuNameNew(db *dao.DaoDB, storeIDs, skuIDs []int, skuNa for _, v := range skuName.Skus2 { if actStoreSku := actStoreSkuMap4Act.GetActStoreSku(skuName.StoreID, v.SkuID, -1); actStoreSku != nil { v.ActPrice = int(actStoreSku.ActualActPrice) + v.ActID = actStoreSku.ActID } if actStoreSku := actStoreSkuMap4EarningPrice.GetActStoreSku(skuName.StoreID, v.SkuID, -1); actStoreSku != nil { v.EarningPrice = int(actStoreSku.EarningPrice) + v.EarningActID = actStoreSku.ActID } v.RealEarningPrice = v.EarningPrice diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 9271ef80e..3aa15fb22 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -40,6 +40,7 @@ type StoreSkuController struct { // @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" // @Param isBySku query bool false "是否按SKU分拆" // @Param isAct query bool false "是否活动商品(包括正常活动与补贴)" +// @Param actVendorID query int false "要得到哪个平台的活动信息(缺省不限制,非零最小值)" // @Param jdSyncStatus query int false "京东同步标识" // @Param ebaiSyncStatus query int false "饿百同步标识" // @Param mtwmSyncStatus query int false "美团外卖同步标识" @@ -79,6 +80,7 @@ func (c *StoreSkuController) GetStoreSkus() { // @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" // @Param isBySku query bool false "是否按SKU分拆" // @Param isAct query bool false "是否活动商品(包括正常活动与补贴)" +// @Param actVendorID query int false "要得到哪个平台的活动信息(缺省不限制,非零最小值)" // @Param jdSyncStatus query int false "京东同步标识" // @Param ebaiSyncStatus query int false "饿百同步标识" // @Param mtwmSyncStatus query int false "美团外卖同步标识"