Merge branch 'master' of 10.10.14.250:huanghai/dsMin

master
huanghai 5 years ago
commit 43544e9d3d

@ -5,6 +5,9 @@ import (
"dsBigData/Business/Dict/DictService"
"dsBigData/Business/School/SchoolModel"
"dsBigData/Business/School/SchoolService"
"dsBigData/Business/Student/StudentService"
"dsBigData/Business/Teacher/TeacherDao"
"dsBigData/Business/Teacher/TeacherService"
"dsBigData/Model"
"dsBigData/Utils/CommonUtil"
"encoding/json"
@ -20,12 +23,334 @@ func Routers(r *gin.RouterGroup) {
rr.GET("/GetEduAssistCountByCity", GetEduAssistCountByCity)
rr.GET("/PageStageBySchoolId", PageStageBySchoolId)
rr.GET("/GetCityBaseInfo", GetCityBaseInfo)
rr.GET("/GetDistrictBaseInfo", GetDistrictBaseInfo)
rr.GET("/GetSchoolBaseInfo", GetSchoolBaseInfo)
return
}
func test(c *gin.Context) {
count, _ := TeacherDao.GetTeacherCurrentTermAddCount("150400")
c.JSON(http.StatusOK, Model.Res{
Success: true,
List: count,
})
}
/**
*/
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")

@ -7,6 +7,8 @@ import (
"encoding/json"
"github.com/olivere/elastic/v7"
"github.com/tidwall/gjson"
"strings"
"time"
)
var esClient = EsUtil.EsClient
@ -327,5 +329,140 @@ func PageStageBySchoolId(schoolId string) ([]SchoolModel.Stage, error) {
stageArr = append(stageArr, stage)
}
return stageArr, nil
}
/**
(ID)
*/
func GetOrgTotalCount(areaCode string, orgType string) (int, error) {
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
orgTypeTerm := elastic.NewTermQuery("data_content.org_type", orgType)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, orgTypeTerm, enableFlagTerm, delFlagTerm, bUseTerm)
result, err := esClient.Search().
Index("org_school").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}
/**
*/
func GetOrgCurrentTermAddCount(areaCode string, orgType string) (int, error) {
endYearStr := CommonUtil.ConvertIntToString(time.Now().Year())
month := CommonUtil.ConvertStringToInt32(time.Now().Format("1"))
monthStr := "08"
if month >= 3 && month <= 7 {
monthStr = "03"
}
createTime := endYearStr + "/" + monthStr + "/01 00:00:01"
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
orgTypeTerm := elastic.NewTermQuery("data_content.org_type", orgType)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
createTimeRang := elastic.NewRangeQuery("data_content.create_time").Gte(createTime)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, orgTypeTerm, enableFlagTerm, delFlagTerm, bUseTerm, createTimeRang)
result, err := esClient.Search().
Index("org_school").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}
/**
ID
*/
func GetClassTotalCount(schoolId string) (int, error) {
orgIdTerm := elastic.NewTermQuery("org_id", schoolId)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
boolQuery := elastic.NewBoolQuery().Must(orgIdTerm, enableFlagTerm, delFlagTerm, bUseTerm)
result, err := esClient.Search().
Index("org_class").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}
/**
ID
*/
func GetClassCurrentTermAddCount(schoolId string) (int, error) {
endYearStr := CommonUtil.ConvertIntToString(time.Now().Year())
month := CommonUtil.ConvertStringToInt32(time.Now().Format("1"))
monthStr := "08"
if month >= 3 && month <= 7 {
monthStr = "03"
}
createTime := endYearStr + "/" + monthStr + "/01 00:00:01"
orgIdTerm := elastic.NewTermQuery("org_id", schoolId)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
createTimeRang := elastic.NewRangeQuery("data_content.create_time").Gte(createTime)
boolQuery := elastic.NewBoolQuery().Must(orgIdTerm, enableFlagTerm, delFlagTerm, bUseTerm, createTimeRang)
result, err := esClient.Search().
Index("org_class").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}

