From cf7740957f2b859e541116f2f4603beff8a0c832 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 20 十二月 2024 17:19:38 +0800
Subject: [PATCH] 修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
index d1329d4..fa441c3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
@@ -10,6 +11,8 @@
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.CheckoutDTO;
 import com.ruoyi.system.dto.TOrderSaleDTO;
+import com.ruoyi.system.export.SumGeneratorClient;
+import com.ruoyi.system.export.SumGeneratorDetailClient;
 import com.ruoyi.system.mapper.TOrderSaleGoodsMapper;
 import com.ruoyi.system.mapper.TOrderSaleMapper;
 import com.ruoyi.system.query.*;
@@ -447,4 +450,69 @@
     public List<GoodsProfitVO> profitDetailsExport(ProfitDetailsQuery query) {
         return this.baseMapper.profitDetailsExport(query);
     }
+
+    @Override
+    public void deleteByShopId(Long shopId) {
+        this.baseMapper.deleteByShopId(shopId);
+    }
+
+    @Override
+    public Map<String, Double> getDataGeneratorSaleDetailOrderMoney(TDataGeneratorSaleQuery query) {
+        if(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(query.getEndTime())){
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
+            }
+        }
+        return this.baseMapper.getDataGeneratorSaleDetailOrderMoney(query);
+    }
+
+    @Override
+    public SumGeneratorClient sumExport(ProfitDetailsQuery query) {
+        List<SumGeneratorDetailClient> sumGeneratorDetailClient = this.baseMapper.sumExport(query);
+
+        for (SumGeneratorDetailClient generatorDetailClient : sumGeneratorDetailClient) {
+            generatorDetailClient.setSingleAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getOrderCount()),2,BigDecimal.ROUND_DOWN));
+            generatorDetailClient.setPerAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getPerCount()),2,BigDecimal.ROUND_DOWN));
+        }
+
+        SumGeneratorClient sumGeneratorClient = new SumGeneratorClient();
+        sumGeneratorClient.setActualAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
+        sumGeneratorClient.setOrderCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getOrderCount).reduce(Integer::sum).get());
+        sumGeneratorClient.setSingleAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getSingleAmount).reduce(BigDecimal::add).get());
+        sumGeneratorClient.setPerCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerCount).reduce(Integer::sum).get());
+        sumGeneratorClient.setPerAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerAmount).reduce(BigDecimal::add).get());
+
+        sumGeneratorClient.setAllMoney(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
+        sumGeneratorClient.setSingleAvgAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getPerCountSum())));
+        sumGeneratorClient.setPerCapitaAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getOrderCountSum())));
+
+        sumGeneratorClient.setOrderStatistics(sumGeneratorDetailClient);
+
+        return sumGeneratorClient;
+    }
 }

--
Gitblit v1.7.1