Search in sources :

Example 6 with Page

use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project jeecg-boot by jeecgboot.

the class JeecgController method exportXlsSheet.

/**
 * 根据每页sheet数量导出多sheet
 *
 * @param request
 * @param object 实体类
 * @param clazz 实体类class
 * @param title 标题
 * @param exportFields 导出字段自定义
 * @param pageNum 每个sheet的数据条数
 * @param request
 */
protected ModelAndView exportXlsSheet(HttpServletRequest request, T object, Class<T> clazz, String title, String exportFields, Integer pageNum) {
    // Step.1 组装查询条件
    QueryWrapper<T> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
    LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
    // Step.2 计算分页sheet数据
    double total = service.count();
    int count = (int) Math.ceil(total / pageNum);
    // Step.3 多sheet处理
    List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
    for (int i = 1; i <= count; i++) {
        Page<T> page = new Page<T>(i, pageNum);
        IPage<T> pageList = service.page(page, queryWrapper);
        List<T> records = pageList.getRecords();
        List<T> exportList = null;
        // 过滤选中数据
        String selections = request.getParameter("selections");
        if (oConvertUtils.isNotEmpty(selections)) {
            List<String> selectionList = Arrays.asList(selections.split(","));
            exportList = records.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList());
        } else {
            exportList = records;
        }
        Map<String, Object> map = new HashMap<String, Object>();
        ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title + i, upLoadPath);
        exportParams.setType(ExcelType.XSSF);
        // map.put("title",exportParams);//表格Title
        // 表格Title
        map.put(NormalExcelConstants.PARAMS, exportParams);
        // 表格对应实体
        map.put(NormalExcelConstants.CLASS, clazz);
        // 数据集合
        map.put(NormalExcelConstants.DATA_LIST, exportList);
        listMap.add(map);
    }
    // Step.4 AutoPoi 导出Excel
    ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
    // 此处设置的filename无效 ,前端会重更新设置一下
    mv.addObject(NormalExcelConstants.FILE_NAME, title);
    mv.addObject(NormalExcelConstants.MAP_LIST, listMap);
    return mv;
}
Also used : JeecgEntityExcelView(org.jeecgframework.poi.excel.view.JeecgEntityExcelView) ModelAndView(org.springframework.web.servlet.ModelAndView) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) LoginUser(org.jeecg.common.system.vo.LoginUser) ExportParams(org.jeecgframework.poi.excel.entity.ExportParams)

Example 7 with Page

use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project jeecg-boot by jeecgboot.

the class SysUserController method departUserList.

/**
 * 部门用户列表
 */
@RequestMapping(value = "/departUserList", method = RequestMethod.GET)
public Result<IPage<SysUser>> departUserList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
    Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
    Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
    String depId = req.getParameter("depId");
    String username = req.getParameter("username");
    // 根据部门ID查询,当前和下级所有的部门IDS
    List<String> subDepids = new ArrayList<>();
    // 部门id为空时,查询我的部门下所有用户
    if (oConvertUtils.isEmpty(depId)) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        int userIdentity = user.getUserIdentity() != null ? user.getUserIdentity() : CommonConstant.USER_IDENTITY_1;
        if (oConvertUtils.isNotEmpty(userIdentity) && userIdentity == CommonConstant.USER_IDENTITY_2) {
            subDepids = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds());
        }
    } else {
        subDepids = sysDepartService.getSubDepIdsByDepId(depId);
    }
    if (subDepids != null && subDepids.size() > 0) {
        IPage<SysUser> pageList = sysUserService.getUserByDepIds(page, subDepids, username);
        // 批量查询用户的所属部门
        // step.1 先拿到全部的 useids
        // step.2 通过 useids,一次性查询用户的所属部门名字
        List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
        if (userIds != null && userIds.size() > 0) {
            Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
            pageList.getRecords().forEach(item -> {
                // 批量查询用户的所属部门
                item.setOrgCode(useDepNames.get(item.getId()));
            });
        }
        result.setSuccess(true);
        result.setResult(pageList);
    } else {
        result.setSuccess(true);
        result.setResult(null);
    }
    return result;
}
Also used : Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) LoginUser(org.jeecg.common.system.vo.LoginUser) Result(org.jeecg.common.api.vo.Result) IPage(com.baomidou.mybatisplus.core.metadata.IPage)

Example 8 with Page

use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project jeecg-boot by jeecgboot.

the class SysUserOnlineController method list.

