From 4a2deb11b819dd78a8c75e244ef67ec2e48cf5f5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 21:03:28 +0800
Subject: [PATCH] 重构轮灌组修改接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml |  214 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 196 insertions(+), 18 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index c50fd4a..6bc3433 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -5,22 +5,26 @@
     <!--@mbg.generated-->
     <!--@Table se_virtual_card-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="vc_name" jdbcType="VARCHAR" property="vcName" />
+    <result column="vc_num" jdbcType="BIGINT" property="vcNum" />
     <result column="client_id" jdbcType="BIGINT" property="clientId" />
     <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="state" jdbcType="TINYINT" property="state" />
     <result column="last_operate" jdbcType="TINYINT" property="lastOperate" />
     <result column="last_operate_time" jdbcType="TIMESTAMP" property="lastOperateTime" />
     <result column="in_use" jdbcType="TINYINT" property="inUse" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="open_time" jdbcType="TIMESTAMP" property="openTime" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, vc_name, client_id, money, last_operate, last_operate_time, in_use, create_time
+    id, vc_num, client_id, money, state, last_operate, last_operate_time, in_use, intake_id, open_time, create_time
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select 
-    <include refid="Base_Column_List" />
+<!--    <include refid="Base_Column_List" />-->
+    *
     from se_virtual_card
     where id = #{id,jdbcType=BIGINT}
   </select>
@@ -31,12 +35,12 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
     <!--@mbg.generated-->
