<?xml version="1.0" encoding="UTF-8"?> 
 | 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
 | 
<mapper namespace="com.dy.pipIrrGlobal.daoSe.SeClientCardMapper"> 
 | 
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeClientCard"> 
 | 
    <!--@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" /> 
 | 
    <result column="lossDtDt" jdbcType="TIMESTAMP" property="lossdtdt" /> 
 | 
    <result column="cancelDt" jdbcType="TIMESTAMP" property="canceldt" /> 
 | 
    <result column="unlockDt" jdbcType="TIMESTAMP" property="unlockdt" /> 
 | 
    <result column="reversalDt" jdbcType="TIMESTAMP" property="reversaldt" /> 
 | 
    <result column="refundDt" jdbcType="TIMESTAMP" property="refunddt" /> 
 | 
    <result column="consumeDt" jdbcType="TIMESTAMP" property="consumedt" /> 
 | 
    <result column="lastOper" jdbcType="TINYINT" property="lastoper" /> 
 | 
    <result column="remarks" jdbcType="VARCHAR" property="remarks" /> 
 | 
  </resultMap> 
 | 
  <sql id="Base_Column_List"> 
 | 
    <!--@mbg.generated--> 
 | 
    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"> 
 | 
    <!--@mbg.generated--> 
 | 
    select  
 | 
    <include refid="Base_Column_List" /> 
 | 
    from se_client_card 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
    <!--@mbg.generated--> 
 | 
    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, 
 | 
      protocol 
 | 
    FROM se_client_card card 
 | 
    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="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> 
 | 
  
 | 
  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard"> 
 | 
    <!--@mbg.generated--> 
 | 
    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}, #{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} 
 | 
      ) 
 | 
  
 | 
  </insert> 
 | 
  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true"> 
 | 
    <!--@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> 
 | 
      <if test="cardnum != null"> 
 | 
        cardNum, 
 | 
      </if> 
 | 
      <if test="clientid != null"> 
 | 
        clientId, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money, 
 | 
      </if> 
 | 
      <if test="state != null"> 
 | 
        `state`, 
 | 
      </if> 
 | 
      <if test="originalCardId != null"> 
 | 
        original_card_id, 
 | 
      </if> 
 | 
      <if test="createdt != null"> 
 | 
        createDt, 
 | 
      </if> 
 | 
      <if test="replacedt != null"> 
 | 
        replaceDt, 
 | 
      </if> 
 | 
      <if test="rechargedt != null"> 
 | 
        rechargeDt, 
 | 
      </if> 
 | 
      <if test="lossdtdt != null"> 
 | 
        lossDtDt, 
 | 
      </if> 
 | 
      <if test="canceldt != null"> 
 | 
        cancelDt, 
 | 
      </if> 
 | 
      <if test="unlockdt != null"> 
 | 
        unlockDt, 
 | 
      </if> 
 | 
      <if test="reversaldt != null"> 
 | 
        reversalDt, 
 | 
      </if> 
 | 
      <if test="refunddt != null"> 
 | 
        refundDt, 
 | 
      </if> 
 | 
      <if test="consumedt != null"> 
 | 
        consumeDt, 
 | 
      </if> 
 | 
      <if test="lastoper != null"> 
 | 
        lastOper, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        remarks, 
 | 
      </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> 
 | 
      <if test="cardnum != null"> 
 | 
        #{cardnum,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="originalCardId != null"> 
 | 
        #{originalCardId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="createdt != null"> 
 | 
        #{createdt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="replacedt != null"> 
 | 
        #{replacedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="rechargedt != null"> 
 | 
        #{rechargedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lossdtdt != null"> 
 | 
        #{lossdtdt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="canceldt != null"> 
 | 
        #{canceldt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="unlockdt != null"> 
 | 
        #{unlockdt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="reversaldt != null"> 
 | 
        #{reversaldt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="refunddt != null"> 
 | 
        #{refunddt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="consumedt != null"> 
 | 
        #{consumedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lastoper != null"> 
 | 
        #{lastoper,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        #{remarks,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> 
 | 
      <if test="cardnum != null"> 
 | 
        cardNum = #{cardnum,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="clientid != null"> 
 | 
        clientId = #{clientid,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money = #{money,jdbcType=FLOAT}, 
 | 
      </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}, 
 | 
      </if> 
 | 
      <if test="replacedt != null"> 
 | 
        replaceDt = #{replacedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="rechargedt != null"> 
 | 
        rechargeDt = #{rechargedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lossdtdt != null"> 
 | 
        lossDtDt = #{lossdtdt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="canceldt != null"> 
 | 
        cancelDt = #{canceldt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="unlockdt != null"> 
 | 
        unlockDt = #{unlockdt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="reversaldt != null"> 
 | 
        reversalDt = #{reversaldt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="refunddt != null"> 
 | 
        refundDt = #{refunddt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="consumedt != null"> 
 | 
        consumeDt = #{consumedt,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lastoper != null"> 
 | 
        lastOper = #{lastoper,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        remarks = #{remarks,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 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}, 
 | 
      lossDtDt = #{lossdtdt,jdbcType=TIMESTAMP}, 
 | 
      cancelDt = #{canceldt,jdbcType=TIMESTAMP}, 
 | 
      unlockDt = #{unlockdt,jdbcType=TIMESTAMP}, 
 | 
      reversalDt = #{reversaldt,jdbcType=TIMESTAMP}, 
 | 
      refundDt = #{refunddt,jdbcType=TIMESTAMP}, 
 | 
      consumeDt = #{consumedt,jdbcType=TIMESTAMP}, 
 | 
      lastOper = #{lastoper,jdbcType=TINYINT}, 
 | 
      remarks = #{remarks,jdbcType=VARCHAR} 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <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 
 | 
        cardNum, 
 | 
        '用户卡' AS cardType, 
 | 
        money, 
 | 
        (CASE 
 | 
            WHEN state = 1 THEN '正常' 
 | 
            WHEN state = 2 THEN '已注销' 
 | 
            ELSE '已挂失' 
 | 
        END) AS state 
 | 
    FROM se_client_card 
 | 
    WHERE clientId = #{clientId,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  
 | 
  <!--根据水卡编号获取操作记录列表--> 
 | 
  <select id="getOperateRecordsByCardNum" resultType="java.util.HashMap"> 
 | 
    SELECT * FROM v_operate WHERE cardNum = #{cardNum,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  
 | 
  <!--根据水卡编号获取余额--> 
 | 
  <select id="getMoneyByCardNum" resultType="java.lang.Float"> 
 | 
    SELECT money FROM se_client_card WHERE cardNum = #{cardNum,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  
 | 
  <!--根据水卡编号获取充值总额--> 
 | 
  <select id="sumRechargeByCardNum" resultType="java.lang.Float"> 
 | 
    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} 
 | 
  </select> 
 | 
  
 | 
  <!--根据水卡编号获取卡片状态:1-开卡,2-补卡,3-充值,4-挂失,5-注销,6-解锁,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 "解锁"--> 
 | 
