You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
4.8 KiB

  1. /**
  2. * 我的自选股相关API接口封装
  3. * 使用utils/http.js中的拦截器封装请求方法
  4. */
  5. import { http } from '../../utils/http.js'
  6. /**
  7. * 我的自选股API接口类
  8. */
  9. class MySelectionsAPI {
  10. /**
  11. * 判断用户是否存在自选股分组
  12. * @param {Function} successCallback - 成功回调函数
  13. * @param {Function} failCallback - 失败回调函数
  14. * @param {Object} data - 请求参数
  15. * @returns {Promise}
  16. */
  17. static async checkExist(successCallback, failCallback = null, data = {}) {
  18. const url = '/api/homePage/userStock/checkExist'
  19. try {
  20. const response = await http({
  21. url: url,
  22. method: 'POST',
  23. data: data
  24. })
  25. console.log('检查用户自选股分组存在性 - 响应:', response)
  26. if (successCallback && typeof successCallback === 'function') {
  27. successCallback(response)
  28. }
  29. return response
  30. } catch (error) {
  31. console.error('检查用户自选股分组存在性 - 失败:', error)
  32. if (failCallback && typeof failCallback === 'function') {
  33. failCallback(error)
  34. }
  35. throw error
  36. }
  37. }
  38. /**
  39. * 查询用户所有自选股分组
  40. * @param {Function} successCallback - 成功回调函数
  41. * @param {Function} failCallback - 失败回调函数
  42. * @param {Object} data - 请求参数
  43. * @returns {Promise}
  44. */
  45. static async getUserStockGroupList(successCallback, failCallback = null, data = {}) {
  46. const url = '/api/homePage/userStockGroup/list'
  47. try {
  48. const response = await http({
  49. url: url,
  50. method: 'POST',
  51. data: data
  52. })
  53. console.log('查询用户自选股分组列表 - 响应:', response)
  54. if (successCallback && typeof successCallback === 'function') {
  55. successCallback(response)
  56. }
  57. return response
  58. } catch (error) {
  59. console.error('查询用户自选股分组列表 - 失败:', error)
  60. if (failCallback && typeof failCallback === 'function') {
  61. failCallback(error)
  62. }
  63. throw error
  64. }
  65. }
  66. /**
  67. * 分页查询某一个分组下的所有自选股
  68. * @param {Function} successCallback - 成功回调函数
  69. * @param {Function} failCallback - 失败回调函数
  70. * @param {Object} data - 请求参数 {groupId, pageNum, pageSize, ...}
  71. * @returns {Promise}
  72. */
  73. static async getUserStockList(successCallback, failCallback = null, data = {}) {
  74. const url = '/api/homePage/userStock/list'
  75. // 设置默认分页参数
  76. const requestData = {
  77. pageNum: 1,
  78. pageSize: 20,
  79. ...data
  80. }
  81. try {
  82. const response = await http({
  83. url: url,
  84. method: 'POST',
  85. data: requestData
  86. })
  87. console.log('分页查询分组自选股 - 响应:', response)
  88. if (successCallback && typeof successCallback === 'function') {
  89. successCallback(response)
  90. }
  91. return response
  92. } catch (error) {
  93. console.error('分页查询分组自选股 - 失败:', error)
  94. if (failCallback && typeof failCallback === 'function') {
  95. failCallback(error)
  96. }
  97. throw error
  98. }
  99. }
  100. /**
  101. * 查询默认自选股
  102. * @param {Function} successCallback - 成功回调函数
  103. * @param {Function} failCallback - 失败回调函数
  104. * @param {Object} data - 请求参数
  105. * @returns {Promise}
  106. */
  107. static async getUserOrDefault(successCallback, failCallback = null, data = {}) {
  108. const url = '/api/homePage/userStock/getUserOrDefault'
  109. try {
  110. const response = await http({
  111. url: url,
  112. method: 'POST',
  113. data: data
  114. })
  115. console.log('查询默认自选股 - 响应:', response)
  116. if (successCallback && typeof successCallback === 'function') {
  117. successCallback(response)
  118. }
  119. return response
  120. } catch (error) {
  121. console.error('查询默认自选股 - 失败:', error)
  122. if (failCallback && typeof failCallback === 'function') {
  123. failCallback(error)
  124. }
  125. throw error
  126. }
  127. }
  128. }
  129. // 导出API类
  130. export default MySelectionsAPI
  131. // 也可以导出单个方法供直接使用
  132. export const {
  133. checkExist,
  134. getUserStockGroupList,
  135. getUserStockList,
  136. getUserOrDefault
  137. } = MySelectionsAPI