From deafebfc260accbf5c532e365634eec1ff4d700d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E4=B8=89=E7=82=AE?= <15856818120@163.com> Date: Tue, 9 Sep 2025 09:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86=EF=BC=8C=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysUserController.java | 4 +- .../tool/KyDataClassifyController.java | 117 ++++++++++++ .../common/core/domain/entity/SysDept.java | 19 +- .../common/core/domain/entity/SysUser.java | 13 +- .../com/bonus/common/utils/GenerateUtil.java | 2 +- .../com/bonus/common/utils/StringUtils.java | 166 ++++++++++++++---- .../bonus/system/domain/KyDataClassify.java | 63 +++++++ .../system/mapper/KyDataClassifyMapper.java | 43 +++++ .../system/service/KyDataClassifyService.java | 43 +++++ .../impl/KyDataClassifyServiceImpl.java | 75 ++++++++ .../service/impl/SysDeptServiceImpl.java | 50 +++--- .../service/impl/SysUserServiceImpl.java | 55 +++--- .../mapper/system/KyDataClassifyMapper.xml | 43 +++++ .../resources/mapper/system/SysDeptMapper.xml | 37 ++-- .../resources/mapper/system/SysUserMapper.xml | 53 +++--- 15 files changed, 656 insertions(+), 127 deletions(-) create mode 100644 bonus-admin/src/main/java/com/bonus/web/controller/tool/KyDataClassifyController.java create mode 100644 bonus-system/src/main/java/com/bonus/system/domain/KyDataClassify.java create mode 100644 bonus-system/src/main/java/com/bonus/system/mapper/KyDataClassifyMapper.java create mode 100644 bonus-system/src/main/java/com/bonus/system/service/KyDataClassifyService.java create mode 100644 bonus-system/src/main/java/com/bonus/system/service/impl/KyDataClassifyServiceImpl.java create mode 100644 bonus-system/src/main/resources/mapper/system/KyDataClassifyMapper.xml diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/system/SysUserController.java b/bonus-admin/src/main/java/com/bonus/web/controller/system/SysUserController.java index ed7d0ef..489e10a 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/system/SysUserController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/system/SysUserController.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse; import com.bonus.common.annotation.SysLog; import com.bonus.common.enums.OperaType; +import com.bonus.common.utils.encryption.Sm4Utils; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -37,7 +38,7 @@ import com.bonus.system.service.ISysUserService; /** * 用户信息 - * + * * @author bonus */ @RestController @@ -143,6 +144,7 @@ public class SysUserController extends BaseController return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(getUsername()); + user.setPhonenumber(Sm4Utils.encrypt(user.getPhonenumber())); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); } diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/tool/KyDataClassifyController.java b/bonus-admin/src/main/java/com/bonus/web/controller/tool/KyDataClassifyController.java new file mode 100644 index 0000000..1fb9ae6 --- /dev/null +++ b/bonus-admin/src/main/java/com/bonus/web/controller/tool/KyDataClassifyController.java @@ -0,0 +1,117 @@ +package com.bonus.web.controller.tool; + +import com.bonus.common.annotation.Log; +import com.bonus.common.annotation.SysLog; +import com.bonus.common.core.controller.BaseController; +import com.bonus.common.core.domain.AjaxResult; +import com.bonus.common.core.domain.entity.SysUser; +import com.bonus.common.core.page.TableDataInfo; +import com.bonus.common.enums.BusinessType; +import com.bonus.common.enums.OperaType; +import com.bonus.common.utils.DateUtils; +import com.bonus.common.utils.SecurityUtils; +import com.bonus.common.utils.StringUtils; +import com.bonus.system.domain.KyDataClassify; +import com.bonus.system.service.KyDataClassifyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 数据分类管理 + * @author 马三炮 + * @date 2025/9/1 + */ +@RestController +@RequestMapping("/data/classify") +@Slf4j +public class KyDataClassifyController extends BaseController { + + + @Resource + private KyDataClassifyService kyDataClassifyService; + + + /** + * 获取数据分类管理列表 + * @param kyDataClassify + * @return + */ + @SysLog(title = "数据集成", businessType = OperaType.QUERY, logType = 0, module = "数据集成->数据分类管理", details = "查询数据分类列表") + @PreAuthorize("@ss.hasPermi('data:classify:list')") + @GetMapping("/list") + public TableDataInfo list(KyDataClassify kyDataClassify) + { + startPage(); + List list = kyDataClassifyService.selectKyDataClassifyList(kyDataClassify); + return getDataTable(list); + } + + /** + * 新增数据分类 + * @param kyDataClassify + * @return + */ + @PreAuthorize("@ss.hasPermi('data:classify:add')") + @SysLog(title = "数据集成", businessType = OperaType.QUERY, logType = 0, module = "数据集成->数据分类管理", details = "新增数据分类") + @PostMapping("/addKyDataClassify") + public AjaxResult addKyDataClassify(@Validated @RequestBody KyDataClassify kyDataClassify) + { + + kyDataClassify.setCreateUserId(getUserId()); + kyDataClassify.setCreateUserName(getUsername()); + kyDataClassify.setCreateTime(DateUtils.getNowDate()); + kyDataClassify.setUpdateUserId(getUserId()); + kyDataClassify.setUpdateUserName(getUsername()); + kyDataClassify.setUpdateTime(DateUtils.getNowDate()); + return toAjax(kyDataClassifyService.addKyDataClassify(kyDataClassify)); + } + + /** + * 修改数据分类 + * @param kyDataClassify + * @return + */ + @PreAuthorize("@ss.hasPermi('data:classify:update')") + @SysLog(title = "数据集成", businessType = OperaType.QUERY, logType = 0, module = "数据集成->数据分类管理", details = "修改数据分类") + @PostMapping("/updateKyDataClassify") + public AjaxResult updateKyDataClassify(@Validated @RequestBody KyDataClassify kyDataClassify) + { + + kyDataClassify.setUpdateUserId(getUserId()); + kyDataClassify.setUpdateUserName(getUsername()); + kyDataClassify.setUpdateTime(DateUtils.getNowDate()); + return toAjax(kyDataClassifyService.updateKyDataClassify(kyDataClassify)); + } + + /** + * 删除数据分类 + * @param kyDataClassify + * @return + */ + @PreAuthorize("@ss.hasPermi('data:classify:del')") + @SysLog(title = "数据集成", businessType = OperaType.QUERY, logType = 0, module = "数据集成->数据分类管理", details = "删除数据分类") + @PostMapping("/delKyDataClassify") + public AjaxResult delKyDataClassify(@Validated @RequestBody KyDataClassify kyDataClassify) + { + + return toAjax(kyDataClassifyService.delKyDataClassify(kyDataClassify)); + } + + /** + * 获取数据分类管理下拉框 + * @param kyDataClassify + * @return + */ + /*@PreAuthorize("@ss.hasPermi('data:classify:list')")*/ + @GetMapping("/listAll") + public TableDataInfo listAll(KyDataClassify kyDataClassify) + { + List list = kyDataClassifyService.listAll(kyDataClassify); + return getDataTable(list); + } +} diff --git a/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysDept.java b/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysDept.java index 52cc2d1..0c1de11 100644 --- a/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysDept.java +++ b/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysDept.java @@ -12,7 +12,7 @@ import com.bonus.common.core.domain.BaseEntity; /** * 部门表 sys_dept - * + * * @author bonus */ public class SysDept extends BaseEntity @@ -51,7 +51,10 @@ public class SysDept extends BaseEntity /** 父部门名称 */ private String parentName; - + + /** 部门描述 */ + private String remark; + /** 子部门 */ private List children = new ArrayList(); @@ -97,7 +100,7 @@ public class SysDept extends BaseEntity this.deptName = deptName; } - @NotNull(message = "显示顺序不能为空") + /*@NotNull(message = "显示顺序不能为空")*/ public Integer getOrderNum() { return orderNum; @@ -181,6 +184,16 @@ public class SysDept extends BaseEntity this.children = children; } + @Override + public String getRemark() { + return remark; + } + + @Override + public void setRemark(String remark) { + this.remark = remark; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysUser.java b/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysUser.java index c5943ce..a10ce0b 100644 --- a/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysUser.java +++ b/bonus-common/src/main/java/com/bonus/common/core/domain/entity/SysUser.java @@ -14,7 +14,7 @@ import com.bonus.common.xss.Xss; /** * 用户对象 sys_user - * + * * @author bonus */ public class SysUser extends BaseEntity @@ -95,6 +95,9 @@ public class SysUser extends BaseEntity /**用户密钥*/ private String secret; + /** 角色名称 */ + private String roleName; + public SysUser() { @@ -321,6 +324,14 @@ public class SysUser extends BaseEntity this.secret = secret; } + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/bonus-common/src/main/java/com/bonus/common/utils/GenerateUtil.java b/bonus-common/src/main/java/com/bonus/common/utils/GenerateUtil.java index e6d1697..939e6d1 100644 --- a/bonus-common/src/main/java/com/bonus/common/utils/GenerateUtil.java +++ b/bonus-common/src/main/java/com/bonus/common/utils/GenerateUtil.java @@ -12,7 +12,7 @@ import java.util.Base64; */ public class GenerateUtil { - private static String generateRandomSecret(int length) { + public static String generateRandomSecret(int length) { SecureRandom random = new SecureRandom(); byte[] bytes = new byte[length]; random.nextBytes(bytes); diff --git a/bonus-common/src/main/java/com/bonus/common/utils/StringUtils.java b/bonus-common/src/main/java/com/bonus/common/utils/StringUtils.java index 41e7c32..d650272 100644 --- a/bonus-common/src/main/java/com/bonus/common/utils/StringUtils.java +++ b/bonus-common/src/main/java/com/bonus/common/utils/StringUtils.java @@ -6,13 +6,15 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; + import org.springframework.util.AntPathMatcher; import com.bonus.common.constant.Constants; import com.bonus.common.core.text.StrFormatter; /** * 字符串工具类 - * + * * @author bonus */ public class StringUtils extends org.apache.commons.lang3.StringUtils @@ -28,7 +30,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 获取参数不为空值 - * + * * @param value defaultValue 要判断的value * @return value 返回值 */ @@ -39,7 +41,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个Collection是否为空, 包含List,Set,Queue - * + * * @param coll 要判断的Collection * @return true:为空 false:非空 */ @@ -50,7 +52,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个Collection是否非空,包含List,Set,Queue - * + * * @param coll 要判断的Collection * @return true:非空 false:空 */ @@ -61,7 +63,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个对象数组是否为空 - * + * * @param objects 要判断的对象数组 ** @return true:为空 false:非空 */ @@ -72,7 +74,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个对象数组是否非空 - * + * * @param objects 要判断的对象数组 * @return true:非空 false:空 */ @@ -83,7 +85,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个Map是否为空 - * + * * @param map 要判断的Map * @return true:为空 false:非空 */ @@ -94,7 +96,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个Map是否为空 - * + * * @param map 要判断的Map * @return true:非空 false:空 */ @@ -105,7 +107,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个字符串是否为空串 - * + * * @param str String * @return true:为空 false:非空 */ @@ -116,7 +118,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个字符串是否为非空串 - * + * * @param str String * @return true:非空串 false:空串 */ @@ -127,7 +129,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个对象是否为空 - * + * * @param object Object * @return true:为空 false:非空 */ @@ -138,7 +140,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个对象是否非空 - * + * * @param object Object * @return true:非空 false:空 */ @@ -149,7 +151,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * * 判断一个对象是否是数组类型(Java基本型别的数组) - * + * * @param object 对象 * @return true:是数组 false:不是数组 */ @@ -211,7 +213,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 截取字符串 - * + * * @param str 字符串 * @param start 开始 * @return 结果 @@ -242,7 +244,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 截取字符串 - * + * * @param str 字符串 * @param start 开始 * @param end 结束 @@ -288,7 +290,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 在字符串中查找第一个出现的 `open` 和最后一个出现的 `close` 之间的子字符串 - * + * * @param str 要截取的字符串 * @param open 起始字符串 * @param close 结束字符串 @@ -314,7 +316,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 判断是否为空,并且不是空白字符 - * + * * @param str 要判断的value * @return 结果 */ @@ -344,7 +346,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
* 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
- * + * * @param template 文本模板,被替换的部分用 {} 表示 * @param params 参数值 * @return 格式化后的文本 @@ -360,7 +362,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 是否为http(s)://开头 - * + * * @param link 链接 * @return 结果 */ @@ -371,7 +373,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 字符串转set - * + * * @param str 字符串 * @param sep 分隔符 * @return set集合 @@ -383,7 +385,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 字符串转list - * + * * @param str 字符串 * @param sep 分隔符 * @return list集合 @@ -395,7 +397,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 字符串转list - * + * * @param str 字符串 * @param sep 分隔符 * @param filterBlank 过滤纯空白 @@ -532,7 +534,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 是否包含字符串 - * + * * @param str 验证字符串 * @param strs 字符串组 * @return 包含返回true @@ -554,7 +556,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld - * + * * @param name 转换前的下划线大写方式命名的字符串 * @return 转换后的驼峰式命名的字符串 */ @@ -628,7 +630,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 - * + * * @param str 指定字符串 * @param strs 需要检查的字符串数组 * @return 是否匹配 @@ -650,11 +652,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils } /** - * 判断url是否与规则配置: - * ? 表示单个字符; - * * 表示一层路径内的任意字符串,不可跨层级; + * 判断url是否与规则配置: + * ? 表示单个字符; + * * 表示一层路径内的任意字符串,不可跨层级; * ** 表示任意层路径; - * + * * @param pattern 匹配规则 * @param url 需要匹配的url * @return @@ -673,7 +675,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。 - * + * * @param num 数字对象 * @param size 字符串指定长度 * @return 返回数字的字符串格式,该字符串为指定长度。 @@ -685,7 +687,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils /** * 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。 - * + * * @param s 原始字符串 * @param size 字符串指定长度 * @param c 用于补齐的字符 @@ -719,4 +721,104 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils } return sb.toString(); } -} \ No newline at end of file + // 手机号正则表达式 + // 规则:11位数字,以1开头,第二位为3-9 + private static final String PHONE_REGEX = "^1[3-9]\\d{9}$"; + + // 编译正则表达式为Pattern对象,提高效率 + private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX); + /** + * 校验手机号是否合法 + * @param phoneNumber 待校验的手机号 + * @return 合法返回true,否则返回false + */ + public static boolean phoneNumberIsValid(String phoneNumber) { + // 先判断是否为空 + if (phoneNumber == null || phoneNumber.trim().isEmpty()) { + return false; + } + // 使用正则匹配 + return PHONE_PATTERN.matcher(phoneNumber).matches(); + } + + // 身份证号正则表达式(18位) + private static final String ID_CARD_REGEX = "^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$"; + + // 编译正则表达式 + private static final Pattern ID_CARD_PATTERN = Pattern.compile(ID_CARD_REGEX); + + // 加权因子 + private static final int[] WEIGHT_FACTOR = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; + + // 校验码对应值 + private static final char[] CHECK_CODE = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; + + /** + * 校验身份证号是否合法 + * @param idCard 待校验的身份证号 + * @return 合法返回true,否则返回false + */ + public static boolean idCardIsValid(String idCard) { + // 校验空值 + if (idCard == null || idCard.trim().isEmpty()) { + return false; + } + + // 移除空格并转为大写 + String trimmedId = idCard.trim().toUpperCase(); + + // 校验格式 + if (!ID_CARD_PATTERN.matcher(trimmedId).matches()) { + return false; + } + + // 校验出生日期(这里简化处理,完整实现需要验证月份天数合法性) + if (!isValidBirthDate(trimmedId)) { + return false; + } + + // 校验校验码 + return isValidCheckCode(trimmedId); + } + + /** + * 校验出生日期格式 + */ + private static boolean isValidBirthDate(String idCard) { + try { + // 从身份证号中提取出生年月日(第7-14位) + int year = Integer.parseInt(idCard.substring(6, 10)); + int month = Integer.parseInt(idCard.substring(10, 12)); + int day = Integer.parseInt(idCard.substring(12, 14)); + + // 简单校验范围 + if (year < 1900 || year > 2100) return false; + if (month < 1 || month > 12) return false; + if (day < 1 || day > 31) return false; + + // 更详细的日期校验可以在这里添加 + + return true; + } catch (NumberFormatException e) { + return false; + } + } + + /** + * 校验身份证号的校验码 + */ + private static boolean isValidCheckCode(String idCard) { + // 计算前17位与对应加权因子乘积的和 + int sum = 0; + for (int i = 0; i < 17; i++) { + sum += Character.getNumericValue(idCard.charAt(i)) * WEIGHT_FACTOR[i]; + } + + // 计算校验码 + int remainder = sum % 11; + char checkCode = CHECK_CODE[remainder]; + + // 比较校验码 + return idCard.charAt(17) == checkCode; + } +} diff --git a/bonus-system/src/main/java/com/bonus/system/domain/KyDataClassify.java b/bonus-system/src/main/java/com/bonus/system/domain/KyDataClassify.java new file mode 100644 index 0000000..82a2a29 --- /dev/null +++ b/bonus-system/src/main/java/com/bonus/system/domain/KyDataClassify.java @@ -0,0 +1,63 @@ +package com.bonus.system.domain; + +import lombok.Data; + +import java.util.Date; + +/** + * @author 马三炮 + * @date 2025/9/1 + */ +@Data +public class KyDataClassify { + + /** + * id + */ + private Long id; + + /** + * 数据类型名称 + */ + private String dataTypeName; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 创建人 + */ + private Long createUserId; + + /** + * 创建人 + */ + private String createUserName; + + /** + * 修改人 + */ + private Long updateUserId; + + /** + * 修改人姓名 + */ + private String updateUserName; + + /** + * 是否删除 0. 删除 1.未删除 + */ + private String delFlag; +} diff --git a/bonus-system/src/main/java/com/bonus/system/mapper/KyDataClassifyMapper.java b/bonus-system/src/main/java/com/bonus/system/mapper/KyDataClassifyMapper.java new file mode 100644 index 0000000..4d6cb2b --- /dev/null +++ b/bonus-system/src/main/java/com/bonus/system/mapper/KyDataClassifyMapper.java @@ -0,0 +1,43 @@ +package com.bonus.system.mapper; + +import com.bonus.system.domain.KyDataClassify; + +import java.util.List; + +public interface KyDataClassifyMapper { + + /** + * 获取数据分类管理列表 + * @param kyDataClassify + * @return + */ + List selectKyDataClassifyList(KyDataClassify kyDataClassify); + + /** + * 新增数据分类 + * @param kyDataClassify + * @return + */ + int addKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 修改数据分类 + * @param kyDataClassify + * @return + */ + int updateKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 删除数据分类 + * @param kyDataClassify + * @return + */ + int delKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 获取数据分类管理下拉框 + * @param kyDataClassify + * @return + */ + List listAll(KyDataClassify kyDataClassify); +} diff --git a/bonus-system/src/main/java/com/bonus/system/service/KyDataClassifyService.java b/bonus-system/src/main/java/com/bonus/system/service/KyDataClassifyService.java new file mode 100644 index 0000000..4161d02 --- /dev/null +++ b/bonus-system/src/main/java/com/bonus/system/service/KyDataClassifyService.java @@ -0,0 +1,43 @@ +package com.bonus.system.service; + +import com.bonus.system.domain.KyDataClassify; + +import java.util.List; + +public interface KyDataClassifyService { + + /** + * 获取数据分类管理列表 + * @param kyDataClassify + * @return + */ + List selectKyDataClassifyList(KyDataClassify kyDataClassify); + + /** + * 新增数据分类 + * @param kyDataClassify + * @return + */ + int addKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 修改数据分类 + * @param kyDataClassify + * @return + */ + int updateKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 删除数据分类 + * @param kyDataClassify + * @return + */ + int delKyDataClassify(KyDataClassify kyDataClassify); + + /** + * 获取数据分类管理下拉框 + * @param kyDataClassify + * @return + */ + List listAll(KyDataClassify kyDataClassify); +} diff --git a/bonus-system/src/main/java/com/bonus/system/service/impl/KyDataClassifyServiceImpl.java b/bonus-system/src/main/java/com/bonus/system/service/impl/KyDataClassifyServiceImpl.java new file mode 100644 index 0000000..380af4e --- /dev/null +++ b/bonus-system/src/main/java/com/bonus/system/service/impl/KyDataClassifyServiceImpl.java @@ -0,0 +1,75 @@ +package com.bonus.system.service.impl; + +import com.bonus.common.core.domain.entity.SysUser; +import com.bonus.common.utils.DateUtils; +import com.bonus.common.utils.SecurityUtils; +import com.bonus.system.domain.KyDataClassify; +import com.bonus.system.mapper.KyDataClassifyMapper; +import com.bonus.system.service.KyDataClassifyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 马三炮 + * @date 2025/9/1 + */ +@Service +@Slf4j +public class KyDataClassifyServiceImpl implements KyDataClassifyService { + + @Resource + private KyDataClassifyMapper kyDataClassifyMapper; + + /** + * 获取数据分类管理列表 + * @param kyDataClassify + * @return + */ + @Override + public List selectKyDataClassifyList(KyDataClassify kyDataClassify) { + return kyDataClassifyMapper.selectKyDataClassifyList(kyDataClassify); + } + + /** + * 新增数据分类 + * @param kyDataClassify + * @return + */ + @Override + public int addKyDataClassify(KyDataClassify kyDataClassify) { + return kyDataClassifyMapper.addKyDataClassify(kyDataClassify); + } + + /** + * 修改数据分类 + * @param kyDataClassify + * @return + */ + @Override + public int updateKyDataClassify(KyDataClassify kyDataClassify) { + return kyDataClassifyMapper.updateKyDataClassify(kyDataClassify); + } + + /** + * 删除数据分类 + * @param kyDataClassify + * @return + */ + @Override + public int delKyDataClassify(KyDataClassify kyDataClassify) { + return kyDataClassifyMapper.delKyDataClassify(kyDataClassify); + } + + /** + * 获取数据分类管理下拉框 + * @param kyDataClassify + * @return + */ + @Override + public List listAll(KyDataClassify kyDataClassify) { + return kyDataClassifyMapper.listAll(kyDataClassify); + } +} diff --git a/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java b/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java index 2f7b0b5..8b1a557 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java +++ b/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java @@ -23,7 +23,7 @@ import com.bonus.system.service.ISysDeptService; /** * 部门管理 服务实现 - * + * * @author bonus */ @Service @@ -37,7 +37,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门管理数据 - * + * * @param dept 部门信息 * @return 部门信息集合 */ @@ -50,7 +50,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门树结构信息 - * + * * @param dept 部门信息 * @return 部门树信息集合 */ @@ -63,7 +63,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 构建前端所需要树结构 - * + * * @param depts 部门列表 * @return 树结构列表 */ @@ -90,7 +90,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 构建前端所需要下拉树结构 - * + * * @param depts 部门列表 * @return 下拉树结构列表 */ @@ -103,7 +103,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据角色ID查询部门树信息 - * + * * @param roleId 角色ID * @return 选中部门列表 */ @@ -116,7 +116,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据部门ID查询信息 - * + * * @param deptId 部门ID * @return 部门信息 */ @@ -128,7 +128,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据ID查询所有子部门(正常状态) - * + * * @param deptId 部门ID * @return 子部门数 */ @@ -140,7 +140,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 是否存在子节点 - * + * * @param deptId 部门ID * @return 结果 */ @@ -153,7 +153,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门是否存在用户 - * + * * @param deptId 部门ID * @return 结果 true 存在 false 不存在 */ @@ -166,7 +166,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 校验部门名称是否唯一 - * + * * @param dept 部门信息 * @return 结果 */ @@ -184,7 +184,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 校验部门是否有数据权限 - * + * * @param deptId 部门id */ @Override @@ -204,26 +204,30 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 新增保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @Override public int insertDept(SysDept dept) { - SysDept info = deptMapper.selectDeptById(dept.getParentId()); - // 如果父节点不为正常状态,则不允许新增子节点 - if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) - { - throw new ServiceException("部门停用,不允许新增"); + if (dept.getParentId()==0){ + dept.setAncestors("0"); + }else { + SysDept info = deptMapper.selectDeptById(dept.getParentId()); + // 如果父节点不为正常状态,则不允许新增子节点 + if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) + { + throw new ServiceException("部门停用,不允许新增"); + } + dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); } - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); return deptMapper.insertDept(dept); } /** * 修改保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @@ -251,7 +255,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 修改该部门的父级部门状态 - * + * * @param dept 当前部门 */ private void updateParentDeptStatusNormal(SysDept dept) @@ -263,7 +267,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 修改子元素关系 - * + * * @param deptId 被修改的部门ID * @param newAncestors 新的父ID集合 * @param oldAncestors 旧的父ID集合 @@ -283,7 +287,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 删除部门管理信息 - * + * * @param deptId 部门ID * @return 结果 */ 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 039ca63..de2d70f 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.GenerateUtil; 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 bonus */ @Service @@ -67,7 +69,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -80,7 +82,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -93,7 +95,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -106,7 +108,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @@ -118,7 +120,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @@ -130,7 +132,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @@ -147,7 +149,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @@ -164,7 +166,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param user 用户信息 * @return 结果 */ @@ -218,7 +220,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override @@ -232,7 +234,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override @@ -252,7 +254,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -260,6 +262,7 @@ public class SysUserServiceImpl implements ISysUserService @Transactional public int insertUser(SysUser user) { + user.setSecret(GenerateUtil.generateRandomSecret(64)); // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 @@ -271,7 +274,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -283,7 +286,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -305,7 +308,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 用户授权角色 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -319,7 +322,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @@ -331,7 +334,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -343,7 +346,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户头像 - * + * * @param userId 用户ID * @param avatar 头像地址 * @return 结果 @@ -356,7 +359,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @@ -368,7 +371,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param userId 用户ID * @param password 密码 * @return 结果 @@ -381,7 +384,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param user 用户对象 */ public void insertUserRole(SysUser user) @@ -391,7 +394,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ public void insertUserPost(SysUser user) @@ -414,7 +417,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -437,7 +440,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @@ -454,7 +457,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @@ -476,7 +479,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * + * * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 操作用户 diff --git a/bonus-system/src/main/resources/mapper/system/KyDataClassifyMapper.xml b/bonus-system/src/main/resources/mapper/system/KyDataClassifyMapper.xml new file mode 100644 index 0000000..24abb5e --- /dev/null +++ b/bonus-system/src/main/resources/mapper/system/KyDataClassifyMapper.xml @@ -0,0 +1,43 @@ + + + + + insert into da_ky_data_classify + (data_type_name,remark,create_time,update_time,create_user_id,create_user_name,update_user_id,update_user_name) + values (#{dataTypeName},#{remark},#{createTime},#{updateTime},#{createUserId},#{createUserName},#{updateUserId},#{updateUserName}) + + + update da_ky_data_classify + + + data_type_name =#{dataTypeName} + + + update_user_id =#{updateUserId} + + + update_user_name =#{updateUserName} + + + + + update da_ky_data_classify set del_flag = '0' where id = #{id} + + + + + diff --git a/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml b/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml index a067dfc..af7e055 100644 --- a/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -21,12 +21,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time + select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.remark from da_ky_sys_dept d - + - + - + - + - + - + - + - + - + insert into da_ky_sys_dept( dept_id, @@ -99,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" email, status, create_by, + remark, create_time )values( #{deptId}, @@ -111,10 +112,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{email}, #{status}, #{createBy}, + #{remark}, sysdate() ) - + update da_ky_sys_dept @@ -127,11 +129,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" email = #{email}, status = #{status}, update_by = #{updateBy}, + remark = #{remark}, update_time = sysdate() where dept_id = #{deptId} - + update da_ky_sys_dept set ancestors = - + update da_ky_sys_dept set status = '0' where dept_id in #{deptId} - + update da_ky_sys_dept set del_flag = '2' where dept_id = #{deptId} - \ No newline at end of file + diff --git a/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml b/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml index 4495929..0110aa9 100644 --- a/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/bonus-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -47,9 +47,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.secret from da_ky_sys_user u @@ -57,10 +57,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join da_ky_sys_user_role ur on u.user_id = ur.user_id left join da_ky_sys_role r on r.role_id = ur.role_id - + - + - + - + - + - + - + - + - + insert into da_ky_sys_user( user_id, @@ -159,6 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pwd_update_date, create_by, remark, + secret, create_time )values( #{userId}, @@ -174,10 +180,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{pwdUpdateDate}, #{createBy}, #{remark}, + #{secret}, sysdate() ) - + update da_ky_sys_user @@ -197,28 +204,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + update da_ky_sys_user set status = #{status} where user_id = #{userId} - + update da_ky_sys_user set avatar = #{avatar} where user_id = #{userId} - + update da_ky_sys_user set pwd_update_date = sysdate(), password = #{password} where user_id = #{userId} - + update da_ky_sys_user set del_flag = '2' where user_id = #{userId} - + update da_ky_sys_user set del_flag = '2' where user_id in #{userId} - + - - \ No newline at end of file + +