@ -48,3 +48,9 @@ type Stage struct {
StageId string `json:"stage_id"`
StageName string `json:"stage_name"`
}
type TotalCountAndCurrentTermCount struct {
Title string `json:"title"`
TotalCount int `json:"total_count"`
CurrentTermAddCount int `json:"current_term_add_count"`
}

@ -52,3 +52,23 @@ func PageStageBySchoolId(schoolId string) ([]SchoolModel.Stage, error) {
arr, err := SchoolDao.PageStageBySchoolId(schoolId)
return arr, err
}
func GetOrgTotalCount(areaCode string, orgType string) (int, error) {
count, err := SchoolDao.GetOrgTotalCount(areaCode, orgType)
return count, err
}
func GetOrgCurrentTermAddCount(areaCode string, orgType string) (int, error) {
count, err := SchoolDao.GetOrgCurrentTermAddCount(areaCode, orgType)
return count, err
}
func GetClassTotalCount(schoolId string) (int, error) {
count, err := SchoolDao.GetClassTotalCount(schoolId)
return count, err
}
func GetClassCurrentTermAddCount(schoolId string) (int, error) {
count, err := SchoolDao.GetClassCurrentTermAddCount(schoolId)
return count, err
}

@ -7,6 +7,7 @@ import (
"encoding/json"
"github.com/olivere/elastic/v7"
"github.com/tidwall/gjson"
"strings"
"time"
)
@ -196,3 +197,79 @@ func GetStudentCountAggsRxnf(schoolId string, stageId string) ([]StudentModel.St
}
return studentCountRxnfArr, nil
}
/**
(ID)
*/
func GetStudentTotalCount(areaCode string) (int, error) {
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, enableFlagTerm, delFlagTerm, bUseTerm)
result, err := esClient.Search().
Index("user_student").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}
/**
(ID)
*/
func GetStudentCurrentTermAddCount(areaCode string) (int, error) {
endYearStr := CommonUtil.ConvertIntToString(time.Now().Year())
month := CommonUtil.ConvertStringToInt32(time.Now().Format("1"))
monthStr := "08"
if month >= 3 && month <= 7 {
monthStr = "03"
}
createTime := endYearStr + "/" + monthStr + "/01 00:00:01"
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
createTimeRang := elastic.NewRangeQuery("data_content.create_time").Gte(createTime)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, enableFlagTerm, delFlagTerm, bUseTerm, createTimeRang)
result, err := esClient.Search().
Index("user_student").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}

@ -24,3 +24,13 @@ func GetStudentCountAggsXb(schoolId string) ([]StudentModel.StudentCountXb, erro
arr, err := StudentDao.GetStudentCountAggsXb(schoolId)
return arr, err
}
func GetStudentTotalCount(areaCode string) (int, error) {
count, err := StudentDao.GetStudentTotalCount(areaCode)
return count, err
}
func GetStudentCurrentTermAddCount(areaCode string) (int, error) {
count, err := StudentDao.GetStudentCurrentTermAddCount(areaCode)
return count, err
}

@ -7,6 +7,8 @@ import (
"encoding/json"
"github.com/olivere/elastic/v7"
"github.com/tidwall/gjson"
"strings"
"time"
)
var esClient = EsUtil.EsClient
@ -183,3 +185,81 @@ func GetTeacherCountAggsBzlb(schoolId string, bzlbs []string) ([]TeacherModel.Te
}
return teacherCountAggsBzlbArr, nil
}
/**
(ID)
*/
func GetTeacherTotalCount(areaCode string) (int, error) {
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
orgTypeTerm := elastic.NewTermQuery("data_content.identity_id", 5)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, orgTypeTerm, enableFlagTerm, delFlagTerm, bUseTerm)
result, err := esClient.Search().
Index("user_teacher").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}
/**
(ID)
*/
func GetTeacherCurrentTermAddCount(areaCode string) (int, error) {
endYearStr := CommonUtil.ConvertIntToString(time.Now().Year())
month := CommonUtil.ConvertStringToInt32(time.Now().Format("1"))
monthStr := "08"
if month >= 3 && month <= 7 {
monthStr = "03"
}
createTime := endYearStr + "/" + monthStr + "/01 00:00:01"
var areaCodeTerm *elastic.TermQuery
if len(areaCode) == 6 {
if strings.HasSuffix(areaCode, "00") { //市
areaCodeTerm = elastic.NewTermQuery("city_code", areaCode)
} else { //区
areaCodeTerm = elastic.NewTermQuery("district_code", areaCode)
}
} else {
areaCodeTerm = elastic.NewTermQuery("org_id", areaCode)
}
orgTypeTerm := elastic.NewTermQuery("data_content.identity_id", 5)
enableFlagTerm := elastic.NewTermQuery("enable_flag", 1)
delFlagTerm := elastic.NewTermQuery("del_flag", 0)
bUseTerm := elastic.NewTermQuery("data_content.b_use", 1)
createTimeRang := elastic.NewRangeQuery("data_content.create_time").Gte(createTime)
boolQuery := elastic.NewBoolQuery().Must(areaCodeTerm, orgTypeTerm, enableFlagTerm, delFlagTerm, bUseTerm, createTimeRang)
result, err := esClient.Search().
Index("user_teacher").
Query(boolQuery).
TrackTotalHits(true).
Do(CTX)
if err != nil {
return 0, err
}
return int(result.TotalHits()), nil
}

