diff --git a/bonus-business/src/main/java/com/bonus/digital/controller/PersonnelController.java b/bonus-business/src/main/java/com/bonus/digital/controller/PersonnelController.java index d818be4..e19e055 100644 --- a/bonus-business/src/main/java/com/bonus/digital/controller/PersonnelController.java +++ b/bonus-business/src/main/java/com/bonus/digital/controller/PersonnelController.java @@ -59,8 +59,12 @@ public class PersonnelController extends BaseController { } } - //人员所属下拉 - //0:运检站1:项目部 + /** + * 人员所属下拉 + * 0:运检站1:项目部 + * @param vo + * @return + */ @GetMapping("/getInspectionStationSelect") public AjaxResult getInspectionStationSelect(InspectionStationVo vo) { try { @@ -72,8 +76,12 @@ public class PersonnelController extends BaseController { } } - //人员性质/人员分类/岗位下拉 - // 0:人员分类1:人员性质2:岗位列表 + /** + * 人员性质/人员分类/岗位下拉 + * 0:人员分类1:人员性质2:岗位列表 + * @param vo + * @return + */ @GetMapping("/getPersonnelClassificationSelect") public AjaxResult getPersonnelClassificationSelect(InspectionStationVo vo) { try { diff --git a/bonus-business/src/main/java/com/bonus/digital/service/PersonnelService.java b/bonus-business/src/main/java/com/bonus/digital/service/PersonnelService.java index f090a8d..c35793a 100644 --- a/bonus-business/src/main/java/com/bonus/digital/service/PersonnelService.java +++ b/bonus-business/src/main/java/com/bonus/digital/service/PersonnelService.java @@ -28,7 +28,19 @@ public interface PersonnelService { */ int updatePersonnel(PersonnelVo personnelVo); + /** + * 人员所属下拉 + * 0:运检站1:项目部 + * @param category + * @return + */ List getInspectionStationSelect(String category); + /** + * 人员性质/人员分类/岗位下拉 + * 0:人员分类1:人员性质2:岗位列表 + * @param category + * @return + */ List getPersonnelClassificationSelect(String category); } diff --git a/bonus-business/src/main/java/com/bonus/digital/service/impl/PersonnelServiceImpl.java b/bonus-business/src/main/java/com/bonus/digital/service/impl/PersonnelServiceImpl.java index 4853216..cc9ced6 100644 --- a/bonus-business/src/main/java/com/bonus/digital/service/impl/PersonnelServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/digital/service/impl/PersonnelServiceImpl.java @@ -1,5 +1,6 @@ package com.bonus.digital.service.impl; +import com.bonus.common.utils.AesUtil; import com.bonus.common.utils.SecurityUtils; import com.bonus.common.utils.StringUtils; import com.bonus.digital.dao.PersonnelVo; @@ -30,7 +31,11 @@ public class PersonnelServiceImpl implements PersonnelService { */ @Override public List getPersonnelList(PersonnelVo personnelVo) { - return personnelMapper.getPersonnelList(personnelVo); + List personnelList = personnelMapper.getPersonnelList(personnelVo); + for (PersonnelVo personnel : personnelList) { + personnel.setPhone(AesUtil.encrypt(personnel.getPhone())); + } + return personnelList; } /** @@ -70,11 +75,23 @@ public class PersonnelServiceImpl implements PersonnelService { return personnelMapper.updatePersonnel(personnelVo); } + /** + * 人员所属下拉 + * 0:运检站1:项目部 + * @param category + * @return + */ @Override public List getInspectionStationSelect(String category) { return personnelMapper.getInspectionStationSelect(category); } + /** + * 人员性质/人员分类/岗位下拉 + * 0:人员分类1:人员性质2:岗位列表 + * @param category + * @return + */ @Override public List getPersonnelClassificationSelect(String category) { return personnelMapper.getPersonnelClassificationSelect(category); diff --git a/bonus-common/src/main/java/com/bonus/common/utils/AesUtil.java b/bonus-common/src/main/java/com/bonus/common/utils/AesUtil.java new file mode 100644 index 0000000..1795a2c --- /dev/null +++ b/bonus-common/src/main/java/com/bonus/common/utils/AesUtil.java @@ -0,0 +1,110 @@ +package com.bonus.common.utils; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.util.Base64; + +/** + * AES 加解密工具类 + */ +public class AesUtil { + + // 默认密钥和向量(应与前端保持一致) + private static final String DEFAULT_KEY = "0123456789abcdef0123456789abcdef"; + private static final String DEFAULT_IV = "0123456789abcdef"; + + // 算法/模式/填充 + private static final String ALGORITHM = "AES"; + private static final String TRANSFORMATION = "AES/CBC/PKCS5Padding"; + + /** + * 加密 + * @param data 要加密的数据 + * @param key 密钥(可选,默认使用类常量) + * @param iv 初始向量(可选,默认使用类常量) + * @return Base64编码的加密字符串 + */ + public static String encrypt(String data, String key, String iv) { + try { + if (key == null) key = DEFAULT_KEY; + if (iv == null) iv = DEFAULT_IV; + + // 检查密钥长度 + if (key.length() != 16 && key.length() != 24 && key.length() != 32) { + throw new IllegalArgumentException("密钥长度必须为16、24或32位"); + } + + SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), ALGORITHM); + IvParameterSpec ivParameter = new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8)); + + Cipher cipher = Cipher.getInstance(TRANSFORMATION); + cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameter); + + byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8)); + return Base64.getEncoder().encodeToString(encrypted); + } catch (Exception e) { + throw new RuntimeException("加密失败", e); + } + } + + /** + * 解密 + * @param encryptedData Base64编码的加密字符串 + * @param key 密钥(可选,默认使用类常量) + * @param iv 初始向量(可选,默认使用类常量) + * @return 解密后的原文 + */ + public static String decrypt(String encryptedData, String key, String iv) { + try { + if (key == null) key = DEFAULT_KEY; + if (iv == null) iv = DEFAULT_IV; + + SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), ALGORITHM); + IvParameterSpec ivParameter = new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8)); + + Cipher cipher = Cipher.getInstance(TRANSFORMATION); + cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameter); + + byte[] decoded = Base64.getDecoder().decode(encryptedData); + byte[] decrypted = cipher.doFinal(decoded); + return new String(decrypted, StandardCharsets.UTF_8); + } catch (Exception e) { + throw new RuntimeException("解密失败", e); + } + } + + /** + * 使用默认密钥和向量加密 + */ + public static String encrypt(String data) { + return encrypt(data, DEFAULT_KEY, DEFAULT_IV); + } + + /** + * 使用默认密钥和向量解密 + */ + public static String decrypt(String encryptedData) { + return decrypt(encryptedData, DEFAULT_KEY, DEFAULT_IV); + } + + /** + * 生成随机密钥 + * @param length 密钥长度(16/24/32) + * @return 随机密钥 + */ + public static String generateKey(int length) { + if (length != 16 && length != 24 && length != 32) { + throw new IllegalArgumentException("密钥长度必须为16、24或32"); + } + + String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + int index = (int) (Math.random() * chars.length()); + sb.append(chars.charAt(index)); + } + return sb.toString(); + } +} diff --git a/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java b/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java index da6dd7b..4c84785 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java +++ b/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; + +import com.bonus.common.utils.AesUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +35,7 @@ import com.bonus.system.service.ISysUserService; /** * 用户 业务层处理 - * + * * @author ruoyi */ @Service @@ -67,7 +69,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -75,12 +77,16 @@ public class SysUserServiceImpl implements ISysUserService @DataScope(deptAlias = "d", userAlias = "u") public List selectUserList(SysUser user) { - return userMapper.selectUserList(user); + List sysUserList = userMapper.selectUserList(user); + for (SysUser sysUser : sysUserList){ + sysUser.setPhonenumber(AesUtil.encrypt(sysUser.getPhonenumber())); + } + return sysUserList; } /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -93,7 +99,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -106,7 +112,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @@ -118,7 +124,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @@ -130,7 +136,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @@ -147,7 +153,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @@ -164,7 +170,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param user 用户信息 * @return 结果 */ @@ -218,7 +224,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override @@ -232,7 +238,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override @@ -252,7 +258,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -271,7 +277,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -283,7 +289,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -305,7 +311,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 用户授权角色 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -319,7 +325,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @@ -331,7 +337,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -343,7 +349,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户头像 - * + * * @param userName 用户名 * @param avatar 头像地址 * @return 结果 @@ -356,7 +362,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @@ -368,7 +374,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 @@ -381,7 +387,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param user 用户对象 */ public void insertUserRole(SysUser user) @@ -391,7 +397,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ public void insertUserPost(SysUser user) @@ -414,7 +420,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -437,7 +443,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @@ -454,7 +460,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @@ -476,7 +482,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * + * * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 操作用户 diff --git a/pom.xml b/pom.xml index e575d5d..301edf0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + com.bonus gs_eval_system 3.8.9 @@ -11,7 +11,7 @@ ruoyi http://www.ruoyi.vip 若依管理系统 - + 3.8.9 UTF-8 @@ -213,6 +213,12 @@ ${ruoyi.version} + + + commons-codec + commons-codec + 1.15 + @@ -265,4 +271,4 @@ - \ No newline at end of file +