From 7e9508a252df668c3f7472be02595c79b21be11a Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期三, 04 六月 2025 18:19:25 +0800 Subject: [PATCH] 首页统计 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 53 insertions(+), 1 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java index 34cb130..d05c266 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -13,20 +14,25 @@ import com.ruoyi.system.mapper.*; import com.ruoyi.system.pojo.dto.AddAgreementDTO; import com.ruoyi.system.pojo.dto.OrderPageDTO; +import com.ruoyi.system.pojo.model.DailyStatistics; +import com.ruoyi.system.pojo.model.DrawSheet; import com.ruoyi.system.pojo.vo.*; import com.ruoyi.system.service.AgreementService; import com.ruoyi.system.service.OrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Slf4j @Service @@ -45,6 +51,8 @@ private ScheduleMapper scheduleMapper; @Resource private CompanyMapper companyMapper; + @Autowired + private SystemConfigMapper systemConfigMapper; @Override public IPage<OrderPageVO> getOrderPage(OrderPageDTO dto) { @@ -276,7 +284,6 @@ this.updateById(order); return R.ok(); } - /** * 返回订单支付金额 */ @@ -294,4 +301,49 @@ return R.ok(); } + + @Override + public TodayStatisticsVO today() { + LocalDateTime startTime = LocalDate.now().atStartOfDay(); + LocalDateTime endTime =LocalDate.now().atTime(23, 59, 59); + return this.baseMapper.today(startTime, endTime); + } + + @Override + public IndexLineChartVO chart(LocalDate startDate, LocalDate endDate) { + // 查询数据库 + List<DailyStatistics> statisticsList = this.baseMapper.getDailyStatistics( + startDate.atStartOfDay(), + endDate.atTime(23, 59, 59) + ); + // 构建返回对象 + IndexLineChartVO vo = new IndexLineChartVO(); + vo.setDays(new ArrayList<>()); + vo.setTotalList(new ArrayList<>()); + vo.setProfitList(new ArrayList<>()); + // 按日期顺序填充数据 + LocalDate currentDate = startDate; + while (!currentDate.isAfter(endDate)) { + String dateStr = currentDate.format(DateTimeFormatter.ISO_LOCAL_DATE); + vo.getDays().add(currentDate); + + // 查找当天数据,若无则默认为0 + Optional<DailyStatistics> statOptional = statisticsList.stream() + .filter(s -> s.getDate().equals(dateStr)) + .findFirst(); + + DailyStatistics stat = statOptional.orElse( + new DailyStatistics(dateStr, BigDecimal.ZERO, BigDecimal.ZERO) + ); + + vo.getTotalList().add(stat.getTotalPrice()); + vo.getProfitList().add(stat.getPlatformCommission()); + + currentDate = currentDate.plusDays(1); + } + return vo; + + } + + } -- Gitblit v1.7.1