|  |  | 
 |  |  |     <!--@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" /> | 
 |  |  | 
 |  |  |   </resultMap> | 
 |  |  |   <sql id="Base_Column_List"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     id, cardAddr, cardNum, clientId, money, `state`, original_card_id, 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"> | 
 |  |  | 
 |  |  |  | 
 |  |  |   <!--根据水卡编号获取水卡表主键及农户编号--> | 
 |  |  |   <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> | 
 |  |  |  | 
 |  |  |   <!-- 根据水卡编号获取水卡对应的农户id和姓名 --> | 
 |  |  |   <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, | 
 |  |  |     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}, | 
 |  |  |     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}, | 
 |  |  | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     insert into se_client_card | 
 |  |  |     <trim prefix="(" suffix=")" suffixOverrides=","> | 
 |  |  |       <if test="protocol != null"> | 
 |  |  |         protocol, | 
 |  |  |       </if> | 
 |  |  |       <if test="cardaddr != null"> | 
 |  |  |         cardAddr, | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
 |  |  |       <if test="protocol != null"> | 
 |  |  |         #{protocol,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  |       <if test="cardaddr != null"> | 
 |  |  |         #{cardaddr,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |     <!--@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> | 
 |  |  | 
 |  |  |   <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}, | 
 |  |  | 
 |  |  |     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> | 
 |  |  | 
 |  |  |     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 '正常' | 
 |  |  |             WHEN card.state = 2 THEN '已注销' | 
 |  |  |             WHEN card.state = 3 THEN '已挂失' | 
 |  |  |         End) AS stateName, | 
 |  |  | <!--        (CASE--> | 
 |  |  | <!--            WHEN card.state = 1 THEN '正常'--> | 
 |  |  | <!--            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> | 
 |  |  |       AND card.state = 1 | 
 |  |  |       <if test = "clientNum != null and clientNum !=''"> | 
 |  |  |         AND cli.clientNum like CONCAT('%',#{clientNum},'%') | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |     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> | 
 |  |  |  | 
 |  |  |   <!--获取已挂失未补卡的记录--> | 
 |  |  | 
 |  |  |     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 '正常' | 
 |  |  |             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 | 
 |  |  | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--判断指定水卡是否为挂失状态且无补卡记录--> | 
 |  |  |   <select id="isLostAndUnreplaced" resultType="java.lang.Integer"> | 
 |  |  |   <!--根据指定水卡编号获取挂失事记录数量(补卡、解锁使用)--> | 
 |  |  |   <select id="getLostCount" 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.cardNum | 
 |  |  |     <where> | 
 |  |  |       AND card.state = 3 | 
 |  |  |       <if test = "cardNum != null and cardNum > 0"> | 
 |  |  | 
 |  |  |       </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 '正常' | 
 |  |  |     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查询正常状态的水卡列表,小程序使用--> | 
 |  |  |   <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 '正常' | 
 |  |  |     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> |