|
@@ -82,6 +82,8 @@ func (ut *UserTask) Run() {
|
|
if ut.MatchConditions(info) {
|
|
if ut.MatchConditions(info) {
|
|
//模块计算
|
|
//模块计算
|
|
ut.Calculate(info)
|
|
ut.Calculate(info)
|
|
|
|
+ //数据整理
|
|
|
|
+ ut.DataCollation()
|
|
}
|
|
}
|
|
case <-ut.Ticker.C:
|
|
case <-ut.Ticker.C:
|
|
ut.ResultSave()
|
|
ut.ResultSave()
|
|
@@ -298,28 +300,26 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
defer func() {
|
|
defer func() {
|
|
ut.CalculateWG.Done()
|
|
ut.CalculateWG.Done()
|
|
}()
|
|
}()
|
|
- if utility.DateIsIn(ut.StartTime, ut.EndTime, pt.JgTime, 0) && pt.Sortprice > 0 {
|
|
|
|
- var (
|
|
|
|
- entIdList = pt.Entidlist
|
|
|
|
- )
|
|
|
|
- if len(pt.Entidlist) > 0 {
|
|
|
|
- //加密
|
|
|
|
- for _, entId := range pt.Entidlist {
|
|
|
|
- entIdList = append(entIdList, utility.EncodeId(entId))
|
|
|
|
- }
|
|
|
|
|
|
+ var (
|
|
|
|
+ entIdList = pt.Entidlist
|
|
|
|
+ )
|
|
|
|
+ if len(pt.Entidlist) > 0 {
|
|
|
|
+ //加密
|
|
|
|
+ for _, entId := range pt.Entidlist {
|
|
|
|
+ entIdList = append(entIdList, utility.EncodeId(entId))
|
|
}
|
|
}
|
|
- topProject.ProjectTop10 = append(topProject.ProjectTop10, entity.ProjectTop{
|
|
|
|
- Id: common.If(pt.SourceInfoId != "", utility.EncodeId(pt.SourceInfoId), "").(string),
|
|
|
|
- Area: pt.Area,
|
|
|
|
- City: pt.City,
|
|
|
|
- Eidlist: entIdList,
|
|
|
|
- Jgtime: pt.JgTime,
|
|
|
|
- Projectname: pt.ProjectName,
|
|
|
|
- Sortprice: pt.Sortprice,
|
|
|
|
- WinnerS: strings.Split(pt.Winners, ","),
|
|
|
|
- })
|
|
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ topProject.ProjectTop10 = append(topProject.ProjectTop10, entity.ProjectTop{
|
|
|
|
+ Id: common.If(pt.SourceInfoId != "", utility.EncodeId(pt.SourceInfoId), "").(string),
|
|
|
|
+ Area: pt.Area,
|
|
|
|
+ City: pt.City,
|
|
|
|
+ Eidlist: entIdList,
|
|
|
|
+ Jgtime: pt.JgTime,
|
|
|
|
+ Projectname: pt.ProjectName,
|
|
|
|
+ Sortprice: pt.Sortprice,
|
|
|
|
+ WinnerS: strings.Split(pt.Winners, ","),
|
|
|
|
+ })
|
|
|
|
+ /*-------------排序--------B--------*/
|
|
if len(topProject.ProjectTop10) > 1 {
|
|
if len(topProject.ProjectTop10) > 1 {
|
|
sort.Slice(topProject.ProjectTop10, func(i, j int) bool {
|
|
sort.Slice(topProject.ProjectTop10, func(i, j int) bool {
|
|
return topProject.ProjectTop10[i].Sortprice > topProject.ProjectTop10[j].Sortprice // 根据 price 字段进行倒序排序
|
|
return topProject.ProjectTop10[i].Sortprice > topProject.ProjectTop10[j].Sortprice // 根据 price 字段进行倒序排序
|
|
@@ -523,7 +523,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
sbct.Winner = utility.GetWinnerInfoOfCount(pt)
|
|
sbct.Winner = utility.GetWinnerInfoOfCount(pt)
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序------------Winner----*/
|
|
if len(sbct.Winner) > 1 {
|
|
if len(sbct.Winner) > 1 {
|
|
sort.Slice(sbct.Winner, func(i, j int) bool {
|
|
sort.Slice(sbct.Winner, func(i, j int) bool {
|
|
return sbct.Winner[i].WinnerTotal > sbct.Winner[j].WinnerTotal
|
|
return sbct.Winner[i].WinnerTotal > sbct.Winner[j].WinnerTotal
|
|
@@ -535,15 +535,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
- if len(pad.ScaleBuyclassCountTop) > 1 {
|
|
|
|
- sort.Slice(pad.ScaleBuyclassCountTop, func(i, j int) bool {
|
|
|
|
- return pad.ScaleBuyclassCountTop[i].BuyclassCount > pad.ScaleBuyclassCountTop[j].BuyclassCount
|
|
|
|
- })
|
|
|
|
- if len(pad.ScaleBuyclassCountTop) > consts.Top3 {
|
|
|
|
- pad.ScaleBuyclassCountTop = pad.ScaleBuyclassCountTop[:consts.Top3]
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ /*-------------排序------BuyerclassCount----------*/
|
|
|
|
+ //if len(pad.ScaleBuyclassCountTop) > 1 {
|
|
|
|
+ // sort.Slice(pad.ScaleBuyclassCountTop, func(i, j int) bool {
|
|
|
|
+ // return pad.ScaleBuyclassCountTop[i].BuyclassCount > pad.ScaleBuyclassCountTop[j].BuyclassCount
|
|
|
|
+ // })
|
|
|
|
+ // if len(pad.ScaleBuyclassCountTop) > consts.Top3 {
|
|
|
|
+ // pad.ScaleBuyclassCountTop = pad.ScaleBuyclassCountTop[:consts.Top3]
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
//项目金额TOP3客户类型的重点中标单位
|
|
//项目金额TOP3客户类型的重点中标单位
|
|
for _, sbat := range pad.ScaleBuyclassAmountTop {
|
|
for _, sbat := range pad.ScaleBuyclassAmountTop {
|
|
if sbat.Name == bc {
|
|
if sbat.Name == bc {
|
|
@@ -594,7 +594,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
sbat.Winner = utility.GetWinnerInfoOfAmount(pt)
|
|
sbat.Winner = utility.GetWinnerInfoOfAmount(pt)
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序---------Winner-------*/
|
|
if len(sbat.Winner) > 1 {
|
|
if len(sbat.Winner) > 1 {
|
|
sort.Slice(sbat.Winner, func(i, j int) bool {
|
|
sort.Slice(sbat.Winner, func(i, j int) bool {
|
|
return sbat.Winner[i].WinnerAmount > sbat.Winner[j].WinnerAmount
|
|
return sbat.Winner[i].WinnerAmount > sbat.Winner[j].WinnerAmount
|
|
@@ -605,19 +605,21 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
- if len(pad.ScaleBuyclassCountTop) > 1 {
|
|
|
|
- sort.Slice(pad.ScaleBuyclassCountTop, func(i, j int) bool {
|
|
|
|
- return pad.ScaleBuyclassCountTop[i].BuyclassCount > pad.ScaleBuyclassCountTop[j].BuyclassCount
|
|
|
|
- })
|
|
|
|
- if len(pad.ScaleBuyclassCountTop) > consts.Top3 {
|
|
|
|
- pad.ScaleBuyclassCountTop = pad.ScaleBuyclassCountTop[:consts.Top3]
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ /*-------------排序-----BuyerclassAmount-----------*/
|
|
|
|
+ //if len(pad.ScaleBuyclassAmountTop) > 1 {
|
|
|
|
+ // sort.Slice(pad.ScaleBuyclassAmountTop, func(i, j int) bool {
|
|
|
|
+ // return pad.ScaleBuyclassAmountTop[i].BuyclassAmount > pad.ScaleBuyclassAmountTop[j].BuyclassAmount
|
|
|
|
+ // })
|
|
|
|
+ // if len(pad.ScaleBuyclassAmountTop) > consts.Top3 {
|
|
|
|
+ // pad.ScaleBuyclassAmountTop = pad.ScaleBuyclassAmountTop[:consts.Top3]
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- customerScaleFunc()
|
|
|
|
|
|
+ if pt.Sortprice > 0 {
|
|
|
|
+ customerScaleFunc()
|
|
|
|
+ }
|
|
//项目规模分布
|
|
//项目规模分布
|
|
var ProjectScaleFunc = func() {
|
|
var ProjectScaleFunc = func() {
|
|
var psk = ""
|
|
var psk = ""
|
|
@@ -721,7 +723,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
saat.Winner = utility.GetWinnerInfoOfAmount(pt)
|
|
saat.Winner = utility.GetWinnerInfoOfAmount(pt)
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序---------Winner-------*/
|
|
if len(saat.Winner) > 1 {
|
|
if len(saat.Winner) > 1 {
|
|
sort.Slice(saat.Winner, func(i, j int) bool {
|
|
sort.Slice(saat.Winner, func(i, j int) bool {
|
|
return saat.Winner[i].WinnerAmount > saat.Winner[j].WinnerAmount
|
|
return saat.Winner[i].WinnerAmount > saat.Winner[j].WinnerAmount
|
|
@@ -732,15 +734,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
- if len(pad.ScaleAreaAmountTop) > 1 {
|
|
|
|
- sort.Slice(pad.ScaleAreaAmountTop, func(i, j int) bool {
|
|
|
|
- return pad.ScaleAreaAmountTop[i].AreaAmount > pad.ScaleAreaAmountTop[j].AreaAmount
|
|
|
|
- })
|
|
|
|
- if len(pad.ScaleAreaAmountTop) > consts.Top3 {
|
|
|
|
- pad.ScaleAreaAmountTop = pad.ScaleAreaAmountTop[:consts.Top3]
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ /*-------------排序----------AreaAmount------*/
|
|
|
|
+ //if len(pad.ScaleAreaAmountTop) > 1 {
|
|
|
|
+ // sort.Slice(pad.ScaleAreaAmountTop, func(i, j int) bool {
|
|
|
|
+ // return pad.ScaleAreaAmountTop[i].AreaAmount > pad.ScaleAreaAmountTop[j].AreaAmount
|
|
|
|
+ // })
|
|
|
|
+ // if len(pad.ScaleAreaAmountTop) > consts.Top3 {
|
|
|
|
+ // pad.ScaleAreaAmountTop = pad.ScaleAreaAmountTop[:consts.Top3]
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
//项目数量---TOP3地区的重点中标单位
|
|
//项目数量---TOP3地区的重点中标单位
|
|
for _, sact := range pad.ScaleAreaCountTop {
|
|
for _, sact := range pad.ScaleAreaCountTop {
|
|
if sact.Name == pt.Area {
|
|
if sact.Name == pt.Area {
|
|
@@ -791,7 +793,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
sact.Winner = utility.GetWinnerInfoOfCount(pt)
|
|
sact.Winner = utility.GetWinnerInfoOfCount(pt)
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序--------Winner--------*/
|
|
if len(sact.Winner) > 1 {
|
|
if len(sact.Winner) > 1 {
|
|
sort.Slice(sact.Winner, func(i, j int) bool {
|
|
sort.Slice(sact.Winner, func(i, j int) bool {
|
|
return sact.Winner[i].WinnerTotal > sact.Winner[j].WinnerTotal
|
|
return sact.Winner[i].WinnerTotal > sact.Winner[j].WinnerTotal
|
|
@@ -802,15 +804,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
- if len(pad.ScaleAreaCountTop) > 1 {
|
|
|
|
- sort.Slice(pad.ScaleAreaCountTop, func(i, j int) bool {
|
|
|
|
- return pad.ScaleAreaCountTop[i].AreaCount > pad.ScaleAreaCountTop[j].AreaCount
|
|
|
|
- })
|
|
|
|
- if len(pad.ScaleAreaCountTop) > consts.Top3 {
|
|
|
|
- pad.ScaleAreaCountTop = pad.ScaleAreaCountTop[:consts.Top3]
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ /*-------------排序-------AreaCount---------*/
|
|
|
|
+ //if len(pad.ScaleAreaCountTop) > 1 {
|
|
|
|
+ // sort.Slice(pad.ScaleAreaCountTop, func(i, j int) bool {
|
|
|
|
+ // return pad.ScaleAreaCountTop[i].AreaCount > pad.ScaleAreaCountTop[j].AreaCount
|
|
|
|
+ // })
|
|
|
|
+ // if len(pad.ScaleAreaCountTop) > consts.Top3 {
|
|
|
|
+ // pad.ScaleAreaCountTop = pad.ScaleAreaCountTop[:consts.Top3]
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scaleAreaAmountAndCountTopFunc()
|
|
scaleAreaAmountAndCountTopFunc()
|
|
@@ -912,7 +914,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
srtt.TopList = utility.GetWinnerInfoTopList(pt, 1, float64(scale.MarketProfile.ProjectCount))
|
|
srtt.TopList = utility.GetWinnerInfoTopList(pt, 1, float64(scale.MarketProfile.ProjectCount))
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序----------Winner------*/
|
|
if len(srtt.TopList) > 1 {
|
|
if len(srtt.TopList) > 1 {
|
|
sort.Slice(srtt.TopList, func(i, j int) bool {
|
|
sort.Slice(srtt.TopList, func(i, j int) bool {
|
|
return srtt.TopList[i].Value > srtt.TopList[j].Value
|
|
return srtt.TopList[i].Value > srtt.TopList[j].Value
|
|
@@ -975,7 +977,7 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
} else {
|
|
} else {
|
|
srat.TopList = utility.GetWinnerInfoTopList(pt, pt.Sortprice, float64(scale.MarketProfile.ProjectCount))
|
|
srat.TopList = utility.GetWinnerInfoTopList(pt, pt.Sortprice, float64(scale.MarketProfile.ProjectCount))
|
|
}
|
|
}
|
|
- /*-------------排序----------------*/
|
|
|
|
|
|
+ /*-------------排序----------Winner------*/
|
|
if len(srat.TopList) > 1 {
|
|
if len(srat.TopList) > 1 {
|
|
sort.Slice(srat.TopList, func(i, j int) bool {
|
|
sort.Slice(srat.TopList, func(i, j int) bool {
|
|
return srat.TopList[i].Value > srat.TopList[j].Value
|
|
return srat.TopList[i].Value > srat.TopList[j].Value
|
|
@@ -1069,6 +1071,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /*-------------排序----------Buyer------*/
|
|
|
|
+ if len(baw.BuyerCountTop3) > 1 {
|
|
|
|
+ sort.Slice(baw.BuyerCountTop3, func(i, j int) bool {
|
|
|
|
+ return baw.BuyerCountTop3[i].Number > baw.BuyerCountTop3[j].Number
|
|
|
|
+ })
|
|
|
|
+ if len(baw.BuyerCountTop3) > consts.Top30 {
|
|
|
|
+ baw.BuyerCountTop3 = baw.BuyerCountTop3[:consts.Top30]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//采购金额TOP30采购单位及其重点合作中标单位
|
|
//采购金额TOP30采购单位及其重点合作中标单位
|
|
for _, bat := range baw.BuyerAmountTop3 {
|
|
for _, bat := range baw.BuyerAmountTop3 {
|
|
if bat.Name == pt.Buyer {
|
|
if bat.Name == pt.Buyer {
|
|
@@ -1121,6 +1132,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /*-------------排序----------Buyer------*/
|
|
|
|
+ if len(baw.BuyerAmountTop3) > 1 {
|
|
|
|
+ sort.Slice(baw.BuyerAmountTop3, func(i, j int) bool {
|
|
|
|
+ return baw.BuyerAmountTop3[i].Amount > baw.BuyerAmountTop3[j].Amount
|
|
|
|
+ })
|
|
|
|
+ if len(baw.BuyerAmountTop3) > consts.Top30 {
|
|
|
|
+ baw.BuyerAmountTop3 = baw.BuyerAmountTop3[:consts.Top30]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//采购规模分布 --7
|
|
//采购规模分布 --7
|
|
var psk = ""
|
|
var psk = ""
|
|
@@ -1217,6 +1237,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /*-------------排序--------Winner--------*/
|
|
|
|
+ if len(baw.WinnerCountTop3) > 1 {
|
|
|
|
+ sort.Slice(baw.WinnerCountTop3, func(i, j int) bool {
|
|
|
|
+ return baw.WinnerCountTop3[i].Number > baw.WinnerCountTop3[j].Number
|
|
|
|
+ })
|
|
|
|
+ if len(baw.WinnerCountTop3) > consts.Top30 {
|
|
|
|
+ baw.WinnerCountTop3 = baw.WinnerCountTop3[:consts.Top30]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//中标金额TOP30中标单位及其重点合作采购单位
|
|
//中标金额TOP30中标单位及其重点合作采购单位
|
|
for _, wat := range baw.WinnerAmountTop3 {
|
|
for _, wat := range baw.WinnerAmountTop3 {
|
|
if wat.Name == pt.Buyer {
|
|
if wat.Name == pt.Buyer {
|
|
@@ -1261,6 +1290,15 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /*-------------排序----------Winner------*/
|
|
|
|
+ if len(baw.WinnerAmountTop3) > 1 {
|
|
|
|
+ sort.Slice(baw.WinnerAmountTop3, func(i, j int) bool {
|
|
|
|
+ return baw.WinnerAmountTop3[i].Amount > baw.WinnerAmountTop3[j].Amount
|
|
|
|
+ })
|
|
|
|
+ if len(baw.WinnerAmountTop3) > consts.Top30 {
|
|
|
|
+ baw.WinnerAmountTop3 = baw.WinnerAmountTop3[:consts.Top30]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//中标规模分布
|
|
//中标规模分布
|
|
@@ -1306,7 +1344,73 @@ func (ut *UserTask) Calculate(pt *entity.ProjectInfo) {
|
|
ut.CalculateWG.Wait()
|
|
ut.CalculateWG.Wait()
|
|
}
|
|
}
|
|
scaleFunc()
|
|
scaleFunc()
|
|
- nextFunc()
|
|
|
|
|
|
+ if utility.DateIsIn(ut.StartTime, ut.EndTime, pt.JgTime, 0) {
|
|
|
|
+ nextFunc()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// DataCollation 数据整理
|
|
|
|
+func (ut *UserTask) DataCollation() {
|
|
|
|
+ var projectAllData = func() {
|
|
|
|
+ pad := ut.Result.ProjectAllData
|
|
|
|
+ //项目数量TOP3客户类型的重点中标单位
|
|
|
|
+ if len(pad.ScaleBuyclassCountTop) > 1 {
|
|
|
|
+ /*-------------排序------BuyerclassCount----------*/
|
|
|
|
+ sort.Slice(pad.ScaleBuyclassCountTop, func(i, j int) bool {
|
|
|
|
+ return pad.ScaleBuyclassCountTop[i].BuyclassCount > pad.ScaleBuyclassCountTop[j].BuyclassCount
|
|
|
|
+ })
|
|
|
|
+ if len(pad.ScaleBuyclassCountTop) > consts.Top3 {
|
|
|
|
+ pad.ScaleBuyclassCountTop = pad.ScaleBuyclassCountTop[:consts.Top3]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //项目金额TOP3客户类型的重点中标单位
|
|
|
|
+ if len(pad.ScaleBuyclassAmountTop) > 1 {
|
|
|
|
+ /*-------------排序-----BuyerclassAmount-----------*/
|
|
|
|
+ sort.Slice(pad.ScaleBuyclassAmountTop, func(i, j int) bool {
|
|
|
|
+ return pad.ScaleBuyclassAmountTop[i].BuyclassAmount > pad.ScaleBuyclassAmountTop[j].BuyclassAmount
|
|
|
|
+ })
|
|
|
|
+ if len(pad.ScaleBuyclassAmountTop) > consts.Top3 {
|
|
|
|
+ pad.ScaleBuyclassAmountTop = pad.ScaleBuyclassAmountTop[:consts.Top3]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //项目金额TOP3地区的重点中标单位
|
|
|
|
+ if len(pad.ScaleAreaAmountTop) > 1 {
|
|
|
|
+ /*-------------排序----------AreaAmount------*/
|
|
|
|
+ sort.Slice(pad.ScaleAreaAmountTop, func(i, j int) bool {
|
|
|
|
+ return pad.ScaleAreaAmountTop[i].AreaAmount > pad.ScaleAreaAmountTop[j].AreaAmount
|
|
|
|
+ })
|
|
|
|
+ if len(pad.ScaleAreaAmountTop) > consts.Top3 {
|
|
|
|
+ pad.ScaleAreaAmountTop = pad.ScaleAreaAmountTop[:consts.Top3]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //项目数量TOP3地区的重点中标单位
|
|
|
|
+ /*-------------排序-------AreaCount---------*/
|
|
|
|
+ if len(pad.ScaleAreaCountTop) > 1 {
|
|
|
|
+ sort.Slice(pad.ScaleAreaCountTop, func(i, j int) bool {
|
|
|
|
+ return pad.ScaleAreaCountTop[i].AreaCount > pad.ScaleAreaCountTop[j].AreaCount
|
|
|
|
+ })
|
|
|
|
+ if len(pad.ScaleAreaCountTop) > consts.Top3 {
|
|
|
|
+ pad.ScaleAreaCountTop = pad.ScaleAreaCountTop[:consts.Top3]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /* 项目规模 地区分布 客户分布 地区客户top3*/
|
|
|
|
+ projectAllData()
|
|
|
|
+ /*---------------*/
|
|
|
|
+ //var buyerAndWinner = func() {
|
|
|
|
+ // ///* 市场-采购单位&&中标企业*/
|
|
|
|
+ // baw := ut.Result.BuyerAndWinner
|
|
|
|
+ // /*-------------排序----------BuyerCount------*/
|
|
|
|
+ // if len(baw.BuyerCountTop3) > 1 {
|
|
|
|
+ // sort.Slice(baw.BuyerCountTop3, func(i, j int) bool {
|
|
|
|
+ // return baw.BuyerCountTop3[i].Number > baw.BuyerCountTop3[j].Number
|
|
|
|
+ // })
|
|
|
|
+ // if len(baw.BuyerCountTop3) > consts.Top30 {
|
|
|
|
+ // baw.BuyerCountTop3 = baw.BuyerCountTop3[:consts.Top30]
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+ //buyerAndWinner()
|
|
}
|
|
}
|
|
|
|
|
|
// ResultSave 结果保存
|
|
// ResultSave 结果保存
|
|
@@ -1341,7 +1445,7 @@ func (ut *UserTask) ResultSave() {
|
|
}
|
|
}
|
|
//细化市场
|
|
//细化市场
|
|
sr := ut.Result.ScaleRefine
|
|
sr := ut.Result.ScaleRefine
|
|
- if len(sr.ScaleRefineAll) > 0 {
|
|
|
|
|
|
+ if len(sr.ScaleRefineAll) > 0 || len(sr.ScaleRefineTotalTop) > 0 {
|
|
var srMap = common.StructToMapMore(sr)
|
|
var srMap = common.StructToMapMore(sr)
|
|
srMap["s_m_id"] = ut.Id
|
|
srMap["s_m_id"] = ut.Id
|
|
if id := do.Mgo.Save(consts.MarketScaleRefine, srMap); id == "" {
|
|
if id := do.Mgo.Save(consts.MarketScaleRefine, srMap); id == "" {
|
|
@@ -1350,7 +1454,7 @@ func (ut *UserTask) ResultSave() {
|
|
}
|
|
}
|
|
///* 市场-采购单位&&中标企业*/
|
|
///* 市场-采购单位&&中标企业*/
|
|
baw := ut.Result.BuyerAndWinner
|
|
baw := ut.Result.BuyerAndWinner
|
|
- if len(baw.WinnerCountTop3) > 0 {
|
|
|
|
|
|
+ if len(baw.WinnerCountTop3) > 0 || len(baw.BuyerCountTop3) > 0 {
|
|
var bawMap = common.StructToMapMore(baw)
|
|
var bawMap = common.StructToMapMore(baw)
|
|
bawMap["s_m_id"] = ut.Id
|
|
bawMap["s_m_id"] = ut.Id
|
|
if id := do.Mgo.Save(consts.MarketBuyerAndWinner, bawMap); id == "" {
|
|
if id := do.Mgo.Save(consts.MarketBuyerAndWinner, bawMap); id == "" {
|