价格统计
This commit is contained in:
@@ -2318,31 +2318,32 @@ func RefershStoreSkusMidPrice(ctx *jxcontext.Context, storeIDs []int) (err error
|
|||||||
if len(storeIDs) == 0 {
|
if len(storeIDs) == 0 {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var skuBindInfos []*StoreSkuBindInfo
|
|
||||||
for _, v := range storeIDs {
|
for _, v := range storeIDs {
|
||||||
|
var skuBindInfos []*StoreSkuBindInfo
|
||||||
store, err := dao.GetStoreDetail(db, v, -1)
|
store, err := dao.GetStoreDetail(db, v, -1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var payPercentage int
|
var payPercentage int
|
||||||
if payPercentage < 50 {
|
if store.PayPercentage < 50 {
|
||||||
payPercentage = 70
|
payPercentage = 70
|
||||||
} else {
|
} else {
|
||||||
payPercentage = store.PayPercentage
|
payPercentage = store.PayPercentage
|
||||||
}
|
}
|
||||||
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{v}, nil)
|
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{v}, nil)
|
||||||
for _, storeSku := range storeSkuList {
|
for _, storeSku := range storeSkuList {
|
||||||
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{store.CityCode}, nil, []int{storeSku.SkuID}, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{store.CityCode}, []int{storeSku.SkuID}, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if len(priceReferList) > 0 {
|
if len(priceReferList) > 0 {
|
||||||
skuBindInfo := &StoreSkuBindInfo{
|
if storeSku.UnitPrice > priceReferList[0].MidUnitPrice*payPercentage/100 {
|
||||||
StoreID: v,
|
skuBindInfo := &StoreSkuBindInfo{
|
||||||
NameID: priceReferList[0].NameID,
|
NameID: priceReferList[0].NameID,
|
||||||
UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100,
|
UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100,
|
||||||
|
}
|
||||||
|
skuBindInfos = append(skuBindInfos, skuBindInfo)
|
||||||
}
|
}
|
||||||
skuBindInfos = append(skuBindInfos, skuBindInfo)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateStoresSkusWithoutSync(ctx, db, []int{v}, skuBindInfos, false)
|
updateStoresSkusWithoutSync(ctx, db, []int{v}, skuBindInfos, false)
|
||||||
|
|||||||
@@ -99,13 +99,13 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn
|
|||||||
var (
|
var (
|
||||||
citySkuMap = make(map[int]map[int][]int)
|
citySkuMap = make(map[int]map[int][]int)
|
||||||
resultMap = make(map[int]map[int]*model.PriceReferSnapshot)
|
resultMap = make(map[int]map[int]*model.PriceReferSnapshot)
|
||||||
tList []*tStoreSkuBindAndSkuName
|
|
||||||
)
|
)
|
||||||
storeList, err := dao.GetStoreList(db, nil, nil, "")
|
storeList, err := dao.GetStoreList(db, nil, nil, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
for _, v := range storeList {
|
for _, v := range storeList {
|
||||||
|
var tList []*tStoreSkuBindAndSkuName
|
||||||
sql := `
|
sql := `
|
||||||
SELECT DISTINCT b.city_code, a.store_id, Round(a.unit_price/IF(b.pay_percentage < 50 , 70, b.pay_percentage) * 100) AS unit_price, c.name_id
|
SELECT DISTINCT b.city_code, a.store_id, Round(a.unit_price/IF(b.pay_percentage < 50 , 70, b.pay_percentage) * 100) AS unit_price, c.name_id
|
||||||
FROM store_sku_bind a
|
FROM store_sku_bind a
|
||||||
@@ -145,9 +145,6 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn
|
|||||||
if len(tList) > 0 {
|
if len(tList) > 0 {
|
||||||
for _, vv := range tList {
|
for _, vv := range tList {
|
||||||
skuNameMap[vv.NameID] = append(skuNameMap[vv.NameID], vv.UnitPrice)
|
skuNameMap[vv.NameID] = append(skuNameMap[vv.NameID], vv.UnitPrice)
|
||||||
if v.CityCode == 110100 && vv.NameID == 11410 {
|
|
||||||
fmt.Println(v.ID, vv)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if citySkuMap[v.CityCode] != nil {
|
if citySkuMap[v.CityCode] != nil {
|
||||||
for nameID, unitPriceList := range skuNameMap {
|
for nameID, unitPriceList := range skuNameMap {
|
||||||
@@ -162,7 +159,6 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Println(citySkuMap)
|
|
||||||
for k1, v := range citySkuMap {
|
for k1, v := range citySkuMap {
|
||||||
skuNameMap := make(map[int]*model.PriceReferSnapshot)
|
skuNameMap := make(map[int]*model.PriceReferSnapshot)
|
||||||
for k2, _ := range v {
|
for k2, _ := range v {
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ func GetPriceReferSnapshotNoPage(db *DaoDB, cityCodes, skuIDs, skuNameIDs []int,
|
|||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
if len(skuNameIDs) > 0 {
|
if len(skuNameIDs) > 0 {
|
||||||
sql += " AND a.name_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
sql += " AND a.name_id IN (" + GenQuestionMarks(len(skuNameIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, skuNameIDs)
|
sqlParams = append(sqlParams, skuNameIDs)
|
||||||
}
|
}
|
||||||
if len(skuIDs) > 0 {
|
if len(skuIDs) > 0 {
|
||||||
|
|||||||
@@ -567,7 +567,7 @@ func GetStorePriceScore(db *DaoDB, storeIDs, vendorIDs []int, fromScore, toScore
|
|||||||
|
|
||||||
func GetStorePriceScoreSnapshot(db *DaoDB, snapDate time.Time) (storePriceScoreSnapshot []*model.StorePriceScoreSnapshot, err error) {
|
func GetStorePriceScoreSnapshot(db *DaoDB, snapDate time.Time) (storePriceScoreSnapshot []*model.StorePriceScoreSnapshot, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT c.store_id,ROUND(count(c.price <= a.mid_price or NULL)/count(*)*100,2) score
|
SELECT c.store_id,ROUND(count(c.unit_price/IF(d.pay_percentage < 50 , 70, d.pay_percentage) <= a.mid_unit_price or NULL)/count(*)*100,2) score
|
||||||
FROM price_refer_snapshot a
|
FROM price_refer_snapshot a
|
||||||
JOIN store_sku_bind c ON c.sku_id = a.sku_id AND c.status = ? AND c.deleted_at = ?
|
JOIN store_sku_bind c ON c.sku_id = a.sku_id AND c.status = ? AND c.deleted_at = ?
|
||||||
JOIN store d ON c.store_id = d.id AND d.city_code = a.city_code AND d.deleted_at = ? AND d.status != ?
|
JOIN store d ON c.store_id = d.id AND d.city_code = a.city_code AND d.deleted_at = ? AND d.status != ?
|
||||||
|
|||||||
Reference in New Issue
Block a user