gongzuming
2024-09-26 af77899d830e854d01b48bc12db04b02116e5ea4
Merge remote-tracking branch 'origin/master-v2' into master-v2
已修改4个文件
已重命名1个文件
已添加9个文件
330 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/dto/request/report/QueryOrderDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/report/OrderReportCalendarBO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/report/OrderReportStatisVO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/calendar/CalendarMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/calendar/CalendarMapperCustom.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/calendar/CalendarService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/report/OrderReportService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/v2/report/OrderReportController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/calendar/CalendarMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/calendar/CalendarMapperCustom.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/payment/OrderItemSalesMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/request/report/QueryOrderDTO.java
对比新文件
@@ -0,0 +1,25 @@
package com.mzl.flower.dto.request.report;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
@Data
public class QueryOrderDTO {
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern="yyyy-MM-dd" ,timezone="GMT+8")
    @DateTimeFormat
    private LocalDate startDate;
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern="yyyy-MM-dd" ,timezone="GMT+8")
    @DateTimeFormat
    private LocalDate endDate;
    @ApiModelProperty(value = "合伙人id")
    private Long partnerId;
}
src/main/java/com/mzl/flower/dto/response/report/OrderReportCalendarBO.java
对比新文件
@@ -0,0 +1,20 @@
package com.mzl.flower.dto.response.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class OrderReportCalendarBO {
    @ApiModelProperty("日期")
    private LocalDateTime calDate;
    @ApiModelProperty("订单的开始时间")
    private LocalDateTime startDate;
    @ApiModelProperty("订单的结束时间")
    private LocalDateTime endDate;
}
src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java
对比新文件
@@ -0,0 +1,71 @@
package com.mzl.flower.dto.response.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderReportResultVO {
    @ApiModelProperty("下单日期")
    private String orderDate;
    @ApiModelProperty("销售额")
    private BigDecimal saleFeeAmount;
    @ApiModelProperty("花农底价")
    private BigDecimal supplierFeeAmount;
    @ApiModelProperty("平台区间加价")
    private BigDecimal platformSectionFeeAmount;
    @ApiModelProperty("平台加价")
    private BigDecimal platformFeeAmount;
    @ApiModelProperty("平台区域加价")
    private BigDecimal platformAreaFeeAmount;
    @ApiModelProperty("合伙人加价")
    private BigDecimal partnerFeeAmount;
    @ApiModelProperty("合伙人区间加价")
    private BigDecimal partnerSectionFeeAmount;
    @ApiModelProperty("会员折扣")
    private BigDecimal memberDiscountFeeAmount;
    @ApiModelProperty("优惠券")
    private BigDecimal couponFeeAmount;
    @ApiModelProperty("降级扣款")
    private BigDecimal demotionFeeAmount;
    @ApiModelProperty("缺货扣款")
    private BigDecimal stockoutFeeAmount;
    @ApiModelProperty("补货扣款")
    private BigDecimal replenishmentFeeAmount;
    @ApiModelProperty("售后扣合伙人款")
    private BigDecimal afterSalePartnerFeeAmount;
    @ApiModelProperty("售后扣花农款")
    private BigDecimal afterSaleSupplierFeeAmount;
    @ApiModelProperty("售后扣平台款")
    private BigDecimal afterSalePlatformFeeAmount;
    @ApiModelProperty("总包干费")
    private BigDecimal partnerTotalFeeAmount;
    @ApiModelProperty("销售扎数")
    private Integer saleAmount;
    @ApiModelProperty("利润")
    private BigDecimal profitFeeAmount;
    @ApiModelProperty("结算状态")
    private String settleStatus;
}
src/main/java/com/mzl/flower/dto/response/report/OrderReportStatisVO.java
对比新文件
@@ -0,0 +1,46 @@
package com.mzl.flower.dto.response.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderReportStatisVO {
    @ApiModelProperty("销售合计")
    private BigDecimal saleFeeAmount;
    @ApiModelProperty("底价合计")
    private BigDecimal supplierFeeAmount;
    @ApiModelProperty("平台区间加价")
    private BigDecimal platformSectionFeeAmount;
    @ApiModelProperty("平台加价")
    private BigDecimal platformFeeAmount;
    @ApiModelProperty("平台区域加价")
    private BigDecimal platformAreaFeeAmount;
    @ApiModelProperty("合伙人加价")
    private BigDecimal partnerFeeAmount;
    @ApiModelProperty("质检扣款")
    private BigDecimal qualityFeeAmount;
    @ApiModelProperty("售后扣款")
    private BigDecimal afterSaleFeeAmount;
    @ApiModelProperty("优惠合计")
    private BigDecimal discountFeeAmount;
    @ApiModelProperty("总包干费")
    private BigDecimal partnerTotalFeeAmount;
    @ApiModelProperty("销售扎数")
    private Integer saleAmount;
}
src/main/java/com/mzl/flower/mapper/calendar/CalendarMapper.java
文件名从 src/main/java/com/mzl/flower/mapper/CalendarMapper.java 修改
@@ -1,4 +1,4 @@
package com.mzl.flower.mapper;
package com.mzl.flower.mapper.calendar;
import com.mzl.flower.entity.CalendarDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
src/main/java/com/mzl/flower/mapper/calendar/CalendarMapperCustom.java
对比新文件
@@ -0,0 +1,24 @@
package com.mzl.flower.mapper.calendar;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.report.OrderReportCalendarBO;
import com.mzl.flower.entity.CalendarDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author @TaoJie
 * @since 2024-09-12
 */
