From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 19 May 2025 17:02:07 +0800
Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑

---
 src/main/resources/mapper/modules/MallSalesmanMapper.xml |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/modules/MallSalesmanMapper.xml b/src/main/resources/mapper/modules/MallSalesmanMapper.xml
index 74f1db7..994a14b 100644
--- a/src/main/resources/mapper/modules/MallSalesmanMapper.xml
+++ b/src/main/resources/mapper/modules/MallSalesmanMapper.xml
@@ -113,6 +113,9 @@
                 <if test="record.city != null and record.city != ''">
                     and a.city = #{record.city}
                 </if>
+                <if test="record.name != null and record.name != ''">
+                    and a.name like concat('%',  #{record.name},'%')
+                </if>
             </if>
         </where>
         ORDER BY
@@ -150,4 +153,87 @@
             )
     </select>
 
+    <select id="selectAgentAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo">
+        SELECT
+        a.province,
+        a.city,
+        a.name,
+        a.phone,
+        d.name nickname,
+        (
+            select ifnull(sum(e.amount),0)
+            from mall_money_flow e
+            where e.flow_type = 1
+            and e.type = 20
+            and e.member_id = a.member_id
+        ) rechargeSendAmount,
+        (
+            select count(b.id)
+            from mall_order_info b
+            <where>
+                b.member_id = a.member_id
+                    and (b.status = 4)
+                <if test="record != null" >
+                    <if test="record.startTime != null and record.startTime != ''">
+                        and b.order_time &gt;= #{record.startTime}
+                    </if>
+                    <if test="record.endTime != null and record.endTime != ''">
+                        and b.order_time &lt;= #{record.endTime}
+                    </if>
+                </if>
+            </where>
+        ) orderCnt,
+        (
+            select ifnull(sum(c.amount),0)
+            from mall_order_info c
+
+            <where>
+                c.member_id = a.member_id
+                and (c.status = 4)
+                <if test="record != null" >
+                    <if test="record.startTime != null and record.startTime != ''">
+                        and c.order_time &gt;= #{record.startTime}
+                    </if>
+                    <if test="record.endTime != null and record.endTime != ''">
+                        and c.order_time &lt;= #{record.endTime}
+                    </if>
+                </if>
+            </where>
+        ) orderAmount
+        FROM mall_agent_record a
+        inner join mall_member d on a.member_id = d.id
+        <where>
+            <if test="record != null" >
+                <if test="record.province != null and record.province != ''">
+                    and a.province = #{record.province}
+                </if>
+                <if test="record.city != null and record.city != ''">
+                    and a.city = #{record.city}
+                </if>
+                <if test="record.name != null and record.name != ''">
+                    and a.name like concat('%',  #{record.name},'%')
+                </if>
+                <if test="record.nickname != null and record.nickname != ''">
+                    and d.name like concat('%',  #{record.nickname},'%')
+                </if>
+            </if>
+        </where>
+        ORDER BY orderAmount desc
+    </select>
+
+    <select id="selectAgentAddressProvince" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo">
+        SELECT
+            a.province
+        FROM mall_agent_record a
+        group by a.province
+    </select>
+
+    <select id="selectAgentAddressCity" resultType="java.lang.String">
+        SELECT
+            a.city
+        FROM mall_agent_record a
+        where a.province = #{province}
+        group by a.city
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1