From 63a3920ea3d17f8a677d4edc9ffaab279367cb70 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 27 六月 2025 09:16:27 +0800
Subject: [PATCH] 水肥、气象、墒情最新、历史数据查询测试并修改bug

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 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 cd74144..76c469e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -788,4 +788,97 @@
     SET money = 0
     WHERE id = (SELECT original_card_id FROM se_client_card WHERE id = (SELECT card_id FROM se_card_operate WHERE order_no = #{orderNumber}))
   </update>
+
+  <!--鍏呭�兼満鐢ㄨ幏鍙栧啘鎴锋按鍗′俊鎭�-->
+  <select id="getTermCardInfo" resultType="com.dy.pipIrrGlobal.voSe.VoTermCard">
+    SELECT
+        card.cardNum,
+        1 AS cardType,
+        card.money,
+        card.state,
+        cli.name AS userName,
+        cli.clientNum,
+        cli.phone,
+        cli.address,
+        card.rechargeDt AS lastRechargeTime,
+        card.protocol AS cardAgreement
+    FROM se_client_card card
+        INNER JOIN se_client cli ON cli.id = card.clientId
+    WHERE card.cardAddr = #{cardAddr} AND card.state != 4
+    ORDER BY card.createDt DESC
+    LIMIT 1
+  </select>
+
+  <!--鑾峰彇宸叉寕澶辨按鍗″垪琛ㄨ褰曟暟閲�-->
+  <select id="getLostCardsCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount
+    FROM se_client_card card
+    LEFT JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.state = 3
+  </select>
+
+  <!--鑾峰彇宸叉寕澶辨按鍗″垪琛�-->
+  <select id="getLostCards" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
+    SELECT cli.clientNum,
+    cli.name AS clientName,
+    card.cardNum,
+    cli.phone,
+    cli.idCard,
+    card.state AS cardState,
+    '宸叉寕澶�' AS stateName,
+    '鍐滄埛鍗�' AS cardType,
+    FORMAT(card.money, 2) AS money
+    FROM se_client_card card
+    LEFT JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.state = 3
+    ORDER BY card.lossDtDt DESC
+    <trim prefix="limit ">
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+
+  <!--鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�-->
+  <select id="getCardByCardNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardByClientNum">
+    SELECT 
+        card.cardNum,
+        card.state AS cardState,
+        '鍐滄埛鍗�' AS cardType,
+        cli.name AS clientName,
+        cli.clientNum,
+        cli.idCard,
+        FORMAT(card.money, 1) AS money,
+        cli.phone,
+        (CASE
+            WHEN card.state = 1 THEN '姝e父'
+            WHEN card.state = 2 THEN '宸叉敞閿�'
+            WHEN card.state = 3 THEN '宸叉寕澶�'
+            WHEN card.state = 4 THEN '鏃犳晥'
+            ELSE '鏈煡'
+        END) AS stateName
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.cardNum = #{cardNum} 
+      AND card.state != 4
+    ORDER BY card.createDt DESC
+    LIMIT 1
+  </select>
+
+  <!--妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦紙绠$悊鍗¤〃 + 鍐滄埛姘村崱琛級-->
+  <select id="checkCardAddrExists" resultType="java.lang.Long">
+    SELECT COUNT(*) AS totalCount FROM (
+      -- 妫�鏌ョ鐞嗗崱琛ㄤ腑姝e父(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍锛屾帓闄ゅ凡娉ㄩ攢(2)鍜屾湭鍐欏崱(4)
+      SELECT card_addr FROM se_management_card 
+      WHERE card_addr = #{cardAddr}
+        AND state IN (1, 3)
+      
+      UNION ALL
+      
+      -- 妫�鏌ュ啘鎴锋按鍗¤〃涓甯�(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍
+      SELECT cardAddr FROM se_client_card 
+      WHERE cardAddr = #{cardAddr} 
+        AND state IN (1, 3)
+    ) AS combined_result
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0