陶杰
2024-09-27 43d728030dca41209677b0a7e314de2ce0a21aa9
src/main/java/com/mzl/flower/service/impl/report/OrderReportServiceImpl.java
@@ -4,11 +4,19 @@
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.mapper.report.OrderReportMapper;
import com.mzl.flower.service.calendar.CalendarService;
import com.mzl.flower.service.report.OrderReportService;
import com.mzl.flower.utils.ExcelExportUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
@@ -19,18 +27,57 @@
    @Autowired
    private CalendarService calendarService;
    @Autowired
    private OrderReportMapper orderReportMapper;
    @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();
            BeanUtils.copyProperties(dto,calendarBO);
            OrderReportResultVO vo2=orderReportMapper.getOrderDateReport(calendarBO);
            vo2.setOrderDate(calendarBO.getCalDate());
            return vo;
            return vo2;
        }).collect(Collectors.toList());
        page.setRecords(list);
        return page;
    }
    @Override
    public OrderReportResultVO getSaleStatis(QueryOrderDTO dto) {
        // 计算开始时间和结束时间
        OrderReportCalendarBO bo=new OrderReportCalendarBO();
        BeanUtils.copyProperties(dto,bo);
        bo.setStartDate(calculateStartTime(dto.getStartDate()));
        bo.setEndDate(calculateEndTime(dto.getEndDate()));
        OrderReportResultVO vo2=orderReportMapper.getOrderDateReport(bo);
        return vo2;
    }
    @Override
    public void exportSalesList(HttpServletResponse response, QueryOrderDTO dto) {
    }
    // 计算 startDate 的前一天 17:00:00
    public static LocalDateTime calculateStartTime(LocalDate startDate) {
        LocalDate previousDay = startDate.minusDays(1);
        LocalTime fivePM = LocalTime.of(17, 0, 0); // 下午 17:00:00
        return LocalDateTime.of(previousDay, fivePM);
    }
    // 计算 endDate 当天的 17:00:00
    public static LocalDateTime calculateEndTime(LocalDate endDate) {
        LocalTime fivePM = LocalTime.of(17, 0, 0); // 下午 17:00:00
        return LocalDateTime.of(endDate, fivePM);
    }
}