|
@@ -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)
|
|
|
}
|