feat(新增-商品管理): 订单数据统计

Signed-off-by: bunny <1319900154@qq.com>
This commit is contained in:
bunny 2024-03-26 16:35:28 +08:00
parent e0115dbf30
commit 8f3ff6e9a3
6 changed files with 93 additions and 2 deletions

View File

@ -0,0 +1,16 @@
package com.atguigu.spzx.manger.mapper;
import com.atguigu.spzx.model.entity.order.OrderStatistics;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OrderInfoMapper {
/**
* 查询指定日期产生的订单数据
*
* @param createTime 创建时间
* @return OrderStatistics
*/
OrderStatistics selectOrderStatistics(String createTime);
}

View File

@ -0,0 +1,14 @@
package com.atguigu.spzx.manger.mapper;
import com.atguigu.spzx.model.entity.order.OrderStatistics;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OrderStatisticsMapper {
/**
* 插入
*
* @param orderStatistics 订单
*/
void insert(OrderStatistics orderStatistics);
}

View File

@ -0,0 +1,32 @@
package com.atguigu.spzx.manger.task;
import cn.hutool.core.date.DateUtil;
import com.atguigu.spzx.manger.mapper.OrderInfoMapper;
import com.atguigu.spzx.manger.mapper.OrderStatisticsMapper;
import com.atguigu.spzx.model.entity.order.OrderStatistics;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
@Slf4j
public class OrderStatisticsTask {
@Autowired
private OrderInfoMapper orderInfoMapper;
@Autowired
private OrderStatisticsMapper orderStatisticsMapper;
@Scheduled(cron = "0 0 2 * * ?")
public void orderTotalAmountStatistics() {
String createTime = DateUtil.offsetDay(new Date(), -1).toString(new SimpleDateFormat("yyyy-MM-dd"));
OrderStatistics orderStatistics = orderInfoMapper.selectOrderStatistics(createTime);
if (orderStatistics != null) {
orderStatisticsMapper.insert(orderStatistics);
}
}
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.atguigu.spzx.manger.mapper.OrderInfoMapper">
<!-- 查询指定日期产生的订单数据 -->
<select id="selectOrderStatistics" resultType="com.atguigu.spzx.model.entity.order.OrderStatistics">
select DATE_FORMAT(oi.create_time, '%Y-%m-%d') orderDate,
sum(oi.total_amount) totalAmount,
count(oi.id) totalNum
from order_info oi
where DATE_FORMAT(oi.create_time, '%Y-%m-%d') = #{createTime}
GROUP BY DATE_FORMAT(oi.create_time, '%Y-%m-%d')
</select>
</mapper>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.atguigu.spzx.manger.mapper.OrderStatisticsMapper">
<!-- 用于select查询公用抽取的列 -->
<sql id="columns">
id,order_date,total_amount,total_num,create_time,update_time,is_deleted
</sql>
<!-- 插入 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
insert into order_statistics (id, order_date, total_amount, total_num)
values (#{id}, #{orderDate}, #{totalAmount}, #{totalNum})
</insert>
</mapper>

View File

@ -2,15 +2,15 @@ package com.atguigu.spzx.model.entity.order;
import com.atguigu.spzx.model.entity.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class OrderStatistics extends BaseEntity {
private Date orderDate;
private BigDecimal totalAmount;
private Integer totalNum;
}