zhubaomin
2025-04-07 ecef3df4890be54c1da2a8a4fc1c8c1f50f1c263
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRefundMapper.xml
New file
@@ -0,0 +1,246 @@
<?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>