|
@@ -223,7 +223,7 @@ func Findwinner(positionId int64, buyerArr []string) []map[string]interface{} {
|
|
|
}
|
|
|
wh1, args1 := common.WhArgs(buyerArr)
|
|
|
//供应商 采购单位 供应商 招标代理机构 采购单位 招标代理机构 需要计算合作次数
|
|
|
- winnerSql := `select zbtime,project_id,project_name,buyer_id,buyer,wr_id,wr,agency_id,agency from transaction_info_all ARRAY JOIN winner_id as wr_id,winner as wr prewhere buyer_id in (` + wh1 + `) and LENGTH(winner)=LENGTH(winner_id)`
|
|
|
+ winnerSql := `select zbtime,project_id,project_name,buyer_id,buyer,winner_id,winner,agency_id,agency from transaction_info_all prewhere buyer_id in (` + wh1 + `)`
|
|
|
logx.Info(positionId, " Findwinner 合作 sql ", winnerSql, args1)
|
|
|
winnerArr := SupplierFindConnectionsHandle(winnerSql, args1...)
|
|
|
if winnerArr == nil || len(winnerArr) == 0 {
|
|
@@ -233,43 +233,45 @@ func Findwinner(positionId int64, buyerArr []string) []map[string]interface{} {
|
|
|
agencyMap := map[string]map[string]interface{}{}
|
|
|
agencyIdMap := map[string]bool{}
|
|
|
for _, m := range winnerArr {
|
|
|
- if m.Winner_id == "" && m.Agency_id == "" {
|
|
|
+ if (len(m.Winner_id) == 0 || len(m.Winner_id) != len(m.Winner)) && m.Agency_id == "" {
|
|
|
continue
|
|
|
}
|
|
|
projectId := encrypt.EncodeArticleId2ByCheck(m.Project_id)
|
|
|
projectName := m.Project_name
|
|
|
zbtime := m.Zbtime
|
|
|
- if m.Winner_id != "" {
|
|
|
- key := fmt.Sprintf("%s_%s", m.Buyer_id, m.Winner_id)
|
|
|
- if _, ok := winnerMap[key]; ok {
|
|
|
- data := winnerMap[key]
|
|
|
- data["count"] = gconv.Int64(data["count"]) + 1
|
|
|
- dataList := gconv.Maps(data["list"])
|
|
|
- dataList = append(dataList, map[string]interface{}{
|
|
|
- "zbtime": zbtime,
|
|
|
- "projectId": projectId,
|
|
|
- "projectName": projectName,
|
|
|
- })
|
|
|
- data["list"] = dataList
|
|
|
- data["zbtime"] = zbtime
|
|
|
- winnerMap[key] = data
|
|
|
- } else {
|
|
|
- winnerMap[key] = map[string]interface{}{
|
|
|
- "b_id": m.Winner_id,
|
|
|
- "b_name": m.Winner,
|
|
|
- "a_name": m.Buyer,
|
|
|
- "a_id": m.Buyer_id,
|
|
|
- "sourceType": "supplier",
|
|
|
- "zbtime": zbtime,
|
|
|
- "count": 1,
|
|
|
- "list": []map[string]interface{}{
|
|
|
- {
|
|
|
- "zbtime": zbtime,
|
|
|
- "entName": m.Winner,
|
|
|
- "projectId": projectId,
|
|
|
- "projectName": projectName,
|
|
|
+ if len(m.Winner_id) == len(m.Winner) {
|
|
|
+ for k, v := range m.Winner_id {
|
|
|
+ key := fmt.Sprintf("%s_%s", m.Buyer_id, v)
|
|
|
+ if _, ok := winnerMap[key]; ok {
|
|
|
+ data := winnerMap[key]
|
|
|
+ data["count"] = gconv.Int64(data["count"]) + 1
|
|
|
+ dataList := gconv.Maps(data["list"])
|
|
|
+ dataList = append(dataList, map[string]interface{}{
|
|
|
+ "zbtime": zbtime,
|
|
|
+ "projectId": projectId,
|
|
|
+ "projectName": projectName,
|
|
|
+ })
|
|
|
+ data["list"] = dataList
|
|
|
+ data["zbtime"] = zbtime
|
|
|
+ winnerMap[key] = data
|
|
|
+ } else {
|
|
|
+ winnerMap[key] = map[string]interface{}{
|
|
|
+ "b_id": v,
|
|
|
+ "b_name": m.Winner[k],
|
|
|
+ "a_name": m.Buyer,
|
|
|
+ "a_id": m.Buyer_id,
|
|
|
+ "sourceType": "supplier",
|
|
|
+ "zbtime": zbtime,
|
|
|
+ "count": 1,
|
|
|
+ "list": []map[string]interface{}{
|
|
|
+ {
|
|
|
+ "zbtime": zbtime,
|
|
|
+ "entName": m.Winner[k],
|
|
|
+ "projectId": projectId,
|
|
|
+ "projectName": projectName,
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -742,15 +744,15 @@ type PersonEntity struct {
|
|
|
PersonName string `ch:"personName"`
|
|
|
}
|
|
|
type SupplierConnectionsEntity struct {
|
|
|
- Zbtime int64 `ch:"zbtime"`
|
|
|
- Project_id string `ch:"project_id"`
|
|
|
- Project_name string `ch:"project_name"`
|
|
|
- Buyer_id string `ch:"buyer_id"`
|
|
|
- Buyer string `ch:"buyer"`
|
|
|
- Winner_id string `ch:"wr_id"`
|
|
|
- Winner string `ch:"wr"`
|
|
|
- Agency_id string `ch:"agency_id"`
|
|
|
- Agency string `ch:"agency"`
|
|
|
+ Zbtime int64 `ch:"zbtime"`
|
|
|
+ Project_id string `ch:"project_id"`
|
|
|
+ Project_name string `ch:"project_name"`
|
|
|
+ Buyer_id string `ch:"buyer_id"`
|
|
|
+ Buyer string `ch:"buyer"`
|
|
|
+ Winner_id []string `ch:"winner_id"`
|
|
|
+ Winner []string `ch:"winner"`
|
|
|
+ Agency_id string `ch:"agency_id"`
|
|
|
+ Agency string `ch:"agency"`
|
|
|
}
|
|
|
type TimeConnectionsEntity struct {
|
|
|
Zbtime int64 `ch:"zbtime"`
|