From a8cde13aa13e163b6aa356adee1714e5b063d602 Mon Sep 17 00:00:00 2001 From: herenshan112 Date: Fri, 22 Apr 2022 16:36:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=9F=E4=B8=80=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/admin/dutyassess/assess.go | 6 +- .../api/admin/dutyassess/assesstype.go | 22 +- .../api/admin/dutyassess/dutyes.go | 14 +- .../api/admin/dutyassess/dutyhandle.go | 3 +- .../api/index/assessment/assesshandle.go | 10 +- .../api/index/evaluation/evaluation.go | 22 +- .../api/index/evaluation/flowsend.go | 56 ++-- gin_server_admin/api/v1/assessment/target.go | 9 + .../api/v1/custom/customhandle.go | 183 ++++++++++++- gin_server_admin/api/v1/staff/staffpeople.go | 75 ++++++ gin_server_admin/api/v1/staff/stafftype.go | 8 + gin_server_admin/commonus/publichaneld.go | 124 +++++++-- gin_server_admin/commonus/weChatDateType.go | 22 ++ gin_server_admin/config.yaml | 4 + gin_server_admin/config/config.go | 1 + gin_server_admin/core/server.go | 1 + gin_server_admin/global/global.go | 5 +- gin_server_admin/global/model.go | 25 +- gin_server_admin/initialize/redis.go | 16 ++ gin_server_admin/initialize/router.go | 6 +- gin_server_admin/middleware/myjwt.go | 254 +++++++++++++----- .../model/assessmentmodel/dutyclass.go | 4 +- .../hrsystem/administrative_organization.go | 2 + .../model/hrsystem/double_worker.go | 26 ++ .../model/hrsystem/emergency_contact.go | 23 ++ .../model/hrsystem/family_members.go | 26 ++ .../model/hrsystem/menu_operation.go | 12 + gin_server_admin/model/hrsystem/personnel.go | 54 ++++ .../model/hrsystem/personnel_change_record.go | 27 ++ .../model/hrsystem/personnel_content.go | 46 ++++ .../model/hrsystem/personnel_education.go | 26 ++ gin_server_admin/model/hrsystem/position.go | 3 + .../model/hrsystem/position_level.go | 21 ++ .../model/hrsystem/system_nenu.go | 48 ++++ gin_server_admin/model/testpage/myuser.go | 32 ++- gin_server_admin/router/system/sys_base.go | 1 + gin_server_admin/utils/redishandel/myredis.go | 2 + gin_server_admin/其他支持文件/config.yaml | 4 + 38 files changed, 1044 insertions(+), 179 deletions(-) create mode 100644 gin_server_admin/model/hrsystem/double_worker.go create mode 100644 gin_server_admin/model/hrsystem/emergency_contact.go create mode 100644 gin_server_admin/model/hrsystem/family_members.go create mode 100644 gin_server_admin/model/hrsystem/menu_operation.go create mode 100644 gin_server_admin/model/hrsystem/personnel.go create mode 100644 gin_server_admin/model/hrsystem/personnel_change_record.go create mode 100644 gin_server_admin/model/hrsystem/personnel_content.go create mode 100644 gin_server_admin/model/hrsystem/personnel_education.go create mode 100644 gin_server_admin/model/hrsystem/position_level.go create mode 100644 gin_server_admin/model/hrsystem/system_nenu.go diff --git a/gin_server_admin/api/admin/dutyassess/assess.go b/gin_server_admin/api/admin/dutyassess/assess.go index ff71794..6eee9e3 100644 --- a/gin_server_admin/api/admin/dutyassess/assess.go +++ b/gin_server_admin/api/admin/dutyassess/assess.go @@ -646,7 +646,7 @@ func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) { } //获取所有子栏目 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["departmentmap"] = strings.Join(requestData.DepartAry, ",") @@ -656,7 +656,7 @@ func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) { response.Result(106, delErr, "编辑失败!", c) return } - //修改相关子类 + // //修改相关子类 if len(sunTargetId) > 0 { saveDataSun := commonus.MapOut() 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) } - response.Result(0, delErr, "编辑成功!", c) + response.Result(0, sunTargetId, "编辑成功!", c) } diff --git a/gin_server_admin/api/admin/dutyassess/assesstype.go b/gin_server_admin/api/admin/dutyassess/assesstype.go index e2a5b16..76221cc 100644 --- a/gin_server_admin/api/admin/dutyassess/assesstype.go +++ b/gin_server_admin/api/admin/dutyassess/assesstype.go @@ -243,11 +243,11 @@ type OutTargetCont struct { Operator []string `json:"operator"` OperatorAry []QualEvalArrt `json:"operatormap"` - Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 - CycleAttres int `json:"cycleattr"` //辅助计数 - CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) - CensorCont string `json:"censorcont"` //检查依据 - CensorRate int `json:"censorrate"` //检查频次 + Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 + CycleAttres int `json:"cycleattr"` //辅助计数 + CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) + CensorCont string `json:"censorcont"` //检查依据 + CensorRate int `json:"censorrate"` //检查频次 } //获取定性指标->指标细则修改回显修改或新增 @@ -260,11 +260,11 @@ type GetEiteTargetCont struct { DetailedTargetContent string `json:"detailedtargetcontent"` Operator []string `json:"operator"` - Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 - CycleAttres int `json:"cycleattr"` //辅助计数 - CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) - CensorCont string `json:"censorcont"` //检查依据 - CensorRate int `json:"censorrate"` //检查频次 + Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 + CycleAttres int `json:"cycleattr"` //辅助计数 + CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) + CensorCont string `json:"censorcont"` //检查依据 + CensorRate int `json:"censorrate"` //检查频次 } //添加 定性考核指标关系指定 @@ -294,7 +294,7 @@ type QualEvalSunList struct { MinScore int64 `json:"minscore"` //最小分*100保存 MaxScore int64 `json:"maxscore"` //最大分*100保存 AddOrReduce int `json:"addorreduce"` //1:减少;2:增加 - CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) + CensorType []string `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发) CensorCont string `json:"censorcont"` //检查依据 CensorRate int `json:"censorrate"` //检查频次 } diff --git a/gin_server_admin/api/admin/dutyassess/dutyes.go b/gin_server_admin/api/admin/dutyassess/dutyes.go index 6c86141..50b6420 100644 --- a/gin_server_admin/api/admin/dutyassess/dutyes.go +++ b/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 } - if detailedTarget.CensorType != 0 { - eiteCont["dt_censor_type"] = detailedTarget.CensorType + if len(detailedTarget.CensorType) > 0 { + eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",") } eiteCont["dt_censor_cont"] = detailedTarget.CensorCont if detailedTarget.CensorRate != 0 { @@ -121,8 +121,8 @@ func JudgeDetailsCopyEs(ascription string, sunTargetId int64, detailedTarget Qua eiteCont["dt_cycleattr"] = detailedTarget.CycleAttres } - if detailedTarget.CensorType != 0 { - eiteCont["dt_censor_type"] = detailedTarget.CensorType + if len(detailedTarget.CensorType) > 0 { + eiteCont["dt_censor_type"] = strings.Join(detailedTarget.CensorType, ",") } eiteCont["dt_censor_cont"] = detailedTarget.CensorCont if detailedTarget.CensorRate != 0 { @@ -166,10 +166,10 @@ func JudgeDetailsCopyEs(ascription string, sunTargetId int64, detailedTarget Qua } else { saveColumEs.AddReduce = 1 } - if detailedTarget.CensorType > 0 { - saveColumEs.CensorType = detailedTarget.CensorType + if len(detailedTarget.CensorType) > 0 { + saveColumEs.CensorType = strings.Join(detailedTarget.CensorType, ",") } else { - saveColumEs.CensorType = 1 + saveColumEs.CensorType = "1" } saveColumEs.CensorCont = detailedTarget.CensorCont if detailedTarget.CensorRate > 0 { diff --git a/gin_server_admin/api/admin/dutyassess/dutyhandle.go b/gin_server_admin/api/admin/dutyassess/dutyhandle.go index 2586025..04c1b44 100644 --- a/gin_server_admin/api/admin/dutyassess/dutyhandle.go +++ b/gin_server_admin/api/admin/dutyassess/dutyhandle.go @@ -1094,7 +1094,8 @@ func (d *DutyAssessApi) GetNewEiteDetailedTarget(c *gin.Context) { outPutCont.Cycles = cont.Cycles outPutCont.CycleAttres = cont.CycleAttres - outPutCont.CensorType = cont.CensorType + cenType := strings.Split(cont.CensorType, ",") + outPutCont.CensorType = cenType outPutCont.CensorCont = cont.CensorCont outPutCont.CensorRate = cont.CensorRate //单位 diff --git a/gin_server_admin/api/index/assessment/assesshandle.go b/gin_server_admin/api/index/assessment/assesshandle.go index 037cab7..2f2c974 100644 --- a/gin_server_admin/api/index/assessment/assesshandle.go +++ b/gin_server_admin/api/index/assessment/assesshandle.go @@ -104,7 +104,7 @@ func (a *Assessment) MyAssEssMentList(c *gin.Context) { return } 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 totalErr := gormDb.Count(&total).Error @@ -662,7 +662,7 @@ func (a *Assessment) DepartmentAssess(c *gin.Context) { } if requestData.GroupId == 0 { - groupId, groupErr := strconv.Atoi(userCont.Group) + groupId, groupErr := strconv.Atoi(userCont.Company) if groupErr == nil { requestData.GroupId = groupId } else { @@ -686,7 +686,7 @@ func (a *Assessment) DepartmentAssess(c *gin.Context) { monthData = commonus.TimeStampToDate(dayTime.Unix(), 10) //当月 } 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 { response.Result(105, err, "没有要考核的项目!", c) return @@ -1046,7 +1046,7 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) { response.Result(103, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - departmentID, departmentIDErr := strconv.ParseInt(userInfo.DepartmentId, 10, 64) + departmentID, departmentIDErr := strconv.ParseInt(userInfo.Deparment, 10, 64) if departmentIDErr != nil { response.Result(104, err, "参数错误!请重新提交!", c) return @@ -1055,7 +1055,7 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) { maxErr, maxCont := commonus.GetPositionMaxWeight(departmentID) // fmt.Printf("最大值:======>%v======>%v\n", maxErr, maxCont) if maxErr == true { - postID, postIDErr := strconv.ParseInt(userInfo.PostId, 10, 64) + postID, postIDErr := strconv.ParseInt(userInfo.Position, 10, 64) if postIDErr == nil { if maxCont.Id == postID { gormDb = gormDb.Where("`al_executor_depart` = ?", departmentID) diff --git a/gin_server_admin/api/index/evaluation/evaluation.go b/gin_server_admin/api/index/evaluation/evaluation.go index 1487079..8f1aeb8 100644 --- a/gin_server_admin/api/index/evaluation/evaluation.go +++ b/gin_server_admin/api/index/evaluation/evaluation.go @@ -163,7 +163,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { addScore.Time = operationTime addScore.EiteTime = operationTime 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 { addScore.EvaluationDepartment = departmentId } @@ -171,7 +171,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { if userKeyErr == nil { addScore.EvaluationUser = userKey } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { addScore.EvaluationGroup = userGroup } @@ -363,7 +363,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) { var saveDataCont assessmentmodel.DivisionResponsibilities saveDataCont.ScoreFlow = orderId saveDataCont.Type = v.Type - departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr == nil { saveDataCont.EvaluationDepartment = departmentId } @@ -371,7 +371,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) { if userKeyErr == nil { saveDataCont.EvaluationUser = userKey } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { saveDataCont.EvaluationGroup = userGroup } @@ -545,7 +545,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) { // } // } subtitle := "责任划分" - departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { departmentId = 1 } @@ -590,12 +590,12 @@ func (e *EvaluationInterface) AddCorrectiveMeasures(c *gin.Context) { response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr != nil { response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return @@ -820,8 +820,8 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) { //获取实际值 shiJiZhi := commonus.MapOut() shiJiZhi["fl_evaluation_user"] = userCont.Key - shiJiZhi["fl_evaluation_department"] = userCont.DepartmentId - shiJiZhi["fl_evaluation_group"] = userCont.Group + shiJiZhi["fl_evaluation_department"] = userCont.Deparment + shiJiZhi["fl_evaluation_group"] = userCont.Company operationTime := time.Now().Unix() switch v.Cycles { @@ -907,12 +907,12 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr != nil { response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return diff --git a/gin_server_admin/api/index/evaluation/flowsend.go b/gin_server_admin/api/index/evaluation/flowsend.go index 7b98948..782375d 100644 --- a/gin_server_admin/api/index/evaluation/flowsend.go +++ b/gin_server_admin/api/index/evaluation/flowsend.go @@ -93,7 +93,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { addScore.EiteTime = operationTime addScore.Count = countFrequency //发生次数 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 { addScore.EvaluationDepartment = departmentId //测评部门 } @@ -101,7 +101,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { if userKeyErr == nil { addScore.EvaluationUser = userKey //测评人 } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { addScore.EvaluationGroup = userGroup //测评集团 } @@ -131,7 +131,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { //给发起人部门负责人发送消息 //1、获取发起人部门负责人 - founderDepartId, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) + founderDepartId, _ := strconv.ParseInt(userCont.Deparment, 10, 64) sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, founderDepartId) //获取对应部门负责人 if sendUserIsTrue != true { // 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 for _, v := range sendUserList { - if v == userCont.WechatId || v == userCont.WorkWechatId { + if v == userCont.Wechat { myIsTrue = 2 } } @@ -196,18 +196,11 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { var twoLevelKeyValue string = "" var twoLevelUserId string = "" //获取操作人 - if userCont.WechatId != "" { - userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.WechatId) + if userCont.Wechat != "" { + userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.Wechat) if userWechatErr == true { twoLevelKeyValue = userWechat.Name - twoLevelUserId = userCont.WechatId - } - } - if userCont.WorkWechatId != "" { - userWechatErr, userWechat := commonus.GetUesrContForWechatID(userCont.WorkWechatId) - if userWechatErr == true { - twoLevelKeyValue = userWechat.Name - twoLevelUserId = userCont.WorkWechatId + twoLevelUserId = userCont.Wechat } } @@ -235,7 +228,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { 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) //获取对应部门负责人 sendUserStr := strings.Join(sendUserList, "|") //按钮 @@ -353,7 +346,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { var saveDataCont assessmentmodel.DivisionResponsibilities saveDataCont.ScoreFlow = orderId //流程Key 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 { saveDataCont.EvaluationDepartment = departmentId //测评人部门 } @@ -361,7 +354,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { if userKeyErr == nil { saveDataCont.EvaluationUser = userKey //测评人 } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { saveDataCont.EvaluationGroup = userGroup //测评人集团 } @@ -435,7 +428,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { var saveDataContTeam assessmentmodel.DivisionResponsibilities saveDataContTeam.ScoreFlow = orderId //流程Key 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 { saveDataContTeam.EvaluationDepartment = departmentId //测评人部门 } @@ -443,7 +436,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { if userKeyErr == nil { saveDataContTeam.EvaluationUser = userKey //测评人 } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr == nil { saveDataContTeam.EvaluationGroup = userGroup //测评人集团 } @@ -534,18 +527,13 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { // } //部门名称 var twoLevelKeyName string = "" - departmentId, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, _ := strconv.ParseInt(userCont.Deparment, 10, 64) execDerpatErr, execDerpat := commonus.GetBranchFactory(departmentId) if execDerpatErr == true { twoLevelKeyName = execDerpat.Name } - var twoLevelUserId string = "" - if userCont.WechatId != "" { - twoLevelUserId = userCont.WechatId - } - if userCont.WorkWechatId != "" { - twoLevelUserId = userCont.WorkWechatId - } + twoLevelUserId := userCont.Wechat + cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderId) // 按钮 var buttonMap []sendmessage.ButtonListtype @@ -593,12 +581,12 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) { response.Result(102, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) + departmentId, departmentIdErr := strconv.ParseInt(userCont.Deparment, 10, 64) if departmentIdErr != nil { response.Result(103, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) return } - userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) + userGroup, userGroupErr := strconv.ParseInt(userCont.Company, 10, 64) if userGroupErr != nil { response.Result(104, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) 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) //获取对应部门负责人 sendUserStr := strings.Join(sendUserList, "|") taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10) //卡片唯一识别符 @@ -717,13 +705,7 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) { if execDerpatErr == true { twoLevelKeyName = execDerpat.Name } - var twoLevelUserId string = "" - if userCont.WechatId != "" { - twoLevelUserId = userCont.WechatId - } - if userCont.WorkWechatId != "" { - twoLevelUserId = userCont.WorkWechatId - } + twoLevelUserId := userCont.Wechat cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", requestData.OrderId) // 按钮 diff --git a/gin_server_admin/api/v1/assessment/target.go b/gin_server_admin/api/v1/assessment/target.go index 2301204..100fe7c 100644 --- a/gin_server_admin/api/v1/assessment/target.go +++ b/gin_server_admin/api/v1/assessment/target.go @@ -519,6 +519,15 @@ func (d *DutyHandle) EiteTarget(c *gin.Context) { if roleIsTrue != true { response.Result(106, roleErr, "编辑失败!", c) } 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) } } diff --git a/gin_server_admin/api/v1/custom/customhandle.go b/gin_server_admin/api/v1/custom/customhandle.go index 0c55672..a5c1bf8 100644 --- a/gin_server_admin/api/v1/custom/customhandle.go +++ b/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/model/common/response" 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/redishandel" @@ -168,7 +169,7 @@ func (cu *CustomHandle) SystemLogin(c *gin.Context) { redisAdminClient.SetRedisTime(0) 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) var surisdictionStr []string var surisdictionInt []int64 @@ -340,3 +341,183 @@ func (cu *CustomHandle) SingleSignOn(c *gin.Context) { redisUserClient.HashMsetAdd(redisKeyMap, userInfoMap) 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 +} diff --git a/gin_server_admin/api/v1/staff/staffpeople.go b/gin_server_admin/api/v1/staff/staffpeople.go index b02590b..6472035 100644 --- a/gin_server_admin/api/v1/staff/staffpeople.go +++ b/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/global" "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/gin-gonic/gin" ) @@ -208,3 +210,76 @@ func GetUserWork(userName, userPwd string) (isTrue bool, staffInfo staffOutInfo) // fmt.Printf("&&&&&&&&&&&>%v\n", staffInfo) 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 +} diff --git a/gin_server_admin/api/v1/staff/stafftype.go b/gin_server_admin/api/v1/staff/stafftype.go index 34ef688..1d28fb4 100644 --- a/gin_server_admin/api/v1/staff/stafftype.go +++ b/gin_server_admin/api/v1/staff/stafftype.go @@ -2,6 +2,7 @@ package staff import ( "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" ) @@ -36,3 +37,10 @@ type groupUser struct { Number string `json:"number"` Children []groupUser `json:"groupUser"` } + +//输出 +type OutScanCodeUserInfo struct { + global.GAV_USER_CONT + State int `json:"state"` + Password string `json:"password"` +} diff --git a/gin_server_admin/commonus/publichaneld.go b/gin_server_admin/commonus/publichaneld.go index bd09c91..3d0405a 100644 --- a/gin_server_admin/commonus/publichaneld.go +++ b/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/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/systemuser" "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) { - 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() - tokenInfo, isTrue := redisClient.HashGetAll("system:userContent_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr) - if isTrue != true { + tokenInfo, isTrue := redisClient.HashGetAll("ScanCode:UserInfo:LoginUser_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + global.GVA_SCANCODE_USERNUMBER) + if isTrue == true { + identityErr := mapstructure.Decode(tokenInfo, &redisUserInfo) + if identityErr == nil { + isTrue = true + return + } else { + redisUserInfo, isTrue = getPeopleInfo() + return + } + } else { + redisUserInfo, isTrue = getPeopleInfo() return } - identityErr := mapstructure.Decode(tokenInfo, &redisUserInfo) - if identityErr != nil { - isTrue = false + isTrue = true + return +} + +//获取用户信息 +func getPeopleInfo() (redisUserInfo testpage.RedisUserInfo, isTrue bool) { + isTrue = false + var ueInfo hrsystem.Personnel + err := global.GVA_DB_HrDataBase.Where("`number` = ?", global.GVA_SCANCODE_USERNUMBER).First(&ueInfo).Error + if err != nil { 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 } -//自定义管理端身份解析 -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 { +//获取权限点位 +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 } - identityErr := mapstructure.Decode(tokenInfo, &redisAdminInfo) - if identityErr != nil { - isTrue = false + 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 +} + +//获取员工公司职务 +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 } diff --git a/gin_server_admin/commonus/weChatDateType.go b/gin_server_admin/commonus/weChatDateType.go index b01c8e6..5109d8a 100644 --- a/gin_server_admin/commonus/weChatDateType.go +++ b/gin_server_admin/commonus/weChatDateType.go @@ -392,3 +392,25 @@ func (m *MyCustomAdminLogonIdentify) MyCustomAdminLogonIdentifyInit() { m.UserPwd = "" 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" +} diff --git a/gin_server_admin/config.yaml b/gin_server_admin/config.yaml index b16c124..b32ddf3 100644 --- a/gin_server_admin/config.yaml +++ b/gin_server_admin/config.yaml @@ -30,6 +30,10 @@ rediswechat2: db: 2 addr: 127.0.0.1:6379 password: "" +rediswechat5: + db: 5 + addr: 127.0.0.1:6379 + password: "" redisprefix: prefix: "HXGK_GO_ZhixingCollege" alias: "dev" diff --git a/gin_server_admin/config/config.go b/gin_server_admin/config/config.go index 5f29654..885fb0a 100644 --- a/gin_server_admin/config/config.go +++ b/gin_server_admin/config/config.go @@ -6,6 +6,7 @@ type Server struct { Redis Redis `mapstructure:"redis" json:"redis" yaml:"redis"` WechatRedis Redis `mapstructure:"rediswechat" json:"rediswechat" yaml:"rediswechat"` 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键浅醉 Email Email `mapstructure:"email" json:"email" yaml:"email"` Casbin Casbin `mapstructure:"casbin" json:"casbin" yaml:"casbin"` diff --git a/gin_server_admin/core/server.go b/gin_server_admin/core/server.go index 84dc803..c2ff9bd 100644 --- a/gin_server_admin/core/server.go +++ b/gin_server_admin/core/server.go @@ -19,6 +19,7 @@ func RunWindowsServer() { //初始化企业微信redis initialize.WechatRedis() initialize.WechatRedis2() + initialize.WechatRedis5() if global.GVA_CONFIG.System.UseMultipoint { // 初始化redis服务 diff --git a/gin_server_admin/global/global.go b/gin_server_admin/global/global.go index 047a9dc..c09fd9e 100644 --- a/gin_server_admin/global/global.go +++ b/gin_server_admin/global/global.go @@ -46,11 +46,14 @@ var ( //企业微信专用redis GVA_REDIS_WeChat *redis.Client GVA_REDIS_WeChat2 *redis.Client + GVA_REDIS_WeChat5 *redis.Client //个人配置 // GVA_MyConfig config.MyConfig //鉴权 GVA_INDEX_USERKEY int64 - GVA_ADMIN_USERKEY int64 + GVA_ADMIN_USERKEY string + GVA_SCANCODE_USERNUMBER string Gva_Authority_Authentication []int64 Gva_Authority_Authentication_Subsidiary []int64 + GVA_SCANCODE_USERINFO GAV_USER_CONT ) diff --git a/gin_server_admin/global/model.go b/gin_server_admin/global/model.go index 2e2bb70..4422986 100644 --- a/gin_server_admin/global/model.go +++ b/gin_server_admin/global/model.go @@ -1,8 +1,9 @@ package global import ( - "gorm.io/gorm" "time" + + "gorm.io/gorm" ) type GVA_MODEL struct { @@ -11,3 +12,25 @@ type GVA_MODEL struct { UpdatedAt time.Time // 更新时间 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"` +} diff --git a/gin_server_admin/initialize/redis.go b/gin_server_admin/initialize/redis.go index 7a84f86..5e9ffbd 100644 --- a/gin_server_admin/initialize/redis.go +++ b/gin_server_admin/initialize/redis.go @@ -56,3 +56,19 @@ func WechatRedis2() { 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 + } +} diff --git a/gin_server_admin/initialize/router.go b/gin_server_admin/initialize/router.go index 3ffbe36..b4e6407 100644 --- a/gin_server_admin/initialize/router.go +++ b/gin_server_admin/initialize/router.go @@ -152,7 +152,8 @@ func Routers() *gin.Engine { //自定义登录验证 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) //员工相关操作 @@ -162,7 +163,8 @@ func Routers() *gin.Engine { } //自定义后台登录 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) //试题相关 systemRouter.InitSystemAdminRouter(MyCustomSystemGroup) //系统管理员 diff --git a/gin_server_admin/middleware/myjwt.go b/gin_server_admin/middleware/myjwt.go index 827265c..83b335b 100644 --- a/gin_server_admin/middleware/myjwt.go +++ b/gin_server_admin/middleware/myjwt.go @@ -16,60 +16,60 @@ import ( //鉴权 func MyAuthentication() 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") + // 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": 1}, "未登录或非法访问", c) - c.Abort() - return - } - userAgent = "250" - userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64) - if userKeyIntErr != nil { - response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c) - c.Abort() - return - } - global.GVA_INDEX_USERKEY = userKeyInt + // if userKey == "" || userToken == "" || userAgent == "" { + // response.FailWithDetailed(gin.H{"reload": true, "code": 1}, "未登录或非法访问", c) + // c.Abort() + // return + // } + // userAgent = "250" + // userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64) + // if userKeyIntErr != nil { + // response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c) + // c.Abort() + // return + // } + // global.GVA_INDEX_USERKEY = userKeyInt - redisClient := redishandel.RunRedis() - tokenInfo, isTrues := redisClient.HashGetAll("system:Identification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey) - var myCustomIdentify commonus.MyCustomLogonIdentify - if isTrues != true { - response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) - c.Abort() - return - } else { - tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify) - if tokenErr != nil { - response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) - c.Abort() - return - } - 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": 3, "userAgent": userAgent, "sha1Token": sha1Token, "userToken": userToken, "tokenInfo": tokenInfo}, "授权已过期", c) - c.Abort() - return - } - } - redisClient.SetRedisTime(86400) - // redisClient.SetRedisTime(60) - writeRedisData := map[string]interface{}{ - "userkey": myCustomIdentify.UserKey, - "usernumber": myCustomIdentify.UserNumber, - "userpwd": myCustomIdentify.UserPwd, - "usertoken": myCustomIdentify.UserToken, - } + // redisClient := redishandel.RunRedis() + // tokenInfo, isTrues := redisClient.HashGetAll("system:Identification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey) + // var myCustomIdentify commonus.MyCustomLogonIdentify + // if isTrues != true { + // response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) + // c.Abort() + // return + // } else { + // tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify) + // if tokenErr != nil { + // response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c) + // c.Abort() + // return + // } + // 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": 3, "userAgent": userAgent, "sha1Token": sha1Token, "userToken": userToken, "tokenInfo": tokenInfo}, "授权已过期", c) + // c.Abort() + // return + // } + // } + // redisClient.SetRedisTime(86400) + // // redisClient.SetRedisTime(60) + // writeRedisData := map[string]interface{}{ + // "userkey": myCustomIdentify.UserKey, + // "usernumber": myCustomIdentify.UserNumber, + // "userpwd": myCustomIdentify.UserPwd, + // "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() } } @@ -99,32 +99,143 @@ func MyCasbinHandler() gin.HandlerFunc { // c.Abort() // 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 { + 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) { userKey := c.Request.Header.Get("user-key") userToken := c.Request.Header.Get("user-token") userAgent := c.Request.Header.Get("User-Agent") + redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey + 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 + // userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64) + // if userKeyIntErr != nil { + // response.FailWithDetailed(gin.H{"reload": true, "code": 2, "userKey": userKey}, "未登录或非法访问", c) + // c.Abort() + // return + // } + global.GVA_ADMIN_USERKEY = userKey redisClient := redishandel.RunRedis() - tokenInfo, isTrues := redisClient.HashGetAll("system:SystemIdentification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey) - var myCustomIdentify commonus.MyCustomAdminLogonIdentify + redisClient.SetRedisDb(5) + + tokenInfo, isTrues := redisClient.HashGetAll(redisFileKey) + var myCustomIdentify commonus.ScanCodeLogin + if isTrues != true { response.FailWithDetailed(gin.H{"reload": true, "code": 102}, "您的帐户异地登陆或令牌失效", c) c.Abort() @@ -140,7 +251,12 @@ func SystemAuthentication() gin.HandlerFunc { var md5JiaMi commonus.Md5Encryption md5JiaMi.Md5EncryptionInit(userAgent) 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) // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent) if sha1Token != userToken { @@ -149,9 +265,11 @@ func SystemAuthentication() gin.HandlerFunc { return } } - redisClient.SetRedisTime(86400) + global.GVA_SCANCODE_USERNUMBER = myCustomIdentify.UserNumber + writeRedisData := map[string]interface{}{ "userkey": myCustomIdentify.UserKey, + "key": myCustomIdentify.Key, "usernumber": myCustomIdentify.UserNumber, "userpwd": myCustomIdentify.UserPwd, "usertoken": myCustomIdentify.UserToken, @@ -172,6 +290,7 @@ func SystemAuthentication() gin.HandlerFunc { } } + global.Gva_Authority_Authentication = surisdictionInt var menuOperStr []string var menuOperInts []int64 @@ -186,14 +305,9 @@ func SystemAuthentication() gin.HandlerFunc { } } 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) { + redisClient.SetRedisTime(10800) + redisClient.HashMsetAdd(redisFileKey, writeRedisData) + c.Next() } } diff --git a/gin_server_admin/model/assessmentmodel/dutyclass.go b/gin_server_admin/model/assessmentmodel/dutyclass.go index 3d46bec..0eb8544 100644 --- a/gin_server_admin/model/assessmentmodel/dutyclass.go +++ b/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保存"` 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:无属性,现场确认加或减"` - 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:检查依据"` 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:年"` @@ -283,7 +283,7 @@ type QualitativeEvaluation struct { 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保存"` 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:检查依据"` CensorRate int `json:"censorrate" gorm:"column:qe_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"` } diff --git a/gin_server_admin/model/hrsystem/administrative_organization.go b/gin_server_admin/model/hrsystem/administrative_organization.go index 093ea7c..b2be721 100644 --- a/gin_server_admin/model/hrsystem/administrative_organization.go +++ b/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:创建时间"` 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:微信组织架构对照码"` + 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 { diff --git a/gin_server_admin/model/hrsystem/double_worker.go b/gin_server_admin/model/hrsystem/double_worker.go new file mode 100644 index 0000000..f2de517 --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/emergency_contact.go b/gin_server_admin/model/hrsystem/emergency_contact.go new file mode 100644 index 0000000..1f751d7 --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/family_members.go b/gin_server_admin/model/hrsystem/family_members.go new file mode 100644 index 0000000..4cc57de --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/menu_operation.go b/gin_server_admin/model/hrsystem/menu_operation.go new file mode 100644 index 0000000..bc89c10 --- /dev/null +++ b/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" +} diff --git a/gin_server_admin/model/hrsystem/personnel.go b/gin_server_admin/model/hrsystem/personnel.go new file mode 100644 index 0000000..e39adb1 --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/personnel_change_record.go b/gin_server_admin/model/hrsystem/personnel_change_record.go new file mode 100644 index 0000000..f3a41cf --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/personnel_content.go b/gin_server_admin/model/hrsystem/personnel_content.go new file mode 100644 index 0000000..866669d --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/personnel_education.go b/gin_server_admin/model/hrsystem/personnel_education.go new file mode 100644 index 0000000..590b3b7 --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/position.go b/gin_server_admin/model/hrsystem/position.go index 8146fb4..a44c8b7 100644 --- a/gin_server_admin/model/hrsystem/position.go +++ b/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"` 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:部门"` + 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 { diff --git a/gin_server_admin/model/hrsystem/position_level.go b/gin_server_admin/model/hrsystem/position_level.go new file mode 100644 index 0000000..e35e33d --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/hrsystem/system_nenu.go b/gin_server_admin/model/hrsystem/system_nenu.go new file mode 100644 index 0000000..b6e11a1 --- /dev/null +++ b/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 +} diff --git a/gin_server_admin/model/testpage/myuser.go b/gin_server_admin/model/testpage/myuser.go index d963194..e64c45f 100644 --- a/gin_server_admin/model/testpage/myuser.go +++ b/gin_server_admin/model/testpage/myuser.go @@ -58,16 +58,24 @@ type PersonalDetails struct { //Redis身份识别 type RedisUserInfo struct { - Id string `json:"id"` - Number string `json:"number"` - DepartmentId string `json:"departmentid"` - WorkshopId string `json:"workshopid"` - PostId string `json:"postid"` - Key string `json:"key"` - Group string `json:"group"` - Tema string `json:"tema"` - WorkWechatId string `json:"workwechatid"` - WechatId string `json:"wechatid"` - Name string `json:"name"` - NickName string `json:"nickname"` + Id string `json:"id"` + Key string `json:"key"` + Number string `json:"number"` + 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"` + Oldposition string `json:"oldposition"` } diff --git a/gin_server_admin/router/system/sys_base.go b/gin_server_admin/router/system/sys_base.go index d02cf21..e43fa10 100644 --- a/gin_server_admin/router/system/sys_base.go +++ b/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("mysystemlogin", customApi.SystemLogin) + baseRouter.POST("scancodelogin", customApi.ScanCodeLogin) //Oauth2.0 baseRouter.POST("oauth2", customApi.OauthTwo) baseRouter.POST("singlesignon", customApi.SingleSignOn) //单点登录 diff --git a/gin_server_admin/utils/redishandel/myredis.go b/gin_server_admin/utils/redishandel/myredis.go index 054bccb..7524bb1 100644 --- a/gin_server_admin/utils/redishandel/myredis.go +++ b/gin_server_admin/utils/redishandel/myredis.go @@ -41,6 +41,8 @@ func (r *RedisStoreType) SetRedisDb(dbId int) { r.RedisDb = global.GVA_REDIS_WeChat case 2: r.RedisDb = global.GVA_REDIS_WeChat2 + case 5: + r.RedisDb = global.GVA_REDIS_WeChat5 default: r.RedisDb = global.GVA_REDIS } diff --git a/gin_server_admin/其他支持文件/config.yaml b/gin_server_admin/其他支持文件/config.yaml index de3fcb9..634d5c3 100644 --- a/gin_server_admin/其他支持文件/config.yaml +++ b/gin_server_admin/其他支持文件/config.yaml @@ -72,6 +72,10 @@ rediswechat2: db: 2 addr: 127.0.0.1:6379 password: "" +rediswechat5: + db: 5 + addr: 127.0.0.1:6379 + password: "" redisprefix: prefix: "HXGK_GO_ZhixingCollege" alias: "dev"