From 8bcb47b7ea268061f4629e0953de4e3597fca690 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期二, 16 七月 2024 22:16:53 +0800
Subject: [PATCH] 2024-07-16 朱宝民

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml |  202 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 174 insertions(+), 28 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 f2d8c83..71d1989 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -5,11 +5,13 @@
     <!--@mbg.generated-->
     <!--@Table se_client_card-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
     <result column="cardAddr" jdbcType="VARCHAR" property="cardaddr" />
     <result column="cardNum" jdbcType="BIGINT" property="cardnum" />
     <result column="clientId" jdbcType="BIGINT" property="clientid" />
     <result column="money" jdbcType="FLOAT" property="money" />
     <result column="state" jdbcType="TINYINT" property="state" />
+    <result column="original_card_id" jdbcType="BIGINT" property="originalCardId"/>
     <result column="createDt" jdbcType="TIMESTAMP" property="createdt" />
     <result column="replaceDt" jdbcType="TIMESTAMP" property="replacedt" />
     <result column="rechargeDt" jdbcType="TIMESTAMP" property="rechargedt" />
@@ -24,7 +26,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardAddr, cardNum, clientId, money, `state`, createDt, replaceDt, rechargeDt,
+    id, protocol, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, replaceDt, rechargeDt,
     lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -52,36 +54,46 @@
 
   <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿-->
   <select id="getCardIdAndClientNum" resultType="java.util.Map">
-<!--    SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
+    <!--    SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
     SELECT
-        card.id AS cardId,
-        cli.clientNum,
-        cli.id AS clientId
+      card.id AS cardId,
+      cli.clientNum,
+      cli.id AS clientId,
+      protocol
     FROM se_client_card card
-        INNER JOIN se_client cli ON card.clientId = cli.id
+    INNER JOIN se_client cli ON card.clientId = cli.id
     WHERE card.cardNum = #{cardNum}
   </select>
 
+  <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚� -->
+  <select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map">
+    SELECT
+    cli.id AS clientId,
+    cli.name AS clientName
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.cardAddr = #{cardAddr} and  card.cardNum = #{cardNum}
+  </select>
 
   <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈡按鍗$紪鍙�-->
   <select id="getCardNumOfMax"  resultType="java.lang.String">
     SELECT cardNum
     FROM se_client_card
