Administrator
2024-02-01 1129c4394c86d7b44edd47d6e50d3611e92798d1
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -289,9 +289,11 @@
      </if>
    </where>
    ORDER BY ope.operate_dt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
    </if>
    <trim prefix="limit " >
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
  <!--根据指定条件获取交易记录数-->
@@ -486,23 +488,23 @@
  <!--根据指定条件获取开卡记录-->
  <select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCardNew">
    SELECT
    CAST(ope.id AS char) AS id ,
    cli.name AS clientName,
    cli.clientNum AS clientNum,
    card.cardNum AS cardNum,
    card.state AS state,
    (CASE
    WHEN card.state = 1 THEN "正常"
    WHEN card.state = 2 THEN "已注销"
    WHEN card.state = 3 THEN "已挂失"
    END) AS stateName,
    ope.card_cost AS cardCost,
    ope.payment_id AS paymentId,
    (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
    ope.operate_dt AS operateDt
        CAST(ope.id AS char) AS id ,
        cli.name AS clientName,
        cli.clientNum AS clientNum,
        card.cardNum AS cardNum,
        card.state AS state,
        (CASE
          WHEN card.state = 1 THEN "正常"
          WHEN card.state = 2 THEN "已注销"
          WHEN card.state = 3 THEN "已挂失"
        END) AS stateName,
        ope.card_cost AS cardCost,
        ope.payment_id AS paymentId,
        (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
        ope.operate_dt AS operateDt
    FROM se_card_operate ope
    INNER JOIN se_client_card card ON ope.card_id = card.id
    INNER JOIN se_client cli ON ope.client_id = cli.id
      INNER JOIN se_client_card card ON ope.card_id = card.id
      INNER JOIN se_client cli ON ope.client_id = cli.id
    <where>
      AND ope.operate_type = 1
      <if test = "clientName != null and clientName !=''">
@@ -522,8 +524,174 @@
      </if>
    </where>
    ORDER BY ope.operate_dt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
    </if>
    <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="getReissueCardRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    select
    COUNT(*) AS recordCount
    FROM se_card_operate ope
    INNER JOIN se_client_card card ON ope.card_id = card.id
    INNER JOIN se_client cli ON ope.client_id = cli.id
    <where>
      AND ope.operate_type = 4
      <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>
      <if test = "activeTimeStart != null and activeTimeStop != null">
        AND ope.operate_dt BETWEEN #{reissueCardTimeStart} AND #{reissueCardTimeStop}
      </if>
    </where>
  </select>
  <!--根据指定条件获取补卡记录-->
  <select id="getReissueCards" resultType="com.dy.pipIrrGlobal.voSe.VoReissueCard">
    SELECT
    CAST(ope.id AS char) AS id ,
    cli.name AS clientName,
    cli.clientNum AS clientNum,
    card.cardNum AS cardNum,
    ope.card_cost AS cardCost,
    IFNULL(ope.no_trade_amount,0) AS reissueAmount,
    (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
    ope.operate_dt AS operateDt
    FROM se_card_operate ope
    INNER JOIN se_client_card card ON ope.card_id = card.id
    INNER JOIN se_client cli ON ope.client_id = cli.id
    <where>
      AND ope.operate_type = 4
      <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>
      <if test = "activeTimeStart != null and activeTimeStop != null">
        AND ope.operate_dt BETWEEN #{reissueCardTimeStart} AND #{reissueCardTimeStop}
      </if>
    </where>
    ORDER BY ope.operate_dt 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="getReceiptsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    SELECT
        COUNT(*) AS recordCount
    FROM se_card_operate ope
      INNER JOIN se_client cli ON ope.client_id = cli.id
      INNER JOIN se_client_card card ON ope.card_id = card.id
      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
      INNER JOIN ba_user us ON ope.operator = us.id
      INNER JOIN ba_district vil ON cli.villageId = vil.id
      INNER JOIN ba_district tow ON cli.townId = tow.id
    <where>
      AND ope.operate_type IN(1,2)
      <if test = "operateId != null and operateId > 0">
        AND ope.id = ${operateId}
      </if>
      <if test = "clientName != null and clientName !=''">
        AND cli.name like CONCAT('%',#{clientName},'%')
      </if>
      <if test = "timeStart != null and timeStop != null">
        AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop}
      </if>
    </where>
  </select>
  <!--根据指定条件获取收据列表-->
  <select id="getReceipts" resultType="com.dy.pipIrrGlobal.voSe.VoReceipt">
    SELECT
      CAST(ope.id AS char) AS orderNumber,
      tow.name AS townName,
      vil.name AS villageName,
      cli.`name`,
      cli.phone,
      CAST(cli.clientNum AS char) AS clientNum,
      CAST(card.cardNum AS char) AS cardNum,
      (CASE
         WHEN ope.operate_type = 1 THEN '开卡'
         WHEN ope.operate_type = 2 THEN '充值'
      END) AS operateType,
      IFNULL(ope.trade_amount,0) AS waterCost,
      IFNULL(ope.card_cost,0) AS cardCost,
      (IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS amount,
      card.money,
      pay.`name` AS paymentName,
      us.`name` AS operatorName,
      ope.operate_dt AS operateTime,
      NOW() AS currentTime
    FROM se_card_operate ope
      INNER JOIN se_client cli ON ope.client_id = cli.id
      INNER JOIN se_client_card card ON ope.card_id = card.id
      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
      INNER JOIN ba_user us ON ope.operator = us.id
      INNER JOIN ba_district vil ON cli.villageId = vil.id
      INNER JOIN ba_district tow ON cli.townId = tow.id
    <where>
      AND ope.operate_type IN(1,2)
      <if test = "operateId != null and operateId > 0">
        AND ope.id = ${operateId}
      </if>
      <if test = "clientName != null and clientName !=''">
        AND cli.name like CONCAT('%',#{clientName},'%')
      </if>
      <if test = "timeStart != null and timeStop != null">
        AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop}
      </if>
    </where>
    ORDER BY ope.operate_dt 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="getTotalAmount" parameterType="java.util.Map" resultType="java.lang.Double">
    SELECT
    SUM(IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS totalAmount
    FROM se_card_operate ope
      INNER JOIN se_client cli ON ope.client_id = cli.id
      INNER JOIN se_client_card card ON ope.card_id = card.id
      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
      INNER JOIN ba_user us ON ope.operator = us.id
      INNER JOIN ba_district vil ON cli.villageId = vil.id
      INNER JOIN ba_district tow ON cli.townId = tow.id
    <where>
      AND ope.operate_type IN(1,2)
      <if test = "operateId != null and operateId > 0">
        AND ope.id = ${operateId}
      </if>
      <if test = "clientName != null and clientName !=''">
        AND cli.name like CONCAT('%',#{clientName},'%')
      </if>
      <if test = "timeStart != null and timeStop != null">
        AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop}
      </if>
    </where>
  </select>
</mapper>