src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/statistics/StatisticsService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/payment/OrderItemMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/payment/OrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } 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); } 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); } 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; } } 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> 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>