From 8aa6b2e208699d25a4ed8fe8c0590eae83ba14d9 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Sat, 9 Nov 2024 00:30:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/common/constant/SymbolConstant.java | 120 ------------------ .../filter/CaptchaValidationFilter.java | 6 +- .../system/controller/DictController.java | 9 +- .../system/controller/DictDataController.java | 2 +- ...getTypeEnum.java => NoticeTargetEnum.java} | 4 +- .../boot/system/mapper/DictDataMapper.java | 5 - .../youlai/boot/system/mapper/DictMapper.java | 6 +- .../boot/system/service/DictService.java | 20 ++- .../system/service/impl/DeptServiceImpl.java | 5 +- .../system/service/impl/DictServiceImpl.java | 28 ++-- .../service/impl/NoticeServiceImpl.java | 15 +-- .../mapper/system/DictDataMapper.xml | 14 -- .../resources/mapper/system/DictMapper.xml | 2 +- 13 files changed, 39 insertions(+), 197 deletions(-) delete mode 100644 src/main/java/com/youlai/boot/common/constant/SymbolConstant.java rename src/main/java/com/youlai/boot/system/enums/{NoticeTargetTypeEnum.java => NoticeTargetEnum.java} (78%) diff --git a/src/main/java/com/youlai/boot/common/constant/SymbolConstant.java b/src/main/java/com/youlai/boot/common/constant/SymbolConstant.java deleted file mode 100644 index 49f670ee..00000000 --- a/src/main/java/com/youlai/boot/common/constant/SymbolConstant.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.youlai.boot.common.constant; - -/** - * 符号和特殊符号常用类 - * - * @author Theo - * @since 2024-7-29 11:46:08 - */ -public interface SymbolConstant { - - /** - * 符号:点 - */ - String SPOT = "."; - - /** - * 符号:双斜杠 - */ - String DOUBLE_BACKSLASH = "\\"; - - /** - * 符号:冒号 - */ - String COLON = ":"; - - /** - * 符号:逗号 - */ - String COMMA = ","; - - /** - * 符号:左花括号 { - */ - String LEFT_CURLY_BRACKET = "{"; - - /** - * 符号:右花括号 } - */ - String RIGHT_CURLY_BRACKET = "}"; - - /** - * 符号:井号 # - */ - String WELL_NUMBER = "#"; - - /** - * 符号:单斜杠 - */ - String SINGLE_SLASH = "/"; - - /** - * 符号:双斜杠 - */ - String DOUBLE_SLASH = "//"; - - /** - * 符号:感叹号 - */ - String EXCLAMATORY_MARK = "!"; - - /** - * 符号:下划线 - */ - String UNDERLINE = "_"; - - /** - * 符号:单引号 - */ - String SINGLE_QUOTATION_MARK = "'"; - - /** - * 符号:星号 - */ - String ASTERISK = "*"; - - /** - * 符号:百分号 - */ - String PERCENT_SIGN = "%"; - - /** - * 符号:美元 $ - */ - String DOLLAR = "$"; - - /** - * 符号:和 & - */ - String AND = "&"; - - /** - * 符号:../ - */ - String SPOT_SINGLE_SLASH = "../"; - - /** - * 符号:..\\ - */ - String SPOT_DOUBLE_BACKSLASH = "..\\"; - - /** - * 系统变量前缀 #{ - */ - String SYS_VAR_PREFIX = "#{"; - - /** - * 符号 {{ - */ - String DOUBLE_LEFT_CURLY_BRACKET = "{{"; - - /** - * 符号:[ - */ - String SQUARE_BRACKETS_LEFT = "["; - - /** - * 符号:] - */ - String SQUARE_BRACKETS_RIGHT = "]"; -} diff --git a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java index cf18f5aa..d0fabe5c 100644 --- a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java +++ b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java @@ -2,17 +2,15 @@ package com.youlai.boot.core.security.filter; import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.util.StrUtil; -import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.SecurityConstants; -import com.youlai.boot.common.constant.SymbolConstant; import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.common.util.ResponseUtils; -import com.youlai.boot.system.service.ConfigService; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.http.HttpMethod; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.web.filter.OncePerRequestFilter; @@ -27,7 +25,7 @@ import java.io.IOException; */ public class CaptchaValidationFilter extends OncePerRequestFilter { - private static final AntPathRequestMatcher LOGIN_PATH_REQUEST_MATCHER = new AntPathRequestMatcher(SecurityConstants.LOGIN_PATH, "POST"); + private static final AntPathRequestMatcher LOGIN_PATH_REQUEST_MATCHER = new AntPathRequestMatcher(SecurityConstants.LOGIN_PATH, HttpMethod.POST.name()); public static final String CAPTCHA_CODE_PARAM_NAME = "captchaCode"; public static final String CAPTCHA_KEY_PARAM_NAME = "captchaKey"; diff --git a/src/main/java/com/youlai/boot/system/controller/DictController.java b/src/main/java/com/youlai/boot/system/controller/DictController.java index e8edad4d..654ac72c 100644 --- a/src/main/java/com/youlai/boot/system/controller/DictController.java +++ b/src/main/java/com/youlai/boot/system/controller/DictController.java @@ -20,6 +20,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; /** @@ -88,14 +89,8 @@ public class DictController { public Result deleteDictionaries( @Parameter(description = "字典ID,多个以英文逗号(,)拼接") @PathVariable String ids ) { - dictService.deleteDictByIds(ids); + dictService.deleteDictByIds(Arrays.stream(ids.split(",")).toList()); return Result.success(); } - - - - - - } diff --git a/src/main/java/com/youlai/boot/system/controller/DictDataController.java b/src/main/java/com/youlai/boot/system/controller/DictDataController.java index 78a0a95c..f99c8256 100644 --- a/src/main/java/com/youlai/boot/system/controller/DictDataController.java +++ b/src/main/java/com/youlai/boot/system/controller/DictDataController.java @@ -45,7 +45,7 @@ public class DictDataController { return PageResult.success(result); } - @Operation(summary = "字典数据表单内") + @Operation(summary = "获取字典数据表单") @GetMapping("/{id}/form") public Result getDictDataForm( @Parameter(description = "字典数据ID") @PathVariable Long id diff --git a/src/main/java/com/youlai/boot/system/enums/NoticeTargetTypeEnum.java b/src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java similarity index 78% rename from src/main/java/com/youlai/boot/system/enums/NoticeTargetTypeEnum.java rename to src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java index f15441d6..6cf6c974 100644 --- a/src/main/java/com/youlai/boot/system/enums/NoticeTargetTypeEnum.java +++ b/src/main/java/com/youlai/boot/system/enums/NoticeTargetEnum.java @@ -12,7 +12,7 @@ import lombok.Getter; */ @Getter @Schema(enumAsRef = true) -public enum NoticeTargetTypeEnum implements IBaseEnum { +public enum NoticeTargetEnum implements IBaseEnum { ALL(1, "全体"), SPECIFIED(2, "指定"); @@ -22,7 +22,7 @@ public enum NoticeTargetTypeEnum implements IBaseEnum { private final String label; - NoticeTargetTypeEnum(Integer value, String label) { + NoticeTargetEnum(Integer value, String label) { this.value = value; this.label = label; } diff --git a/src/main/java/com/youlai/boot/system/mapper/DictDataMapper.java b/src/main/java/com/youlai/boot/system/mapper/DictDataMapper.java index 0f292dfd..8755cbde 100644 --- a/src/main/java/com/youlai/boot/system/mapper/DictDataMapper.java +++ b/src/main/java/com/youlai/boot/system/mapper/DictDataMapper.java @@ -21,11 +21,6 @@ public interface DictDataMapper extends BaseMapper { * 字典数据分页列表 */ Page getDictDataPage(Page page, DictDataPageQuery queryParams); - - /** - * 根据字典编码获取字典数据列表 - */ - Option listDictDataByDictCode(String dictCode); } diff --git a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java index 3188d823..901e9934 100644 --- a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java +++ b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java @@ -25,14 +25,14 @@ public interface DictMapper extends BaseMapper { * * @param page 分页参数 * @param queryParams 查询参数 - * @return + * @return 字典分页列表 */ Page getDictPage(Page page, DictPageQuery queryParams); /** - * 获取所有字典和字典数据 + * 获取字典列表(包含字典数据) * - * @return + * @return 字典列表 */ List getAllDictWithData(); } diff --git a/src/main/java/com/youlai/boot/system/service/DictService.java b/src/main/java/com/youlai/boot/system/service/DictService.java index 121c549a..bfcbc113 100644 --- a/src/main/java/com/youlai/boot/system/service/DictService.java +++ b/src/main/java/com/youlai/boot/system/service/DictService.java @@ -23,51 +23,47 @@ public interface DictService extends IService { * 字典分页列表 * * @param queryParams 分页查询对象 - * @return + * @return 字典分页列表 */ Page getDictPage(DictPageQuery queryParams); - /** * 获取字典表单详情 * * @param id 字典ID - * @return + * @return 字典表单 */ DictForm getDictForm(Long id); - /** * 新增字典 * * @param dictForm 字典表单 - * @return + * @return 是否成功 */ boolean saveDict(DictForm dictForm); - /** * 修改字典 * * @param id 字典ID * @param dictForm 字典表单 - * @return + * @return 是否成功 */ boolean updateDict(Long id, DictForm dictForm); /** * 删除字典 * - * @param idsStr 字典ID,多个以英文逗号(,)分割 - * @return + * @param ids 字典ID集合 */ - void deleteDictByIds(String idsStr); + void deleteDictByIds(List ids); /** - * 获取字典列表 + * 获取字典列表(包含字典数据) * - * @return + * @return 字典列表 */ List getAllDictWithData(); } diff --git a/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java index 0d0714e0..ee7e76e1 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/DeptServiceImpl.java @@ -13,7 +13,6 @@ import com.youlai.boot.system.model.entity.Dept; import com.youlai.boot.system.model.form.DeptForm; import com.youlai.boot.system.model.query.DeptQuery; import com.youlai.boot.system.model.vo.DeptVO; -import com.youlai.boot.common.constant.SymbolConstant; import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.enums.StatusEnum; import com.youlai.boot.common.model.Option; @@ -237,7 +236,7 @@ public class DeptServiceImpl extends ServiceImpl implements De public boolean deleteByIds(String ids) { // 删除部门及子部门 if (StrUtil.isNotBlank(ids)) { - String[] menuIds = ids.split(SymbolConstant.COMMA); + String[] menuIds = ids.split(","); for (String deptId : menuIds) { this.update(new LambdaUpdateWrapper() .eq(Dept::getId, deptId) @@ -265,7 +264,7 @@ public class DeptServiceImpl extends ServiceImpl implements De } else { Dept parent = this.getById(parentId); if (parent != null) { - treePath = parent.getTreePath() + SymbolConstant.COMMA + parent.getId(); + treePath = parent.getTreePath() + "," + parent.getId(); } } return treePath; diff --git a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java index 996b2ab4..f2a11eff 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java @@ -85,7 +85,7 @@ public class DictServiceImpl extends ServiceImpl implements Di public DictForm getDictForm(Long id) { // 获取字典 Dict entity = this.getById(id); - if(entity==null){ + if (entity == null) { throw new BusinessException("字典不存在"); } return dictConverter.toForm(entity); @@ -108,7 +108,7 @@ public class DictServiceImpl extends ServiceImpl implements Di .eq(Dict::getDictCode, dictCode) .ne(Dict::getId, id) ); - if(count>0){ + if (count > 0) { throw new BusinessException("字典编码已存在"); } @@ -122,14 +122,8 @@ public class DictServiceImpl extends ServiceImpl implements Di */ @Override @Transactional - public void deleteDictByIds(String ids) { - - Assert.isTrue(StrUtil.isNotBlank(ids), "请选择需要删除的字典"); - - List idList = Arrays.stream(ids.split(",")) - .toList(); - - for (String id : idList) { + public void deleteDictByIds(List ids) { + for (String id : ids) { Dict dict = this.getById(id); if (dict != null) { boolean removeResult = this.removeById(id); @@ -145,13 +139,13 @@ public class DictServiceImpl extends ServiceImpl implements Di } } - /** - * 获取所有字典和字典数据 - */ - @Override - public List getAllDictWithData() { - return this.baseMapper.getAllDictWithData(); - } + /** + * 获取字典列表(包含字典数据) + */ + @Override + public List getAllDictWithData() { + return this.baseMapper.getAllDictWithData(); + } } diff --git a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java index 0125fdb5..e986f0f0 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java @@ -7,13 +7,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.youlai.boot.common.constant.SymbolConstant; import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.shared.websocket.service.OnlineUserService; import com.youlai.boot.system.converter.NoticeConverter; import com.youlai.boot.system.enums.NoticePublishStatusEnum; -import com.youlai.boot.system.enums.NoticeTargetTypeEnum; +import com.youlai.boot.system.enums.NoticeTargetEnum; import com.youlai.boot.system.mapper.NoticeMapper; import com.youlai.boot.system.model.bo.NoticeBO; import com.youlai.boot.system.model.dto.NoticeDTO; @@ -95,7 +94,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme @Override public boolean saveNotice(NoticeForm formData) { - if (NoticeTargetTypeEnum.SPECIFIED.getValue().equals(formData.getTargetType())) { + if (NoticeTargetEnum.SPECIFIED.getValue().equals(formData.getTargetType())) { List targetUserIdList = formData.getTargetUserIds(); if (CollectionUtil.isEmpty(targetUserIdList)) { throw new BusinessException("推送指定用户不能为空"); @@ -115,7 +114,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme */ @Override public boolean updateNotice(Long id, NoticeForm formData) { - if (NoticeTargetTypeEnum.SPECIFIED.getValue().equals(formData.getTargetType())) { + if (NoticeTargetEnum.SPECIFIED.getValue().equals(formData.getTargetType())) { List targetUserIdList = formData.getTargetUserIds(); if (CollectionUtil.isEmpty(targetUserIdList)) { throw new BusinessException("推送指定用户不能为空"); @@ -140,7 +139,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme } // 逻辑删除 - List idList = Arrays.stream(ids.split(SymbolConstant.COMMA)) + List idList = Arrays.stream(ids.split(",")) .map(Long::parseLong) .toList(); boolean isRemoved = this.removeByIds(idList); @@ -171,7 +170,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme Integer targetType = notice.getTargetType(); String targetUserIds = notice.getTargetUserIds(); - if (NoticeTargetTypeEnum.SPECIFIED.getValue().equals(targetType) + if (NoticeTargetEnum.SPECIFIED.getValue().equals(targetType) && StrUtil.isBlank(targetUserIds)) { throw new BusinessException("推送指定用户不能为空"); } @@ -189,7 +188,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme // 添加新的用户通知数据 List targetUserIdList = null; - if (NoticeTargetTypeEnum.SPECIFIED.getValue().equals(targetType)) { + if (NoticeTargetEnum.SPECIFIED.getValue().equals(targetType)) { targetUserIdList = Arrays.asList(targetUserIds.split(",")); } @@ -197,7 +196,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme new LambdaQueryWrapper() // 如果是指定用户,则筛选出指定用户 .in( - NoticeTargetTypeEnum.SPECIFIED.getValue().equals(targetType), + NoticeTargetEnum.SPECIFIED.getValue().equals(targetType), User::getId, targetUserIdList ) diff --git a/src/main/resources/mapper/system/DictDataMapper.xml b/src/main/resources/mapper/system/DictDataMapper.xml index 141cd2fa..5ddd6b8b 100644 --- a/src/main/resources/mapper/system/DictDataMapper.xml +++ b/src/main/resources/mapper/system/DictDataMapper.xml @@ -29,20 +29,6 @@ - - - SELECT t1.name,