From 324b5cd032c143693f7b89fb40756d92602bcac7 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期三, 18 十二月 2024 17:25:03 +0800
Subject: [PATCH] 1

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java            |    5 +-
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml                                |    4 +-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java                     |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java |   12 +++++-
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml                  |   67 +++++++--------------------------
 5 files changed, 31 insertions(+), 59 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
index 19d0672..70ef058 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
@@ -13,8 +13,9 @@
 public interface BalanceChangeRecordMapper extends BaseMapper<BalanceChangeRecord> {
     IPage<BalanceChangeRecord> pageList(@Param("page") Page<BalanceChangeRecord> page,@Param("agentQuery") BalanceQuery agentQuery);
 
+
+    List<BalanceChangeRecord> selectBalanceChangeRecordList(@Param("changeRecord") BalanceChangeRecord balanceChangeRecord);
+
     IPage<BalanceChangeRecord> queryCommissionStatistics(@Param("page") Page<BalanceChangeRecord> page,
                                                          @Param("changeRecord") BalanceChangeRecord changeRecord);
-
-    List<UserPoint> findLatestChangeByType(BalanceChangeRecord balanceChangeRecord);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
index 850405b..1a3ca07 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -14,12 +14,15 @@
 import com.ruoyi.account.service.BalanceChangeRecordService;
 import com.ruoyi.account.vo.CommissionStatistics;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.other.api.domain.ShopPoint;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -38,9 +41,14 @@
 
     @Override
     public CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord) {
+        List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord);
+        BigDecimal totalCommission = balanceChangeRecordList.stream()
+                .filter(item -> !(item.getChangeType().equals(2) && item.getChangeType().equals(5)))
+                .map(BalanceChangeRecord::getChangeAmount)
+                .reduce(BigDecimal.ZERO, BigDecimal::add)
+                .setScale(2, RoundingMode.HALF_UP);
 
         IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord);
-//        return new CommissionStatistics(totalCommission, changeRecordPage);
-        return null;
+        return new CommissionStatistics(totalCommission, balanceChangeRecordIPage);
     }
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java
index 24f543e..b55d179 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java
@@ -21,7 +21,7 @@
 
     public CommissionStatistics() {
     }
-    public CommissionStatistics(BigDecimal totalCommission, Page<BalanceChangeRecord> changeRecordPage) {
+    public CommissionStatistics(BigDecimal totalCommission, IPage<BalanceChangeRecord> changeRecordPage) {
         this.totalCommission = totalCommission;
         this.userPointPage = changeRecordPage;
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
index a947cb1..4bfdf8b 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -21,14 +21,17 @@
                     </if>
                 </where>
     </select>
-    <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
+
+    <sql id="balanceChangeRecordList">
         SELECT
-            tcr.*,
             tau.`name` userName,
-            tau.phone userPhone
+            tau.phone userPhone,
+            tbcr.change_type,
+            tbcr.create_time,
+            tbcr.change_amount
         FROM
-            t_balance_change_record tcr
-                LEFT JOIN t_app_user tau ON tcr.app_user_id = tau.id
+            t_balance_change_record tbcr
+                LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id
         <where>
             <if test="changeRecord.userName != null and changeRecord.userName != ''">
                 and tau.name like concat('%',#{changeRecord.userName},'%')
@@ -36,56 +39,16 @@
             <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''">
                 and tau.phone like concat('%',#{changeRecord.userPhone},'%')
             </if>
-            <if test="changeRecord.changeType != null">
-                and tcr.change_type = #{changeRecord.changeType}
-            </if>
             <if test="changeRecord.startTime != null and changeRecord.endTime != null">
-                and DATE(tcr.create_time) between  #{changeRecord.startTime} and #{changeRecord.endTime}
+                and DATE(tbcr.create_time) between  #{changeRecord.startTime} and #{changeRecord.endTime}
             </if>
         </where>
+    </sql>
+
+    <select id="selectBalanceChangeRecordList" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
+        <include refid="balanceChangeRecordList"/>
     </select>
-    <select id="findLatestChangeByType" resultType="com.ruoyi.account.api.model.UserPoint">
-        SELECT
-            id,
-            app_user_id,
-            order_id,
-            change_type,
-            before_amount,
-            change_amount,
-            after_amount,
-            del_flag,
-            create_time
-        FROM
-            (
-                SELECT
-                    id,
-                    app_user_id,
-                    order_id,
-                    change_type,
-                    before_amount,
-                    change_amount,
-                    after_amount,
-                    del_flag,
-                    create_time,
-                    ROW_NUMBER() OVER ( PARTITION BY change_type, app_user_id ORDER BY create_time DESC ) rn
-                FROM
-                    t_balance_change_record
-        <where>
-            <if test="changeRecord.userName != null and changeRecord.userName != ''">
-                and tau.name like concat('%',#{changeRecord.userName},'%')
-            </if>
-            <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''">
-                and tau.phone like concat('%',#{changeRecord.userPhone},'%')
-            </if>
-            <if test="changeRecord.changeType != null">
-                and tcr.change_type = #{changeRecord.changeType}
-            </if>
-            <if test="changeRecord.startTime != null and changeRecord.endTime != null">
-                and DATE(tcr.create_time) between  #{changeRecord.startTime} and #{changeRecord.endTime}
-            </if>
-        </where>
-            ) AS subquery
-        WHERE
-            rn = 1
+    <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
+        <include refid="balanceChangeRecordList"/>
     </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
index 467e2e1..937b56a 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml
@@ -4,8 +4,8 @@
 
     <sql id="ShopPointList">
         SELECT
-        ts.`name`,
-        ts.shop_manager,
+        ts.`name` shopName,
+        ts.shop_manager shopLeaderName,
         ts.phone,
         tsp.type,
         tsp.create_time,

--
Gitblit v1.7.1