Cui Zhi Feng
2024-10-22 d687cd5e8a2cd20186fe1c6c8264aa1091401339
统计 销售额 销售扎数
已修改4个文件
已添加2个文件
95 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/payment/OrderItemMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/statistics/StatisticsService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/payment/OrderItemMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/payment/OrderMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | 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 &gt; #{startTime}
        and o.create_time &lt;= #{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 &gt; #{startTime}
        and o.create_time &lt;= #{endTime}
        and o.payment_time is not null
        and o.refund_time is null
    </select>
</mapper>