|
|
@ -14,6 +14,8 @@ import com.qs.serve.common.model.dto.R; |
|
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
|
import com.qs.serve.common.util.*; |
|
|
|
import com.qs.serve.modules.sys.entity.*; |
|
|
|
import com.qs.serve.modules.sys.entity.bo.SysUserBatchBo; |
|
|
|
import com.qs.serve.modules.sys.entity.bo.SysUserBo; |
|
|
|
import com.qs.serve.modules.sys.entity.dto.*; |
|
|
|
import com.qs.serve.modules.sys.mapper.SysUserMapper; |
|
|
|
import com.qs.serve.modules.sys.service.*; |
|
|
@ -43,16 +45,13 @@ import java.util.stream.Collectors; |
|
|
|
public class SysUserController { |
|
|
|
|
|
|
|
private SysUserService sysUserService; |
|
|
|
private SysUserMapper sysUserMapper; |
|
|
|
private SysDeptService sysDeptService; |
|
|
|
private SysPostService sysPostService; |
|
|
|
private SysRoleService sysRoleService; |
|
|
|
private WxUserService wxUserService; |
|
|
|
private RedisService redisService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 个人登录信息 |
|
|
|
* (个人)登录信息 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/info") |
|
|
@ -69,24 +68,8 @@ public class SysUserController { |
|
|
|
return R.ok(sysUserVo); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 个人信息详细 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/detail") |
|
|
|
public R<SysUser> detail(){ |
|
|
|
LoginUser loginUser = AuthContextUtils.getLoginUser(); |
|
|
|
SysUser sysUser = sysUserService.getById(loginUser.getUserId()); |
|
|
|
sysUser.setAuthorIds(loginUser.getAuthorIds()); |
|
|
|
sysUser.setAuthorList(loginUser.getAuthorList()); |
|
|
|
sysUserService.relateInfo(sysUser); |
|
|
|
sysUser.setPassword(null); |
|
|
|
return R.ok(sysUser); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 个人密码更新 |
|
|
|
* (个人)密码更新 |
|
|
|
* @param param |
|
|
|
* @return |
|
|
|
*/ |
|
|
@ -106,39 +89,49 @@ public class SysUserController { |
|
|
|
return R.error(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 获取检测工号 |
|
|
|
* 信息详细 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@LimitSubmit(message = "请勿频繁操作!!") |
|
|
|
@GetMapping("/getUserCode") |
|
|
|
@PreAuthorize("hasRole('sys:user:query')") |
|
|
|
public R<String> getUserCode(){ |
|
|
|
LocalDateTime localDateTime = LocalDateTime.now(); |
|
|
|
String timeKey = localDateTime.getYear() + String.format("%02d",localDateTime.getMonthValue()); |
|
|
|
String key = RedisCacheKeys.SYS_USER_CODE_KEY + timeKey; |
|
|
|
Integer val = redisService.getInteger(key); |
|
|
|
if(val==null){ |
|
|
|
val = 1; |
|
|
|
}else { |
|
|
|
val +=1; |
|
|
|
} |
|
|
|
redisService.set(key,val); |
|
|
|
return R.ok("A"+timeKey+val,R.SUCCESS_TIPS); |
|
|
|
@GetMapping("/detail") |
|
|
|
public R<SysUser> detail(){ |
|
|
|
LoginUser loginUser = AuthContextUtils.getLoginUser(); |
|
|
|
SysUser sysUser = sysUserService.getById(loginUser.getUserId()); |
|
|
|
sysUser.setAuthorIds(loginUser.getAuthorIds()); |
|
|
|
sysUser.setAuthorList(loginUser.getAuthorList()); |
|
|
|
sysUserService.relateInfo(sysUser); |
|
|
|
sysUser.setPassword(null); |
|
|
|
return R.ok(sysUser); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 检测工号是否已被使用 |
|
|
|
* @param code |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/checkCode") |
|
|
|
@PreAuthorize("hasRole('sys:user:query')") |
|
|
|
public R<Boolean> checkCode(String code){ |
|
|
|
return R.ok(sysUserMapper.checkCode(code)>0L); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取检测工号
|
|
|
|
// @LimitSubmit(message = "请勿频繁操作!!")
|
|
|
|
// @GetMapping("/getUserCode")
|
|
|
|
// @PreAuthorize("hasRole('sys:user:query')")
|
|
|
|
// public R<String> getUserCode(){
|
|
|
|
// LocalDateTime localDateTime = LocalDateTime.now();
|
|
|
|
// String timeKey = localDateTime.getYear() + String.format("%02d",localDateTime.getMonthValue());
|
|
|
|
// String key = RedisCacheKeys.SYS_USER_CODE_KEY + timeKey;
|
|
|
|
// Integer val = redisService.getInteger(key);
|
|
|
|
// if(val==null){
|
|
|
|
// val = 1;
|
|
|
|
// }else {
|
|
|
|
// val +=1;
|
|
|
|
// }
|
|
|
|
// redisService.set(key,val);
|
|
|
|
// return R.ok("A"+timeKey+val,R.SUCCESS_TIPS);
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
//检测工号是否已被使用
|
|
|
|
// @GetMapping("/checkCode")
|
|
|
|
// @PreAuthorize("hasRole('sys:user:query')")
|
|
|
|
// public R<Boolean> checkCode(String code){
|
|
|
|
// return R.ok(sysUserMapper.checkCode(code)>0L);
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -208,14 +201,15 @@ public class SysUserController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 保存 |
|
|
|
* @param param |
|
|
|
* @param userBo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@SysLog(title = "人员",desc = "用户新增",biz = BizType.INSERT) |
|
|
|
@PostMapping("/save") |
|
|
|
@PreAuthorize("hasRole('sys:user:insert')") |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public R<?> save(@RequestBody @Valid SysUser param){ |
|
|
|
public R<?> save(@RequestBody @Valid SysUserBo userBo){ |
|
|
|
SysUser param = CopierUtil.copy(userBo,new SysUser()); |
|
|
|
//设置普通管理员
|
|
|
|
param.setSuperFlag(0); |
|
|
|
param.setTenantId(AuthContextUtils.getTenant()); |
|
|
@ -228,43 +222,27 @@ public class SysUserController { |
|
|
|
} |
|
|
|
param.setAccount(param.getMobile()); |
|
|
|
param.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); |
|
|
|
if(param.getMobile()!=null){ |
|
|
|
param.setAccount(param.getMobile()); |
|
|
|
} |
|
|
|
boolean result = sysUserService.save(param); |
|
|
|
if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(param.getRoleIds())){ |
|
|
|
sysRoleService.saveUserRole4Edit(param.getRoleIds(),param.getId()); |
|
|
|
if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){ |
|
|
|
sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId()); |
|
|
|
} |
|
|
|
return R.isTrue(result); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 重置用户密码 |
|
|
|
* @param uid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@SysLog(title = "人员",desc = "重置密码",biz = BizType.RESET) |
|
|
|
@PostMapping("/resetPwd/{uid}") |
|
|
|
@PreAuthorize("hasRole('sys:user:reset')") |
|
|
|
public R<?> resetPwd(@PathVariable("uid") String uid){ |
|
|
|
SysUser sysUser = sysUserService.getById(uid); |
|
|
|
if(sysUser.getSuperFlag().equals(1)){ |
|
|
|
Assert.throwEx("最高级管理员不可重置密码"); |
|
|
|
} |
|
|
|
SysUser sysUser1 = new SysUser(); |
|
|
|
sysUser1.setId(uid); |
|
|
|
sysUser1.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); |
|
|
|
sysUserService.updateById(sysUser1); |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据ID更新 |
|
|
|
* @param param |
|
|
|
* 更新 |
|
|
|
* @param userBo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@SysLog(title = "人员",desc = "用户更新",biz = BizType.UPDATE) |
|
|
|
@PostMapping("/updateById") |
|
|
|
@PreAuthorize("hasRole('sys:user:update')") |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public R<?> updateById(@RequestBody @Valid SysUser param){ |
|
|
|
public R<?> updateById(@RequestBody @Valid SysUserBo userBo){ |
|
|
|
SysUser param = CopierUtil.copy(userBo,new SysUser()); |
|
|
|
if(param.getMobile()!=null){ |
|
|
|
param.setAccount(param.getMobile()); |
|
|
|
} |
|
|
@ -291,5 +269,66 @@ public class SysUserController { |
|
|
|
return R.isTrue(result); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* (批量)保存,建议每次小于800条 |
|
|
|
* @param batchBo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@SysLog(title = "人员",desc = "用户新增",biz = BizType.INSERT) |
|
|
|
@PostMapping("/saveBatch") |
|
|
|
@PreAuthorize("hasRole('sys:user:insert')") |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public R<?> saveBatch(@RequestBody @Valid SysUserBatchBo batchBo){ |
|
|
|
for (SysUserBo userBo : batchBo.getUserList()) { |
|
|
|
SysUser dbData = sysUserService.getById(userBo.getId()); |
|
|
|
SysUser param = CopierUtil.copy(userBo,dbData==null?new SysUser():dbData); |
|
|
|
//设置普通管理员
|
|
|
|
param.setSuperFlag(0); |
|
|
|
param.setTenantId(AuthContextUtils.getTenant()); |
|
|
|
param.setAccount(param.getMobile()); |
|
|
|
param.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); |
|
|
|
if(param.getMobile()!=null){ |
|
|
|
param.setAccount(param.getMobile()); |
|
|
|
} |
|
|
|
//检查手机号是否已用
|
|
|
|
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
wrapper.ne(SysUser::getId,userBo.getId()); |
|
|
|
wrapper.eq(SysUser::getMobile,param.getMobile()); |
|
|
|
Long count = sysUserService.count(wrapper); |
|
|
|
if(count>0L){ |
|
|
|
return R.error("手机号已被注册"); |
|
|
|
} |
|
|
|
if(dbData == null){ |
|
|
|
sysUserService.save(param); |
|
|
|
}else { |
|
|
|
sysUserService.updateById(param); |
|
|
|
} |
|
|
|
if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){ |
|
|
|
sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 重置密码 |
|
|
|
* @param uid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@SysLog(title = "人员",desc = "重置密码",biz = BizType.RESET) |
|
|
|
@PostMapping("/resetPwd/{uid}") |
|
|
|
@PreAuthorize("hasRole('sys:user:reset')") |
|
|
|
public R<?> resetPwd(@PathVariable("uid") String uid){ |
|
|
|
SysUser sysUser = sysUserService.getById(uid); |
|
|
|
if(sysUser.getSuperFlag().equals(1)){ |
|
|
|
Assert.throwEx("最高级管理员不可重置密码"); |
|
|
|
} |
|
|
|
SysUser sysUser1 = new SysUser(); |
|
|
|
sysUser1.setId(uid); |
|
|
|
sysUser1.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); |
|
|
|
sysUserService.updateById(sysUser1); |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|