Browse Source

修改统一登录

qin_1
超级管理员 4 years ago
parent
commit
a8cde13aa1
  1. 6
      gin_server_admin/api/admin/dutyassess/assess.go
  2. 6
      gin_server_admin/api/admin/dutyassess/assesstype.go
  3. 14
      gin_server_admin/api/admin/dutyassess/dutyes.go
  4. 3
      gin_server_admin/api/admin/dutyassess/dutyhandle.go
  5. 10
      gin_server_admin/api/index/assessment/assesshandle.go
  6. 22
      gin_server_admin/api/index/evaluation/evaluation.go
  7. 56
      gin_server_admin/api/index/evaluation/flowsend.go
  8. 9
      gin_server_admin/api/v1/assessment/target.go
  9. 183
      gin_server_admin/api/v1/custom/customhandle.go
  10. 75
      gin_server_admin/api/v1/staff/staffpeople.go
  11. 8
      gin_server_admin/api/v1/staff/stafftype.go
  12. 122
      gin_server_admin/commonus/publichaneld.go
  13. 22
      gin_server_admin/commonus/weChatDateType.go
  14. 4
      gin_server_admin/config.yaml
  15. 1
      gin_server_admin/config/config.go
  16. 1
      gin_server_admin/core/server.go
  17. 5
      gin_server_admin/global/global.go
  18. 25
      gin_server_admin/global/model.go
  19. 16
      gin_server_admin/initialize/redis.go
  20. 6
      gin_server_admin/initialize/router.go
  21. 254
      gin_server_admin/middleware/myjwt.go
  22. 4
      gin_server_admin/model/assessmentmodel/dutyclass.go
  23. 2
      gin_server_admin/model/hrsystem/administrative_organization.go
  24. 26
      gin_server_admin/model/hrsystem/double_worker.go
  25. 23
      gin_server_admin/model/hrsystem/emergency_contact.go
  26. 26
      gin_server_admin/model/hrsystem/family_members.go
  27. 12
      gin_server_admin/model/hrsystem/menu_operation.go
  28. 54
      gin_server_admin/model/hrsystem/personnel.go
  29. 27
      gin_server_admin/model/hrsystem/personnel_change_record.go
  30. 46
      gin_server_admin/model/hrsystem/personnel_content.go
  31. 26
      gin_server_admin/model/hrsystem/personnel_education.go
  32. 3
      gin_server_admin/model/hrsystem/position.go
  33. 21
      gin_server_admin/model/hrsystem/position_level.go
  34. 48
      gin_server_admin/model/hrsystem/system_nenu.go
  35. 26
      gin_server_admin/model/testpage/myuser.go
  36. 1
      gin_server_admin/router/system/sys_base.go
  37. 2
      gin_server_admin/utils/redishandel/myredis.go
  38. 4
      gin_server_admin/其他支持文件/config.yaml

6
gin_server_admin/api/admin/dutyassess/assess.go

@ -646,7 +646,7 @@ func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) {
} }
//获取所有子栏目 //获取所有子栏目
var sunTargetId []int64 var sunTargetId []int64
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).Find(&sunTargetId) global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Select("suntargetid").Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).Find(&sunTargetId)
saveData := commonus.MapOut() saveData := commonus.MapOut()
saveData["departmentmap"] = strings.Join(requestData.DepartAry, ",") saveData["departmentmap"] = strings.Join(requestData.DepartAry, ",")
@ -656,7 +656,7 @@ func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) {
response.Result(106, delErr, "编辑失败!", c) response.Result(106, delErr, "编辑失败!", c)
return return
} }
//修改相关子类 // //修改相关子类
if len(sunTargetId) > 0 { if len(sunTargetId) > 0 {
saveDataSun := commonus.MapOut() saveDataSun := commonus.MapOut()
saveDataSun["q_depart"] = strings.Join(requestData.DepartAry, ",") saveDataSun["q_depart"] = strings.Join(requestData.DepartAry, ",")
@ -664,5 +664,5 @@ func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) {
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` IN ?", sunTargetId).Updates(saveDataSun) global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` IN ?", sunTargetId).Updates(saveDataSun)
} }
response.Result(0, delErr, "编辑成功!", c) response.Result(0, sunTargetId, "编辑成功!", c)
} }

6
gin_server_admin/api/admin/dutyassess/assesstype.go

@ -245,7 +245,7 @@ type OutTargetCont struct {
Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年
CycleAttres int `json:"cycleattr"` //辅助计数 CycleAttres int `json:"cycleattr"` //辅助计数
CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
CensorCont string `json:"censorcont"` //检查依据 CensorCont string `json:"censorcont"` //检查依据
CensorRate int `json:"censorrate"` //检查频次 CensorRate int `json:"censorrate"` //检查频次
} }
@ -262,7 +262,7 @@ type GetEiteTargetCont struct {
Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年
CycleAttres int `json:"cycleattr"` //辅助计数 CycleAttres int `json:"cycleattr"` //辅助计数
CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
CensorCont string `json:"censorcont"` //检查依据 CensorCont string `json:"censorcont"` //检查依据
CensorRate int `json:"censorrate"` //检查频次 CensorRate int `json:"censorrate"` //检查频次
} }
@ -294,7 +294,7 @@ type QualEvalSunList struct {
MinScore int64 `json:"minscore"` //最小分*100保存 MinScore int64 `json:"minscore"` //最小分*100保存
MaxScore int64 `json:"maxscore"` //最大分*100保存 MaxScore int64 `json:"maxscore"` //最大分*100保存
AddOrReduce int `json:"addorreduce"` //1:减少;2:增加 AddOrReduce int `json:"addorreduce"` //1:减少;2:增加
CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
CensorCont string `json:"censorcont"` //检查依据 CensorCont string `json:"censorcont"` //检查依据
CensorRate int `json:"censorrate"` //检查频次 CensorRate int `json:"censorrate"` //检查频次
} }

14
gin_server_admin/api/admin/dutyassess/dutyes.go

