- 根据已经部分关注的商品,得到已经存在的门店商品单价
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user