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.

344 lines
11 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. * 游客查询默认自选股
  130. * @param {Function} successCallback - 成功回调函数
  131. * @param {Function} failCallback - 失败回调函数
  132. * @returns {Promise}
  133. */
  134. static async getDefaultStocks(successCallback, failCallback = null) {
  135. const url = '/api/homePage/userStock/getDefaultStocks'
  136. try {
  137. const response = await http({
  138. url: url,
  139. method: 'POST',
  140. data: {}
  141. })
  142. console.log('游客查询默认自选股 - 响应:', response)
  143. if (successCallback && typeof successCallback === 'function') {
  144. successCallback(response)
  145. }
  146. return response
  147. } catch (error) {
  148. console.error('游客查询默认自选股 - 失败:', error)
  149. if (failCallback && typeof failCallback === 'function') {
  150. failCallback(error)
  151. }
  152. throw error
  153. }
  154. }
  155. /**
  156. * 创建分组
  157. * @param {Function} successCallback - 成功回调函数
  158. * @param {Function} failCallback - 失败回调函数
  159. * @param {Object} data - 请求参数包含分组名字
  160. * @returns {Promise}
  161. */
  162. static async addUserStockGroup(successCallback, failCallback = null, data = {}) {
  163. const url = '/api/homePage/userStockGroup/add'
  164. try {
  165. const response = await http({
  166. url: url,
  167. method: 'POST',
  168. data: data
  169. })
  170. console.log('创建分组 - 响应:', response)
  171. if (successCallback && typeof successCallback === 'function') {
  172. successCallback(response)
  173. }
  174. return response
  175. } catch (error) {
  176. console.error('创建分组 - 失败:', error)
  177. if (failCallback && typeof failCallback === 'function') {
  178. failCallback(error)
  179. }
  180. throw error
  181. }
  182. }
  183. /**
  184. * 修改分组名称
  185. * @param {Function} successCallback - 成功回调函数
  186. * @param {Function} failCallback - 失败回调函数
  187. * @param {Object} data - 请求参数包含修改后的名字
  188. * @returns {Promise}
  189. */
  190. static async updateUserStockGroupName(successCallback, failCallback = null, data = {}) {
  191. const url = '/api/homePage/userStockGroup/updateName'
  192. try {
  193. const response = await http({
  194. url: url,
  195. method: 'POST',
  196. data: data
  197. })
  198. console.log('修改分组名称 - 响应:', response)
  199. if (successCallback && typeof successCallback === 'function') {
  200. successCallback(response)
  201. }
  202. return response
  203. } catch (error) {
  204. console.error('修改分组名称 - 失败:', error)
  205. if (failCallback && typeof failCallback === 'function') {
  206. failCallback(error)
  207. }
  208. throw error
  209. }
  210. }
  211. /**
  212. * 删除分组
  213. * @param {Function} successCallback - 成功回调函数
  214. * @param {Function} failCallback - 失败回调函数
  215. * @param {Object} data - 请求参数包含groupId
  216. * @returns {Promise}
  217. */
  218. static async deleteUserStockGroup(successCallback, failCallback = null, data = {}) {
  219. const url = '/api/homePage/userStockGroup/delete'
  220. try {
  221. const response = await http({
  222. url: url,
  223. method: 'POST',
  224. data: data
  225. })
  226. console.log('删除分组 - 响应:', response)
  227. if (successCallback && typeof successCallback === 'function') {
  228. successCallback(response)
  229. }
  230. return response
  231. } catch (error) {
  232. console.error('删除分组 - 失败:', error)
  233. if (failCallback && typeof failCallback === 'function') {
  234. failCallback(error)
  235. }
  236. throw error
  237. }
  238. }
  239. /**
  240. * 删除某一个自选股
  241. * @param {Function} successCallback - 成功回调函数
  242. * @param {Function} failCallback - 失败回调函数
  243. * @param {Object} data - 请求参数包含groupId和id
  244. * @returns {Promise}
  245. */
  246. static async deleteUserStock(successCallback, failCallback = null, data = {}) {
  247. const url = '/api/homePage/userStock/delete'
  248. try {
  249. const response = await http({
  250. url: url,
  251. method: 'POST',
  252. data: data
  253. })
  254. console.log('删除自选股 - 响应:', response)
  255. if (successCallback && typeof successCallback === 'function') {
  256. successCallback(response)
  257. }
  258. return response
  259. } catch (error) {
  260. console.error('删除自选股 - 失败:', error)
  261. if (failCallback && typeof failCallback === 'function') {
  262. failCallback(error)
  263. }
  264. throw error
  265. }
  266. }
  267. /**
  268. * 在某个分组下添加自选股
  269. * @param {Function} successCallback - 成功回调函数
  270. * @param {Function} failCallback - 失败回调函数
  271. * @param {Object} data - 请求参数包含股票代码code股票市场market和分组groupId
  272. * @returns {Promise}
  273. */
  274. static async addUserStock(successCallback, failCallback = null, data = {}) {
  275. const url = '/api/homePage/userStock/add'
  276. try {
  277. const response = await http({
  278. url: url,
  279. method: 'POST',
  280. data: data
  281. })
  282. console.log('添加自选股 - 响应:', response)
  283. if (successCallback && typeof successCallback === 'function') {
  284. successCallback(response)
  285. }
  286. return response
  287. } catch (error) {
  288. console.error('添加自选股 - 失败:', error)
  289. if (failCallback && typeof failCallback === 'function') {
  290. failCallback(error)
  291. }
  292. throw error
  293. }
  294. }
  295. }
  296. // 导出API类
  297. export default MySelectionsAPI
  298. // 也可以导出单个方法供直接使用
  299. export const {
  300. checkExist,
  301. getUserStockGroupList,
  302. getUserStockList,
  303. getUserOrDefault,
  304. getDefaultStocks,
  305. addUserStockGroup,
  306. updateUserStockGroupName,
  307. deleteUserStockGroup,
  308. deleteUserStock,
  309. addUserStock
  310. } = MySelectionsAPI