14提现管理.sql 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. /*
  24. 提现管理视图
  25. */
  26. DROP VIEW IF EXISTS manage_withdraw;
  27. CREATE OR REPLACE VIEW manage_withdraw AS
  28. WITH
  29. withdraw_detail AS (
  30. SELECT
  31. wwr.id /* 提现记录ID */,
  32. CASE w.owner_type
  33. WHEN 4 THEN (
  34. SELECT mu.nickname
  35. FROM
  36. coach_users cu
  37. LEFT JOIN member_users mu ON cu.user_id = mu.id
  38. WHERE
  39. cu.id = w.owner_id
  40. )
  41. WHEN 3 THEN (
  42. SELECT mu.nickname
  43. FROM member_users mu
  44. WHERE
  45. mu.id = w.owner_id
  46. )
  47. WHEN 5 THEN (
  48. SELECT sar.shop_name
  49. FROM shop_auth_records sar
  50. WHERE
  51. sar.id = w.owner_id
  52. )
  53. WHEN 7 THEN (
  54. SELECT mu.nickname
  55. FROM salesmen s
  56. LEFT JOIN member_users mu ON s.user_id = mu.id
  57. WHERE
  58. s.id = w.owner_id
  59. )
  60. WHEN 6 THEN (
  61. SELECT mu.nickname
  62. FROM
  63. agent_infos ai
  64. LEFT JOIN member_users mu ON ai.user_id = mu.id
  65. WHERE
  66. ai.id = w.owner_id
  67. )
  68. END username /* 用户名称 */,
  69. w.owner_type /* 提现角色/渠道 */,
  70. wwr.amount /* 提现金额 */,
  71. wwr.created_at /* 申请时间 */,
  72. wwr.withdraw_type /* 提现方式 */,
  73. wwr.fee /* 提现手续费 */,
  74. wwr.auditor /* 审核人 */,
  75. wwr.withdraw_time /* 提现时间 */,
  76. wwr.audit_state /* 提现状态 */,
  77. wwr.area_code /* 区/县 */,
  78. w.available_balance /* 剩余金额 */
  79. FROM
  80. wallet_withdraw_records wwr /* 钱包提现记录表 */
  81. LEFT JOIN wallet w ON w.id = wwr.wallet_id /* 钱包表 */
  82. )
  83. SELECT
  84. username as username /* 用户名称 */,
  85. owner_type as owner_type /* 提现角色/渠道 */,
  86. amount as amount /* 提现金额 */,
  87. created_at as created_at /* 申请时间 */,
  88. withdraw_type as withdraw_type /* 提现方式 */,
  89. fee as fee /* 提现手续费 */,
  90. auditor as auditor /* 审核人 */,
  91. withdraw_time as withdraw_time /* 提现时间 */,
  92. audit_state as audit_state /* 提现状态 */,
  93. area_code as area_code /* 区/县 */,
  94. available_balance as available_balance /* 剩余金额 */
  95. FROM withdraw_detail /* 提现详情临时表 */;
  96. select * from manage_withdraw;