From 5dfb9e127bee64a7e55f8910d844beb31ab13377 Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <cuizf@fengyuntec.com> Date: 星期二, 22 十月 2024 22:32:17 +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