修正分页与查询接口
This commit is contained in:
parent
8ab59b5a1d
commit
36bbaf0995
|
@ -92,6 +92,15 @@ public class ReviewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/review/search")
|
||||||
|
public BaseResponse searchReview(String content,
|
||||||
|
Short statue,
|
||||||
|
HttpServletRequest request,
|
||||||
|
@RequestParam Integer page,
|
||||||
|
@RequestParam Integer pageSize) {
|
||||||
|
log.info("请求接口[GET]: /review/search");
|
||||||
|
return reviewService.searchReview(content, statue, request, page, pageSize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ public class ReviewDataVO {
|
||||||
|
|
||||||
private Integer dataTotal;
|
private Integer dataTotal;
|
||||||
|
|
||||||
private List<ReviewVO> data;
|
private List<ReviewVO> reviews;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,4 +16,6 @@ public interface ReviewService {
|
||||||
BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request);
|
BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request);
|
||||||
|
|
||||||
BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request);
|
BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request);
|
||||||
|
|
||||||
|
BaseResponse searchReview(String content, Short statue, HttpServletRequest request, Integer page, Integer pageSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.jsl.oa.services.impl;
|
package com.jsl.oa.services.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.jsl.oa.common.constant.ReviewConstants;
|
import com.jsl.oa.common.constant.ReviewConstants;
|
||||||
import com.jsl.oa.dao.ProjectDAO;
|
import com.jsl.oa.dao.ProjectDAO;
|
||||||
import com.jsl.oa.dao.ReviewDAO;
|
import com.jsl.oa.dao.ReviewDAO;
|
||||||
|
@ -12,6 +14,7 @@ import com.jsl.oa.model.dodata.ProjectDO;
|
||||||
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
import com.jsl.oa.model.dodata.ProjectModuleDO;
|
||||||
import com.jsl.oa.model.dodata.ReviewDO;
|
import com.jsl.oa.model.dodata.ReviewDO;
|
||||||
import com.jsl.oa.model.vodata.ReviewAddVO;
|
import com.jsl.oa.model.vodata.ReviewAddVO;
|
||||||
|
import com.jsl.oa.model.vodata.ReviewDataVO;
|
||||||
import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
|
import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
|
||||||
import com.jsl.oa.model.vodata.ReviewVO;
|
import com.jsl.oa.model.vodata.ReviewVO;
|
||||||
import com.jsl.oa.services.ReviewService;
|
import com.jsl.oa.services.ReviewService;
|
||||||
|
@ -107,7 +110,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
//封装对应VO类
|
//封装对应VO类
|
||||||
List<ReviewVO> result = encapsulateArrayClass(reviewData);
|
List<ReviewVO> result = encapsulateArrayClass(reviewData);
|
||||||
|
|
||||||
return ResultUtil.success(result);
|
//封装结果类与数据总数
|
||||||
|
int total = result.size();
|
||||||
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
|
reviewDataVO.setReviews(result);
|
||||||
|
reviewDataVO.setDataTotal(total);
|
||||||
|
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -172,7 +181,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
//封装对应VO类
|
//封装对应VO类
|
||||||
List<ReviewVO> result = encapsulateArrayClass(reviewData);
|
List<ReviewVO> result = encapsulateArrayClass(reviewData);
|
||||||
|
|
||||||
return ResultUtil.success(result);
|
//封装结果类与数据总数
|
||||||
|
int total = result.size();
|
||||||
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
|
reviewDataVO.setReviews(result);
|
||||||
|
reviewDataVO.setDataTotal(total);
|
||||||
|
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,6 +244,116 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse searchReview(String content,
|
||||||
|
Short statue,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Integer page, Integer pageSize) {
|
||||||
|
|
||||||
|
List<ReviewVO> reviewVOS = new ArrayList<>();
|
||||||
|
|
||||||
|
// 根据判断结果筛选
|
||||||
|
if (statue == null || statue.equals("")) {
|
||||||
|
List<ReviewVO> reviewVOs = getReview(request);
|
||||||
|
reviewVOS.addAll(reviewVOs);
|
||||||
|
} else {
|
||||||
|
List<ReviewVO> reviewVOs = getReviewsByResult(request, statue);
|
||||||
|
reviewVOS.addAll(reviewVOs);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据内容筛选
|
||||||
|
if (content == null || content.equals("")) {
|
||||||
|
// 使用PageHelper进行分页
|
||||||
|
PageHelper.startPage(page, pageSize);
|
||||||
|
PageInfo<ReviewVO> pageInfo1 = new PageInfo<>(reviewVOS);
|
||||||
|
int total = reviewVOS.size();
|
||||||
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
|
reviewDataVO.setReviews(pageInfo1.getList());
|
||||||
|
reviewDataVO.setDataTotal(total);
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
|
} else {
|
||||||
|
reviewVOS = reviewVOS.stream()
|
||||||
|
.filter(reviewVO -> reviewVO.getName().contains(content) || reviewVO.getContent().contains(content))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用PageHelper进行分页
|
||||||
|
PageHelper.startPage(page, pageSize);
|
||||||
|
PageInfo<ReviewVO> pageInfo = new PageInfo<>(reviewVOS);
|
||||||
|
|
||||||
|
|
||||||
|
//封装结果类与数据总数
|
||||||
|
int total = (int) pageInfo.getTotal();
|
||||||
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
|
reviewDataVO.setReviews(pageInfo.getList());
|
||||||
|
reviewDataVO.setDataTotal(total);
|
||||||
|
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private List<ReviewVO> getReview(HttpServletRequest request) {
|
||||||
|
//获取用户
|
||||||
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
|
|
||||||
|
//存储审核数据的数组
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据id进行去重
|
||||||
|
reviewData = reviewData.stream()
|
||||||
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
|
.values()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
//按照申请时间降序排序
|
||||||
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
|
@Override
|
||||||
|
public int compare(ReviewDO review1, ReviewDO review2) {
|
||||||
|
return review2.getApplicationTime().compareTo(review1.getApplicationTime());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//封装对应VO类
|
||||||
|
List<ReviewVO> result = encapsulateArrayClass(reviewData);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 封装审核的VO类
|
* @Description: 封装审核的VO类
|
||||||
* @Date: 2024/4/11
|
* @Date: 2024/4/11
|
||||||
|
@ -267,6 +392,70 @@ 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);
|
||||||
|
|
||||||
|
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectApprovedResultReviewFromProject(projectDO.getId(),
|
||||||
|
result);
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
||||||
|
//查询每个项目下状态为2的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectApprovedResultReviewsFromSubsystem(projectChildDO.getId(),
|
||||||
|
result);
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectApprovedResultReviewsFromSubModule(projectModuleDO.getId(),
|
||||||
|
result);
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//根据id进行去重
|
||||||
|
reviewData = reviewData.stream()
|
||||||
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
|
.values()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
//按照申请时间降序排序
|
||||||
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
|
@Override
|
||||||
|
public int compare(ReviewDO review1, ReviewDO review2) {
|
||||||
|
return review2.getApplicationTime().compareTo(review1.getApplicationTime());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return encapsulateArrayClass(reviewData);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user