数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10

Apache Echarts

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第1张图片

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第2张图片

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第3张图片

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第4张图片

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第5张图片

营业额统计

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第6张图片

重点:已完成订单金额要排除其他状态的金额   根据时间选择区间

数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10_第7张图片

设计vo用于后端向前端传输数据,dto用于后端接收前端发送的数据

 @GetMapping("/turnoverStatistics")
    @ApiOperation("营业额统计")
    public Result turnoverStatistics(
            @DateTimeFormat(pattern = "yyyy-MM-dd")  LocalDate begin,
            @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){
        log.info("营业额数据统计:{},{}",begin,end);
        return Result.success(reportService.getTurnoverStatistics(begin,end));
    }


 public TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end) {
        //当前集合用于存放从begin到end范围内的每天的日期
        List dateList = new ArrayList<>();

        dateList.add(begin);

        while (!begin.equals(end)) {
            //日期计算,计算指定日期的后一天对应的日期
            //把每天的东西一个一个放进去
            begin = begin.plusDays(1);
            dateList.add(begin);
        }

        //存放每天的营业额
        List turnoverList = new ArrayList<>();
        for (LocalDate date : dateList) {
            //查询date日期对应的营业额数据,营业额是指:状态为“已完成”的订单金额合计
            LocalDateTime beginTime = LocalDateTime.of(date, LocalTime.MIN);
            LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MAX);

            // select sum(amount) from orders where order_time > beginTime and order_time < endTime and status = 5
            Map map = new HashMap();
            map.put("begin", beginTime);
            map.put("end", endTime);
            map.put("status", Orders.COMPLETED);
            Double turnover = orderMapper.sumByMap(map);
            turnover = turnover == null ? 0.0 : turnover;
            turnoverList.add(turnover);
        }

        //封装返回结果
        return TurnoverReportVO
                .builder()
                .dateList(StringUtils.join(dateList, ","))//使用字符串拼接工具
                //将几个不同的时间字符串用逗号分隔开,组合成一个字符串
                .turnoverList(StringUtils.join(turnoverList, ","))
                .build();
    }

 

你可能感兴趣的:(苍穹外卖专栏,状态模式,spring,java,spring,boot,后端)