@ -2,6 +2,7 @@ package personnelapi
import (
"fmt"
"hr_server/grocerystore"
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
@ -136,7 +137,6 @@ func (s *StaffApi) ArchivesList(c *gin.Context) {
}
// 获取单个人员档案
// 人员列表
func ( s * StaffApi ) ArchivesCon ( c * gin . Context ) {
var requestData overallhandle . GetId
c . ShouldBindJSON ( & requestData )
@ -248,7 +248,7 @@ func (s *StaffApi) ArchivesCon(c *gin.Context) {
} ( )
synPro . Wait ( )
overallhandle . Result ( 0 , staffCenter , c )
return
// return
}
// 获取双职工信息
@ -1607,3 +1607,193 @@ func (s *StaffApi) DoubleWorkerList(c *gin.Context) {
overallhandle . Result ( 0 , insideWorkHistoryList , c )
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 19 0 9 : 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 0 9 : 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 )
}