- 根据已经部分关注的商品,得到已经存在的门店商品单价

This commit is contained in:
gazebo
2019-08-08 14:57:26 +08:00
parent 8db2827a03
commit 17b91e4ee7
2 changed files with 51 additions and 0 deletions

View File

@@ -436,6 +436,8 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
// err = updateActPrice4StoreSkuName(db, storeIDs, skuIDs, skuNamesInfo)
}
globals.SugarLogger.Debugf("GetStoresSkusNew updateActPrice4StoreSkuName:%v", time.Now().Sub(beginTime))
err = updateUnitPrice4StoreSkuNameNew(db, skuNamesInfo)
}
}
// globals.SugarLogger.Debug(utils.Format4Output(skuNamesInfo, false))
@@ -489,6 +491,29 @@ func GetStoreAndSkuIDsFromInfo(skuNamesInfo *StoreSkuNamesInfo) (storeIDs, skuID
// return err
// }
// 根据已经部分关注的商品,得到已经存在的门店商品单价
func updateUnitPrice4StoreSkuNameNew(db *dao.DaoDB, skuNamesInfo *StoreSkuNamesInfo) (err error) {
storeIDMap := make(map[int]int)
skuNameIDMap := make(map[int]int)
for _, skuName := range skuNamesInfo.SkuNames {
storeIDMap[skuName.StoreID] = 1
skuNameIDMap[skuName.SkuName.ID] = 1
}
storeSkuNameInfo, err := dao.GetExistingStoreSkuNameInfo(db, jxutils.IntMap2List(storeIDMap), jxutils.IntMap2List(skuNameIDMap))
if err == nil {
infoMap := make(map[int64]*dao.StoreSkuNameInfo)
for _, v := range storeSkuNameInfo {
infoMap[jxutils.Combine2Int(v.StoreID, v.NameID)] = v
}
for _, skuName := range skuNamesInfo.SkuNames {
if tmpInfo := infoMap[jxutils.Combine2Int(skuName.StoreID, skuName.SkuName.ID)]; tmpInfo != nil {
skuName.UnitPrice = int(tmpInfo.UnitPrice)
}
}
}
return err
}
func updateActPrice4StoreSkuNameNew(db *dao.DaoDB, storeIDs, skuIDs []int, skuNamesInfo *StoreSkuNamesInfo) (err error) {
// jxSkuPriceMap, err := dao.GetPromotionSkuPriceMap(db, model.VendorIDJX, storeIDs, skuIDs, time.Now(), time.Now())
// if err != nil {

View File

@@ -95,6 +95,12 @@ type StoreSkuBindWithVendorInfo struct {
VendorSkuID string `orm:"column(vendor_sku_id)"`
}
type StoreSkuNameInfo struct {
StoreID int `orm:"column(store_id)"`
NameID int `orm:"column(name_id)"`
UnitPrice int64
}
// 单门店模式厂商适用
// 从store_sku_bind中得到所有依赖的商家分类信息
func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int) (cats []*SkuStoreCatInfo, err error) {
@@ -497,3 +503,23 @@ func GetAutoSaleStoreSku(db *DaoDB, storeIDs []int) (storeSkuList []*model.Store
err = GetRows(db, &storeSkuList, sql, sqlParams...)
return storeSkuList, err
}
func GetExistingStoreSkuNameInfo(db *DaoDB, storeIDs, skuNameIDs []int) (storeSkuNameList []*StoreSkuNameInfo, err error) {
if len(storeIDs) == 0 || len(skuNameIDs) == 0 {
return nil, nil
}
sql := `
SELECT t1.store_id, t2.name_id, MAX(t1.unit_price) unit_price
FROM store_sku_bind t1
JOIN sku t2 ON t2.id = t1.sku_id
WHERE t1.deleted_at = ? AND t1.store_id IN (` + GenQuestionMarks(len(storeIDs)) + `)
AND t2.name_id IN (` + GenQuestionMarks(len(skuNameIDs)) + `)
GROUP BY 1, 2`
sqlParams := []interface{}{
utils.DefaultTimeValue,
storeIDs,
skuNameIDs,
}
err = GetRows(db, &storeSkuNameList, sql, sqlParams...)
return storeSkuNameList, err
}