From 0a492b64ca1a4e40cc9ea56eddd1afe2c09a12b3 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期四, 05 六月 2025 16:27:11 +0800 Subject: [PATCH] 财务管理 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 3 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..126b219 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; @@ -12,21 +13,28 @@ import com.ruoyi.system.domain.*; import com.ruoyi.system.mapper.*; import com.ruoyi.system.pojo.dto.AddAgreementDTO; +import com.ruoyi.system.pojo.dto.FinanceFlowsDTO; import com.ruoyi.system.pojo.dto.OrderPageDTO; +import com.ruoyi.system.pojo.dto.WithdrawPageDTO; +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 +53,12 @@ private ScheduleMapper scheduleMapper; @Resource private CompanyMapper companyMapper; + @Autowired + private SystemConfigMapper systemConfigMapper; + @Autowired + private AppUserMapper appUserMapper; + @Autowired + private WithdrawMapper withdrawMapper; @Override public IPage<OrderPageVO> getOrderPage(OrderPageDTO dto) { @@ -230,6 +244,7 @@ } + @Transactional @Override public void cancel(String id) { Company company = companyMapper.selectById(id); @@ -254,12 +269,28 @@ //未付款 直接取消订单 order.setStatus(-1); this.baseMapper.updateById(order); + //将分佣次数加回 + User user = appUserMapper.selectById(order.getUserId()); + user.setInviteNum(user.getInviteNum()+1); + appUserMapper.updateById(user); + //商品状态修改 + company.setStatus(1); + companyMapper.updateById(company); }else{ - //退款 - order.setStatus(-1); R r = refundPayMoney(order);//退款 if (200 == r.getCode()) { + //退款成功 + order.setStatus(-1);//订单取消状态 + order.setIsRefund(1);//退款标志 + order.setRefundTime(LocalDateTime.now());//退款时间 this.updateById(order); + //将分佣次数加回 + User user = appUserMapper.selectById(order.getUserId()); + user.setInviteNum(user.getInviteNum()+1); + appUserMapper.updateById(user); + //商品状态修改 + company.setStatus(1); + companyMapper.updateById(company); } } } @@ -276,7 +307,6 @@ this.updateById(order); return R.ok(); } - /** * 返回订单支付金额 */ @@ -294,4 +324,64 @@ 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; + + } + + @Override + public FinanceFlowsTopVO financeTop() { + return this.baseMapper.financeTop(); + } + + @Override + public IPage<FinanceFlowsPageVO> flowsPage(FinanceFlowsDTO dto) { + IPage<FinanceFlowsPageVO> page = new Page<>(dto.getPageNum(), dto.getPageSize()); + Long total = this.baseMapper.countFlowsPage(dto); + IPage<FinanceFlowsPageVO> financeFlowsPageVOIPage = this.baseMapper.flowsPage(page, dto); + financeFlowsPageVOIPage.setTotal(total); + return financeFlowsPageVOIPage; + } + + + } -- Gitblit v1.7.1