From b86804ef953c2ff6b3d18b559822a66db4f07b96 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 23 十二月 2025 09:58:19 +0800
Subject: [PATCH] feat(user): 添加用户推广记录和收益明细功能

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

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
index 80bb4c4..229e1bc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
@@ -21,6 +21,7 @@
 import com.ruoyi.system.query.BigGiftPackageOrderQuery;
 import com.ruoyi.system.query.GoldChangeRecordQuery;
 import com.ruoyi.system.query.ProfitPageListQuery;
+import com.ruoyi.system.query.UserProfitPageListQuery;
 import com.ruoyi.system.service.TBigGiftPackageOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.system.service.TCommissionTransactionFlowService;
@@ -28,6 +29,7 @@
 import com.ruoyi.system.utils.ICBCPayUtil;
 import com.ruoyi.system.utils.OrderCodeGenerator;
 import com.ruoyi.system.vo.PlaceOrderVO;
+import com.ruoyi.system.vo.UserProfitPageListVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -221,6 +223,56 @@
     }
 
     @Override
+    public List<UserProfitPageListVo> profitUserPageList(Page<UserProfitPageListVo> page, UserProfitPageListQuery query) {
+        String sTime = null;
+        String eTime = null;
+        if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){
+            String[] split = query.getCreateTime().split(" - ");
+            sTime = split[0] + " 00:00:00";
+            eTime = split[1] + " 23:59:59";
+        }
+
+        List<UserProfitPageListVo> profitPageListVos = this.baseMapper.profitUserPageList(page,query, sTime, eTime);
+
+
+        if(!profitPageListVos.isEmpty()){
+            List<Integer> orderIds = profitPageListVos.stream().map(UserProfitPageListVo::getId).collect(Collectors.toList());
+            List<TCommissionTransactionFlow> tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getOrderId, orderIds));
+            for (UserProfitPageListVo profitPageListVo : profitPageListVos) {
+                List<TCommissionTransactionFlow> flows = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserId().equals(query.getUserId())).collect(Collectors.toList());
+                profitPageListVo.setSelfProfit(flows.stream().map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+            }
+        }
+
+        return profitPageListVos;
+    }
+
+    @Override
+    public List<UserProfitPageListVo> profitUserPageListExport(UserProfitPageListQuery query) {
+        String sTime = null;
+        String eTime = null;
+        if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){
+            String[] split = query.getCreateTime().split(" - ");
+            sTime = split[0] + " 00:00:00";
+            eTime = split[1] + " 23:59:59";
+        }
+
+        List<UserProfitPageListVo> profitPageListVos = this.baseMapper.profitUserPageListExport(query, sTime, eTime);
+
+
+        if(!profitPageListVos.isEmpty()){
+            List<Integer> orderIds = profitPageListVos.stream().map(UserProfitPageListVo::getId).collect(Collectors.toList());
+            List<TCommissionTransactionFlow> tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getOrderId, orderIds));
+            for (UserProfitPageListVo profitPageListVo : profitPageListVos) {
+                List<TCommissionTransactionFlow> flows = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserId().equals(query.getUserId())).collect(Collectors.toList());
+                profitPageListVo.setSelfProfit(flows.stream().map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+            }
+        }
+
+        return profitPageListVos;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public PlaceOrderVO placeOrder(BigGiftPlaceOrderDTO dto, Integer appUserId, String openid) {
         // 1. 校验商品是否存在

--
Gitblit v1.7.1