@ -24,3 +24,13 @@ func GetTeacherCountAggsXb(schoolId string) ([]TeacherModel.TeacherCountXb, erro
arr, err := TeacherDao.GetTeacherCountAggsXb(schoolId)
return arr, err
}
func GetTeacherTotalCount(areaCode string) (int, error) {
count, err := TeacherDao.GetTeacherTotalCount(areaCode)
return count, err
}
func GetTeacherCurrentTermAddCount(areaCode string) (int, error) {
count, err := TeacherDao.GetTeacherCurrentTermAddCount(areaCode)
return count, err
}

@ -1,32 +0,0 @@
package CommonUtil
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"os"
)
var swaggerFile = "docs/swagger.json"
/**
swaggerjson
2020-03-16
*/
func ReadSwaggerJson() interface{} {
//读取doc目录下的swagger.json
f, err := os.Open(swaggerFile)
if err != nil {
log.Fatal("读取swagger.json失败")
return nil
}
content, _ := ioutil.ReadAll(f)
var jsonBody interface{}
err = json.Unmarshal(content, &jsonBody)
if err != nil {
fmt.Println("ERROR: ", err.Error())
return nil
}
return jsonBody
}

@ -1,7 +0,0 @@
package CookieUtil
import "github.com/gin-gonic/gin"
func (c *gin.Context) GetString() string {
}

