feat:完善项目信息

This commit is contained in:
henry
2022-01-06 10:43:27 +08:00
parent 7488e9526b
commit 1b0f71735b
15 changed files with 146 additions and 342 deletions

View File

@ -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 首页信息