member.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import request from '@/config/axios'
  2. import dayjs from 'dayjs'
  3. import { DataComparisonRespVO } from '@/api/mall/statistics/common'
  4. import { formatDate } from '@/utils/formatTime'
  5. /** 会员分析 Request VO */
  6. export interface MemberAnalyseReqVO {
  7. times: dayjs.ConfigType[]
  8. }
  9. /** 会员分析 Response VO */
  10. export interface MemberAnalyseRespVO {
  11. visitUserCount: number
  12. orderUserCount: number
  13. payUserCount: number
  14. atv: number
  15. comparison: DataComparisonRespVO<MemberAnalyseComparisonRespVO>
  16. }
  17. /** 会员分析对照数据 Response VO */
  18. export interface MemberAnalyseComparisonRespVO {
  19. registerUserCount: number
  20. visitUserCount: number
  21. rechargeUserCount: number
  22. }
  23. /** 会员地区统计 Response VO */
  24. export interface MemberAreaStatisticsRespVO {
  25. areaId: number
  26. areaName: string
  27. userCount: number
  28. orderCreateUserCount: number
  29. orderPayUserCount: number
  30. orderPayPrice: number
  31. }
  32. /** 会员性别统计 Response VO */
  33. export interface MemberSexStatisticsRespVO {
  34. sex: number
  35. userCount: number
  36. }
  37. /** 会员统计 Response VO */
  38. export interface MemberSummaryRespVO {
  39. userCount: number
  40. rechargeUserCount: number
  41. rechargePrice: number
  42. expensePrice: number
  43. }
  44. /** 会员终端统计 Response VO */
  45. export interface MemberTerminalStatisticsRespVO {
  46. terminal: number
  47. userCount: number
  48. }
  49. /** 会员数量统计 Response VO */
  50. export interface MemberCountRespVO {
  51. /** 用户访问量 */
  52. visitUserCount: string
  53. /** 注册用户数量 */
  54. registerUserCount: number
  55. }
  56. /** 会员注册数量 Response VO */
  57. export interface MemberRegisterCountRespVO {
  58. date: string
  59. count: number
  60. }
  61. // 查询会员统计
  62. export const getMemberSummary = () => {
  63. return request.get<MemberSummaryRespVO>({
  64. url: '/statistics/member/summary'
  65. })
  66. }
  67. // 查询会员分析数据
  68. export const getMemberAnalyse = (params: MemberAnalyseReqVO) => {
  69. return request.get<MemberAnalyseRespVO>({
  70. url: '/statistics/member/analyse',
  71. params: { times: [formatDate(params.times[0]), formatDate(params.times[1])] }
  72. })
  73. }
  74. // 按照省份,查询会员统计列表
  75. export const getMemberAreaStatisticsList = () => {
  76. return request.get<MemberAreaStatisticsRespVO[]>({
  77. url: '/statistics/member/area-statistics-list'
  78. })
  79. }
  80. // 按照性别,查询会员统计列表
  81. export const getMemberSexStatisticsList = () => {
  82. return request.get<MemberSexStatisticsRespVO[]>({
  83. url: '/statistics/member/sex-statistics-list'
  84. })
  85. }
  86. // 按照终端,查询会员统计列表
  87. export const getMemberTerminalStatisticsList = () => {
  88. return request.get<MemberTerminalStatisticsRespVO[]>({
  89. url: '/statistics/member/terminal-statistics-list'
  90. })
  91. }
  92. // 获得用户数量量对照
  93. export const getUserCountComparison = () => {
  94. return request.get<DataComparisonRespVO<MemberCountRespVO>>({
  95. url: '/statistics/member/user-count-comparison'
  96. })
  97. }
  98. // 获得会员注册数量列表
  99. export const getMemberRegisterCountList = (
  100. beginTime: dayjs.ConfigType,
  101. endTime: dayjs.ConfigType
  102. ) => {
  103. return request.get<MemberRegisterCountRespVO[]>({
  104. url: '/statistics/member/register-count-list',
  105. params: { times: [formatDate(beginTime), formatDate(endTime)] }
  106. })
  107. }