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 >= ( + SELECT DATE_FORMAT(MIN(create_time), '%Y-%m-%d 00:00:00') AS min_create_time + FROM t_order + ) and cal_date <=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