【fix sonar】SysUserController文件
This commit is contained in:
+109
-85
@@ -44,6 +44,7 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
|||||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -171,29 +172,7 @@ public class SysUserController {
|
|||||||
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
|
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
|
||||||
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
||||||
|
|
||||||
try {
|
setUser(rsaPrivateKey, user);
|
||||||
if (StrUtil.isNotEmpty(user.getEmail())){
|
|
||||||
String email = CommonUtils.decryptBtRsaPriKey(user.getEmail(), rsaPrivateKey);
|
|
||||||
user.setEmail(email);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isNotEmpty(user.getPhone())){
|
|
||||||
String phone = CommonUtils.decryptBtRsaPriKey(user.getPhone(), rsaPrivateKey);
|
|
||||||
user.setPhone(phone);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 密码加盐
|
|
||||||
String password = CommonUtils.decryptBtRsaPriKey(user.getPassword(), rsaPrivateKey);
|
|
||||||
user.setCreateTime(new Date());//设置创建时间
|
|
||||||
String salt = oConvertUtils.randomGen(8);
|
|
||||||
user.setSalt(salt);
|
|
||||||
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), password, salt);
|
|
||||||
user.setPassword(passwordEncode);
|
|
||||||
user.setStatus(1);
|
|
||||||
user.setDelFlag(CommonConstant.DEL_FLAG_0);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new JeroBootException("邮箱和手机号解密失败!", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存用户走一个service 保证事务
|
// 保存用户走一个service 保证事务
|
||||||
sysUserService.saveUser(user, selectedRoles, selectedDeparts);
|
sysUserService.saveUser(user, selectedRoles, selectedDeparts);
|
||||||
@@ -204,6 +183,32 @@ public class SysUserController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setUser(String rsaPrivateKey, SysUser user) {
|
||||||
|
try {
|
||||||
|
if (StrUtil.isNotEmpty(user.getEmail())){
|
||||||
|
String email = CommonUtils.decryptBtRsaPriKey(user.getEmail(), rsaPrivateKey);
|
||||||
|
user.setEmail(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotEmpty(user.getPhone())){
|
||||||
|
String phone = CommonUtils.decryptBtRsaPriKey(user.getPhone(), rsaPrivateKey);
|
||||||
|
user.setPhone(phone);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 密码加盐
|
||||||
|
String password = CommonUtils.decryptBtRsaPriKey(user.getPassword(), rsaPrivateKey);
|
||||||
|
user.setCreateTime(new Date());//设置创建时间
|
||||||
|
String salt = oConvertUtils.randomGen(8);
|
||||||
|
user.setSalt(salt);
|
||||||
|
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), password, salt);
|
||||||
|
user.setPassword(passwordEncode);
|
||||||
|
user.setStatus(1);
|
||||||
|
user.setDelFlag(CommonConstant.DEL_FLAG_0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new JeroBootException("邮箱和手机号解密失败!", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@RequiresPermissions("user:edit")
|
@RequiresPermissions("user:edit")
|
||||||
// @RequestMapping(value = "/edit", method = RequestMethod.PUT)
|
// @RequestMapping(value = "/edit", method = RequestMethod.PUT)
|
||||||
@PutMapping("/edit")
|
@PutMapping("/edit")
|
||||||
@@ -218,26 +223,7 @@ public class SysUserController {
|
|||||||
if(sysUser==null) {
|
if(sysUser==null) {
|
||||||
return Result.error(INEXISTENCE);
|
return Result.error(INEXISTENCE);
|
||||||
}else {
|
}else {
|
||||||
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
SysUser user = getSysUser(jsonObject, rsaPrivateKey, sysUser);
|
||||||
String email = null;
|
|
||||||
String phone = null;
|
|
||||||
try {
|
|
||||||
//1:先用私钥解密数据
|
|
||||||
if (StrUtil.isNotEmpty(user.getEmail())){
|
|
||||||
email = CommonUtils.decryptBtRsaPriKey(user.getEmail(), rsaPrivateKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isNotEmpty(user.getPhone())){
|
|
||||||
phone = CommonUtils.decryptBtRsaPriKey(user.getPhone(), rsaPrivateKey);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new JeroBootException("解密失败!", e);
|
|
||||||
}
|
|
||||||
// 3:把数据加密在放回来
|
|
||||||
user.setEmail(email);
|
|
||||||
user.setPhone(phone);
|
|
||||||
user.setUpdateTime(new Date());
|
|
||||||
user.setPassword(sysUser.getPassword());
|
|
||||||
// 修改用户走一个service 保证事务
|
// 修改用户走一个service 保证事务
|
||||||
sysUserService.editUser(user, roles, departs);
|
sysUserService.editUser(user, roles, departs);
|
||||||
return Result.OK(OPTION_SUCCESS);
|
return Result.OK(OPTION_SUCCESS);
|
||||||
@@ -248,7 +234,32 @@ public class SysUserController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
|
@NotNull
|
||||||
|
private SysUser getSysUser(@RequestBody JSONObject jsonObject, String rsaPrivateKey, SysUser sysUser) {
|
||||||
|
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
||||||
|
String email = null;
|
||||||
|
String phone = null;
|
||||||
|
try {
|
||||||
|
//1:先用私钥解密数据
|
||||||
|
if (StrUtil.isNotEmpty(user.getEmail())){
|
||||||
|
email = CommonUtils.decryptBtRsaPriKey(user.getEmail(), rsaPrivateKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotEmpty(user.getPhone())){
|
||||||
|
phone = CommonUtils.decryptBtRsaPriKey(user.getPhone(), rsaPrivateKey);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new JeroBootException("解密失败!", e);
|
||||||
|
}
|
||||||
|
// 3:把数据加密在放回来
|
||||||
|
user.setEmail(email);
|
||||||
|
user.setPhone(phone);
|
||||||
|
user.setUpdateTime(new Date());
|
||||||
|
user.setPassword(sysUser.getPassword());
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
public Result<T> delete(@RequestParam(name="id",required=true) String id) {
|
public Result<T> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3);
|
baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3);
|
||||||
@@ -540,31 +551,11 @@ public class SysUserController {
|
|||||||
String message = e.getMessage().toLowerCase();
|
String message = e.getMessage().toLowerCase();
|
||||||
int lineNumber = i + 1;
|
int lineNumber = i + 1;
|
||||||
// 通过索引名判断出错信息
|
// 通过索引名判断出错信息
|
||||||
if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)
|
setErrorMessage(errorMessage, e, message, lineNumber);
|
||||||
|| message.contains(CommonConstant.SQL_INDEX_INDEX_USER_NAME)) {
|
|
||||||
errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");
|
|
||||||
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) {
|
|
||||||
errorMessage.add("第 " + lineNumber + " 行:工号已经存在,忽略导入。");
|
|
||||||
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {
|
|
||||||
errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");
|
|
||||||
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {
|
|
||||||
errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");
|
|
||||||
} else {
|
|
||||||
errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");
|
|
||||||
SysUserController.log.error(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 批量将部门和用户信息建立关联关系 TODO 错误需修改
|
// 批量将部门和用户信息建立关联关系 TODO 错误需修改
|
||||||
String departIds = sysUserExcel.getDepartIds();
|
String departIds = sysUserExcel.getDepartIds();
|
||||||
if (StringUtils.isNotBlank(departIds)) {
|
saveUser(sysUserExcel, departIds);
|
||||||
String userId = sysUserExcel.getId();
|
|
||||||
String[] departIdArray = departIds.split(",");
|
|
||||||
List<SysUserDepart> userDepartList = new ArrayList<>(departIdArray.length);
|
|
||||||
for (String departId : departIdArray) {
|
|
||||||
userDepartList.add(new SysUserDepart(userId, departId));
|
|
||||||
}
|
|
||||||
sysUserDepartService.saveBatch(userDepartList);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -581,6 +572,34 @@ public class SysUserController {
|
|||||||
return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage);
|
return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void saveUser(SysUser sysUserExcel, String departIds) {
|
||||||
|
if (StringUtils.isNotBlank(departIds)) {
|
||||||
|
String userId = sysUserExcel.getId();
|
||||||
|
String[] departIdArray = departIds.split(",");
|
||||||
|
List<SysUserDepart> userDepartList = new ArrayList<>(departIdArray.length);
|
||||||
|
for (String departId : departIdArray) {
|
||||||
|
userDepartList.add(new SysUserDepart(userId, departId));
|
||||||
|
}
|
||||||
|
sysUserDepartService.saveBatch(userDepartList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setErrorMessage(List<String> errorMessage, Exception e, String message, int lineNumber) {
|
||||||
|
if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)
|
||||||
|
|| message.contains(CommonConstant.SQL_INDEX_INDEX_USER_NAME)) {
|
||||||
|
errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");
|
||||||
|
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) {
|
||||||
|
errorMessage.add("第 " + lineNumber + " 行:工号已经存在,忽略导入。");
|
||||||
|
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {
|
||||||
|
errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");
|
||||||
|
} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {
|
||||||
|
errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");
|
||||||
|
} else {
|
||||||
|
errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");
|
||||||
|
SysUserController.log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @功能:根据id 批量查询
|
* @功能:根据id 批量查询
|
||||||
* @param userIds
|
* @param userIds
|
||||||
@@ -1194,25 +1213,7 @@ public class SysUserController {
|
|||||||
return Result.error("手机号已存在!");
|
return Result.error("手机号已存在!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(realname)){
|
setUser(sysUser, realname, avatar, sex, phone, email, birthday);
|
||||||
sysUser.setRealname(realname);
|
|
||||||
}
|
|
||||||
if(StringUtils.isNotBlank(avatar)){
|
|
||||||
sysUser.setAvatar(avatar);
|
|
||||||
}
|
|
||||||
if(StringUtils.isNotBlank(sex)){
|
|
||||||
sysUser.setSex(Integer.parseInt(sex));
|
|
||||||
}
|
|
||||||
if(StringUtils.isNotBlank(phone)){
|
|
||||||
sysUser.setPhone(phone);
|
|
||||||
}
|
|
||||||
if(StringUtils.isNotBlank(email)){
|
|
||||||
sysUser.setEmail(email);
|
|
||||||
}
|
|
||||||
if(null != birthday){
|
|
||||||
sysUser.setBirthday(birthday);
|
|
||||||
}
|
|
||||||
sysUser.setUpdateTime(new Date());
|
|
||||||
sysUserService.updateById(sysUser);
|
sysUserService.updateById(sysUser);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -1221,6 +1222,29 @@ public class SysUserController {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setUser(SysUser sysUser, String realname, String avatar, String sex, String phone, String email, Date birthday) {
|
||||||
|
if(StringUtils.isNotBlank(realname)){
|
||||||
|
sysUser.setRealname(realname);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(avatar)){
|
||||||
|
sysUser.setAvatar(avatar);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(sex)){
|
||||||
|
sysUser.setSex(Integer.parseInt(sex));
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(phone)){
|
||||||
|
sysUser.setPhone(phone);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(email)){
|
||||||
|
sysUser.setEmail(email);
|
||||||
|
}
|
||||||
|
if(null != birthday){
|
||||||
|
sysUser.setBirthday(birthday);
|
||||||
|
}
|
||||||
|
sysUser.setUpdateTime(new Date());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移动端保存设备信息
|
* 移动端保存设备信息
|
||||||
* @param clientId
|
* @param clientId
|
||||||
|
|||||||
Reference in New Issue
Block a user