CompanyWithdrawDetailMapper.xml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.fs.company.mapper.CompanyWithdrawDetailMapper">
  4. <sql id="withdrawDetailSelectBody">
  5. SELECT
  6. l.logs_id AS logsId,
  7. l.logs_type AS logsType,
  8. c.company_name AS companyName,
  9. CASE
  10. WHEN IFNULL(l.type, 0) = 0 THEN cu.nick_name
  11. ELSE NULL
  12. END AS salesName,
  13. CASE
  14. WHEN IFNULL(l.type, 0) = 0 THEN o.order_code
  15. ELSE NULL
  16. END AS orderCode,
  17. CASE
  18. WHEN IFNULL(l.type, 0) = 0 THEN p.bank_transaction_id
  19. ELSE NULL
  20. END AS tradeNo,
  21. CASE
  22. WHEN IFNULL(l.type, 0) = 0 AND o.id IS NOT NULL THEN
  23. CASE o.status
  24. WHEN -3 THEN '已取消'
  25. WHEN -2 THEN '已退款'
  26. WHEN -1 THEN '退款中'
  27. WHEN 0 THEN '待支付'
  28. WHEN 1 THEN '待发货'
  29. WHEN 2 THEN '待收货'
  30. WHEN 3 THEN '交易完成'
  31. ELSE CAST(o.status AS CHAR)
  32. END
  33. ELSE '-'
  34. END AS orderStatusText,
  35. CASE
  36. WHEN IFNULL(l.type, 0) = 0 AND o.id IS NOT NULL THEN o.status
  37. ELSE NULL
  38. END AS orderStatus,
  39. CASE
  40. WHEN a.id IS NOT NULL
  41. AND (
  42. l.logs_type IN (4, 6)
  43. OR (l.logs_type = 5 AND IFNULL(l.remark, '') LIKE '%退款%')
  44. OR (l.logs_type = 4 AND l.money &lt; 0)
  45. )
  46. THEN
  47. CASE IFNULL(a.status, -1)
  48. WHEN 0 THEN '用户提交售后'
  49. WHEN 1 THEN '平台已审核'
  50. WHEN 2 THEN '用户已发货'
  51. WHEN 3 THEN '仓库已审核'
  52. WHEN 4 THEN '财务已审核'
  53. WHEN 5 THEN '用户取消售后'
  54. WHEN 6 THEN '平台取消售后'
  55. ELSE CAST(a.status AS CHAR)
  56. END
  57. ELSE '-'
  58. END AS afterSalesStatusText,
  59. l.create_time AS recordTime,
  60. CASE l.logs_type
  61. WHEN 1 THEN '总公司充值'
  62. WHEN 2 THEN '总公司扣款'
  63. WHEN 7 THEN '分公司提现'
  64. WHEN 8 THEN '总公司驳回提现'
  65. WHEN 3 THEN '订单金额入账'
  66. WHEN 6 THEN '订单金额扣减'
  67. WHEN 4 THEN CASE WHEN l.money &gt;= 0 THEN '订单金额入账' ELSE '订单金额扣减' END
  68. WHEN 5 THEN CASE
  69. WHEN IFNULL(l.remark, '') LIKE '%退款%' OR l.money &lt; 0 THEN '订单金额扣减'
  70. ELSE '订单金额入账'
  71. END
  72. ELSE '其它'
  73. END AS detailTypeText,
  74. l.money AS amount
  75. FROM company_money_logs l
  76. INNER JOIN company c ON c.company_id = l.company_id
  77. LEFT JOIN fs_store_order_scrm o ON (
  78. IFNULL(l.type, 0) = 0
  79. AND l.logs_type IN (3, 4, 5, 6)
  80. AND o.id = CAST(NULLIF(l.business_id, '') AS UNSIGNED)
  81. AND o.company_id = l.company_id
  82. )
  83. LEFT JOIN company_user cu ON cu.user_id = o.company_user_id
  84. LEFT JOIN fs_store_payment_scrm p ON (
  85. p.business_code = o.order_code AND IFNULL(l.type, 0) = 0 and p.pay_time is not null
  86. )
  87. LEFT JOIN (
  88. SELECT a1.*
  89. FROM fs_store_after_sales_scrm a1
  90. INNER JOIN (
  91. SELECT order_code AS oc, MAX(id) AS mid
  92. FROM fs_store_after_sales_scrm
  93. WHERE IFNULL(is_del, 0) = 0
  94. GROUP BY order_code
  95. ) am ON a1.id = am.mid
  96. ) a ON a.order_code = o.order_code
  97. </sql>
  98. <sql id="withdrawDetailBaseWhere">
  99. WHERE l.create_time &gt;= '2026-04-01 00:00:00'
  100. AND l.logs_type IN (1, 2, 3, 4, 5, 6, 7, 8)
  101. AND NOT (l.logs_type = 5 AND IFNULL(l.remark, '') = '订单佣金冻结')
  102. </sql>
  103. <select id="selectWithdrawDetailList" resultType="com.fs.company.vo.CompanyWithdrawDetailVO">
  104. <include refid="withdrawDetailSelectBody"/>
  105. <include refid="withdrawDetailBaseWhere"/>
  106. AND l.company_id = #{companyId}
  107. ORDER BY l.create_time DESC, l.logs_id DESC
  108. </select>
  109. <select id="selectWithdrawDetailListAdmin" resultType="com.fs.company.vo.CompanyWithdrawDetailVO">
  110. <include refid="withdrawDetailSelectBody"/>
  111. <include refid="withdrawDetailBaseWhere"/>
  112. <if test="p.companyIds != null and p.companyIds.size() &gt; 0">
  113. AND l.company_id IN
  114. <foreach collection="p.companyIds" item="cid" open="(" separator="," close=")">
  115. #{cid}
  116. </foreach>
  117. </if>
  118. <if test="p.detailTypes != null and p.detailTypes.size() &gt; 0">
  119. AND (
  120. <foreach collection="p.detailTypes" item="dt" separator=" OR ">
  121. <choose>
  122. <when test="dt == 1">
  123. (l.logs_type = 3 OR (l.logs_type = 4 AND l.money &gt;= 0)
  124. OR (l.logs_type = 5 AND IFNULL(l.remark, '') NOT LIKE '%退款%' AND l.money &gt;= 0))
  125. </when>
  126. <when test="dt == 2">
  127. (l.logs_type = 6 OR (l.logs_type = 4 AND l.money &lt; 0)
  128. OR (l.logs_type = 5 AND (IFNULL(l.remark, '') LIKE '%退款%' OR l.money &lt; 0)))
  129. </when>
  130. <when test="dt == 3">l.logs_type = 1</when>
  131. <when test="dt == 4">l.logs_type = 2</when>
  132. <when test="dt == 5">l.logs_type = 7</when>
  133. <when test="dt == 6">l.logs_type = 8</when>
  134. </choose>
  135. </foreach>
  136. )
  137. </if>
  138. ORDER BY l.create_time DESC, l.logs_id DESC
  139. </select>
  140. </mapper>