-    WHERE cardNum LIKE CONCAT('%',#{areaCode},'%')
+    WHERE cardNum LIKE CONCAT(#{areaCode},'%')
     ORDER BY cardNum desc
     LIMIT 0,1
   </select>
 
   <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
     <!--@mbg.generated-->
-    insert into se_client_card (id, cardAddr, cardNum, clientId,
-      money, `state`, createDt, 
+    insert into se_client_card (id, protocol, cardAddr, cardNum, clientId,
+      money, `state`, original_card_id, createDt,
       replaceDt, rechargeDt, lossDtDt, 
       cancelDt, unlockDt, reversalDt, refundDt,
       consumeDt, lastOper, remarks
       )
-    values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
-      #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{createdt,jdbcType=TIMESTAMP}, 
+    values (#{id,jdbcType=BIGINT}, #{protocol,jdbcType=VARCHAR}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
+      #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{originalCardId,jdbcType=BIGINT}, #{createdt,jdbcType=TIMESTAMP},
       #{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP}, 
       #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
       #{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}
@@ -92,6 +104,9 @@
     <!--@mbg.generated-->
     insert into se_client_card
     <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="protocol != null">
+        protocol,
+      </if>
       <if test="cardaddr != null">
         cardAddr,
       </if>
@@ -106,6 +121,9 @@
       </if>
       <if test="state != null">
         `state`,
+      </if>
+      <if test="originalCardId != null">
+        original_card_id,
       </if>
       <if test="createdt != null">
         createDt,
@@ -142,6 +160,9 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="protocol != null">
+        #{protocol,jdbcType=VARCHAR},
+      </if>
       <if test="cardaddr != null">
         #{cardaddr,jdbcType=VARCHAR},
       </if>
@@ -156,6 +177,9 @@
       </if>
       <if test="state != null">
         #{state,jdbcType=TINYINT},
+      </if>
+      <if test="originalCardId != null">
+        #{originalCardId,jdbcType=BIGINT},
       </if>
       <if test="createdt != null">
         #{createdt,jdbcType=TIMESTAMP},
@@ -196,6 +220,9 @@
     <!--@mbg.generated-->
     update se_client_card
     <set>
+      <if test="protocol != null">
+        protocol = #{protocol,jdbcType=VARCHAR},
+      </if>
       <if test="cardaddr != null">
         cardAddr = #{cardaddr,jdbcType=VARCHAR},
       </if>
@@ -210,6 +237,9 @@
       </if>
       <if test="state != null">
         `state` = #{state,jdbcType=TINYINT},
+      </if>
+      <if test="originalCardId != null">
+        `original_card_id` = #{originalCardId,jdbcType=BIGINT},
       </if>
       <if test="createdt != null">
         createDt = #{createdt,jdbcType=TIMESTAMP},
@@ -250,11 +280,13 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
     <!--@mbg.generated-->
     update se_client_card
-    set cardAddr = #{cardaddr,jdbcType=VARCHAR},
+    set protocol = #{protocol,jdbcType=VARCHAR}
+    cardAddr = #{cardaddr,jdbcType=VARCHAR},
       cardNum = #{cardnum,jdbcType=BIGINT},
       clientId = #{clientid,jdbcType=BIGINT},
       money = #{money,jdbcType=FLOAT},
       `state` = #{state,jdbcType=TINYINT},
+      original_card_id = #{originalCardId,jdbcType=BIGINT},
       createDt = #{createdt,jdbcType=TIMESTAMP},
       replaceDt = #{replacedt,jdbcType=TIMESTAMP},
       rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
@@ -333,8 +365,9 @@
     SELECT
         COUNT(*) AS recordCount
     FROM se_client_card card
-        INNER JOIN se_client cli ON card.clientId = cli.id
+      INNER JOIN se_client cli ON card.clientId = cli.id
     <where>
+      AND card.state = 1
       <if test = "clientNum != null and clientNum !=''">
         AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
@@ -354,20 +387,26 @@
     SELECT
         cli.clientNum,
         cli.name AS clientName,
-        card.cardNum,
+        cardNum,
+<!--        CASE-->
+<!--            WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
+<!--            ELSE card.cardNum-->
+<!--        END AS cardNum,-->
         cli.phone,
         cli.idCard,
         card.state AS cardState,
-        (CASE
-            WHEN card.state = 1 THEN '姝e父'
-            WHEN card.state = 2 THEN '宸叉敞閿�'
-            WHEN card.state = 3 THEN '宸叉寕澶�'
-        End) AS stateName,
+<!--        (CASE-->
+<!--            WHEN card.state = 1 THEN '姝e父'-->
+<!--            WHEN card.state = 2 THEN '宸叉敞閿�'-->
+<!--            WHEN card.state = 3 THEN '宸叉寕澶�'-->
+<!--        End) AS stateName,-->
+        '姝e父' AS stateName,
         '鍐滄埛鍗�' AS cardType,
         FORMAT(card.money, 2) AS money
     FROM se_client_card card
         INNER JOIN se_client cli ON card.clientId = cli.id
     <where>
+      AND card.state = 1
       <if test = "clientNum != null and clientNum !=''">
         AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
@@ -393,8 +432,8 @@
     SELECT
         COUNT(*) AS recordCount
     FROM se_client_card card
-        INNER JOIN se_client cli ON card.clientId = cli.id
-    WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card.clientId = card2.clientId AND card2.state = 1)
+           INNER JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.cardNum)
   </select>
 
   <!--鑾峰彇宸叉寕澶辨湭琛ュ崱鐨勮褰�-->
@@ -402,20 +441,20 @@
     SELECT
         cli.clientNum,
         cli.name AS clientName,
-        card.cardNum,
+        cardNum,
+<!--        CASE-->
+<!--          WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
+<!--          ELSE card.cardNum-->
+<!--        END AS cardNum,-->
         cli.phone,
         cli.idCard,
         card.state AS cardState,
-        (CASE
-            WHEN card.state = 1 THEN '姝e父'
-            WHEN card.state = 2 THEN '宸叉敞閿�'
-            WHEN card.state = 3 THEN '宸叉寕澶�'
-        End) AS stateName,
+        '宸叉寕澶�' AS stateName,
         '鍐滄埛鍗�' AS cardType,
         FORMAT(card.money,2) AS money
     FROM se_client_card card
         INNER JOIN se_client cli ON card.clientId = cli.id
-    WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card.clientId = card2.clientId AND card2.state = 1)
+    WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.id)
     ORDER BY card.id
     <trim prefix="limit " >
       <if test="start != null and count != null">
