liurunyu
9 天以前 c6730faba09365bc31dba0e97d462ad542c577bf
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -781,4 +781,87 @@
  <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>
</mapper>