CustomerSettleFeeSheetMapper.xml 5.62 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lframework.xingyun.settle.mappers.CustomerSettleFeeSheetMapper">
  <resultMap id="CustomerSettleFeeSheet"
    type="com.lframework.xingyun.settle.entity.CustomerSettleFeeSheet">
    <id column="id" property="id"/>
    <result column="code" property="code"/>
    <result column="customer_id" property="customerId"/>
    <result column="sheet_type" property="sheetType"/>
    <result column="total_amount" property="totalAmount"/>
    <result column="description" property="description"/>
    <result column="create_by" property="createBy"/>
    <result column="create_time" property="createTime"/>
    <result column="update_by" property="updateBy"/>
    <result column="update_time" property="updateTime"/>
    <result column="approve_by" property="approveBy"/>
    <result column="approve_time" property="approveTime"/>
    <result column="status" property="status"/>
    <result column="refuse_reason" property="refuseReason"/>
    <result column="settle_status" property="settleStatus"/>
  </resultMap>

  <resultMap id="CustomerSettleFeeSheetFullDto"
    type="com.lframework.xingyun.settle.dto.fee.customer.CustomerSettleFeeSheetFullDto">
    <id column="id" property="id"/>
    <result column="code" property="code"/>
    <result column="customer_id" property="customerId"/>
    <result column="sheet_type" property="sheetType"/>
    <result column="total_amount" property="totalAmount"/>
    <result column="description" property="description"/>
    <result column="create_by" property="createBy"/>
    <result column="create_time" property="createTime"/>
    <result column="update_by" property="updateBy"/>
    <result column="update_time" property="updateTime"/>
    <result column="approve_by" property="approveBy"/>
    <result column="approve_time" property="approveTime"/>
    <result column="status" property="status"/>
    <result column="refuse_reason" property="refuseReason"/>
    <result column="settle_status" property="settleStatus"/>
    <collection javaType="java.util.ArrayList"
                ofType="com.lframework.xingyun.settle.dto.fee.customer.CustomerSettleFeeSheetFullDto$SheetDetailDto"
                property="details">
      <id column="detail_id" property="id"/>
      <result column="detail_item_id" property="itemId"/>
      <result column="detail_amount" property="amount"/>
    </collection>
  </resultMap>

  <select id="query" resultMap="CustomerSettleFeeSheet">
    <include refid="CustomerSettleFeeSheetDto_sql"/>
    <where>
      <if test="vo != null">
        <if test="vo.code != null and vo.code != ''">
          AND s.code = #{vo.code}
        </if>
        <if test="vo.customerId != null and vo.customerId != ''">
          AND s.customer_id = #{vo.customerId}
        </if>
        <if test="vo.status != null">
          AND s.status = #{vo.status}
        </if>
        <if test="vo.createBy != null and vo.createBy != ''">
          AND s.create_by_id = #{vo.createBy}
        </if>
        <if test="vo.approveBy != null and vo.approveBy != ''">
          AND s.approve_by = #{vo.approveBy}
        </if>
        <if test="vo.createStartTime != null">
          AND s.create_time >= #{vo.createStartTime}
        </if>
        <if test="vo.createEndTime != null">
          <![CDATA[
                    AND s.create_time <= #{vo.createEndTime}
                    ]]>
        </if>
        <if test="vo.approveStartTime != null">
          AND s.approve_time >= #{vo.approveStartTime}
        </if>
        <if test="vo.approveEndTime != null">
          <![CDATA[
                    AND s.approve_time <= #{vo.approveEndTime}
                    ]]>
        </if>
        <if test="vo.settleStatus != null">
          AND s.settle_status = #{vo.settleStatus}
        </if>
      </if>
    </where>
    ORDER BY s.create_time DESC
  </select>

  <select id="getDetail" resultMap="CustomerSettleFeeSheetFullDto">
    <include refid="CustomerSettleFeeSheetFullDto_sql"/>
    WHERE s.id = #{id}
    ORDER BY d.order_no
  </select>

  <select id="getApprovedList" resultMap="CustomerSettleFeeSheet">
    <include refid="CustomerSettleFeeSheetDto_sql"/>
    WHERE s.customer_id = #{customerId}
    <if test="startTime != null">
      AND s.approve_time >= #{startTime}
    </if>
    <if test="endTime != null">
      <![CDATA[
      AND s.approve_time <= #{endTime}
      ]]>
    </if>
    AND s.status = 3
    AND s.settle_status = #{settleStatus}
    ORDER BY s.approve_time DESC
  </select>

  <sql id="CustomerSettleFeeSheetDto_sql">
    SELECT s.id,
           s.code,
           s.customer_id,
           s.sheet_type,
           s.total_amount,
           s.description,
           s.create_by,
           s.create_time,
           s.update_by,
           s.update_time,
           s.approve_by,
           s.approve_time,
           s.status,
           s.refuse_reason,
           s.settle_status
    FROM customer_settle_fee_sheet AS s
  </sql>
  <sql id="CustomerSettleFeeSheetFullDto_sql">
    SELECT s.id,
           s.code,
           s.customer_id,
           s.sheet_type,
           s.total_amount,
           s.description,
           s.create_by,
           s.create_time,
           s.update_by,
           s.update_time,
           s.approve_by,
           s.approve_time,
           s.status,
           s.refuse_reason,
           s.settle_status,
           d.id      AS detail_id,
           d.item_id AS detail_item_id,
           d.amount  AS detail_amount
    FROM customer_settle_fee_sheet AS s
           LEFT JOIN customer_settle_fee_sheet_detail AS d ON d.sheet_id = s.id
  </sql>
</mapper>