wangchuanjin 9 mēneši atpakaļ
vecāks
revīzija
2e80247c05
1 mainītis faili ar 43 papildinājumiem un 41 dzēšanām
  1. 43 41
      api/internal/service/owner.go

+ 43 - 41
api/internal/service/owner.go

@@ -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"`