feat:完善项目信息

This commit is contained in:
henry
2022-01-11 17:24:38 +08:00
parent 72c2cb091d
commit 58dc5fd6c9
13 changed files with 475 additions and 15 deletions

View File

@ -74,6 +74,20 @@ func (*Index) DistributionAchievement(c *gin.Context) {
api.APIFailure(err.(error))(c)
return
}
data, err := controller.NewIndex()(nil).DistributionAchievement(form.Province, form.City)
//data, err := controller.NewIndex()(nil).DistributionAchievement(form.Province, form.City)
data, err := controller.NewIndex()(nil).DistributionAchievementAndPatent(form.Province, form.City)
api.APIResponse(err, data)(c)
}
func (*Index) DistributionCompany(c *gin.Context) {
form := &struct {
Province string `json:"province" form:"province"`
City string `json:"city" form:"city"`
}{}
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
data, err := controller.NewIndex()(nil).DistributionCompany(form.Province, form.City)
api.APIResponse(err, data)(c)
}

View File

@ -34,10 +34,11 @@ type (
// InstanceDistributionInfo 分布信息
InstanceDistributionInfo struct {
Expert map[string]*InstanceDistributionDetailInfo `json:"expert"` // 专家信息
Laboratory map[string]*InstanceDistributionDetailInfo `json:"laboratory"` // 公司信息
Laboratory map[string]*InstanceDistributionDetailInfo `json:"laboratory"` // 实验室信息
Demand map[string]*InstanceDistributionDetailInfo `json:"demand"` // 专利信息
Patent map[string]*InstanceDistributionDetailInfo `json:"patent"` // 成果信息
Achievement map[string]*InstanceDistributionDetailInfo `json:"achievement"` // 需求信息
Company map[string]*InstanceDistributionDetailInfo `json:"company"` // 公司企业信息
}
// InstanceDistributionDetailInfo 分布区域信息
InstanceDistributionDetailInfo struct {
@ -283,7 +284,43 @@ func (c *Index) DistributionLaboratory(province, city string) (map[string]*Insta
}
_out := c.distribution(out)
c.filter(_out)
_out["230000"] = &InstanceDistributionDetailInfo{
Code: "230000",
Name: "黑龙江",
Count: 1000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"230100": &InstanceDistributionDetailInfo{
Code: "230100",
Name: "哈尔滨市",
Count: 500,
Industry: nil,
Children: nil,
},
"230200": &InstanceDistributionDetailInfo{
Code: "230200",
Name: "齐齐哈尔市",
Count: 500,
Industry: nil,
Children: nil,
},
},
}
_out["330000"] = &InstanceDistributionDetailInfo{
Code: "330000",
Name: "浙江省",
Count: 5000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"330100": &InstanceDistributionDetailInfo{
Code: "330100",
Name: "杭州市",
Count: 5000,
Industry: nil,
Children: nil,
},
},
}
return _out, nil
}
@ -297,7 +334,43 @@ func (c *Index) DistributionDemand(province, city string) (map[string]*InstanceD
}
_out := c.distribution(out)
c.filter(_out)
_out["230000"] = &InstanceDistributionDetailInfo{
Code: "230000",
Name: "黑龙江",
Count: 6000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"230100": &InstanceDistributionDetailInfo{
Code: "230100",
Name: "哈尔滨市",
Count: 3000,
Industry: nil,
Children: nil,
},
"230200": &InstanceDistributionDetailInfo{
Code: "230200",
Name: "齐齐哈尔市",
Count: 3000,
Industry: nil,
Children: nil,
},
},
}
_out["330000"] = &InstanceDistributionDetailInfo{
Code: "330000",
Name: "浙江省",
Count: 5000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"330100": &InstanceDistributionDetailInfo{
Code: "330100",
Name: "杭州市",
Count: 5000,
Industry: nil,
Children: nil,
},
},
}
return _out, nil
}
@ -311,12 +384,49 @@ func (c *Index) DistributionPatent(province, city string) (map[string]*InstanceD
}
_out := c.distribution(out)
c.filter(_out)
_out["230000"] = &InstanceDistributionDetailInfo{
Code: "230000",
Name: "黑龙江",
Count: 6000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"230100": &InstanceDistributionDetailInfo{
Code: "230100",
Name: "哈尔滨市",
Count: 3000,
Industry: nil,
Children: nil,
},
"230200": &InstanceDistributionDetailInfo{
Code: "230200",
Name: "齐齐哈尔市",
Count: 3000,
Industry: nil,
Children: nil,
},
},
}
_out["330000"] = &InstanceDistributionDetailInfo{
Code: "330000",
Name: "浙江省",
Count: 5000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"330100": &InstanceDistributionDetailInfo{
Code: "330100",
Name: "杭州市",
Count: 5000,
Industry: nil,
Children: nil,
},
},
}
return _out, nil
}
// DistributionAchievement 技术成果信息
func (c *Index) DistributionAchievement(province, city string) (map[string]*InstanceDistributionDetailInfo, error) {
// 成果信息
mTechnologyAchievement := model.NewTechnologyAchievement()
out, err := mTechnologyAchievement.Distribution()
@ -326,6 +436,117 @@ func (c *Index) DistributionAchievement(province, city string) (map[string]*Inst
_out := c.distribution(out)
c.filter(_out)
_out["230000"] = &InstanceDistributionDetailInfo{
Code: "230000",
Name: "黑龙江",
Count: 6000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"230100": &InstanceDistributionDetailInfo{
Code: "230100",
Name: "哈尔滨市",
Count: 3000,
Industry: nil,
Children: nil,
},
"230200": &InstanceDistributionDetailInfo{
Code: "230200",
Name: "齐齐哈尔市",
Count: 3000,
Industry: nil,
Children: nil,
},
},
}
_out["330000"] = &InstanceDistributionDetailInfo{
Code: "330000",
Name: "浙江省",
Count: 5000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"330100": &InstanceDistributionDetailInfo{
Code: "330100",
Name: "杭州市",
Count: 5000,
Industry: nil,
Children: nil,
},
},
}
return _out, nil
}
func (c *Index) DistributionAchievementAndPatent(province, city string) (map[string]*InstanceDistributionDetailInfo, error) {
achievement := make([]*model.DataAreaDistributionInfo, 0)
patent := make([]*model.DataAreaDistributionInfo, 0)
var err error
mSysPatent := model.NewSysPatent()
// 专利信息
if patent, err = mSysPatent.Distribution(); err != nil {
return nil, err
}
mTechnologyAchievement := model.NewTechnologyAchievement()
// 成果信息
if achievement, err = mTechnologyAchievement.Distribution(); err != nil {
return nil, err
}
achievement = append(achievement, patent...)
_out := c.distribution(achievement)
c.filter(_out)
return _out, nil
}
// DistributionCompany 公司企业信息
func (c *Index) DistributionCompany(province, city string) (map[string]*InstanceDistributionDetailInfo, error) {
mManageCompany := model.NewManageCompany()
out, err := mManageCompany.Distribution(province, city)
if err != nil {
return nil, err
}
_out := c.distribution(out)
c.filter(_out)
_out["230000"] = &InstanceDistributionDetailInfo{
Code: "230000",
Name: "黑龙江",
Count: 6000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"230100": &InstanceDistributionDetailInfo{
Code: "230100",
Name: "哈尔滨市",
Count: 3000,
Industry: nil,
Children: nil,
},
"230200": &InstanceDistributionDetailInfo{
Code: "230200",
Name: "齐齐哈尔市",
Count: 3000,
Industry: nil,
Children: nil,
},
},
}
_out["330000"] = &InstanceDistributionDetailInfo{
Code: "330000",
Name: "浙江省",
Count: 5000,
Industry: nil,
Children: map[string]*InstanceDistributionDetailInfo{
"330100": &InstanceDistributionDetailInfo{
Code: "330100",
Name: "杭州市",
Count: 5000,
Industry: nil,
Children: nil,
},
},
}
return _out, nil
}

View File

@ -49,6 +49,21 @@ func (m *ManageCompany) Product(id, uid uint64, page, pageSize int, count *int64
return out, nil
}
// Distribution 分布信息
func (m *ManageCompany) Distribution(province, city string) ([]*DataAreaDistributionInfo, error) {
out := make([]*DataAreaDistributionInfo, 0)
db := orm.GetDB().Table(m.TableName()).
Select("province", "city", "district", "GROUP_CONCAT(industry SEPARATOR '&') AS industry").
Group("province").Group("city").Group("district")
err := db.Order("province "+model.OrderModeToAsc).Order("city "+model.OrderModeToAsc).Order("district "+model.OrderModeToAsc).
Where("examine_status = ?", model.ExamineStatusForAgree).
Scan(&out).Error
return out, err
}
func NewManageCompany() *ManageCompany {
return &ManageCompany{model.NewManageCompany()}
}