苍穹外卖day11

一、Apache ECharts

1. 介绍

pache ECharts是一款基于js的数据可视化图表库https://echarts.apache.org/zh/index.html

使用ECharts,重点在于研究当前图表所需的数据格式,后端提供符合格式要求的动态数据,响应给前端展示图表。

二、营业额统计

1. 需求分析和设计

GET请求

请求参数query:开始日期,结束日期

返回数据(字符串,逗号分割):日期列表,营业额列表

2. 代码开发

controller:接收时间参数

@DateTimeFormat(pattern="yyyy-MM-dd")localDate begin

service:

(1)按开始时间和结束时间把所有日期添加到列表,再把列表转换成逗号分隔的字符串

日期相关:while(!begin.equals(end){list.add(begin.plusDays(1);}

列表转字符串:StringUtils.join(list,",");

(2)根据每天的开始时间和结束时间查询营业额总数

开始/结束时间:LocalDateTime time=LocalDateTime.of(date,LocalTime.MIN/MAX);

(3)若当天没有订单返回的是空,将空转换成0

mapper:大于>小于<

三、用户统计

1. 需求开发和设计

GET请求

请求参数query:开始日期,结束日期

返回数据:日期列表,新增用户列表,总用户量列表

2. 代码开发

controller:接收日期(同上)

service:同上(日期列表,总用户量列表,新增用户列表)

mapper:根据开始时间和结束时间判断用户量(新增有开始有结束,总有结束没开始)

四、订单统计

1. 需求分析和设计

GET请求

请求参数:开始日期,结束日期

返回数据:日期列表,订单完成率,订单数列表,订单总数,有效订单数,有效订单数列表

2. 代码开发

list内int数据求和:list.stream().reduce(Integer::sum).get()

五、销量排名

1. 需求分析和设计

GET请求

请求参数:开始日期,结束日期

返回数据:商品名称列表,销量列表

2. 代码开发

获取List<DTO>内name属性构成的列表:

List<String> name=list.stream().map(DTO::getName).collect(Collectors.toList());

相关推荐
qq_589568103 小时前
springbootweb案例,出现访问 http://localhost:8080/list 一直处于浏览器运转阶段
java·网络协议·http·list·springboot
JAVA面经实录9174 小时前
计算机基础(完整版·超详细可背诵)
java·linux·数据结构·算法
晚风_END4 小时前
Linux|操作系统|最新版openzfs编译记录
linux·运维·服务器·数据库·spring·中间件·个人开发
AC赳赳老秦4 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
小码哥_常4 小时前
告别MySQL!大厂集体转投PostgreSQL,到底藏着什么玄机?
后端
FYKJ_20105 小时前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
书源丶5 小时前
三十六、File 类与 IO 流基础——文件操作的「第一步」
java
刀法如飞5 小时前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式