From fd22ba9dc6f7bb2d1864113a5cac78686b47f9da Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Sun, 14 Apr 2024 16:15:22 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BB=8E?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20id=20=E8=8E=B7=E5=8F=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AF=A6=E7=BB=86=E4=BF=A1=E6=81=AF=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 45 ++++---- .../com/jsl/oa/model/dodata/ProjectDO.java | 104 +++++++++++++++--- .../com/jsl/oa/services/ProjectService.java | 30 ++--- .../oa/services/impl/ProjectServiceImpl.java | 71 +++--------- .../java/com/jsl/oa/utils/BaseResponse.java | 10 +- .../java/com/jsl/oa/utils/ResultUtil.java | 82 +++++++++----- 6 files changed, 206 insertions(+), 136 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 11c8ec6..cb201d5 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -51,7 +51,6 @@ public class ProjectController { } - /** * @param id 要查询的 id * @return {@link BaseResponse} @@ -77,28 +76,34 @@ public class ProjectController { */ @GetMapping("/project/get/custom") public BaseResponse projectGetCustom( - @RequestParam(required = false) List tags, - @RequestParam(required = false) List isFinish, - @RequestParam(required = false, defaultValue = "1") Integer page, - @RequestParam(required = false, defaultValue = "10") Integer pageSize) { + @RequestParam(required = false) List tags, + @RequestParam(required = false) List isFinish, + @RequestParam(required = false, defaultValue = "1") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer pageSize) { log.info("请求接口[GET]: /project/get/custom"); return projectService.tGet(tags, isFinish, page, pageSize); } /** - * 我负责的界面的获取项目 + * 根据项目 id 获取项目详细信息 + *
+ * 根据项目 id 获取项目的详细信息,在地址后面有 projectId 的 path 部分需要补充完整(不可缺少) * + * @param projectId 项目 id + * @param request 请求 * @return {@link BaseResponse} */ - @GetMapping("/project/get") - public BaseResponse projectGet( - @RequestParam(required = false) List tags, - @RequestParam(required = false) List isFinish, - @RequestParam(required = false, defaultValue = "1") Integer page, - @RequestParam(required = false, defaultValue = "10") Integer pageSize, - HttpServletRequest request) { + @GetMapping("/project/get/{projectId}") + public BaseResponse getProjectById( + @PathVariable String projectId, + HttpServletRequest request + ) { log.info("请求接口[GET]: /project/get"); - return projectService.get(request, tags, isFinish, page, pageSize); + // 对 projectId 进行判断 + if (!projectId.matches("^[0-9]+$")) { + return ResultUtil.error("参数 projectId 不是一个数字", ErrorCode.PARAMETER_ERROR); + } + return projectService.getProjectById(request, Long.parseLong(projectId)); } /** @@ -108,12 +113,12 @@ public class ProjectController { */ @GetMapping("/project/child/get") public BaseResponse projectWorkGet( - @RequestParam(required = false) List tags, - @RequestParam(required = false) List isFinish, - @RequestParam(required = false) Integer is, - @RequestParam(required = false, defaultValue = "1") Integer page, - @RequestParam(required = false, defaultValue = "10") Integer pageSize, - HttpServletRequest request) { + @RequestParam(required = false) List tags, + @RequestParam(required = false) List isFinish, + @RequestParam(required = false) Integer is, + @RequestParam(required = false, defaultValue = "1") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer pageSize, + HttpServletRequest request) { log.info("请求接口[GET]: /project/work/get"); return projectService.workGet(request, tags, isFinish, is, page, pageSize); } diff --git a/src/main/java/com/jsl/oa/model/dodata/ProjectDO.java b/src/main/java/com/jsl/oa/model/dodata/ProjectDO.java index b5d013c..b83fd08 100755 --- a/src/main/java/com/jsl/oa/model/dodata/ProjectDO.java +++ b/src/main/java/com/jsl/oa/model/dodata/ProjectDO.java @@ -1,16 +1,15 @@ package com.jsl.oa.model.dodata; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import lombok.experimental.Accessors; +import java.sql.Date; import java.sql.Timestamp; /** *

project 数据表

*
- * 映射 oa_project 数据表内容进入自定义实体类 + * 映射 oa_project 数据表内容进入自定义实体类, 该实体类用于存储数据表中的数据。 * * @author 筱锋xiao_lfeng * @since v1.1.0 @@ -18,24 +17,99 @@ import java.sql.Timestamp; */ @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class ProjectDO { + /** + * 主键 + *
+ * 主键,自增 + */ private Long id; - private Long principalId; - private String tags; - private Integer cycle; + /** + * 项目名称 + *
+ * 项目名称,最长 255 字符 + */ private String name; - private String file; + /** + * 项目负责人 + *
+ * 项目负责人,关联 user 表 + */ + private Long principalId; + /** + * 项目描述 + *
+ * 项目描述,需要存储 json 数据 + */ private String description; - private Integer isDelete; + /** + * 项目标签 + *
+ * 项目标签,需要存储 json 数据(项目类型:web,大数据等) + */ + private String tags; + /** + * 项目周期 + *
+ * 项目周期,单位:天 + */ + private Integer cycle; + /** + * 项目工作量 + *
+ * 项目工作量,单位:人天 + */ private Integer workLoad; + /** + * 项目文件 + *
+ * 项目文件,需要存储 json 数据(文件名:UUID 生成值)。对于 JSON 内部只需要存储 UUID 信息以及加上文件尾缀即可。 + *

+ * 例如:[UUID].pdf, [UUID].png, [UUID].docx + */ + private String files; + /** + * 项目开始时间 + *


+ * 项目开始时间, 格式:yyyy-MM-dd + */ + private Date beginTime; + /** + * 项目完成时间 + *
+ * 项目完成时间, 格式:yyyy-MM-dd + */ + private Date completeTime; + /** + * 项目截止时间 + *
+ * 项目截止时间, 格式:yyyy-MM-dd + *

+ * 项目截止时间为最终的截止时间,即甲方要求的最终结束周期 + */ + private Date deadline; + /** + * 项目状态 + *


+ * 项目状态(draft: 草稿,progress: 进行,pause: 暂停,abnormal: 异常,complete: 完成) + */ private String status; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") - private Timestamp beginTime; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") - private Timestamp completeTime; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") - private Timestamp deadline; + /** + * 创建时间 + *
+ * 创建时间,格式:1234567890123 + */ private Timestamp createdAt; + /** + * 更新时间 + *
+ * 更新时间,格式:1234567890123 + */ private Timestamp updatedAt; + /** + * 是否删除 + *
+ * 是否删除(0: 否,1: 是) + */ + private Boolean isDelete; } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 2e67be1..5e333bb 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -21,13 +21,6 @@ public interface ProjectService { BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id); - BaseResponse get( - HttpServletRequest request, - List tags, - List isFinish, - Integer page, - Integer pageSize); - BaseResponse getByName(String name); BaseResponse projectDelete(HttpServletRequest request, List id); @@ -35,12 +28,12 @@ public interface ProjectService { BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectVO); BaseResponse workGet( - HttpServletRequest request, - List tags, - List isFinish, - Integer is, - Integer page, - Integer pageSize); + HttpServletRequest request, + List tags, + List isFinish, + Integer is, + Integer page, + Integer pageSize); BaseResponse projectWorkAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); @@ -53,4 +46,15 @@ public interface ProjectService { BaseResponse getWorkById(Integer id); BaseResponse projectPrincipalGet(); + + /** + * 从项目 id 获取项目的详细信息 + *
+ * 根据项目所属 id 获取项目的详细信息,根据用户所属角色组的不同返回不同的内容 + * + * @param request 获取请求体 + * @param projectId 项目 id + * @return 根据用户所属角色组的不同返回不同的内容 + */ + BaseResponse getProjectById(HttpServletRequest request, Long projectId); } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index 48d6726..0f0697c 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -136,13 +136,13 @@ public class ProjectServiceImpl implements ProjectService { ProjectDO projectDO = projectDAO.getProjectById(projectId); - if (projectDO.getFile() == null || projectDO.getFile().equals("{}")) { + if (projectDO.getFiles() == null || projectDO.getFiles().equals("{}")) { return ResultUtil.success(null); } // 将文件内容转换为 JSON 数组 try { - Object fileJson = new ObjectMapper().readValue(projectDO.getFile(), Object.class); + Object fileJson = new ObjectMapper().readValue(projectDO.getFiles(), Object.class); return ResultUtil.success(fileJson); } catch (JsonProcessingException e) { return ResultUtil.error(ErrorCode.PROJECT_FILE_JSON_ERROR); @@ -183,6 +183,22 @@ public class ProjectServiceImpl implements ProjectService { return ResultUtil.success(userMapper.getPrincipal()); } + @Override + public BaseResponse getProjectById(HttpServletRequest request, Long projectId) { + // 对项目 id 进行数据库校验 + ProjectDO getProject = projectDAO.getProjectById(projectId); + if (getProject == null) { + return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + // 检查项目是否被删除 + if (getProject.getIsDelete()) { + return ResultUtil.error("项目已删除", ErrorCode.PROJECT_NOT_EXIST); + } + // 对项目具体信息进行检查 + // TODO: [10001] 需要检查普通用户是否有权限可以看到这一篇项目内容 + return ResultUtil.success(getProject); + } + @Override public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法"); @@ -294,56 +310,6 @@ public class ProjectServiceImpl implements ProjectService { } } - @Override - public BaseResponse get( - HttpServletRequest request, - List tags, - List isFinish, - Integer page, - Integer pageSize - ) { - log.info("\t> 执行 Service 层 ProjectService.get 方法"); - - //获取用户 - Long userId = Processing.getAuthHeaderToUserId(request); - //根据标签查询 - if (tags != null && !tags.isEmpty()) { - List projectDOList = projectDAO.get(userId, tags, isFinish); - - List projectSimpleVOList = new ArrayList<>(); - for (ProjectDO projectDO : projectDOList) { - ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO(); - Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper); - projectSimpleVOList.add(projectSimpleVO1); - } - //分页返回 - int start = (page - 1) * pageSize; - int end = start + pageSize; - List pageData = projectSimpleVOList.subList(start, - Math.min(end, projectSimpleVOList.size())); - return ResultUtil.success(pageData); - } - - //根据状态查询 - if (isFinish != null && !isFinish.isEmpty()) { - List projectDOList = projectDAO.get(userId, tags, isFinish); - List projectSimpleVOList = new ArrayList<>(); - for (ProjectDO projectDO : projectDOList) { - ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO(); - Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper); - projectSimpleVOList.add(projectSimpleVO1); - } - //分页返回 - int start = (page - 1) * pageSize; - int end = start + pageSize; - List pageData = projectSimpleVOList.subList(start, - Math.min(end, projectSimpleVOList.size())); - return ResultUtil.success(pageData); - } - return ResultUtil.success(projectMapper.get(userId)); - - } - @Override public BaseResponse workGet( HttpServletRequest request, @@ -374,7 +340,6 @@ public class ProjectServiceImpl implements ProjectService { } - @Override public BaseResponse getByName(String name) { log.info("\t> 执行 Service 层 ProjectService.getByName 方法"); diff --git a/src/main/java/com/jsl/oa/utils/BaseResponse.java b/src/main/java/com/jsl/oa/utils/BaseResponse.java index 7ee8729..d0f1cac 100755 --- a/src/main/java/com/jsl/oa/utils/BaseResponse.java +++ b/src/main/java/com/jsl/oa/utils/BaseResponse.java @@ -2,7 +2,9 @@ package com.jsl.oa.utils; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Getter @JsonInclude(JsonInclude.Include.NON_NULL) public class BaseResponse { @@ -16,12 +18,6 @@ public class BaseResponse { this.code = code; this.message = message; this.data = data; - } - - public BaseResponse(String output, Integer code, String message) { - this.output = output; - this.code = code; - this.message = message; - this.data = null; + log.info("=================================================="); } } diff --git a/src/main/java/com/jsl/oa/utils/ResultUtil.java b/src/main/java/com/jsl/oa/utils/ResultUtil.java index af924a4..e50c690 100755 --- a/src/main/java/com/jsl/oa/utils/ResultUtil.java +++ b/src/main/java/com/jsl/oa/utils/ResultUtil.java @@ -1,75 +1,101 @@ package com.jsl.oa.utils; import lombok.extern.slf4j.Slf4j; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.springframework.http.ResponseEntity; +import java.util.HashMap; + /** *

结果工具类

*
* 用于返回结果 * + * @author xiao_lfeng * @version v1.1.0 * @since v1.1.0 - * @author xiao_lfeng */ @Slf4j public class ResultUtil { - @Contract(" -> new") public static @NotNull BaseResponse success() { - log.info("成功: Success[200] {}", "操作成功"); + log.info("成功: Success[200] 操作成功 - 不带数据"); log.info("=================================================="); return new BaseResponse("Success", 200, "操作成功", null); } - @Contract("_ -> new") public static @NotNull BaseResponse success(String message) { - log.info("成功: Success[200] {}", message); - log.info("=================================================="); + log.info("成功: Success[200] {} - 不带数据", message); return new BaseResponse("Success", 200, message, null); } - @Contract(value = "_ -> new", pure = true) public static @NotNull BaseResponse success(Object data) { - log.info("成功: Success[200] {}", "操作成功"); - log.info("=================================================="); + log.info("成功: Success[200] 操作成功 - 带数据"); return new BaseResponse("Success", 200, "操作成功", data); } - @Contract(value = "_, _ -> new", pure = true) public static @NotNull BaseResponse success(String message, Object data) { - log.info("成功: Success[200] {}", message); - log.info("=================================================="); + log.info("成功: Success[200] {} - 带数据", message); return new BaseResponse("Success", 200, message, data); } - @Contract("_ -> new") + public static @NotNull BaseResponse error(@NotNull String errorMessage, @NotNull ErrorCode errorCode) { + log.warn("失败: 错误码[" + errorCode.getCode() + "] {} - {} - {}", + errorCode.getOutput(), + errorCode.getMessage(), + errorMessage + ); + HashMap map = new HashMap<>(); + map.put("errorMessage", errorMessage); + return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), map); + } + public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode) { - log.warn("失败: 错误码[" + errorCode.getCode() + "] {} - {}", errorCode.getOutput(), errorCode.getMessage()); - log.info("=================================================="); - return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage()); + logBack(errorCode.getCode(), errorCode.getOutput(), errorCode.getMessage(), null); + HashMap map = new HashMap<>(); + map.put("errorMessage", errorCode.getMessage()); + return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), map); } - @Contract("_, _ -> new") public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode, Object data) { - log.warn("失败: 错误码[" + errorCode.getCode() + "] {} - {}", errorCode.getOutput(), errorCode.getMessage()); - log.info("=================================================="); - return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), data); + logBack(errorCode.getCode(), errorCode.getOutput(), errorCode.getMessage(), data); + HashMap map = new HashMap<>(); + map.put("errorMessage", errorCode.getMessage()); + map.put("errorData", data); + return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), map); } - @Contract(value = "_, _, _, _ -> new", pure = true) public static @NotNull BaseResponse error(String output, Integer code, String message, Object data) { - log.warn("失败: 错误码[" + code + "] {} - {}", output, message); - log.info("=================================================="); - return new BaseResponse(output, code, message, data); + logBack(code, output, message, data); + HashMap map = new HashMap<>(); + map.put("errorMessage", message); + map.put("errorData", data); + return new BaseResponse(output, code, message, map); } public static @NotNull ResponseEntity error(String output, Integer code, String message) { - log.warn("失败: 错误码[" + code + "] {} - {}", output, message); - log.info("=================================================="); + logBack(code, output, message, null); + HashMap map = new HashMap<>(); + map.put("errorMessage", message); return ResponseEntity.status(500) - .body(new BaseResponse(output, code, message)); + .body(new BaseResponse(output, code, message, map)); + } + + /** + *

日志记录

+ *
+ * 用户返回错误相关的日志内容 + * + * @param code 错误码 + * @param output 英文输出状态信息 + * @param message 中文解释消息 + * @param data 是否有数据 + */ + private static void logBack(Integer code, String output, String message, Object data) { + if (data != null) { + log.warn("失败: 错误码[{}] {} - {} - 带数据", code, output, message); + } else { + log.warn("失败: 错误码[{}] {} - {} - 不带数据", code, output, message); + } } } From 39ad8a094495f2524df2d7b0bcce494b1fc86e7f Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Sun, 14 Apr 2024 19:25:00 +0800 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=E5=AE=89=E5=85=A8=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E5=87=86=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...slOrganizeInternalOaRunnerApplication.java | 59 ---------- .../jsl/oa/config/startup/PrepareData.java | 35 ++++++ .../config/startup/StartupConfiguration.java | 103 ++++++++++++++++++ 3 files changed, 138 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java create mode 100644 src/main/java/com/jsl/oa/config/startup/PrepareData.java create mode 100644 src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java diff --git a/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java b/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java deleted file mode 100644 index 6ccf80f..0000000 --- a/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.jsl.oa; - -import com.google.gson.Gson; -import com.jsl.oa.common.constant.SafeConstants; -import com.jsl.oa.mapper.InfoMapper; -import com.jsl.oa.model.dodata.ConfigDO; -import com.jsl.oa.model.vodata.business.InfoAboutSecurityKey; -import com.jsl.oa.utils.Processing; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.SmartInitializingSingleton; -import org.springframework.stereotype.Component; - -import java.sql.Timestamp; - -/** - *

启动类

- *
- * 用于启动项目 - * - * @version v1.1.0 - * @see org.springframework.boot.SpringApplication - * @see org.springframework.boot.autoconfigure.SpringBootApplication - * @since v1.1.0 - * @author xiaofeng - */ -@Component -@RequiredArgsConstructor -public class JslOrganizeInternalOaRunnerApplication implements SmartInitializingSingleton { - private final Gson gson = new Gson(); - private final InfoMapper infoMapper; - - - /** - *

获取安全密钥

- *
- * 从数据库中获取安全密钥 - */ - @Override - public void afterSingletonsInstantiated() { - // 获取数据库中的 SecurityKey - try { - SafeConstants.setSecretKey(infoMapper.getSecurityKey().getData()); - } catch (NullPointerException exception) { - // 生成密钥 - String key = Processing.generateKey(System.currentTimeMillis()); - InfoAboutSecurityKey infoAboutSecurityKey = new InfoAboutSecurityKey(); - infoAboutSecurityKey.setKey(key) - .setUpdateTime(System.currentTimeMillis()); - String json = gson.toJson(infoAboutSecurityKey, InfoAboutSecurityKey.class); - // 更新密钥 - ConfigDO configDO = new ConfigDO(); - configDO.setValue("security_key") - .setData(json) - .setCreatedAt(new Timestamp(System.currentTimeMillis())); - infoMapper.insertSecurityKey(configDO); - SafeConstants.setSecretKey(key); - } - } -} diff --git a/src/main/java/com/jsl/oa/config/startup/PrepareData.java b/src/main/java/com/jsl/oa/config/startup/PrepareData.java new file mode 100644 index 0000000..f9fafa6 --- /dev/null +++ b/src/main/java/com/jsl/oa/config/startup/PrepareData.java @@ -0,0 +1,35 @@ +package com.jsl.oa.config.startup; + +import com.jsl.oa.model.dodata.RoleDO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.jdbc.core.JdbcTemplate; + +@Slf4j +@RequiredArgsConstructor +public class PrepareData { + private final JdbcTemplate jdbcTemplate; + + /** + * 检查角色 + *
+ * 检查检查指定的角色是否存在,如果不存在则创建 + */ + public void checkRole(String roleName, String displayName) { + RoleDO getRole = jdbcTemplate.queryForObject( + "SELECT * FROM organize_oa.oa_role WHERE role_name = ?", + RoleDO.class, + roleName + ); + // 检查角色是否存在 + if (getRole == null) { + // 创建角色 + log.debug("[Preparation] 创建角色 [{}]{}", roleName, displayName); + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_role (role_name, display_name) VALUES (?,?)", + roleName, + displayName + ); + } + } +} diff --git a/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java b/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java new file mode 100644 index 0000000..a3202a3 --- /dev/null +++ b/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java @@ -0,0 +1,103 @@ +package com.jsl.oa.config.startup; + +import com.google.gson.Gson; +import com.jsl.oa.common.constant.SafeConstants; +import com.jsl.oa.model.dodata.ConfigDO; +import com.jsl.oa.model.vodata.business.InfoAboutSecurityKey; +import com.jsl.oa.utils.Processing; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.sql.Timestamp; + +/** + * 系统启动时进行的一些初始化操作 + *
+ * 1. 检查数据库完整性 + * 2. 检查系统配置 + * 3. 检查系统权限 + * 4. 检查系统数据 + * + * @author xiao_lfeng + * @version v1.2.0 + * @since v1.2.0 + */ +@Slf4j +@Configuration +@RequiredArgsConstructor +public class StartupConfiguration { + private final JdbcTemplate jdbcTemplate; + private final PrepareData prepareData = new PrepareData(jdbcTemplate); + + @Bean + @Order(1) + public CommandLineRunner startUpPreparation() { + return args -> { + log.info("============================================================"); + log.info("[Preparation] 系统进行准备检查"); + }; + } + + /** + * 对数据库进行完整性检查 + *
+ * 对数据库进行完整性检查,检查数据库是否有数据缺失等信息 + */ + @Bean + @Order(2) + public CommandLineRunner sqlDataPreparation() { + return args -> { + log.info("[Preparation] 系统进行数据库完整性检查"); + // 检查角色信息是否完整 + prepareData.checkRole("console", "超级管理员"); + prepareData.checkRole("principal", "负责人"); + prepareData.checkRole("developer", "开发者"); + }; + } + + /** + * 准备安全密钥 + *
+ * 准备安全密钥,用于加密解密等操作 + */ + @Bean + @Order(3) + public CommandLineRunner prepareKey() { + return args -> { + log.info("[Preparation] 系统进行安全密钥准备"); + Gson gson = new Gson(); + // 获取数据库中的安全密钥 + ConfigDO getSecurityKey = jdbcTemplate.queryForObject( + "SELECT * FROM organize_oa.oa_config WHERE value = ?", + ConfigDO.class, + "security_key" + ); + if (getSecurityKey != null) { + SafeConstants.setSecretKey(getSecurityKey.getData()); + } else { + // 生成密钥 + String key = Processing.generateKey(System.currentTimeMillis()); + InfoAboutSecurityKey infoAboutSecurityKey = new InfoAboutSecurityKey(); + infoAboutSecurityKey.setKey(key) + .setUpdateTime(System.currentTimeMillis()); + String json = gson.toJson(infoAboutSecurityKey, InfoAboutSecurityKey.class); + // 更新密钥 + ConfigDO configDO = new ConfigDO(); + configDO.setValue("security_key") + .setData(json) + .setCreatedAt(new Timestamp(System.currentTimeMillis())); + // 初始化密钥 + jdbcTemplate.update("INSERT INTO organize_oa.oa_config (value, data) VALUES (?, ?)", + configDO.getValue(), + configDO.getData() + ); + SafeConstants.setSecretKey(key); + } + }; + } +} From 0eaf43c76455f4dc0892ccf7c35d061494df3e01 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Mon, 15 Apr 2024 13:41:19 +0800 Subject: [PATCH 3/8] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9C=8D=E5=8A=A1=E5=AE=9E=E7=8E=B0=EF=BC=8C=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E7=AD=9B=E9=80=89=E7=94=B1ID=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E4=B8=BA=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/AuthController.java | 2 +- src/main/java/com/jsl/oa/dao/UserDAO.java | 4 +-- .../oa/model/vodata/UserCurrentBackVO.java | 2 +- .../jsl/oa/model/vodata/UserReturnBackVO.java | 2 +- .../jsl/oa/services/impl/AuthServiceImpl.java | 12 +++++-- .../jsl/oa/services/impl/UserServiceImpl.java | 2 +- .../java/com/jsl/oa/utils/Processing.java | 32 ++++++++++++++++++- 7 files changed, 47 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/AuthController.java b/src/main/java/com/jsl/oa/controllers/AuthController.java index 8300945..c26aa60 100755 --- a/src/main/java/com/jsl/oa/controllers/AuthController.java +++ b/src/main/java/com/jsl/oa/controllers/AuthController.java @@ -178,7 +178,7 @@ public class AuthController { if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); } - return authService.authChangePassword(request, userChangePasswordVO); + return authService.authChangePassword(userChangePasswordVO, request); } /** diff --git a/src/main/java/com/jsl/oa/dao/UserDAO.java b/src/main/java/com/jsl/oa/dao/UserDAO.java index cecf804..5ea8f50 100755 --- a/src/main/java/com/jsl/oa/dao/UserDAO.java +++ b/src/main/java/com/jsl/oa/dao/UserDAO.java @@ -118,10 +118,10 @@ public class UserDAO { * * @param id */ - public void userLock(Long id,Long isLock) { + public void userLock(Long id, Long isLock) { log.info("\t> 执行 DAO 层 UserDAO.userLock 方法"); log.info("\t\t> 从 MySQL 获取数据"); - userMapper.userLock(id,isLock); + userMapper.userLock(id, isLock); } public void userEditProfile(UserEditProfileVO userEditProfileVO) { diff --git a/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java b/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java index 1385644..199ac08 100755 --- a/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java @@ -32,7 +32,7 @@ public class UserCurrentBackVO { @Data @Accessors(chain = true) public static class ReturnUserRole { - private Long rid; + private String name; } @Data diff --git a/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java b/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java index 07f52d7..80bd69e 100755 --- a/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java @@ -25,7 +25,7 @@ public class UserReturnBackVO { @Data @Accessors(chain = true) public static class ReturnUserRole { - private Long rid; + private String name; } @Data diff --git a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java index 25776df..abcf33c 100755 --- a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java @@ -5,6 +5,7 @@ import com.jsl.oa.common.constant.BusinessConstants; import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.mapper.UserMapper; +import com.jsl.oa.model.dodata.RoleDO; import com.jsl.oa.model.dodata.RoleUserDO; import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.vodata.*; @@ -281,14 +282,21 @@ public class AuthServiceImpl implements AuthService { } else { getUserRole.setUid(null); } + // 获取角色信息 + RoleDO getRole = roleDAO.getRoleById(getUserRole.getRid()); + String getRoleString; + if (getRole != null) { + getRoleString = getRole.getRoleName(); + } else { + getRoleString = "default"; + } userReturnBackVO.setUser(new UserReturnBackVO.ReturnUser() .setId(userDO.getId()) .setJobId(userDO.getJobId()) .setUsername(userDO.getUsername()) .setEmail(userDO.getEmail()) .setPhone(userDO.getPhone())) - .setRole(new UserReturnBackVO.ReturnUserRole() - .setRid(getUserRole.getRid())) + .setRole(new UserReturnBackVO.ReturnUserRole().setName(getRoleString)) .setToken(token) .setPermission(getPermissionForString); return ResultUtil.success("登陆成功", userReturnBackVO); diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index 050c9dc..72df623 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -124,7 +124,7 @@ public class UserServiceImpl implements UserService { } // 检查是否存在 Role 筛选 if (userAllCurrentVO.getRole() != null) { - userCurrentBackVO.getUsers().removeIf(it -> !userAllCurrentVO.getRole().equals(it.getRole().getRid())); + userCurrentBackVO.getUsers().removeIf(it -> !userAllCurrentVO.getRole().equals(it.getRole().getName())); } return ResultUtil.success(userCurrentBackVO); } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index 2ce83d2..14a6d4f 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -299,7 +299,37 @@ public class Processing { // 获取权限列表信息 getPermissionForString = permissionDAO.getPermission(userDO.getId()); } - userCurrent.setUser(new UserCurrentBackVO.ReturnUser().setId(userDO.getId()).setJobId(userDO.getJobId()).setUsername(userDO.getUsername()).setAddress(userDO.getAddress()).setPhone(userDO.getPhone()).setEmail(userDO.getEmail()).setAge(userDO.getAge()).setSignature(userDO.getSignature()).setAvatar(userDO.getAvatar()).setNickname(userDO.getNickname()).setSex(userDO.getSex()).setEnabled(userDO.getEnabled()).setAccountNoExpired(userDO.getAccountNoExpired()).setCredentialsNoExpired(userDO.getCredentialsNoExpired()).setRecommend(userDO.getRecommend()).setAccountNoLocked(userDO.getAccountNoLocked()).setDescription(userDO.getDescription()).setCreatedAt(userDO.getCreatedAt()).setUpdatedAt(userDO.getUpdatedAt()).setIsDelete(userDO.getIsDelete())).setRole(new UserCurrentBackVO.ReturnUserRole().setRid(getUserRole.getRid())).setPermission(getPermissionForString); + RoleDO getRole = roleDAO.getRoleById(getUserRole.getRid()); + String getRoleString; + if (getRole != null) { + getRoleString = getRole.getRoleName(); + } else { + getRoleString = "default"; + } + userCurrent + .setUser(new UserCurrentBackVO.ReturnUser() + .setId(userDO.getId()) + .setJobId(userDO.getJobId()) + .setUsername(userDO.getUsername()) + .setAddress(userDO.getAddress()) + .setPhone(userDO.getPhone()) + .setEmail(userDO.getEmail()) + .setAge(userDO.getAge()) + .setSignature(userDO.getSignature()) + .setAvatar(userDO.getAvatar()) + .setNickname(userDO.getNickname()) + .setSex(userDO.getSex()) + .setEnabled(userDO.getEnabled()) + .setAccountNoExpired(userDO.getAccountNoExpired()) + .setCredentialsNoExpired(userDO.getCredentialsNoExpired()) + .setRecommend(userDO.getRecommend()) + .setAccountNoLocked(userDO.getAccountNoLocked()) + .setDescription(userDO.getDescription()) + .setCreatedAt(userDO.getCreatedAt()) + .setUpdatedAt(userDO.getUpdatedAt()) + .setIsDelete(userDO.getIsDelete())) + .setRole(new UserCurrentBackVO.ReturnUserRole().setName(getRoleString)) + .setPermission(getPermissionForString); return userCurrent; } From 102b900e5581c2c3b21f054c87c1ffef7a7fde85 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Mon, 15 Apr 2024 15:37:08 +0800 Subject: [PATCH 4/8] =?UTF-8?q?patch:=20=E9=94=99=E8=AF=AF=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index 72df623..ab7cda2 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -262,7 +262,7 @@ public class UserServiceImpl implements UserService { UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)); UserProfileVo userProfileVo = new UserProfileVo(); Processing.copyProperties(userDO, userProfileVo); - userProfileVo.setRole(roleDAO.getRoleNameByUid(userDO.getId()).getDisplayName()); + userProfileVo.setRole(roleDAO.getRoleNameByUid(userDO.getId()).getRoleName()); userProfileVo.setSex(Processing.getSex(userDO.getSex())); return ResultUtil.success(userProfileVo); } From 327f26fc30832e1d2579cd9a2a86634407336008 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Mon, 15 Apr 2024 16:17:06 +0800 Subject: [PATCH 5/8] =?UTF-8?q?refactor=EF=BC=9A=E5=B0=86Role=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E6=9B=BF=E6=8D=A2=E4=B8=BAString=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BB=A5=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jsl/oa/model/vodata/UserAllCurrentVO.java | 2 +- .../java/com/jsl/oa/model/vodata/UserCurrentBackVO.java | 8 +------- .../java/com/jsl/oa/model/vodata/UserReturnBackVO.java | 8 +------- .../java/com/jsl/oa/services/impl/AuthServiceImpl.java | 2 +- .../java/com/jsl/oa/services/impl/UserServiceImpl.java | 2 +- src/main/java/com/jsl/oa/utils/Processing.java | 2 +- 6 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/jsl/oa/model/vodata/UserAllCurrentVO.java b/src/main/java/com/jsl/oa/model/vodata/UserAllCurrentVO.java index 63b7eaf..a2e7538 100644 --- a/src/main/java/com/jsl/oa/model/vodata/UserAllCurrentVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/UserAllCurrentVO.java @@ -9,5 +9,5 @@ public class UserAllCurrentVO { private Long page; private Long limit; private String search; - private Long role; + private String role; } diff --git a/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java b/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java index 199ac08..a1d24b1 100755 --- a/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/UserCurrentBackVO.java @@ -25,16 +25,10 @@ public class UserCurrentBackVO { @Accessors(chain = true) public static class UserCurrent { private ReturnUser user; - private ReturnUserRole role; + private String role; private List permission; } - @Data - @Accessors(chain = true) - public static class ReturnUserRole { - private String name; - } - @Data @Accessors(chain = true) public static class ReturnUser { diff --git a/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java b/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java index 80bd69e..694da21 100755 --- a/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/UserReturnBackVO.java @@ -18,16 +18,10 @@ import java.util.List; @Accessors(chain = true) public class UserReturnBackVO { private ReturnUser user; - private ReturnUserRole role; + private String role; private String token; private List permission; - @Data - @Accessors(chain = true) - public static class ReturnUserRole { - private String name; - } - @Data @Accessors(chain = true) public static class ReturnUser { diff --git a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java index abcf33c..697c9d3 100755 --- a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java @@ -296,7 +296,7 @@ public class AuthServiceImpl implements AuthService { .setUsername(userDO.getUsername()) .setEmail(userDO.getEmail()) .setPhone(userDO.getPhone())) - .setRole(new UserReturnBackVO.ReturnUserRole().setName(getRoleString)) + .setRole(getRoleString) .setToken(token) .setPermission(getPermissionForString); return ResultUtil.success("登陆成功", userReturnBackVO); diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index ab7cda2..c25c4ed 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -124,7 +124,7 @@ public class UserServiceImpl implements UserService { } // 检查是否存在 Role 筛选 if (userAllCurrentVO.getRole() != null) { - userCurrentBackVO.getUsers().removeIf(it -> !userAllCurrentVO.getRole().equals(it.getRole().getName())); + userCurrentBackVO.getUsers().removeIf(it -> !userAllCurrentVO.getRole().equals(it.getRole())); } return ResultUtil.success(userCurrentBackVO); } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index 14a6d4f..b0d8546 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -328,7 +328,7 @@ public class Processing { .setCreatedAt(userDO.getCreatedAt()) .setUpdatedAt(userDO.getUpdatedAt()) .setIsDelete(userDO.getIsDelete())) - .setRole(new UserCurrentBackVO.ReturnUserRole().setName(getRoleString)) + .setRole(getRoleString) .setPermission(getPermissionForString); return userCurrent; } From 1f4b85f9b594bcf49dc4cb3804fa3dbc65d6a649 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Tue, 16 Apr 2024 14:56:41 +0800 Subject: [PATCH 6/8] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E8=AE=BE=E5=A4=87=E5=87=86=E5=A4=87=E7=9A=84?= =?UTF-8?q?=E6=89=80=E9=9C=80=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/config/startup/PrepareData.java | 18 +-- .../config/startup/StartupConfiguration.java | 145 ++++++++++++++++-- .../oa/services/impl/ModuleServiceImpl.java | 8 +- 3 files changed, 148 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/jsl/oa/config/startup/PrepareData.java b/src/main/java/com/jsl/oa/config/startup/PrepareData.java index f9fafa6..46449ee 100644 --- a/src/main/java/com/jsl/oa/config/startup/PrepareData.java +++ b/src/main/java/com/jsl/oa/config/startup/PrepareData.java @@ -1,8 +1,8 @@ package com.jsl.oa.config.startup; -import com.jsl.oa.model.dodata.RoleDO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; @Slf4j @@ -16,15 +16,15 @@ public class PrepareData { * 检查检查指定的角色是否存在,如果不存在则创建 */ public void checkRole(String roleName, String displayName) { - RoleDO getRole = jdbcTemplate.queryForObject( - "SELECT * FROM organize_oa.oa_role WHERE role_name = ?", - RoleDO.class, - roleName - ); - // 检查角色是否存在 - if (getRole == null) { + try { + jdbcTemplate.queryForObject( + "SELECT id FROM organize_oa.oa_role WHERE role_name = ? LIMIT 1", + Long.class, + roleName + ); + } catch (DataAccessException e) { // 创建角色 - log.debug("[Preparation] 创建角色 [{}]{}", roleName, displayName); + log.debug("[Preparation] 创建角色 [{}] {}", roleName, displayName); jdbcTemplate.update( "INSERT INTO organize_oa.oa_role (role_name, display_name) VALUES (?,?)", roleName, diff --git a/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java b/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java index a3202a3..37b4a3e 100644 --- a/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java +++ b/src/main/java/com/jsl/oa/config/startup/StartupConfiguration.java @@ -1,19 +1,24 @@ package com.jsl.oa.config.startup; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.jsl.oa.common.constant.SafeConstants; import com.jsl.oa.model.dodata.ConfigDO; import com.jsl.oa.model.vodata.business.InfoAboutSecurityKey; import com.jsl.oa.utils.Processing; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; +import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; /** * 系统启动时进行的一些初始化操作 @@ -32,14 +37,15 @@ import java.sql.Timestamp; @RequiredArgsConstructor public class StartupConfiguration { private final JdbcTemplate jdbcTemplate; - private final PrepareData prepareData = new PrepareData(jdbcTemplate); + private PrepareData prepareData; @Bean @Order(1) public CommandLineRunner startUpPreparation() { return args -> { - log.info("============================================================"); + log.info(">==========================================================="); log.info("[Preparation] 系统进行准备检查"); + prepareData = new PrepareData(jdbcTemplate); }; } @@ -50,7 +56,7 @@ public class StartupConfiguration { */ @Bean @Order(2) - public CommandLineRunner sqlDataPreparation() { + public CommandLineRunner roleDataPreparation() { return args -> { log.info("[Preparation] 系统进行数据库完整性检查"); // 检查角色信息是否完整 @@ -60,25 +66,135 @@ public class StartupConfiguration { }; } + /** + * 检查默认管理员账户 + *
+ * 为程序进行检查默认管理员程序,检查默认管理员是否存在,若管理员存在且权限正确则检查通过,若检查失败或该用户不存在将会创建一个超级管理员 + * 账户。 + */ + @Bean + @Order(3) + public CommandLineRunner defaultConsoleDataPreparation() { + return args -> { + log.info("[Preparation] 系统进行默认超级管理员信息检查"); + // 检查默认的信息是否完整 + Long getDefaultUser; + try { + getDefaultUser = jdbcTemplate.queryForObject( + "SELECT id FROM organize_oa.oa_user WHERE job_id = 'OTH0000001'", + Long.class); + } catch (DataAccessException e) { + log.debug("[Preparation] 超级管理员不存在,创建 console_user 超级管理员账户,密码 jsl_nbxt"); + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_user " + + "(job_id, username, password, address, phone, email, age) " + + "VALUES (?, ?, ?, ?, ?, ?, ?)", + "OTH0000001", + "console_user", + BCrypt.hashpw("jsl_nbxt", BCrypt.gensalt()), + "江苏省/无锡市", + "18888888888", + "console@jsl.com", + "18" + ); + getDefaultUser = jdbcTemplate.queryForObject( + "SELECT id FROM organize_oa.oa_user WHERE job_id = 'OTH0000001'", + Long.class); + } + // 检查超级管理员权限是否正确 + Long getConsoleRole = jdbcTemplate + .queryForObject("SELECT id FROM organize_oa.oa_role WHERE role_name='console' LIMIT 1", Long.class); + assert getConsoleRole != null; + Long getConsoleRoleUser; + try { + getConsoleRoleUser = jdbcTemplate.queryForObject( + "SELECT rid FROM organize_oa.oa_role_user WHERE uid=?", + Long.class, + getDefaultUser + ); + if (!getConsoleRole.equals(getConsoleRoleUser)) { + log.debug("[Preparation] 超级管理员账户权限错误,正在恢复权限至 console 角色组"); + jdbcTemplate.update( + "UPDATE organize_oa.oa_role_user SET rid=? WHERE uid=?", + getConsoleRole, + getDefaultUser + ); + } + } catch (DataAccessException e) { + log.debug("[Preparation] 为超级管理员账户添加 console 角色组权限"); + // 插入超级管理员权限 + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_role_user (uid, rid) VALUES (?,?)", + getDefaultUser, + getConsoleRole + ); + } + }; + } + + @Bean + @Order(4) + public CommandLineRunner prepareDefaultConfigData(Gson gson) { + return args -> { + // 检查加密密钥是否存在 + try { + jdbcTemplate + .queryForObject("SELECT id FROM organize_oa.oa_config WHERE value='security_key'", Long.class); + } catch (DataAccessException e) { + HashMap insertData = new HashMap<>(); + insertData.put("key", Processing.generateKey(1233061823L)); + insertData.put("updateTime", String.valueOf(new Date().getTime())); + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_config (value, data) VALUES (?,?)", + "security_key", + gson.toJson(insertData) + ); + } + // 检查 carousel + try { + jdbcTemplate.queryForObject("SELECT id FROM organize_oa.oa_config WHERE value='carousel'", Long.class); + } catch (DataAccessException e) { + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_config (value, data) VALUES (?,?)", + "carousel", + gson.toJson("") + ); + } + // 检查 project_show + try { + jdbcTemplate + .queryForObject("SELECT id FROM organize_oa.oa_config WHERE value='project_show'", Long.class); + } catch (DataAccessException e) { + jdbcTemplate.update( + "INSERT INTO organize_oa.oa_config (value, data) VALUES (?,?)", + "project_show", + gson.toJson("") + ); + } + }; + } + /** * 准备安全密钥 *
* 准备安全密钥,用于加密解密等操作 */ @Bean - @Order(3) + @Order(5) public CommandLineRunner prepareKey() { return args -> { log.info("[Preparation] 系统进行安全密钥准备"); Gson gson = new Gson(); // 获取数据库中的安全密钥 - ConfigDO getSecurityKey = jdbcTemplate.queryForObject( - "SELECT * FROM organize_oa.oa_config WHERE value = ?", - ConfigDO.class, - "security_key" - ); + String getSecurityKey = jdbcTemplate.queryForObject( + "SELECT data FROM organize_oa.oa_config WHERE value = 'security_key' LIMIT 1", + String.class); if (getSecurityKey != null) { - SafeConstants.setSecretKey(getSecurityKey.getData()); + HashMap getData = gson.fromJson( + getSecurityKey, + new TypeToken>() { + }.getType()); + SafeConstants.setSecretKey(getData.get("key")); } else { // 生成密钥 String key = Processing.generateKey(System.currentTimeMillis()); @@ -100,4 +216,13 @@ public class StartupConfiguration { } }; } + + @Bean + @Order(100) + public CommandLineRunner preparationCompleted() { + return args -> { + log.info("[Preparation] 系统准备检查完毕"); + log.info("===========================================================>"); + }; + } } diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java index ac75a22..147cf52 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -62,14 +62,14 @@ public class ModuleServiceImpl implements ModuleService { } List projectWorkDOList = moduleMapper.getBySysId(sysId, userId, is); -// 封装VO类 + // 封装VO类 List projectWorkAndNameVOS = new ArrayList<>(); for (ProjectModuleDO projectWorkDO : projectWorkDOList) { ProjectWorkAndNameVO projectWorkAndNameVO = new ProjectWorkAndNameVO(); Processing.copyProperties(projectWorkDO, projectWorkAndNameVO); -// 添加负责人和子系统名称 - projectWorkAndNameVO. - setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getPid()).getName()) + // 添加负责人和子系统名称 + projectWorkAndNameVO + .setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getProjectChildId()).getName()) .setPrincipalUser(userDAO.getUserById(projectWorkDO.getPrincipalId()).getUsername()); projectWorkAndNameVOS.add(projectWorkAndNameVO); From 7b1cead10eaca100e0210d2f8eef2f7735702e6b Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Tue, 16 Apr 2024 16:44:41 +0800 Subject: [PATCH 7/8] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BB=A5=E5=A4=84=E7=90=86=E6=9C=AA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=EF=BC=8C=E4=BC=98=E5=8C=96=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=96=B9=E5=BC=8F=EF=BC=8C=E5=B9=B6=E5=87=86?= =?UTF-8?q?=E5=A4=87=E5=AE=89=E5=85=A8=E7=9B=B8=E5=85=B3=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/annotations/CheckUserAbleToUse.java | 60 ----- ...rHasPermission.java => NeedRoleGroup.java} | 12 +- .../com/jsl/oa/annotations/UserAbleToUse.java | 19 ++ .../com/jsl/oa/aspect/AnnotationsAspect.java | 206 ------------------ .../jsl/oa/aspect/AuthControllerAspect.java | 131 ----------- .../java/com/jsl/oa/aspect/BusinessAop.java | 85 ++++++++ .../oa/aspect/CheckUserAbleToUseAspect.java | 75 +++++++ .../oa/aspect/CheckUserPermissionAspect.java | 76 +++++++ .../jsl/oa/config/filter/TimestampFilter.java | 65 ++++++ .../oa/config/shiro/ShiroConfiguration.java | 14 +- .../exception/library/NotLoginException.java | 16 ++ .../library/PermissionDeniedException.java | 22 ++ .../oa/exception/library/UserCanntUse.java | 16 ++ .../jsl/oa/services/impl/AuthServiceImpl.java | 8 +- .../jsl/oa/services/impl/InfoServiceImpl.java | 10 +- .../jsl/oa/services/impl/MailServiceImpl.java | 8 +- .../oa/services/impl/MessageServiceImpl.java | 43 ++-- .../jsl/oa/services/impl/NewsServiceImpl.java | 4 +- .../services/impl/PermissionServiceImpl.java | 12 +- .../oa/services/impl/ProjectServiceImpl.java | 8 +- .../jsl/oa/services/impl/RoleServiceImpl.java | 4 +- .../jsl/oa/services/impl/UserServiceImpl.java | 8 +- .../java/com/jsl/oa/utils/BaseResponse.java | 2 +- .../java/com/jsl/oa/utils/ResultUtil.java | 1 - 24 files changed, 439 insertions(+), 466 deletions(-) delete mode 100644 src/main/java/com/jsl/oa/annotations/CheckUserAbleToUse.java rename src/main/java/com/jsl/oa/annotations/{CheckUserHasPermission.java => NeedRoleGroup.java} (57%) create mode 100644 src/main/java/com/jsl/oa/annotations/UserAbleToUse.java delete mode 100644 src/main/java/com/jsl/oa/aspect/AnnotationsAspect.java delete mode 100755 src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java create mode 100644 src/main/java/com/jsl/oa/aspect/BusinessAop.java create mode 100644 src/main/java/com/jsl/oa/aspect/CheckUserAbleToUseAspect.java create mode 100644 src/main/java/com/jsl/oa/aspect/CheckUserPermissionAspect.java create mode 100644 src/main/java/com/jsl/oa/config/filter/TimestampFilter.java create mode 100644 src/main/java/com/jsl/oa/exception/library/NotLoginException.java create mode 100644 src/main/java/com/jsl/oa/exception/library/PermissionDeniedException.java create mode 100644 src/main/java/com/jsl/oa/exception/library/UserCanntUse.java diff --git a/src/main/java/com/jsl/oa/annotations/CheckUserAbleToUse.java b/src/main/java/com/jsl/oa/annotations/CheckUserAbleToUse.java deleted file mode 100644 index 508fc24..0000000 --- a/src/main/java/com/jsl/oa/annotations/CheckUserAbleToUse.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.jsl.oa.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - *

检查用户是否可用

- *
- * 用于检查用户是否可用 - * - * @version v1.1.0 - * @since v1.1.0 - * @see com.jsl.oa.aspect.AnnotationsAspect - * @author xiao_lfeng - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface CheckUserAbleToUse { - /** - *

是否启用

- *
- * 用于指定是否启用
- * 请注意,禁用后任何用户权限校验不校验用户是否启用 - * - * @return {@link Boolean} - */ - boolean isCheckEnable() default true; - - /** - *

是否删除

- *
- * 用于指定是否删除
- * 请注意,禁用后任何用户权限校验不校验用户是否删除 - * - * @return {@link Boolean} - */ - boolean isCheckDelete() default true; - - /** - *

是否锁定

- *
- * 用于指定是否锁定
- * 请注意,禁用后任何用户权限校验不校验用户是否锁定 - * - * @return {@link Boolean} - */ - boolean isCheckLock() default true; - - /** - *

是否过期

- *
- * 用于指定是否过期
- * 请注意,禁用后任何用户权限校验不校验用户是否过期 - * - * @return {@link Boolean} - */ - boolean isCheckExpire() default true; -} diff --git a/src/main/java/com/jsl/oa/annotations/CheckUserHasPermission.java b/src/main/java/com/jsl/oa/annotations/NeedRoleGroup.java similarity index 57% rename from src/main/java/com/jsl/oa/annotations/CheckUserHasPermission.java rename to src/main/java/com/jsl/oa/annotations/NeedRoleGroup.java index 824f40e..2f4c7c2 100644 --- a/src/main/java/com/jsl/oa/annotations/CheckUserHasPermission.java +++ b/src/main/java/com/jsl/oa/annotations/NeedRoleGroup.java @@ -14,7 +14,7 @@ import java.lang.annotation.*; @Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) -public @interface CheckUserHasPermission { +public @interface NeedRoleGroup { /** *

权限名称

*
@@ -23,14 +23,4 @@ public @interface CheckUserHasPermission { * @return {@link String} */ String value() default ""; - - /** - *

是否检查

- *
- * 用于指定是否检查
- * 请注意,该方法只会禁止检查权限,但是不会禁止检查用户是否允许继续执行 - * @since v1.1.0 - * @return {@link Boolean} - */ - boolean isCheck() default true; } diff --git a/src/main/java/com/jsl/oa/annotations/UserAbleToUse.java b/src/main/java/com/jsl/oa/annotations/UserAbleToUse.java new file mode 100644 index 0000000..1e7a847 --- /dev/null +++ b/src/main/java/com/jsl/oa/annotations/UserAbleToUse.java @@ -0,0 +1,19 @@ +package com.jsl.oa.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + *

检查用户是否可用

+ *
+ * 用于检查用户是否可用 + * + * @version v1.1.0 + * @since v1.1.0 + * @author xiao_lfeng + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface UserAbleToUse { } diff --git a/src/main/java/com/jsl/oa/aspect/AnnotationsAspect.java b/src/main/java/com/jsl/oa/aspect/AnnotationsAspect.java deleted file mode 100644 index 6578f3c..0000000 --- a/src/main/java/com/jsl/oa/aspect/AnnotationsAspect.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.jsl.oa.aspect; - -import com.jsl.oa.annotations.CheckUserAbleToUse; -import com.jsl.oa.annotations.CheckUserHasPermission; -import com.jsl.oa.dao.PermissionDAO; -import com.jsl.oa.dao.RoleDAO; -import com.jsl.oa.mapper.UserMapper; -import com.jsl.oa.model.dodata.RoleDO; -import com.jsl.oa.model.dodata.RoleUserDO; -import com.jsl.oa.model.dodata.UserDO; -import com.jsl.oa.utils.BaseResponse; -import com.jsl.oa.utils.ErrorCode; -import com.jsl.oa.utils.Processing; -import com.jsl.oa.utils.ResultUtil; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.util.List; -import java.util.Objects; - -/** - *

注解切面

- *
- * 用于注解的切面 - * - * @author xiao_lfeng - * @version v1.1.0 - * @since v1.1.0 - */ -@Slf4j -@Aspect -@Component -@RequiredArgsConstructor -public class AnnotationsAspect { - private final UserMapper userMapper; - private final RoleDAO roleDAO; - private final PermissionDAO permissionDAO; - - /** - *

检查用户是否有权限

- *
- * 检查用户是否有权限 - * - * @param pjp ProceedingJoinPoint对象 - * @return {@link Object} - * @throws Throwable 异常 - */ - @Around("@annotation(com.jsl.oa.annotations.CheckUserHasPermission)") - public Object checkUserHasPermission(@NotNull ProceedingJoinPoint pjp) throws Throwable { - log.info("用户权限检查"); - // 获取 HttpServletRequest 对象 - HttpServletRequest request = - ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())) - .getRequest(); - - // 获取注解方法 - CheckUserHasPermission checkUserHasPermission = getCheckUserHasPermission(pjp); - // 获取注解值 - String permissionName = null; - boolean permissionCheck = true; - if (checkUserHasPermission != null) { - permissionName = checkUserHasPermission.value(); - permissionCheck = checkUserHasPermission.isCheck(); - } - - // 获取用户信息 - Long userId = Processing.getAuthHeaderToUserId(request); - if (userId != null) { - // 检查用户是否允许继续执行 - BaseResponse checkUserAbleToNext = checkUserAbleToNext(userId, userMapper); - if (checkUserAbleToNext != null) { - return checkUserAbleToNext; - } else { - if (permissionCheck) { - // 检查用户权限 - List getPermission = permissionDAO.getPermission(userId); - // 匹配权限 - if (getPermission.contains(permissionName)) { - return pjp.proceed(); - } else { - log.info("\t> 用户权限不足,检查是否是管理员"); - // 检查用户是管理员 - RoleUserDO roleUserDO = roleDAO - .getRoleUserByUid(Processing.getAuthHeaderToUserId(request)); - if (roleUserDO == null) { - return ResultUtil.error(ErrorCode.NOT_ADMIN); - } - RoleDO roleDO = roleDAO.getRoleByRoleName("admin"); - if (roleUserDO.getRid().equals(roleDO.getId())) { - return pjp.proceed(); - } else { - return ResultUtil.error(ErrorCode.NOT_PERMISSION); - } - } - } else { - return pjp.proceed(); - } - } - } else { - return ResultUtil.error(ErrorCode.TOKEN_NOT_EXIST); - } - } - - @Around("@annotation(com.jsl.oa.annotations.CheckUserAbleToUse)") - public Object checkUserAbleToUse(ProceedingJoinPoint pjp) throws Throwable { - log.info("检查用户是否有权限继续"); - // 获取 HttpServletRequest 对象 - HttpServletRequest request = - ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())) - .getRequest(); - - // 获取注解方法 - CheckUserAbleToUse check = getCheckUserAbleToUse(pjp); - // 获取注解值 - assert check != null; - - // 获取用户信息 - Long userId = Processing.getAuthHeaderToUserId(request); - UserDO userDO = userMapper.getUserById(userId); - // 用户不存在 - if (userDO == null) { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } - if (check.isCheckEnable()) { - // 用户是否被禁用 - if (!userDO.getEnabled()) { - return ResultUtil.error(ErrorCode.USER_DISABLED); - } - } - if (check.isCheckLock()) { - // 用户是否被封禁 - if (!userDO.getAccountNoLocked()) { - return ResultUtil.error(ErrorCode.USER_LOCKED); - } - } - if (check.isCheckDelete()) { - // 用户是否被删除 - if (userDO.getIsDelete()) { - return ResultUtil.error(ErrorCode.USER_ALREADY_DELETE); - } - } - if (check.isCheckExpire()) { - // 用户是否过期 - if (!userDO.getAccountNoExpired()) { - return ResultUtil.error(ErrorCode.USER_EXPIRED); - } - } - return pjp.proceed(); - } - - private @Nullable CheckUserHasPermission getCheckUserHasPermission(@NotNull ProceedingJoinPoint joinPoint) { - // 获取方法对象 - MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); - Method method = methodSignature.getMethod(); - - // 获取方法上的注解 - return (method != null) ? method.getAnnotation(CheckUserHasPermission.class) : null; - } - - private @Nullable CheckUserAbleToUse getCheckUserAbleToUse(@NotNull ProceedingJoinPoint joinPoint) { - // 获取方法对象 - MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); - Method method = methodSignature.getMethod(); - - // 获取方法上的注解 - return (method != null) ? method.getAnnotation(CheckUserAbleToUse.class) : null; - } - - private @Nullable BaseResponse checkUserAbleToNext(Long userId, @NotNull UserMapper userMapper) { - log.info("\t> 检查用户是否有权限继续"); - // 获取用户信息 - UserDO userDO = userMapper.getUserById(userId); - // 用户不存在 - if (userDO == null) { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } - // 用户是否被禁用 - if (!userDO.getEnabled()) { - return ResultUtil.error(ErrorCode.USER_DISABLED); - } - // 用户是否被封禁 - if (!userDO.getAccountNoLocked()) { - return ResultUtil.error(ErrorCode.USER_LOCKED); - } - // 用户是否被删除 - if (userDO.getIsDelete()) { - return ResultUtil.error(ErrorCode.USER_ALREADY_DELETE); - } - // 用户是否过期 - if (!userDO.getAccountNoExpired()) { - return ResultUtil.error(ErrorCode.USER_EXPIRED); - } - return null; - } -} diff --git a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java b/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java deleted file mode 100755 index c1d9fac..0000000 --- a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.jsl.oa.aspect; - -import com.jsl.oa.common.constant.BusinessConstants; -import com.jsl.oa.utils.ErrorCode; -import com.jsl.oa.utils.ResultUtil; -import com.jsl.oa.utils.redis.TokenRedisUtil; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.jetbrains.annotations.NotNull; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.util.Objects; - -/** - *

用户控制器切面

- *
- * 用于用户控制器的切面 - * - * @author xiao_lfeng - * @version v1.1.0 - * @since v1.0.0 - */ -@Slf4j -@Aspect -@Component -@RequiredArgsConstructor -public class AuthControllerAspect { - private final TokenRedisUtil tokenRedisUtil; - - /** - *

用户控制器切面

- *
- * 用于用户控制器的切面 - * - * @param pjp ProceedingJoinPoint对象 - * @return {@link Object} - * @throws Throwable 异常 - * @since v1.0.0 - */ - @Around("execution(* com.jsl.oa.controllers.*.*(..)) && !execution(* com.jsl.oa.controllers.IndexController.*(..))") - public Object controllerAround(ProceedingJoinPoint pjp) throws Throwable { - // 获取HttpServletRequest对象 - HttpServletRequest request = - ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())) - .getRequest(); - - // 时间戳检查 - if (checkTimestamp(request)) { - // TODO: 2023/12/21 0001 后期固定业务(如:日志处理) - return pjp.proceed(); - } else { - return ResultUtil.error(ErrorCode.TIMESTAMP_ERROR); - } - } - - /** - *

Token检查切面

- *
- * 用于检查Token是否有效 - * - * @param pjp ProceedingJoinPoint对象 - * @return {@link Object} - * @throws Throwable 异常 - */ - @Around("execution(* com.jsl.oa.controllers.*.*(..)) " - + "&& !execution(* com.jsl.oa.controllers.AuthController.authSendEmailCode(..))" - + "&& !execution(* com.jsl.oa.controllers.AuthController.authLoginByEmail(..))" - + "&& !execution(* com.jsl.oa.controllers.AuthController.authForgetPassword(..))" - + "&& !execution(* com.jsl.oa.controllers.AuthController.authLogin(..))" - + "&& !execution(* com.jsl.oa.controllers.AuthController.authRegister(..)) " - + "&& !execution(* com.jsl.oa.controllers.IndexController.*(..)) " - + "&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " - + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderImage(..)) " - + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))" - + "&& !execution(* com.jsl.oa.controllers.ProjectController.*(..))" - + "&& !execution(* com.jsl.oa.controllers.TagController.*(..))") - public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable { - // 获取 HttpServletRequest 对象 - HttpServletRequest request = - ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())) - .getRequest(); - - // 检查 Token 是否有效 - String token = request.getHeader("Authorization"); - if (token != null && !token.isEmpty()) { - // 获取 Redis 检查 Token 是否存在 - String finalToken = token.replace("Bearer ", ""); - for (String it : tokenRedisUtil.getList(BusinessConstants.BUSINESS_LOGIN)) { - if (it.equals(finalToken)) { - return pjp.proceed(); - } - } - } - return ResultUtil.error(ErrorCode.TOKEN_NOT_EXIST); - } - - /** - *

时间戳检查

- *
- * 用于检查时间戳是否合法,合法时间范围正负5秒 - * - * @param request HttpServletRequest对象 - * @return {@link Boolean} - * @since v1.0.0 - */ - private @NotNull Boolean checkTimestamp(@NotNull HttpServletRequest request) { - // 获取请求头中的时间戳 - String getTimestamp = request.getHeader("Timestamp"); - log.info("\t> 获取到的时间戳为 {} | 当前时间戳 {}", getTimestamp, System.currentTimeMillis()); - // 判断是否为空 - if (getTimestamp == null || getTimestamp.isEmpty()) { - return false; - } else { - if (getTimestamp.length() == 10) { - getTimestamp += "000"; - } - } - // 获取当前时间戳 - long nowTimestamp = System.currentTimeMillis(); - - // 时间误差允许前后五秒钟 - return nowTimestamp - Long.parseLong(getTimestamp) <= 10000 - && nowTimestamp - Long.parseLong(getTimestamp) >= -10000; - } -} diff --git a/src/main/java/com/jsl/oa/aspect/BusinessAop.java b/src/main/java/com/jsl/oa/aspect/BusinessAop.java new file mode 100644 index 0000000..3772f4e --- /dev/null +++ b/src/main/java/com/jsl/oa/aspect/BusinessAop.java @@ -0,0 +1,85 @@ +package com.jsl.oa.aspect; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.reflect.MethodSignature; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; + +/** + * 业务切面 + *
+ * 对业务进行切入,进行对内容操作的预处理 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +@Slf4j +@Aspect +@Component +@RequiredArgsConstructor +public class BusinessAop { + + /** + * 在控制器的所有方法执行前执行 + * + * @param joinPoint 切入点提供对方法执行的信息 + */ + @Before("execution(* com.jsl.oa.controllers.*.*(..))") + public void beforeController(@NotNull JoinPoint joinPoint) { + // 从ServletRequest中获取用户信息 + ServletRequestAttributes servletRequestAttributes = + (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + if (servletRequestAttributes != null) { + HttpServletRequest request = servletRequestAttributes.getRequest(); + // 获取方法签名 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String methodName = methodSignature.getName(); + + log.info("[CONTROL] 执行 {} 接口 | 地址: [{}]{}", methodName, request.getMethod(), request.getServletPath()); + } else { + throw new RuntimeException("无法获取信息"); + } + } + + /** + * 在服务的所有方法执行前执行 + * + * @param joinPoint 切入点提供对方法执行的信息 + */ + @Before("execution(* com.jsl.oa.services.impl.*.*(..))") + public void beforeService(@NotNull JoinPoint joinPoint) { + // 获取方法签名 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String methodName = methodSignature.getName(); + + log.info("[SERVICE] 执行 {} 业务", methodName); + } + + /** + * 在DAO的所有方法执行前执行 + * + * @param joinPoint 切入点提供对方法执行的信息 + */ + @Before("execution(* com.jsl.oa.dao.*.*(..))") + public void beforeDao(@NotNull JoinPoint joinPoint) { + // 获取方法签名 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String methodName = methodSignature.getName(); + Object[] args = joinPoint.getArgs(); + log.info("[DAO] 操作 {} 记录", methodName); + if (args.length != 0) { + log.debug("\t> 传入信息:{}", Arrays.toString(args)); + } + } +} diff --git a/src/main/java/com/jsl/oa/aspect/CheckUserAbleToUseAspect.java b/src/main/java/com/jsl/oa/aspect/CheckUserAbleToUseAspect.java new file mode 100644 index 0000000..08e4989 --- /dev/null +++ b/src/main/java/com/jsl/oa/aspect/CheckUserAbleToUseAspect.java @@ -0,0 +1,75 @@ +package com.jsl.oa.aspect; + +import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.exception.library.NotLoginException; +import com.jsl.oa.exception.library.UserCanntUse; +import com.jsl.oa.model.dodata.UserDO; +import com.jsl.oa.utils.Processing; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * 检查用户权限切面 + *
+ * 检查用户能否正常使用,在用户使用之前进行可用性检查 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +@Slf4j +@Aspect +@Component +@RequiredArgsConstructor +public class CheckUserAbleToUseAspect { + + private final UserDAO userDAO; + + @Around("@annotation(com.jsl.oa.annotations.NeedRoleGroup)") + public Object checkUse(ProceedingJoinPoint pjp) throws Throwable { + // 从ServletRequest中获取用户信息 + ServletRequestAttributes servletRequestAttributes = + (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + if (servletRequestAttributes != null) { + // 获取用户 + Long getUserId = Processing.getAuthHeaderToUserId(servletRequestAttributes.getRequest()); + if (getUserId == null) { + throw new NotLoginException("用户信息不存在"); + } + + // 获取用户详细信息 + UserDO getUser = userDAO.getUserById(getUserId); + if (getUser != null) { + // 用户是否被禁用 + if (!getUser.getEnabled()) { + throw new UserCanntUse("用户未启用"); + } + // 用户是否被封禁 + if (!getUser.getAccountNoLocked()) { + throw new UserCanntUse("用户被封禁"); + } + // 用户是否被删除 + if (getUser.getIsDelete()) { + throw new UserCanntUse("用户被删除"); + } + // 用户是否过期 + if (!getUser.getAccountNoExpired()) { + throw new UserCanntUse("用户已过期"); + } + + return pjp.proceed(); + } else { + throw new NotLoginException("用户信息不存在"); + } + } else { + throw new RuntimeException("无法获取信息"); + } + } +} diff --git a/src/main/java/com/jsl/oa/aspect/CheckUserPermissionAspect.java b/src/main/java/com/jsl/oa/aspect/CheckUserPermissionAspect.java new file mode 100644 index 0000000..c0daa7b --- /dev/null +++ b/src/main/java/com/jsl/oa/aspect/CheckUserPermissionAspect.java @@ -0,0 +1,76 @@ +package com.jsl.oa.aspect; + +import com.jsl.oa.annotations.NeedRoleGroup; +import com.jsl.oa.dao.RoleDAO; +import com.jsl.oa.exception.library.NotLoginException; +import com.jsl.oa.exception.library.PermissionDeniedException; +import com.jsl.oa.model.dodata.RoleDO; +import com.jsl.oa.utils.Processing; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * 检查用户权限切面 + *
+ * 检查访问的用户是否包含正确的访问权限,若用户有正确的访问权限则允许访问,若没有指定的权限将会返回错误的权限信息。 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +@Slf4j +@Aspect +@Component +@RequiredArgsConstructor +public class CheckUserPermissionAspect { + + private final RoleDAO roleDAO; + + /** + * 检查权限 + *
+ * 检查注解中填写的权限,只有当接口符合注解中的权限信息,才会实际进入业务,否则将会被拦截 + * + * @param pjp {@link ProceedingJoinPoint} + * @return {@link Object} + */ + @Around("@annotation(com.jsl.oa.annotations.NeedRoleGroup)") + public Object checkPermission(ProceedingJoinPoint pjp) throws Throwable { + // 从ServletRequest中获取用户信息 + ServletRequestAttributes servletRequestAttributes = + (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + if (servletRequestAttributes != null) { + // 获取用户 + Long getUserId = Processing.getAuthHeaderToUserId(servletRequestAttributes.getRequest()); + if (getUserId == null) { + throw new NotLoginException("用户信息不存在"); + } + // 获取方法签名 + MethodSignature signature = (MethodSignature) pjp.getSignature(); + NeedRoleGroup checkAccountPermission = signature.getMethod().getAnnotation(NeedRoleGroup.class); + String getRoleAtAnnotation = checkAccountPermission.value(); + + // 获取用户所在权限组 + RoleDO getUserRole = roleDAO.getRoleNameByUid(getUserId); + if (getUserRole != null) { + if (getUserRole.getRoleName().equals(getRoleAtAnnotation)) { + return pjp.proceed(); + } else { + throw new PermissionDeniedException("用户组不匹配", getRoleAtAnnotation); + } + } else { + throw new PermissionDeniedException("用户组不匹配", getRoleAtAnnotation); + } + } else { + throw new RuntimeException("无法获取信息"); + } + } +} diff --git a/src/main/java/com/jsl/oa/config/filter/TimestampFilter.java b/src/main/java/com/jsl/oa/config/filter/TimestampFilter.java new file mode 100644 index 0000000..4bcb93e --- /dev/null +++ b/src/main/java/com/jsl/oa/config/filter/TimestampFilter.java @@ -0,0 +1,65 @@ +package com.jsl.oa.config.filter; + +import com.google.gson.Gson; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.ResultUtil; +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 时间戳过滤器 + *
+ * 对前端发送的时间戳进行检查,当检查通过后将会进入通过过滤器,若检查不通过将会被当前拦截器拦截并返回 {@link ErrorCode} 内的 TIMESTAMP_ERROR + * 信息。另外,该过滤器仅对 OPTION 请求不进行时间戳检查,其他请求都将会检查处理。 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +@Slf4j +public class TimestampFilter implements Filter { + private final Gson gson = new Gson(); + + @Override + public void doFilter( + ServletRequest request, + ServletResponse response, + FilterChain chain + ) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse res = (HttpServletResponse) response; + + res.setContentType("application/json;charset=UTF-8"); + // 获取当前时间戳 + long nowTimestamp = System.currentTimeMillis(); + if (!req.getMethod().equals("OPTIONS")) { + String getTimestamp = req.getHeader("Timestamp"); + log.info("[FILTER] 获取到的时间戳为 {} | 当前时间戳 {}", getTimestamp, nowTimestamp); + if (getTimestamp == null || getTimestamp.isEmpty()) { + res.setStatus(200); + res.getWriter().write(gson.toJson(ResultUtil.error(ErrorCode.TIMESTAMP_ERROR))); + } else { + // 秒与毫秒转换 + if (getTimestamp.length() == 10) { + getTimestamp += "000"; + } + // 时间误差允许前后五秒钟 + if (nowTimestamp - Long.parseLong(getTimestamp) <= 10000 + && nowTimestamp - Long.parseLong(getTimestamp) >= -10000) { + chain.doFilter(req, res); + } else { + res.setStatus(200); + res.getWriter().write(gson.toJson(ResultUtil.error(ErrorCode.TIMESTAMP_ERROR))); + } + } + } else { + log.info("[FILTER] 预执行请求[OPTION],不进行时间戳检查"); + res.setStatus(200); + res.getWriter().write(gson.toJson(ResultUtil.success("Option成功"))); + } + } +} diff --git a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java index 3a11cb0..98d2ef8 100755 --- a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java +++ b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java @@ -2,6 +2,7 @@ package com.jsl.oa.config.shiro; import com.jsl.oa.config.filter.CorsFilter; import com.jsl.oa.config.filter.JwtFilter; +import com.jsl.oa.config.filter.TimestampFilter; import lombok.RequiredArgsConstructor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; @@ -46,8 +47,13 @@ public class ShiroConfiguration { // 添加JWT过滤器 Map filters = new LinkedHashMap<>(); - filters.put("authc", new JwtFilter()); // 配置自定义的JWT过滤器 - filters.put("anon", new CorsFilter()); // 配置自定义的CORS过滤器 + // 配置自定义的JWT过滤器 + filters.put("authc", new JwtFilter()); + // 配置自定义的CORS过滤器 + filters.put("anon", new CorsFilter()); + // 配置自定义的时间戳检查 + filters.put("time", new TimestampFilter()); + shiroFilterFactoryBean.setFilters(filters); return shiroFilterFactoryBean; } @@ -86,7 +92,7 @@ public class ShiroConfiguration { @NotNull private static Map setFilterChain() { Map filterChainDefinitionMap = new LinkedHashMap<>(); - filterChainDefinitionMap.put("/auth/**/**", "anon"); + filterChainDefinitionMap.put("/auth/**/**", "anon, time"); filterChainDefinitionMap.put("/unauthorized", "anon"); filterChainDefinitionMap.put("/", "anon"); filterChainDefinitionMap.put("/info/header-image/get", "anon"); @@ -98,7 +104,7 @@ public class ShiroConfiguration { filterChainDefinitionMap.put("/project/work/add", "anon"); filterChainDefinitionMap.put("/tags/project/list", "anon"); filterChainDefinitionMap.put("/module/add", "anon"); - filterChainDefinitionMap.put("/**/**", "authc"); + filterChainDefinitionMap.put("/**/**", "authc, time"); return filterChainDefinitionMap; } diff --git a/src/main/java/com/jsl/oa/exception/library/NotLoginException.java b/src/main/java/com/jsl/oa/exception/library/NotLoginException.java new file mode 100644 index 0000000..f1d95af --- /dev/null +++ b/src/main/java/com/jsl/oa/exception/library/NotLoginException.java @@ -0,0 +1,16 @@ +package com.jsl.oa.exception.library; + +/** + * 自定义异常类 + *
+ * 用于表示用户未登录的情况。 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +public class NotLoginException extends RuntimeException { + public NotLoginException(String message) { + super(message); + } +} diff --git a/src/main/java/com/jsl/oa/exception/library/PermissionDeniedException.java b/src/main/java/com/jsl/oa/exception/library/PermissionDeniedException.java new file mode 100644 index 0000000..a76cb73 --- /dev/null +++ b/src/main/java/com/jsl/oa/exception/library/PermissionDeniedException.java @@ -0,0 +1,22 @@ +package com.jsl.oa.exception.library; + +import lombok.Getter; + +/** + * 自定义异常类 + *
+ * 用于权限拒绝的情况 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +@Getter +public class PermissionDeniedException extends RuntimeException { + private final String needGroup; + + public PermissionDeniedException(String message, String needGroup) { + super(message); + this.needGroup = needGroup; + } +} diff --git a/src/main/java/com/jsl/oa/exception/library/UserCanntUse.java b/src/main/java/com/jsl/oa/exception/library/UserCanntUse.java new file mode 100644 index 0000000..987f796 --- /dev/null +++ b/src/main/java/com/jsl/oa/exception/library/UserCanntUse.java @@ -0,0 +1,16 @@ +package com.jsl.oa.exception.library; + +/** + * 自定义异常类 + *
+ * 用于反馈用户被禁止使用的情况 + * + * @since v1.2.0 + * @version v1.2.0 + * @author xiao_lfeng + */ +public class UserCanntUse extends RuntimeException { + public UserCanntUse(String message) { + super(message); + } +} diff --git a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java index 600ce2d..9784c60 100755 --- a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java @@ -1,10 +1,9 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserAbleToUse; +import com.jsl.oa.annotations.UserAbleToUse; import com.jsl.oa.common.constant.BusinessConstants; import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.RoleDAO; -import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.model.dodata.RoleDO; import com.jsl.oa.model.dodata.RoleUserDO; @@ -41,7 +40,6 @@ import java.util.regex.Pattern; @RequiredArgsConstructor public class AuthServiceImpl implements AuthService { private final UserMapper userMapper; - private final RoleMapper roleMapper; private final RoleDAO roleDAO; private final PermissionDAO permissionDAO; @@ -178,7 +176,7 @@ public class AuthServiceImpl implements AuthService { } @Override - @CheckUserAbleToUse + @UserAbleToUse public BaseResponse authChangePassword( @NotNull UserChangePasswordVO userChangePasswordVO, HttpServletRequest request @@ -212,7 +210,7 @@ public class AuthServiceImpl implements AuthService { } @Override - @CheckUserAbleToUse + @UserAbleToUse public BaseResponse authLogout(HttpServletRequest request) { log.info("\t> 执行 Service 层 AuthService.authLogout 方法"); // 获取用户 diff --git a/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java index f0c70a2..517d3e6 100644 --- a/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java @@ -1,6 +1,6 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; import com.jsl.oa.dao.InfoDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; @@ -41,7 +41,7 @@ public class InfoServiceImpl implements InfoService { private final RoleDAO roleDAO; @Override - @CheckUserHasPermission("info.image.add") + @NeedRoleGroup("info.image.add") public BaseResponse addHeaderImage(HttpServletRequest request, @NotNull CarouselVO carouselVO) { log.info("\t> 执行 Service 层 InfoService.addHeaderImage 方法"); // 获取用户 @@ -75,7 +75,7 @@ public class InfoServiceImpl implements InfoService { } @Override - @CheckUserHasPermission("info.image.edit") + @NeedRoleGroup("info.image.edit") public BaseResponse editHeaderImage(HttpServletRequest request, @NotNull CarouselVO carouselVO) { log.info("\t> 执行 Service 层 InfoService.editHeaderImage 方法"); // 获取用户 @@ -127,7 +127,7 @@ public class InfoServiceImpl implements InfoService { } @Override - @CheckUserHasPermission("info.image.del") + @NeedRoleGroup("info.image.del") public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) { log.info("\t> 执行 Service 层 InfoService.delHeaderImage 方法"); // 用户权限校验 @@ -150,7 +150,7 @@ public class InfoServiceImpl implements InfoService { } @Override - @CheckUserHasPermission("info.image.setting.edit") + @NeedRoleGroup("info.image.setting.edit") public BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType) { log.info("\t> 执行 Service 层 InfoService.editSettingHeaderImage 方法"); // 用户权限校验 diff --git a/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java index 9a3380e..2ea7e95 100755 --- a/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java @@ -1,6 +1,6 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserAbleToUse; +import com.jsl.oa.annotations.UserAbleToUse; import com.jsl.oa.services.MailService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -39,7 +39,7 @@ public class MailServiceImpl implements MailService { @Override @Async - @CheckUserAbleToUse + @UserAbleToUse public void sendMail(String sendTo, String subject, String text) { log.info("\t> 执行 Service 层 MailService.sendMail 方法"); //发送多媒体邮件 @@ -63,14 +63,14 @@ public class MailServiceImpl implements MailService { @Override @Async - @CheckUserAbleToUse + @UserAbleToUse public void sendMail(String sendTo, String model) { log.info("\t> 执行 Service 层 MailService.sendMail 方法"); } @Override @Async - @CheckUserAbleToUse + @UserAbleToUse public void sendMailAboutUserLogin(String email, Integer code) { log.info("\t> 执行 Service 层 MailService.sendMailAboutUserLogin 方法"); // 发送邮件带HTML模块部分 diff --git a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java index d774276..042ec62 100644 --- a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -1,5 +1,6 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserAbleToUse; + +import com.jsl.oa.annotations.UserAbleToUse; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.MessageMapper; import com.jsl.oa.mapper.ProjectMapper; @@ -13,6 +14,7 @@ import com.jsl.oa.utils.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; + import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.ArrayList; @@ -37,7 +39,7 @@ public class MessageServiceImpl implements MessageService { private final ProjectMapper projectMapper; @Override - @CheckUserAbleToUse + @UserAbleToUse public BaseResponse messageDelete(Long mid, HttpServletRequest request) { //获取消息数据 MessageDO messageDO = messageMapper.getMessageById(mid); @@ -55,7 +57,7 @@ public class MessageServiceImpl implements MessageService { @SuppressWarnings("checkstyle:Regexp") @Override - @CheckUserAbleToUse + @UserAbleToUse public BaseResponse messageGet(LocalDateTime beginTime, LocalDateTime endTime, Integer page, @@ -90,11 +92,11 @@ public class MessageServiceImpl implements MessageService { /** * 添加指派消息 * - * @param pId 项目id + * @param pId 项目id * @param systemId 系统id * @param moddleId 模块id - * @param uid 用户id - * @param request + * @param uid 用户id + * @param request 请求 */ @Override public void messageAdd( @@ -129,12 +131,12 @@ public class MessageServiceImpl implements MessageService { /** * 添加审批消息 * - * @param pId 项目id + * @param pId 项目id * @param systemId 系统id * @param moddleId 模块id - * @param uid 用户id - * @param isPass 是否通过 1:通过 0:未通过 - * @param request + * @param uid 用户id + * @param isPass 是否通过 1:通过 0:未通过 + * @param request 请求 */ @Override public void messageAdd( @@ -163,10 +165,11 @@ public class MessageServiceImpl implements MessageService { /** * 添加项目变动消息 - * @param pId 项目id - * @param type 类型 1:上传文档 2:修改状态 3:修改负责人 + * + * @param pId 项目id + * @param type 类型 1:上传文档 2:修改状态 3:修改负责人 * @param systemId 系统id - * @param request + * @param request 请求 */ @Override public void messageAdd( @@ -201,11 +204,11 @@ public class MessageServiceImpl implements MessageService { /** * 添加子系统变动消息 * - * @param pId 项目id + * @param pId 项目id * @param systmeId 系统id * @param moddleId 模块id - * @param type 类型 1:删除模块 2:修改简介 3:修改周期 - * @param request + * @param type 类型 1:删除模块 2:修改简介 3:修改周期 + * @param request 请求 */ @Override public void messageAdd( @@ -238,8 +241,8 @@ public class MessageServiceImpl implements MessageService { messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" + systemName + "系统的简介说明"); } else if (type == 3) { - messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" - + systemName + "系统的系统周期/工作量"); + messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" + + systemName + "系统的系统周期/工作量"); } messageAddVO.setType("跳转系统页"); messageAddVO.setToId(systmeId); @@ -323,8 +326,8 @@ public class MessageServiceImpl implements MessageService { String systemName = projectMapper.getWorkById(projectWorkDO.getProjectChildId().intValue()).getName(); String moddleName = projectWorkDO.getName(); messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块" - + "还有三天就要到期了,请及时处理"); - messageAddVO.setType("跳转模块页"); + + "还有三天就要到期了,请及时处理"); + messageAddVO.setType("跳转模块页"); messageAddVO.setToId(projectWorkDO.getId().intValue()); messageMapper.messageAdd(messageAddVO); } diff --git a/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java index 6b231eb..2db150a 100644 --- a/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java @@ -1,7 +1,7 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; import com.jsl.oa.dao.NewsDAO; import com.jsl.oa.model.dodata.NewsDO; import com.jsl.oa.model.vodata.NewsAddVO; @@ -35,7 +35,7 @@ public class NewsServiceImpl implements NewsService { private final NewsDAO newsDAO; @Override - @CheckUserHasPermission("news.add") + @NeedRoleGroup("news.add") public BaseResponse newsAdd(NewsAddVO newsAddVO, @NotNull HttpServletRequest request) { log.info("\t> 执行 Service 层 NewsService.newsAdd 方法"); // 拷贝新闻数据到实体类 diff --git a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java index 657dee5..92c8370 100644 --- a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java @@ -1,6 +1,6 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; @@ -41,7 +41,7 @@ public class PermissionServiceImpl implements PermissionService { private final UserDAO userDAO; @Override - @CheckUserHasPermission("permission.add") + @NeedRoleGroup("permission.add") public BaseResponse permissionAdd(HttpServletRequest request, Long rid, Long pid) { log.info("\t> 执行 Service 层 PermissionService.permissionAdd 方法"); permissionMapper.permissionAdd(rid, pid); @@ -49,7 +49,7 @@ public class PermissionServiceImpl implements PermissionService { } @Override - @CheckUserHasPermission("permission.user") + @NeedRoleGroup("permission.user") public BaseResponse permissionUser(HttpServletRequest request, Long uid) { log.info("\t> 执行 Service 层 PermissionService.permissionUserPid 方法"); if (userDAO.isExistUser(uid)) { @@ -70,7 +70,7 @@ public class PermissionServiceImpl implements PermissionService { @Override - @CheckUserHasPermission("permission.get") + @NeedRoleGroup("permission.get") public BaseResponse permissionGet(HttpServletRequest request) { log.info("\t> 执行 Service 层 PermissionService.permissionGet 方法"); //获取所有权限数据 @@ -82,7 +82,7 @@ public class PermissionServiceImpl implements PermissionService { } @Override - @CheckUserHasPermission("permission.edit") + @NeedRoleGroup("permission.edit") public BaseResponse permissionEdit(PermissionEditVO permissionEditVo, HttpServletRequest request) { log.info("\t> 执行 Service 层 PermissionService.permissionEdit 方法"); //根据id获取对应permission数据 @@ -100,7 +100,7 @@ public class PermissionServiceImpl implements PermissionService { } @Override - @CheckUserHasPermission("permission.delete") + @NeedRoleGroup("permission.delete") public BaseResponse permissionDelete(HttpServletRequest request, Long pid) { log.info("\t> 执行 Service 层 PermissionService.permissionDelete 方法"); //删除权限 diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index 0f0697c..dad777b 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -3,7 +3,7 @@ package com.jsl.oa.services.impl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; @@ -236,7 +236,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - @CheckUserHasPermission("info.project.add") + @NeedRoleGroup("info.project.add") public BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO) { log.info("\t> 执行 Service 层 InfoService.addHeader 方法"); // 获取用户 @@ -263,7 +263,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - @CheckUserHasPermission("info.project.del") + @NeedRoleGroup("info.project.del") public BaseResponse delHeader(Integer id, HttpServletRequest request) { log.info("\t> 执行 Service 层 InfoService.delHeader 方法"); // 获取展示信息 @@ -282,7 +282,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - @CheckUserHasPermission("info.project.edit") + @NeedRoleGroup("info.project.edit") public BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id) { log.info("\t> 执行 Service 层 InfoService.editHeader 方法"); // 获取用户 diff --git a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java index 41be8e8..f6b6e39 100644 --- a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java @@ -1,6 +1,6 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.exception.ClassCopyException; @@ -42,7 +42,7 @@ public class RoleServiceImpl implements RoleService { private final UserDAO userDAO; @Override - @CheckUserHasPermission("role.add") + @NeedRoleGroup("role.add") public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) { log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法"); if (Processing.checkUserIsAdmin(request, roleDAO)) { diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index d8ae754..df3f19b 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -1,7 +1,7 @@ package com.jsl.oa.services.impl; -import com.jsl.oa.annotations.CheckUserAbleToUse; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.annotations.NeedRoleGroup; +import com.jsl.oa.annotations.UserAbleToUse; import com.jsl.oa.dao.PermissionDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; @@ -97,7 +97,7 @@ public class UserServiceImpl implements UserService { } @Override - @CheckUserHasPermission("user.current.all") + @NeedRoleGroup("user.current.all") public BaseResponse userCurrentAll(HttpServletRequest request, @NotNull UserAllCurrentVO userAllCurrentVO) { log.info("\t> 执行 Service 层 UserService.userCurrentAll 方法"); // 检查数据 @@ -133,7 +133,7 @@ public class UserServiceImpl implements UserService { @SuppressWarnings("checkstyle:NestedIfDepth") @Override - @CheckUserAbleToUse + @UserAbleToUse public BaseResponse userCurrent(HttpServletRequest request, String id, String username, diff --git a/src/main/java/com/jsl/oa/utils/BaseResponse.java b/src/main/java/com/jsl/oa/utils/BaseResponse.java index d0f1cac..9d8a87b 100755 --- a/src/main/java/com/jsl/oa/utils/BaseResponse.java +++ b/src/main/java/com/jsl/oa/utils/BaseResponse.java @@ -18,6 +18,6 @@ public class BaseResponse { this.code = code; this.message = message; this.data = data; - log.info("=================================================="); + log.info("============================================================"); } } diff --git a/src/main/java/com/jsl/oa/utils/ResultUtil.java b/src/main/java/com/jsl/oa/utils/ResultUtil.java index e50c690..d421197 100755 --- a/src/main/java/com/jsl/oa/utils/ResultUtil.java +++ b/src/main/java/com/jsl/oa/utils/ResultUtil.java @@ -20,7 +20,6 @@ public class ResultUtil { public static @NotNull BaseResponse success() { log.info("成功: Success[200] 操作成功 - 不带数据"); - log.info("=================================================="); return new BaseResponse("Success", 200, "操作成功", null); } From 76a1cf758caf750a8a548970da47028e0a2f9ed3 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Tue, 16 Apr 2024 17:29:21 +0800 Subject: [PATCH 8/8] =?UTF-8?q?patch:=20=E4=BC=98=E5=8C=96=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=A4=84=E7=90=86=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84=E6=97=A5=E5=BF=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jsl/oa/aspect/BusinessAop.java | 31 ++++++++--- .../jsl/oa/controllers/AuthController.java | 8 --- .../jsl/oa/controllers/IndexController.java | 1 - .../jsl/oa/controllers/InfoController.java | 6 --- .../jsl/oa/controllers/MessageController.java | 2 - .../jsl/oa/controllers/ModuleController.java | 5 -- .../jsl/oa/controllers/NewsController.java | 1 - .../oa/controllers/PermissionController.java | 5 -- .../jsl/oa/controllers/ProjectController.java | 51 +++++++++---------- .../jsl/oa/controllers/ReviewController.java | 2 - .../jsl/oa/controllers/RoleController.java | 7 --- .../com/jsl/oa/controllers/TagController.java | 1 - .../jsl/oa/controllers/UserController.java | 8 --- src/main/java/com/jsl/oa/dao/InfoDAO.java | 4 -- src/main/java/com/jsl/oa/dao/NewsDAO.java | 2 - .../java/com/jsl/oa/dao/PermissionDAO.java | 9 ---- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 38 -------------- src/main/java/com/jsl/oa/dao/RoleDAO.java | 25 --------- src/main/java/com/jsl/oa/dao/TagDAO.java | 1 - src/main/java/com/jsl/oa/dao/UserDAO.java | 37 -------------- .../jsl/oa/services/impl/AuthServiceImpl.java | 7 --- .../jsl/oa/services/impl/InfoServiceImpl.java | 6 --- .../jsl/oa/services/impl/MailServiceImpl.java | 6 +-- .../oa/services/impl/ModuleServiceImpl.java | 2 - .../jsl/oa/services/impl/NewsServiceImpl.java | 1 - .../services/impl/PermissionServiceImpl.java | 5 -- .../oa/services/impl/ProjectServiceImpl.java | 10 ---- .../oa/services/impl/ReviewServiceImpl.java | 2 - .../jsl/oa/services/impl/RoleServiceImpl.java | 7 --- .../jsl/oa/services/impl/TagServiceImpl.java | 1 - .../jsl/oa/services/impl/UserServiceImpl.java | 9 ---- 31 files changed, 49 insertions(+), 251 deletions(-) diff --git a/src/main/java/com/jsl/oa/aspect/BusinessAop.java b/src/main/java/com/jsl/oa/aspect/BusinessAop.java index 3772f4e..c627ac2 100644 --- a/src/main/java/com/jsl/oa/aspect/BusinessAop.java +++ b/src/main/java/com/jsl/oa/aspect/BusinessAop.java @@ -3,6 +3,8 @@ package com.jsl.oa.aspect; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.reflect.MethodSignature; @@ -44,9 +46,16 @@ public class BusinessAop { HttpServletRequest request = servletRequestAttributes.getRequest(); // 获取方法签名 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + Class declaringType = methodSignature.getDeclaringType(); String methodName = methodSignature.getName(); - log.info("[CONTROL] 执行 {} 接口 | 地址: [{}]{}", methodName, request.getMethod(), request.getServletPath()); + log.info( + "[CONTROL] 执行 {}:{} 接口 | 地址: [{}]{}", + declaringType.getName(), + methodName, + request.getMethod(), + request.getServletPath() + ); } else { throw new RuntimeException("无法获取信息"); } @@ -61,25 +70,31 @@ public class BusinessAop { public void beforeService(@NotNull JoinPoint joinPoint) { // 获取方法签名 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + Class declaringType = methodSignature.getDeclaringType(); String methodName = methodSignature.getName(); - log.info("[SERVICE] 执行 {} 业务", methodName); + log.info("[SERVICE] 执行 {}:{} 业务", declaringType.getName(), methodName); } /** * 在DAO的所有方法执行前执行 * - * @param joinPoint 切入点提供对方法执行的信息 + * @param pjp 切入点提供对方法执行的信息 */ - @Before("execution(* com.jsl.oa.dao.*.*(..))") - public void beforeDao(@NotNull JoinPoint joinPoint) { + @Around("execution(* com.jsl.oa.dao.*.*(..))") + public Object beforeDao(@NotNull ProceedingJoinPoint pjp) throws Throwable { // 获取方法签名 - MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) pjp.getSignature(); + Class declaringType = methodSignature.getDeclaringType(); String methodName = methodSignature.getName(); - Object[] args = joinPoint.getArgs(); - log.info("[DAO] 操作 {} 记录", methodName); + Object[] args = pjp.getArgs(); + log.info("==>[DAO] 操作 {}:{} 记录", declaringType.getName(), methodName); if (args.length != 0) { log.debug("\t> 传入信息:{}", Arrays.toString(args)); } + Object result = pjp.proceed(); + log.info("<==[DAO] 返回数据类型 {}", declaringType.descriptorString()); + log.debug("\t> 传出信息:{}", result.toString()); + return result; } } diff --git a/src/main/java/com/jsl/oa/controllers/AuthController.java b/src/main/java/com/jsl/oa/controllers/AuthController.java index c26aa60..4bede8b 100755 --- a/src/main/java/com/jsl/oa/controllers/AuthController.java +++ b/src/main/java/com/jsl/oa/controllers/AuthController.java @@ -55,7 +55,6 @@ public class AuthController { @RequestBody @Validated UserRegisterVO userRegisterVO, @NotNull BindingResult bindingResult ) { - log.info("请求接口[POST]: /auth/register"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -79,8 +78,6 @@ public class AuthController { @RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult ) { - log.info("请求接口[POST]: /auth/login"); - // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -100,7 +97,6 @@ public class AuthController { */ @GetMapping("/auth/email/code") public BaseResponse authSendEmailCode(@RequestParam String email) { - log.info("请求接口[GET]: /auth/email/code"); if (email != null) { if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) { return authService.authLoginSendEmailCode(email); @@ -125,7 +121,6 @@ public class AuthController { */ @GetMapping("/auth/login/email") public BaseResponse authLoginByEmail(@RequestParam String email, @RequestParam String code) { - log.info("请求接口[GET]: /auth/login/email"); if (email != null && code != null && !email.isEmpty() && !code.isEmpty()) { if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) { try { @@ -152,7 +147,6 @@ public class AuthController { */ @GetMapping("/auth/logout") public BaseResponse authLogout(HttpServletRequest request) { - log.info("请求接口[GET]: /auth/logout"); return authService.authLogout(request); } @@ -173,7 +167,6 @@ public class AuthController { @NotNull BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[PUT]: /auth/password"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -191,7 +184,6 @@ public class AuthController { @RequestBody @Validated UserForgetPasswordVO userForgetPasswordVO, @NotNull BindingResult bindingResult ) { - log.info("请求接口[PUT]: /auth/password/forget"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); diff --git a/src/main/java/com/jsl/oa/controllers/IndexController.java b/src/main/java/com/jsl/oa/controllers/IndexController.java index 41fe309..2228948 100644 --- a/src/main/java/com/jsl/oa/controllers/IndexController.java +++ b/src/main/java/com/jsl/oa/controllers/IndexController.java @@ -35,7 +35,6 @@ public class IndexController { */ @RequestMapping("/") public BaseResponse index() { - log.info("请求接口[GET]: /"); HashMap newMap = new HashMap<>(); newMap.put("timestamp", "构建时间:" + timestamp); return ResultUtil.success("欢迎使用JSL-OA系统,服务器处于正常状态", newMap); diff --git a/src/main/java/com/jsl/oa/controllers/InfoController.java b/src/main/java/com/jsl/oa/controllers/InfoController.java index ec0afec..8ae7c98 100755 --- a/src/main/java/com/jsl/oa/controllers/InfoController.java +++ b/src/main/java/com/jsl/oa/controllers/InfoController.java @@ -42,7 +42,6 @@ public class InfoController { */ @GetMapping("/info/header-image/get") public BaseResponse infoGetHeaderImage(@RequestParam(required = false) Integer id) { - log.info("请求接口[GET]: /info/header-image/get"); return infoService.getHeaderImage(id); } @@ -60,7 +59,6 @@ public class InfoController { HttpServletRequest request, @NotNull BindingResult bindingResult ) { - log.info("请求接口[PUT]: /info/header-image/edit"); // 参数校验 if (bindingResult.hasErrors()) { log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult)); @@ -82,7 +80,6 @@ public class InfoController { */ @DeleteMapping("/info/header-image/del") public BaseResponse infoDelHeaderImage(@RequestParam Integer id, HttpServletRequest request) { - log.info("请求接口[DELETE]: /info/header-image/del"); return infoService.delHeaderImage(request, id); } @@ -100,7 +97,6 @@ public class InfoController { HttpServletRequest request, @NotNull BindingResult bindingResult ) { - log.info("请求接口[POST]: /info/header-image/add"); // 参数校验 if (bindingResult.hasErrors()) { log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult)); @@ -118,7 +114,6 @@ public class InfoController { */ @PutMapping("/info/header-image/edit-setting") public BaseResponse infoEditSettingHeaderImage(@RequestParam Boolean showType, HttpServletRequest request) { - log.info("请求接口[PUT]: /info/header-image/edit-setting"); return infoService.editSettingHeaderImage(request, showType); } @@ -136,7 +131,6 @@ public class InfoController { @RequestParam String orderBy, HttpServletRequest request ) { - log.info("请求接口[GET]: /info/header-user/get"); return infoService.getHeaderUser(request, order, orderBy); } } diff --git a/src/main/java/com/jsl/oa/controllers/MessageController.java b/src/main/java/com/jsl/oa/controllers/MessageController.java index e1a5ad1..464e4b2 100644 --- a/src/main/java/com/jsl/oa/controllers/MessageController.java +++ b/src/main/java/com/jsl/oa/controllers/MessageController.java @@ -65,7 +65,6 @@ public class MessageController { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime begin, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime end, HttpServletRequest request) { - log.info("请求接口[GET]:/message/get"); String token = request.getHeader("Authorization").replace("Bearer ", ""); Long uid = JwtUtil.getUserId(token); if (uid == null) { @@ -79,7 +78,6 @@ public class MessageController { public BaseResponse messageGetById( @RequestParam Long id, HttpServletRequest request) { - log.info("请求接口[GET]:/message/get/id"); String token = request.getHeader("Authorization").replace("Bearer ", ""); Long uid = JwtUtil.getUserId(token); if (uid == null) { diff --git a/src/main/java/com/jsl/oa/controllers/ModuleController.java b/src/main/java/com/jsl/oa/controllers/ModuleController.java index 0e9c914..ccb27ba 100644 --- a/src/main/java/com/jsl/oa/controllers/ModuleController.java +++ b/src/main/java/com/jsl/oa/controllers/ModuleController.java @@ -33,8 +33,6 @@ public class ModuleController { */ @GetMapping("/module/get") public BaseResponse moduleGetByProjectId(@RequestParam Integer projectId, HttpServletRequest request) { - - log.info("[Controller] 执行 moduleGetByProjectId 接口"); return moduleService.getByProjectId(projectId, request); } @@ -47,8 +45,6 @@ public class ModuleController { */ @GetMapping("/module/get/min") public BaseResponse moduleGetBySysId(@RequestParam Integer sysId, HttpServletRequest request) { - - log.info("[Controller] 执行 moduleGetBySysId 接口"); return moduleService.getBySysId(sysId, request); } @@ -61,7 +57,6 @@ public class ModuleController { */ @DeleteMapping("/module/delete/{id}") public BaseResponse moduleDeleteById(@PathVariable("id") Long id, HttpServletRequest request) { - log.info("[Controller] 执行 moduleDeleteById 接口"); return moduleService.deleteById(request, id); } diff --git a/src/main/java/com/jsl/oa/controllers/NewsController.java b/src/main/java/com/jsl/oa/controllers/NewsController.java index 17f7992..46a24a6 100644 --- a/src/main/java/com/jsl/oa/controllers/NewsController.java +++ b/src/main/java/com/jsl/oa/controllers/NewsController.java @@ -52,7 +52,6 @@ public class NewsController { BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[POST]: /news/add"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); diff --git a/src/main/java/com/jsl/oa/controllers/PermissionController.java b/src/main/java/com/jsl/oa/controllers/PermissionController.java index c0d37f7..00a49c4 100755 --- a/src/main/java/com/jsl/oa/controllers/PermissionController.java +++ b/src/main/java/com/jsl/oa/controllers/PermissionController.java @@ -40,7 +40,6 @@ public class PermissionController { */ @PostMapping("/permission/add") public BaseResponse permissionAdd(HttpServletRequest request, @RequestParam Long rid, @RequestParam Long pid) { - log.info("请求接口[POST]: /permission/add"); // 判断是否有参数错误 if (rid == null || pid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -58,7 +57,6 @@ public class PermissionController { */ @GetMapping("/permission/current") public BaseResponse permissionUser(HttpServletRequest request, @RequestParam Long uid) { - log.info("请求接口[GET]: /permission/current"); // 判断是否有参数错误 if (uid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -75,7 +73,6 @@ public class PermissionController { */ @GetMapping("/permission/get") public BaseResponse permissionGet(HttpServletRequest request) { - log.info("请求接口[GET]: /permission/get"); return permissionService.permissionGet(request); } @@ -93,7 +90,6 @@ public class PermissionController { BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[PUT]: /permission/edit"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -110,7 +106,6 @@ public class PermissionController { */ @DeleteMapping("/permission/delete") public BaseResponse permissionDelete(@RequestParam Long pid, HttpServletRequest request) { - log.info("请求接口[Delete]: /permission/delete"); // 判断是否有参数错误 if (pid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index cb201d5..2205185 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -46,7 +46,6 @@ public class ProjectController { */ @GetMapping("/project/header/get") public BaseResponse projectGetHeader(@RequestParam(required = false) final Integer id) { - log.info("请求接口[GET]: /project/header/get"); return projectService.getHeader(id); } @@ -79,8 +78,8 @@ public class ProjectController { @RequestParam(required = false) List tags, @RequestParam(required = false) List isFinish, @RequestParam(required = false, defaultValue = "1") Integer page, - @RequestParam(required = false, defaultValue = "10") Integer pageSize) { - log.info("请求接口[GET]: /project/get/custom"); + @RequestParam(required = false, defaultValue = "10") Integer pageSize + ) { return projectService.tGet(tags, isFinish, page, pageSize); } @@ -98,7 +97,6 @@ public class ProjectController { @PathVariable String projectId, HttpServletRequest request ) { - log.info("请求接口[GET]: /project/get"); // 对 projectId 进行判断 if (!projectId.matches("^[0-9]+$")) { return ResultUtil.error("参数 projectId 不是一个数字", ErrorCode.PARAMETER_ERROR); @@ -118,8 +116,8 @@ public class ProjectController { @RequestParam(required = false) Integer is, @RequestParam(required = false, defaultValue = "1") Integer page, @RequestParam(required = false, defaultValue = "10") Integer pageSize, - HttpServletRequest request) { - log.info("请求接口[GET]: /project/work/get"); + HttpServletRequest request + ) { return projectService.workGet(request, tags, isFinish, is, page, pageSize); } @@ -132,7 +130,6 @@ public class ProjectController { */ @GetMapping("/project/header") public BaseResponse projectGetByName(@RequestParam String name) { - log.info("请求接口[GET]: /project/header"); return projectService.getByName(name); } @@ -146,10 +143,11 @@ public class ProjectController { * @return {@link BaseResponse} */ @PostMapping("/project/header/add") - public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, - HttpServletRequest request, - @NotNull BindingResult bindingResult) { - log.info("请求接口[POST]: /project/header/add"); + public BaseResponse projectAddHeader( + @RequestBody @Validated ProjectShowVO projectShowVO, + HttpServletRequest request, + @NotNull BindingResult bindingResult + ) { // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -168,11 +166,12 @@ public class ProjectController { * @return {@link BaseResponse} */ @PutMapping("/project/header/edit/{projectId}") - public BaseResponse projectEditById(@RequestParam Long projectId, - @RequestBody @Validated ProjectEditVO projectEdit, - @NotNull BindingResult bindingResult, - HttpServletRequest request) { - log.info("请求接口[PUT]: /project/header/edit/{projectId}"); + public BaseResponse projectEditById( + @PathVariable Long projectId, + @RequestBody @Validated ProjectEditVO projectEdit, + @NotNull BindingResult bindingResult, + HttpServletRequest request + ) { // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -188,10 +187,11 @@ public class ProjectController { * @return {@link BaseResponse} */ @PostMapping("/project/work/add") - public BaseResponse projectWorkAdd(HttpServletRequest request, - @RequestBody @Validated ProjectWorkVO projectWorkVO, - @NotNull BindingResult bindingResult) { - log.info("请求接口[POST]: /project/work/add"); + public BaseResponse projectWorkAdd( + HttpServletRequest request, + @RequestBody @Validated ProjectWorkVO projectWorkVO, + @NotNull BindingResult bindingResult + ) { // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -210,10 +210,11 @@ public class ProjectController { */ @PostMapping("/project/add") - public BaseResponse projectAdd(HttpServletRequest request, - @RequestBody @Validated ProjectInfoVO projectInfoVO, - @NotNull BindingResult bindingResult) { - log.info("请求接口[POST]: /project/add"); + public BaseResponse projectAdd( + @RequestBody @Validated ProjectInfoVO projectInfoVO, + @NotNull BindingResult bindingResult, + HttpServletRequest request + ) { // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -239,7 +240,6 @@ public class ProjectController { */ @DeleteMapping("/project/delete") public BaseResponse projectDelete(HttpServletRequest request, @RequestParam List id) { - log.info("请求接口[Delete]: /project/delete"); if (id == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); } @@ -248,7 +248,6 @@ public class ProjectController { @GetMapping("/project/file") public BaseResponse getProjectFile(HttpServletRequest request, @RequestParam Long projectId) { - log.info("请求接口[Get]: /project/file"); //判断是否有参数错误 if (projectId == null) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR); diff --git a/src/main/java/com/jsl/oa/controllers/ReviewController.java b/src/main/java/com/jsl/oa/controllers/ReviewController.java index dff99f8..ecf6a30 100644 --- a/src/main/java/com/jsl/oa/controllers/ReviewController.java +++ b/src/main/java/com/jsl/oa/controllers/ReviewController.java @@ -22,7 +22,6 @@ import javax.servlet.http.HttpServletRequest; @RequiredArgsConstructor public class ReviewController { -// 审核服务 private final ReviewService reviewService; /** @@ -32,7 +31,6 @@ public class ReviewController { **/ @GetMapping("/review/getMyReview") public BaseResponse getUserReview(@RequestParam Long projectId, HttpServletRequest request) { - log.info("请求接口[GET]: /review/getMyReview"); return reviewService.getUserReview(projectId, request); } diff --git a/src/main/java/com/jsl/oa/controllers/RoleController.java b/src/main/java/com/jsl/oa/controllers/RoleController.java index 96c81dc..1d9b3fb 100755 --- a/src/main/java/com/jsl/oa/controllers/RoleController.java +++ b/src/main/java/com/jsl/oa/controllers/RoleController.java @@ -43,7 +43,6 @@ public class RoleController { */ @GetMapping("/role/get") public BaseResponse roleGet(HttpServletRequest request, @RequestParam(required = false) String id) { - log.info("请求接口[GET]: /role/get"); return roleService.roleGet(request, id); } @@ -63,7 +62,6 @@ public class RoleController { @NotNull BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[PUT]: /role/edit"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -82,7 +80,6 @@ public class RoleController { */ @DeleteMapping("/role/delete") public BaseResponse roleDelete(HttpServletRequest request, @RequestParam Long id) { - log.info("请求接口[DELETE]: /role/delete"); // 判断是否有参数错误 if (id == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -97,7 +94,6 @@ public class RoleController { */ @PostMapping("role/user/add") public BaseResponse roleAddUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) { - log.info("请求接口[POST]: /role/user/add"); // 判断是否有参数错误 if (uid == null || rid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -112,7 +108,6 @@ public class RoleController { */ @DeleteMapping("role/user/remove") public BaseResponse roleRemoveUser(HttpServletRequest request, @RequestParam Long uid) { - log.info("请求接口[POST]: /role/user/remove"); // 判断是否有参数错误 if (uid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -131,7 +126,6 @@ public class RoleController { @NotNull BindingResult bindingResult, HttpServletRequest request ) throws ClassCopyException { - log.info("请求接口[POST]: /role/add"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -146,7 +140,6 @@ public class RoleController { */ @PutMapping("role/user/change") public BaseResponse roleChangeUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) { - log.info("请求接口[POST]: /role/user/change"); // 判断是否有参数错误 if (uid == null || rid == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); diff --git a/src/main/java/com/jsl/oa/controllers/TagController.java b/src/main/java/com/jsl/oa/controllers/TagController.java index bbc7a62..b65d4e3 100644 --- a/src/main/java/com/jsl/oa/controllers/TagController.java +++ b/src/main/java/com/jsl/oa/controllers/TagController.java @@ -33,7 +33,6 @@ public class TagController { @RequestParam(required = false) String limit, @RequestParam(required = false) String order ) { - log.info("[Controller] 请求 getProjectList 接口"); // 处理默认数据 if (page == null || !Pattern.matches("^[0-9]+$", page) || Integer.parseInt(page) < 1) { page = "1"; diff --git a/src/main/java/com/jsl/oa/controllers/UserController.java b/src/main/java/com/jsl/oa/controllers/UserController.java index c58d108..e5dbd21 100644 --- a/src/main/java/com/jsl/oa/controllers/UserController.java +++ b/src/main/java/com/jsl/oa/controllers/UserController.java @@ -44,7 +44,6 @@ public class UserController { */ @DeleteMapping("/user/delete") public BaseResponse userDelete(HttpServletRequest request, @RequestParam String id) { - log.info("请求接口[PUT]: /user/delete"); // 判断是否有参数错误 if (id == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -61,7 +60,6 @@ public class UserController { */ @PutMapping("/user/lock") public BaseResponse userLock(HttpServletRequest request, @RequestParam Long id, @RequestParam Long isLock) { - log.info("请求接口[PUT]: /user/lock"); // 判断是否有参数错误 if (id == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); @@ -81,7 +79,6 @@ public class UserController { @RequestBody @Validated UserEditProfileVO userEditProfileVO, BindingResult bindingResult ) { - log.info("请求接口[PUT]: /user/profile/edit"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -110,7 +107,6 @@ public class UserController { @RequestParam @Nullable String phone, @NotNull HttpServletRequest request ) { - log.info("请求接口[GET]: /user/current"); // 检查数据是否有问题 if (id != null && !id.isEmpty()) { if (!Pattern.matches("^[0-9]+$", id)) { @@ -153,7 +149,6 @@ public class UserController { @NotNull BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[POST]: /user/current/all"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -174,7 +169,6 @@ public class UserController { BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[POST]: /user/add"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -194,7 +188,6 @@ public class UserController { BindingResult bindingResult, HttpServletRequest request ) { - log.info("请求接口[PUT]: /user/edit"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); @@ -205,7 +198,6 @@ public class UserController { @GetMapping("/user/profile/get") public BaseResponse userProfileGet(HttpServletRequest request) { - log.info("请求接口[GET]: /user/profile/get"); return userService.userProfileGet(request); } diff --git a/src/main/java/com/jsl/oa/dao/InfoDAO.java b/src/main/java/com/jsl/oa/dao/InfoDAO.java index 39e6840..a63c279 100644 --- a/src/main/java/com/jsl/oa/dao/InfoDAO.java +++ b/src/main/java/com/jsl/oa/dao/InfoDAO.java @@ -35,8 +35,6 @@ public class InfoDAO { * @return {@link CarouselDO} */ public CarouselDO getCarousel() { - log.info("\t> 执行 DAO 层 InfoDAO.getCarousel 方法"); - log.info("\t\t> 从 MySQL 获取数据"); String getCarouselSql = infoMapper.getCarousel(); CarouselDO getCarousel = null; if (getCarouselSql != null && !"{}".equals(getCarouselSql)) { @@ -87,14 +85,12 @@ public class InfoDAO { * @return {@link Boolean} */ public boolean setCarousel(CarouselDO carouselDO) { - log.info("\t> 执行 DAO 层 InfoDAO.setCarousel 方法"); sortCarousel(carouselDO); // 添加id for (int i = 0; i < carouselDO.getData().size(); i++) { carouselDO.getData().get(i).setId(i + 1); } String setCarouselSql = gson.toJson(carouselDO); - log.info("\t\t> 从 MySQL 获取数据"); return infoMapper.setCarousel(setCarouselSql); } } diff --git a/src/main/java/com/jsl/oa/dao/NewsDAO.java b/src/main/java/com/jsl/oa/dao/NewsDAO.java index e2550ae..d461d52 100644 --- a/src/main/java/com/jsl/oa/dao/NewsDAO.java +++ b/src/main/java/com/jsl/oa/dao/NewsDAO.java @@ -15,8 +15,6 @@ public class NewsDAO { private final NewsMapper newsMapper; public void addNews(NewsDO newsVO, Long uid) { - log.info("\t> 执行 DAO 层 NewsDAO.addNews 方法"); - log.info("\t\t> 从 MySQL 获取数据"); // 添加新闻数据 newsMapper.addNews(newsVO); // 添加作者 diff --git a/src/main/java/com/jsl/oa/dao/PermissionDAO.java b/src/main/java/com/jsl/oa/dao/PermissionDAO.java index d452011..d6255f8 100644 --- a/src/main/java/com/jsl/oa/dao/PermissionDAO.java +++ b/src/main/java/com/jsl/oa/dao/PermissionDAO.java @@ -40,29 +40,24 @@ public class PermissionDAO { * @return {@link List} */ public List getPermission(@NotNull Long uid) { - log.info("\t> 执行 DAO 层 PermissionDAO.getPermission 方法"); List getPermissionForString; String permissionRedisString = roleRedisUtil.getData(BusinessConstants.NONE, uid.toString()); if (permissionRedisString == null) { - log.info("\t\t> 从 MySQL 获取数据"); List permissionList = permissionMapper.permissionUserPid(uid); getPermissionForString = new ArrayList<>(); forPermissionToBuildString(permissionList, getPermissionForString); // 存入 Redis roleRedisUtil.setData(BusinessConstants.NONE, uid.toString(), gson.toJson(getPermissionForString), 1440); } else { - log.info("\t\t> 从 Redis 获取数据"); getPermissionForString = gson.fromJson(permissionRedisString, new TypeToken>() { }.getType()); } return getPermissionForString; } public List getAllPermissionBuildString() { - log.info("\t> 执行 DAO 层 PermissionDAO.getPermission 方法"); List getPermissionForString; String getRedisData = roleRedisUtil.getData(BusinessConstants.ALL_PERMISSION, "string"); if (getRedisData == null) { - log.info("\t\t> 从 MySQL 获取数据"); List permissionList = permissionMapper.getAllPermission(); permissionList.removeIf(it -> it.getPid() != null); getPermissionForString = new ArrayList<>(); @@ -74,17 +69,14 @@ public class PermissionDAO { gson.toJson(getPermissionForString), 1440); } else { - log.info("\t\t> 从 Redis 获取数据"); getPermissionForString = gson.fromJson(getRedisData, new TypeToken>() { }.getType()); } return getPermissionForString; } public List getRootPermission() { - log.info("\t> 执行 DAO 层 PermissionDAO.getRootPermission 方法"); String getRedisData = roleRedisUtil.getData(BusinessConstants.ALL_PERMISSION, "all"); if (getRedisData == null) { - log.info("\t\t> 从 MySQL 获取数据"); List permissionList = permissionMapper.getAllPermission(); if (!permissionList.isEmpty()) { List getPermissionList = new ArrayList<>(); @@ -99,7 +91,6 @@ public class PermissionDAO { return null; } } else { - log.info("\t\t> 从 Redis 获取数据"); return gson.fromJson(getRedisData, new TypeToken>() { }.getType()); } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 6ffe0d0..06d305a 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -28,38 +28,27 @@ public class ProjectDAO { private final Gson gson; public void projectAdd(ProjectInfoVO projectAdd) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法"); - log.info("\t\t> 从 MySQL 获取数据"); projectMapper.projectAdd(projectAdd); } public void projectWorkAdd(ProjectWorkVO projectWorkVO) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectWorkAdd 方法"); - log.info("\t\t> 从 MySQL 获取数据"); projectMapper.projectWorkAdd(projectWorkVO); } public ProjectDO projectEdit(@NotNull ProjectEditVO projectEdit, Long projectId) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法"); - log.info("\t\t> 从 MySQL 更新数据"); ProjectDO projectDO = new ProjectDO(); Processing.copyProperties(projectEdit, projectDO); projectDO.setId(projectId); projectMapper.projectEdit(projectDO); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectById(projectId); } public boolean isExistProject(Long id) { - log.info("\t> 执行 DAO 层 ProjectDAO.isExistProject 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectById(id) != null; } public ProjectShowDO getHeader() { - log.info("\t> 执行 DAO 层 ProjectDAO.getHeader 方法"); - log.info("\t\t> 从 MySQL 获取数据"); String getProjectShowSql = projectMapper.getHeader(); ProjectShowDO getProjectShow = null; if (getProjectShowSql != null && !"{}".equals(getProjectShowSql)) { @@ -71,7 +60,6 @@ public class ProjectDAO { getProjectShow.setOrder("desc"); getProjectShow.setData(new ArrayList<>()); try { - log.info("\t\t> 从 MySQL 插入数据"); projectMapper.insertProjectShow(); } catch (DuplicateKeyException ignored) { } @@ -82,7 +70,6 @@ public class ProjectDAO { } private void sortProject(@NotNull ProjectShowDO projectShowDO) { - log.info("\t> 执行 DAO 层 ProjectDAO.sortProject 方法"); for (int i = 0; i < projectShowDO.getData().size(); i++) { for (int j = 0; j < projectShowDO.getData().size(); j++) { if ("desc".equals(projectShowDO.getOrder())) { @@ -101,30 +88,22 @@ public class ProjectDAO { } public boolean setProjectShow(ProjectShowDO projectShowDO) { - log.info("\t> 执行 DAO 层 ProjectDAO.setProjectShow 方法"); sortProject(projectShowDO); String setProjectShow = gson.toJson(projectShowDO); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.setProjectShow(setProjectShow); } public ProjectDO getProjectById(Long id) { - log.info("\t> 执行 DAO 层 ProjectDAO.getProjectById 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectById(id); } public List get(Long userId, List tags, List isFinish) { - log.info("\t> 执行 DAO 层 ProjectDAO.get 方法"); - log.info("\t\t> 从 MySQL 获取数据"); if (tags != null && !tags.isEmpty()) { - log.info("tags"); return projectMapper.getByTags(userId, tags, isFinish); } if (isFinish != null && !isFinish.isEmpty()) { - log.info("finish"); return projectMapper.getByIsfinish(userId, isFinish); } @@ -133,8 +112,6 @@ public class ProjectDAO { } public List workget(Long userId, List tags, List isFinish, Integer is) { - log.info("\t> 执行 DAO 层 ProjectDAO.workGet 方法"); - log.info("\t\t> 从 MySQL 获取数据"); if (tags != null && !tags.isEmpty()) { return projectMapper.workgetByTags(userId, tags, is, isFinish); } @@ -147,34 +124,25 @@ public class ProjectDAO { } public ProjectDO getByName(String name) { - log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getByName(name); } public boolean projectDelete(Long id) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectDelete 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.deleteProject(id); } public boolean isExistProjectById(Long id) { - log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectById 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectById(id) != null; } public boolean isPrincipalUser(Long uid, Long projectId) { - log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); ProjectDO projectDO = projectMapper.getProjectById(projectId); return Objects.equals(uid, projectDO.getPrincipalId()); } public List tget(List isFinish, List tags) { - log.info("DAO层tget"); if (tags != null && !tags.isEmpty()) { return projectMapper.tgetBytags(tags, isFinish); @@ -191,20 +159,14 @@ public class ProjectDAO { } public List getProjectByPrincipalUser(Long uid) { - log.info("\t> 执行 DAO 层 ProjectDAO.getProjectFromUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectByPrincipalUser(uid); } public List getAllSubsystemByUserId(Long uid) { - log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubsystemByUserId 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getAllSubsystemByUserId(uid); } public List getAllSubmoduleByUserId(Long uid) { - log.info("\t> 执行 DAO 层 ProjectDAO.getAllSubmoduleByUserId 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getAllSubmoduleByUserId(uid); } diff --git a/src/main/java/com/jsl/oa/dao/RoleDAO.java b/src/main/java/com/jsl/oa/dao/RoleDAO.java index 4e15499..b1d571d 100644 --- a/src/main/java/com/jsl/oa/dao/RoleDAO.java +++ b/src/main/java/com/jsl/oa/dao/RoleDAO.java @@ -23,8 +23,6 @@ public class RoleDAO { private final RoleRedisUtil roleRedisUtil; public void addRoleUser(Long uid, Long rid) { - log.info("\t> 执行 DAO 层 RoleDAO.addRoleUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); roleMapper.roleAddUser(uid, rid); roleRedisUtil.setData( BusinessConstants.USER, @@ -35,20 +33,15 @@ public class RoleDAO { } public void delRoleUser(Long uid) { - log.info("\t> 执行 DAO 层 RoleDAO.delRoleUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); roleMapper.roleRemoveUser(uid); roleRedisUtil.delData(BusinessConstants.USER, uid.toString()); } public RoleDO getRoleById(Long id) { - log.info("\t> 执行 DAO 层 RoleDAO.getRoleById 方法"); String getRedisData = roleRedisUtil.getData(BusinessConstants.NONE, "all"); if (getRedisData == null) { - log.info("\t\t> 从 MySQL 获取数据"); return roleMapper.getRoleById(id); } else { - log.info("\t\t> 从 Redis 获取数据"); List roleList = gson.fromJson(getRedisData, new TypeToken>() { }.getType()); for (RoleDO roleDO : roleList) { @@ -61,23 +54,18 @@ public class RoleDAO { } public List getRole() { - log.info("\t> 执行 DAO 层 RoleDAO.getRole 方法"); String getRedisData = roleRedisUtil.getData(BusinessConstants.NONE, "all"); if (getRedisData == null) { - log.info("\t\t> 从 MySQL 获取数据"); List roleList = roleMapper.getRole(); roleRedisUtil.setData(BusinessConstants.NONE, "all", gson.toJson(roleList), 1440); return roleList; } else { - log.info("\t\t> 从 Redis 获取数据"); return gson.fromJson(getRedisData, new TypeToken>() { }.getType()); } } public void roleAdd(RoleDO roleDO) { - log.info("\t> 执行 DAO 层 RoleDAO.roleAdd 方法"); - log.info("\t\t> 从 MySQL 获取数据"); roleMapper.roleAdd(roleDO); List roleList = roleMapper.getRole(); roleRedisUtil.setData(BusinessConstants.NONE, "all", gson.toJson(roleList), 120); @@ -85,15 +73,11 @@ public class RoleDAO { } public RoleDO getRoleNameByUid(Long uid) { - log.info("\t> 执行 DAO 层 RoleDAO.getRoleNameByUid 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return roleMapper.getRoleById(getRoleUserByUid(uid).getRid()); } public boolean roleEdit(RoleDO getRole) { - log.info("\t> 执行 DAO 层 RoleDAO.roleEdit 方法"); - log.info("\t\t> 从 MySQL 获取数据"); if (roleMapper.roleEdit(getRole)) { List roleList = roleMapper.getRole(); roleRedisUtil.setData(BusinessConstants.NONE, "all", gson.toJson(roleList), 1440); @@ -104,8 +88,6 @@ public class RoleDAO { } public boolean roleDelete(Long id) { - log.info("\t> 执行 DAO 层 RoleDAO.roleDelete 方法"); - log.info("\t\t> 从 MySQL 获取数据"); if (roleMapper.roleDelete(id)) { List roleList = roleMapper.getRole(); roleRedisUtil.setData(BusinessConstants.NONE, "all", gson.toJson(roleList), 1440); @@ -116,15 +98,11 @@ public class RoleDAO { } public boolean isExistRoleByRoleName(String roleName) { - log.info("\t> 执行 DAO 层 RoleDAO.isExistRoleByRoleName 方法"); - log.info("\t\t> 从 MySQL 获取数据"); RoleDO roleDO = roleMapper.getRoleByRoleName(roleName); return roleDO != null; } public boolean roleChangeUser(@NotNull Long uid, Long rid) { - log.info("\t> 执行 DAO 层 RoleDAO.roleChangeUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); if (roleMapper.roleChangeUser(uid, rid)) { roleRedisUtil.setData( BusinessConstants.USER, @@ -139,13 +117,10 @@ public class RoleDAO { } public RoleUserDO getRoleUserByUid(@NotNull Long uid) { - log.info("\t> 执行 DAO 层 RoleDAO.getRoleUserByUid 方法"); String getRedisData = roleRedisUtil.getData(BusinessConstants.USER, uid.toString()); if (getRedisData == null) { - log.info("\t\t> 从 MySQL 获取数据"); return roleMapper.getRoleUserByUid(uid); } else { - log.info("\t\t> 从 Redis 获取数据"); return gson.fromJson(getRedisData, RoleUserDO.class); } } diff --git a/src/main/java/com/jsl/oa/dao/TagDAO.java b/src/main/java/com/jsl/oa/dao/TagDAO.java index dba1861..c3b8e42 100644 --- a/src/main/java/com/jsl/oa/dao/TagDAO.java +++ b/src/main/java/com/jsl/oa/dao/TagDAO.java @@ -33,7 +33,6 @@ public class TagDAO { * @param order 排序 */ public ArrayList getTagsProjectList(Integer page, Integer limit, String order) { - log.info("[DAO] 请求 getTagsProjectList 接口"); // 获取标签列表 page = (page - 1) * limit; return (ArrayList) tagMapper.getTagsProjectList(order, limit, page); diff --git a/src/main/java/com/jsl/oa/dao/UserDAO.java b/src/main/java/com/jsl/oa/dao/UserDAO.java index 877f2d5..17161ff 100755 --- a/src/main/java/com/jsl/oa/dao/UserDAO.java +++ b/src/main/java/com/jsl/oa/dao/UserDAO.java @@ -50,7 +50,6 @@ public class UserDAO { * @author 筱锋xiao_lfeng */ public UserDO getUserInfoByUsername(String username) { - log.info("\t> 执行 DAO 层 UserDAO.getUserInfoByUsername 方法"); UserDO userDO = null; // 从 Redis 获取数据 // TODO: 10000-Redis: 从 Redis 获取数据 @@ -70,15 +69,12 @@ public class UserDAO { * @return Boolean */ public Boolean isExistUser(@NotNull Long id) { - log.info("\t> 执行 DAO 层 UserDAO.isExistUser 方法"); // 从 Redis 获取数据 String redisData = userRedisUtil.getData(BusinessConstants.NONE, id.toString()); if (redisData != null) { - log.info("\t\t> 从 Redis 获取数据"); return true; } else { UserDO userDO = userMapper.getUserById(id); - log.info("\t\t> 从 MySQL 获取数据"); if (userDO != null) { userRedisUtil.setData(BusinessConstants.NONE, userDO.getId().toString(), gson.toJson(userDO), 120); return true; @@ -96,20 +92,15 @@ public class UserDAO { * @param id 用户id */ public void userDelete(@NotNull Long id) { - log.info("\t> 执行 DAO 层 UserDAO.userDelete 方法"); // Redis 获取数据 String redisData = userRedisUtil.getData(BusinessConstants.NONE, id.toString()); if (redisData != null) { - log.info("\t\t> 从 Redis 删除数据"); userRedisUtil.delData(BusinessConstants.NONE, id.toString()); } - log.info("\t\t> 从 MySQL 删除数据"); userMapper.userDelete(id); } public boolean userGetDelete(Long id) { - log.info("\t> 执行 DAO 层 UserDAO.userGetDelete 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.userGetDelete(id); } @@ -119,20 +110,14 @@ public class UserDAO { * @param id */ public void userLock(Long id, Long isLock) { - log.info("\t> 执行 DAO 层 UserDAO.userLock 方法"); - log.info("\t\t> 从 MySQL 获取数据"); userMapper.userLock(id, isLock); } public void userEditProfile(UserEditProfileVO userEditProfileVO) { - log.info("\t> 执行 DAO 层 UserDAO.userEditProfile 方法"); - log.info("\t\t> 从 MySQL 获取数据"); userMapper.userEditProfile(userEditProfileVO); } public UserCurrentBackVO userCurrentAll(UserAllCurrentVO userAllCurrentVO) { - log.info("\t> 执行 DAO 层 UserDAO.userCurrentAll 方法"); - log.info("\t\t> 从 MySQL 获取数据"); List userCurrentDO = userMapper.getAllUser(userAllCurrentVO); UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO(); userCurrentBackVO.setUsers(new ArrayList<>()) @@ -144,8 +129,6 @@ public class UserDAO { } public UserCurrentBackVO userCurrentAllLike(UserAllCurrentVO userAllCurrentVO) { - log.info("\t> 执行 DAO 层 UserDAO.userCurrentAllLike 方法"); - log.info("\t\t> 从 MySQL 获取数据"); List userCurrentDO = userMapper.getAllUserBySearch(userAllCurrentVO); UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO(); userCurrentBackVO.setUsers(new ArrayList<>()) @@ -163,14 +146,10 @@ public class UserDAO { * @Param userDO: user 数据库表实体类 */ public boolean userAdd(UserDO userDO) { - log.info("\t> 执行 DAO 层 userAdd 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.insertUser(userDO); } public void userEdit(UserDO userDO) { - log.info("\t> 执行 DAO 层 userEdit 方法"); - log.info("\t\t> 从 MySQL 获取数据"); userMapper.updateUser(userDO); } @@ -181,8 +160,6 @@ public class UserDAO { * @Param username: 用户名 **/ public Boolean isRepeatUser(String username) { - log.info("\t> 执行 DAO 层 isRepeatUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getUserInfoByUsername(username) != null; } @@ -205,8 +182,6 @@ public class UserDAO { * @Param userId **/ public UserDO getUserById(Long userId) { - log.info("\t> 执行 DAO 层 getUserById 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getUserById(userId); } @@ -217,8 +192,6 @@ public class UserDAO { * @Param uid:用户id **/ public RoleUserDO getRoleFromUser(Long uid) { - log.info("\t> 执行 DAO 层 getRoleFromUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getRoleIdByUserId(uid); } @@ -229,8 +202,6 @@ public class UserDAO { * @Param null:用户id **/ public Boolean isManagerByRoleId(Long roleId) { - log.info("\t> 执行 DAO 层 isManagerByRoleId 方法"); - log.info("\t\t> 从 MySQL 获取数据"); RoleDO role = userMapper.getRoleById(roleId); if (role == null) { return false; @@ -240,26 +211,18 @@ public class UserDAO { public List getRecommendUser() { - log.info("\t> 执行 DAO 层 getRecommendUser 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getRecommendUser(); } public UserDO getUserByEmail(String email) { - log.info("\t> 执行 DAO 层 getUserByEmail 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getUserByEmail(email); } public UserDO getUserByPhone(String phone) { - log.info("\t> 执行 DAO 层 getUserByPhone 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getUserByPhone(phone); } public Long getUsersCount() { - log.info("\t> 执行 DAO 层 getUsersCount 方法"); - log.info("\t\t> 从 MySQL 获取数据"); return userMapper.getUsersCount(); } } diff --git a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java index 9784c60..0b989f2 100755 --- a/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/AuthServiceImpl.java @@ -49,7 +49,6 @@ public class AuthServiceImpl implements AuthService { @Override public BaseResponse authRegister(@NotNull UserRegisterVO userRegisterVO) { - log.info("\t> 执行 Service 层 AuthService.authRegister 方法"); // 检查用户说是否存在 UserDO getUserByUsername = userMapper.getUserInfoByUsername(userRegisterVO.getUsername()); // 用户名已存在 @@ -86,7 +85,6 @@ public class AuthServiceImpl implements AuthService { @Override public BaseResponse authLogin(@NotNull UserLoginVO userLoginVO) { - log.info("\t> 执行 Service 层 AuthService.userLogin 方法"); // 检查用户是否存在 UserDO userDO; if (Pattern.matches("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", @@ -131,7 +129,6 @@ public class AuthServiceImpl implements AuthService { @Override public BaseResponse authLoginByEmail(String email, Integer code) { - log.info("\t> 执行 Service 层 AuthService.authLoginByEmail 方法"); // 获取验证码是否有效 Integer redisCode = emailRedisUtil.getData(BusinessConstants.BUSINESS_LOGIN, email); if (redisCode != null) { @@ -151,7 +148,6 @@ public class AuthServiceImpl implements AuthService { @Override public BaseResponse authLoginSendEmailCode(String email) { - log.info("\t> 执行 Service 层 AuthService.authLoginSendEmailCode 方法"); // 获取用户信息 UserDO userDO = userMapper.getUserInfoByEmail(email); if (userDO != null) { @@ -181,7 +177,6 @@ public class AuthServiceImpl implements AuthService { @NotNull UserChangePasswordVO userChangePasswordVO, HttpServletRequest request ) { - log.info("\t> 执行 Service 层 AuthService.authChangePassword 方法"); // 检查新密码输入无误 if (!userChangePasswordVO.getNewPassword().equals(userChangePasswordVO.getConfirmPassword())) { return ResultUtil.error(ErrorCode.PASSWORD_NOT_SAME); @@ -212,7 +207,6 @@ public class AuthServiceImpl implements AuthService { @Override @UserAbleToUse public BaseResponse authLogout(HttpServletRequest request) { - log.info("\t> 执行 Service 层 AuthService.authLogout 方法"); // 获取用户 UserDO userDO = userMapper.getUserById(Processing.getAuthHeaderToUserId(request)); // 删除Token @@ -225,7 +219,6 @@ public class AuthServiceImpl implements AuthService { @Override public BaseResponse authForgetPassword(@NotNull UserForgetPasswordVO userForgetPasswordVO) { - log.info("\t> 执行 Service 层 AuthService.authForgetPassword 方法"); // 获取验证码是否有效 Integer redisCode = emailRedisUtil.getData(BusinessConstants.BUSINESS_LOGIN, userForgetPasswordVO.getEmail()); if (redisCode != null) { diff --git a/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java index 517d3e6..31ec4be 100644 --- a/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/InfoServiceImpl.java @@ -43,7 +43,6 @@ public class InfoServiceImpl implements InfoService { @Override @NeedRoleGroup("info.image.add") public BaseResponse addHeaderImage(HttpServletRequest request, @NotNull CarouselVO carouselVO) { - log.info("\t> 执行 Service 层 InfoService.addHeaderImage 方法"); // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); UserDO userDO = userDAO.getUserById(userId); @@ -77,7 +76,6 @@ public class InfoServiceImpl implements InfoService { @Override @NeedRoleGroup("info.image.edit") public BaseResponse editHeaderImage(HttpServletRequest request, @NotNull CarouselVO carouselVO) { - log.info("\t> 执行 Service 层 InfoService.editHeaderImage 方法"); // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); UserDO userDO = userDAO.getUserById(userId); @@ -112,7 +110,6 @@ public class InfoServiceImpl implements InfoService { @Override public BaseResponse getHeaderImage(Integer id) { - log.info("\t> 执行 Service 层 InfoService.getHeaderImage 方法"); // 获取轮播图信息 CarouselDO carouselDO = infoDAO.getCarousel(); if (id != null) { @@ -129,7 +126,6 @@ public class InfoServiceImpl implements InfoService { @Override @NeedRoleGroup("info.image.del") public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) { - log.info("\t> 执行 Service 层 InfoService.delHeaderImage 方法"); // 用户权限校验 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -152,7 +148,6 @@ public class InfoServiceImpl implements InfoService { @Override @NeedRoleGroup("info.image.setting.edit") public BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType) { - log.info("\t> 执行 Service 层 InfoService.editSettingHeaderImage 方法"); // 用户权限校验 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -170,7 +165,6 @@ public class InfoServiceImpl implements InfoService { @Override public BaseResponse getHeaderUser(HttpServletRequest request, String order, String orderBy) { - log.info("\t> 执行 Service 层 InfoService.getHeaderUser 方法"); // 默认无参数情况 if (order == null) { order = "asc"; diff --git a/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java index 2ea7e95..34d51b3 100755 --- a/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MailServiceImpl.java @@ -41,7 +41,6 @@ public class MailServiceImpl implements MailService { @Async @UserAbleToUse public void sendMail(String sendTo, String subject, String text) { - log.info("\t> 执行 Service 层 MailService.sendMail 方法"); //发送多媒体邮件 try { MimeMessage message = javaMailSender.createMimeMessage(); @@ -64,15 +63,12 @@ public class MailServiceImpl implements MailService { @Override @Async @UserAbleToUse - public void sendMail(String sendTo, String model) { - log.info("\t> 执行 Service 层 MailService.sendMail 方法"); - } + public void sendMail(String sendTo, String model) { } @Override @Async @UserAbleToUse public void sendMailAboutUserLogin(String email, Integer code) { - log.info("\t> 执行 Service 层 MailService.sendMailAboutUserLogin 方法"); // 发送邮件带HTML模块部分 try { MimeMessage message = javaMailSender.createMimeMessage(); diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java index 147cf52..fea172a 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -30,7 +30,6 @@ public class ModuleServiceImpl implements ModuleService { @Override public BaseResponse getByProjectId(Integer projectId, HttpServletRequest request) { - log.info("projectService"); //获取用户id Long userId = Processing.getAuthHeaderToUserId(request); //获取项目负责人id @@ -48,7 +47,6 @@ public class ModuleServiceImpl implements ModuleService { @Override public BaseResponse getBySysId(Integer sysId, HttpServletRequest request) { - log.info("SysService"); //获取用户id Long userId = Processing.getAuthHeaderToUserId(request); //获取子系统负责人id diff --git a/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java index 2db150a..0b6f5a1 100644 --- a/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/NewsServiceImpl.java @@ -37,7 +37,6 @@ public class NewsServiceImpl implements NewsService { @Override @NeedRoleGroup("news.add") public BaseResponse newsAdd(NewsAddVO newsAddVO, @NotNull HttpServletRequest request) { - log.info("\t> 执行 Service 层 NewsService.newsAdd 方法"); // 拷贝新闻数据到实体类 NewsDO newsDO = new NewsDO(); Processing.copyProperties(newsAddVO, newsDO); diff --git a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java index 92c8370..b61d553 100644 --- a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java @@ -43,7 +43,6 @@ public class PermissionServiceImpl implements PermissionService { @Override @NeedRoleGroup("permission.add") public BaseResponse permissionAdd(HttpServletRequest request, Long rid, Long pid) { - log.info("\t> 执行 Service 层 PermissionService.permissionAdd 方法"); permissionMapper.permissionAdd(rid, pid); return ResultUtil.success(); } @@ -51,7 +50,6 @@ public class PermissionServiceImpl implements PermissionService { @Override @NeedRoleGroup("permission.user") public BaseResponse permissionUser(HttpServletRequest request, Long uid) { - log.info("\t> 执行 Service 层 PermissionService.permissionUserPid 方法"); if (userDAO.isExistUser(uid)) { // 此用户是否为管理员 RoleUserDO roleUserDO = roleDAO.getRoleUserByUid(uid); @@ -72,7 +70,6 @@ public class PermissionServiceImpl implements PermissionService { @Override @NeedRoleGroup("permission.get") public BaseResponse permissionGet(HttpServletRequest request) { - log.info("\t> 执行 Service 层 PermissionService.permissionGet 方法"); //获取所有权限数据 List permissionDOList = permissionMapper.getAllPermission(); //将数据按父子类封装 @@ -84,7 +81,6 @@ public class PermissionServiceImpl implements PermissionService { @Override @NeedRoleGroup("permission.edit") public BaseResponse permissionEdit(PermissionEditVO permissionEditVo, HttpServletRequest request) { - log.info("\t> 执行 Service 层 PermissionService.permissionEdit 方法"); //根据id获取对应permission数据 PermissionDO permissionDO = permissionMapper.getPermissionById(permissionEditVo.getId()); if (permissionDO == null) { @@ -102,7 +98,6 @@ public class PermissionServiceImpl implements PermissionService { @Override @NeedRoleGroup("permission.delete") public BaseResponse permissionDelete(HttpServletRequest request, Long pid) { - log.info("\t> 执行 Service 层 PermissionService.permissionDelete 方法"); //删除权限 if (!permissionMapper.deletePermission(pid)) { return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index dad777b..d6b65d1 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -54,7 +54,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) { - log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法"); if (projectAdd.getDescription().isEmpty()) { projectAdd.setDescription("{}"); } else { @@ -81,7 +80,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectWorkAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) { - log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法"); //获取用户id Long userId = Processing.getAuthHeaderToUserId(request); //是否是增加子系统 @@ -106,7 +104,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse tGet(List tags, List isFinish, Integer page, Integer pageSize) { - log.info("\t> 执行 Service 层 ProjectService.tGet 方法"); List projectDOList = projectDAO.tget(isFinish, tags); @@ -201,7 +198,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { - log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法"); //判断用户是否为老师 或者 项目负责人 @@ -238,7 +234,6 @@ public class ProjectServiceImpl implements ProjectService { @Override @NeedRoleGroup("info.project.add") public BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO) { - log.info("\t> 执行 Service 层 InfoService.addHeader 方法"); // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); UserDO userDO = userDAO.getUserById(userId); @@ -265,7 +260,6 @@ public class ProjectServiceImpl implements ProjectService { @Override @NeedRoleGroup("info.project.del") public BaseResponse delHeader(Integer id, HttpServletRequest request) { - log.info("\t> 执行 Service 层 InfoService.delHeader 方法"); // 获取展示信息 ProjectShowDO projectShowDO = projectDAO.getHeader(); // 删除指定展示id @@ -284,7 +278,6 @@ public class ProjectServiceImpl implements ProjectService { @Override @NeedRoleGroup("info.project.edit") public BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id) { - log.info("\t> 执行 Service 层 InfoService.editHeader 方法"); // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); UserDO userDO = userDAO.getUserById(userId); @@ -319,7 +312,6 @@ public class ProjectServiceImpl implements ProjectService { Integer page, Integer pageSize ) { - log.info("\t> 执行 Service 层 ProjectService.workGet 方法"); //获取用户 Long userId = Processing.getAuthHeaderToUserId(request); @@ -342,7 +334,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse getByName(String name) { - log.info("\t> 执行 Service 层 ProjectService.getByName 方法"); if (projectDAO.getByName(name) == null) { return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); } else { @@ -352,7 +343,6 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectDelete(HttpServletRequest request, List id) { - log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法"); //判断用户是否为老师 或者 项目负责人 if (!Processing.checkUserIsTeacher(request, roleDAO)) { diff --git a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java index 7f8859b..ce19840 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -37,8 +37,6 @@ public class ReviewServiceImpl implements ReviewService { @Override public BaseResponse getUserReview(Long projectId, HttpServletRequest request) { - log.info("\t> 执行 Service 层 ReviewService.getUserReview 方法"); - //获取用户 Long userId = Processing.getAuthHeaderToUserId(request); diff --git a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java index f6b6e39..8eb9af4 100644 --- a/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/RoleServiceImpl.java @@ -44,7 +44,6 @@ public class RoleServiceImpl implements RoleService { @Override @NeedRoleGroup("role.add") public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) { - log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法"); if (Processing.checkUserIsAdmin(request, roleDAO)) { roleDAO.addRoleUser(uid, rid); return ResultUtil.success(); @@ -56,7 +55,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) { - log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法"); if (Processing.checkUserIsAdmin(request, roleDAO)) { roleDAO.delRoleUser(uid); return ResultUtil.success(); @@ -67,7 +65,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse roleChangeUser(HttpServletRequest request, Long uid, Long rid) { - log.info("\t> 执行 Service 层 RoleService.roleChangeUser 方法"); //检测用户是否存在 if (!userDAO.isExistUser(uid)) { return ResultUtil.error(ErrorCode.USER_NOT_EXIST); @@ -90,7 +87,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse roleGet(HttpServletRequest request, String id) { - log.info("\t> 执行 Service 层 RoleService.roleGet 方法"); // 检查用户权限 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -117,7 +113,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) { - log.info("\t> 执行 Service 层 RoleService.roleEdit 方法"); // 检查用户权限 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -141,7 +136,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse roleDelete(HttpServletRequest request, Long id) { - log.info("\t> 执行 Service 层 RoleService.roleDelete 方法"); // 检查用户权限 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -163,7 +157,6 @@ public class RoleServiceImpl implements RoleService { @Override public BaseResponse addRole(HttpServletRequest request, RoleAddVo roleAddVO) throws ClassCopyException { - log.info("\t> 执行 Service 层 RoleService.addRole 方法"); // 检查用户权限 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); diff --git a/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java index 622377f..2de0120 100644 --- a/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/TagServiceImpl.java @@ -37,7 +37,6 @@ public class TagServiceImpl implements TagService { */ @Override public BaseResponse getTagsProjectList(Integer page, Integer limit, String order) { - log.info("[Service] 请求 getTagsProjectList 接口"); // 获取标签列表 ArrayList getTagList = tagDAO.getTagsProjectList(page, limit, order); return ResultUtil.success(getTagList); diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index df3f19b..d0cc587 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -52,7 +52,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userDelete(HttpServletRequest request, Long id) { - log.info("\t> 执行 Service 层 UserService.userDelete 方法"); //判断用户是否存在 if (userDAO.isExistUser(id)) { if (!Processing.checkUserIsAdmin(request, roleDAO)) { @@ -72,7 +71,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) { - log.info("\t> 执行 Service 层 UserService.userLock 方法"); if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); } @@ -87,7 +85,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userEditProfile(@NotNull UserEditProfileVO userEditProfileVO) { - log.info("\t> 执行 Service 层 UserService.userEditProfile 方法"); if (userDAO.isExistUser(userEditProfileVO.getId())) { userDAO.userEditProfile(userEditProfileVO); return ResultUtil.success("修改成功"); @@ -99,7 +96,6 @@ public class UserServiceImpl implements UserService { @Override @NeedRoleGroup("user.current.all") public BaseResponse userCurrentAll(HttpServletRequest request, @NotNull UserAllCurrentVO userAllCurrentVO) { - log.info("\t> 执行 Service 层 UserService.userCurrentAll 方法"); // 检查数据 if (userAllCurrentVO.getPage() == null || userAllCurrentVO.getPage() < 1) { userAllCurrentVO.setPage(1L); @@ -139,7 +135,6 @@ public class UserServiceImpl implements UserService { String username, String email, String phone) { - log.info("\t> 执行 Service 层 UserService.userCurrent 方法"); if (id == null && username == null && email == null && phone == null) { // Token获取信息 UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)); @@ -193,7 +188,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) { - log.info("\t> 执行 Service 层 UserService.userAdd 方法"); // 检测用户是否为管理员 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -231,7 +225,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) { - log.info("\t> 执行 Service 层 userEdit 方法"); // 检测用户是否为管理员 if (!Processing.checkUserIsAdmin(request, roleDAO)) { return ResultUtil.error(ErrorCode.NOT_ADMIN); @@ -265,8 +258,6 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userProfileGet(HttpServletRequest request) { - log.info("\t> 执行 Service 层 UserService.userProfileGet 方法"); - // 获取用户Id UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)); UserProfileVo userProfileVo = new UserProfileVo();