From d687cd5e8a2cd20186fe1c6c8264aa1091401339 Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <cuizf@fengyuntec.com>
Date: 星期二, 29 十月 2024 11:34:25 +0800
Subject: [PATCH] 统计 销售额 销售扎数
---
src/main/java/com/mzl/flower/service/statistics/StatisticsService.java | 54 +++++++++++++++++++++++++++
src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java | 3 +
src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java | 4 ++
src/main/resources/mapper/payment/OrderItemMapper.xml | 10 +++++
src/main/resources/mapper/payment/OrderMapper.xml | 9 ++++
src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java | 15 +++++++
6 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java b/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java
new file mode 100644
index 0000000..a5ea6cb
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java
@@ -0,0 +1,15 @@
+package com.mzl.flower.dto.response.statistics;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SaleStatisticsDTO {
+ @ApiModelProperty(value = "销售额")
+ private BigDecimal saleAmount;
+
+ @ApiModelProperty(value = "销售扎数")
+ private Integer saleFlowerCount;
+}
diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java
index f6cb15c..e60120f 100644
--- a/src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java
@@ -8,6 +8,7 @@
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+import java.time.LocalDateTime;
import java.util.List;
@Repository
@@ -17,4 +18,7 @@
List<OrderItemPlatformListDTO> getPlatformOrderItems(@Param("orderId") String orderId);
List<OrderItemListDTO> getOrderItems(@Param("orderIds") List<String> orderIds);
+
+ Integer getFlowerSaleNum(@Param("startTime") LocalDateTime startTime
+ , @Param("endTime") LocalDateTime endTime);
}
diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java
index 715debd..5c4ca5e 100644
--- a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java
@@ -9,6 +9,7 @@
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@@ -70,4 +71,6 @@
")")
List<String> getWaitSendMessageInfoBySupplier(String Status, LocalDateTime startTime, LocalDateTime endTime);
+ BigDecimal getOrderSaleAmount(@Param("startTime") LocalDateTime startTime
+ , @Param("endTime") LocalDateTime endTime);
}
diff --git a/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java b/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java
new file mode 100644
index 0000000..03acf99
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java
@@ -0,0 +1,54 @@
+package com.mzl.flower.service.statistics;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.constant.Constants;
+import com.mzl.flower.dto.response.statistics.SaleStatisticsDTO;
+import com.mzl.flower.mapper.payment.*;
+import com.mzl.flower.service.BaseService;
+import com.mzl.flower.utils.UUIDGenerator;
+import io.micrometer.core.instrument.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Slf4j
+@Service
+@Transactional
+public class StatisticsService extends BaseService {
+
+ @Autowired
+ private OrderMapper orderMapper;
+
+ @Autowired
+ private OrderItemMapper orderItemMapper;
+
+ public SaleStatisticsDTO getSaleStatistics(String date){
+ if(StringUtils.isEmpty(date)){
+ throw new ValidationException("日期不能为空");
+ }
+ LocalDate localDate = parseLocalDate(date);
+ if(localDate == null){
+ throw new ValidationException("日期无效");
+ }
+
+ LocalDateTime end = localDate.atTime(17, 0, 0);
+ LocalDateTime begin = end.plusDays(-1);
+
+ SaleStatisticsDTO dto = new SaleStatisticsDTO();
+ BigDecimal a = orderMapper.getOrderSaleAmount(begin, end);
+ Integer c = orderItemMapper.getFlowerSaleNum(begin, end);
+
+ dto.setSaleAmount(a);
+ dto.setSaleFlowerCount(c);
+
+ return dto;
+ }
+}
diff --git a/src/main/resources/mapper/payment/OrderItemMapper.xml b/src/main/resources/mapper/payment/OrderItemMapper.xml
index 251abbb..0037d42 100644
--- a/src/main/resources/mapper/payment/OrderItemMapper.xml
+++ b/src/main/resources/mapper/payment/OrderItemMapper.xml
@@ -71,4 +71,14 @@
#{orderId}
</foreach>
</select>
+
+ <select id="getFlowerSaleNum" resultType="java.lang.Integer">
+ SELECT sum(oi.num)
+ FROM t_order_item oi
+ JOIN t_order o on oi.order_id = o.id
+ WHERE o.create_time > #{startTime}
+ and o.create_time <= #{endTime}
+ and o.payment_time is not null
+ and o.refund_time is null
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/payment/OrderMapper.xml b/src/main/resources/mapper/payment/OrderMapper.xml
index 19db8e2..e0451eb 100644
--- a/src/main/resources/mapper/payment/OrderMapper.xml
+++ b/src/main/resources/mapper/payment/OrderMapper.xml
@@ -362,4 +362,13 @@
</if>
ORDER BY q.create_time desc, q.payment_time desc
</select>
+
+ <select id="getOrderSaleAmount" resultType="java.math.BigDecimal">
+ SELECT sum(o.payment_amount)
+ FROM t_order o
+ WHERE o.create_time > #{startTime}
+ and o.create_time <= #{endTime}
+ and o.payment_time is not null
+ and o.refund_time is null
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3