wuzeyu
2024-08-26 e10c9e150cef3096b295e6d9a3160862f4f0128d
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -321,19 +321,37 @@
    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}
    *
    FROM
    (SELECT
    '物理卡' AS cardType,
    clientCard.cardNum   AS CardNum,
    clientCard.money   AS Money,
    (CASE
    WHEN clientCard.state = 1 THEN '正常'
    WHEN clientCard.state = 2 THEN '已注销'
    ELSE '已挂失'
    END) AS State
    FROM se_client client
    LEFT JOIN se_client_card clientCard ON clientCard.clientId = client.id
    WHERE client.id = #{clientId,jdbcType=BIGINT}
    UNION ALL
    SELECT
    '虚拟卡' AS cardType,
    virtualCard.vc_num   AS CardNum,
    virtualCard.money   AS vcMoney,
    (CASE
    WHEN virtualCard.in_use = 0 THEN '未使用'
    WHEN virtualCard.in_use = 1 THEN '使用中'
    END) AS State
    FROM se_client client
    LEFT JOIN se_virtual_card virtualCard ON client.id = virtualCard.client_id
    WHERE client.id = #{clientId,jdbcType=BIGINT}
    ) card
    ORDER BY card.Money DESC , card.State DESC
  </select>
  <!--根据水卡编号获取操作记录列表-->
@@ -589,13 +607,12 @@
    ORDER BY card.id
  </select>
  <!--指定时间段内开卡总数量(物理卡)-->
  <select id="getOpenCountIcCardsCount" resultType="java.lang.Long">
  <!--当前余额总量(物理卡)-->
  <select id="getTotalMoneyIcCards" resultType="java.lang.Double">
    SELECT
      count(*)
      IFNULL(SUM(money),0) AS totalMoney
    FROM
      `se_client_card`
    WHERE
      createDt BETWEEN #{timeStart} AND #{timeStop}
    </select>
    WHERE state = 1
  </select>
</mapper>