@ -84,8 +84,8 @@ func JudgeDetailsCopyEs(ascription string, sunTargetId int64, detailedTarget Qua
eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres
} }
if detailedTarget.CensorType != 0 { if len(detailedTarget.CensorType) > 0 {
eiteCont["dt_censor_type"] = detailedTarget.CensorType eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",")
} }
eiteCont["dt_censor_cont"] = detailedTarget.CensorCont eiteCont["dt_censor_cont"] = detailedTarget.CensorCont
if detailedTarget.CensorRate != 0 { if detailedTarget.CensorRate != 0 {
@ -121,8 +121,8 @@ func JudgeDetailsCopyEs(ascription string, sunTargetId int64, detailedTarget Qua
eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres
} }
if detailedTarget.CensorType != 0 { if len(detailedTarget.CensorType) > 0 {
eiteCont["dt_censor_type"] = detailedTarget.CensorType eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",")
} }
eiteCont["dt_censor_cont"] = detailedTarget.CensorCont eiteCont["dt_censor_cont"] = detailedTarget.CensorCont
if detailedTarget.CensorRate != 0 { if detailedTarget.CensorRate != 0 {
@ -166,10 +166,10 @@ func JudgeDetailsCopyEs(ascription string, sunTargetId int64, detailedTarget Qua
} else { } else {
saveColumEs.AddReduce = 1 saveColumEs.AddReduce = 1
} }
if detailedTarget.CensorType > 0 { if len(detailedTarget.CensorType) > 0 {
saveColumEs.CensorType = detailedTarget.CensorType saveColumEs.CensorType = strings.Join(detailedTarget.CensorType, ",")
} else { } else {
saveColumEs.CensorType = 1 saveColumEs.CensorType = "1"
} }
saveColumEs.CensorCont = detailedTarget.CensorCont saveColumEs.CensorCont = detailedTarget.CensorCont
if detailedTarget.CensorRate > 0 { if detailedTarget.CensorRate > 0 {

3
gin_server_admin/api/admin/dutyassess/dutyhandle.go

@ -1094,7 +1094,8 @@ func (d *DutyAssessApi) GetNewEiteDetailedTarget(c *gin.Context) {
outPutCont.Cycles = cont.Cycles outPutCont.Cycles = cont.Cycles
outPutCont.CycleAttres = cont.CycleAttres outPutCont.CycleAttres = cont.CycleAttres
outPutCont.CensorType = cont.CensorType cenType := strings.Split(cont.CensorType, ",")
outPutCont.CensorType = cenType
outPutCont.CensorCont = cont.CensorCont outPutCont.CensorCont = cont.CensorCont
outPutCont.CensorRate = cont.CensorRate outPutCont.CensorRate = cont.CensorRate
//单位 //单位

10
gin_server_admin/api/index/assessment/assesshandle.go

@ -104,7 +104,7 @@ func (a *Assessment) MyAssEssMentList(c *gin.Context) {
return return
} }
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize) offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("(`dc_user_dump` = ? OR `dc_dump` = ?) AND `dc_state` = 1", userCont.Key, userCont.DepartmentId) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("(`dc_user_dump` = ? OR `dc_dump` = ?) AND `dc_state` = 1", userCont.Key, userCont.Deparment)
var total int64 var total int64
totalErr := gormDb.Count(&total).Error totalErr := gormDb.Count(&total).Error
@ -662,7 +662,7 @@ func (a *Assessment) DepartmentAssess(c *gin.Context) {
} }
if requestData.GroupId == 0 { if requestData.GroupId == 0 {
groupId, groupErr := strconv.Atoi(userCont.Group) groupId, groupErr := strconv.Atoi(userCont.Company)
if groupErr == nil { if groupErr == nil {
requestData.GroupId = groupId requestData.GroupId = groupId
} else { } else {
@ -686,7 +686,7 @@ func (a *Assessment) DepartmentAssess(c *gin.Context) {
monthData = commonus.TimeStampToDate(dayTime.Unix(), 10) //当月 monthData = commonus.TimeStampToDate(dayTime.Unix(), 10) //当月
} }
var ContInfo []departAssessOutType var ContInfo []departAssessOutType
departErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartDuty{}).Select("departduty.*", "dutycontent.dc_title", "dutycontent.dc_state", "dutycontent.dc_user_dump", "dutycontent.dc_dump", "dutycontent.dc_user_type", "dutycontent.dc_parent").Joins("left join dutycontent on departduty.de_duty = dutycontent.dc_id").Where("(`de_partid` = ? AND `de_group` = ? AND `de_satte` = 1) AND ((`dc_user_dump` = ? OR `dc_dump` = ?) AND `dc_state` = 1)", requestData.DepartmentId, requestData.GroupId, userCont.Key, userCont.DepartmentId).Find(&ContInfo).Error departErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartDuty{}).Select("departduty.*", "dutycontent.dc_title", "dutycontent.dc_state", "dutycontent.dc_user_dump", "dutycontent.dc_dump", "dutycontent.dc_user_type", "dutycontent.dc_parent").Joins("left join dutycontent on departduty.de_duty = dutycontent.dc_id").Where("(`de_partid` = ? AND `de_group` = ? AND `de_satte` = 1) AND ((`dc_user_dump` = ? OR `dc_dump` = ?) AND `dc_state` = 1)", requestData.DepartmentId, requestData.GroupId, userCont.Key, userCont.Deparment).Find(&ContInfo).Error
if departErr != nil { if departErr != nil {
response.Result(105, err, "没有要考核的项目!", c) response.Result(105, err, "没有要考核的项目!", c)
return return
@ -1046,7 +1046,7 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) {
response.Result(103, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(103, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
departmentID, departmentIDErr := strconv.ParseInt(userInfo.DepartmentId, 10, 64) departmentID, departmentIDErr := strconv.ParseInt(userInfo.Deparment, 10, 64)
if departmentIDErr != nil { if departmentIDErr != nil {
response.Result(104, err, "参数错误!请重新提交!", c) response.Result(104, err, "参数错误!请重新提交!", c)
return return
@ -1055,7 +1055,7 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) {
maxErr, maxCont := commonus.GetPositionMaxWeight(departmentID) maxErr, maxCont := commonus.GetPositionMaxWeight(departmentID)
// fmt.Printf("最大值:======>%v======>%v\n", maxErr, maxCont) // fmt.Printf("最大值:======>%v======>%v\n", maxErr, maxCont)
if maxErr == true { if maxErr == true {
postID, postIDErr := strconv.ParseInt(userInfo.PostId, 10, 64) postID, postIDErr := strconv.ParseInt(userInfo.Position, 10, 64)
if postIDErr == nil { if postIDErr == nil {
if maxCont.Id == postID { if maxCont.Id == postID {
gormDb = gormDb.Where("`al_executor_depart` = ?", departmentID) gormDb = gormDb.Where("`al_executor_depart` = ?", departmentID)

22
gin_server_admin/api/index/evaluation/evaluation.go

@ -163,7 +163,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
addScore.Time = operationTime addScore.Time = operationTime
addScore.EiteTime = operationTime addScore.EiteTime = operationTime
addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime)
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr == nil { if departmentIdErr == nil {
addScore.EvaluationDepartment = departmentId addScore.EvaluationDepartment = departmentId
} }
@ -171,7 +171,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
if userKeyErr == nil { if userKeyErr == nil {
addScore.EvaluationUser = userKey addScore.EvaluationUser = userKey
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr == nil { if userGroupErr == nil {
addScore.EvaluationGroup = userGroup addScore.EvaluationGroup = userGroup
} }
@ -363,7 +363,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
var saveDataCont assessmentmodel.DivisionResponsibilities var saveDataCont assessmentmodel.DivisionResponsibilities
saveDataCont.ScoreFlow = orderId saveDataCont.ScoreFlow = orderId
saveDataCont.Type = v.Type saveDataCont.Type = v.Type
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr == nil { if departmentIdErr == nil {
saveDataCont.EvaluationDepartment = departmentId saveDataCont.EvaluationDepartment = departmentId
} }
@ -371,7 +371,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
if userKeyErr == nil { if userKeyErr == nil {
saveDataCont.EvaluationUser = userKey saveDataCont.EvaluationUser = userKey
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr == nil { if userGroupErr == nil {
saveDataCont.EvaluationGroup = userGroup saveDataCont.EvaluationGroup = userGroup
} }
@ -545,7 +545,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
// } // }
// } // }
subtitle := "责任划分" subtitle := "责任划分"
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr != nil { if departmentIdErr != nil {
departmentId = 1 departmentId = 1
} }
@ -590,12 +590,12 @@ func (e *EvaluationInterface) AddCorrectiveMeasures(c *gin.Context) {
response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr != nil { if departmentIdErr != nil {
response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr != nil { if userGroupErr != nil {
response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
@ -820,8 +820,8 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
//获取实际值 //获取实际值
shiJiZhi := commonus.MapOut() shiJiZhi := commonus.MapOut()
shiJiZhi["fl_evaluation_user"] = userCont.Key shiJiZhi["fl_evaluation_user"] = userCont.Key
shiJiZhi["fl_evaluation_department"] = userCont.DepartmentId shiJiZhi["fl_evaluation_department"] = userCont.Deparment
shiJiZhi["fl_evaluation_group"] = userCont.Group shiJiZhi["fl_evaluation_group"] = userCont.Company
operationTime := time.Now().Unix() operationTime := time.Now().Unix()
switch v.Cycles { switch v.Cycles {
@ -907,12 +907,12 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr != nil { if departmentIdErr != nil {
response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr != nil { if userGroupErr != nil {
response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return

56
gin_server_admin/api/index/evaluation/flowsend.go

@ -93,7 +93,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
addScore.EiteTime = operationTime addScore.EiteTime = operationTime
addScore.Count = countFrequency //发生次数 addScore.Count = countFrequency //发生次数
addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) //发生时间 addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) //发生时间
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr == nil { if departmentIdErr == nil {
addScore.EvaluationDepartment = departmentId //测评部门 addScore.EvaluationDepartment = departmentId //测评部门
} }
@ -101,7 +101,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
if userKeyErr == nil { if userKeyErr == nil {
addScore.EvaluationUser = userKey //测评人 addScore.EvaluationUser = userKey //测评人
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr == nil { if userGroupErr == nil {
addScore.EvaluationGroup = userGroup //测评集团 addScore.EvaluationGroup = userGroup //测评集团
} }
@ -131,7 +131,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
//给发起人部门负责人发送消息 //给发起人部门负责人发送消息
//1、获取发起人部门负责人 //1、获取发起人部门负责人
founderDepartId, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) founderDepartId, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, founderDepartId) //获取对应部门负责人 sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, founderDepartId) //获取对应部门负责人
if sendUserIsTrue != true { if sendUserIsTrue != true {
// global.GVA_DB_Performanceappraisal.Where("`sf_id` = ?", addScore.Id).Delete(&assessmentmodel.ScoreFlow{}) // global.GVA_DB_Performanceappraisal.Where("`sf_id` = ?", addScore.Id).Delete(&assessmentmodel.ScoreFlow{})
@ -141,7 +141,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
//判断发起人是否为部门负责人 //判断发起人是否为部门负责人
myIsTrue := 1 myIsTrue := 1
for _, v := range sendUserList { for _, v := range sendUserList {
if v == userCont.WechatId || v == userCont.WorkWechatId { if v == userCont.Wechat {
myIsTrue = 2 myIsTrue = 2
} }
} }
@ -196,18 +196,11 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
var twoLevelKeyValue string = "" var twoLevelKeyValue string = ""
var twoLevelUserId string = "" var twoLevelUserId string = ""
//获取操作人 //获取操作人
if userCont.WechatId != "" { if userCont.Wechat != "" {
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.WechatId) userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat)
if userWechatErr == true { if userWechatErr == true {
twoLevelKeyValue = userWechat.Name twoLevelKeyValue = userWechat.Name
twoLevelUserId = userCont.WechatId twoLevelUserId = userCont.Wechat
}
}
if userCont.WorkWechatId != "" {
userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.WorkWechatId)
if userWechatErr == true {
twoLevelKeyValue = userWechat.Name
twoLevelUserId = userCont.WorkWechatId
} }
} }
@ -235,7 +228,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
commonus.StepAddDataEs(keyNumber, 16182159043990656, 2, 1, 1, 2, 1, userCont.Key, requestData.Enclosure) commonus.StepAddDataEs(keyNumber, 16182159043990656, 2, 1, 1, 2, 1, userCont.Key, requestData.Enclosure)
//申请人不是是部门负责人 给本部门负责人发送审批 //申请人不是是部门负责人 给本部门负责人发送审批
//获取发起人部门负责人 //获取发起人部门负责人
departmentIdInts, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentIdInts, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
_, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, departmentIdInts) //获取对应部门负责人 _, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, departmentIdInts) //获取对应部门负责人
sendUserStr := strings.Join(sendUserList, "|") sendUserStr := strings.Join(sendUserList, "|")
//按钮 //按钮
@ -353,7 +346,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
var saveDataCont assessmentmodel.DivisionResponsibilities var saveDataCont assessmentmodel.DivisionResponsibilities
saveDataCont.ScoreFlow = orderId //流程Key saveDataCont.ScoreFlow = orderId //流程Key
saveDataCont.Type = v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任) saveDataCont.Type = v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任)
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr == nil { if departmentIdErr == nil {
saveDataCont.EvaluationDepartment = departmentId //测评人部门 saveDataCont.EvaluationDepartment = departmentId //测评人部门
} }
@ -361,7 +354,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
if userKeyErr == nil { if userKeyErr == nil {
saveDataCont.EvaluationUser = userKey //测评人 saveDataCont.EvaluationUser = userKey //测评人
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr == nil { if userGroupErr == nil {
saveDataCont.EvaluationGroup = userGroup //测评人集团 saveDataCont.EvaluationGroup = userGroup //测评人集团
} }
@ -435,7 +428,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
var saveDataContTeam assessmentmodel.DivisionResponsibilities var saveDataContTeam assessmentmodel.DivisionResponsibilities
saveDataContTeam.ScoreFlow = orderId //流程Key saveDataContTeam.ScoreFlow = orderId //流程Key
saveDataContTeam.Type = t_v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任) saveDataContTeam.Type = t_v.Type //责任类型(1、主要责任人;2、互保责任人;3、责任班组;4、责任班组长;5、主管;6、三大员;7、厂长、主任)
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr == nil { if departmentIdErr == nil {
saveDataContTeam.EvaluationDepartment = departmentId //测评人部门 saveDataContTeam.EvaluationDepartment = departmentId //测评人部门
} }
@ -443,7 +436,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
if userKeyErr == nil { if userKeyErr == nil {
saveDataContTeam.EvaluationUser = userKey //测评人 saveDataContTeam.EvaluationUser = userKey //测评人
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr == nil { if userGroupErr == nil {
saveDataContTeam.EvaluationGroup = userGroup //测评人集团 saveDataContTeam.EvaluationGroup = userGroup //测评人集团
} }
@ -534,18 +527,13 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
// } // }
//部门名称 //部门名称
var twoLevelKeyName string = "" var twoLevelKeyName string = ""
departmentId, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
execDerpatErr, execDerpat := commonus.GetBranchFactory(departmentId) execDerpatErr, execDerpat := commonus.GetBranchFactory(departmentId)
if execDerpatErr == true { if execDerpatErr == true {
twoLevelKeyName = execDerpat.Name twoLevelKeyName = execDerpat.Name
} }
var twoLevelUserId string = "" twoLevelUserId := userCont.Wechat
if userCont.WechatId != "" {
twoLevelUserId = userCont.WechatId
}
if userCont.WorkWechatId != "" {
twoLevelUserId = userCont.WorkWechatId
}
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderId) cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderId)
// 按钮 // 按钮
var buttonMap []sendmessage.ButtonListtype var buttonMap []sendmessage.ButtonListtype
@ -593,12 +581,12 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64)
if departmentIdErr != nil { if departmentIdErr != nil {
response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64)
if userGroupErr != nil { if userGroupErr != nil {
response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
@ -676,7 +664,7 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
向本部门负责人发送审批 向本部门负责人发送审批
*/ */
//确定相关责任人 //确定相关责任人
departmentIdInts, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) departmentIdInts, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, departmentIdInts) //获取对应部门负责人 sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, departmentIdInts) //获取对应部门负责人
sendUserStr := strings.Join(sendUserList, "|") sendUserStr := strings.Join(sendUserList, "|")
taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10) //卡片唯一识别符 taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10) //卡片唯一识别符
@ -717,13 +705,7 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
if execDerpatErr == true { if execDerpatErr == true {
twoLevelKeyName = execDerpat.Name twoLevelKeyName = execDerpat.Name
} }
var twoLevelUserId string = "" twoLevelUserId := userCont.Wechat
if userCont.WechatId != "" {
twoLevelUserId = userCont.WechatId
}
if userCont.WorkWechatId != "" {
twoLevelUserId = userCont.WorkWechatId
}
cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", requestData.OrderId) cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", requestData.OrderId)
// 按钮 // 按钮

9
gin_server_admin/api/v1/assessment/target.go

@ -519,6 +519,15 @@ func (d *DutyHandle) EiteTarget(c *gin.Context) {
if roleIsTrue != true { if roleIsTrue != true {
response.Result(106, roleErr, "编辑失败!", c) response.Result(106, roleErr, "编辑失败!", c)
} else { } else {
assTarEite := commonus.MapOut()
assTarEite["departmentmap"] = saveData["et_relevant_departments"]
assTarEite["time"] = time.Now().Unix()
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`targetid` = ?", requestData.Id).Updates(assTarEite)
qualTarEite := commonus.MapOut()
qualTarEite["q_depart"] = saveData["et_relevant_departments"]
qualTarEite["q_time"] = time.Now().Unix()
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_parent_id` = ?", requestData.Id).Updates(qualTarEite)
response.Result(0, saveData, "编辑成功!", c) response.Result(0, saveData, "编辑成功!", c)
} }
} }

183
gin_server_admin/api/v1/custom/customhandle.go

@ -11,6 +11,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request" systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
roleModel "github.com/flipped-aurora/gin-vue-admin/server/model/systemuser"
"github.com/flipped-aurora/gin-vue-admin/server/utils" "github.com/flipped-aurora/gin-vue-admin/server/utils"
"github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel" "github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel"
@ -168,7 +169,7 @@ func (cu *CustomHandle) SystemLogin(c *gin.Context) {
redisAdminClient.SetRedisTime(0) redisAdminClient.SetRedisTime(0)
redisAdminClient.HashMsetAdd("system:SystemAdminInfo_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+user.KeyStr, adminRedisData) redisAdminClient.HashMsetAdd("system:SystemAdminInfo_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+user.KeyStr, adminRedisData)
global.GVA_ADMIN_USERKEY = user.Key global.GVA_ADMIN_USERKEY = strconv.FormatInt(user.Key, 10)
// // b.tokenNext(c, *user) // // b.tokenNext(c, *user)
var surisdictionStr []string var surisdictionStr []string
var surisdictionInt []int64 var surisdictionInt []int64
@ -340,3 +341,183 @@ func (cu *CustomHandle) SingleSignOn(c *gin.Context) {
redisUserClient.HashMsetAdd(redisKeyMap, userInfoMap) redisUserClient.HashMsetAdd(redisKeyMap, userInfoMap)
response.Result(0, saveData, "登录成功!", c) response.Result(0, saveData, "登录成功!", c)
} }
//一端登录
func (cu *CustomHandle) ScanCodeLogin(c *gin.Context) {
var l systemReq.Login
_ = c.ShouldBindJSON(&l)
// if err := utils.Verify(l, utils.LoginVerify); err != nil {
// response.FailWithMessage(err.Error(), c)
// return
// }
userAgent := c.Request.Header.Get("User-Agent")
userAgent = "250"
userAdminErr, userAdmin := systemuser.GetSysAdminLoginInfo(l.Username, l.Password)
fmt.Printf("jieguo----------------->%v\n", userAdminErr)
// userAdminErr, _ := systemuser.HrUserInfor(l.Username, l.Password)
if userAdminErr == true {
if userAdmin.State == 2 {
response.Result(102, userAdminErr, "登陆失败! 该账号已经被禁用!", c)
return
}
if userAdmin.State == 3 {
response.Result(102, userAdminErr, "登陆失败! 该账号不存在!", c)
return
}
var md5JiaMi commonus.Md5Encryption
md5JiaMi.Md5EncryptionInit(userAgent)
md5Token := md5JiaMi.Md5EncryptionAlgorithm()
var md5JiaMiNumber commonus.Md5Encryption
md5JiaMiNumber.Md5EncryptionInit(userAdmin.Name)
userKeyCode := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := userKeyCode + userAdmin.Name + userAdmin.PassWord + md5Token
sha1Token := commonus.Sha1Encryption(sha1Str)
saveData := commonus.MapOut()
saveData["key"] = userKeyCode
saveData["token"] = sha1Token
saveData["userinfo"] = userAdmin
// userKeyInt, _ := strconv.ParseInt(userKeyCode, 10, 64)
global.GVA_ADMIN_USERKEY = userKeyCode
global.GVA_SCANCODE_USERNUMBER = userAdmin.KeyStr
roleCont := getRole(userAdmin.Role)
writeRedisData := map[string]interface{}{
"userkey": userKeyCode,
"key": userAdmin.KeyStr,
"usernumber": userAdmin.Name,
"userpwd": userAdmin.PassWord,
"usertoken": sha1Token,
"jurisdiction": roleCont.Jurisdiction,
"menuOper": roleCont.MenuOper,
"wand": 118,
}
var surisdictionStr []string
var surisdictionInt []int64
jsonErr := json.Unmarshal([]byte(roleCont.Jurisdiction), &surisdictionStr)
if jsonErr == nil {
for _, jurVal := range surisdictionStr {
jurValInt, jurValErr := strconv.ParseInt(jurVal, 10, 64)
if jurValErr == nil {
surisdictionInt = append(surisdictionInt, jurValInt)
}
}
}
global.Gva_Authority_Authentication = surisdictionInt
var menuOperStr []string
var menuOperInts []int64
jsonErrSun := json.Unmarshal([]byte(roleCont.MenuOper), &menuOperStr)
if jsonErrSun == nil {
for _, menuOperVal := range menuOperStr {
menuOperInt, menuOperErr := strconv.ParseInt(menuOperVal, 10, 64)
if menuOperErr == nil {
menuOperInts = append(menuOperInts, menuOperInt)
}
}
}
global.Gva_Authority_Authentication_Subsidiary = menuOperInts
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKeyCode
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(5)
redisClient.SetRedisTime(10800)
redisClient.HashMsetAdd(redisFileKey, writeRedisData)
response.Result(0, saveData, "登录成功!", c)
} else {
// userErr, user := staff.GetUserWork(l.Username, l.Password)
userErr, user := staff.HrUserInfor(l.Username, l.Password)
if userErr != true {
response.Result(109, userErr, "登录失败!", c)
return
}
if user.State == 2 {
response.Result(102, userErr, "登陆失败! 该账号已经被禁用!", c)
return
}
if user.State == 3 {
response.Result(102, userErr, "登陆失败! 该账号不存在!", c)
return
}
var md5JiaMi commonus.Md5Encryption
md5JiaMi.Md5EncryptionInit(userAgent)
md5Token := md5JiaMi.Md5EncryptionAlgorithm()
var md5JiaMiNumber commonus.Md5Encryption
md5JiaMiNumber.Md5EncryptionInit(user.Number)
userKeyCode := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := userKeyCode + user.Number + user.Password + md5Token
sha1Token := commonus.Sha1Encryption(sha1Str)
saveData := commonus.MapOut()
saveData["key"] = userKeyCode
saveData["token"] = sha1Token
saveData["userinfo"] = user
// userKeyInt, _ := strconv.ParseInt(userKeyCode, 10, 64)
global.GVA_ADMIN_USERKEY = userKeyCode
global.GVA_SCANCODE_USERNUMBER = user.Number
writeRedisData := map[string]interface{}{
"userkey": userKeyCode,
"key": user.Key,
"usernumber": user.Number,
"userpwd": user.Password,
"usertoken": sha1Token,
"jurisdiction": user.Jurisdiction,
"menuOper": user.Menuoper,
"wand": 118,
}
var surisdictionStr []string
var surisdictionInt []int64
jsonErr := json.Unmarshal([]byte(user.Jurisdiction), &surisdictionStr)
if jsonErr == nil {
for _, jurVal := range surisdictionStr {
jurValInt, jurValErr := strconv.ParseInt(jurVal, 10, 64)
if jurValErr == nil {
surisdictionInt = append(surisdictionInt, jurValInt)
}
}
}
global.Gva_Authority_Authentication = surisdictionInt
var menuOperStr []string
var menuOperInts []int64
jsonErrSun := json.Unmarshal([]byte(user.Menuoper), &menuOperStr)
if jsonErrSun == nil {
for _, menuOperVal := range menuOperStr {
menuOperInt, menuOperErr := strconv.ParseInt(menuOperVal, 10, 64)
if menuOperErr == nil {
menuOperInts = append(menuOperInts, menuOperInt)
}
}
}
global.Gva_Authority_Authentication_Subsidiary = menuOperInts
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKeyCode
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(5)
redisClient.SetRedisTime(10800)
redisClient.HashMsetAdd(redisFileKey, writeRedisData)
response.Result(0, saveData, "登录成功!", c)
}
}
//获取角色信息
func getRole(roleId int64) (roleCont roleModel.SystemRole) {
global.GVA_DB_HrDataBase.Where("`id` = ?", roleId).Find(&roleCont)
return
}

75
gin_server_admin/api/v1/staff/staffpeople.go

@ -7,6 +7,8 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/flipped-aurora/gin-vue-admin/server/model/systemuser"
"github.com/flipped-aurora/gin-vue-admin/server/model/testpage" "github.com/flipped-aurora/gin-vue-admin/server/model/testpage"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -208,3 +210,76 @@ func GetUserWork(userName, userPwd string) (isTrue bool, staffInfo staffOutInfo)
// fmt.Printf("&&&&&&&&&&&>%v\n", staffInfo) // fmt.Printf("&&&&&&&&&&&>%v\n", staffInfo)
return return
} }
//通过Hr系统登录确认
func HrUserInfor(number, pwd string) (isTrue bool, usUpdate OutScanCodeUserInfo) {
isTrue = false
var md5JiaMi commonus.Md5Encryption
md5JiaMi.Md5EncryptionInit(pwd)
pwdStr := md5JiaMi.Md5EncryptionAlgorithm()
var ueInfo hrsystem.Personnel
err := global.GVA_DB_HrDataBase.Where("`number` = ? AND `password` = ?", number, pwdStr).First(&ueInfo).Error
if err != nil {
return
}
if ueInfo.State != 1 {
return
}
isTrue = true
wechatStr := ueInfo.Wechat
if ueInfo.WorkWechat != "" {
wechatStr = ueInfo.WorkWechat
}
// var usUpdate global.GAV_USER_CONT
usUpdate.Id = strconv.FormatInt(ueInfo.Id, 10)
usUpdate.Number = ueInfo.Number // `json:"number"`
usUpdate.Name = ueInfo.Name // `json:"name"`
usUpdate.Positionleveles = strconv.FormatInt(ueInfo.PositionLevel, 10) // `json:"positionleveles"`
usUpdate.Position = strconv.FormatInt(ueInfo.Position, 10) // `json:"position"`
usUpdate.Adminorg = strconv.FormatInt(ueInfo.AdminOrg, 10) // `json:"adminorg"`
usUpdate.Company = strconv.FormatInt(ueInfo.Company, 10) // `json:"company"`
usUpdate.Emptype = strconv.FormatInt(int64(ueInfo.EmpType), 10) // `json:"emptype"`
usUpdate.Deparment = ueInfo.Deparment // `json:"deparment"`
usUpdate.Jobclass = strconv.FormatInt(ueInfo.JobClass, 10) // `json:"jobclass"`
usUpdate.Positiongrade = strconv.FormatInt(ueInfo.PositionGrade, 10) // `json:"positiongrade"`
usUpdate.Role = ueInfo.Role // `json:"role"`
usUpdate.Icon = ueInfo.Icon // `json:"icon"`
usUpdate.Wechat = wechatStr // `json:"wechat"`
menuStr, buttonStr := getRoleInt(ueInfo.Role)
usUpdate.Jurisdiction = buttonStr // `json:"jurisdiction"`
usUpdate.Menuoper = menuStr // `json:"menuoper"`
oldGroup, _ := getOrgCont(strconv.FormatInt(ueInfo.Company, 10))
usUpdate.Oldgroup = oldGroup // `json:"oldgroup"`
olddepart, _ := getOrgCont(ueInfo.Deparment)
usUpdate.Olddepartment = olddepart // `json:"olddepartment"`
usUpdate.State = ueInfo.State
usUpdate.Password = ueInfo.Password
return
}
//获取权限点位
func getRoleInt(roleId string) (menuStr, buttonStr string) {
var roleInfo systemuser.SystemRole
err := global.GVA_DB_Master.Where("`r_id` = ?", roleId).First(&roleInfo).Error
if err != nil {
return
}
menuStr = roleInfo.MenuOper
buttonStr = roleInfo.Jurisdiction
return
}
//获取员工公司组织
func getOrgCont(id string) (oldId, orgName string) {
var orgInfo hrsystem.AdministrativeOrganization
err := global.GVA_DB_HrDataBase.Where("`id` = ?", id).First(&orgInfo).Error
if err != nil {
return
}
oldId = strconv.FormatInt(orgInfo.Schoole, 10)
orgName = orgInfo.Name
return
}

8
gin_server_admin/api/v1/staff/stafftype.go

@ -2,6 +2,7 @@ package staff
import ( import (
"github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/testpage" "github.com/flipped-aurora/gin-vue-admin/server/model/testpage"
) )
@ -36,3 +37,10 @@ type groupUser struct {
Number string `json:"number"` Number string `json:"number"`
Children []groupUser `json:"groupUser"` Children []groupUser `json:"groupUser"`
} }
//输出
type OutScanCodeUserInfo struct {
global.GAV_USER_CONT
State int `json:"state"`
Password string `json:"password"`
}

122
gin_server_admin/commonus/publichaneld.go

@ -13,6 +13,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/flipped-aurora/gin-vue-admin/server/model/location" "github.com/flipped-aurora/gin-vue-admin/server/model/location"
"github.com/flipped-aurora/gin-vue-admin/server/model/systemuser" "github.com/flipped-aurora/gin-vue-admin/server/model/systemuser"
"github.com/flipped-aurora/gin-vue-admin/server/model/testpage" "github.com/flipped-aurora/gin-vue-admin/server/model/testpage"
@ -602,33 +603,126 @@ func GetWorkShopSection(id int64) (isTrue bool, workShopesStruct testpage.WorkSh
//用户端身份解析 //用户端身份解析
func ClientIdentity() (isTrue bool, redisUserInfo testpage.RedisUserInfo) { func ClientIdentity() (isTrue bool, redisUserInfo testpage.RedisUserInfo) {
keyStr := strconv.FormatInt(global.GVA_INDEX_USERKEY, 10) // keyStr := strconv.FormatInt(global.GVA_INDEX_USERKEY, 10)
// redisClient := redishandel.RunRedis()
// tokenInfo, isTrue := redisClient.HashGetAll("system:userContent_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr)
// if isTrue != true {
// return
// }
// identityErr := mapstructure.Decode(tokenInfo, &redisUserInfo)
// if identityErr != nil {
// isTrue = false
// return
// }
redisClient := redishandel.RunRedis() redisClient := redishandel.RunRedis()
tokenInfo, isTrue := redisClient.HashGetAll("system:userContent_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr) tokenInfo, isTrue := redisClient.HashGetAll("ScanCode:UserInfo:LoginUser_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + global.GVA_SCANCODE_USERNUMBER)
if isTrue != true { if isTrue == true {
identityErr := mapstructure.Decode(tokenInfo, &redisUserInfo)
if identityErr == nil {
isTrue = true
return
} else {
redisUserInfo, isTrue = getPeopleInfo()
return return
} }
identityErr := mapstructure.Decode(tokenInfo, &redisUserInfo) } else {
if identityErr != nil { redisUserInfo, isTrue = getPeopleInfo()
return
}
isTrue = true
return
}
//获取用户信息
func getPeopleInfo() (redisUserInfo testpage.RedisUserInfo, isTrue bool) {
isTrue = false isTrue = false
var ueInfo hrsystem.Personnel
err := global.GVA_DB_HrDataBase.Where("`number` = ?", global.GVA_SCANCODE_USERNUMBER).First(&ueInfo).Error
if err != nil {
return return
} }
wechatStr := ueInfo.Wechat
if ueInfo.WorkWechat != "" {
wechatStr = ueInfo.WorkWechat
}
redisUserInfo.Id = strconv.FormatInt(ueInfo.Id, 10) // `json:"id"`
redisUserInfo.Key = strconv.FormatInt(ueInfo.Key, 10) // `json:"key"`
redisUserInfo.Number = ueInfo.Number // `json:"number"`
redisUserInfo.Name = ueInfo.Name // `json:"name"`
redisUserInfo.Positionleveles = strconv.FormatInt(ueInfo.PositionLevel, 10) // `json:"positionleveles"`
redisUserInfo.Position = strconv.FormatInt(ueInfo.Position, 10) // `json:"position"`
redisUserInfo.Adminorg = strconv.FormatInt(ueInfo.AdminOrg, 10) // `json:"adminorg"`
redisUserInfo.Company = strconv.FormatInt(ueInfo.Company, 10) // `json:"company"`
redisUserInfo.Emptype = fmt.Sprintf("%v", ueInfo.EmpType) // `json:"emptype"`
redisUserInfo.Deparment = ueInfo.Deparment // `json:"deparment"`
redisUserInfo.Jobclass = strconv.FormatInt(ueInfo.JobClass, 10) // `json:"jobclass"`
redisUserInfo.Positiongrade = strconv.FormatInt(ueInfo.PositionGrade, 10) // `json:"positiongrade"`
redisUserInfo.Role = ueInfo.Role // `json:"role"`
redisUserInfo.Icon = ueInfo.Icon // `json:"icon"`
redisUserInfo.Wechat = wechatStr // `json:"wechat"`
menuStr, buttonStr := getRoleInt(ueInfo.Role)
redisUserInfo.Jurisdiction = buttonStr // `json:"jurisdiction"`
redisUserInfo.Menuoper = menuStr // `json:"menuoper"`
oldGroup, _ := getOrgCont(strconv.FormatInt(ueInfo.Company, 10))
olddepart, _ := getOrgCont(ueInfo.Deparment)
redisUserInfo.Oldgroup = oldGroup // `json:"oldgroup"`
redisUserInfo.Olddepartment = olddepart // `json:"olddepartment"`
oldpostis, _ := getPositionCont(ueInfo.Position)
redisUserInfo.Oldposition = oldpostis // `json:"oldposition"`
isTrue = true
return return
} }
//自定义管理端身份解析 //获取权限点位
func AdminClientIdentity() (isTrue bool, redisAdminInfo systemuser.RedisAdminInfo) { func getRoleInt(roleId string) (menuStr, buttonStr string) {
keyStr := strconv.FormatInt(global.GVA_ADMIN_USERKEY, 10) var roleInfo systemuser.SystemRole
redisClient := redishandel.RunRedis() err := global.GVA_DB_Master.Where("`r_id` = ?", roleId).First(&roleInfo).Error
tokenInfo, isTrue := redisClient.HashGetAll("system:SystemAdminInfo_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr) if err != nil {
if isTrue != true {
return return
} }
identityErr := mapstructure.Decode(tokenInfo, &redisAdminInfo) menuStr = roleInfo.MenuOper
if identityErr != nil { buttonStr = roleInfo.Jurisdiction
isTrue = false return
}
//获取员工公司组织
func getOrgCont(id string) (oldId, orgName string) {
var orgInfo hrsystem.AdministrativeOrganization
err := global.GVA_DB_HrDataBase.Where("`id` = ?", id).First(&orgInfo).Error
if err != nil {
return
}
oldId = strconv.FormatInt(orgInfo.Schoole, 10)
orgName = orgInfo.Name
return return
} }
//获取员工公司职务
func getPositionCont(id int64) (oldId, orgName string) {
var orgInfo hrsystem.Position
err := global.GVA_DB_HrDataBase.Where("`id` = ?", id).First(&orgInfo).Error
if err != nil {
return
}
oldId = strconv.FormatInt(orgInfo.School, 10)
orgName = orgInfo.Name
return
}
//自定义管理端身份解析
func AdminClientIdentity() (isTrue bool, redisAdminInfo systemuser.RedisAdminInfo) {
// keyStr := strconv.FormatInt(global.GVA_ADMIN_USERKEY, 10)
// redisClient := redishandel.RunRedis()
// tokenInfo, isTrue := redisClient.HashGetAll("system:SystemAdminInfo_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr)
// if isTrue != true {
// return
// }
// identityErr := mapstructure.Decode(tokenInfo, &redisAdminInfo)
// if identityErr != nil {
// isTrue = false
// return
// }
isTrue = false
return return
} }

22
gin_server_admin/commonus/weChatDateType.go

@ -392,3 +392,25 @@ func (m *MyCustomAdminLogonIdentify) MyCustomAdminLogonIdentifyInit() {
m.UserPwd = "" m.UserPwd = ""
m.UserToken = "" m.UserToken = ""
} }
//扫码登录样式处理
type ScanCodeLogin struct {
UserKey string `json:"userkey"`
Key string `json:"key"`
UserNumber string `json:"usernumber"`
UserPwd string `json:"userpwd"`
UserToken string `json:"usertoken"`
Jurisdiction string `json:"jurisdiction"`
MenuOper string `json:"menuoper"`
Wand string `json:"wand"`
}
func (m *ScanCodeLogin) ScanCodeLoginIdentifyInit() {
m.UserKey = ""
m.UserNumber = ""
m.UserPwd = ""
m.UserToken = ""
m.Jurisdiction = ""
m.MenuOper = ""
m.Wand = "0"
}

4
gin_server_admin/config.yaml

@ -30,6 +30,10 @@ rediswechat2:
db: 2 db: 2
addr: 127.0.0.1:6379 addr: 127.0.0.1:6379
password: "" password: ""
rediswechat5:
db: 5
addr: 127.0.0.1:6379
password: ""
redisprefix: redisprefix:
prefix: "HXGK_GO_ZhixingCollege" prefix: "HXGK_GO_ZhixingCollege"
alias: "dev" alias: "dev"

1
gin_server_admin/config/config.go

@ -6,6 +6,7 @@ type Server struct {
Redis Redis `mapstructure:"redis" json:"redis" yaml:"redis"` Redis Redis `mapstructure:"redis" json:"redis" yaml:"redis"`
WechatRedis Redis `mapstructure:"rediswechat" json:"rediswechat" yaml:"rediswechat"` WechatRedis Redis `mapstructure:"rediswechat" json:"rediswechat" yaml:"rediswechat"`
WechatRedis2 Redis `mapstructure:"rediswechat2" json:"rediswechat2" yaml:"rediswechat2"` WechatRedis2 Redis `mapstructure:"rediswechat2" json:"rediswechat2" yaml:"rediswechat2"`
WechatRedis5 Redis `mapstructure:"rediswechat5" json:"rediswechat5" yaml:"rediswechat5"`
RedisPrefix RedisPrefixStr `mapstructure:"redisprefix" json:"redisprefix" yaml:"redisprefix"` //redis键浅醉 RedisPrefix RedisPrefixStr `mapstructure:"redisprefix" json:"redisprefix" yaml:"redisprefix"` //redis键浅醉
Email Email `mapstructure:"email" json:"email" yaml:"email"` Email Email `mapstructure:"email" json:"email" yaml:"email"`
Casbin Casbin `mapstructure:"casbin" json:"casbin" yaml:"casbin"` Casbin Casbin `mapstructure:"casbin" json:"casbin" yaml:"casbin"`

1
gin_server_admin/core/server.go

@ -19,6 +19,7 @@ func RunWindowsServer() {
//初始化企业微信redis //初始化企业微信redis
initialize.WechatRedis() initialize.WechatRedis()
initialize.WechatRedis2() initialize.WechatRedis2()
initialize.WechatRedis5()
if global.GVA_CONFIG.System.UseMultipoint { if global.GVA_CONFIG.System.UseMultipoint {
// 初始化redis服务 // 初始化redis服务

5
gin_server_admin/global/global.go

@ -46,11 +46,14 @@ var (
//企业微信专用redis //企业微信专用redis
GVA_REDIS_WeChat *redis.Client GVA_REDIS_WeChat *redis.Client
GVA_REDIS_WeChat2 *redis.Client GVA_REDIS_WeChat2 *redis.Client
GVA_REDIS_WeChat5 *redis.Client
//个人配置 //个人配置
// GVA_MyConfig config.MyConfig // GVA_MyConfig config.MyConfig
//鉴权 //鉴权
GVA_INDEX_USERKEY int64 GVA_INDEX_USERKEY int64
GVA_ADMIN_USERKEY int64 GVA_ADMIN_USERKEY string
GVA_SCANCODE_USERNUMBER string
Gva_Authority_Authentication []int64 Gva_Authority_Authentication []int64
Gva_Authority_Authentication_Subsidiary []int64 Gva_Authority_Authentication_Subsidiary []int64
GVA_SCANCODE_USERINFO GAV_USER_CONT
) )

25
gin_server_admin/global/model.go

@ -1,8 +1,9 @@
package global package global
import ( import (
"gorm.io/gorm"
"time" "time"
"gorm.io/gorm"
) )
type GVA_MODEL struct { type GVA_MODEL struct {
@ -11,3 +12,25 @@ type GVA_MODEL struct {
UpdatedAt time.Time // 更新时间 UpdatedAt time.Time // 更新时间
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` // 删除时间 DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` // 删除时间
} }
type GAV_USER_CONT struct {
Id string `json:"id"`
Number string `json:"number"`
Key string `json:"key"`
Name string `json:"name"`
Positionleveles string `json:"positionleveles"`
Position string `json:"position"`
Adminorg string `json:"adminorg"`
Company string `json:"company"`
Emptype string `json:"emptype"`
Deparment string `json:"deparment"`
Jobclass string `json:"jobclass"`
Positiongrade string `json:"positiongrade"`
Role string `json:"role"`
Icon string `json:"icon"`
Wechat string `json:"wechat"`
Jurisdiction string `json:"jurisdiction"`
Menuoper string `json:"menuoper"`
Oldgroup string `json:"oldgroup"`
Olddepartment string `json:"olddepartment"`
}

16
gin_server_admin/initialize/redis.go

@ -56,3 +56,19 @@ func WechatRedis2() {
global.GVA_REDIS_WeChat2 = client global.GVA_REDIS_WeChat2 = client
} }
} }
func WechatRedis5() {
redisCfg := global.GVA_CONFIG.WechatRedis5
client := redis.NewClient(&redis.Options{
Addr: redisCfg.Addr,
Password: redisCfg.Password, // no password set
DB: redisCfg.DB, // use default DB
})
pong, err := client.Ping(context.Background()).Result()
if err != nil {
global.GVA_LOG.Error("企业微信Redis链接失败!, err:", zap.Any("err", err))
} else {
global.GVA_LOG.Info("企业微信Redis链接成功:", zap.String("pong", pong))
global.GVA_REDIS_WeChat5 = client
}
}

6
gin_server_admin/initialize/router.go

@ -152,7 +152,8 @@ func Routers() *gin.Engine {
//自定义登录验证 //自定义登录验证
MyCustomPrivateGroup := Router.Group("") MyCustomPrivateGroup := Router.Group("")
MyCustomPrivateGroup.Use(middleware.MyAuthentication()).Use(middleware.MyCasbinHandler()) // MyCustomPrivateGroup.Use(middleware.MyAuthentication()).Use(middleware.MyCasbinHandler())
MyCustomPrivateGroup.Use(middleware.ScanCodeLogin()).Use(middleware.MyCasbinHandler())
{ {
// staffMan.InitStaffRouter(MyCustomPrivateGroup) //员工相关操作 // staffMan.InitStaffRouter(MyCustomPrivateGroup) //员工相关操作
@ -162,7 +163,8 @@ func Routers() *gin.Engine {
} }
//自定义后台登录 //自定义后台登录
MyCustomSystemGroup := Router.Group("") MyCustomSystemGroup := Router.Group("")
MyCustomSystemGroup.Use(middleware.SystemAuthentication()).Use(middleware.MyCasbinHandler()) // MyCustomSystemGroup.Use(middleware.SystemAuthentication()).Use(middleware.MyCasbinHandler())
MyCustomSystemGroup.Use(middleware.ScanCodeLogin()).Use(middleware.MyCasbinHandler())
{ {
Questions.InitGroupRouter(MyCustomSystemGroup) //试题相关 Questions.InitGroupRouter(MyCustomSystemGroup) //试题相关
systemRouter.InitSystemAdminRouter(MyCustomSystemGroup) //系统管理员 systemRouter.InitSystemAdminRouter(MyCustomSystemGroup) //系统管理员

254
gin_server_admin/middleware/myjwt.go

@ -16,60 +16,60 @@ import (
//鉴权 //鉴权
func MyAuthentication() gin.HandlerFunc { func MyAuthentication() gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
userKey := c.Request.Header.Get("user-key") // userKey := c.Request.Header.Get("user-key")
userToken := c.Request.Header.Get("user-token") // userToken := c.Request.Header.Get("user-token")
userAgent := c.Request.Header.Get("User-Agent") // userAgent := c.Request.Header.Get("User-Agent")
if userKey == "" || userToken == "" || userAgent == "" { // if userKey == "" || userToken == "" || userAgent == "" {
response.FailWithDetailed(gin.H{"reload": true, "code": 1}, "未登录或非法访问", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 1}, "未登录或非法访问", c)
c.Abort() // c.Abort()
return // return
} // }
userAgent = "250" // userAgent = "250"
userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64) // userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
if userKeyIntErr != nil { // if userKeyIntErr != nil {
response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c)
c.Abort() // c.Abort()
return // return
} // }
global.GVA_INDEX_USERKEY = userKeyInt // global.GVA_INDEX_USERKEY = userKeyInt
redisClient := redishandel.RunRedis() // redisClient := redishandel.RunRedis()
tokenInfo, isTrues := redisClient.HashGetAll("system:Identification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey) // tokenInfo, isTrues := redisClient.HashGetAll("system:Identification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey)
var myCustomIdentify commonus.MyCustomLogonIdentify // var myCustomIdentify commonus.MyCustomLogonIdentify
if isTrues != true { // if isTrues != true {
response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c)
c.Abort() // c.Abort()
return // return
} else { // } else {
tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify) // tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify)
if tokenErr != nil { // if tokenErr != nil {
response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c)
c.Abort() // c.Abort()
return // return
} // }
var md5JiaMi commonus.Md5Encryption // var md5JiaMi commonus.Md5Encryption
md5JiaMi.Md5EncryptionInit(userAgent) // md5JiaMi.Md5EncryptionInit(userAgent)
md5Token := md5JiaMi.Md5EncryptionAlgorithm() // md5Token := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token // sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
sha1Token := commonus.Sha1Encryption(sha1Str) // sha1Token := commonus.Sha1Encryption(sha1Str)
// fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent) // // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
if sha1Token != userToken { // if sha1Token != userToken {
response.FailWithDetailed(gin.H{"reload": true, "code": 3, "userAgent": userAgent, "sha1Token": sha1Token, "userToken": userToken, "tokenInfo": tokenInfo}, "授权已过期", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 3, "userAgent": userAgent, "sha1Token": sha1Token, "userToken": userToken, "tokenInfo": tokenInfo}, "授权已过期", c)
c.Abort() // c.Abort()
return // return
} // }
} // }
redisClient.SetRedisTime(86400) // redisClient.SetRedisTime(86400)
// redisClient.SetRedisTime(60) // // redisClient.SetRedisTime(60)
writeRedisData := map[string]interface{}{ // writeRedisData := map[string]interface{}{
"userkey": myCustomIdentify.UserKey, // "userkey": myCustomIdentify.UserKey,
"usernumber": myCustomIdentify.UserNumber, // "usernumber": myCustomIdentify.UserNumber,
"userpwd": myCustomIdentify.UserPwd, // "userpwd": myCustomIdentify.UserPwd,
"usertoken": myCustomIdentify.UserToken, // "usertoken": myCustomIdentify.UserToken,
} // }
redisClient.HashMsetAdd("system:Identification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData) // redisClient.HashMsetAdd("system:Identification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData)
c.Next() c.Next()
} }
} }
@ -99,32 +99,143 @@ func MyCasbinHandler() gin.HandlerFunc {
// c.Abort() // c.Abort()
// return // return
// } // }
redisFileKey := "ScanCode:UserInfo:LoginUser_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + global.GVA_SCANCODE_USERNUMBER
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(5)
tokenInfo, isTrues := redisClient.HashGetAll(redisFileKey)
if isTrues == true {
mapstructure.Decode(tokenInfo, &global.GVA_SCANCODE_USERINFO)
}
} }
} }
func SystemAuthentication() gin.HandlerFunc { func SystemAuthentication() gin.HandlerFunc {
return func(c *gin.Context) {
// userKey := c.Request.Header.Get("user-key")
// userToken := c.Request.Header.Get("user-token")
// userAgent := c.Request.Header.Get("User-Agent")
// if userKey == "" || userToken == "" || userAgent == "" {
// response.FailWithDetailed(gin.H{"reload": true, "code": 101}, "未登录或非法访问", c)
// c.Abort()
// return
// }
// userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
// if userKeyIntErr != nil {
// response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c)
// c.Abort()
// return
// }
// global.GVA_ADMIN_USERKEY = userKeyInt
// redisClient := redishandel.RunRedis()
// tokenInfo, isTrues := redisClient.HashGetAll("system:SystemIdentification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey)
// var myCustomIdentify commonus.MyCustomAdminLogonIdentify
// if isTrues != true {
// response.FailWithDetailed(gin.H{"reload": true, "code": 102}, "您的帐户异地登陆或令牌失效", c)
// c.Abort()
// return
// } else {
// tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify)
// if tokenErr != nil {
// response.FailWithDetailed(gin.H{"reload": true, "code": 103, "tokenErr": tokenErr}, "您的帐户异地登陆或令牌失效", c)
// c.Abort()
// return
// }
// userAgent = "250"
// var md5JiaMi commonus.Md5Encryption
// md5JiaMi.Md5EncryptionInit(userAgent)
// md5Token := md5JiaMi.Md5EncryptionAlgorithm()
// sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
// sha1Token := commonus.Sha1Encryption(sha1Str)
// // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
// if sha1Token != userToken {
// response.FailWithDetailed(gin.H{"reload": true, "code": 104}, "授权已过期", c)
// c.Abort()
// return
// }
// }
// redisClient.SetRedisTime(86400)
// writeRedisData := map[string]interface{}{
// "userkey": myCustomIdentify.UserKey,
// "usernumber": myCustomIdentify.UserNumber,
// "userpwd": myCustomIdentify.UserPwd,
// "usertoken": myCustomIdentify.UserToken,
// "jurisdiction": myCustomIdentify.Jurisdiction,
// "menuOper": myCustomIdentify.MenuOper,
// "wand": myCustomIdentify.Wand,
// }
// var surisdictionStr []string
// var surisdictionInt []int64
// jsonErr := json.Unmarshal([]byte(myCustomIdentify.Jurisdiction), &surisdictionStr)
// if jsonErr == nil {
// for _, jurVal := range surisdictionStr {
// jurValInt, jurValErr := strconv.ParseInt(jurVal, 10, 64)
// if jurValErr == nil {
// surisdictionInt = append(surisdictionInt, jurValInt)
// }
// }
// }
// global.Gva_Authority_Authentication = surisdictionInt
// var menuOperStr []string
// var menuOperInts []int64
// jsonErrSun := json.Unmarshal([]byte(myCustomIdentify.MenuOper), &menuOperStr)
// if jsonErrSun == nil {
// for _, menuOperVal := range menuOperStr {
// menuOperInt, menuOperErr := strconv.ParseInt(menuOperVal, 10, 64)
// if menuOperErr == nil {
// menuOperInts = append(menuOperInts, menuOperInt)
// }
// }
// }
// global.Gva_Authority_Authentication_Subsidiary = menuOperInts
// redisClient.HashMsetAdd("system:SystemIdentification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData)
c.Next()
}
}
// 拦截器
func SystemCasbinHandler() gin.HandlerFunc {
return func(c *gin.Context) {
}
}
//扫码登录身份验证
func ScanCodeLogin() gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
userKey := c.Request.Header.Get("user-key") userKey := c.Request.Header.Get("user-key")
userToken := c.Request.Header.Get("user-token") userToken := c.Request.Header.Get("user-token")
userAgent := c.Request.Header.Get("User-Agent") userAgent := c.Request.Header.Get("User-Agent")
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey
if userKey == "" || userToken == "" || userAgent == "" { if userKey == "" || userToken == "" || userAgent == "" {
response.FailWithDetailed(gin.H{"reload": true, "code": 101}, "未登录或非法访问", c) response.FailWithDetailed(gin.H{"reload": true, "code": 101}, "未登录或非法访问", c)
c.Abort() c.Abort()
return return
} }
userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64) // userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
if userKeyIntErr != nil { // if userKeyIntErr != nil {
response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c) // response.FailWithDetailed(gin.H{"reload": true, "code": 2, "userKey": userKey}, "未登录或非法访问", c)
c.Abort() // c.Abort()
return // return
} // }
global.GVA_ADMIN_USERKEY = userKeyInt global.GVA_ADMIN_USERKEY = userKey
redisClient := redishandel.RunRedis() redisClient := redishandel.RunRedis()
tokenInfo, isTrues := redisClient.HashGetAll("system:SystemIdentification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey) redisClient.SetRedisDb(5)
var myCustomIdentify commonus.MyCustomAdminLogonIdentify
tokenInfo, isTrues := redisClient.HashGetAll(redisFileKey)
var myCustomIdentify commonus.ScanCodeLogin
if isTrues != true { if isTrues != true {
response.FailWithDetailed(gin.H{"reload": true, "code": 102}, "您的帐户异地登陆或令牌失效", c) response.FailWithDetailed(gin.H{"reload": true, "code": 102}, "您的帐户异地登陆或令牌失效", c)
c.Abort() c.Abort()
@ -140,7 +251,12 @@ func SystemAuthentication() gin.HandlerFunc {
var md5JiaMi commonus.Md5Encryption var md5JiaMi commonus.Md5Encryption
md5JiaMi.Md5EncryptionInit(userAgent) md5JiaMi.Md5EncryptionInit(userAgent)
md5Token := md5JiaMi.Md5EncryptionAlgorithm() md5Token := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
var md5JiaMiNumber commonus.Md5Encryption
md5JiaMiNumber.Md5EncryptionInit(myCustomIdentify.UserNumber)
userKeyCode := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := userKeyCode + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
sha1Token := commonus.Sha1Encryption(sha1Str) sha1Token := commonus.Sha1Encryption(sha1Str)
// fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent) // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
if sha1Token != userToken { if sha1Token != userToken {
@ -149,9 +265,11 @@ func SystemAuthentication() gin.HandlerFunc {
return return
} }
} }
redisClient.SetRedisTime(86400) global.GVA_SCANCODE_USERNUMBER = myCustomIdentify.UserNumber
writeRedisData := map[string]interface{}{ writeRedisData := map[string]interface{}{
"userkey": myCustomIdentify.UserKey, "userkey": myCustomIdentify.UserKey,
"key": myCustomIdentify.Key,
"usernumber": myCustomIdentify.UserNumber, "usernumber": myCustomIdentify.UserNumber,
"userpwd": myCustomIdentify.UserPwd, "userpwd": myCustomIdentify.UserPwd,
"usertoken": myCustomIdentify.UserToken, "usertoken": myCustomIdentify.UserToken,
@ -172,6 +290,7 @@ func SystemAuthentication() gin.HandlerFunc {
} }
} }
global.Gva_Authority_Authentication = surisdictionInt global.Gva_Authority_Authentication = surisdictionInt
var menuOperStr []string var menuOperStr []string
var menuOperInts []int64 var menuOperInts []int64
@ -186,14 +305,9 @@ func SystemAuthentication() gin.HandlerFunc {
} }
} }
global.Gva_Authority_Authentication_Subsidiary = menuOperInts global.Gva_Authority_Authentication_Subsidiary = menuOperInts
redisClient.HashMsetAdd("system:SystemIdentification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData) redisClient.SetRedisTime(10800)
c.Next() redisClient.HashMsetAdd(redisFileKey, writeRedisData)
}
}
// 拦截器
func SystemCasbinHandler() gin.HandlerFunc {
return func(c *gin.Context) {
c.Next()
} }
} }

4
gin_server_admin/model/assessmentmodel/dutyclass.go

@ -232,7 +232,7 @@ type DetailedTarget struct {
MaxScore int64 `json:"maxscore" gorm:"column:dt_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"` MaxScore int64 `json:"maxscore" gorm:"column:dt_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"`
Company string `json:"company" gorm:"column:dt_company;type:varchar(20) unsigned;default:0;not null;comment:单位"` Company string `json:"company" gorm:"column:dt_company;type:varchar(20) unsigned;default:0;not null;comment:单位"`
AddReduce int `json:"addreduce" gorm:"column:dt_add_reduce;type:int(1) unsigned;default:1;not null;comment:1:减少;2:增加;3:无属性,现场确认加或减"` AddReduce int `json:"addreduce" gorm:"column:dt_add_reduce;type:int(1) unsigned;default:1;not null;comment:1:减少;2:增加;3:无属性,现场确认加或减"`
CensorType int `json:"censortype" gorm:"column:dt_censor_type;type:tinyint(1) unsigned;default:1;not null;comment:检查方式"` CensorType string `json:"censortype" gorm:"column:dt_censor_type;type:text;comment:检查方式"`
CensorCont string `json:"censorcont" gorm:"column:dt_censor_cont;type:longtext;comment:检查依据"` CensorCont string `json:"censorcont" gorm:"column:dt_censor_cont;type:longtext;comment:检查依据"`
CensorRate int `json:"censorrate" gorm:"column:dt_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"` CensorRate int `json:"censorrate" gorm:"column:dt_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"`
Cycles int `json:"cycle" gorm:"column:dt_cycle;type:tinyint(1) unsigned;default:1;not null;comment:1:班;2:天;3:周;4:月;5:季度;6:年"` Cycles int `json:"cycle" gorm:"column:dt_cycle;type:tinyint(1) unsigned;default:1;not null;comment:1:班;2:天;3:周;4:月;5:季度;6:年"`
@ -283,7 +283,7 @@ type QualitativeEvaluation struct {
Content string `json:"content" gorm:"column:qe_content;type:text;comment:补充说明"` Content string `json:"content" gorm:"column:qe_content;type:text;comment:补充说明"`
MinScore int64 `json:"minscore" gorm:"column:qe_min_score;type:bigint(20) unsigned;default:0;not null;comment:最小分*100保存"` MinScore int64 `json:"minscore" gorm:"column:qe_min_score;type:bigint(20) unsigned;default:0;not null;comment:最小分*100保存"`
MaxScore int64 `json:"maxscore" gorm:"column:qe_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"` MaxScore int64 `json:"maxscore" gorm:"column:qe_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"`
CensorType int `json:"censortype" gorm:"column:qe_censor_type;type:tinyint(1) unsigned;default:1;not null;comment:检查方式"` CensorType string `json:"censortype" gorm:"column:qe_censor_type;type:tinyint(1) unsigned;default:1;not null;comment:检查方式"`
CensorCont string `json:"censorcont" gorm:"column:qe_censor_cont;type:longtext;comment:检查依据"` CensorCont string `json:"censorcont" gorm:"column:qe_censor_cont;type:longtext;comment:检查依据"`
CensorRate int `json:"censorrate" gorm:"column:qe_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"` CensorRate int `json:"censorrate" gorm:"column:qe_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"`
} }

2
gin_server_admin/model/hrsystem/administrative_organization.go

@ -17,6 +17,8 @@ type AdministrativeOrganization struct {
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
WechatOrganizationId int64 `json:"wechatorganizationid" gorm:"column:wechat_organization_id;type:bigint(20) unsigned;default:0;not null;comment:微信组织架构对照码"` WechatOrganizationId int64 `json:"wechatorganizationid" gorm:"column:wechat_organization_id;type:bigint(20) unsigned;default:0;not null;comment:微信组织架构对照码"`
SuperiorSun string `json:"superiorsun" gorm:"column:superior_sun;type:mediumtext;comment:级联ID"`
Schoole int64 `json:"schoole" gorm:"column:schoole;type:bigint(20) unsigned;default:0;not null;comment:原知行学院对照码"`
} }
func (AdministrativeOrganization *AdministrativeOrganization) TableName() string { func (AdministrativeOrganization *AdministrativeOrganization) TableName() string {

26
gin_server_admin/model/hrsystem/double_worker.go

@ -0,0 +1,26 @@
package hrsystem
import (
"github.com/flipped-aurora/gin-vue-admin/server/global"
)
//紧急联系人
type DoubleWorker struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;not null;comment:员工工号;index"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:姓名"`
Company string `json:"company" gorm:"column:company;type:varchar(255) unsigned;default:'';not null;comment:所在公司"`
Department string `json:"department" gorm:"column:department;type:varchar(255) unsigned;default:'';not null;comment:所在部门"`
Position string `json:"position" gorm:"column:position;type:varchar(255) unsigned;default:'';not null;comment:所在岗位"`
Tel string `json:"tel" gorm:"column:tel;type:varchar(255) unsigned;default:'';not null;comment:联系方式"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
}
func (DoubleWorker *DoubleWorker) TableName() string {
return "double_worker"
}
//编辑职务分类内容
func (DoubleWorker *DoubleWorker) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&DoubleWorker).Where(whereMap).Updates(saveData).Error
return
}

23
gin_server_admin/model/hrsystem/emergency_contact.go

@ -0,0 +1,23 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//紧急联系人
type EmergencyContact struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;not null;comment:员工工号;index"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:紧急联系人姓名"`
Relationship string `json:"relationship" gorm:"column:relationship;type:varchar(255) unsigned;default:'';not null;comment:与紧急联系人关系"`
Tel string `json:"tel" gorm:"column:tel;type:varchar(255) unsigned;default:'';not null;comment:紧急联系人电话"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
}
func (EmergencyContact *EmergencyContact) TableName() string {
return "emergency_contact"
}
//编辑职务分类内容
func (EmergencyContact *EmergencyContact) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&EmergencyContact).Where(whereMap).Updates(saveData).Error
return
}

26
gin_server_admin/model/hrsystem/family_members.go

@ -0,0 +1,26 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//员工家属
type FamilyMembers struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;not null;comment:员工工号;index"`
Relationship string `json:"relationship" gorm:"column:relation;type:varchar(255) unsigned;default:'';not null;comment:亲属关系"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:姓名"`
Company string `json:"company" gorm:"column:company;type:varchar(255) unsigned;default:'';not null;comment:所在公司"`
Deparment string `json:"deparment" gorm:"column:deparment;type:varchar(255) unsigned;default:'';not null;comment:所在部门"`
Postnme string `json:"postnme" gorm:"column:postnme;type:varchar(255) unsigned;default:'';not null;comment:所在岗位"`
Tel string `json:"tel" gorm:"column:tel;type:varchar(255) unsigned;default:'';not null;comment:紧急联系人电话"`
PoliticalOutlook int `json:"politicaloutlook" gorm:"column:political_outlook;type:int(3) unsigned;default:1;not null;comment:政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
}
func (FamilyMembers *FamilyMembers) TableName() string {
return "family_members"
}
//编辑职务分类内容
func (FamilyMembers *FamilyMembers) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&FamilyMembers).Where(whereMap).Updates(saveData).Error
return
}

12
gin_server_admin/model/hrsystem/menu_operation.go

@ -0,0 +1,12 @@
package hrsystem
//菜单功能
type MenuOperation struct {
OperId int64 `json:"operId" gorm:"primaryKey;column:oper_id;type:bigint(20) unsigned;not null;comment:功能ID"`
MenuId int64 `json:"menuId" gorm:"column:menu_id;type:bigint(20) unsigned;not null;default:0;comment:菜单id"`
OperTitle string `json:"operTitle" gorm:"column:oper_title;type:varchar(255);not null;comment:操作名称"`
}
func (MenuOperation *MenuOperation) TableName() string {
return "menu_operation"
}

54
gin_server_admin/model/hrsystem/personnel.go

@ -0,0 +1,54 @@
package hrsystem
import (
"strings"
"github.com/flipped-aurora/gin-vue-admin/server/global"
)
//员工档案(主)
type Personnel struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:ID"`
Number string `json:"number" gorm:"column:number;type:varchar(30) unsigned;not null;comment:员工工号"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:姓名"`
HireClass int `json:"hireclass" gorm:"column:hire_class;type:tinyint(1) unsigned;default:1;not null;comment:雇佣类型(1:雇佣入职;2:再入职;)"`
PositionLevel int64 `json:"positionleveles" gorm:"column:positionleveles;type:bigint(20) unsigned;default:0;not null;comment:职位"`
Position int64 `json:"position" gorm:"column:position;type:bigint(20) unsigned;default:0;not null;comment:职位"`
AdminOrg int64 `json:"adminorg" gorm:"column:admin_org;type:bigint(20) unsigned;default:0;not null;comment:所属行政组织"`
Company int64 `json:"company" gorm:"column:company;type:bigint(20) unsigned;default:0;not null;comment:入职公司"`
EmpType int `json:"emptype" gorm:"column:emp_type;type:tinyint(1) unsigned;default:1;not null;comment:用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职)"`
Deparment string `json:"deparment" gorm:"column:deparment;type:text;comment:部门"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:写入时间"`
EiteTime int64 `json:"eitetime" gorm:"column:eite_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"`
JobClass int64 `json:"jobclass" gorm:"column:job_class;type:bigint(20) unsigned;default:2;not null;comment:职务分类"`
PositionGrade int64 `json:"positiongrade" gorm:"column:position_grade;type:bigint(20) unsigned;default:0;not null;comment:入职职等"`
Role string `json:"role" gorm:"column:role;type:longtext;comment:变动原因"`
Wechat string `json:"wechat" gorm:"column:wechat;type:varchar(255) unsigned;default:'';not null;comment:微信UserId"`
WorkWechat string `json:"workwechat" gorm:"column:work_wechat;type:varchar(255) unsigned;default:'';not null;comment:企业微信UserId"`
Icon string `json:"icon" gorm:"column:icon;type:varchar(255) unsigned;default:'';not null;comment:头像"`
Password string `json:"password" gorm:"column:password;type:varchar(255) unsigned;default:'';not null;comment:密码"`
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)`
Key int64 `json:"key" gorm:"column:key;type:bigint(50) unsigned;default:0;not null;comment:key"`
}
func (Personnel *Personnel) TableName() string {
return "personnel"
}
//编辑员工档案
func (Personnel *Personnel) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&Personnel).Where(whereMap).Updates(saveData).Error
return
}
//获取员工档案
func (cont *Personnel) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := global.GVA_DB_HrDataBase.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}

27
gin_server_admin/model/hrsystem/personnel_change_record.go

@ -0,0 +1,27 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//人员变动记录
type PersonnelChangeRecord struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;not null;comment:员工工号;index"`
Type int `json:"type" gorm:"column:type;type:tinyint(1) unsigned;default:1;not null;comment:变动类型(1:雇佣入职;2:再入职;3:职位分配;4:转正;5:停薪留职;6:退休;7:辞退;8:离职)"`
Reason string `json:"reason" gorm:"column:reason;type:text;comment:变动原因"`
Position int64 `json:"position" gorm:"column:position;type:bigint(20) unsigned;default:0;not null;comment:入职职位"`
JobLevel string `json:"joblevel" gorm:"column:job_level;type:varchar(200) unsigned;default:'';not null;comment:入职职层"`
JobGrade int64 `json:"jobgrade" gorm:"column:job_grade;type:bigint(20) unsigned;default:0;not null;comment:入职职等"`
Company int64 `json:"company" gorm:"column:company;type:bigint(20) unsigned;default:0;not null;comment:入职公司"`
Department string `json:"department" gorm:"column:department;type:varchar(255) unsigned;default:0;not null;comment:入职分厂"`
Adminorg int64 `json:"adminorg" gorm:"column:adminorg;type:bigint(20) unsigned;default:0;not null;comment:入职行政组织"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:写入时间"`
}
func (PersonnelChangeRecord *PersonnelChangeRecord) TableName() string {
return "personnel_change_record"
}
//编辑职务分类内容
func (PersonnelChangeRecord *PersonnelChangeRecord) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&PersonnelChangeRecord).Where(whereMap).Updates(saveData).Error
return
}

