From 037b36bf3f5adeb105ec3f8b90c318605e7112a2 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Fri, 19 Apr 2024 14:21:48 +0800 Subject: [PATCH] =?UTF-8?q?patch:=E5=AE=A1=E6=A0=B8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 审核模块代码部分解耦,增加可读性 --- src/main/java/com/jsl/oa/dao/ReviewDAO.java | 4 + .../java/com/jsl/oa/mapper/ReviewMapper.java | 4 + .../oa/services/impl/ReviewServiceImpl.java | 213 ++++++++++-------- 3 files changed, 123 insertions(+), 98 deletions(-) diff --git a/src/main/java/com/jsl/oa/dao/ReviewDAO.java b/src/main/java/com/jsl/oa/dao/ReviewDAO.java index 90f4055..8b1d8d7 100644 --- a/src/main/java/com/jsl/oa/dao/ReviewDAO.java +++ b/src/main/java/com/jsl/oa/dao/ReviewDAO.java @@ -62,6 +62,10 @@ public class ReviewDAO { return reviewMapper.selectReviewByUser(uid); } + public List getReviewByUserAndResult(Long uid, Short result) { + return reviewMapper.selectReviewByUserAndResult(uid, result); + } + public void addReview(ReviewDO reviewDO) { diff --git a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java index aa6a2e9..f8468ac 100644 --- a/src/main/java/com/jsl/oa/mapper/ReviewMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ReviewMapper.java @@ -47,4 +47,8 @@ public interface ReviewMapper { @Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND " + "is_delete = 0") List selectReviewByUser(Long uid); + + @Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND " + + "is_delete = 0 AND review_result = #{result}") + List selectReviewByUserAndResult(Long uid, Short result); } 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 d3a6abb..f0d505b 100644 --- a/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ReviewServiceImpl.java @@ -41,6 +41,13 @@ public class ReviewServiceImpl implements ReviewService { private final ProjectMapper projectMapper; + /** + * @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据) + * @Date: 2024/4/19 + * @Param page: 当前页码 + * @Param pageSize: 每页大小 + * @Param request: request请求 + **/ @Override public BaseResponse getUserPendingApprovalReview(Integer page, Integer pageSize, @@ -86,7 +93,6 @@ public class ReviewServiceImpl implements ReviewService { reviewData.addAll(reviewDOS); } - //根据id进行去重 reviewData = reviewData.stream() .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing)) @@ -94,7 +100,6 @@ public class ReviewServiceImpl implements ReviewService { .stream() .collect(Collectors.toList()); - //按照申请时间降序排序 Collections.sort(reviewData, new Comparator() { @Override @@ -113,6 +118,13 @@ public class ReviewServiceImpl implements ReviewService { } + /** + * @Description: 获取我的审核数据(用户管理项目下与自己的记录) + * @Date: 2024/4/19 + * @Param page: 当前页码 + * @Param pageSize: 每页大小 + * @Param request: request请求 + **/ @Override public BaseResponse getUserReview(Integer page, Integer pageSize, @@ -124,42 +136,13 @@ public class ReviewServiceImpl implements ReviewService { //存储审核数据的数组 List reviewData = new ArrayList<>(); - //先获取用户为项目负责人的项目列表 - projectDAO.getProjectByPrincipalUser(userId); + //先获取用户管理下的所有审核信息 + reviewData.addAll(getAllReviewFromProject(userId)); - //先从用户为 项目负责人 的项目中获取对应 审核信息 - for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectAllReviewFromProject(projectDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } - - //在从用户为 子系统负责人 的项目中获取对应 审核信息 - for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectReviewFromSubsystem(projectChildDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } - - - //在从用户为 子模块负责人 的项目中获取对应 审核信息 - for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectReviewFromSubmodule(projectModuleDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } - -// 获取自己的审核记录 + //获取自己的审核记录 List myReviewDO = reviewDAO.getReviewByUser(userId); reviewData.addAll(myReviewDO); - //根据id进行去重 reviewData = reviewData.stream() .collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing)) @@ -185,6 +168,12 @@ public class ReviewServiceImpl implements ReviewService { } + /** + * @Description: 添加审核接口 + * @Date: 2024/4/19 + * @Param reviewAddVO: 审核添加实体类 + * @Param request: request请求 + **/ @Override public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) { @@ -289,10 +278,10 @@ public class ReviewServiceImpl implements ReviewService { Integer page, Integer pageSize) { + // 获取审核记录数据 List reviewVOS = getReviewsByResult(request, statue); - // 根据内容筛选 if (content == null || content.equals("")) { //封装结果类与数据总数 @@ -318,36 +307,8 @@ public class ReviewServiceImpl implements ReviewService { //存储审核数据的数组 List reviewData = new ArrayList<>(); - //先获取用户为项目负责人的项目列表 - projectDAO.getProjectByPrincipalUser(userId); - - //先从用户为 项目负责人 的项目中获取对应 审核信息 - for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectAllReviewFromProject(projectDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } - - //在从用户为 子系统负责人 的项目中获取对应 审核信息 - for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectReviewFromSubsystem(projectChildDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } - - - //在从用户为 子模块负责人 的项目中获取对应 审核信息 - for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectReviewFromSubmodule(projectModuleDO.getId()); - //封装VO类 - reviewData.addAll(reviewDOS); - } + //获取用户管理的项目下的审核数据 + reviewData.addAll(getAllReviewFromProject(userId)); //根据id进行去重 reviewData = reviewData.stream() @@ -413,50 +374,58 @@ public class ReviewServiceImpl implements ReviewService { public List getReviewsByResult( HttpServletRequest request, Short result) { - // 获取用户 Long userId = Processing.getAuthHeaderToUserId(request); //存储审核数据的数组 List reviewData = new ArrayList<>(); - //先获取用户为项目负责人的项目列表 - projectDAO.getProjectByPrincipalUser(userId); + //如果审核结果不为空,则根据审核结果进行审查 + if (result != null) { - //先从用户为 项目负责人 的项目中获取对应 审核信息 - for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectApprovedResultReviewFromProject(projectDO.getId(), - result); - //封装VO类 - reviewData.addAll(reviewDOS); - } + //先从用户为 项目负责人 的项目中获取对应 审核信息 + for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectApprovedResultReviewFromProject(projectDO.getId(), + result); + //封装VO类 + reviewData.addAll(reviewDOS); + } - //在从用户为 子系统负责人 的项目中获取对应 审核信息 - for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) { - //查询每个项目下状态为2的审核信息 - List reviewDOS = reviewDAO. - selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(), - result); - //封装VO类 - reviewData.addAll(reviewDOS); - } + //在从用户为 子系统负责人 的项目中获取对应 审核信息 + for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) { + //查询每个项目下状态为2的审核信息 + List reviewDOS = reviewDAO. + selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(), + result); + //封装VO类 + reviewData.addAll(reviewDOS); + } - //在从用户为 子模块负责人 的项目中获取对应 审核信息 - for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { - //查询每个项目下所有的审核信息 - List reviewDOS = reviewDAO. - selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(), - result); - //封装VO类 - reviewData.addAll(reviewDOS); - } + //在从用户为 子模块负责人 的项目中获取对应 审核信息 + for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(), + result); + //封装VO类 + reviewData.addAll(reviewDOS); + } // 获取自己的审核记录 - List myReviewDO = reviewDAO.getReviewByUser(userId); - reviewData.addAll(myReviewDO); + List myReviewDO = reviewDAO.getReviewByUserAndResult(userId, result); + reviewData.addAll(myReviewDO); + } + +// 如果审核结果为空,获取全部 + if (result == null) { + //获取用户管理项目下的所有审核数据 + reviewData.addAll(getAllReviewFromProject(userId)); + //获取用户自己的所有审核数据 + reviewData.addAll(reviewDAO.getReviewByUser(userId)); + } //根据id进行去重 reviewData = reviewData.stream() @@ -465,7 +434,6 @@ public class ReviewServiceImpl implements ReviewService { .stream() .collect(Collectors.toList()); - //按照申请时间降序排序 Collections.sort(reviewData, new Comparator() { @Override @@ -478,6 +446,13 @@ public class ReviewServiceImpl implements ReviewService { } + /** + * @Description: 审核数据分页处理 + * @Date: 2024/4/19 + * @Param allReviews: 审核数据 + * @Param page: 当前页码 + * @Param pageSize: 每页大小 + **/ public ReviewDataVO getReviewsByPage(List allReviews, int page, int pageSize) { ReviewDataVO reviewDataVO = new ReviewDataVO(); int total = allReviews.size(); @@ -496,6 +471,48 @@ public class ReviewServiceImpl implements ReviewService { } + + /** + * @Description: 获取用户管理项目下的所有审核数据 + * @Date: 2024/4/19 + * @Param userId: + **/ + public List getAllReviewFromProject(Long userId) { + + List reviewData = new ArrayList<>(); + + //先从用户为 项目负责人 的项目中获取对应 审核信息 + for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectAllReviewFromProject(projectDO.getId()); + //封装VO类 + reviewData.addAll(reviewDOS); + } + + //在从用户为 子系统负责人 的项目中获取对应 审核信息 + for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectReviewFromSubsystem(projectChildDO.getId()); + //封装VO类 + reviewData.addAll(reviewDOS); + } + + + //在从用户为 子模块负责人 的项目中获取对应 审核信息 + for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) { + //查询每个项目下所有的审核信息 + List reviewDOS = reviewDAO. + selectReviewFromSubmodule(projectModuleDO.getId()); + //封装VO类 + reviewData.addAll(reviewDOS); + } + + return reviewData; + } + + }