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 >= ( 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>