46
gin_server_admin/model/hrsystem/personnel_content.go

@ -0,0 +1,46 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//员工附属信息
type PersonnelContent struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;not null;comment:员工工号;index"`
Idcardno string `json:"idcardno" gorm:"column:idcardno;type:varchar(50) unsigned;default:'';not null;comment:身份证号"`
Passportno string `json:"passportno" gorm:"column:passportno;type:varchar(50) unsigned;default:'';not null;comment:护照号码"`
Globalroaming string `json:"globalroaming" gorm:"column:globalroaming;type:varchar(50) unsigned;default:'';not null;comment:国际区号"`
Mobilephone string `json:"mobilephone" gorm:"column:mobilephone;type:varchar(50) unsigned;default:'';not null;comment:手机号码"`
Email string `json:"email" gorm:"column:email;type:varchar(255) unsigned;default:'';not null;comment:电子邮件"`
Gender int `json:"gender" gorm:"column:gender;gender:tinyint(1) unsigned;default:1;not null;comment:性别(1:男性;2:女性;3:中性)"`
Birthday int64 `json:"birthday" gorm:"column:birthday;type:bigint(20) unsigned;default:0;not null;comment:birthday"`
Myfolk string `json:"myfolk" gorm:"column:myfolk;type:varchar(50) unsigned;default:'';not null;comment:民族"`
Nativeplace string `json:"nativeplace" gorm:"column:nativeplace;type:varchar(255) unsigned;default:'';not null;comment:籍贯"`
Idcardstartdate int64 `json:"idcardstartdate" gorm:"column:idcardstartdate;type:bigint(20) unsigned;default:0;not null;comment:身份证有效期开始"`
Idcardenddate int64 `json:"idcardenddate" gorm:"column:idcardenddate;type:bigint(20) unsigned;default:0;not null;comment:身份证有效期结束"`
Idcardaddress string `json:"idcardaddress" gorm:"column:idcardaddress;type:varchar(255) unsigned;default:'';not null;comment:身份证地址"`
IdcardIssued string `json:"idcardIssued" gorm:"column:idcardIssued;type:varchar(255) unsigned;default:'';not null;comment:身份证签发机关"`
Health int `json:"health" gorm:"column:health;health:tinyint(1) unsigned;default:1;not null;comment:健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"`
Maritalstatus int `json:"maritalstatus" gorm:"column:maritalstatus;maritalstatus:tinyint(1) unsigned;default:1;not null;comment:婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"`
Internaltelephone string `json:"internaltelephone" gorm:"column:internaltelephone;type:varchar(255) unsigned;default:'';not null;comment:内线电话"`
Currentresidence string `json:"currentresidence" gorm:"column:currentresidence;type:varchar(255) unsigned;default:'';not null;comment:现居住地址"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
Constellation int `json:"constellationing" gorm:"column:constellationing;type:tinyint(3) unsigned;comment:星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"`
Isdoubleworker int `json:"isdoubleworker" gorm:"column:isdoubleworker;isdoubleworker:tinyint(1) unsigned;default:1;comment:是否双职工(1:是;2:否)"`
Isveterans int `json:"isveterans" gorm:"column:isveterans;isveterans:tinyint(1) unsigned;default:1;comment:是否为退役军人(1:是;2:否)"`
Veteransnumber string `json:"veteransnumber" gorm:"column:veteransnumber;type:varchar(255) unsigned;default:'';comment:退役证编号"`
Jobstartdate int64 `json:"jobstartdate" gorm:"column:jobstartdate;type:bigint(20) unsigned;default:0;comment:参加工作日期"`
Entrydate int64 `json:"entrydate" gorm:"column:entrydate;type:bigint(20) unsigned;default:0;comment:入职日期"`
Probationperiod int `json:"probationperiod" gorm:"column:probationperiod;type:int(5) unsigned;default:0;comment:试用期"`
Planformaldate int64 `json:"planformaldate" gorm:"column:planformaldate;type:bigint(20) unsigned;default:0;comment:预计转正日期"`
PoliticalOutlook int `json:"politicaloutlook" gorm:"column:political_outlook;political_outlook:tinyint(3) unsigned;default:1;comment:政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"`
}
func (PersonnelContent *PersonnelContent) TableName() string {
return "personnel_content"
}
//编辑职务分类内容
func (PersonnelContent *PersonnelContent) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&PersonnelContent).Where(whereMap).Updates(saveData).Error
return
}

26
gin_server_admin/model/hrsystem/personnel_education.go

@ -0,0 +1,26 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//教育经历
type PersonnelEducation struct {
Number string `json:"number" gorm:"primaryKey;column:number;type:varchar(30) unsigned;comment:员工工号;index"`
Education int `json:"education" gorm:"column:education;type:int(5) unsigned;default:1;comment:学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授)"`
GraduationSchool string `json:"graduationschool" gorm:"column:graduation_school;type:varchar(255) unsigned;default:'';comment:毕业学校"`
Subject string `json:"subject" gorm:"column:subject;type:varchar(255) unsigned;default:'';comment:专业"`
AdmissionTime int64 `json:"admissiontime" gorm:"column:admission_time;type:bigint(20) unsigned;default:0;comment:入学时间"`
GraduationTime int64 `json:"graduationtime" gorm:"column:graduation_time;type:bigint(20) unsigned;default:0;comment:毕业时间"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;comment:写入时间"`
Level int `json:"level" gorm:"column:level;type:tinyint(1) unsigned;default:1;comment:学历类型(1:普通;2:第一学历;3:最高学历)"`
}
func (PersonnelEducation *PersonnelEducation) TableName() string {
return "personnel_education"
}
//编辑职务分类内容
func (PersonnelEducation *PersonnelEducation) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&PersonnelEducation).Where(whereMap).Updates(saveData).Error
return
}

