feat:完善项目信息
This commit is contained in:
@ -83,28 +83,70 @@ func (c *Index) distribution(src []*model.DataAreaDistributionInfo) map[string]*
|
||||
out[v.Province] = &InstanceDistributionDetailInfo{
|
||||
Code: v.Province,
|
||||
Name: config2.MemoryForAreaInfo[config.DefaultChinaAreaCode][v.Province],
|
||||
Industry: nil,
|
||||
Industry: make(map[string]int, 0),
|
||||
Count: 1,
|
||||
Children: make(map[string]*InstanceDistributionDetailInfo, 0),
|
||||
}
|
||||
goto NEXT
|
||||
goto NEXT1
|
||||
}
|
||||
out[v.Province].Count++
|
||||
NEXT:
|
||||
if _, has = out[v.Province].Children[v.City]; !has {
|
||||
out[v.Province].Children[v.City] = &InstanceDistributionDetailInfo{
|
||||
Code: v.City,
|
||||
Count: 1,
|
||||
Name: config2.MemoryForAreaInfo[v.Province][v.City],
|
||||
Industry: industrys,
|
||||
NEXT1:
|
||||
if v.City != "" {
|
||||
if _, has = out[v.Province].Children[v.City]; !has {
|
||||
out[v.Province].Children[v.City] = &InstanceDistributionDetailInfo{
|
||||
Code: v.City,
|
||||
Count: 1,
|
||||
Name: config2.MemoryForAreaInfo[v.Province][v.City],
|
||||
Industry: make(map[string]int, 0),
|
||||
Children: make(map[string]*InstanceDistributionDetailInfo, 0),
|
||||
}
|
||||
goto NEXT2
|
||||
}
|
||||
continue
|
||||
out[v.Province].Children[v.City].Count++
|
||||
} else {
|
||||
out[v.Province].Industry = industrys
|
||||
}
|
||||
NEXT2:
|
||||
if v.District != "" {
|
||||
if _, has = out[v.Province].Children[v.City].Children[v.District]; !has {
|
||||
out[v.Province].Children[v.City].Children[v.District] = &InstanceDistributionDetailInfo{
|
||||
Code: v.District,
|
||||
Count: 1,
|
||||
Name: config2.MemoryForAreaInfo[v.City][v.District],
|
||||
Industry: industrys,
|
||||
}
|
||||
continue
|
||||
}
|
||||
out[v.Province].Children[v.City].Children[v.District].Count++
|
||||
} else {
|
||||
out[v.Province].Children[v.City].Industry = industrys
|
||||
}
|
||||
out[v.Province].Children[v.City].Count++
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func (c *Index) filterIndustry(src *InstanceDistributionDetailInfo, out map[string]int) {
|
||||
if len(src.Children) > 0 {
|
||||
for _, v := range src.Children {
|
||||
for key, val := range v.Industry {
|
||||
if _, has := out[key]; !has {
|
||||
out[key] = val
|
||||
continue
|
||||
}
|
||||
out[key] += val
|
||||
}
|
||||
c.filterIndustry(v, out)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Index) filter(src map[string]*InstanceDistributionDetailInfo) {
|
||||
for _, v := range src {
|
||||
c.filterIndustry(v, v.Industry)
|
||||
c.filter(v.Children)
|
||||
}
|
||||
}
|
||||
|
||||
// static 数量统计
|
||||
func (c *Index) static() (*InstanceStaticInfo, error) {
|
||||
out := new(InstanceStaticInfo)
|
||||
@ -159,7 +201,10 @@ func (c *Index) DistributionExpert(province, city string) (map[string]*InstanceD
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.distribution(out), nil
|
||||
_out := c.distribution(out)
|
||||
c.filter(_out)
|
||||
|
||||
return _out, nil
|
||||
}
|
||||
|
||||
// DistributionLaboratory 实验室分布
|
||||
@ -170,7 +215,10 @@ func (c *Index) DistributionLaboratory(province, city string) (map[string]*Insta
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.distribution(out), nil
|
||||
_out := c.distribution(out)
|
||||
c.filter(_out)
|
||||
|
||||
return _out, nil
|
||||
}
|
||||
|
||||
// DistributionDemand 需求信息
|
||||
@ -181,7 +229,10 @@ func (c *Index) DistributionDemand(province, city string) (map[string]*InstanceD
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.distribution(out), nil
|
||||
_out := c.distribution(out)
|
||||
c.filter(_out)
|
||||
|
||||
return _out, nil
|
||||
}
|
||||
|
||||
// DistributionPatent 专利信息
|
||||
@ -192,18 +243,24 @@ func (c *Index) DistributionPatent(province, city string) (map[string]*InstanceD
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.distribution(out), nil
|
||||
_out := c.distribution(out)
|
||||
c.filter(_out)
|
||||
|
||||
return _out, nil
|
||||
}
|
||||
|
||||
// DistributionAchievement 技术成果信息
|
||||
func (c *Index) DistributionAchievement(province, city string) (map[string]*InstanceDistributionDetailInfo, error) {
|
||||
mSysPatent := model.NewSysPatent()
|
||||
out, err := mSysPatent.Distribution()
|
||||
mTechnologyAchievement := model.NewTechnologyAchievement()
|
||||
out, err := mTechnologyAchievement.Distribution()
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.distribution(out), nil
|
||||
_out := c.distribution(out)
|
||||
c.filter(_out)
|
||||
|
||||
return _out, nil
|
||||
}
|
||||
|
||||
// Instance 首页信息
|
||||
|
Reference in New Issue
Block a user