@RequestMapping(value = "/list", method = RequestMethod.GET)
public Result<Page<SysUserOnlineVO>> list(@RequestParam(name = "username", required = false) String username, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
    Collection<String> keys = redisTemplate.keys(CommonConstant.PREFIX_USER_TOKEN + "*");
    List<SysUserOnlineVO> onlineList = new ArrayList<SysUserOnlineVO>();
    for (String key : keys) {
        String token = (String) redisUtil.get(key);
        if (StringUtils.isNotEmpty(token)) {
            SysUserOnlineVO online = new SysUserOnlineVO();
            online.setToken(token);
            // TODO 改成一次性查询
            LoginUser loginUser = sysBaseAPI.getUserByName(JwtUtil.getUsername(token));
            if (loginUser != null) {
                // update-begin---author:wangshuai ---date:20220104  for:[JTC-382]在线用户查询无效------------
                // 验证用户名是否与传过来的用户名相同
                boolean isMatchUsername = true;
                // 判断用户名是否为空,并且当前循环的用户不包含传过来的用户名,那么就设成false
                if (oConvertUtils.isNotEmpty(username) && !loginUser.getUsername().contains(username)) {
                    isMatchUsername = false;
                }
                if (isMatchUsername) {
                    BeanUtils.copyProperties(loginUser, online);
                    onlineList.add(online);
                }
            // update-end---author:wangshuai ---date:20220104  for:[JTC-382]在线用户查询无效------------
            }
        }
    }
    Collections.reverse(onlineList);
    Page<SysUserOnlineVO> page = new Page<SysUserOnlineVO>(pageNo, pageSize);
    int count = onlineList.size();
    List<SysUserOnlineVO> pages = new ArrayList<>();
    // 计算当前页第一条数据的下标
    int currId = pageNo > 1 ? (pageNo - 1) * pageSize : 0;
    for (int i = 0; i < pageSize && i < count - currId; i++) {
        pages.add(onlineList.get(currId + i));
    }
    page.setSize(pageSize);
    page.setCurrent(pageNo);
    page.setTotal(count);
    // 计算分页总页数
    page.setPages(count % 10 == 0 ? count / 10 : count / 10 + 1);
    page.setRecords(pages);
    Result<Page<SysUserOnlineVO>> result = new Result<Page<SysUserOnlineVO>>();
    result.setSuccess(true);
    result.setResult(page);
    return result;
}
Also used : ArrayList(java.util.ArrayList) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) SysUserOnlineVO(org.jeecg.modules.system.vo.SysUserOnlineVO) LoginUser(org.jeecg.common.system.vo.LoginUser) Result(org.jeecg.common.api.vo.Result)

Example 9 with Page

use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project jeecg-boot by jeecgboot.

the class SysDepartRoleController method queryPageList.

/**
 * 分页列表查询
 *
 * @param sysDepartRole
 * @param pageNo
 * @param pageSize
 * @param req
 * @return
 */
@ApiOperation(value = "部门角色-分页列表查询", notes = "部门角色-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(SysDepartRole sysDepartRole, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "deptId", required = false) String deptId, HttpServletRequest req) {
    QueryWrapper<SysDepartRole> queryWrapper = QueryGenerator.initQueryWrapper(sysDepartRole, req.getParameterMap());
    Page<SysDepartRole> page = new Page<SysDepartRole>(pageNo, pageSize);
    LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
    List<String> deptIds = null;
    // if(oConvertUtils.isEmpty(deptId)){
    // if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals(CommonConstant.USER_IDENTITY_2) ){
    // deptIds = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds());
    // }else{
    // return Result.ok(null);
    // }
    // }else{
    // deptIds = sysDepartService.getSubDepIdsByDepId(deptId);
    // }
    // queryWrapper.in("depart_id",deptIds);
    // 我的部门,选中部门只能看当前部门下的角色
    queryWrapper.eq("depart_id", deptId);
    IPage<SysDepartRole> pageList = sysDepartRoleService.page(page, queryWrapper);
    return Result.ok(pageList);
}
Also used : Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) LoginUser(org.jeecg.common.system.vo.LoginUser) ApiOperation(io.swagger.annotations.ApiOperation)

Example 10 with Page

use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project jeecg-boot by jeecgboot.

the class SysBaseApiImpl method queryAllUser.

@Override
public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) {
    JSONObject json = new JSONObject();
    QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0);
    List<ComboModel> list = new ArrayList<ComboModel>();
    Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
    IPage<SysUser> pageList = userMapper.selectPage(page, queryWrapper);
    for (SysUser user : pageList.getRecords()) {
        ComboModel model = new ComboModel();
        model.setUsername(user.getUsername());
        model.setTitle(user.getRealname());
        model.setId(user.getId());
        model.setEmail(user.getEmail());
        if (oConvertUtils.isNotEmpty(userIds)) {
            String[] temp = userIds.split(",");
            for (int i = 0; i < temp.length; i++) {
                if (temp[i].equals(user.getId())) {
                    model.setChecked(true);
                }
            }
        }
        list.add(model);
    }
    json.put("list", list);
    json.put("total", pageList.getTotal());
    return json;
}
Also used : LambdaQueryWrapper(com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) IPage(com.baomidou.mybatisplus.core.metadata.IPage) JSONObject(com.alibaba.fastjson.JSONObject)

Aggregations

Page (com.baomidou.mybatisplus.extension.plugins.pagination.Page)239 IPage (com.baomidou.mybatisplus.core.metadata.IPage)171 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)62 ApiOperation (io.swagger.annotations.ApiOperation)38 ArrayList (java.util.ArrayList)29 LoginUser (org.jeecg.common.system.vo.LoginUser)26 Test (org.junit.Test)24 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)22 RequiresPermissions (org.apache.shiro.authz.annotation.RequiresPermissions)19 LambdaQueryWrapper (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper)17 JSONObject (com.alibaba.fastjson.JSONObject)15 PageInfo (org.apache.dolphinscheduler.api.utils.PageInfo)13 Result (org.jeecg.common.api.vo.Result)12 User (org.apache.dolphinscheduler.dao.entity.User)11 OrderItem (com.baomidou.mybatisplus.core.metadata.OrderItem)9 java.util (java.util)9 HashMap (java.util.HashMap)9 Project (org.apache.dolphinscheduler.dao.entity.Project)9 Service (org.springframework.stereotype.Service)9 IOException (java.io.IOException)8