member.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import request from '@/config/axios'
  2. import dayjs from 'dayjs'
  3. import { TradeStatisticsComparisonRespVO } from '@/api/mall/statistics/trade'
  4. import { formatDate } from '@/utils/formatTime'
  5. /** 会员分析 Request VO */
  6. export interface MemberAnalyseReqVO {
  7. times: [dayjs.ConfigType, dayjs.ConfigType]
  8. }
  9. /** 会员分析 Response VO */
  10. export interface MemberAnalyseRespVO {
  11. visitorCount: number
  12. orderUserCount: number
  13. payUserCount: number
  14. atv: number
  15. comparison: TradeStatisticsComparisonRespVO<MemberAnalyseComparisonRespVO>
  16. }
  17. /** 会员分析对照数据 Response VO */
  18. export interface MemberAnalyseComparisonRespVO {
  19. userCount: number
  20. activeUserCount: number
  21. rechargeUserCount: number
  22. }
  23. /** 会员地区统计 Response VO */
  24. export interface MemberAreaStatisticsRespVO {
  25. areaId: number
  26. areaName: string
  27. userCount: number
  28. orderCreateCount: number
  29. orderPayCount: 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. // 查询会员统计
  50. export const getMemberSummary = () => {
  51. return request.get<MemberSummaryRespVO>({
  52. url: '/statistics/member/summary'
  53. })
  54. }
  55. // 查询会员分析数据
  56. export const getMemberAnalyse = (params: MemberAnalyseReqVO) => {
  57. return request.get<MemberAnalyseRespVO>({
  58. url: '/statistics/member/analyse',
  59. params: { times: [formatDate(params.times[0]), formatDate(params.times[1])] }
  60. })
  61. }
  62. // 按照省份,查询会员统计列表
  63. export const getMemberAreaStatisticsList = () => {
  64. return request.get<MemberAreaStatisticsRespVO[]>({
  65. url: '/statistics/member/get-area-statistics-list'
  66. })
  67. }
  68. // 按照性别,查询会员统计列表
  69. export const getMemberSexStatisticsList = () => {
  70. return request.get<MemberSexStatisticsRespVO[]>({
  71. url: '/statistics/member/get-sex-statistics-list'
  72. })
  73. }
  74. // 按照终端,查询会员统计列表
  75. export const getMemberTerminalStatisticsList = () => {
  76. return request.get<MemberTerminalStatisticsRespVO[]>({
  77. url: '/statistics/member/get-terminal-statistics-list'
  78. })
  79. }