From af77899d830e854d01b48bc12db04b02116e5ea4 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期四, 26 九月 2024 16:04:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2

---
 src/main/java/com/mzl/flower/web/v2/report/OrderReportController.java        |   53 ++++++++
 src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java           |   15 ++
 src/main/java/com/mzl/flower/service/report/OrderReportService.java          |    9 +
 src/main/java/com/mzl/flower/dto/response/report/OrderReportCalendarBO.java  |   20 +++
 src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java |   36 ++++++
 src/main/resources/mapper/calendar/CalendarMapper.xml                        |    2 
 src/main/resources/mapper/calendar/CalendarMapperCustom.xml                  |   16 ++
 src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java    |   71 +++++++++++
 src/main/java/com/mzl/flower/mapper/calendar/CalendarMapperCustom.java       |   24 ++++
 src/main/java/com/mzl/flower/dto/response/report/OrderReportStatisVO.java    |   46 +++++++
 src/main/java/com/mzl/flower/service/calendar/CalendarService.java           |    7 +
 src/main/java/com/mzl/flower/dto/request/report/QueryOrderDTO.java           |   25 ++++
 src/main/java/com/mzl/flower/mapper/calendar/CalendarMapper.java             |    2 
 src/main/resources/mapper/payment/OrderItemSalesMapper.xml                   |    4 
 14 files changed, 325 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/report/QueryOrderDTO.java b/src/main/java/com/mzl/flower/dto/request/report/QueryOrderDTO.java
new file mode 100644
index 0000000..da07577
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderReportCalendarBO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderReportCalendarBO.java
new file mode 100644
index 0000000..f3dceda
--- /dev/null
+++ b/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;
+
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderReportResultVO.java
new file mode 100644
index 0000000..50d3d8e
--- /dev/null
+++ b/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;
+
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/report/OrderReportStatisVO.java b/src/main/java/com/mzl/flower/dto/response/report/OrderReportStatisVO.java
new file mode 100644
index 0000000..3772a47
--- /dev/null
+++ b/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;
+
+}
diff --git a/src/main/java/com/mzl/flower/mapper/CalendarMapper.java b/src/main/java/com/mzl/flower/mapper/calendar/CalendarMapper.java
similarity index 86%
rename from src/main/java/com/mzl/flower/mapper/CalendarMapper.java
rename to src/main/java/com/mzl/flower/mapper/calendar/CalendarMapper.java
index 194b5c5..6b62c5d 100644
--- a/src/main/java/com/mzl/flower/mapper/CalendarMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/calendar/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;
diff --git a/src/main/java/com/mzl/flower/mapper/calendar/CalendarMapperCustom.java b/src/main/java/com/mzl/flower/mapper/calendar/CalendarMapperCustom.java
new file mode 100644
index 0000000..f4413dd
--- /dev/null
+++ b/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);
+
+}
diff --git a/src/main/java/com/mzl/flower/service/calendar/CalendarService.java b/src/main/java/com/mzl/flower/service/calendar/CalendarService.java
index 75e5df0..9ed024a 100644
--- a/src/main/java/com/mzl/flower/service/calendar/CalendarService.java
+++ b/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);
 }
diff --git a/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java
index 4dc143f..879c6f2 100644
--- a/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java
+++ b/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);
+    }
 }
diff --git a/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java
new file mode 100644
index 0000000..4532d67
--- /dev/null
+++ b/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;
+    }
+}
diff --git a/src/main/java/com/mzl/flower/service/report/OrderReportService.java b/src/main/java/com/mzl/flower/service/report/OrderReportService.java
new file mode 100644
index 0000000..eab2c1f
--- /dev/null
+++ b/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);
+}
diff --git a/src/main/java/com/mzl/flower/web/v2/report/OrderReportController.java b/src/main/java/com/mzl/flower/web/v2/report/OrderReportController.java
new file mode 100644
index 0000000..71ed3c6
--- /dev/null
+++ b/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));
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/resources/mapper/calendar/CalendarMapper.xml b/src/main/resources/mapper/calendar/CalendarMapper.xml
index 723947b..1b0ae55 100644
--- a/src/main/resources/mapper/calendar/CalendarMapper.xml
+++ b/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">
diff --git a/src/main/resources/mapper/calendar/CalendarMapperCustom.xml b/src/main/resources/mapper/calendar/CalendarMapperCustom.xml
new file mode 100644
index 0000000..85914ee
--- /dev/null
+++ b/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>
diff --git a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml
index 6abf279..207a856 100644
--- a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml
+++ b/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

--
Gitblit v1.9.3