List<Map<String,Object>> 不写limit在 Controller里面分页

 @GetMapping("/show/warn1")
    @ResponseBody
    public PagingMz selectNewWarnEvery1(@RequestParam Integer page, @RequestParam Integer rows) {


        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        List<Chl_data_realtime> realtimes = chl_data_realtimeReadService.selectAll().getResult();
        if (realtimes == null || realtimes.size() == 0) {
            return new PagingMz();
        }
        Date date = realtimes.get(0).getTime();

        List<Long> ids = real_warnReadService.selectIdEvery().getResult();

        List<Real_warn> chls = real_warnReadService.selectNewWarnEvery(ids).getResult();

//        List<Real_warn> chls = real_warnReadService.selectNewWarnEvery1(date).getResult();

        if (chls == null || chls.size() == 0) {
            return new  PagingMz();
        }
        List<String> UUIDs = new ArrayList<>();
        for (Real_warn chl_data_warn : chls) {
            UUIDs.add(chl_data_warn.getUUID());
        }

        List<Long> factoryIds = deviceBindingReadService.selectFactoryIdsByUUIDs(UUIDs).getResult();
        List<BreedFactory> breedFactories = breedFactoryReadService.findByIds(factoryIds).getResult();
        List<Device> devices = deviceReadService.findByCodes(UUIDs).getResult();
        if (breedFactories == null || breedFactories.size() == 0) {
            return new PagingMz();
        }
        List<DeviceBinding> bindings = new ArrayList<>();
        bindings = deviceBindingReadService.selectByUUIDs(UUIDs).getResult();
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (Real_warn chl_data_warn : chls) {
            if (chl_data_warn.getStatus() == -1) {
                continue;
            }
            if (!UUIDs.contains(chl_data_warn.getUUID())) {
                continue;
            }
            Map<String, Object> map = new HashMap<>();
            map.put("id", chl_data_warn.getId());
            map.put("signals", chl_data_warn.getSignals());
            map.put("voltage", chl_data_warn.getVoltage());
            String r="";
            try{
                if (chl_data_warn.getValue().indexOf(",")>0){
                    r=chl_data_warn.getValue().split(",")[0];
                }else {
                    r=chl_data_warn.getValue();
                }
            }catch (Exception e){
                r="0";
            }
            map.put("value",r);
            map.put("time", sdf.format(chl_data_warn.getTime()));
            for (Device device : devices) {
                if (chl_data_warn.getStatus() == 1) {
                    map.put("status", 1);
                } else {
                    map.put("status", 2);
                }
                map.put("type", "液位仪");
                Map<String, Object> criteria = new HashMap<>();
                criteria.put("relation_id", device.getId());
                criteria.put("from", 1);
                criteria.put("type", 2);
                criteria.put("status", 1);

                if (chl_data_warn.getUUID().equals(device.getUUID())) {
                    map.put("devicename", device.getName());
                    map.put("deviceid", device.getId());
                    map.put("UUID", device.getUUID());
                    map.put("alertValueUp", device.getAlertValueUp());
                    map.put("alertValueDown", device.getAlertValueDown());
                    map.put("head", device.getHead());
                    map.put("phone", device.getPhone());
                    Float va = Float.parseFloat(r);
                    Float up = Float.parseFloat(device.getAlertValueUp());
                    Float down = Float.parseFloat(device.getAlertValueDown());

                    if (va > up) {
                        map.put("warnType", "上限告警");
                        if ((va - up) / up > 0.5) {
                            map.put("warnLevel", 1);
                        } else if ((va - up) / up > 0.3) {
                            map.put("warnLevel", 2);
                        } else {
                            map.put("warnLevel", 3);
                        }
                    } else if (va < down) {
                        map.put("warnType", "下限告警");
                        if ((down - va) / (down * -1) > 0.5) {
                            map.put("warnLevel", 1);
                        } else if ((down - va) / (down * -1) > 0.3) {
                            map.put("warnLevel", 2);
                        } else {
                            map.put("warnLevel", 3);
                        }
                    } else {
                        map.put("warnType", "正常");
                    }
                    break;
                }
            }
            for (BreedFactory breedFactory : breedFactories) {
                for (DeviceBinding binding : bindings) {
                    if (binding.getDevice_UUID().equals(chl_data_warn.getUUID()) && binding.getFactory_id() == breedFactory.getId()) {
                        map.put("factoryName", breedFactory.getName());
                        map.put("factoryId", breedFactory.getId());
                        map.put("address", breedFactory.getDetail());
                        map.put("latitude", breedFactory.getLatitude());
                        map.put("longitude", breedFactory.getLongitude());
                        break;
                    }
                }
            }
            resultList.add(map);
        }


        Long records = (long) resultList.size();
        Long total = (records - 1) / rows + 1;
        List list = new ArrayList();
        if ((page - 1) * rows < resultList.size()) {
            list = resultList.subList((page - 1) * rows, (page * rows) < resultList.size() ? page * rows : resultList.size());
        }
        return new PagingMz<>(total, records, page, list);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 IDEA 中,你可以使用 MyBatis 框架来实现订单表的分页查询。下面是具体的步骤: 1. 在 mapper.xml 文件中编写 SQL 语句,使用 limit 关键字实现分页查询。 示例: ```xml <select id="getOrderList" parameterType="map" resultType="order"> select * from order where user_id = #{userId} order by create_time desc limit #{start}, #{pageSize} </select> ``` 其中,#{start} 和 #{pageSize} 分别表示分页查询的起始位置和每页显示的数据条数。 2. 在 Dao 层中定义 getOrderList 方法,调用 mapper.xml 中编写的 SQL 语句。 示例: ```java public List<Order> getOrderList(int userId, int start, int pageSize) { Map<String, Object> params = new HashMap<>(); params.put("userId", userId); params.put("start", start); params.put("pageSize", pageSize); return sqlSession.selectList("com.example.mapper.OrderMapper.getOrderList", params); } ``` 其中,sqlSession 是 MyBatis 框架提供的一个操作数据库的接口,"com.example.mapper.OrderMapper.getOrderList" 是 mapper.xml 文件中定义的 SQL 语句的唯一标识符。 3. 在 Service 层中调用 getOrderList 方法,获取分页数据。 示例: ```java public PageResult<Order> getOrderList(int userId, int pageNum, int pageSize) { int start = (pageNum - 1) * pageSize; List<Order> orderList = orderDao.getOrderList(userId, start, pageSize); return new PageResult<>(orderList, pageNum, pageSize, getOrderCount(userId)); } ``` 其中,PageResult 是一个自定义的分页数据实体类,getOrderCount 方法返回满足条件的订单总数。 4. 在 Controller 层中调用 Service 层的 getOrderList 方法,将分页数据返回给前端页面。 示例: ```java @GetMapping("/order") public String getOrderList(Model model, @RequestParam(value = "userId", required = false) Integer userId, @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { PageResult<Order> pageResult = orderService.getOrderList(userId, pageNum, pageSize); model.addAttribute("pageResult", pageResult); return "order"; } ``` 其中,@RequestParam 注解用于获取前端页面传递过来的参数,Model 用于将分页数据传递给前端页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值