-    insert into se_virtual_card (id, vc_name, client_id, 
-      money, last_operate, last_operate_time, 
-      in_use, create_time)
-    values (#{id,jdbcType=BIGINT}, #{vcName,jdbcType=VARCHAR}, #{clientId,jdbcType=BIGINT}, 
-      #{money,jdbcType=FLOAT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, 
-      #{inUse,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP})
+    insert into se_virtual_card (id, vc_num, client_id, 
+      money, state, last_operate, last_operate_time,
+      in_use, intake_id, open_time, create_time)
+    values (#{id,jdbcType=BIGINT}, #{vcNum,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
+      #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP},
+      #{inUse,jdbcType=TINYINT}, #{intakeId,jdbcType=BIGINT},#{openTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
     <!--@mbg.generated-->
@@ -45,14 +49,17 @@
       <if test="id != null">
         id,
       </if>
-      <if test="vcName != null">
-        vc_name,
+      <if test="vcNum != null">
+        vc_num,
       </if>
       <if test="clientId != null">
         client_id,
       </if>
       <if test="money != null">
         money,
+      </if>
+      <if test="state != null">
+        state,
       </if>
       <if test="lastOperate != null">
         last_operate,
@@ -63,6 +70,12 @@
       <if test="inUse != null">
         in_use,
       </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="openTime != null">
+        open_time,
+      </if>
       <if test="createTime != null">
         create_time,
       </if>
@@ -71,14 +84,17 @@
       <if test="id != null">
         #{id,jdbcType=BIGINT},
       </if>
-      <if test="vcName != null">
-        #{vcName,jdbcType=VARCHAR},
+      <if test="vcNum != null">
+        #{vcNum,jdbcType=BIGINT},
       </if>
       <if test="clientId != null">
         #{clientId,jdbcType=BIGINT},
       </if>
       <if test="money != null">
         #{money,jdbcType=FLOAT},
+      </if>
+      <if test="state != null">
+        #{state,jdbcType=TINYINT},
       </if>
       <if test="lastOperate != null">
         #{lastOperate,jdbcType=TINYINT},
@@ -89,6 +105,12 @@
       <if test="inUse != null">
         #{inUse,jdbcType=TINYINT},
       </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="openTime != null">
+        #{openTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -98,14 +120,17 @@
     <!--@mbg.generated-->
     update se_virtual_card
     <set>
-      <if test="vcName != null">
-        vc_name = #{vcName,jdbcType=VARCHAR},
+      <if test="vcNum != null">
+        vc_num = #{vcNum,jdbcType=BIGINT},
       </if>
       <if test="clientId != null">
         client_id = #{clientId,jdbcType=BIGINT},
       </if>
       <if test="money != null">
         money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="state != null">
+        state = #{state,jdbcType=TINYINT},
       </if>
       <if test="lastOperate != null">
         last_operate = #{lastOperate,jdbcType=TINYINT},
@@ -116,6 +141,12 @@
       <if test="inUse != null">
         in_use = #{inUse,jdbcType=TINYINT},
       </if>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="openTime != null">
+        open_time = #{openTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -125,28 +156,175 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
     <!--@mbg.generated-->
     update se_virtual_card
-    set vc_name = #{vcName,jdbcType=VARCHAR},
+    set vc_num = #{vcNum,jdbcType=BIGINT},
       client_id = #{clientId,jdbcType=BIGINT},
       money = #{money,jdbcType=FLOAT},
+      state = #{state,jdbcType=TINYINT},
       last_operate = #{lastOperate,jdbcType=TINYINT},
       last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP},
       in_use = #{inUse,jdbcType=TINYINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      open_time = #{openTime,jdbcType=TIMESTAMP},
       create_time = #{createTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
-
+  <update id="updateVcCardNoUseStateByIntakeId">
+    update se_virtual_card
+    set in_use = 0,
+      intake_id = null
+    where intake_id = #{intakeId,jdbcType=BIGINT} and open_time &lt; #{now,jdbcType=TIMESTAMP}
+  </update>
+  <update id="updateMoney" >
+    update se_virtual_card
+    set money = #{money,jdbcType=FLOAT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
   <!--楠岃瘉鍐滄埛鏄惁鎷ユ湁鎸囧畾鍚嶇О鐨勮櫄鎷熷崱-->
   <select id="getRecordCountByName" resultType="java.lang.Integer">
     SELECT COUNT(*) AS recordCount
     FROM se_virtual_card
     <where>
+      AND state = 1
       <if test = "clientId != null and clientId > 0">
         AND client_id = #{clientId}
       </if>
 
       <if test = "vcName != null and vcName !=''">
-        AND vc_name = #{vcName}
+        AND vc_num = #{vcName}
       </if>
     </where>
   </select>
+
+  <!--鑾峰彇鍐滄埛鍏ㄩ儴铏氭嫙鍗�-->
+  <select id="getVCs" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard">
+    SELECT
+      id,
+      vc_num AS vcNum,
+<!--      ROUND(money / 100, 2) AS money,-->
+      money,
+      in_use AS inUse,
+      (CASE
+        WHEN money &lt;= #{alarmValue} THEN true
+        ELSE FALSE
+      END) AS isAlarmValue
+    FROM se_virtual_card
+    <where>
+      AND state = 1
+      <if test = "clientId != null">
+        AND client_id = #{clientId}
+      </if>
+    </where>
+    ORDER BY in_use, money DESC
+  </select>
+
+  <!--鏍规嵁铏氭嫙鍗D鑾峰彇铏氭嫙鍗″璞�-->
+  <select id="getVcById" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard">
+    SELECT
+        id,
+        vc_num AS vcNum,
+<!--        ROUND(money / 100,2) AS money,-->
+        money,
+        in_use AS inUse,
+        (CASE
+            WHEN in_use = 0 THEN '鏈娇鐢�'
+            WHEN in_use = 1 THEN '浣跨敤涓�'
+        END) AS inUseName
+    FROM se_virtual_card
+    WHERE state = 1 AND id = #{vcId}
+  </select>
+
+  <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱-->
+  <select id="getVcCardByNum" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
+    select
+    <include refid="Base_Column_List" />
+    FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum}
+  </select>
+
+  <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID-->
+  <select id="getVcIdByNum" resultType="java.lang.Long">
+    SELECT id FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum}
+  </select>
+
+  <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栧啘鎴穒d銆佸鍚嶃�佸湴鍧�-->
+  <select id="getClientIdAndNameByVsCardNo" resultType="java.util.Map">
+    SELECT
+    cli.id AS clientId,
+    cli.name AS clientName,
+    cli.address AS clientAddress
+    FROM se_virtual_card card
+    INNER JOIN se_client cli ON card.client_id = cli.id
+    WHERE card.state = 1 AND card.vc_num = #{vcNum}
+  </select>
+
+  <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇铏氭嫙姘村崱 -->
+  <select id="getCardsByNum"  resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo1">
+    SELECT
+    id,
+    money
+    FROM se_virtual_card
+    WHERE state = 1 AND vc_num = #{cardNum}
+  </select>
+
+  <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈣櫄鎷熷崱缂栧彿-->
+  <select id="getVcCardNumOfMax"  resultType="java.lang.String">
+    SELECT vc_num
+    FROM se_virtual_card
+    WHERE state = 1 AND vc_num LIKE CONCAT('%',#{areaCode},'%')
+    ORDER BY vc_num desc
+    LIMIT 0,1
+  </select>
+
+  <!--鑾峰彇铏氭嫙鍗″厖鍊艰褰曪紝涓嶅寘鎷凡宸叉敞閿�鍗$殑鍏呭�艰褰�-->
+  <select id="getVcRechargeRecords" resultType="com.dy.pipIrrGlobal.voSe.VoVcRecharge" >
+    SELECT
+        rec.vc_id AS vcId,
+        rec.client_id AS clientId,
+        rec.recharge_time AS rechargeTime,
+        rec.recharge_amount AS rechargeAmount,
+        rec.after_recharge AS afterRecharge,
+        '寰俊鏀粯' AS rechargeType
+    <!--        CASE-->
+    <!--            WHEN card.state = 1 THEN '姝e父閿�铏氭嫙鍗�'-->
+    <!--            WHEN card.state = 2 THEN '宸叉敞閿�铏氭嫙鍗�'-->
+    <!--        END AS cardState,-->
+    FROM se_vc_recharge rec
+        INNER JOIN se_virtual_card card ON card.id = rec.vc_id
+    <where>
+      AND card.state = 1
+      AND rec.order_state = 2
+      <if test = "vcId != null and vcId > 0">
+        AND rec.vc_id = #{vcId}
+      </if>
+    </where>
+    order by rec.recharge_time DESC
+    <if test="start != null and count != null">
+      LIMIT #{start}, #{count}
+    </if>
+  </select>
+
+  <select id="getRechargeRecordCount" resultType="java.lang.Long">
+    SELECT
+      COUNT(*)
+    FROM se_vc_recharge rec
+        INNER JOIN se_virtual_card card ON card.id = rec.vc_id
+    <where>
+      AND card.state = 1
+      AND rec.order_state = 2
+      <if test = "vcId != null and vcId > 0">
+        AND rec.vc_id = #{vcId}
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鍐滄埛ID鍙婅櫄鎷熷崱ID鑾峰彇姝e父鐘舵�佺殑铏氭嫙鍗″璞★紝閿�鍗′娇鐢�-->
+  <select id="getVcByClientIdAndVcId" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
+    SELECT * FROM se_virtual_card
+    WHERE state = 1 AND client_id = #{clientId} AND id = #{vcId}
+  </select>
+
+  <!--娉ㄩ攢铏氭嫙鍗�-->
+  <update id="cancelVc">
+    UPDATE se_virtual_card SET state = 2,  last_operate = 4 , last_operate_time = NOW()
+    WHERE id = #{vcId} AND client_id = #{clientId}
+  </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0