| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?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.fs.company.mapper.CompanyWithdrawDetailMapper">
- <sql id="withdrawDetailSelectBody">
- SELECT
- l.logs_id AS logsId,
- l.logs_type AS logsType,
- c.company_name AS companyName,
- CASE
- WHEN IFNULL(l.type, 0) = 0 THEN cu.nick_name
- ELSE NULL
- END AS salesName,
- CASE
- WHEN IFNULL(l.type, 0) = 0 THEN o.order_code
- ELSE NULL
- END AS orderCode,
- CASE
- WHEN IFNULL(l.type, 0) = 0 THEN p.bank_transaction_id
- ELSE NULL
- END AS tradeNo,
- CASE
- WHEN IFNULL(l.type, 0) = 0 AND o.id IS NOT NULL THEN
- CASE o.status
- WHEN -3 THEN '已取消'
- WHEN -2 THEN '已退款'
- WHEN -1 THEN '退款中'
- WHEN 0 THEN '待支付'
- WHEN 1 THEN '待发货'
- WHEN 2 THEN '待收货'
- WHEN 3 THEN '交易完成'
- ELSE CAST(o.status AS CHAR)
- END
- ELSE '-'
- END AS orderStatusText,
- CASE
- WHEN IFNULL(l.type, 0) = 0 AND o.id IS NOT NULL THEN o.status
- ELSE NULL
- END AS orderStatus,
- CASE
- WHEN a.id IS NOT NULL
- AND (
- l.logs_type IN (4, 6)
- OR (l.logs_type = 5 AND IFNULL(l.remark, '') LIKE '%退款%')
- OR (l.logs_type = 4 AND l.money < 0)
- )
- THEN
- CASE IFNULL(a.status, -1)
- WHEN 0 THEN '用户提交售后'
- WHEN 1 THEN '平台已审核'
- WHEN 2 THEN '用户已发货'
- WHEN 3 THEN '仓库已审核'
- WHEN 4 THEN '财务已审核'
- WHEN 5 THEN '用户取消售后'
- WHEN 6 THEN '平台取消售后'
- ELSE CAST(a.status AS CHAR)
- END
- ELSE '-'
- END AS afterSalesStatusText,
- l.create_time AS recordTime,
- CASE l.logs_type
- WHEN 1 THEN '总公司充值'
- WHEN 2 THEN '总公司扣款'
- WHEN 7 THEN '分公司提现'
- WHEN 8 THEN '总公司驳回提现'
- WHEN 3 THEN '订单金额入账'
- WHEN 6 THEN '订单金额扣减'
- WHEN 4 THEN CASE WHEN l.money >= 0 THEN '订单金额入账' ELSE '订单金额扣减' END
- WHEN 5 THEN CASE
- WHEN IFNULL(l.remark, '') LIKE '%退款%' OR l.money < 0 THEN '订单金额扣减'
- ELSE '订单金额入账'
- END
- ELSE '其它'
- END AS detailTypeText,
- l.money AS amount
- FROM company_money_logs l
- INNER JOIN company c ON c.company_id = l.company_id
- LEFT JOIN fs_store_order_scrm o ON (
- IFNULL(l.type, 0) = 0
- AND l.logs_type IN (3, 4, 5, 6)
- AND o.id = CAST(NULLIF(l.business_id, '') AS UNSIGNED)
- AND o.company_id = l.company_id
- )
- LEFT JOIN company_user cu ON cu.user_id = o.company_user_id
- LEFT JOIN fs_store_payment_scrm p ON (
- p.business_code = o.order_code AND IFNULL(l.type, 0) = 0 and p.pay_time is not null
- )
- LEFT JOIN (
- SELECT a1.*
- FROM fs_store_after_sales_scrm a1
- INNER JOIN (
- SELECT order_code AS oc, MAX(id) AS mid
- FROM fs_store_after_sales_scrm
- WHERE IFNULL(is_del, 0) = 0
- GROUP BY order_code
- ) am ON a1.id = am.mid
- ) a ON a.order_code = o.order_code
- </sql>
- <sql id="withdrawDetailBaseWhere">
- WHERE l.create_time >= '2026-04-01 00:00:00'
- AND l.logs_type IN (1, 2, 3, 4, 5, 6, 7, 8)
- AND NOT (l.logs_type = 5 AND IFNULL(l.remark, '') = '订单佣金冻结')
- </sql>
- <select id="selectWithdrawDetailList" resultType="com.fs.company.vo.CompanyWithdrawDetailVO">
- <include refid="withdrawDetailSelectBody"/>
- <include refid="withdrawDetailBaseWhere"/>
- AND l.company_id = #{companyId}
- ORDER BY l.create_time DESC, l.logs_id DESC
- </select>
- <select id="selectWithdrawDetailListAdmin" resultType="com.fs.company.vo.CompanyWithdrawDetailVO">
- <include refid="withdrawDetailSelectBody"/>
- <include refid="withdrawDetailBaseWhere"/>
- <if test="p.companyIds != null and p.companyIds.size() > 0">
- AND l.company_id IN
- <foreach collection="p.companyIds" item="cid" open="(" separator="," close=")">
- #{cid}
- </foreach>
- </if>
- <if test="p.detailTypes != null and p.detailTypes.size() > 0">
- AND (
- <foreach collection="p.detailTypes" item="dt" separator=" OR ">
- <choose>
- <when test="dt == 1">
- (l.logs_type = 3 OR (l.logs_type = 4 AND l.money >= 0)
- OR (l.logs_type = 5 AND IFNULL(l.remark, '') NOT LIKE '%退款%' AND l.money >= 0))
- </when>
- <when test="dt == 2">
- (l.logs_type = 6 OR (l.logs_type = 4 AND l.money < 0)
- OR (l.logs_type = 5 AND (IFNULL(l.remark, '') LIKE '%退款%' OR l.money < 0)))
- </when>
- <when test="dt == 3">l.logs_type = 1</when>
- <when test="dt == 4">l.logs_type = 2</when>
- <when test="dt == 5">l.logs_type = 7</when>
- <when test="dt == 6">l.logs_type = 8</when>
- </choose>
- </foreach>
- )
- </if>
- ORDER BY l.create_time DESC, l.logs_id DESC
- </select>
- </mapper>
|