**需求:**在页面上展示本月订单数,本月消费金额,上个月订单数,上个月订单金额,上个月成交的订单数,上个月成交的订单金额,根据所选择的时间段,展示出时间段所有的总订单笔数,总付款后订单笔数,用折线图展示出每日的订单笔数和付款后订单笔数,用第二个折线图展示出订单金额和付款后的订单金额,用饼图展示出支付方式的百分比。
功能点一:
实现思路:
Mapper.xml中的sql 语句:
传入开始时间和结束时间,订单状态,返回一个Map根据订单状态来判断查询所需要的数据。
OrderServiceImpl实现:
根据时间工具类来得到当前月的第一天和最后一天的时间。先new一个空的map,调用OrderDao.orderCount()方法,将时间段和状态传入进去后,得到数据后,将装载数据的map2放入到map中。
platformOrderStatisticsController实现:
功能点二:
实现思路:
Mapper.xml中的sql语句:
传入开始时间和结束时间,订单状态 返回一个Map , 根据状态来判断查询所需要的数据。
OrderServiceImpl实现:
根据时间工具类来得到上个月一天和上个最后一天, 先得到一个空的map, 调用orderDao.orderCount()方法, 传入的订单状态来在sql语句中进行判断条件. 再将数据put到map中。
platformOrderStatisticsController实现:
页面orderStart.ftl实现:
功能点三:
要点分析:
图中需要的数据:
X轴:所选时间段的每天的日期。
所选时间段的总订单数。
所选时间段的总付款订单数。
每日的订单笔数。
付款后的订单笔数。
实现思路:
Mapper.xml中的sql语句:
传入处理过后的时间段和订单状态,根据sql日期函数,得到有订单的所有日期时间。和每天对用的订单数. 根据状态查找付款后订单数和付款后订单数对应的每日日期时间。
OrderServiceImpl实现:
遇到的问题: 从sql语句中查询出来的都是有订单的日期,要通过工具类: composing 把空缺的时间日期添加进去, 并把订单数设置为0; composing类实现原理是: new 一个新的对象,先预先设定订单数都为0, 日期是根据工具类DateUtils.findDates()方法,将时间段变成每日的日期时间, 再将每日的日期时间设置到新的对象里面去. 得到每日的订单数后, 再把每日订单数相加起来:
付款后订单数也是同理。
platformOrderStatisticsController实现:
点击时间段
查询时跳转到的controllor:
要重新将所有数据加载一遍。
页面OrderStart.ftl实现:
引入所有js:
加载日历控件:
折线图实现:
遍历后台传过来的数据:
用个数组接收:
再将对象放置到指定位置。
功能点四:
实现思路:
Mapper.xml中实现:
通过serviceImpl传入的状态来查询
OrderServiceImpl实现:
传入状态
platformOrderStatisticsController实现: