From d4c8e72800fcf6fbaa3804d383c7b6a23f826f3e Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 20 八月 2025 14:35:00 +0800
Subject: [PATCH] 修改bug
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 748 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 668 insertions(+), 80 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 b84d83e..ff87890 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" />
@@ -21,11 +23,13 @@
<result column="consumeDt" jdbcType="TIMESTAMP" property="consumedt" />
<result column="lastOper" jdbcType="TINYINT" property="lastoper" />
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
+ <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, cardAddr, cardNum, clientId, money, `state`, createDt, replaceDt, rechargeDt,
- lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks
+ id, protocol, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt,
+ replaceDt, rechargeDt, lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt,
+ lastOper, remarks, order_no
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
@@ -39,59 +43,33 @@
delete from se_client_card
where id = #{id,jdbcType=BIGINT}
</delete>
-
- <!--渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級-->
- <select id="getCardIdByAddr" resultType="java.lang.Long">
- SELECT id AS cardId FROM se_client_card WHERE cardAddr = #{cardAddr}
- </select>
-
- <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�-->
- <select id="getCardIdByNum" resultType="java.lang.Long">
- SELECT id AS cardId FROM se_client_card WHERE cardNum = #{cardNum}
- </select>
-
- <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿-->
- <select id="getCardIdAndClientNum" resultType="java.util.Map">
-<!-- SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
- SELECT
- card.id AS cardId,
- cli.clientNum,
- cli.id AS clientId
- FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
- WHERE card.cardNum = #{cardNum}
- </select>
-
-
- <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈡按鍗$紪鍙�-->
- <select id="getCardNumOfMax" resultType="java.lang.String">
- SELECT cardNum
- FROM se_client_card
- 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">
+ <insert id="insert" 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},
+ cancelDt, unlockDt, reversalDt,
+ refundDt, consumeDt, lastOper,
+ remarks, order_no)
+ 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}
- )
-
+ #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
+ #{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT},
+ #{remarks,jdbcType=VARCHAR}, #{orderNo,jdbcType=VARCHAR})
</insert>
- <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true">
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
<!--@mbg.generated-->
insert into se_client_card
<trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="protocol != null">
+ protocol,
+ </if>
<if test="cardaddr != null">
cardAddr,
</if>
@@ -106,6 +84,9 @@
</if>
<if test="state != null">
`state`,
+ </if>
+ <if test="originalCardId != null">
+ original_card_id,
</if>
<if test="createdt != null">
createDt,
@@ -140,8 +121,17 @@
<if test="remarks != null">
remarks,
</if>
+ <if test="orderNo != null">
+ order_no,
+ </if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="protocol != null">
+ #{protocol,jdbcType=VARCHAR},
+ </if>
<if test="cardaddr != null">
#{cardaddr,jdbcType=VARCHAR},
</if>
@@ -156,6 +146,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},
@@ -190,12 +183,18 @@
<if test="remarks != null">
#{remarks,jdbcType=VARCHAR},
</if>
+ <if test="orderNo != null">
+ #{orderNo,jdbcType=VARCHAR},
+ </if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
<!--@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 +209,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},
@@ -244,17 +246,22 @@
<if test="remarks != null">
remarks = #{remarks,jdbcType=VARCHAR},
</if>
+ <if test="orderNo != null">
+ order_no = #{orderNo,jdbcType=VARCHAR},
+ </if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<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},
@@ -265,58 +272,639 @@
refundDt = #{refunddt,jdbcType=TIMESTAMP},
consumeDt = #{consumedt,jdbcType=TIMESTAMP},
lastOper = #{lastoper,jdbcType=TINYINT},
- remarks = #{remarks,jdbcType=VARCHAR}
+ remarks = #{remarks,jdbcType=VARCHAR},
+ order_no = #{orderNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
- <!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃-->
- <select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo">
- SELECT
- cardNum,
- '鐢ㄦ埛鍗�' AS cardType,
- money,
- (CASE
- WHEN state = 1 THEN "姝e父"
- WHEN state = 2 THEN "宸叉敞閿�"
- ELSE "宸叉寕澶�"
- END) AS state
+ <!--渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級-->
+ <!--2024-06-30鍙栨秷搴熷純锛屾仮澶嶄娇鐢�-->
+ <select id="getCardIdByAddr" resultType="java.lang.Long">
+ SELECT id AS cardId
FROM se_client_card
- WHERE clientId = ${clientId}
+ WHERE cardAddr = #{cardAddr}
+ ORDER BY id DESC
+ LIMIT 1
+ </select>
+
+ <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�-->
+ <select id="getCardIdByNum" resultType="java.lang.Long">
+ SELECT id AS cardId
+ FROM se_client_card
+ WHERE cardNum = #{cardNum}
+ </select>
+
+ <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿-->
+ <select id="getCardIdAndClientNum" resultType="java.util.Map">
+ <!-- SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
+ SELECT 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
+ WHERE card.cardNum = #{cardNum}
+ </select>
+
+ <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚� -->
+ <select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.address AS clientAddress
+ 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="getCardsByAddrAndNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo1">
+ SELECT id,
+ money
+ FROM se_client_card
+ WHERE cardAddr = #{cardAddr}
+ and cardNum = #{cardNum}
+ </select>
+
+ <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈡按鍗$紪鍙�-->
+ <select id="getCardNumOfMax" resultType="java.lang.String">
+ SELECT cardNum
+ FROM se_client_card
+ WHERE cardNum LIKE CONCAT(#{areaCode}, '%')
+ ORDER BY cardNum desc
+ LIMIT 0,1
+ </select>
+
+ <update id="updateMoney">
+ update se_client_card
+ set money = #{money,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級-->
+ <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 se_client_card card
+ 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,
+ 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.state = 1 AND vc.client_id = #{clientId,jdbcType=BIGINT}
+ ) card
+ ORDER BY card.Money DESC, card.State DESC
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃-->
<select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
- SELECT * FROM v_operate WHERE cardNum = ${cardNum}
+ SELECT
+ ope.id AS orderNumber,
+ cli.villageId,
+ cli.districtTitle,
+ cli.clientNum,
+ cli.`name`,
+ card.cardNum,
+ cli.idCard,
+ cli.phone,
+ IFNULL(ope.money,0) AS money,
+ IFNULL(ope.gift,0) AS gift,
+ IFNULL(ope.card_cost,0) AS cardCost,
+ IFNULL((ope.money + ope.trade_amount + ope.gift),0) AS afterRecharge,
+ ope.payment_id AS paymentId,
+ pay.name AS paymentMethod,
+ CASE
+ WHEN ope.operate_type = 1 THEN '寮�鍗�'
+ WHEN ope.operate_type = 2 THEN '鍏呭��'
+ WHEN ope.operate_type = 3 THEN '閿�鍗�'
+ END AS operateType,
+ ope.operate_dt AS operateDt,
+ user.name AS operatorName
+ FROM se_card_operate ope
+ LEFT JOIN se_client cli ON cli.id = ope.client_id
+ LEFT JOIN se_client_card card ON card.id = ope.card_id
+ LEFT JOIN se_payment_method pay ON pay.id = ope.payment_id
+ LEFT JOIN ba_user user ON user.id = ope.operator
+<!-- WHERE ope.operate_valid = 2 AND ope.operate_type in (1,2,3) AND cardNum = #{cardNum,jdbcType=BIGINT}-->
+ <where>
+ AND ope.operate_valid = 2
+ AND ope.operate_type in (1,2,3)
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum = #{cardNum}
+ </if>
+
+ <if test="cardAddr != null and cardAddr != ''">
+ AND card.cardAddr = #{cardAddr}
+ </if>
+ </where>
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇浣欓-->
<select id="getMoneyByCardNum" resultType="java.lang.Float">
- SELECT money FROM se_client_card WHERE cardNum = ${cardNum}
+ SELECT money
+ FROM se_client_card
+<!-- WHERE cardNum = #{cardNum,jdbcType=BIGINT}-->
+ <where>
+ <if test="cardNum != null and cardNum != ''">
+ AND cardNum = #{cardNum}
+ </if>
+
+ <if test="cardAddr != null and cardAddr != ''">
+ AND cardAddr = #{cardAddr}
+ </if>
+ </where>
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鍏呭�兼�婚-->
<select id="sumRechargeByCardNum" resultType="java.lang.Float">
- SELECT
- SUM(his.amount) AS amount
+ SELECT SUM(his.amount) AS amount
FROM se_recharge_history his
- INNER JOIN se_client_card card ON his.cardId = card.id
- WHERE card.cardNum = ${cardNum}
+ INNER JOIN se_client_card card ON his.cardId = card.id
+<!-- WHERE card.cardNum = #{cardNum,jdbcType=BIGINT}-->
+ <where>
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum = #{cardNum}
+ </if>
+
+ <if test="cardAddr != null and cardAddr != ''">
+ AND card.cardAddr = #{cardAddr}
+ </if>
+ </where>
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鍗$墖鐘舵�侊細1-寮�鍗★紝2-琛ュ崱锛�3-鍏呭�硷紝4-鎸傚け锛�5-娉ㄩ攢锛�6-瑙i攣锛�7-鍐叉锛�8-娑堣垂-->
<select id="getCardStateByCardNum" resultType="java.lang.String">
- SELECT
- (CASE
- WHEN lastOper = 1 THEN "寮�鍗�"
- WHEN lastOper = 2 THEN "琛ュ崱"
- WHEN lastOper = 3 THEN "鍏呭��"
- WHEN lastOper = 4 THEN "鎸傚け"
- WHEN lastOper = 5 THEN "娉ㄩ攢"
- WHEN lastOper = 6 THEN "瑙i攣"
- WHEN lastOper = 7 THEN "鍐叉"
- WHEN lastOper = 8 THEN "娑堣垂"
- END) AS stateName
+ <!-- SELECT-->
+ <!-- (CASE-->
+ <!-- WHEN lastOper = 1 THEN "寮�鍗�"-->
+ <!-- WHEN lastOper = 2 THEN "琛ュ崱"-->
+ <!-- WHEN lastOper = 3 THEN "鍏呭��"-->
+ <!-- WHEN lastOper = 4 THEN "鎸傚け"-->
+ <!-- WHEN lastOper = 5 THEN "娉ㄩ攢"-->
+ <!-- WHEN lastOper = 6 THEN "瑙i攣"-->
+ <!-- WHEN lastOper = 7 THEN "鍐叉"-->
+ <!-- WHEN lastOper = 8 THEN "娑堣垂"-->
+ <!-- END) AS stateName-->
+ <!-- FROM se_client_card-->
+ <!-- WHERE cardNum = ${cardNum}-->
+ SELECT (CASE
+ WHEN state = 1 THEN '姝e父'
+ WHEN state = 2 THEN '宸叉敞閿�'
+ WHEN state = 3 THEN '宸叉寕澶�'
+ WHEN state = 4 THEN '鏃犳晥鍗$墖'
+ END) AS stateName
FROM se_client_card
- WHERE cardNum = ${cardNum}
+ WHERE cardNum = #{cardNum,jdbcType=BIGINT}
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤-->
+ <select id="getCardsCount" 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>
+ AND card.state = 1
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum like CONCAT('%', #{cardNum}, '%')
+ </if>
+ </where>
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�-->
+ <select id="getCards" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
+ SELECT cli.clientNum,
+ cli.name AS clientName,
+ cardNum,
+ cli.phone,
+ cli.idCard,
+ card.state AS cardState,
+ '姝e父' 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>
+ AND card.state = 1
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum like CONCAT('%', #{cardNum}, '%')
+ </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>
+
+ <!--鑾峰彇宸叉寕澶辨湭琛ュ崱鐨勮褰曟暟閲�-->
+ <select id="getUnreplacedRecordCount" 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 = 3
+ AND NOT EXISTS(SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.cardNum)
+ </select>
+
+ <!--鑾峰彇宸叉寕澶辨湭琛ュ崱鐨勮褰�-->
+ <select id="getUnreplaced" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
+ SELECT
+ cli.clientNum,
+ cli.name AS clientName,
+ cardNum,
+ cli.phone,
+ cli.idCard,
+ card.state AS cardState,
+ '宸叉寕澶�' 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 card2.original_card_id = card.id)
+ 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>
+
+ <!--鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け璁板綍鏁伴噺锛堣ˉ鍗°�佽В閿佷娇鐢級-->
+ <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
+ LEFT 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>
+ <!--褰撳墠浣欓鎬婚噺锛堢墿鐞嗗崱锛�-->
+ <select id="getTotalMoneyIcCards" resultType="java.lang.Double">
+ SELECT IFNULL(SUM(money), 0) AS totalMoney
+ FROM `se_client_card`
+ WHERE state = 1
+ </select>
+
+ <!--鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺锛屾棤鏁堝崱鐗囨帓闄ゅ湪澶�-->
+ <select id="getCountByCardAddr" resultType="java.lang.Long">
+ SELECT COUNT(*) AS recordCount
+ FROM se_client_card
+ WHERE cardAddr = #{cardAddr} AND se_client_card.state != 4
+ </select>
+
+ <!--鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺-->
+ <select id="getCountByCardAddrAndState" resultType="java.lang.Long">
+ SELECT COUNT(*) AS recordCount
+ FROM se_client_card
+ WHERE cardAddr = #{cardAddr}
+ AND state IN (1, 3)
+ </select>
+
+ <!--鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐佃褰曟暟閲�-->
+ <select id="getCardUsagesCount" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
+ SELECT
+ card.id as cardId,
+ cli.name AS clientName,
+ card.cardNum,
+ a.cl_ic_card_no,
+ card.money AS balance,
+ a.totalConsumption,
+ b.totalRecharge
+ FROM se_client_card card
+ INNER JOIN se_client cli ON cli.id = card.clientId
+ LEFT JOIN (
+ SELECT his.cl_ic_card_no, SUM(his.cl_this_money) AS totalConsumption
+ FROM rm_open_close_valve_history his
+ WHERE his.cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY his.cl_ic_card_no
+ ) a ON a.cl_ic_card_no = CAST(card.cardNum AS CHAR)
+ LEFT JOIN (
+ SELECT rch.cardId,ROUND(SUM(rch.amount),2) as totalRecharge
+ FROM se_recharge_history rch
+ WHERE rch.operate_valid = 2 AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY rch.cardId
+ ) b ON b.cardId = card.id
+ <where>
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum like CONCAT('%', #{cardNum}, '%')
+ </if>
+
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+ </where>
+ </select>
+
+ <!--鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐碉細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+ <select id="getCardUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
+ SELECT
+ card.id as cardId,
+ cli.name AS clientName,
+ card.cardNum,
+ a.cl_ic_card_no,
+ card.money AS balance,
+ a.totalConsumption,
+ b.totalRecharge
+ FROM se_client_card card
+ INNER JOIN se_client cli ON cli.id = card.clientId
+ LEFT JOIN (
+ SELECT his.cl_ic_card_no, SUM(his.cl_this_money) AS totalConsumption
+ FROM rm_open_close_valve_history his
+ WHERE his.cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY his.cl_ic_card_no
+ ) a ON a.cl_ic_card_no = CAST(card.cardNum AS CHAR)
+ LEFT JOIN (
+ SELECT rch.cardId,ROUND(SUM(rch.amount),2) as totalRecharge
+ FROM se_recharge_history rch
+ WHERE rch.operate_valid = 2 AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY rch.cardId
+ ) b ON b.cardId = card.id
+ <where>
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+
+ <if test="cardNum != null and cardNum != ''">
+ AND card.cardNum like CONCAT('%', #{cardNum}, '%')
+ </if>
+
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+ </where>
+ ORDER BY cli.name, card.cardNum
+ <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="getTotalRecharge" resultType="java.lang.Float">
+ SELECT ROUND(SUM(amount),2) AS totalRecharge
+ FROM se_recharge_history
+ WHERE operateDt BETWEEN #{timeStart} AND #{timeStop}
+ </select>
+
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱娑堣垂鎬昏-->
+ <select id="getTotalConsumption" resultType="java.lang.Float">
+ SELECT ROUND(SUM(cl_this_money),2) AS totalConsumption
+ FROM rm_open_close_valve_history
+ WHERE cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ </select>
+
+ <!--渚濇嵁姘村崱鍦板潃灏嗘渶鍚庝竴鏉℃棤鏁堢姸鎬佺殑鎸囧畾鎿嶄綔璁板綍鏀逛负鏈夋晥-->
+ <update id="turnCardValidByAddr">
+ UPDATE se_client_card
+ SET state = 1
+ WHERE id = (
+ SELECT id FROM (
+ SELECT id
+ FROM se_client_card
+ WHERE state = 4 AND cardAddr = #{cardAddr} AND lastOper = #{operateType}
+ ORDER BY id DESC
+ LIMIT 1) AS subquery
+ );
+ </update>
+
+ <!--鍏呭�兼満鐢ㄦ牴鎹鍗曞彿灏嗘按鍗℃敼涓烘湁鏁�-->
+ <update id="turnCardValidByOrderNumber">
+ UPDATE se_client_card
+ SET state = 1
+ WHERE state = 4 AND order_no = #{orderNumber}
+ </update>
+
+ <!--鏍规嵁姘村崱ID鑾峰彇鍘熸按鍗D锛岃ˉ鍗¢�氱煡涓娇鐢�-->
+ <select id="getOriginalCardIdByCardId" resultType="java.lang.Long">
+ SELECT original_card_id AS originalCardId FROM se_client_card WHERE id = #{cardId};
+ </select>
+
+ <!--鍏呭�兼満鐢ㄦ牴鎹ˉ鍗$殑璁㈠崟鍙峰皢鎸傚け姘村崱浣欓缃浂-->
+ <update id="emptyCardBalance">
+ UPDATE se_client_card
+ 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