@@ -423,4 +462,111 @@
       </if>
     </trim>
   </select>
+
+  <!--鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け浜嬭褰曟暟閲忥紙琛ュ崱銆佽В閿佷娇鐢級-->
+  <select id="getLostCount" resultType="java.lang.Integer">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM se_client_card card
+    <where>
+      AND card.state = 3
+      <if test = "cardNum != null and cardNum > 0">
+        AND card.cardNum = #{cardNum}
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇宸茶ˉ鍗℃暟閲忥紙琛ュ崱銆佽В閿佷娇鐢級-->
+  <select id="getReplacedCount" resultType="java.lang.Integer">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM se_client_card card
+        INNER JOIN se_client_card card2 ON card2.original_card_id = card.id
+    <where>
+      <if test = "cardNum != null and cardNum > 0">
+        AND card.cardNum = #{cardNum}
+      </if>
+    </where>
+  </select>
+  <!--鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤-->
+  <select id="getCardsByClientNameAndPhoneCount" resultType="java.lang.Long">
+    SELECT
+      COUNT(*) AS recordCount
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    <where>
+      card.state = 1
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+    </where>
+    </select>
+  <!--鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�-->
+  <select id="getCardsByClientNameAndPhone" resultType="com.dy.pipIrrGlobal.voSe.VoCards2">
+    SELECT
+    card.id AS clientCardId,
+    cli.id AS clientId,
+    cli.clientNum,
+    cli.name AS clientName,
+    card.cardNum,
+    cli.phone,
+    cli.idCard,
+    card.state AS cardState,
+    (CASE
+    WHEN card.state = 1 THEN '姝e父'
+    WHEN card.state = 2 THEN '宸叉敞閿�'
+    WHEN card.state = 3 THEN '宸叉寕澶�'
+    End) AS stateName,
+    '鍐滄埛鍗�' AS cardType,
+    FORMAT(card.money, 2) AS money
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    <where>
+      card.state = 1
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+    </where>
+    ORDER BY card.id
+    <trim prefix="limit " >
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+  <!--鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃,灏忕▼搴忎娇鐢�-->
+  <select id="getCardsByClientID" resultType="com.dy.pipIrrGlobal.voWe.VoCards3">
+    SELECT
+    card.id AS clientCardId,
+    cli.id AS clientId,
+    cli.clientNum,
+    cli.name AS clientName,
+    card.cardNum,
+    cli.phone,
+    cli.idCard,
+    card.state AS cardState,
+    (CASE
+    WHEN card.state = 1 THEN '姝e父'
+    WHEN card.state = 2 THEN '宸叉敞閿�'
+    WHEN card.state = 3 THEN '宸叉寕澶�'
+    End) AS stateName,
+    '鍐滄埛鍗�' AS cardType,
+    FORMAT(card.money, 2) AS money
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    where
+      card.state = 1
+      AND cli.id like CONCAT('%',#{clientId},'%')
+
+
+    ORDER BY card.id
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0