3
gin_server_admin/model/hrsystem/position.go

@ -18,6 +18,9 @@ type Position struct {
Superior int64 `json:"superior" gorm:"column:superior;type:bigint(20) unsigned;default:0;not null;comment:上级ID"` Superior int64 `json:"superior" gorm:"column:superior;type:bigint(20) unsigned;default:0;not null;comment:上级ID"`
PersonInCharge int `json:"personincharge" gorm:"column:person_in_charge;type:int(1) unsigned;default:2;not null;comment:是否为本部门负责人(1:是;2:否)"` PersonInCharge int `json:"personincharge" gorm:"column:person_in_charge;type:int(1) unsigned;default:2;not null;comment:是否为本部门负责人(1:是;2:否)"`
Department int64 `json:"department" gorm:"column:department;type:bigint(20) unsigned;default:0;not null;comment:部门"` Department int64 `json:"department" gorm:"column:department;type:bigint(20) unsigned;default:0;not null;comment:部门"`
MenuPermit string `json:"menupermit" gorm:"column:menu_permit;type:longtext;comment:菜单许可证"`
ButtonPermit string `json:"buttonpermit" gorm:"column:button_permit;type:longtext;comment:按钮许可"`
School int64 `json:"school" gorm:"column:school;type:bigint(20) unsigned;default:0;not null;comment:部门"`
} }
func (Position *Position) TableName() string { func (Position *Position) TableName() string {

21
gin_server_admin/model/hrsystem/position_level.go

@ -0,0 +1,21 @@
package hrsystem
import "github.com/flipped-aurora/gin-vue-admin/server/global"
//职位等级
type PositionLevel struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
Number string `json:"number" gorm:"column:number;type:varchar(50) unsigned;default:'';not null;comment:等级编号"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:等级名称"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
}
func (PositionLevel *PositionLevel) TableName() string {
return "personnel_change_record"
}
//编辑职务分类内容
func (PositionLevel *PositionLevel) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = global.GVA_DB_HrDataBase.Model(&PositionLevel).Where(whereMap).Updates(saveData).Error
return
}

48
gin_server_admin/model/hrsystem/system_nenu.go

@ -0,0 +1,48 @@
package hrsystem
import (
"strings"
"github.com/flipped-aurora/gin-vue-admin/server/global"
)
//菜单
type SystemMenu struct {
Id int64 `json:"id" gorm:"primaryKey;column:m_id;type:bigint(20) unsigned;not null;comment:ID"`
Title string `json:"title" gorm:"column:m_title;type:varchar(255);not null;comment:菜单名称"`
State int `json:"state" gorm:"column:m_steat;type:tinyint(1) unsigned;default:1;not null;comment:是否启用(1:启用;2:禁用;3:删除)"`
ParentId int64 `json:"parentId" gorm:"column:m_parent;type:bigint(30) unsigned;default:0;not null;comment:'父级(顶级:0)"`
ApiUrl string `json:"apiUrl" gorm:"column:m_url;type:varchar(255);not null;comment:地址"`
Time int64 `json:"time" gorm:"column:m_time;type:bigint(30) unsigned;default:0;not null;comment:创建时间"`
EiteTime int64 `json:"eiteTime" gorm:"column:m_eite_time;type:bigint(30) unsigned;default:0;not null;comment:修改时间"`
UserId int64 `json:"userId" gorm:"column:m_user_id;type:bigint(20) unsigned;not null;default:0;comment:写入人"`
Sort int `json:"sort" gorm:"column:m_sort;type:tinyint(3) unsigned;default:0;not null;comment:排序"`
}
func (SystemMenu *SystemMenu) TableName() string {
return "system_menu"
}
//菜单管理
type SystemMenuOperation struct {
SystemMenu
MenuPermit []MenuOperation `json:"menupermit"`
}
//根据条件获取总数
func (cont *SystemMenu) CountCont(whereMap map[string]interface{}) (countId int64) {
global.GVA_DB_HrDataBase.Model(&cont).Where(whereMap).Count(&countId)
return
}
//获取行政组织内容
func (cont *SystemMenu) GetCont(whereMap map[string]interface{}, field ...string) (err error) {
gormDb := global.GVA_DB_HrDataBase.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}

26
gin_server_admin/model/testpage/myuser.go

@ -59,15 +59,23 @@ type PersonalDetails struct {
//Redis身份识别 //Redis身份识别
type RedisUserInfo struct { type RedisUserInfo struct {
Id string `json:"id"` Id string `json:"id"`
Number string `json:"number"`
DepartmentId string `json:"departmentid"`
WorkshopId string `json:"workshopid"`
PostId string `json:"postid"`
Key string `json:"key"` Key string `json:"key"`
Group string `json:"group"` Number string `json:"number"`
Tema string `json:"tema"`
WorkWechatId string `json:"workwechatid"`
WechatId string `json:"wechatid"`
Name string `json:"name"` Name string `json:"name"`
NickName string `json:"nickname"` Positionleveles string `json:"positionleveles"`
Position string `json:"position"`
Adminorg string `json:"adminorg"`
Company string `json:"company"`
Emptype string `json:"emptype"`
Deparment string `json:"deparment"`
Jobclass string `json:"jobclass"`
Positiongrade string `json:"positiongrade"`
Role string `json:"role"`
Icon string `json:"icon"`
Wechat string `json:"wechat"`
Jurisdiction string `json:"jurisdiction"`
Menuoper string `json:"menuoper"`
Oldgroup string `json:"oldgroup"`
Olddepartment string `json:"olddepartment"`
Oldposition string `json:"oldposition"`
} }

1
gin_server_admin/router/system/sys_base.go

@ -18,6 +18,7 @@ func (s *BaseRouter) InitBaseRouter(Router *gin.RouterGroup) (R gin.IRoutes) {
//自定义登录 //自定义登录
baseRouter.POST("mylogin", customApi.CustomLogin) baseRouter.POST("mylogin", customApi.CustomLogin)
baseRouter.POST("mysystemlogin", customApi.SystemLogin) baseRouter.POST("mysystemlogin", customApi.SystemLogin)
baseRouter.POST("scancodelogin", customApi.ScanCodeLogin)
//Oauth2.0 //Oauth2.0
baseRouter.POST("oauth2", customApi.OauthTwo) baseRouter.POST("oauth2", customApi.OauthTwo)
baseRouter.POST("singlesignon", customApi.SingleSignOn) //单点登录 baseRouter.POST("singlesignon", customApi.SingleSignOn) //单点登录

2
gin_server_admin/utils/redishandel/myredis.go

@ -41,6 +41,8 @@ func (r *RedisStoreType) SetRedisDb(dbId int) {
r.RedisDb = global.GVA_REDIS_WeChat r.RedisDb = global.GVA_REDIS_WeChat
case 2: case 2:
r.RedisDb = global.GVA_REDIS_WeChat2 r.RedisDb = global.GVA_REDIS_WeChat2
case 5:
r.RedisDb = global.GVA_REDIS_WeChat5
default: default:
r.RedisDb = global.GVA_REDIS r.RedisDb = global.GVA_REDIS
} }

4
gin_server_admin/其他支持文件/config.yaml

@ -72,6 +72,10 @@ rediswechat2:
db: 2 db: 2
addr: 127.0.0.1:6379 addr: 127.0.0.1:6379
password: "" password: ""
rediswechat5:
db: 5
addr: 127.0.0.1:6379
password: ""
redisprefix: redisprefix:
prefix: "HXGK_GO_ZhixingCollege" prefix: "HXGK_GO_ZhixingCollege"
alias: "dev" alias: "dev"

Loading…
Cancel
Save