- 调用updateActPrice4StoreSkuName时,根据结果集限制storeID与skuIDs
This commit is contained in:
@@ -316,6 +316,9 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
|
if offset < 0 {
|
||||||
|
offset = 0
|
||||||
|
}
|
||||||
sqlOffset := offset
|
sqlOffset := offset
|
||||||
sqlPageSize := pageSize
|
sqlPageSize := pageSize
|
||||||
isSaleInfo := params["stFromTime"] != nil
|
isSaleInfo := params["stFromTime"] != nil
|
||||||
@@ -351,7 +354,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
globals.SugarLogger.Debug(time.Now().Sub(beginTime))
|
globals.SugarLogger.Debugf("GetStoresSkusNew get result1:%v", time.Now().Sub(beginTime))
|
||||||
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
|
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
|
||||||
sql += " AND (1 = 0"
|
sql += " AND (1 = 0"
|
||||||
for _, v := range storeNameList {
|
for _, v := range storeNameList {
|
||||||
@@ -394,7 +397,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
|||||||
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
|
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
globals.SugarLogger.Debug(time.Now().Sub(beginTime))
|
globals.SugarLogger.Debugf("GetStoresSkusNew get result2:%v", time.Now().Sub(beginTime))
|
||||||
storeNameMap := make(map[int64]*StoreSkuNameExt)
|
storeNameMap := make(map[int64]*StoreSkuNameExt)
|
||||||
for _, v := range tmpList {
|
for _, v := range tmpList {
|
||||||
var storeName *StoreSkuNameExt
|
var storeName *StoreSkuNameExt
|
||||||
@@ -415,14 +418,37 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
|||||||
}
|
}
|
||||||
storeName.Skus2 = append(storeName.Skus2, &v.StoreSkuExt)
|
storeName.Skus2 = append(storeName.Skus2, &v.StoreSkuExt)
|
||||||
}
|
}
|
||||||
err = updateActPrice4StoreSkuName(db, storeIDs, skuIDs, skuNamesInfo)
|
if err == nil {
|
||||||
if err == nil && isSaleInfo {
|
if isSaleInfo {
|
||||||
err = updateSaleInfo4StoreSkuName(ctx, db, offset, pageSize, params, skuNamesInfo)
|
beginTime := time.Now()
|
||||||
|
err = updateSaleInfo4StoreSkuName(ctx, db, storeIDs, skuIDs, params, skuNamesInfo, offset, pageSize)
|
||||||
|
globals.SugarLogger.Debugf("GetStoresSkusNew updateSaleInfo4StoreSkuName:%v", time.Now().Sub(beginTime))
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
if !(offset == 0 && pageSize == model.UnlimitedPageSize) {
|
||||||
|
storeIDs, skuIDs = GetStoreAndSkuIDsFromInfo(skuNamesInfo)
|
||||||
|
}
|
||||||
|
beginTime := time.Now()
|
||||||
|
err = updateActPrice4StoreSkuName(db, storeIDs, skuIDs, skuNamesInfo)
|
||||||
|
globals.SugarLogger.Debugf("GetStoresSkusNew updateActPrice4StoreSkuName:%v", time.Now().Sub(beginTime))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuNamesInfo, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skuNamesInfo, false))
|
||||||
return skuNamesInfo, err
|
return skuNamesInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStoreAndSkuIDsFromInfo(skuNamesInfo *StoreSkuNamesInfo) (storeIDs, skuIDs []int) {
|
||||||
|
storeIDMap := make(map[int]int)
|
||||||
|
skuIDMap := make(map[int]int)
|
||||||
|
for _, skuName := range skuNamesInfo.SkuNames {
|
||||||
|
storeIDMap[skuName.StoreID] = 1
|
||||||
|
for _, sku := range skuName.Skus2 {
|
||||||
|
skuIDMap[sku.SkuID] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jxutils.IntMap2List(storeIDMap), jxutils.IntMap2List(skuIDMap)
|
||||||
|
}
|
||||||
|
|
||||||
func updateActPrice4StoreSkuName(db *dao.DaoDB, storeIDs, skuIDs []int, skuNamesInfo *StoreSkuNamesInfo) (err error) {
|
func updateActPrice4StoreSkuName(db *dao.DaoDB, storeIDs, skuIDs []int, skuNamesInfo *StoreSkuNamesInfo) (err error) {
|
||||||
// 活动商品信息
|
// 活动商品信息
|
||||||
jxSkuPriceMap, err := dao.GetPromotionSkuPriceMap(db, model.VendorIDJX, storeIDs, skuIDs, time.Now(), time.Now())
|
jxSkuPriceMap, err := dao.GetPromotionSkuPriceMap(db, model.VendorIDJX, storeIDs, skuIDs, time.Now(), time.Now())
|
||||||
@@ -458,23 +484,14 @@ func updateActPrice4StoreSkuName(db *dao.DaoDB, storeIDs, skuIDs []int, skuNames
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateSaleInfo4StoreSkuName(ctx *jxcontext.Context, db *dao.DaoDB, offset, pageSize int, params map[string]interface{}, skuNamesInfo *StoreSkuNamesInfo) (err error) {
|
func updateSaleInfo4StoreSkuName(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs, skuIDs []int, params map[string]interface{}, skuNamesInfo *StoreSkuNamesInfo, offset, pageSize int) (err error) {
|
||||||
var (
|
var (
|
||||||
saleInfoList []*SkuSaleInfo
|
saleInfoList []*SkuSaleInfo
|
||||||
timeList []time.Time
|
timeList []time.Time
|
||||||
fromCount, toCount int
|
fromCount, toCount int
|
||||||
)
|
)
|
||||||
storeIDMap := make(map[int]int)
|
|
||||||
skuIDMap := make(map[int]int)
|
|
||||||
saleInfoMap := make(map[int64]*SkuSaleInfo)
|
saleInfoMap := make(map[int64]*SkuSaleInfo)
|
||||||
for _, skuName := range skuNamesInfo.SkuNames {
|
|
||||||
storeIDMap[skuName.StoreID] = 1
|
|
||||||
for _, sku := range skuName.Skus2 {
|
|
||||||
skuIDMap[sku.SkuID] = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
storeIDs := jxutils.IntMap2List(storeIDMap)
|
|
||||||
skuIDs := jxutils.IntMap2List(skuIDMap)
|
|
||||||
toTimeStr := ""
|
toTimeStr := ""
|
||||||
if params["stToTime"] != nil {
|
if params["stToTime"] != nil {
|
||||||
toTimeStr = params["stToTime"].(string)
|
toTimeStr = params["stToTime"].(string)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ func GetPromotionSkuPriceMap(db *DaoDB, vendorID int, storeIDs, skuIDs []int, fr
|
|||||||
sql += " AND t3.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
sql += " AND t3.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, skuIDs)
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
}
|
}
|
||||||
sql += "ORDER BY t2.store_id, t3.sku_id, t3.price"
|
sql += " ORDER BY t2.store_id, t3.sku_id, t3.price"
|
||||||
var skuPriceList []*PromotionStoreSku
|
var skuPriceList []*PromotionStoreSku
|
||||||
if err = GetRows(db, &skuPriceList, sql, sqlParams...); err != nil {
|
if err = GetRows(db, &skuPriceList, sql, sqlParams...); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user