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.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;
|
|
@Service
|
public class OrderReportServiceImpl implements OrderReportService {
|
|
@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 -> {
|
BeanUtils.copyProperties(dto,calendarBO);
|
OrderReportResultVO vo2=orderReportMapper.getOrderDateReport(calendarBO);
|
vo2.setOrderDate(calendarBO.getCalDate());
|
|
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);
|
}
|
}
|