public interface CalendarMapperCustom extends BaseMapper<CalendarDO> {
    List<OrderReportCalendarBO> getOrderDatePage(Page page,@Param("dto") QueryOrderDTO dto);
}
src/main/java/com/mzl/flower/service/calendar/CalendarService.java
@@ -1,7 +1,12 @@
package com.mzl.flower.service.calendar;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.report.OrderReportCalendarBO;
import com.mzl.flower.entity.CalendarDO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
@@ -14,4 +19,6 @@
public interface CalendarService extends IService<CalendarDO> {
    void generateCalendar(int i);
    List<OrderReportCalendarBO> getOrderDatePage(Page page, QueryOrderDTO dto);
}
src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java
@@ -2,10 +2,15 @@
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.report.OrderReportCalendarBO;
import com.mzl.flower.entity.CalendarDO;
import com.mzl.flower.mapper.CalendarMapper;
import com.mzl.flower.mapper.calendar.CalendarMapper;
import com.mzl.flower.mapper.calendar.CalendarMapperCustom;
import com.mzl.flower.service.calendar.CalendarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@@ -22,6 +27,9 @@
 */
@Service
public class CalendarServiceImpl extends ServiceImpl<CalendarMapper, CalendarDO> implements CalendarService {
    @Autowired
    private CalendarMapperCustom calendarMapperCustom;
    @Override
    public void generateCalendar(int year) {
@@ -53,4 +61,9 @@
        }
    }
    @Override
    public List<OrderReportCalendarBO> getOrderDatePage(Page page, QueryOrderDTO dto) {
        return calendarMapperCustom.getOrderDatePage(page,dto);
    }
}
src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java
对比新文件
@@ -0,0 +1,36 @@
package com.mzl.flower.service.impl.report;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.report.OrderReportCalendarBO;
import com.mzl.flower.dto.response.report.OrderReportResultVO;
import com.mzl.flower.service.calendar.CalendarService;
import com.mzl.flower.service.report.OrderReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class OrderReportServiceImpl implements OrderReportService {
    @Autowired
    private CalendarService calendarService;
    @Override
    public Page<OrderReportResultVO> getSalePage(Page page, QueryOrderDTO dto) {
        List<OrderReportCalendarBO> calendarBOList= calendarService.getOrderDatePage(page,dto);
        final List<OrderReportResultVO> list = calendarBOList.stream().map(calendarBO -> {
            OrderReportResultVO vo=new OrderReportResultVO();
            return vo;
        }).collect(Collectors.toList());
        page.setRecords(list);
        return page;
    }
}
src/main/java/com/mzl/flower/service/report/OrderReportService.java
对比新文件
@@ -0,0 +1,9 @@
package com.mzl.flower.service.report;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.report.OrderReportResultVO;
public interface OrderReportService {
    Page<OrderReportResultVO> getSalePage(Page page, QueryOrderDTO dto);
}
src/main/java/com/mzl/flower/web/v2/report/OrderReportController.java
对比新文件
@@ -0,0 +1,53 @@
package com.mzl.flower.web.v2.report;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.base.BaseController;
import com.mzl.flower.base.R;
import com.mzl.flower.base.ReturnDataDTO;
import com.mzl.flower.config.exception.ValidationException;
import com.mzl.flower.dto.request.coupon.CreateCouponRecordDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponRecordDTO;
import com.mzl.flower.dto.request.report.QueryOrderDTO;
import com.mzl.flower.dto.response.coupon.CouponRecordResultVO;
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.dto.response.report.OrderReportResultVO;
import com.mzl.flower.entity.coupon.CouponRecordDO;
import com.mzl.flower.entity.coupon.CouponTemplateDO;
import com.mzl.flower.enums.CouponStatusEnum;
import com.mzl.flower.service.coupon.CouponRecordService;
import com.mzl.flower.service.coupon.CouponTemplateService2;
import com.mzl.flower.service.report.OrderReportService;
import com.mzl.flower.utils.ConverterUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author @TaoJie
* @since 2024-09-25
*/
@RestController
@RequestMapping("/v2/report/order")
@Api(value = "报表-订单", tags = "报表-订单")
@Validated
public class OrderReportController extends BaseController {
    @Autowired
    private OrderReportService orderReportService;
    @GetMapping("/sale/page")
    @ApiOperation(value = "查询-分页", notes = "查询-分页")
    public ResponseEntity<ReturnDataDTO<Page<CouponRecordVO>>> page(
            Page page, QueryOrderDTO dto
    ) {
        return returnData(R.SUCCESS.getCode(), ConverterUtil.transPage(orderReportService.getSalePage(page,dto), OrderReportResultVO.class));
    }
}
src/main/resources/mapper/calendar/CalendarMapper.xml
@@ -1,6 +1,6 @@
<?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.mzl.flower.mapper.CalendarMapper">
<mapper namespace="com.mzl.flower.mapper.calendar.CalendarMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.mzl.flower.entity.CalendarDO">
src/main/resources/mapper/calendar/CalendarMapperCustom.xml
对比新文件
@@ -0,0 +1,16 @@
<?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.mzl.flower.mapper.calendar.CalendarMapperCustom">
    <select id="getOrderDatePage" resultType="com.mzl.flower.dto.response.report.OrderReportCalendarBO">
        select cal_date,
            DATE_FORMAT(DATE_SUB(cal_date, INTERVAL 1 DAY), '%Y-%m-%d 17:00:00') AS start_date ,
            DATE_FORMAT(DATE_ADD(cal_date, INTERVAL 0 DAY), '%Y-%m-%d 17:00:00') AS end_date
        from t_calendar where cal_date &gt;= (
        SELECT DATE_FORMAT(MIN(create_time), '%Y-%m-%d 00:00:00') AS min_create_time
        FROM t_order
        )  and cal_date &lt;=DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')
        order by cal_date desc
    </select>
</mapper>
src/main/resources/mapper/payment/OrderItemSalesMapper.xml
@@ -147,7 +147,7 @@
    </select>
    <select id="getSupplierSalesCount" resultType="java.lang.Integer">
        SELECT count(1)
        SELECT count(distinct si.order_id)
        FROM t_order_item_sales si
        join t_order_item oi on oi.id = si.order_item_id
        WHERE oi.deleted = 0
@@ -155,7 +155,7 @@
    </select>
    <select id="getPartnerSalesCount" resultType="java.lang.Integer">
        SELECT count(1)
        SELECT count(distinct si.order_id)
        FROM t_order_item_sales si
        join t_order o on si.order_id = o.id
        WHERE o.deleted = 0