Search in sources :

Example 91 with IPage

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);
}
Also used : Group(top.hcode.hoj.pojo.entity.group.Group) StatusForbiddenException(top.hcode.hoj.common.exception.StatusForbiddenException) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) UserRolesVo(top.hcode.hoj.pojo.vo.UserRolesVo) StatusNotFoundException(top.hcode.hoj.common.exception.StatusNotFoundException) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) Discussion(top.hcode.hoj.pojo.entity.discussion.Discussion) Session(org.apache.shiro.session.Session)

Example 92 with IPage

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;
}
Also used : java.util(java.util) UpdateWrapper(com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper) Problem(top.hcode.hoj.pojo.entity.problem.Problem) ProblemEntityService(top.hcode.hoj.dao.problem.ProblemEntityService) MapUtil(cn.hutool.core.map.MapUtil) UserRolesVo(top.hcode.hoj.pojo.vo.UserRolesVo) Autowired(org.springframework.beans.factory.annotation.Autowired) Session(org.apache.shiro.session.Session) ContestProblemDto(top.hcode.hoj.pojo.dto.ContestProblemDto) Judge(top.hcode.hoj.pojo.entity.judge.Judge) ContestEntityService(top.hcode.hoj.dao.contest.ContestEntityService) ContestProblemEntityService(top.hcode.hoj.dao.contest.ContestProblemEntityService) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) JudgeEntityService(top.hcode.hoj.dao.judge.JudgeEntityService) Contest(top.hcode.hoj.pojo.entity.contest.Contest) ProblemDto(top.hcode.hoj.pojo.dto.ProblemDto) Collectors(java.util.stream.Collectors) ProblemStrategy(top.hcode.hoj.crawler.problem.ProblemStrategy) File(java.io.File) StatusFailException(top.hcode.hoj.common.exception.StatusFailException) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) Component(org.springframework.stereotype.Component) StatusForbiddenException(top.hcode.hoj.common.exception.StatusForbiddenException) ContestProblem(top.hcode.hoj.pojo.entity.contest.ContestProblem) FileUtil(cn.hutool.core.io.FileUtil) Constants(top.hcode.hoj.utils.Constants) IPage(com.baomidou.mybatisplus.core.metadata.IPage) SecurityUtils(org.apache.shiro.SecurityUtils) RemoteProblemManager(top.hcode.hoj.manager.admin.problem.RemoteProblemManager) Transactional(org.springframework.transaction.annotation.Transactional) StringUtils(org.springframework.util.StringUtils) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) Problem(top.hcode.hoj.pojo.entity.problem.Problem) ContestProblem(top.hcode.hoj.pojo.entity.contest.ContestProblem) Contest(top.hcode.hoj.pojo.entity.contest.Contest) ContestProblem(top.hcode.hoj.pojo.entity.contest.ContestProblem)

Example 93 with IPage

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);
}
Also used : ResourceCategoryVo(com.commonservice.invoke.model.vo.ResourceCategoryVo) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) ResourceCategory(com.commonservice.invoke.model.entity.ResourceCategory) ApiOperation(io.swagger.annotations.ApiOperation)

Example 94 with IPage

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;
}
Also used : PersonDo(com.dingkai.personManage.business.code.person.entity.PersonDo) SelPersonRespVo(com.dingkai.personManage.business.code.person.vo.resp.SelPersonRespVo) ArrayList(java.util.ArrayList) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) PagedResponseVO(com.dingkai.personManage.common.response.PagedResponseVO)

Example 95 with IPage

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));
}
Also used : TenantInfo(cn.hippo4j.config.model.TenantInfo) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) TenantRespDTO(cn.hippo4j.config.model.biz.tenant.TenantRespDTO)

Aggregations

IPage (com.baomidou.mybatisplus.core.metadata.IPage)197 Page (com.baomidou.mybatisplus.extension.plugins.pagination.Page)152 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)73 ApiOperation (io.swagger.annotations.ApiOperation)28 ArrayList (java.util.ArrayList)21 Test (org.junit.Test)20 PageDTO (com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO)19 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)18 LoginUser (org.jeecg.common.system.vo.LoginUser)16 JSONObject (com.alibaba.fastjson.JSONObject)15 RequiresPermissions (org.apache.shiro.authz.annotation.RequiresPermissions)15 PageInfo (org.apache.dolphinscheduler.api.utils.PageInfo)13 LambdaQueryWrapper (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper)11 Result (org.jeecg.common.api.vo.Result)10 List (java.util.List)9 User (org.apache.dolphinscheduler.dao.entity.User)9 Field (java.lang.reflect.Field)8 Date (java.util.Date)8 Collectors (java.util.stream.Collectors)7 UserRolesVo (top.hcode.hoj.pojo.vo.UserRolesVo)7