@ -26,36 +26,64 @@ func (s *StaffApi) StaffList(c *gin.Context) {
// var personnelModels models.Personnel
// gormDb := overall.CONSTANT_DB_HR.Table(fmt.Sprintf("%s p", personnelModels.TableName())).Select("p.*,pc.mobilephone,pc.gender,pc.isdoubleworker,pc.isveterans,pc.entrydate,pc.probationperiod,pc.planformaldate").Joins("left join personnel_content as pc on pc.number = p.number")
//SELECT * FROM `man_cont` WHERE `position` = 727 AND `emp_type` IN (1,2,3,4,5,6,7,8,9,10) AND `state` = 1 ORDER BY `company` ASC,`maindeparment` ASC,`admin_org` ASC,`position` ASC LIMIT 20
// sqlStrList := "SELECT * FROM `man_cont`"
// sqlStrCount := "SELECT count(*) FROM `man_cont`"
sqlStr := "WHERE `state` = 1"
var personnelModels [ ] models . ManCont
gormDb := overall . CONSTANT_DB_HR . Model ( & models . ManCont { } )
if requestData . Number != "" {
gormDb = gormDb . Where ( "`number` LIKE ?" , "%" + requestData . Number + "%" )
sqlStr = fmt . Sprintf ( "%v AND `number` LIKE %v" , sqlStr , requestData . Number )
}
if requestData . Name != "" {
gormDb = gormDb . Where ( "`name` LIKE ?" , "%" + requestData . Name + "%" )
sqlStr = fmt . Sprintf ( "%v AND `name` LIKE %v" , sqlStr , requestData . Name )
}
if requestData . HireClass != 0 {
gormDb = gormDb . Where ( "`hire_class` = ?" , requestData . HireClass )
sqlStr = fmt . Sprintf ( "%v AND `hire_class` = %v" , sqlStr , requestData . HireClass )
}
if requestData . Company != 0 {
gormDb = gormDb . Where ( "`company` = ?" , requestData . Company )
sqlStr = fmt . Sprintf ( "%v AND `company` = %v" , sqlStr , requestData . Company )
}
if requestData . Deparment != "" {
gormDb = gormDb . Where ( "FIND_IN_SET(?,p.`deparment`)" , requestData . Deparment )
sqlStr = fmt . Sprintf ( "%v AND `maindeparment` = %v" , sqlStr , requestData . Deparment )
}
// if requestData.Deparment != "" {
// gormDb = gormDb.Where("FIND_IN_SET(?,p.`deparment`)", requestData.Deparment)
// }
if requestData . AdminOrg != 0 {
gormDb = gormDb . Where ( "`admin_org` = ?" , requestData . AdminOrg )
sqlStr = fmt . Sprintf ( "%v AND `admin_org` = %v" , sqlStr , requestData . AdminOrg )
}
if requestData . Position != 0 {
gormDb = gormDb . Where ( "`position` = ?" , requestData . Position )
sqlStr = fmt . Sprintf ( "%v AND `position` = %v" , sqlStr , requestData . Position )
}
if requestData . EmpType != 0 {
gormDb = gormDb . Where ( "`emp_type` = ?" , requestData . EmpType )
sqlStr = fmt . Sprintf ( "%v AND `emp_type` = %v" , sqlStr , requestData . EmpType )
} else {
gormDb = gormDb . Where ( "`emp_type` IN ?" , overall . EmployeeStatusIng )
// gormDb = gormDb.Where("`emp_type` IN ?", overall.EmployeeStatusIng)
gormDb = gormDb . Where ( "`emp_type` BETWEEN ? AND ?" , 1 , 10 )
if len ( overall . EmployeeStatusIng ) > 0 {
var empId [ ] string
for i := 0 ; i < len ( overall . EmployeeStatusIng ) ; i ++ {
overEmpId := strconv . Itoa ( overall . EmployeeStatusIng [ i ] )
if overallhandle . IsInTrue [ string ] ( overEmpId , empId ) == false {
empId = append ( empId , overEmpId )
}
}
sqlStr = fmt . Sprintf ( "%v AND `emp_type` IN (%v)" , sqlStr , strings . Join ( empId , "," ) )
}
}
if requestData . Role != "" {
gormDb = gormDb . Where ( "FIND_IN_SET(?,`role`)" , requestData . Role )
sqlStr = fmt . Sprintf ( "%v AND FIND_IN_SET(%v,`role`)" , sqlStr , requestData . Role )
}
gormDb = gormDb . Where ( "`state` = 1" )
var total int64
@ -65,7 +93,16 @@ func (s *StaffApi) StaffList(c *gin.Context) {
}
var positionAry [ ] peopleOutList
errGorm := gormDb . Order ( "`company` ASC,`maindeparment` ASC,`admin_org` ASC,`position` ASC" ) . Limit ( requestData . PageSize ) . Offset ( overallhandle . LimitPage ( requestData . Page , requestData . PageSize ) ) . Find ( & personnelModels ) . Error
// fmt.Printf("%v\n", positionAry)
//原生查询
// selectSqlStr := fmt.Sprintf("%v %v", sqlStrList, sqlStr)
// selectSqlStrCount := fmt.Sprintf("%v %v", sqlStrCount, sqlStr)
// errGorm := overall.CONSTANT_DB_HR.Raw(selectSqlStr).Scan(&personnelModels).Error
// totalErr := overall.CONSTANT_DB_HR.Raw(selectSqlStrCount).Scan(&total).Error
// if totalErr != nil {
// total = 0
// }
// fmt.Printf("personnelModels-------------------->%v---------------->%v---------------->%v\n", total, totalErr, personnelModels)
for _ , v := range personnelModels {
var manInCont peopleOutList
manInCont . Id = v . Id
@ -150,7 +187,7 @@ func (s *StaffApi) StaffList(c *gin.Context) {
// }
// }
// }
positionAry = append ( positionAry , manInCont )
}
if errGorm != nil {
overallhandle . Result ( 105 , errGorm , c )
@ -1386,3 +1423,51 @@ func workInsideHistoryLog(manKeyNum int64, num string, workHistoryList []insideH
}
}
}
// 修改密码
func ( s * StaffApi ) EditPassWord ( c * gin . Context ) {
var requestData editPws
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 1 , err , c , "数据格式不正确!" )
return
}
if requestData . Id == "" {
overallhandle . Result ( 1 , err , c , "未知用户ID" )
return
}
if requestData . Pwd == "" {
overallhandle . Result ( 1 , err , c , "请输入密码!" )
return
}
if requestData . Pwdes == "" {
overallhandle . Result ( 1 , err , c , "请确认密码" )
return
}
if requestData . Pwd != requestData . Pwdes {
overallhandle . Result ( 1 , err , c , "您两次输入的密码不一致!" )
return
}
//员工档案主
var staffInfo models . PersonArchives
//判断工号是存在
whereAry := overallhandle . MapOut ( )
whereAry [ "`key`" ] = requestData . Id
if judgeNoErr := staffInfo . GetCont ( whereAry , "`key`" ) ; judgeNoErr == nil {
overallhandle . Result ( 1 , requestData , c , "该工号已经被使用!请不要重复使用!" )
return
}
//密码加密
var passwordMd5 overallhandle . Md5Encryption
passwordMd5 . Md5EncryptionInit ( requestData . Pwdes )
passwordMd5Str := passwordMd5 . Md5EncryptionAlgorithm ( )
saveDate := overallhandle . MapOut ( )
saveDate [ "`password`" ] = passwordMd5Str
saveDate [ "`eite_time`" ] = time . Now ( ) . Unix ( )
err = staffInfo . EiteCont ( whereAry , saveDate )
if err != nil {
overallhandle . Result ( 1 , err , c , "修改失败!" )
return
}
overallhandle . Result ( 0 , err , c , "修改成功!" )
}