|  |  |  | 
|---|
|  |  |  | 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} | 
|---|
|  |  |  | <!--        SELECT *--> | 
|---|
|  |  |  | <!--        FROM v_operate--> | 
|---|
|  |  |  | <!--        WHERE cardNum = #{cardNum,jdbcType=BIGINT}--> | 
|---|
|  |  |  | <!--    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,jdbcType=BIGINT} | 
|---|
|  |  |  | <!--    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 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,jdbcType=BIGINT} | 
|---|
|  |  |  | <!--    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-解锁,7-冲正,8-消费--> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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 '正常' | 
|---|
|  |  |  | 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 ( | 
|---|
|  |  |  | -- 检查管理卡表中正常(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> | 
|---|