@ -1,178 +0,0 @@
package SsoUtil
import (
"dsBigData/Utils/ConfigUtil"
"dsBigData/Utils/RedisUtil"
"encoding/base64"
"github.com/gin-gonic/gin"
"github.com/gomodule/redigo/redis"
"github.com/sirupsen/logrus"
"strconv"
"strings"
)
/**
2020-02-22
*/
func IsAuthority(c *gin.Context) (bool, string) {
//检查Header头中是不是存在ds_sso_sessionid,就是说如果客户端不支持Cookie(比如手机)可以在Header中构建ds_sso_sessionid
sessionId := ""
//从 Header中获取会话ID
sessionId = c.Request.Header.Get(ConfigUtil.SessionId)
//如果没有找到,就到 cookie里继续寻找
if len(sessionId) == 0 {
cookie, e := c.Request.Cookie(ConfigUtil.SessionId)
if e == nil { //如果成功获取到的话
sessionId = cookie.Value
}
}
//如果两个位置都没有找到
if len(sessionId) == 0 {
return false, ""
} else { //有这个值,判断一下是不是正确
_map := RedisUtil.HGETALL(ConfigUtil.SessionId + "_" + sessionId)
if len(_map) == 0 {
//清除非法cookie资料参考https://www.tizi365.com/archives/273.html
c.SetCookie(ConfigUtil.SessionId, "", -1, "/", "", false, true)
return false, sessionId
} else {
return true, sessionId
}
}
}
/**
2020-02-25
*/
func IsLoginStatus(username string) (bool, string) {
var value = ""
var r = true
value, err := redis.String(RedisUtil.GET(ConfigUtil.SearchSessionIdPrefix + username))
if err != nil {
r = false
}
return r, value
}
/**
2020-02-22
*/
func WriteSsoInfo(c *gin.Context, device string, identityId int64, personId int64, username string, personName string, dsSsoSessionid string) {
//下面应该是双向的redis存储1通过登录名能找到对应的会话ID2通过会话ID可以解析出是哪种设备哪个身份哪个人员ID
//一、写入登录名与会话的对应关系,由四部分组成,前缀+设备类型+身份+人员编号,通过这个键值可以查找到对应的会话
SearchSsoKey := ConfigUtil.SearchSessionIdPrefix + "_" + device + "_" + strconv.FormatInt(identityId, 10) + "_" + strconv.FormatInt(personId, 10)
//写入redis
RedisUtil.SET(SearchSsoKey, ConfigUtil.SessionId+"_"+dsSsoSessionid)
//加上过期时间
RedisUtil.EXPIRE(SearchSsoKey)
//二、写入SESSION_ID
_map := make(map[string]interface{})
_map["device"] = device
_map["identity_id"] = identityId
_map["person_id"] = personId
_map["username"] = username
_map["person_name"] = personName
RedisUtil.HMSET(ConfigUtil.SessionId+"_"+dsSsoSessionid, _map)
//加上过期时间
RedisUtil.EXPIRE(ConfigUtil.SessionId + "_" + dsSsoSessionid)
//三、写入主域的COOKIE值
c.SetCookie(ConfigUtil.SessionId, dsSsoSessionid, 0, "/", "", false, true)
}
/**
: cookie+redis
2020-02-22
*/
func ClearSsoInfo(sessionId string, c *gin.Context) string {
//一、删除人员与 sessionId的映射关系
DeletePersonSessionReleation(sessionId)
//二、删除redis中的会话id
DeleteSessionId(sessionId)
//三、清除cookie
deleteSsoCookie(c)
return sessionId
}
/**
2020-02-25
*/
func DeletePersonSessionReleation(sessionId string) {
//一、删除人员与 sessionId的映射关系
var identityId = -1
var personId = -1
var deviceId = -1
deviceId, identityId, personId = AnalyzeSessionId(sessionId) //通过会话ID获取到人员的信息
//删除人员与会话的对应关系
SearchSsoKey := ConfigUtil.SearchSessionIdPrefix + "_" + strconv.Itoa(deviceId) + "_" + strconv.Itoa(identityId) + "_" + strconv.Itoa(personId)
RedisUtil.DEL(SearchSsoKey)
}
/**
SessionIdID
2020-02-25
*/
func AnalyzeSessionId(sessionId string) (int, int, int) {
var identityId = -1
var personId = -1
var deviceId = -1
r, err := base64.RawURLEncoding.DecodeString(sessionId)
if err != nil {
logrus.Errorln(err)
} else {
s := string(r)
array := strings.Split(s, "_")
if len(array) > 1 {
deviceId, _ = strconv.Atoi(array[0])
identityId, _ = strconv.Atoi(array[1])
personId, _ = strconv.Atoi(array[2])
}
}
return deviceId, identityId, personId
}
/**
redisid
2020-02-25
*/
func DeleteSessionId(sessionId string) {
//删除redis中的记录
RedisUtil.DEL(ConfigUtil.SessionId + "_" + sessionId)
}
/**
cookie
2020-02-22
*/
func ReadSsoCookie(c *gin.Context) string {
cookie, e := c.Request.Cookie(ConfigUtil.SessionId)
if e == nil {
return cookie.Value
} else {
return ""
}
}
/**
cookie
2020-02-22
*/
func deleteSsoCookie(c *gin.Context) {
c.SetCookie(ConfigUtil.SessionId, "", -1, "/", "", false, true)
}

Binary file not shown.

@ -3,7 +3,6 @@ module dsBigData
go 1.14
require (
github.com/0x5010/grpcp v0.0.0-20180912032145-6d4772332891
github.com/Chronokeeper/anyxml v0.0.0-20160530174208-54457d8e98c6 // indirect
github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 // indirect
github.com/CloudyKit/jet v2.1.2+incompatible // indirect

Loading…
Cancel
Save