Administrator
2024-02-01 1129c4394c86d7b44edd47d6e50d3611e92798d1
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -589,4 +589,109 @@
      </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>