From 175e825c8a1b8310d3139df8132173a0bb32ce24 Mon Sep 17 00:00:00 2001 From: lixiu422 <2296477237@qq.com> Date: Wed, 31 Aug 2022 17:33:29 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=20=E6=A8=A1=E5=9D=97=E5=92=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ErrorCodeController.java | 51 ++++++++ .../sherly/controller/ModuleController.java | 52 ++++++++ .../guzi/sherly/service/ErrorCodeService.java | 96 ++++++++++++++ .../guzi/sherly/service/ModuleService.java | 122 ++++++++++++++++++ .../main/resources/application-develop.yml | 10 +- .../guzi/sherly/manager/ErrorCodeManager.java | 54 ++++++++ .../guzi/sherly/manager/ModuleManager.java | 38 ++++++ .../guzi/sherly/mapper/ErrorCodeMapper.java | 9 ++ .../com/guzi/sherly/mapper/ModuleMapper.java | 9 ++ .../guzi/sherly/model/admin/ErrorCode.java | 6 +- .../com/guzi/sherly/model/admin/Module.java | 8 +- .../sherly/model/dto/ErrorCodeInsertDTO.java | 29 +++++ .../sherly/model/dto/ErrorCodePageDTO.java | 21 +++ .../sherly/model/dto/ErrorCodeUpdateDTO.java | 33 +++++ .../sherly/model/dto/ModuleInsertDTO.java | 27 ++++ .../sherly/model/dto/ModuleUpdateDTO.java | 30 +++++ .../model/exception/enums/AdminErrorEnum.java | 6 + .../guzi/sherly/model/vo/ErrorCodePageVO.java | 34 +++++ .../com/guzi/sherly/model/vo/ModuleVO.java | 37 ++++++ 19 files changed, 656 insertions(+), 16 deletions(-) create mode 100644 sherly-admin/src/main/java/com/guzi/sherly/controller/ErrorCodeController.java create mode 100644 sherly-admin/src/main/java/com/guzi/sherly/controller/ModuleController.java create mode 100644 sherly-admin/src/main/java/com/guzi/sherly/service/ErrorCodeService.java create mode 100644 sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java create mode 100644 sherly-common/src/main/java/com/guzi/sherly/manager/ErrorCodeManager.java create mode 100644 sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java create mode 100644 sherly-common/src/main/java/com/guzi/sherly/mapper/ErrorCodeMapper.java create mode 100644 sherly-common/src/main/java/com/guzi/sherly/mapper/ModuleMapper.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeInsertDTO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodePageDTO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeUpdateDTO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleInsertDTO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleUpdateDTO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ErrorCodePageVO.java create mode 100644 sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ModuleVO.java diff --git a/sherly-admin/src/main/java/com/guzi/sherly/controller/ErrorCodeController.java b/sherly-admin/src/main/java/com/guzi/sherly/controller/ErrorCodeController.java new file mode 100644 index 0000000..be432cb --- /dev/null +++ b/sherly-admin/src/main/java/com/guzi/sherly/controller/ErrorCodeController.java @@ -0,0 +1,51 @@ +package com.guzi.sherly.controller; + +import com.guzi.sherly.model.PageResult; +import com.guzi.sherly.model.Result; +import com.guzi.sherly.model.dto.*; +import com.guzi.sherly.model.vo.ErrorCodePageVO; +import com.guzi.sherly.service.ErrorCodeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@RestController +@Api(tags = "错误相关") +@RequestMapping("/api/error_code") +@Validated +public class ErrorCodeController { + + @Autowired + private ErrorCodeService errorCodeService; + + @PostMapping("/save_one") + @ApiOperation("错误新增") + public Result saveOne(@RequestBody @Valid ErrorCodeInsertDTO dto) { + errorCodeService.saveOne(dto); + return Result.success(); + } + + @PutMapping("/update_one") + @ApiOperation("错误更新") + public Result updateOne(@RequestBody @Valid ErrorCodeUpdateDTO dto) { + errorCodeService.updateOne(dto); + return Result.success(); + } + + @DeleteMapping("/remove_one") + @ApiOperation("错误删除") + public Result removeOne(@RequestParam Integer errorId) { + errorCodeService.removeOne(errorId); + return Result.success(); + } + + @GetMapping("/list_page") + @ApiOperation("错误分页") + public Result> listPage(ErrorCodePageDTO dto) { + return Result.success(errorCodeService.listPage(dto)); + } +} diff --git a/sherly-admin/src/main/java/com/guzi/sherly/controller/ModuleController.java b/sherly-admin/src/main/java/com/guzi/sherly/controller/ModuleController.java new file mode 100644 index 0000000..0514363 --- /dev/null +++ b/sherly-admin/src/main/java/com/guzi/sherly/controller/ModuleController.java @@ -0,0 +1,52 @@ +package com.guzi.sherly.controller; + +import com.guzi.sherly.model.Result; +import com.guzi.sherly.model.dto.ModuleInsertDTO; +import com.guzi.sherly.model.dto.ModuleUpdateDTO; +import com.guzi.sherly.model.vo.ModuleVO; +import com.guzi.sherly.service.ModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@Api(tags = "模块相关") +@RequestMapping("/api/module") +@Validated +public class ModuleController { + + @Autowired + private ModuleService moduleService; + + @GetMapping("/list_tree") + @ApiOperation("查询模块树") + public Result> listTree() { + return Result.success(moduleService.listTree()); + } + + @PostMapping("/save_one") + @ApiOperation("模块新增") + public Result saveOne(@RequestBody @Valid ModuleInsertDTO dto) { + moduleService.saveOne(dto); + return Result.success(); + } + + @PutMapping("/update_one") + @ApiOperation("模块更新") + public Result updateOne(@RequestBody @Valid ModuleUpdateDTO dto) { + moduleService.updateOne(dto); + return Result.success(); + } + + @DeleteMapping("/remove_one") + @ApiOperation("模块删除") + public Result removeOne(@RequestParam Integer moduleId) { + moduleService.removeOne(moduleId); + return Result.success(); + } +} diff --git a/sherly-admin/src/main/java/com/guzi/sherly/service/ErrorCodeService.java b/sherly-admin/src/main/java/com/guzi/sherly/service/ErrorCodeService.java new file mode 100644 index 0000000..5f192a9 --- /dev/null +++ b/sherly-admin/src/main/java/com/guzi/sherly/service/ErrorCodeService.java @@ -0,0 +1,96 @@ +package com.guzi.sherly.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.guzi.sherly.manager.ErrorCodeManager; +import com.guzi.sherly.model.PageResult; +import com.guzi.sherly.model.admin.ErrorCode; +import com.guzi.sherly.model.dto.ErrorCodeInsertDTO; +import com.guzi.sherly.model.dto.ErrorCodePageDTO; +import com.guzi.sherly.model.dto.ErrorCodeUpdateDTO; +import com.guzi.sherly.model.exception.BizException; +import com.guzi.sherly.model.vo.ErrorCodePageVO; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +import static com.guzi.sherly.model.exception.enums.AdminErrorEnum.ERROR_REPEAT; + + +@Service +public class ErrorCodeService { + + @Autowired + private ErrorCodeManager errorCodeManager; + + /** + * 错误新增 + * @param dto + */ + public void saveOne(ErrorCodeInsertDTO dto) { + ErrorCode errorCode = new ErrorCode(); + // 查重 + ErrorCode one = errorCodeManager.getErrorCode(dto.getErrorCode()); + if (one != null) { + throw new BizException(ERROR_REPEAT); + } + BeanUtils.copyProperties(dto, errorCode); + errorCodeManager.save(errorCode); + } + + /** + * 错误更新 + * @param dto + */ + public void updateOne(ErrorCodeUpdateDTO dto) { + ErrorCode errorCode = new ErrorCode(); + // 查重 + ErrorCode one = errorCodeManager.getErrorCode(dto.getErrorCode()); + if (one != null) { + throw new BizException(ERROR_REPEAT); + } + BeanUtils.copyProperties(dto, errorCode); + errorCodeManager.updateById(errorCode); + } + + /** + * 错误删除 + * @param errorId + */ + public void removeOne(Integer errorId) { + errorCodeManager.removeById(errorId); + } + + /** + * 错误查询 + * @param dto + * @return + */ + public PageResult listPage(ErrorCodePageDTO dto) { + IPage page = errorCodeManager.listPage(dto); + + List result = page.getRecords().stream().map(e -> { + ErrorCodePageVO vo = new ErrorCodePageVO(); + BeanUtils.copyProperties(e, vo); + return vo; + }).collect(Collectors.toList()); + return PageResult.build(result, page.getCurrent(), page.getSize(), page.getTotal()); + } + + /** + * 实时更新模块代码 + * @param moduleId + * @param moduleCode + */ + @Transactional(rollbackFor = Exception.class) + public void updateModuleCode(Integer moduleId, String moduleCode) { + List list = errorCodeManager.getAll(moduleId); + for (ErrorCode e : list) { + e.setModuleCode(moduleCode); + } + errorCodeManager.updateBatchById(list); + } +} diff --git a/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java new file mode 100644 index 0000000..e8e21a0 --- /dev/null +++ b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java @@ -0,0 +1,122 @@ +package com.guzi.sherly.service; + +import com.guzi.sherly.manager.ErrorCodeManager; +import com.guzi.sherly.manager.ModuleManager; +import com.guzi.sherly.model.admin.Module; +import com.guzi.sherly.model.dto.ModuleInsertDTO; +import com.guzi.sherly.model.dto.ModuleUpdateDTO; +import com.guzi.sherly.model.exception.BizException; +import com.guzi.sherly.model.vo.ModuleVO; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import static com.guzi.sherly.model.contants.CommonConstants.ROOT_PARENT_ID; +import static com.guzi.sherly.model.exception.enums.AdminErrorEnum.*; + +@Service +public class ModuleService { + + @Autowired + private ModuleManager moduleManager; + + @Autowired + private ErrorCodeManager errorCodeManager; + + /** + * 查询模块树 + * @return + */ + public List listTree() { + List list = moduleManager.list(); + + //对象转换为vo类型 + List all = list.stream() + .sorted(Comparator.comparing(Module::getSort)) + .map(e -> { + ModuleVO vo = new ModuleVO(); + BeanUtils.copyProperties(e, vo); + return vo; + }).collect(Collectors.toList()); + + //拼装子节点并返回 + return all.stream() + .filter(e -> Objects.equals(e.getParentId(), ROOT_PARENT_ID.intValue())) + .peek(e -> e.setChildren(getChildren(e, all))) + .collect(Collectors.toList()); + } + + /** + * 递归拼装子结点 + * @param parent + * @param all + * @return + */ + private List getChildren(ModuleVO parent, List all) { + return all.stream() + .filter(e -> Objects.equals(e.getParentId(), parent.getModuleId())) + .peek(e -> e.setChildren(getChildren(e, all))) + .collect(Collectors.toList()); + } + + /** + * 模块新增 + * @param dto + */ + public void saveOne(ModuleInsertDTO dto) { + + Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode()); + // 查重 同级禁止新增相同模块 + if (one != null && Objects.equals(dto.getParentId(), one.getParentId())) { + throw new BizException(MODULE_REPEAT); + } + Module module = new Module(); + BeanUtils.copyProperties(dto, module); + moduleManager.save(module); + } + + /** + * 模块更新 + * @param dto + */ + @Transactional(rollbackFor = Exception.class) + public void updateOne(ModuleUpdateDTO dto) { + + Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode()); + + if (one != null) { + List list = moduleManager.getAll(dto.getModuleId()); + //存在子模块的父模块和不为自身的模块禁止修改 + if ((Objects.equals(dto.getParentId(), ROOT_PARENT_ID.intValue()) && list != null) || !Objects.equals(dto.getParentId(), one.getParentId())) { + throw new BizException(UPDATE_MODULE_ERROR); + } + //修改子模块同时更新错误列表 + if (!Objects.equals(dto.getParentId(), ROOT_PARENT_ID.intValue()) && Objects.equals(dto.getParentId(), one.getParentId())) { + ErrorCodeService errorCodeService = new ErrorCodeService(); + errorCodeService.updateModuleCode(dto.getModuleId(), dto.getModuleCode()); + } + } + Module module = new Module(); + BeanUtils.copyProperties(dto, module); + moduleManager.updateById(module); + } + + /** + * 模块删除 + * @param moduleId + */ + public void removeOne(Integer moduleId) { + //是否存在子模块 + List list = moduleManager.getAll(moduleId); + if (list != null) { + throw new BizException(DELETE_MODULE_ERROR); + } + moduleManager.removeById(moduleId); + } +} diff --git a/sherly-admin/src/main/resources/application-develop.yml b/sherly-admin/src/main/resources/application-develop.yml index 0ecd690..ef44ce1 100644 --- a/sherly-admin/src/main/resources/application-develop.yml +++ b/sherly-admin/src/main/resources/application-develop.yml @@ -12,9 +12,9 @@ spring: # redis配置 redis: - host: 101.34.169.185 + host: 10.3.74.238 port: 6379 - password: mpw:tNvIJM/7zuhDi3RoOr2KAA== + password: lrj317 database: 0 lettuce: pool: @@ -27,9 +27,9 @@ spring: # mysql配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://101.34.169.185:3306/sherly?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true - username: mpw:tNvIJM/7zuhDi3RoOr2KAA== - password: mpw:tNvIJM/7zuhDi3RoOr2KAA== + url: jdbc:mysql://10.3.74.238:3306/sherly?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true + username: lirjj + password: lrj317 hikari: connection-timeout: 60000 validation-timeout: 3000 diff --git a/sherly-common/src/main/java/com/guzi/sherly/manager/ErrorCodeManager.java b/sherly-common/src/main/java/com/guzi/sherly/manager/ErrorCodeManager.java new file mode 100644 index 0000000..6292ec5 --- /dev/null +++ b/sherly-common/src/main/java/com/guzi/sherly/manager/ErrorCodeManager.java @@ -0,0 +1,54 @@ +package com.guzi.sherly.manager; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.guzi.sherly.mapper.ErrorCodeMapper; +import com.guzi.sherly.model.admin.ErrorCode; +import com.guzi.sherly.model.dto.ErrorCodePageDTO; +import com.guzi.sherly.util.SherlyLambdaQueryWrapper; +import org.springframework.stereotype.Service; + +import java.util.List; + + +@Service +public class ErrorCodeManager extends ServiceImpl { + + /** + * 根据错误代码查询错误数据 + * @param errorCode + * @return + */ + public ErrorCode getErrorCode(String errorCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ErrorCode::getErrorCode, errorCode); + return this.getOne(wrapper, false); + } + + /** + * 根据模块id查询错误数据 + * @param moduleId + * @return + */ + public List getAll(Integer moduleId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ErrorCode::getModuleId, moduleId); + return this.list(wrapper); + } + + /** + * 错误条件查询 + * @param dto + * @return + */ + public IPage listPage(ErrorCodePageDTO dto) { + SherlyLambdaQueryWrapper wrapper = new SherlyLambdaQueryWrapper<>(); + wrapper + .likeIfExist(ErrorCode::getErrorCode, dto.getErrorCode()) + .likeIfExist(ErrorCode::getMessage, dto.getMessage()) + .eqIfExist(ErrorCode::getErrorCode, dto.getErrorCode()); + return this.page(new Page<>(dto.getCurrent(), dto.getSize()), wrapper); + } +} diff --git a/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java b/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java new file mode 100644 index 0000000..20ad860 --- /dev/null +++ b/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java @@ -0,0 +1,38 @@ +package com.guzi.sherly.manager; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guzi.sherly.mapper.ModuleMapper; +import com.guzi.sherly.model.admin.Module; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ModuleManager extends ServiceImpl { + + /** + * 根据模块名称查询模块数据 + * @param moduleName + * @return + */ + public Module getByModuleName(String moduleName,String moduleCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper + .eq(Module::getModuleName, moduleName) + .or() + .eq(Module::getModuleCode,moduleCode); + return this.getOne(wrapper, false); + } + + /** + * 根据父模块id查询子模块数据 + * @param moduleId + * @return + */ + public List getAll(Integer moduleId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Module::getParentId, moduleId); + return this.list(wrapper); + } +} diff --git a/sherly-common/src/main/java/com/guzi/sherly/mapper/ErrorCodeMapper.java b/sherly-common/src/main/java/com/guzi/sherly/mapper/ErrorCodeMapper.java new file mode 100644 index 0000000..5693c43 --- /dev/null +++ b/sherly-common/src/main/java/com/guzi/sherly/mapper/ErrorCodeMapper.java @@ -0,0 +1,9 @@ +package com.guzi.sherly.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.guzi.sherly.model.admin.ErrorCode; +import org.springframework.stereotype.Repository; + +@Repository +public interface ErrorCodeMapper extends BaseMapper { +} diff --git a/sherly-common/src/main/java/com/guzi/sherly/mapper/ModuleMapper.java b/sherly-common/src/main/java/com/guzi/sherly/mapper/ModuleMapper.java new file mode 100644 index 0000000..2ec676f --- /dev/null +++ b/sherly-common/src/main/java/com/guzi/sherly/mapper/ModuleMapper.java @@ -0,0 +1,9 @@ +package com.guzi.sherly.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.guzi.sherly.model.admin.Module; +import org.springframework.stereotype.Repository; + +@Repository +public interface ModuleMapper extends BaseMapper { +} diff --git a/sherly-common/src/main/java/com/guzi/sherly/model/admin/ErrorCode.java b/sherly-common/src/main/java/com/guzi/sherly/model/admin/ErrorCode.java index 36ff283..f9dc2c4 100644 --- a/sherly-common/src/main/java/com/guzi/sherly/model/admin/ErrorCode.java +++ b/sherly-common/src/main/java/com/guzi/sherly/model/admin/ErrorCode.java @@ -6,10 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.guzi.sherly.model.BaseModel; import lombok.Data; -/** - * @author 谷子毅 - * @date 2022/8/22 - */ @Data @TableName("ge_error_code") public class ErrorCode extends BaseModel { @@ -27,7 +23,7 @@ public class ErrorCode extends BaseModel { private String description; /** 模块id */ - private String moduleId; + private Integer moduleId; /** 模块代码 */ private String moduleCode; diff --git a/sherly-common/src/main/java/com/guzi/sherly/model/admin/Module.java b/sherly-common/src/main/java/com/guzi/sherly/model/admin/Module.java index 1a2dcdf..d875d75 100644 --- a/sherly-common/src/main/java/com/guzi/sherly/model/admin/Module.java +++ b/sherly-common/src/main/java/com/guzi/sherly/model/admin/Module.java @@ -6,10 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.guzi.sherly.model.BaseModel; import lombok.Data; -/** - * @author 谷子毅 - * @date 2022/8/29 - */ @Data @TableName("ge_module") public class Module extends BaseModel { @@ -19,10 +15,10 @@ public class Module extends BaseModel { private Integer moduleId; /** 模块代码 */ - private Integer moduleCode; + private String moduleCode; /** 模块名称 */ - private Integer moduleName; + private String moduleName; /** 排序 */ private Integer sort; diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeInsertDTO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeInsertDTO.java new file mode 100644 index 0000000..650fea4 --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeInsertDTO.java @@ -0,0 +1,29 @@ +package com.guzi.sherly.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class ErrorCodeInsertDTO { + + /** 错误代码 */ + @ApiModelProperty(value = "错误代码", required = true) + @NotBlank + private String errorCode; + + /** 错误信息 */ + @ApiModelProperty(value = "错误信息", required = true) + @NotBlank + private String message; + + /** 错误描述 */ + @ApiModelProperty(value = "错误描述") + private String description; + + /** 模块代码 */ + @ApiModelProperty(value = "模块代码", required = true) + @NotBlank + private String moduleCode; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodePageDTO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodePageDTO.java new file mode 100644 index 0000000..c039f88 --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodePageDTO.java @@ -0,0 +1,21 @@ +package com.guzi.sherly.model.dto; + +import com.guzi.sherly.model.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ErrorCodePageDTO extends PageQuery { + + /** 错误代码 */ + @ApiModelProperty(value = "错误代码") + private String errorCode; + + /** 错误信息 */ + @ApiModelProperty(value = "错误信息") + private String message; + + /** 模块代码 */ + @ApiModelProperty(value = "模块代码") + private String moduleCode; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeUpdateDTO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeUpdateDTO.java new file mode 100644 index 0000000..1fb655e --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ErrorCodeUpdateDTO.java @@ -0,0 +1,33 @@ +package com.guzi.sherly.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class ErrorCodeUpdateDTO { + + /** 错误id */ + @ApiModelProperty(value = "错误id") + private Integer errorId; + + /** 错误代码 */ + @ApiModelProperty(value = "错误代码", required = true) + @NotBlank + private String errorCode; + + /** 错误信息 */ + @ApiModelProperty(value = "错误信息", required = true) + @NotBlank + private String message; + + /** 错误描述 */ + @ApiModelProperty(value = "错误描述") + private String description; + + /** 模块代码 */ + @ApiModelProperty(value = "模块代码", required = true) + @NotBlank + private String moduleCode; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleInsertDTO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleInsertDTO.java new file mode 100644 index 0000000..c441614 --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleInsertDTO.java @@ -0,0 +1,27 @@ +package com.guzi.sherly.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ModuleInsertDTO { + + @ApiModelProperty(value = "模块名称", required = true) + @NotBlank + private String moduleName; + + @ApiModelProperty(value = "模块代码", required = true) + @NotBlank + private String moduleCode; + + @ApiModelProperty(value = "父模块id", required = true) + @NotNull + private Integer parentId; + + @ApiModelProperty(value = "排序", required = true) + @NotNull + private Integer sort; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleUpdateDTO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleUpdateDTO.java new file mode 100644 index 0000000..f8a86a1 --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/dto/ModuleUpdateDTO.java @@ -0,0 +1,30 @@ +package com.guzi.sherly.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ModuleUpdateDTO { + + @ApiModelProperty(value = "模块id") + private Integer moduleId; + + @ApiModelProperty(value = "模块名称", required = true) + @NotBlank + private String moduleName; + + @ApiModelProperty(value = "模块代码", required = true) + @NotBlank + private String moduleCode; + + @ApiModelProperty(value = "父模块id", required = true) + @NotNull + private Integer parentId; + + @ApiModelProperty(value = "排序", required = true) + @NotNull + private Integer sort; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/exception/enums/AdminErrorEnum.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/exception/enums/AdminErrorEnum.java index 2117ad3..6da6f8b 100644 --- a/sherly-sdk/src/main/java/com/guzi/sherly/model/exception/enums/AdminErrorEnum.java +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/exception/enums/AdminErrorEnum.java @@ -48,6 +48,12 @@ public enum AdminErrorEnum implements IBaseError { NO_EMAIL_CONFIG("000-050-001", "失败,请检查邮箱配置!"), /*============================对象存储=======================*/ NO_OSS_CONFIG("000-051-001", "失败,请检查存储配置!"), + /*============================模块管理=======================*/ + MODULE_REPEAT("000-007-001", "该模块已存在!"), + DELETE_MODULE_ERROR("000-007-002", "该级模块禁止删除!"), + UPDATE_MODULE_ERROR("000-007-003", "该模块禁止修改!"), + /*============================错误管理=======================*/ + ERROR_REPEAT("000-008-001", "该错误已存在!"), ; private final String code; diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ErrorCodePageVO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ErrorCodePageVO.java new file mode 100644 index 0000000..28b86e5 --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ErrorCodePageVO.java @@ -0,0 +1,34 @@ +package com.guzi.sherly.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class ErrorCodePageVO { + + /** 错误id */ + @ApiModelProperty(value = "错误id") + private Integer errorId; + + /** 错误码 */ + @ApiModelProperty(value = "错误代码") + private String errorCode; + + /** 错误信息 */ + @ApiModelProperty(value = "错误信息") + private String message; + + /** 错误描述 */ + @ApiModelProperty(value = "错误描述") + private String description; + + /** 模块代码 */ + @ApiModelProperty(value = "模块代码") + private String moduleCode; + + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Date createTime; +} diff --git a/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ModuleVO.java b/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ModuleVO.java new file mode 100644 index 0000000..849e2ac --- /dev/null +++ b/sherly-sdk/src/main/java/com/guzi/sherly/model/vo/ModuleVO.java @@ -0,0 +1,37 @@ +package com.guzi.sherly.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class ModuleVO { + + /** 模块id */ + @ApiModelProperty(value = "模块id") + private Integer moduleId; + + /** 模块名称 */ + @ApiModelProperty(value = "模块名称") + private String moduleName; + + /** 模块代码 */ + @ApiModelProperty(value = "模块代码") + private String moduleCode; + + /** 父模块id */ + @ApiModelProperty(value = "父模块id") + private Integer parentId; + + /** 排序 */ + @ApiModelProperty(value = "排序") + private Integer sort; + + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Date createTime; + + private List children; +} -- Gitee From 27918cf7305ef77ff9ac7a481dd427645e71c906 Mon Sep 17 00:00:00 2001 From: lixiu422 <2296477237@qq.com> Date: Wed, 31 Aug 2022 17:54:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat=20=E6=A8=A1=E5=9D=97=E5=92=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/guzi/sherly/service/ModuleService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java index e8e21a0..cd0f05f 100644 --- a/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java +++ b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java @@ -93,7 +93,7 @@ public class ModuleService { if (one != null) { List list = moduleManager.getAll(dto.getModuleId()); //存在子模块的父模块和不为自身的模块禁止修改 - if ((Objects.equals(dto.getParentId(), ROOT_PARENT_ID.intValue()) && list != null) || !Objects.equals(dto.getParentId(), one.getParentId())) { + if ((Objects.equals(dto.getParentId(), ROOT_PARENT_ID.intValue()) && list != null) || !Objects.equals(dto.getModuleId(), one.getModuleId())) { throw new BizException(UPDATE_MODULE_ERROR); } //修改子模块同时更新错误列表 @@ -114,7 +114,7 @@ public class ModuleService { public void removeOne(Integer moduleId) { //是否存在子模块 List list = moduleManager.getAll(moduleId); - if (list != null) { + if (list.size() > 0) { throw new BizException(DELETE_MODULE_ERROR); } moduleManager.removeById(moduleId); -- Gitee From 6b11c2155e310f2de9d874ac0cf2d8f13380e1dc Mon Sep 17 00:00:00 2001 From: lixiu422 <2296477237@qq.com> Date: Wed, 31 Aug 2022 18:19:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat=20=E6=A8=A1=E5=9D=97=E5=92=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/guzi/sherly/service/ModuleService.java | 4 ++-- .../src/main/java/com/guzi/sherly/manager/ModuleManager.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java index cd0f05f..7f871a9 100644 --- a/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java +++ b/sherly-admin/src/main/java/com/guzi/sherly/service/ModuleService.java @@ -71,7 +71,7 @@ public class ModuleService { */ public void saveOne(ModuleInsertDTO dto) { - Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode()); + Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode(),dto.getParentId()); // 查重 同级禁止新增相同模块 if (one != null && Objects.equals(dto.getParentId(), one.getParentId())) { throw new BizException(MODULE_REPEAT); @@ -88,7 +88,7 @@ public class ModuleService { @Transactional(rollbackFor = Exception.class) public void updateOne(ModuleUpdateDTO dto) { - Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode()); + Module one = moduleManager.getByModuleName(dto.getModuleName(), dto.getModuleCode(),dto.getParentId()); if (one != null) { List list = moduleManager.getAll(dto.getModuleId()); diff --git a/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java b/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java index 20ad860..a40a503 100644 --- a/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java +++ b/sherly-common/src/main/java/com/guzi/sherly/manager/ModuleManager.java @@ -16,10 +16,11 @@ public class ModuleManager extends ServiceImpl { * @param moduleName * @return */ - public Module getByModuleName(String moduleName,String moduleCode) { + public Module getByModuleName(String moduleName,String moduleCode,Integer parentId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper .eq(Module::getModuleName, moduleName) + .eq(Module::getParentId,parentId) .or() .eq(Module::getModuleCode,moduleCode); return this.getOne(wrapper, false); -- Gitee