|
|
@ -2,6 +2,7 @@ package personnelapi |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
"fmt" |
|
|
"fmt" |
|
|
|
|
|
"hr_server/grocerystore" |
|
|
"hr_server/models" |
|
|
"hr_server/models" |
|
|
"hr_server/overall" |
|
|
"hr_server/overall" |
|
|
"hr_server/overall/overallhandle" |
|
|
"hr_server/overall/overallhandle" |
|
|
@ -136,7 +137,6 @@ func (s *StaffApi) ArchivesList(c *gin.Context) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 获取单个人员档案
|
|
|
// 获取单个人员档案
|
|
|
// 人员列表
|
|
|
|
|
|
func (s *StaffApi) ArchivesCon(c *gin.Context) { |
|
|
func (s *StaffApi) ArchivesCon(c *gin.Context) { |
|
|
var requestData overallhandle.GetId |
|
|
var requestData overallhandle.GetId |
|
|
c.ShouldBindJSON(&requestData) |
|
|
c.ShouldBindJSON(&requestData) |
|
|
@ -248,7 +248,7 @@ func (s *StaffApi) ArchivesCon(c *gin.Context) { |
|
|
}() |
|
|
}() |
|
|
synPro.Wait() |
|
|
synPro.Wait() |
|
|
overallhandle.Result(0, staffCenter, c) |
|
|
overallhandle.Result(0, staffCenter, c) |
|
|
return |
|
|
// return
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 获取双职工信息
|
|
|
// 获取双职工信息
|
|
|
@ -1607,3 +1607,193 @@ func (s *StaffApi) DoubleWorkerList(c *gin.Context) { |
|
|
overallhandle.Result(0, insideWorkHistoryList, c) |
|
|
overallhandle.Result(0, insideWorkHistoryList, c) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2022-10-19 09:40:32 |
|
|
|
|
|
@ 功能: 根据微信或企业微信UserId获取人员信息 |
|
|
|
|
|
@ 参数 |
|
|
|
|
|
|
|
|
|
|
|
#OpenId 微信或企业微信UserId |
|
|
|
|
|
|
|
|
|
|
|
@ 返回值 |
|
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
|
|
*/ |
|
|
|
|
|
func (s *StaffApi) WeChatGiveUsCont(c *gin.Context) { |
|
|
|
|
|
var requestData weChatUserId |
|
|
|
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
overallhandle.Result(100, requestData, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.OpenId == "" { |
|
|
|
|
|
overallhandle.Result(101, requestData, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var userCont models.ManCont |
|
|
|
|
|
staffErr := overall.CONSTANT_DB_HR.Where("`wechat` = ? OR `work_wechat` = ?", requestData.OpenId, requestData.OpenId).First(&userCont).Error |
|
|
|
|
|
if staffErr != nil { |
|
|
|
|
|
overallhandle.Result(105, staffErr, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
switch userCont.State { |
|
|
|
|
|
case 2: |
|
|
|
|
|
overallhandle.Result(0, staffErr, c, "该账号已经被禁用!不可进行操作!") |
|
|
|
|
|
return |
|
|
|
|
|
case 3: |
|
|
|
|
|
overallhandle.Result(0, staffErr, c, "该账号已经被离开企业!不可进行操作!") |
|
|
|
|
|
return |
|
|
|
|
|
default: |
|
|
|
|
|
} |
|
|
|
|
|
if userCont.EmpType >= 11 { |
|
|
|
|
|
overallhandle.Result(0, staffErr, c, "该账号已经被离开企业!不可进行操作!") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
userAgent := overall.CONSTANT_CONFIG.Appsetup.AppKey |
|
|
|
|
|
var md5JiaMi overallhandle.Md5Encryption |
|
|
|
|
|
md5JiaMi.Md5EncryptionInit(userAgent) |
|
|
|
|
|
md5Token := md5JiaMi.Md5EncryptionAlgorithm() |
|
|
|
|
|
|
|
|
|
|
|
var md5JiaMiNumber overallhandle.Md5Encryption |
|
|
|
|
|
// md5JiaMiNumber.Md5EncryptionInit(userCont.Number + uuIdValStr)
|
|
|
|
|
|
md5JiaMiNumber.Md5EncryptionInit(userCont.Number) |
|
|
|
|
|
userKeyCode := md5JiaMiNumber.Md5EncryptionAlgorithm() |
|
|
|
|
|
|
|
|
|
|
|
// sha1Str := userKeyCode + userCont.Number + userCont.Password + md5Token + uuIdValStr
|
|
|
|
|
|
sha1Str := userKeyCode + userCont.Number + userCont.Password + md5Token |
|
|
|
|
|
sha1Token := overallhandle.Sha1Encryption(sha1Str) |
|
|
|
|
|
fmt.Printf("token=========>\n%v\n---->%v\n---->%v\n---->%v\n---->%v\n---->%v\n", userKeyCode, userCont.Number, userCont.Password, md5Token, sha1Token, userAgent) |
|
|
|
|
|
|
|
|
|
|
|
//返回值
|
|
|
|
|
|
saveData := overallhandle.MapOut() |
|
|
|
|
|
saveData["key"] = userKeyCode |
|
|
|
|
|
saveData["token"] = sha1Token |
|
|
|
|
|
saveData["userinfo"] = userCont |
|
|
|
|
|
menuoper, jurisdiction := getRoleSeat(userCont.Role) |
|
|
|
|
|
writeRedisData := map[string]interface{}{ |
|
|
|
|
|
"userkey": userKeyCode, |
|
|
|
|
|
"key": userCont.Key, |
|
|
|
|
|
"usernumber": userCont.Number, |
|
|
|
|
|
"userpwd": userCont.Password, |
|
|
|
|
|
"usertoken": sha1Token, |
|
|
|
|
|
"jurisdiction": jurisdiction, |
|
|
|
|
|
"menuOper": menuoper, |
|
|
|
|
|
"wand": 118, |
|
|
|
|
|
} |
|
|
|
|
|
//API Token数据
|
|
|
|
|
|
redisFileKey := fmt.Sprintf("ScanCode:Authentication:LoginApi_%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, userKeyCode) |
|
|
|
|
|
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS5) |
|
|
|
|
|
redisClient.SetRedisTime(10800) |
|
|
|
|
|
redisClient.HashMsetAdd(redisFileKey, writeRedisData) |
|
|
|
|
|
//缓存写入个人信息
|
|
|
|
|
|
redisMyContKey := fmt.Sprintf("ScanCode:Authentication:UserCont_%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, userCont.Number) |
|
|
|
|
|
myCont := overallhandle.MapOut() |
|
|
|
|
|
myCont["id"] = userCont.Id |
|
|
|
|
|
myCont["number"] = userCont.Number //员工工号
|
|
|
|
|
|
myCont["name"] = userCont.Name //姓名
|
|
|
|
|
|
myCont["icon"] = userCont.Icon //头像
|
|
|
|
|
|
myCont["hireclass"] = userCont.HireClass //雇佣类型(1:雇佣入职;2:再入职;)
|
|
|
|
|
|
myCont["emptype"] = userCont.EmpType //用工关系(1:临时工 , 2:编外人员 ;3:实习&实习生;4:试用员工;5:待分配;6:待岗;7:临时调入;8:正式员工;9:长期病假;10:停薪留职;11:退休;12:辞职;13:辞退;14:离职)
|
|
|
|
|
|
myCont["company"] = userCont.Company //入职公司
|
|
|
|
|
|
myCont["maindeparment"] = userCont.MainDeparment //主部门
|
|
|
|
|
|
myCont["sunmaindeparment"] = userCont.SunMainDeparment //二级主部门
|
|
|
|
|
|
myCont["deparment"] = userCont.Deparment //部门
|
|
|
|
|
|
myCont["adminorg"] = userCont.AdminOrg //所属行政组织
|
|
|
|
|
|
myCont["teamid"] = userCont.TeamId //班组
|
|
|
|
|
|
myCont["position"] = userCont.Position //职位
|
|
|
|
|
|
myCont["jobclass"] = userCont.JobClass //职务分类
|
|
|
|
|
|
myCont["jobid"] = userCont.JobId //职务
|
|
|
|
|
|
myCont["jobleve"] = userCont.JobLeve //职务等级
|
|
|
|
|
|
myCont["wechat"] = userCont.Wechat //微信UserId
|
|
|
|
|
|
myCont["workwechat"] = userCont.WorkWechat //企业微信UserId
|
|
|
|
|
|
myCont["state"] = userCont.State //状态(1:启用;2:禁用;3:删除)
|
|
|
|
|
|
myCont["key"] = userCont.Key //key
|
|
|
|
|
|
myCont["isadmin"] = userCont.IsAdmin //是否为管理员(1:不是;2:分公司;3:集团管理员;4:超级管
|
|
|
|
|
|
myCont["password"] = userCont.Password //密码
|
|
|
|
|
|
myCont["role"] = userCont.Role //角色
|
|
|
|
|
|
myCont["idcardno"] = userCont.Idcardno //身份证号
|
|
|
|
|
|
myCont["passportno"] = userCont.Passportno //护照号码
|
|
|
|
|
|
myCont["globalroaming"] = userCont.Globalroaming //国际区号
|
|
|
|
|
|
myCont["mobilephone"] = userCont.Mobilephone //手机号码
|
|
|
|
|
|
myCont["email"] = userCont.Email //电子邮件
|
|
|
|
|
|
myCont["gender"] = userCont.Gender //性别(1:男性;2:女性;3:中性)
|
|
|
|
|
|
myCont["birthday"] = userCont.Birthday //birthday
|
|
|
|
|
|
myCont["myfolk"] = userCont.Myfolk //民族
|
|
|
|
|
|
myCont["nativeplace"] = userCont.Nativeplace //籍贯
|
|
|
|
|
|
myCont["idcardstartdate"] = userCont.Idcardstartdate //身份证有效期开始
|
|
|
|
|
|
myCont["idcardenddate"] = userCont.Idcardenddate //身份证有效期结束
|
|
|
|
|
|
myCont["idcardaddress"] = userCont.Idcardaddress //身份证地址
|
|
|
|
|
|
myCont["idcardIssued"] = userCont.IdcardIssued //身份证签发机关
|
|
|
|
|
|
myCont["health"] = userCont.Health //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)
|
|
|
|
|
|
myCont["maritalstatus"] = userCont.Maritalstatus //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
|
|
|
|
|
|
myCont["internaltelephone"] = userCont.Internaltelephone //内线电话
|
|
|
|
|
|
myCont["currentresidence"] = userCont.Currentresidence //现居住地址
|
|
|
|
|
|
myCont["constellationing"] = userCont.Constellation //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)
|
|
|
|
|
|
myCont["isdoubleworker"] = userCont.Isdoubleworker //是否双职工(1:是;2:否)
|
|
|
|
|
|
myCont["isveterans"] = userCont.Isveterans //是否为退役军人(1:是;2:否)
|
|
|
|
|
|
myCont["veteransnumber"] = userCont.Veteransnumber //退役证编号
|
|
|
|
|
|
myCont["jobstartdate"] = userCont.Jobstartdate //参加工作日期
|
|
|
|
|
|
myCont["entrydate"] = userCont.Entrydate //入职日期
|
|
|
|
|
|
myCont["probationperiod"] = userCont.Probationperiod //试用期
|
|
|
|
|
|
myCont["planformaldate"] = userCont.Planformaldate //预计转正日期
|
|
|
|
|
|
myCont["political_outlook"] = userCont.PoliticalOutlook //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
|
|
|
|
|
|
redisClient.HashMsetAdd(redisMyContKey, myCont) |
|
|
|
|
|
|
|
|
|
|
|
// fmt.Printf("redisMyContKey------Login----->%v\n", redisMyContKey)
|
|
|
|
|
|
overallhandle.Result(0, saveData, c) |
|
|
|
|
|
|
|
|
|
|
|
// return
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取权限点位
|
|
|
|
|
|
func getRoleSeat(roleId string) (menuStr, buttonStr string) { |
|
|
|
|
|
var roleInfo models.SystemRole |
|
|
|
|
|
err := roleInfo.GetCont(map[string]interface{}{"r_id": roleId}, "r_menu_oper", "r_jurisdiction") |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
menuStr = roleInfo.MenuOper |
|
|
|
|
|
buttonStr = roleInfo.Jurisdiction |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2022-10-19 09:51:50 |
|
|
|
|
|
@ 功能: 修改员工微信或企业微信UserId |
|
|
|
|
|
@ 参数 |
|
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
|
|
|
|
@ 返回值 |
|
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
|
|
*/ |
|
|
|
|
|
func (s *StaffApi) EditUsWechatOpenId(c *gin.Context) { |
|
|
|
|
|
var requestData EditweChatUserId |
|
|
|
|
|
c.ShouldBindJSON(&requestData) |
|
|
|
|
|
if requestData.Id == "" { |
|
|
|
|
|
overallhandle.Result(101, requestData.Id, c, "参数错误") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.WechatId == "" && requestData.WorkWechatId == "" { |
|
|
|
|
|
overallhandle.Result(101, requestData.Id, c, "微信OpenId或企业微信OpenId至少存在一个") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
var usCont models.PersonArchives |
|
|
|
|
|
err := usCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`id`") |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
overallhandle.Result(101, err, c, "该用户不存在!") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
err = usCont.EiteCont(map[string]interface{}{"`id`": usCont.Id}, map[string]interface{}{"`wechat`": requestData.WechatId, "`work_wechat`": requestData.WorkWechatId, "`eite_time`": time.Now().Unix()}) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
overallhandle.Result(106, err, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
overallhandle.Result(0, err, c) |
|
|
|
|
|
} |
|
|
|