<?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.dy.pipIrrGlobal.daoSe.SeRefundMapper"> 
 | 
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeRefund"> 
 | 
    <!--@mbg.generated--> 
 | 
    <!--@Table se_refund--> 
 | 
    <id column="id" jdbcType="BIGINT" property="id" /> 
 | 
    <result column="wallet_id" jdbcType="BIGINT" property="walletId" /> 
 | 
    <result column="client_id" jdbcType="BIGINT" property="clientId" /> 
 | 
    <result column="money" jdbcType="FLOAT" property="money" /> 
 | 
    <result column="refund_amount" jdbcType="FLOAT" property="refundAmount" /> 
 | 
    <result column="after_refund" jdbcType="FLOAT" property="afterRefund" /> 
 | 
    <result column="application_time" jdbcType="TIMESTAMP" property="applicationTime" /> 
 | 
    <result column="refund_status" jdbcType="TINYINT" property="refundStatus" /> 
 | 
    <result column="auditor" jdbcType="BIGINT" property="auditor" /> 
 | 
    <result column="audit_time" jdbcType="TIMESTAMP" property="auditTime" /> 
 | 
    <result column="remarks" jdbcType="VARCHAR" property="remarks" /> 
 | 
  </resultMap> 
 | 
  <sql id="Base_Column_List"> 
 | 
    <!--@mbg.generated--> 
 | 
    id, wallet_id, client_id, money, refund_amount, after_refund, application_time, refund_status,  
 | 
    auditor, audit_time, remarks 
 | 
  </sql> 
 | 
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select  
 | 
    <include refid="Base_Column_List" /> 
 | 
    from se_refund 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
    <!--@mbg.generated--> 
 | 
    delete from se_refund 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </delete> 
 | 
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRefund"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into se_refund (id, wallet_id, client_id,  
 | 
      money, refund_amount, after_refund,  
 | 
      application_time, refund_status, auditor,  
 | 
      audit_time, remarks) 
 | 
    values (#{id,jdbcType=BIGINT}, #{walletId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},  
 | 
      #{money,jdbcType=FLOAT}, #{refundAmount,jdbcType=FLOAT}, #{afterRefund,jdbcType=FLOAT},  
 | 
      #{applicationTime,jdbcType=TIMESTAMP}, #{refundStatus,jdbcType=TINYINT}, #{auditor,jdbcType=BIGINT},  
 | 
      #{auditTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}) 
 | 
  </insert> 
 | 
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRefund"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into se_refund 
 | 
    <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        id, 
 | 
      </if> 
 | 
      <if test="walletId != null"> 
 | 
        wallet_id, 
 | 
      </if> 
 | 
      <if test="clientId != null"> 
 | 
        client_id, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money, 
 | 
      </if> 
 | 
      <if test="refundAmount != null"> 
 | 
        refund_amount, 
 | 
      </if> 
 | 
      <if test="afterRefund != null"> 
 | 
        after_refund, 
 | 
      </if> 
 | 
      <if test="applicationTime != null"> 
 | 
        application_time, 
 | 
      </if> 
 | 
      <if test="refundStatus != null"> 
 | 
        refund_status, 
 | 
      </if> 
 | 
      <if test="auditor != null"> 
 | 
        auditor, 
 | 
      </if> 
 | 
      <if test="auditTime != null"> 
 | 
        audit_time, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        remarks, 
 | 
      </if> 
 | 
    </trim> 
 | 
    <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        #{id,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="walletId != null"> 
 | 
        #{walletId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="clientId != null"> 
 | 
        #{clientId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        #{money,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="refundAmount != null"> 
 | 
        #{refundAmount,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="afterRefund != null"> 
 | 
        #{afterRefund,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="applicationTime != null"> 
 | 
        #{applicationTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="refundStatus != null"> 
 | 
        #{refundStatus,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="auditor != null"> 
 | 
        #{auditor,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="auditTime != null"> 
 | 
        #{auditTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        #{remarks,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
    </trim> 
 | 
  </insert> 
 | 
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRefund"> 
 | 
    <!--@mbg.generated--> 
 | 
    update se_refund 
 | 
    <set> 
 | 
      <if test="walletId != null"> 
 | 
        wallet_id = #{walletId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="clientId != null"> 
 | 
        client_id = #{clientId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money = #{money,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="refundAmount != null"> 
 | 
        refund_amount = #{refundAmount,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="afterRefund != null"> 
 | 
        after_refund = #{afterRefund,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="applicationTime != null"> 
 | 
        application_time = #{applicationTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="refundStatus != null"> 
 | 
        refund_status = #{refundStatus,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="auditor != null"> 
 | 
        auditor = #{auditor,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="auditTime != null"> 
 | 
        audit_time = #{auditTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="remarks != null"> 
 | 
        remarks = #{remarks,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
    </set> 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRefund"> 
 | 
    <!--@mbg.generated--> 
 | 
    update se_refund 
 | 
    set wallet_id = #{walletId,jdbcType=BIGINT}, 
 | 
      client_id = #{clientId,jdbcType=BIGINT}, 
 | 
      money = #{money,jdbcType=FLOAT}, 
 | 
      refund_amount = #{refundAmount,jdbcType=FLOAT}, 
 | 
      after_refund = #{afterRefund,jdbcType=FLOAT}, 
 | 
      application_time = #{applicationTime,jdbcType=TIMESTAMP}, 
 | 
      refund_status = #{refundStatus,jdbcType=TINYINT}, 
 | 
      auditor = #{auditor,jdbcType=BIGINT}, 
 | 
      audit_time = #{auditTime,jdbcType=TIMESTAMP}, 
 | 
      remarks = #{remarks,jdbcType=VARCHAR} 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  
 | 
  <!--根据钱包ID获取待审核的退款申请对象--> 
 | 
  <select id="getRefundByWallerId" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    select 
 | 
        <include refid="Base_Column_List" /> 
 | 
    from se_refund 
 | 
    where refund_status = 1 AND wallet_id = ${walletId} 
 | 
  </select> 
 | 
  
 | 
  <!--根据指定条件获取电子钱包退款记录数--> 
 | 
  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> 
 | 
    SELECT 
 | 
        COUNT(*) AS recordCount 
 | 
    FROM se_refund ref 
 | 
        INNER JOIN se_client cli ON ref.client_id = cli.id 
 | 
    <where> 
 | 
      <if test = "refundStatus != null and refundStatus > 0"> 
 | 
        AND ref.refund_status = ${refundStatus} 
 | 
      </if> 
 | 
  
 | 
      <if test = "clientName != null and clientName !=''"> 
 | 
        AND cli.name like CONCAT('%',#{clientName},'%') 
 | 
      </if> 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
  <!--根据指定条件获取电子钱包退款记录--> 
 | 
  <select id="getWalletRefunds" resultType="com.dy.pipIrrGlobal.voSe.VoWalletRefund"> 
 | 
    SELECT 
 | 
        cli.`name`, 
 | 
        cli.clientNum, 
 | 
        cli.phone, 
 | 
        ref.refund_amount AS refundAmount, 
 | 
        ref.application_time AS applicationTime, 
 | 
        ref.refund_status AS refundStatus, 
 | 
        (CASE 
 | 
            WHEN ref.refund_status = 1 THEN '未退款' 
 | 
            WHEN ref.refund_status = 2 THEN '已退款' 
 | 
        End) AS refundStatusName, 
 | 
        ref.audit_time AS auditTime, 
 | 
        ref.remarks 
 | 
    FROM se_refund ref 
 | 
        INNER JOIN se_client cli ON ref.client_id = cli.id 
 | 
    <where> 
 | 
      <if test = "refundStatus != null and refundStatus > 0"> 
 | 
        AND ref.refund_status = ${refundStatus} 
 | 
      </if> 
 | 
  
 | 
      <if test = "clientName != null and clientName !=''"> 
 | 
        AND cli.name like CONCAT('%',#{clientName},'%') 
 | 
      </if> 
 | 
    </where> 
 | 
    ORDER BY ref.application_time 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="getRefundSum" resultType="java.lang.Double"> 
 | 
    SELECT 
 | 
        SUM(refund_amount) AS tradeAmount 
 | 
    FROM se_refund 
 | 
    <where> 
 | 
      AND refund_status = 2 
 | 
      <if test = "tradeDate != null and tradeDate !=''"> 
 | 
        AND Date(audit_time) = #{tradeDate} 
 | 
      </if> 
 | 
    </where> 
 | 
    GROUP BY Date(audit_time) 
 | 
  </select> 
 | 
</mapper> 
 |