以每两个小时为一个时间段的一次统计

大概思路
前端传过来的搜索日期为 yyyy-MM-dd 的形式,我们后台为这个日期拼接上小时,每两个小时为一个时间段。直接到数据库做时间条件查询,这样得到的数据就是两个两个小时的数据
具体代码如下:

  List<HashMap<String, Long>> result = new ArrayList<>();
        String[] hoursArray = {"00", "02", "04", "06", "08", "10", "12", "14", "16", "18", "20", "22", "00"};
        List<String> hours = Arrays.asList(hoursArray);

        if (status == 0) {
            // 按小时统计商品页分享次数(每两个小时一个阶段)
            List<HashMap<String, String>> shareHour = new ArrayList<>();
            if (startTime == null || ("").equals(startTime) || endTime == null || ("").equals(endTime)) {
                Date date = new Date();
                String format = DateUtil.format(date, "yyyy-MM-dd");
                for (int i = 1; i < hours.size(); i++) {
                    HashMap<String, String> mm = new HashMap<>();
                    startTime = format + " " + hours.get(i - 1);
                    endTime = format + " " + hours.get(i);
                    Integer num = productManagerMapper.productShareHour(startTime, endTime);
                    if (num == null) {
                        mm.put("num", "0");
                        mm.put("hour",format + " "+ hours.get(i - 1) + "-" + hours.get(i));
                        shareHour.add(mm);
                    } else {
                        mm.put("num", num + "");
                        mm.put("hour",format + " "+ hours.get(i - 1) + "-" + hours.get(i));
                        shareHour.add(mm);
                    }
                }
                return new ResponseResult(ResponseMessage.OK, shareHour);

            } else {
                for (int i = 1; i < hours.size(); i++) {
                    HashMap<String, String> mm = new HashMap<>();
                    String start = startTime + " " + hours.get(i - 1);
                    String end = endTime + " " + hours.get(i);
                    Integer num = productManagerMapper.productShareHour(start, end);
                    if (num == null) {
                        mm.put("num", "0");
                        mm.put("hour", startTime + " " + hours.get(i - 1) + "-" + hours.get(i));
                        shareHour.add(mm);
                    } else {
                        mm.put("num", num + "");
                        mm.put("hour", startTime + " " +hours.get(i - 1) + "-" + hours.get(i));
                        shareHour.add(mm);
                    }
                } 
                return new ResponseResult(ResponseMessage.OK, shareHour);
            }

        }

postMan访问效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值