14提现管理.sql 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. WITH withdraw_detail AS (
  22. SELECT
  23. wwr.id /* 提现记录ID */,
  24. CASE w.owner_type
  25. WHEN '技师角色' THEN (
  26. SELECT mu.nickname
  27. FROM coach_users cu
  28. LEFT JOIN member_users mu ON cu.user_id = mu.id
  29. WHERE cu.id = w.owner_id
  30. )
  31. WHEN '用户角色' THEN (
  32. SELECT mu.nickname
  33. FROM member_users mu
  34. WHERE mu.id = w.owner_id
  35. )
  36. WHEN '店铺角色' THEN (
  37. SELECT sar.shop_name
  38. FROM shop_auth_records sar
  39. WHERE sar.id = w.owner_id
  40. )
  41. WHEN '业务员角色' THEN (
  42. SELECT mu.nickname
  43. FROM salesmen s
  44. LEFT JOIN member_users mu ON s.user_id = mu.id
  45. WHERE s.id = w.owner_id
  46. )
  47. WHEN '代理商' THEN (
  48. SELECT mu.nickname
  49. FROM agent_infos ai
  50. LEFT JOIN member_users mu ON ai.user_id = mu.id
  51. WHERE ai.id = w.owner_id
  52. )
  53. END username /* 用户名称 */,
  54. w.owner_type /* 提现角色/渠道 */,
  55. wwr.amount /* 提现金额 */,
  56. wwr.created_at /* 申请时间 */,
  57. wwr.withdraw_type /* 提现方式 */,
  58. wwr.fee /* 提现手续费 */,
  59. wwr.auditor /* 审核人 */,
  60. wwr.withdraw_time /* 提现时间 */,
  61. wwr.audit_state /* 提现状态 */,
  62. wwr.area_code /* 区/县 */,
  63. w.available_balance /* 剩余金额 */
  64. FROM
  65. wallet_withdraw_records wwr /* 钱包提现记录表 */
  66. LEFT JOIN
  67. wallet w ON w.id = wwr.wallet_id /* 钱包表 */
  68. )
  69. SELECT
  70. username /* 用户名称 */,
  71. owner_type /* 提现角色/渠道 */,
  72. amount /* 提现金额 */,
  73. created_at /* 申请时间 */,
  74. withdraw_type /* 提现方式 */,
  75. fee /* 提现手续费 */,
  76. auditor /* 审核人 */,
  77. withdraw_time /* 提现时间 */,
  78. audit_state /* 提现状态 */,
  79. area_code /* 区/县 */,
  80. available_balance /* 剩余金额 */
  81. FROM
  82. withdraw_detail /* 提现详情临时表 */