| <?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> |