From a967d005ed9cc188c1395c792a46cf2befbdd488 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期一, 23 十二月 2024 15:26:23 +0800
Subject: [PATCH] 优化接口 水卡使用情况(充值、消费、余额)优化SQL解决数据重复显示bug

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml |   46 ++++++++++++++++++++++++----------------------
 1 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 5c4ed90..f90e929 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -349,28 +349,30 @@
     <!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級-->
     <select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo">
         SELECT *
-        FROM (SELECT '鐗╃悊鍗�'        AS cardType,
-                     card.cardNum AS cardNum,
-                     card.money   AS money,
-                     (CASE
-                          WHEN card.state = 1 THEN '姝e父'
-                          WHEN card.state = 2 THEN '宸叉敞閿�'
-                          ELSE '宸叉寕澶�'
-                         END)     AS state
+        FROM (SELECT
+                '鐗╃悊鍗�' AS cardType,
+                card.cardNum AS cardNum,
+                card.money   AS money,
+                (CASE
+                    WHEN card.state = 1 THEN '姝e父'
+                    WHEN card.state = 2 THEN '宸叉敞閿�'
+                    ELSE '宸叉寕澶�'
+                END) AS state
               FROM se_client_card card
-                       INNER JOIN se_client cli ON cli.id = card.clientId
+                INNER JOIN se_client cli ON cli.id = card.clientId
               WHERE state != 4 AND card.clientId = #{clientId,jdbcType=BIGINT}
               UNION ALL
-              SELECT '铏氭嫙鍗�'     AS cardType,
-                     vc.vc_num AS cardNum,
-                     vc.money  AS money,
-                     (CASE
-                          WHEN vc.in_use = 0 THEN '鏈娇鐢�'
-                          WHEN vc.in_use = 1 THEN '浣跨敤涓�'
-                         END)  AS state
+              SELECT
+                '铏氭嫙鍗�' AS cardType,
+                vc.vc_num AS cardNum,
+                ROUND(vc.money /100, 2)  AS money,
+                (CASE
+                    WHEN vc.in_use = 0 THEN '鏈娇鐢�'
+                    WHEN vc.in_use = 1 THEN '浣跨敤涓�'
+                END) AS state
               FROM se_virtual_card vc
-                       INNER JOIN se_client cli ON cli.id = vc.client_id
-              WHERE vc.client_id = #{clientId,jdbcType=BIGINT}
+                INNER JOIN se_client cli ON cli.id = vc.client_id
+              WHERE vc.state = 1 AND vc.client_id = #{clientId,jdbcType=BIGINT}
         ) card
         ORDER BY card.Money DESC, card.State DESC
     </select>
@@ -666,12 +668,12 @@
         SELECT
             cli.name AS clientName,
             card.cardNum,
-            (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
+            (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2  AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
             (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
             ROUND(card.money,2) AS balance
         FROM se_client_card card
             INNER JOIN se_client cli ON cli.id = card.clientId
-            INNER JOIN se_recharge_history rch ON rch.cardId = card.id
+<!--            INNER JOIN se_recharge_history rch ON rch.cardId = card.id-->
         <where>
             <if test="clientName != null and clientName != ''">
                 AND cli.name like CONCAT('%', #{clientName}, '%')
@@ -692,12 +694,12 @@
         SELECT
             cli.name AS clientName,
             card.cardNum,
-            (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
+            (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2  AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
             (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
             ROUND(card.money,2) AS balance
         FROM se_client_card card
             INNER JOIN se_client cli ON cli.id = card.clientId
-            INNER JOIN se_recharge_history rch ON rch.cardId = card.id
+<!--            INNER JOIN se_recharge_history rch ON rch.cardId = card.id-->
         <where>
             <if test="clientName != null and clientName != ''">
                 AND cli.name like CONCAT('%', #{clientName}, '%')

--
Gitblit v1.8.0