<!--         WHEN lastOper = 7 THEN "冲正"--> 
 | 
<!--         WHEN lastOper = 8 THEN "消费"--> 
 | 
<!--        END) AS stateName--> 
 | 
<!--    FROM se_client_card--> 
 | 
<!--    WHERE cardNum = ${cardNum}--> 
 | 
    SELECT 
 | 
        (CASE 
 | 
            WHEN state = 1 THEN '正常' 
 | 
            WHEN state = 2 THEN '已注销' 
 | 
            WHEN state = 3 THEN '已挂失' 
 | 
        END) AS stateName 
 | 
    FROM se_client_card 
 | 
    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 
 | 
      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> 
 | 
  
 | 
      <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, 
 | 
<!--        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 
 | 
        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> 
 | 
  
 | 
      <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, 
 | 
<!--        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, 
 | 
        '已挂失' 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 '正常' 
 | 
    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> 
 | 
  <!--当前余额总量(物理卡)--> 
 | 
  <select id="getTotalMoneyIcCards" resultType="java.lang.Double"> 
 | 
    SELECT 
 | 
      IFNULL(SUM(money),0) AS totalMoney 
 | 
    FROM 
 | 
      `se_client_card` 
 | 
    WHERE state = 1 
 | 
  </select> 
 | 
</mapper> 
 |