Browse Source

feat:xiugai

wangchuanjin 9 months ago
parent
commit
57d2d05d96
2 changed files with 44 additions and 34 deletions
  1. 41 31
      api/internal/service/network.go
  2. 3 3
      api/internal/service/owner.go

+ 41 - 31
api/internal/service/network.go

@@ -338,12 +338,13 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 	businessType := strings.Split(FindBusiness(in.EntId, in.MgoUserId), ",")
 	var count int64
 	var list []*networkTree
+	firstparty := map[string]*projectInfo{}
 	firstpartyChild := map[string][]*firstpartyNetwork{}
 	if in.Id != "" {
 		if in.Type == "firstparty" {
 			fpn := n.FirstpartyNetwork(in.Name, []string{in.Id})
 			if fpn[in.Id] != nil {
-				firstparty := n.Introduce_Firstparty(fpn, businessType)
+				firstparty = n.Introduce_Firstparty(fpn, businessType)
 				nameIndex := map[string]int{}
 				for _, v := range fpn[in.Id] {
 					if _, ok := nameIndex[v.Name]; !ok {
@@ -374,6 +375,7 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 			args = append(args, "%"+in.Name+"%")
 		}
 		aio := n.AllIntroduceOwner(sqlAppend1, "", args, true, businessType)
+		firstparty = aio.Firstparty
 		firstpartyChild = aio.FirstpartyNetwork
 		list = []*networkTree{
 			&networkTree{
@@ -411,8 +413,8 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 			}
 			switch v.Itype {
 			case 1:
-				if aio.Firstparty[v.Company_id] != nil {
-					ntc.Count = aio.Firstparty[v.Company_id].ProjectCount
+				if firstparty[v.Company_id] != nil {
+					ntc.Count = firstparty[v.Company_id].ProjectCount
 				}
 			case 2:
 				if aio.Supplier[v.Company_id] != nil {
@@ -494,30 +496,35 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 						compareId = vvv.CompanyId
 					}
 					cccIndex, cccOk := cccIndexMap[vvv.Name]
+					var dataCount int64
+					if firstparty[vvv.CompanyId] != nil {
+						dataCount = firstparty[vvv.CompanyId].ProjectCount
+					}
 					if cccOk {
 						cccNodes[cccIndex].ID += "," + vvv.CompanyId
 						cccNodes[cccIndex].MYID += "," + vvv.CompanyId
 						cccNodes[cccIndex].TYPE += ",firstparty"
 						cccNodes[cccIndex].MYTYPE += ",firstparty"
+						cccNodes[cccIndex].DATACOUNT += dataCount
 					} else {
 						nt := &nodeTree{
-							NAME:     vvv.Name,
-							ID:       vvv.CompanyId,
-							SZ_PID0:  v.Name,
-							SZ_PID1:  v.Name + ":" + myId,
-							SZ_PID2:  v.Name + ":" + myId + ":" + vvv.Name,
-							CODE:     v.Name + ":" + myId + ":" + vvv.Name,
-							PCODE:    v.Name + ":" + myId,
-							SZ_LEVEL: 2,
-							SZ_LEAF:  0,
-							TYPE:     "firstparty",
-							MYID:     vvv.CompanyId,
-							MYTYPE:   "firstparty",
+							NAME:      vvv.Name,
+							ID:        vvv.CompanyId,
+							SZ_PID0:   v.Name,
+							SZ_PID1:   v.Name + ":" + myId,
+							SZ_PID2:   v.Name + ":" + myId + ":" + vvv.Name,
+							CODE:      v.Name + ":" + myId + ":" + vvv.Name,
+							PCODE:     v.Name + ":" + myId,
+							SZ_LEVEL:  2,
+							SZ_LEAF:   0,
+							TYPE:      "firstparty",
+							MYID:      vvv.CompanyId,
+							MYTYPE:    "firstparty",
+							DATACOUNT: dataCount,
 						}
 						cccNodes = append(cccNodes, nt)
 						cccIndexMap[vvv.Name] = len(cccNodes) - 1
 						if (!hasDefaultCheck && vv.Count > 0) || compareId == in.ClickId {
-							hasDefaultCheck = true
 							checkCode = append(checkCode, nt.CODE)
 						}
 					}
@@ -538,25 +545,28 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 					}
 					myChildTypes += vv.Type
 					nt := &nodeTree{
-						NAME:     vvv.CompanyName,
-						ID:       vvv.CompanyId,
-						SZ_PID0:  v.Name,
-						SZ_PID1:  v.Name + ":" + myId,
-						SZ_PID2:  cccNodes[cccIndex].SZ_PID2,
-						SZ_PID3:  v.Name + ":" + myId + ":" + vvv.Name + ":" + vvv.CompanyId,
-						CODE:     v.Name + ":" + myId + ":" + vvv.Name + ":" + vvv.CompanyId,
-						PCODE:    cccNodes[cccIndex].CODE,
-						SZ_LEVEL: 3,
-						SZ_LEAF:  1,
-						TYPE:     "firstparty",
-						MYID:     vvv.CompanyId,
-						MYTYPE:   "firstparty",
+						NAME:      vvv.CompanyName,
+						ID:        vvv.CompanyId,
+						SZ_PID0:   v.Name,
+						SZ_PID1:   v.Name + ":" + myId,
+						SZ_PID2:   cccNodes[cccIndex].SZ_PID2,
+						SZ_PID3:   v.Name + ":" + myId + ":" + vvv.Name + ":" + vvv.CompanyId,
+						CODE:      v.Name + ":" + myId + ":" + vvv.Name + ":" + vvv.CompanyId,
+						PCODE:     cccNodes[cccIndex].CODE,
+						SZ_LEVEL:  3,
+						SZ_LEAF:   1,
+						TYPE:      "firstparty",
+						MYID:      vvv.CompanyId,
+						MYTYPE:    "firstparty",
+						DATACOUNT: dataCount,
 					}
 					if (!hasDefaultCheck && vv.Count > 0) || compareId == in.ClickId {
-						hasDefaultCheck = true
 						checkCode = append(checkCode, nt.CODE)
 					}
 					*convList = append(*convList, nt)
+					if !hasDefaultCheck && vv.Count > 0 {
+						hasDefaultCheck = true
+					}
 				}
 				for _, cccNode := range cccNodes {
 					*convList = append(*convList, cccNode)
@@ -600,7 +610,7 @@ func (n *network) AllProject(in *types.AllprojectReq) (reply *types.Reply) {
 				MYTYPE:    vv.Type,
 			}
 			//如果甲方的子节点被选中了,父节点跟着被选中,非甲方的要对比子节点可介绍业主
-			if (!hasDefaultCheck && vv.Count > 0) || childStartCheckCodeLen != len(checkCode) || (in.ClickId != "" && compareId == fmt.Sprint(vv.Id)) {
+			if (!hasDefaultCheck && vv.Count > 0) || childStartCheckCodeLen != len(checkCode) || (v.Name != "甲方" && in.ClickId != "" && compareId == fmt.Sprint(vv.Id)) {
 				hasDefaultCheck = true
 				checkCode = append(checkCode, cm.CODE)
 			}

+ 3 - 3
api/internal/service/owner.go

@@ -234,7 +234,7 @@ func Findwinner(buyerArr []string) []map[string]interface{} {
 	wh1, args1 := common.WhArgs(buyerArr)
 	args1 = append(args1, args1...)
 	//供应商  采购单位 供应商     招标代理机构  采购单位  招标代理机构  需要计算合作次数
-	winnerSql := `select zbtime,project_id,project_name,buyer_id,buyer,winner_id,winner,agency_id,agency from transaction_info_all ARRAY JOIN winner_id,winner where buyer_id in (` + wh1 + `) order by zbtime DESC,project_id DESC`
+	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 where buyer_id in (` + wh1 + `) and LENGTH(winner)=LENGTH(winner_id) order by zbtime DESC,project_id DESC`
 	winnerArr := SupplierFindConnectionsHandle(winnerSql, args1...)
 	if winnerArr != nil && len(winnerArr) > 0 {
 		//企业联系人处理
@@ -806,8 +806,8 @@ type SupplierConnectionsEntity struct {
 	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"`
+	Winner_id    string `ch:"wr_id"`
+	Winner       string `ch:"wr"`
 	Agency_id    string `ch:"agency_id"`
 	Agency       string `ch:"agency"`
 }