数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10
短信预约 -IT技能 免费直播动态提醒
Apache Echarts
营业额统计
重点:已完成订单金额要排除其他状态的金额 根据时间选择区间
设计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(); }
来源地址:https://blog.csdn.net/TheresaApocaly/article/details/133688514
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341