zhubaomin
2024-08-09 70d7a48cef4ebe004eb2ca411de4667e3d30f1ac
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -720,4 +720,138 @@
    WHERE
    operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 2
  </select>
  <!--指定时间段内开物理卡农户数量-->
  <select id="getOpenIcCardClientsCount" resultType="java.lang.Long">
    select
    count(*)
    from
      (
    SELECT
    sco.client_id AS clientId,
    sc.`name` AS clientName,
    sc.clientNum AS clientNum,
    sc.address AS address,
    sc.phone AS phone,
    sc.idCard AS idCard,
    COUNT(sc.id) AS openCardCount
    FROM
    `se_card_operate` sco
    INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
    sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 1 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id) c
    </select>
  <!--指定时间段内开物理卡农户-->
  <select id="getOpenIcCardClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount">
    SELECT
      sco.client_id AS clientId,
      sc.`name` AS clientName,
      sc.clientNum AS clientNum,
      sc.address AS address,
      sc.phone AS phone,
      sc.idCard AS idCard,
      COUNT(sc.id) AS openCardCount
    FROM
      `se_card_operate` sco
        INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
      sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 1 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id
    ORDER BY sc.id 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="getRechargeTotalClientsCount" resultType="java.lang.Long">
    select
    count(*)
    from
    (
    SELECT
    sco.client_id AS clientId,
    sc.`name` AS clientName,
    sc.clientNum AS clientNum,
    sc.address AS address,
    sc.phone AS phone,
    sc.idCard AS idCard,
    IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
    FROM
    `se_card_operate` sco
    INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
    sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id) c
  </select>
  <!--指定时间段内每个农户充值合计-->
  <select id="getRechargeTotalClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal">
    SELECT
      sco.client_id AS clientId,
      sc.`name` AS clientName,
      sc.clientNum AS clientNum,
      sc.address AS address,
      sc.phone AS phone,
      sc.idCard AS idCard,
      IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
    FROM
      `se_card_operate` sco
        INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
      sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id
    ORDER BY sc.id 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="getRechargeTotalGtValueClientsCount" resultType="java.lang.Long">
    select
    count(*)
    from
    (
    SELECT
    sco.client_id AS clientId,
    sc.`name` AS clientName,
    sc.clientNum AS clientNum,
    sc.address AS address,
    sc.phone AS phone,
    sc.idCard AS idCard,
    IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
    FROM
    `se_card_operate` sco
    INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
    sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id
    HAVING IFNULL(SUM(sco.trade_amount),0) > #{value}) c
  </select>
  <!--指定时间段内物理卡充值金额超过指定值的农户-->
  <select id="getRechargeTotalGtValueClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal">
    SELECT
      sco.client_id AS clientId,
      sc.`name` AS clientName,
      sc.clientNum AS clientNum,
      sc.address AS address,
      sc.phone AS phone,
      sc.idCard AS idCard,
      IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
    FROM
      `se_card_operate` sco
        INNER JOIN se_client sc ON sc.id = sco.client_id
    WHERE
      sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
    GROUP BY sc.id
    HAVING IFNULL(SUM(sco.trade_amount),0) &gt; #{value}
    ORDER BY sc.id DESC
    <trim prefix="limit " >
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
</mapper>