门店评分

This commit is contained in:
Rosy-zhudan
2019-09-06 11:28:29 +08:00
parent c7d883b51c
commit b0022eb26e

View File

@@ -65,6 +65,29 @@ func (s *StoreScoreDataWrapper) SetData(storeID int, valueName string, value int
valueInfo.FieldByName(valueName).SetInt(int64(value))
}
//得到所有门店的商品
func GetAllStoreSkus(ctx *jxcontext.Context, storeList []*cms.StoreExt) {
allStoreSkus = make(map[int]map[int]*cms.StoreSkuNameExt)
for _, storeInfo := range storeList {
storeID := storeInfo.ID
jxSkuInfoData, _ := cms.GetStoreSkus(ctx, storeID, []int{}, true, "", true, map[string]interface{}{}, 0, -1)
jxSkuMapData := make(map[int]*cms.StoreSkuNameExt)
for _, value := range jxSkuInfoData.SkuNames {
for _, skuInfo := range value.Skus2 {
saleStatus := jxutils.MergeSkuStatus(skuInfo.SkuStatus, skuInfo.StoreSkuStatus)
if saleStatus == model.SkuStatusNormal {
jxSkuMapData[skuInfo.SkuID] = value
}
}
}
allStoreSkus[storeID] = jxSkuMapData
}
}
func ClearAllStoreSkus() {
allStoreSkus = nil
}
func GetOpenTime(opTimeList []int16) (opTime float64) {
opTime = 0
for index, _ := range opTimeList {
@@ -111,11 +134,11 @@ func ScoreStoreOpenTime(storeList []*cms.StoreExt) {
func ScoreSaleSkuCount(ctx *jxcontext.Context, storeList []*cms.StoreExt) {
for _, storeInfo := range storeList {
storeID := storeInfo.ID
jxSkuInfoData, err := cms.GetStoreSkus(ctx, storeID, []int{}, true, "", true, map[string]interface{}{}, 0, -1)
if err == nil && len(jxSkuInfoData.SkuNames) > 0 {
skusMapData := allStoreSkus[storeID]
if len(skusMapData) > 0 {
finalScore := 0
saleSkuCount := 0
for _, value := range jxSkuInfoData.SkuNames {
for _, value := range skusMapData {
for _, skuInfo := range value.Skus2 {
saleStatus := jxutils.MergeSkuStatus(skuInfo.SkuStatus, skuInfo.StoreSkuStatus)
if saleStatus == model.SkuStatusNormal {
@@ -334,29 +357,6 @@ func GetRangeStoreList(storeID int, lng, lat, checkDist float64, storeList []*cm
return outStoreList
}
//得到所有门店的商品
func GetAllStoreSkus(ctx *jxcontext.Context, storeList []*cms.StoreExt) {
allStoreSkus = make(map[int]map[int]*cms.StoreSkuNameExt)
for _, storeInfo := range storeList {
storeID := storeInfo.ID
jxSkuInfoData, _ := cms.GetStoreSkus(ctx, storeID, []int{}, true, "", true, map[string]interface{}{}, 0, -1)
jxSkuMapData := make(map[int]*cms.StoreSkuNameExt)
for _, value := range jxSkuInfoData.SkuNames {
for _, skuInfo := range value.Skus2 {
saleStatus := jxutils.MergeSkuStatus(skuInfo.SkuStatus, skuInfo.StoreSkuStatus)
if saleStatus == model.SkuStatusNormal {
jxSkuMapData[skuInfo.SkuID] = value
}
}
}
allStoreSkus[storeID] = jxSkuMapData
}
}
func ClearAllStoreSkus() {
allStoreSkus = nil
}
//得到给定门店列表里的同一SkuID商品的平均价格
func GetStoreSkusAveragePrice(storeList []*cms.StoreExt) map[int]int {
skusTotalPrice := make(map[int]int)
@@ -392,7 +392,6 @@ func GetSkusCountLessEqualAvgPrice(storeID int, skusAveragePrice map[int]int) (c
//可售商品价格在附近5km内门店比较价格低于等于平均值的商品数占90%以上满分10分比例每降低10%减1分100%超标得0分
func ScoreSaleSkuPrice(ctx *jxcontext.Context, storeList []*cms.StoreExt) {
GetAllStoreSkus(ctx, storeList)
for _, storeInfo := range storeList {
finalScore := 0
storeID := storeInfo.ID
@@ -414,7 +413,6 @@ func ScoreSaleSkuPrice(ctx *jxcontext.Context, storeList []*cms.StoreExt) {
storeScoreDataWrapper.SetData(storeID, "SaleSkuPrice", finalScore)
}
}
ClearAllStoreSkus()
}
func GetFilterStoreListEx(storeList []*cms.StoreExt, storeIDMap map[int]int) (outStoreList []*cms.StoreExt) {
@@ -443,17 +441,19 @@ func ScoreStore(ctx *jxcontext.Context, storeIDList []int) (retVal interface{},
storeIDMap := jxutils.IntList2Map(storeIDList)
storeList = GetFilterStoreListEx(storeList, storeIDMap)
// GetAllStoreSkus(ctx, storeList)
ScoreStoreOpenTime(storeList)
ScoreSaleSkuCount(ctx, storeList)
// ScoreSaleSkuCount(ctx, storeList)
ScoreAveragePickupTime(storeList)
ScoreBadCommentOrder(storeList)
ScoreUnfinishOrder(storeList)
ScoreAbsentGoodsOrder(storeList)
// ScoreAbsentGoodsOrder(storeList)
ScorePromotionSku(storeList)
ScoreFullVendor(storeList)
ScoreStoreRange(storeList)
ScoreSaleSkuPrice(ctx, storeList)
InsertStoreScore()
// ScoreSaleSkuPrice(ctx, storeList)
// InsertStoreScore()
// ClearAllStoreSkus()
return retVal, err
}