14提现管理.sql 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. -- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
  2. /*
  3. 提现角色/渠道是wallet_withdraw_records表中wallet_id关联wallet表获取owner_type字段做为提现角色,
  4. 用户名称是wallet_withdraw_records表中wallet_id关联wallet表获取owner_type钱包类型去判断用户角色,
  5. 角色有技师角色、用户角色、店铺角色、业务员角色、代理商,
  6. 如果owner_type钱包类型为技师角色则通过owner_id继续关联coach_users表判断owner_id与coach_users表id是否相同,
  7. 相同则继续通过coach_users表的user_id去member_users表去关联查询出nickname做为用户名称,
  8. 如果owner_type钱包类型为用户角色则通过owner_id与member_users表去关联查询出nickname做为用户名称,
  9. 如果owner_type钱包类型为店铺角色则通过owner_id与shop_auth_records表shop_id判断是否相同,
  10. 相同则获取shop_name做为用户名称,不相同则用户名称空着即可,
  11. 如果owner_type钱包类型为业务员角色则通过owner_id与salesmen表id判断是否相同,
  12. 相同则获取salesmen表的user_id继续去关联member_users表获取nickname字段做为用户名称,
  13. 不相同则用户名空着即可,如果owner_type钱包类型为代理商角色则通过owner_id与agent_infos表id判断是否相同,
  14. 相同则获取agent_infos表的user_id继续去关联member_users表获取nickname字段做为用户名称,不相同则用户名称空着即可,
  15. 提现金额是wallet_withdraw_records表中amount字段,申请时间是wallet_withdraw_records表中的created_at字段,
  16. 提现方式是wallet_withdraw_records表中withdraw_type字段,提现手续费是wallet_withdraw_records表中的fee字段,
  17. 审核人是wallet_withdraw_records表中的auditor字段,体现时间是wallet_withdraw_records表中的withdraw_time字段,
  18. 体现状态是wallet_withdraw_record表中的audit_state字段,区/县是wallet_withdraw_records表中的area_code字段,
  19. 剩余金额是wallet_withdraw_record表通过wallet_id关联wallet表获取available_balance字段做为剩余金额
  20. */
  21. DROP TABLE IF EXISTS report_withdraw_management;
  22. CREATE TABLE report_withdraw_management AS
  23. WITH withdraw_detail AS (
  24. SELECT
  25. wwr.id /* 提现记录ID */,
  26. CASE w.owner_type
  27. WHEN '技师角色' THEN (
  28. SELECT mu.nickname
  29. FROM coach_users cu
  30. LEFT JOIN member_users mu ON cu.user_id = mu.id
  31. WHERE cu.id = w.owner_id
  32. )
  33. WHEN '用户角色' THEN (
  34. SELECT mu.nickname
  35. FROM member_users mu
  36. WHERE mu.id = w.owner_id
  37. )
  38. WHEN '店铺角色' THEN (
  39. SELECT sar.shop_name
  40. FROM shop_auth_records sar
  41. WHERE sar.id = w.owner_id
  42. )
  43. WHEN '业务员角色' THEN (
  44. SELECT mu.nickname
  45. FROM salesmen s
  46. LEFT JOIN member_users mu ON s.user_id = mu.id
  47. WHERE s.id = w.owner_id
  48. )
  49. WHEN '代理商' THEN (
  50. SELECT mu.nickname
  51. FROM agent_infos ai
  52. LEFT JOIN member_users mu ON ai.user_id = mu.id
  53. WHERE ai.id = w.owner_id
  54. )
  55. END username /* 用户名称 */,
  56. w.owner_type /* 提现角色/渠道 */,
  57. wwr.amount /* 提现金额 */,
  58. wwr.created_at /* 申请时间 */,
  59. wwr.withdraw_type /* 提现方式 */,
  60. wwr.fee /* 提现手续费 */,
  61. wwr.auditor /* 审核人 */,
  62. wwr.withdraw_time /* 提现时间 */,
  63. wwr.audit_state /* 提现状态 */,
  64. wwr.area_code /* 区/县 */,
  65. w.available_balance /* 剩余金额 */
  66. FROM
  67. wallet_withdraw_records wwr /* 钱包提现记录表 */
  68. LEFT JOIN
  69. wallet w ON w.id = wwr.wallet_id /* 钱包表 */
  70. )
  71. SELECT
  72. username as username /* 用户名称 */,
  73. owner_type as owner_type /* 提现角色/渠道 */,
  74. amount as amount /* 提现金额 */,
  75. created_at as created_at /* 申请时间 */,
  76. withdraw_type as withdraw_type /* 提现方式 */,
  77. fee as fee /* 提现手续费 */,
  78. auditor as auditor /* 审核人 */,
  79. withdraw_time as withdraw_time /* 提现时间 */,
  80. audit_state as audit_state /* 提现状态 */,
  81. area_code as area_code /* 区/县 */,
  82. available_balance as available_balance /* 剩余金额 */
  83. FROM
  84. withdraw_detail /* 提现详情临时表 */