patch:审核模块

审核模块代码部分解耦,增加可读性
This commit is contained in:
xiangZr-hhh 2024-04-19 14:21:48 +08:00
parent cada75e210
commit 037b36bf3f
3 changed files with 123 additions and 98 deletions

View File

@ -62,6 +62,10 @@ public class ReviewDAO {
return reviewMapper.selectReviewByUser(uid);
}
public List<ReviewDO> getReviewByUserAndResult(Long uid, Short result) {
return reviewMapper.selectReviewByUserAndResult(uid, result);
}
public void addReview(ReviewDO reviewDO) {

View File

@ -47,4 +47,8 @@ public interface ReviewMapper {
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
+ "is_delete = 0")
List<ReviewDO> selectReviewByUser(Long uid);
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
+ "is_delete = 0 AND review_result = #{result}")
List<ReviewDO> selectReviewByUserAndResult(Long uid, Short result);
}

View File

@ -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<ReviewDO>() {
@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<ReviewDO> reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
//先获取用户管理下的所有审核信息
reviewData.addAll(getAllReviewFromProject(userId));
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubsystem(projectChildDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubmodule(projectModuleDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
// 获取自己的审核记录
//获取自己的审核记录
List<ReviewDO> 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<ReviewVO> reviewVOS = getReviewsByResult(request, statue);
// 根据内容筛选
if (content == null || content.equals("")) {
//封装结果类与数据总数
@ -318,36 +307,8 @@ public class ReviewServiceImpl implements ReviewService {
//存储审核数据的数组
List<ReviewDO> reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubsystem(projectChildDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubmodule(projectModuleDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//获取用户管理的项目下的审核数据
reviewData.addAll(getAllReviewFromProject(userId));
//根据id进行去重
reviewData = reviewData.stream()
@ -413,15 +374,14 @@ public class ReviewServiceImpl implements ReviewService {
public List<ReviewVO> getReviewsByResult(
HttpServletRequest request,
Short result) {
// 获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
//存储审核数据的数组
List<ReviewDO> reviewData = new ArrayList<>();
//先获取用户为项目负责人的项目列表
projectDAO.getProjectByPrincipalUser(userId);
//如果审核结果不为空则根据审核结果进行审查
if (result != null) {
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
@ -455,8 +415,17 @@ public class ReviewServiceImpl implements ReviewService {
}
// 获取自己的审核记录
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
List<ReviewDO> 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<ReviewDO>() {
@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<ReviewVO> 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<ReviewDO> getAllReviewFromProject(Long userId) {
List<ReviewDO> reviewData = new ArrayList<>();
//先从用户为 项目负责人 的项目中获取对应 审核信息
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectAllReviewFromProject(projectDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子系统负责人 的项目中获取对应 审核信息
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubsystem(projectChildDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
//在从用户为 子模块负责人 的项目中获取对应 审核信息
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
//查询每个项目下所有的审核信息
List<ReviewDO> reviewDOS = reviewDAO.
selectReviewFromSubmodule(projectModuleDO.getId());
//封装VO类
reviewData.addAll(reviewDOS);
}
return reviewData;
}
}