use of com.baomidou.mybatisplus.core.metadata.IPage in project HOJ by HimitZH.
the class GroupDiscussionManager method getDiscussionList.
public IPage<Discussion> getDiscussionList(Integer limit, Integer currentPage, Long gid, String pid) throws StatusNotFoundException, StatusForbiddenException {
Session session = SecurityUtils.getSubject().getSession();
UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo");
boolean isRoot = SecurityUtils.getSubject().hasRole("root");
Group group = groupEntityService.getById(gid);
if (group == null || group.getStatus() == 1 && !isRoot) {
throw new StatusNotFoundException("该团队不存在或已被封禁!");
}
if (!groupValidator.isGroupMember(userRolesVo.getUid(), gid) && !isRoot) {
throw new StatusForbiddenException("对不起,您无权限操作!");
}
QueryWrapper<Discussion> discussionQueryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(pid)) {
discussionQueryWrapper.eq("pid", pid);
}
IPage<Discussion> iPage = new Page<>(currentPage, limit);
discussionQueryWrapper.eq("status", 0).eq("gid", gid).orderByDesc("top_priority").orderByDesc("gmt_create").orderByDesc("like_num").orderByDesc("view_num");
return discussionEntityService.page(iPage, discussionQueryWrapper);
}
use of com.baomidou.mybatisplus.core.metadata.IPage in project HOJ by HimitZH.
the class AdminContestProblemManager method getProblemList.
public HashMap<String, Object> getProblemList(Integer limit, Integer currentPage, String keyword, Long cid, Integer problemType, String oj) {
if (currentPage == null || currentPage < 1)
currentPage = 1;
if (limit == null || limit < 1)
limit = 10;
IPage<Problem> iPage = new Page<>(currentPage, limit);
// 根据cid在ContestProblem表中查询到对应pid集合
QueryWrapper<ContestProblem> contestProblemQueryWrapper = new QueryWrapper<>();
contestProblemQueryWrapper.eq("cid", cid);
List<Long> pidList = new LinkedList<>();
List<ContestProblem> contestProblemList = contestProblemEntityService.list(contestProblemQueryWrapper);
HashMap<Long, ContestProblem> contestProblemMap = new HashMap<>();
contestProblemList.forEach(contestProblem -> {
contestProblemMap.put(contestProblem.getPid(), contestProblem);
pidList.add(contestProblem.getPid());
});
HashMap<String, Object> contestProblem = new HashMap<>();
QueryWrapper<Problem> problemQueryWrapper = new QueryWrapper<>();
if (problemType != null) {
// 必备条件 隐藏的不可取来做比赛题目
problemQueryWrapper.eq("is_group", false).and(wrapper -> wrapper.eq("type", problemType).or().eq("is_remote", true)).ne("auth", // 同时需要与比赛相同类型的题目,权限需要是公开的(隐藏的不可加入!)
2);
Contest contest = contestEntityService.getById(cid);
if (contest.getGid() != null) {
// 团队比赛不能查看公共题库的隐藏题目
problemQueryWrapper.ne("auth", 3);
}
}
// 逻辑判断,如果是查询已有的就应该是in,如果是查询不要重复的,使用not in
if (problemType != null) {
problemQueryWrapper.notIn(pidList.size() > 0, "id", pidList);
} else {
problemQueryWrapper.in(pidList.size() > 0, "id", pidList);
}
// 根据oj筛选过滤
if (oj != null && !"All".equals(oj)) {
if (!Constants.RemoteOJ.isRemoteOJ(oj)) {
problemQueryWrapper.eq("is_remote", false);
} else {
problemQueryWrapper.eq("is_remote", true).likeRight("problem_id", oj);
}
}
if (!StringUtils.isEmpty(keyword)) {
problemQueryWrapper.and(wrapper -> wrapper.like("title", keyword).or().like("problem_id", keyword).or().like("author", keyword));
}
if (pidList.size() == 0 && problemType == null) {
problemQueryWrapper = new QueryWrapper<>();
problemQueryWrapper.eq("id", null);
}
IPage<Problem> problemListPage = problemEntityService.page(iPage, problemQueryWrapper);
if (pidList.size() > 0 && problemType == null) {
List<Problem> problemList = problemListPage.getRecords();
List<Problem> sortedProblemList = problemList.stream().sorted(Comparator.comparing(Problem::getId, (a, b) -> {
ContestProblem x = contestProblemMap.get(a);
ContestProblem y = contestProblemMap.get(b);
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null) {
return -1;
} else {
return x.getDisplayId().compareTo(y.getDisplayId());
}
})).collect(Collectors.toList());
problemListPage.setRecords(sortedProblemList);
}
contestProblem.put("problemList", problemListPage);
contestProblem.put("contestProblemMap", contestProblemMap);
return contestProblem;
}
use of com.baomidou.mybatisplus.core.metadata.IPage in project java-apply by javachengwc.
the class ResourceCategoryController method page.
@RequestMapping(value = "/page", method = RequestMethod.POST)
@ApiOperation(value = "分页查询接口目录", notes = "分页查询接口目录")
public Resp<com.util.page.Page<ResourceCategoryVo>> page(@RequestBody Req<PageQuery<ResourceCategoryVo>> req) {
PageQuery<ResourceCategoryVo> query = req.getData();
log.info("ResourceCategoryController page start,query={}", JsonUtil.obj2Json(query));
query.genStart();
ResourceCategory condition = TransUtil.transEntity(query.getEntity(), ResourceCategory.class);
Wrapper<ResourceCategory> wrapper = new QueryWrapper<ResourceCategory>(condition);
IPage<ResourceCategory> pageParam = new Page<ResourceCategory>(query.getStart(), query.getPageSize());
IPage<ResourceCategory> pageData = resourceCategoryService.page(pageParam, wrapper);
com.util.page.Page<ResourceCategoryVo> rtPage = new com.util.page.Page<ResourceCategoryVo>();
rtPage.setResult(TransUtil.transListWithJson(pageData.getRecords(), ResourceCategoryVo.class));
rtPage.setTotalCount(new Long(pageData.getTotal()).intValue());
return Resp.data(rtPage);
}
use of com.baomidou.mybatisplus.core.metadata.IPage in project personManage by WHUTdk.
the class PersonServiceImpl method getPersonByCondition.
/**
* 条件查询人员信息
*/
@Override
public PagedResponseVO<SelPersonRespVo> getPersonByCondition(SelPersonReqVo selPersonReqVO) {
Integer pageNo = selPersonReqVO.getPageNo();
Integer pageSize = selPersonReqVO.getPageSize();
// 分页参数
Page<PersonDo> page = new Page<>(pageNo, pageSize);
QueryWrapper<PersonDo> queryWrapper = setQueryCondition(selPersonReqVO);
IPage<PersonDo> iPage = personMapper.selectPage(page, queryWrapper);
// 属性赋值
ArrayList<SelPersonRespVo> personVos = new ArrayList<>();
List<PersonDo> personDos = iPage.getRecords();
for (PersonDo personDO : personDos) {
SelPersonRespVo personVO = copyPersonDOToPersonVO(personDO);
personVos.add(personVO);
}
PagedResponseVO<SelPersonRespVo> responseVO = new PagedResponseVO<>();
responseVO.setPageNo(pageNo);
responseVO.setPageSize(pageSize);
responseVO.setTotal(iPage.getTotal());
responseVO.setTotalPages(iPage.getPages());
responseVO.setList(personVos);
return responseVO;
}
use of com.baomidou.mybatisplus.core.metadata.IPage in project dynamic-threadpool by acmenlt.
the class TenantServiceImpl method queryTenantPage.
@Override
public IPage<TenantRespDTO> queryTenantPage(TenantQueryReqDTO reqDTO) {
LambdaQueryWrapper<TenantInfo> wrapper = Wrappers.lambdaQuery(TenantInfo.class).eq(!StringUtils.isEmpty(reqDTO.getTenantId()), TenantInfo::getTenantId, reqDTO.getTenantId()).eq(!StringUtils.isEmpty(reqDTO.getTenantName()), TenantInfo::getTenantName, reqDTO.getTenantName()).eq(!StringUtils.isEmpty(reqDTO.getOwner()), TenantInfo::getOwner, reqDTO.getOwner());
Page resultPage = tenantInfoMapper.selectPage(reqDTO, wrapper);
return resultPage.convert(each -> BeanUtil.convert(each, TenantRespDTO.class));
}
Aggregations