package SchoolController import ( "dsBigData/Business/Area/AreaService" "dsBigData/Business/Dict/DictService" "dsBigData/Business/School/SchoolDao" "dsBigData/Business/School/SchoolModel" "dsBigData/Business/School/SchoolService" "dsBigData/Business/Student/StudentService" "dsBigData/Business/Teacher/TeacherService" "dsBigData/Model" "dsBigData/Utils/CommonUtil" "encoding/json" "github.com/gin-gonic/gin" "net/http" ) //模块的路由配置 func Routers(r *gin.RouterGroup) { rr := r.Group("/school") rr.GET("/GetSchoolCountByCity", GetSchoolCountByCity) rr.GET("/GetEduAssistCountByCity", GetEduAssistCountByCity) rr.GET("/PageStageBySchoolId", PageStageBySchoolId) rr.GET("/GetCityBaseInfo", GetCityBaseInfo) rr.GET("/GetDistrictBaseInfo", GetDistrictBaseInfo) rr.GET("/GetSchoolBaseInfo", GetSchoolBaseInfo) rr.GET("/GetBaseAccessTopByAreaCode", GetBaseAccessTopByAreaCode) return } func test(c *gin.Context) { count, _ := SchoolDao.GetOrgInfoByOrgIds([]string{"e2d0131a-b906-11ea-8315-f48e38f73cf7", "e2d01323-b906-11ea-8315-f48e38f73cf7", "e2d013b9-b906-11ea-8315-f48e38f73cf7", "e2d0147c-b906-11ea-8315-f48e38f73cf7", "e2d01485-b906-11ea-8315-f48e38f73cf7", "e2d01509-b906-11ea-8315-f48e38f73cf7", "e2d0151b-b906-11ea-8315-f48e38f73cf7", "e2d01524-b906-11ea-8315-f48e38f73cf7", "e2d01536-b906-11ea-8315-f48e38f73cf7", "e2d01549-b906-11ea-8315-f48e38f73cf7"}) c.JSON(http.StatusOK, Model.Res{ Success: true, List: count, }) } func GetBaseAccessTopByAreaCode(c *gin.Context) { areaCode := c.Query("areaCode") topNum := c.Query("topNum") resArr, err := SchoolService.GetBaseAccessTop(areaCode, topNum) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } resArrByte, _ := json.Marshal(resArr) resList := CommonUtil.ConvertJsonStringToMapArray(string(resArrByte)) resMap := make(map[string]int) orgArr := make([]string, 0) for i := 0; i < len(resList); i++ { orgId := resList[i]["org_id"].(string) count := int(resList[i]["count"].(float64)) resMap[orgId] = count orgArr = append(orgArr, orgId) } orgInfo, err := SchoolService.GetOrgInfoByOrgIds(orgArr) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } baseAccessTopArr := make([]SchoolModel.BaseAccessTop, 0) for i := range orgInfo { var baseAccessTop SchoolModel.BaseAccessTop orgId := orgInfo[i].OrgId orgName := orgInfo[i].OrgName baseAccessTop.OrgId = orgId baseAccessTop.OrgName = orgName if _, ok := resMap[orgId]; ok { baseAccessTop.Count = resMap[orgId] } baseAccessTopArr = append(baseAccessTopArr, baseAccessTop) } CommonUtil.SortItems(baseAccessTopArr, "Count", "desc") c.JSON(http.StatusOK, Model.Res{ Success: true, List: baseAccessTopArr, }) } /** 功能:获取市级的基本信息统计 */ func GetCityBaseInfo(c *gin.Context) { cityCode := c.Query("cityCode") TotalCountAndCurrentTermCountArr := make([]SchoolModel.TotalCountAndCurrentTermCount, 0) var schoolTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount schoolTotalCount, err := SchoolService.GetOrgTotalCount(cityCode, "2") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } schoolCurrentTermCount, err := SchoolService.GetOrgCurrentTermAddCount(cityCode, "2") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } schoolTotalCountAndCurrentTermCount.Title = "学校数量" schoolTotalCountAndCurrentTermCount.TotalCount = schoolTotalCount schoolTotalCountAndCurrentTermCount.CurrentTermAddCount = schoolCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, schoolTotalCountAndCurrentTermCount) var eduAssistTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount eduAssistTotalCount, err := SchoolService.GetOrgTotalCount(cityCode, "7") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } eduAssistCurrentTermCount, err := SchoolService.GetOrgCurrentTermAddCount(cityCode, "7") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } eduAssistTotalCountAndCurrentTermCount.Title = "教辅单位数量" eduAssistTotalCountAndCurrentTermCount.TotalCount = eduAssistTotalCount eduAssistTotalCountAndCurrentTermCount.CurrentTermAddCount = eduAssistCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, eduAssistTotalCountAndCurrentTermCount) var teacherTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount teacherTotalCount, err := TeacherService.GetTeacherTotalCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherCurrentTermCount, err := TeacherService.GetTeacherCurrentTermAddCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherTotalCountAndCurrentTermCount.Title = "教职工数量" teacherTotalCountAndCurrentTermCount.TotalCount = teacherTotalCount teacherTotalCountAndCurrentTermCount.CurrentTermAddCount = teacherCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, teacherTotalCountAndCurrentTermCount) var studentTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount studentTotalCount, err := StudentService.GetStudentTotalCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentCurrentTermCount, err := StudentService.GetStudentCurrentTermAddCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentTotalCountAndCurrentTermCount.Title = "学生数量" studentTotalCountAndCurrentTermCount.TotalCount = studentTotalCount studentTotalCountAndCurrentTermCount.CurrentTermAddCount = studentCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, studentTotalCountAndCurrentTermCount) c.JSON(http.StatusOK, Model.Res{ Success: true, List: TotalCountAndCurrentTermCountArr, }) } /** 功能:获取区级的基本信息统计 */ func GetDistrictBaseInfo(c *gin.Context) { districtCode := c.Query("districtCode") TotalCountAndCurrentTermCountArr := make([]SchoolModel.TotalCountAndCurrentTermCount, 0) var schoolTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount schoolTotalCount, err := SchoolService.GetOrgTotalCount(districtCode, "2") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } schoolCurrentTermCount, err := SchoolService.GetOrgCurrentTermAddCount(districtCode, "2") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } schoolTotalCountAndCurrentTermCount.Title = "学校数量" schoolTotalCountAndCurrentTermCount.TotalCount = schoolTotalCount schoolTotalCountAndCurrentTermCount.CurrentTermAddCount = schoolCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, schoolTotalCountAndCurrentTermCount) var eduAssistTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount eduAssistTotalCount, err := SchoolService.GetOrgTotalCount(districtCode, "7") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } eduAssistCurrentTermCount, err := SchoolService.GetOrgCurrentTermAddCount(districtCode, "7") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } eduAssistTotalCountAndCurrentTermCount.Title = "教辅单位数量" eduAssistTotalCountAndCurrentTermCount.TotalCount = eduAssistTotalCount eduAssistTotalCountAndCurrentTermCount.CurrentTermAddCount = eduAssistCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, eduAssistTotalCountAndCurrentTermCount) var teacherTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount teacherTotalCount, err := TeacherService.GetTeacherTotalCount(districtCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherCurrentTermCount, err := TeacherService.GetTeacherCurrentTermAddCount(districtCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherTotalCountAndCurrentTermCount.Title = "教职工数量" teacherTotalCountAndCurrentTermCount.TotalCount = teacherTotalCount teacherTotalCountAndCurrentTermCount.CurrentTermAddCount = teacherCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, teacherTotalCountAndCurrentTermCount) var studentTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount studentTotalCount, err := StudentService.GetStudentTotalCount(districtCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentCurrentTermCount, err := StudentService.GetStudentCurrentTermAddCount(districtCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentTotalCountAndCurrentTermCount.Title = "学生数量" studentTotalCountAndCurrentTermCount.TotalCount = studentTotalCount studentTotalCountAndCurrentTermCount.CurrentTermAddCount = studentCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, studentTotalCountAndCurrentTermCount) c.JSON(http.StatusOK, Model.Res{ Success: true, List: TotalCountAndCurrentTermCountArr, }) } /** 功能:获取校级的基本信息统计 */ func GetSchoolBaseInfo(c *gin.Context) { schoolId := c.Query("schoolId") TotalCountAndCurrentTermCountArr := make([]SchoolModel.TotalCountAndCurrentTermCount, 0) var classTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount classTotalCount, err := SchoolService.GetClassTotalCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } classCurrentTermCount, err := SchoolService.GetClassCurrentTermAddCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } classTotalCountAndCurrentTermCount.Title = "班级数量" classTotalCountAndCurrentTermCount.TotalCount = classTotalCount classTotalCountAndCurrentTermCount.CurrentTermAddCount = classCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, classTotalCountAndCurrentTermCount) var orgTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount orgTotalCount, err := SchoolService.GetOrgTotalCount(schoolId, "3") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } orgCurrentTermCount, err := SchoolService.GetOrgCurrentTermAddCount(schoolId, "3") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } orgTotalCountAndCurrentTermCount.Title = "部门数量" orgTotalCountAndCurrentTermCount.TotalCount = orgTotalCount orgTotalCountAndCurrentTermCount.CurrentTermAddCount = orgCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, orgTotalCountAndCurrentTermCount) var teacherTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount teacherTotalCount, err := TeacherService.GetTeacherTotalCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherCurrentTermCount, err := TeacherService.GetTeacherCurrentTermAddCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } teacherTotalCountAndCurrentTermCount.Title = "教职工数量" teacherTotalCountAndCurrentTermCount.TotalCount = teacherTotalCount teacherTotalCountAndCurrentTermCount.CurrentTermAddCount = teacherCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, teacherTotalCountAndCurrentTermCount) var studentTotalCountAndCurrentTermCount SchoolModel.TotalCountAndCurrentTermCount studentTotalCount, err := StudentService.GetStudentTotalCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentCurrentTermCount, err := StudentService.GetStudentCurrentTermAddCount(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } studentTotalCountAndCurrentTermCount.Title = "学生数量" studentTotalCountAndCurrentTermCount.TotalCount = studentTotalCount studentTotalCountAndCurrentTermCount.CurrentTermAddCount = studentCurrentTermCount TotalCountAndCurrentTermCountArr = append(TotalCountAndCurrentTermCountArr, studentTotalCountAndCurrentTermCount) c.JSON(http.StatusOK, Model.Res{ Success: true, List: TotalCountAndCurrentTermCountArr, }) } /** 功能:根据学校ID获取该学校有哪些学段 */ func PageStageBySchoolId(c *gin.Context) { schoolId := c.Query("schoolId") resArr, err := SchoolService.PageStageBySchoolId(schoolId) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } c.JSON(http.StatusOK, Model.Res{ Success: true, List: resArr, }) } /** 功能:根据市获取各区的教辅单位个数 */ func GetEduAssistCountByCity(c *gin.Context) { areaType := c.Query("areaType") cityCode := c.Query("cityCode") //获取区信息 areaInfo, err := AreaService.PageDistrictByCityCode(cityCode, areaType) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } //生成区信息的数组 areaCodeArr := make([]string, 0) for i := range areaInfo { areaCodeArr = append(areaCodeArr, areaInfo[i].AreaCode) } resArr, err := SchoolService.AggsDistrictStatEduAssist(areaCodeArr) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } resArrByte, _ := json.Marshal(resArr) resList := CommonUtil.ConvertJsonStringToMapArray(string(resArrByte)) resMap := make(map[string]int) for i := 0; i < len(resList); i++ { areaCode := resList[i]["area_code"].(string) count := CommonUtil.ConvertStringToInt(resList[i]["count"].(string)) resMap[areaCode] = count } eduAssistCountArr := make([]SchoolModel.EduAssistCount, 0) for i := range areaInfo { var eduAssistCount SchoolModel.EduAssistCount areaCode := areaInfo[i].AreaCode areaName := areaInfo[i].AreaName eduAssistCount.AreaCode = areaCode eduAssistCount.AreaName = areaName if _, ok := resMap[areaCode]; ok { eduAssistCount.Count = resMap[areaCode] } eduAssistCountArr = append(eduAssistCountArr, eduAssistCount) } if areaType == "1" { cityDirectlyCount, err := SchoolService.GetCityDirectlyEduAssistCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } var eduAssistCount SchoolModel.EduAssistCount eduAssistCount.AreaCode = cityCode eduAssistCount.AreaName = "市直属" eduAssistCount.Count = cityDirectlyCount eduAssistCountArr = append(eduAssistCountArr, eduAssistCount) } c.JSON(http.StatusOK, Model.Res{ Success: true, List: eduAssistCountArr, }) } /** 功能:根据市获取各区的学校个数 */ func GetSchoolCountByCity(c *gin.Context) { areaType := c.Query("areaType") cityCode := c.Query("cityCode") xxbxlx := c.Query("xxbxlx") aggsXxbxlx := false if xxbxlx == "1" { aggsXxbxlx = true } //获取区信息 areaInfo, err := AreaService.PageDistrictByCityCode(cityCode, areaType) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } //生成区信息的数组 areaCodeArr := make([]string, 0) for i := range areaInfo { areaCodeArr = append(areaCodeArr, areaInfo[i].AreaCode) } resArr, err := SchoolService.AggsDistrictStatSchoolCount(areaCodeArr) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } resArrByte, _ := json.Marshal(resArr) resList := CommonUtil.ConvertJsonStringToMapArray(string(resArrByte)) resMap := make(map[string]int) for i := 0; i < len(resList); i++ { areaCode := resList[i]["area_code"].(string) count := CommonUtil.ConvertStringToInt(resList[i]["count"].(string)) resMap[areaCode] = count } //获取办学类型信息 xxbxlxInfo, err := DictService.GetDictInfo("xxbxlxm") if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } schoolCountArr := make([]SchoolModel.SchoolCount, 0) for i := range areaInfo { var schoolCount SchoolModel.SchoolCount areaCode := areaInfo[i].AreaCode areaName := areaInfo[i].AreaName schoolCount.AreaCode = areaCode schoolCount.AreaName = areaName if _, ok := resMap[areaCode]; ok { schoolCount.Count = resMap[areaCode] } xxbxlxArr := make([]SchoolModel.Xxbxlx, 0) if aggsXxbxlx { resArr, err := SchoolService.AggsXxbxlxStatSchoolCountByDistrictCode(areaCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } resArrByte, _ := json.Marshal(resArr) resList := CommonUtil.ConvertJsonStringToMapArray(string(resArrByte)) resMap := make(map[string]int) for i := 0; i < len(resList); i++ { areaCode := resList[i]["xxbxlxm"].(string) count := CommonUtil.ConvertStringToInt(resList[i]["count"].(string)) resMap[areaCode] = count } for j := range xxbxlxInfo { var xxbxlx SchoolModel.Xxbxlx dictCode := xxbxlxInfo[j].DictCode dictValue := xxbxlxInfo[j].DictValue xxbxlx.XxbxlxCode = dictCode xxbxlx.XxbxlxName = dictValue if _, ok := resMap[dictCode]; ok { xxbxlx.Count = resMap[dictCode] } xxbxlxArr = append(xxbxlxArr, xxbxlx) } } schoolCount.Xxbxlx = xxbxlxArr schoolCountArr = append(schoolCountArr, schoolCount) } if areaType == "1" { cityDirectlyCount, err := SchoolService.GetCityDirectlySchoolCount(cityCode) if err != nil { c.JSON(http.StatusOK, Model.Res{ Success: false, Message: err.Error(), }) return } var schoolCount SchoolModel.SchoolCount schoolCount.AreaCode = cityCode schoolCount.AreaName = "市直属" schoolCount.Count = cityDirectlyCount schoolCountArr = append(schoolCountArr, schoolCount) } schoolCountArrByte, _ := json.Marshal(schoolCountArr) schoolCountArrStr := string(schoolCountArrByte) if !aggsXxbxlx { schoolCountArrStr = CommonUtil.RemoveArrKey(schoolCountArrStr, "xxbxlx") } c.JSON(http.StatusOK, Model.Res{ Success: true, List: CommonUtil.ConvertJsonStringToMapArray(schoolCountArrStr), }) }