requests.ts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. import { httpGet, httpPost, httpPut } from '../../utils/http'
  2. import { Schedule } from '../models/schedule'
  3. import {
  4. Category,
  5. Content,
  6. DictType,
  7. MaterialDealer,
  8. MaterialDealerDetail,
  9. MaterialDealerHomePage,
  10. MaterialDealerRes,
  11. Moment,
  12. Comment,
  13. Activity,
  14. BannerMode,
  15. Banner,
  16. StudyTour,
  17. } from '../models/moment'
  18. import dayjs from 'dayjs'
  19. export const getUserInfo = () =>
  20. httpGetMock<any>({
  21. avatar: 'https://via.placeholder.com/21x21',
  22. nickname: '苏小萌',
  23. })
  24. export const getSchedule = () =>
  25. httpGetMock<Schedule>({
  26. name: '东京艺术设计研习营',
  27. cover: 'https://via.placeholder.com/375x297',
  28. items: [
  29. {
  30. title: '早稻田大学课程',
  31. time: '9:00',
  32. content:
  33. '是位于日本东京都新宿区的一所著名的私立大学。它由早稻田大学的创始人大隈重信于1882年创立,是日本超级国际化大学计划(Top Global University Project)选定的大学之一,也是日本顶尖的高等教育机构之一。',
  34. momentExample: 'https://via.placeholder.com/285x157',
  35. monentHint: '*说明:打卡地XX,收集上课素材',
  36. },
  37. {
  38. title: '早稻田大学博物馆参观',
  39. time: '11:00',
  40. content:
  41. '早稻田大学拥有多座博物馆,‌其中最著名的是早稻田大学历史馆。‌早稻田大学历史馆收藏、‌展示着著名校友在运动方面的杰出表现和成就,‌馆内的解说牌以日语和英语标示,‌展现了传统样式风格的建筑。',
  42. momentExample: 'https://via.placeholder.com/285x157',
  43. monentHint: '*说明:打卡地XX,收集上课素材',
  44. },
  45. ],
  46. })
  47. export const getMoment = () =>
  48. httpGetMock<Moment>({
  49. author: {
  50. avatar: 'https://via.placeholder.com/35x35',
  51. nickname: '苏小萌',
  52. level: '0',
  53. },
  54. content: '用心做好设计,为客户创造美好家居环境',
  55. images: [
  56. 'https://via.placeholder.com/165x220',
  57. 'https://via.placeholder.com/220x220',
  58. 'https://via.placeholder.com/165x220',
  59. ],
  60. tags: ['意大利游学设计班'],
  61. shares: 0,
  62. comments: 0,
  63. likes: 0,
  64. createdAt: dayjs('2024-07-15').toDate(),
  65. commentList: [],
  66. })
  67. export const getClassmates = () =>
  68. httpGetMock<any[]>([
  69. {
  70. avatar: 'https://via.placeholder.com/35x35',
  71. nickname: '苏小萌',
  72. level: '0',
  73. },
  74. {
  75. avatar: 'https://via.placeholder.com/35x35',
  76. nickname: '苏小萌',
  77. level: '0',
  78. },
  79. {
  80. avatar: 'https://via.placeholder.com/35x35',
  81. },
  82. ])
  83. export const getClassmate = () =>
  84. httpGetMock<any>({
  85. title: '2023同学荟|清华空间环境艺术设计研修班 阔步向未来',
  86. author: {
  87. avatar: 'https://via.placeholder.com/35x35',
  88. nickname: '苏小萌',
  89. level: '0',
  90. },
  91. viewNum: 125,
  92. createdAt: dayjs('2024-07-15').toDate(),
  93. content: '<div>111111</div>',
  94. })
  95. export const getMaterialDealers = () =>
  96. httpGetMock<any[]>([
  97. {
  98. name: 'IMOLA瓷砖',
  99. icon: 'https://via.placeholder.com/78x78',
  100. brandType: '进口品牌',
  101. type: '瓷砖',
  102. views: 1000,
  103. createdAt: dayjs('2024-07-15').toDate(),
  104. },
  105. {
  106. name: 'IMOLA瓷砖',
  107. icon: 'https://via.placeholder.com/78x78',
  108. brandType: '进口品牌',
  109. type: '瓷砖',
  110. views: 1000,
  111. createdAt: dayjs('2024-07-15').toDate(),
  112. },
  113. ])
  114. export const weixinMiniAppLogin = (phoneCode: string, loginCode: string, state: string) =>
  115. httpPost<any>('/app-api/member/auth/weixin-mini-app-login', {
  116. phoneCode,
  117. loginCode,
  118. state,
  119. })
  120. export const getMemberUserInfo = () => httpGet<any>('/app-api/member/user/get')
  121. export const updateMemberUserInfo = (data = {}) => httpPut<any>('/app-api/member/user/update', data)
  122. export const getByDictType = (
  123. type: string | 'member_channel_source' | 'member_spatial_expertise_type' | DictType,
  124. ) =>
  125. httpGet<
  126. {
  127. label: string
  128. value: string
  129. dictType: string
  130. status: number
  131. }[]
  132. >('/app-api/system/dict-data/type', { type })
  133. export const validateReferrerCode = (data: { code: string }) =>
  134. httpPost('/app-api/member/user-auth-info/referrer-validate-code', {}, data)
  135. export const createUserAuthInfo = (
  136. data: Partial<{
  137. id: number
  138. userId: number
  139. designerName: string
  140. gender: number
  141. mobile: string
  142. channelSource: number
  143. referrer: string
  144. employer: string
  145. spatialExpertiseType: number
  146. attachment: string
  147. auditStatus: number
  148. remark: string
  149. }>,
  150. ) => httpPost<any>('/app-api/member/user-auth-info/create', data)
  151. export const getCircles = (query: { tagName?: string; circleType?: string; stylistId?: string }) =>
  152. httpGet<{
  153. list: {
  154. id: number
  155. headUrl?: string
  156. stylistId?: number
  157. stylistName?: string
  158. marketing?: string
  159. circleDesc?: string
  160. tagName?: string
  161. detailsType?: string
  162. detailsUrl?: string
  163. detailsDesc?: string
  164. circleType?: string
  165. spaceType?: string
  166. designStyle?: string
  167. spaceAddr?: string
  168. customerDemand?: string
  169. createTime: number
  170. bannerUrls: string[]
  171. shareCount?: number
  172. upvoteCount?: number
  173. ownUpvote: boolean
  174. reviewCount: number
  175. }[]
  176. }>('/app-api/member/circle/page', query)
  177. export const createCircle = (data: Partial<Circle>) =>
  178. httpPost<any>('/app-api/member/circle/create', data)
  179. export const getCircle = (id: string) =>
  180. httpGet<Partial<CircleRes>>('/app-api/member/circle/get', { id })
  181. export const shareCircle = (id: string) => httpGet('/app-api/member/circle/share', { id })
  182. export const getCircleUpvotes = (id) =>
  183. httpGet<{
  184. total: number
  185. list: {
  186. id: number
  187. circleId: number
  188. userId: number
  189. upvpteTime: number
  190. createTime: number
  191. userName: string
  192. }[]
  193. }>('/app-api/member/circle-upvote/page', { circleId: id })
  194. export const createCircleUpvote = (data: { circleId: number; userId: number; userName: string }) =>
  195. httpPost('/app-api/member/circle-upvote/create', data)
  196. /**
  197. * 取消圈子点赞
  198. */
  199. export const cancelCircleUpvote = (query: { id: string }) =>
  200. httpGet('/app-api/member/circle-upvote/delete', query)
  201. export const createCircleReview = (
  202. data: Partial<{
  203. circleId: string
  204. userId: string | number
  205. userName: string
  206. reviewContent: string
  207. replayReviewId: string
  208. }>,
  209. ) => httpPost<any>('/app-api/member/circle-review/create', data)
  210. export const deleteCircleReview = (id) => httpGet('/app-api/member/circle-review/delete', { id })
  211. export const getCircleReviews = (query: { circleId: string }) =>
  212. httpGet<{
  213. list: Comment[]
  214. }>('/app-api/member/circle-review/getCircleReviewByCircleId', query)
  215. export const createCircleReviewUpvote = (data: {
  216. circleId: number
  217. userId: number
  218. userName: string
  219. reviewId: number
  220. }) => httpPost('/app-api/member/circle-review-upvote/create', data)
  221. export const cancelCircleReviewUpvote = (query: {
  222. circleId: string
  223. userId: string
  224. reviewId: string
  225. }) => httpGet('/app-api/member/circle-review-upvote/cancel', query)
  226. export const getCircleReviewUpvotes = (query: { circleId: string; reviewId?: string }) =>
  227. httpGet('/app-api/member/circle-review-upvote/page', query)
  228. export const getReviewReplay = (query: { id: string }) =>
  229. httpGet('/app-api/member/circle-review/getReviewReplay', query)
  230. export const getTasks = (query) =>
  231. httpGet<{
  232. list: {
  233. id: number
  234. taskKey: string
  235. taskValue: string
  236. createTime: string
  237. sort: number
  238. status: number
  239. }[]
  240. }>('/app-api/basicsetting/set-task-center/page', query)
  241. export const getCircleTags = (query) =>
  242. httpGet<{
  243. list: {
  244. id: number
  245. labelName: string
  246. labelType: number
  247. usageCount: number
  248. creator: string
  249. createTime: number
  250. }[]
  251. }>('/app-api/basicsetting/set-label/page', query)
  252. export const getSetIndexConfigs = (query = {}) =>
  253. httpGet<{
  254. list: {
  255. id: number
  256. name: string
  257. indexPromotionalVideoImage: string
  258. coverVideoImage: string
  259. sort: number
  260. playCount: number
  261. status: number
  262. createTime: string
  263. }[]
  264. }>('/app-api/basicsetting/set-index-config/page', query)
  265. /**
  266. * 获取材料商列表
  267. * @param query {{brandLevel: '1'|'2'}}
  268. * @returns {Promise<*>}
  269. */
  270. export const getMaterials = (query = {}) =>
  271. httpGet<{
  272. list: MaterialDealer[]
  273. }>('/app-api/member/materials/page', query)
  274. export const getAppMaterials = () =>
  275. httpGet<MaterialDealerRes[]>('/app-api/member/materials/appMaterialsList')
  276. export const getAppMaterial = (id: number) =>
  277. httpGet<MaterialDealerDetail>('/app-api/member/materials/queryHomePage', { materialsId: id })
  278. export const getMaterialHomePage = (id: number) =>
  279. httpGet<Partial<MaterialDealerHomePage>>('/app-api/member/materials/queryHomePage', {
  280. materialsId: id,
  281. })
  282. export const getMaterialDetail = (query: { id: string }) =>
  283. httpGet<MaterialDealerDetail>('/app-api/member/materials/getDetail', query)
  284. export const createMaterialsReferrer = (data) =>
  285. httpPost('/app-api/member/materials-referrer/create', data)
  286. export const getContents = (query: {
  287. contentType?: '1' | '2' | '3'
  288. contentCategory?: string
  289. pageSize?: string
  290. }) => httpGet<{ list: Content[] }>('/app-api/member/content-manger/page', query)
  291. export const getAllCategories = () =>
  292. httpGet<Category[]>('/app-api/member/categories/getAllCategories')
  293. export const getContent = (query: { id: string }) =>
  294. httpGet<Content>('/app-api/member/content-manger/get', query)
  295. export const getProductCategories = () =>
  296. httpGet<Category[]>('/app-api/member/product-type/getAllProductCategories', {})
  297. export const getProducts = (query: { oneCategory?: string; secondCategory?: string }) =>
  298. httpPost<{
  299. list: {
  300. prodcutName: string
  301. productId: string
  302. needPoints: number
  303. points: number
  304. productPrice: string
  305. productCoverImgUrl: string
  306. productDetailsImgUrl: string
  307. contentDesc: string
  308. productType: string
  309. oneCategory: any
  310. secondCategory: string
  311. }[]
  312. }>('/app-api/member/product/page', {}, query)
  313. export const getProduct = (id: string) =>
  314. httpGet<{
  315. id: number
  316. prodcutName: string
  317. productId: string
  318. oneCategory: any
  319. oneCategoryName: any
  320. secondCategory: string
  321. secondCategoryName: any
  322. isRestrict: number
  323. productRepertory: any
  324. productPrice: string
  325. productType: number
  326. vendorId: any
  327. vendorName: string
  328. needPoints: number
  329. points: number
  330. gainType: number
  331. exchangeDesc: string
  332. productCoverImgUrl: string
  333. productDetailsImgUrl: string
  334. contentDesc: string
  335. status: number
  336. exchangeCount: any
  337. memberLevelId: any
  338. memberLevelName: any
  339. favourablePoints: any
  340. favourableEndDate: any
  341. createTime: number
  342. updateTime: number
  343. }>('/app-api/member/product/detail', { productId: id })
  344. export const getProductItemBuy = (query: { userId: number }) =>
  345. httpPost<{
  346. list: {
  347. productId: string
  348. prodcutName: string
  349. oneCategory: any
  350. secondCategory: string
  351. isRestrict: number
  352. productRepertory: any
  353. productPrice: string
  354. productType: string
  355. vendorId: any
  356. vendorName: string
  357. needPoints: number
  358. points?: number
  359. gainType: number
  360. exchangeDesc: any
  361. productCoverImgUrl: string
  362. productDetailsImgUrl: string
  363. contentDesc: string
  364. status: number
  365. exchangeCount: any
  366. memberLevelId: any
  367. memberLevelName: any
  368. favourablePoints?: number
  369. favourableEndDate?: number
  370. favourableStatus: number
  371. count: number
  372. createTime: any
  373. }[]
  374. total: number
  375. }>('/app-api/member/product-item-buy/select', query)
  376. /**
  377. * 商品添加到购物车
  378. */
  379. export const createProductItemBuy = (data: {
  380. doList: {
  381. createTime?: string
  382. updateTime?: string
  383. creator?: string
  384. updater?: string
  385. deleted?: boolean
  386. id?: number
  387. productId?: string
  388. userId?: number
  389. }[]
  390. }) => httpPost('/app-api/member/product-item-buy/create', data)
  391. /**
  392. * 从购物车删除商品
  393. */
  394. export const deleteProductItemBuy = (data: {
  395. doList: {
  396. createTime?: string
  397. updateTime?: string
  398. creator?: string
  399. updater?: string
  400. deleted?: boolean
  401. id?: number
  402. productId?: string
  403. userId?: number
  404. }[]
  405. }) => httpPost('/app-api/member/product-item-buy/delete', data)
  406. /**
  407. * 商城下单
  408. */
  409. export const productPlacing = (data: {
  410. isShoppingCart: number
  411. userId: number
  412. list: {
  413. orderNo?: string
  414. productId?: string
  415. points?: number
  416. nums?: number
  417. }[]
  418. couponList: {
  419. couponId: number
  420. brandPoints: number
  421. }[]
  422. totalsPoints?: number
  423. totalsCouponPoints?: number
  424. totalsCurrPoints?: number
  425. }) => httpPost('/app-api/member/points-order/placing', data)
  426. /**
  427. * 订单结算
  428. */
  429. export const orderPay = (data: {
  430. isShoppingCart: number
  431. userId: number
  432. list: {
  433. orderNo?: string
  434. productId?: string
  435. points?: number
  436. nums?: number
  437. }[]
  438. couponList: {
  439. couponId: number
  440. brandPoints: number
  441. }[]
  442. totalsPoints?: number
  443. totalsCouponPoints?: number
  444. totalsCurrPoints?: number
  445. }) => httpPost(`/app-api/member/points-order/placingPay`, data)
  446. export const getPointsOrders = (query) =>
  447. httpGet<{ list: []; total: number }>('/app-api/member/points-order/page', query)
  448. export const getActivities = (query) =>
  449. httpGet<{
  450. list: Activity[]
  451. }>('/app-api/member/activity/page', query)
  452. export const getActivity = (id: string) =>
  453. httpGet<Partial<Activity>>('/app-api/member/activity/get', { id })
  454. export const activitySignup = (data: { id: number }) =>
  455. httpPost('/app-api/member/activity/signup', data)
  456. /**
  457. * 获取活动报名列表
  458. */
  459. export const getActivitySignups = (query: { activityId: string }) =>
  460. httpGet<{
  461. list: {
  462. id: number
  463. activityId: number
  464. userId: number
  465. applyTime: number
  466. applyType: number
  467. applyStatus: number
  468. applyPoints: any
  469. isJoin: string
  470. createTime: number
  471. name: string
  472. headImgUrl: string
  473. mobile: string
  474. brokerId: any
  475. brokerName: string
  476. memberLevelId: number
  477. memberLevelName: any
  478. }[]
  479. total: number
  480. }>('/app-api/member/activity/signup/page', query)
  481. /**
  482. * 获取游学列表
  483. */
  484. export const getStudyTours = (query) =>
  485. httpGet<{ list: StudyTour[]; total: number }>('/app-api/member/app-study-abroad/page', query)
  486. /**
  487. * 获取游学详情
  488. */
  489. export const getStudyTour = (id: string) =>
  490. httpGet<StudyTour>('/app-api/member/app-study-abroad/get', { id })
  491. /**
  492. * 游学报名
  493. */
  494. export const studyTourSignup = (data: { id: number }) =>
  495. httpPost('/app-api/member/app-study-abroad/signup', data)
  496. /**
  497. * 获取游学报名列表
  498. */
  499. export const getStudyTourSignups = (query: { studyId: string }) =>
  500. httpGet<{
  501. list: {
  502. id: number
  503. activityId: number
  504. userId: number
  505. applyTime: number
  506. applyType: number
  507. applyStatus: number
  508. applyPoints: any
  509. isJoin: string
  510. createTime: number
  511. name: string
  512. headImgUrl: string
  513. mobile: string
  514. brokerId: any
  515. brokerName: string
  516. memberLevelId: number
  517. memberLevelName: any
  518. }[]
  519. total: number
  520. }>('/app-api/member/app-study-abroad/signup/page', query)
  521. /**
  522. * 获取Banner列表
  523. */
  524. export const getBanners = (query: { mode: BannerMode }) =>
  525. httpGet<Banner[]>('/app-api/member/banner/get-by-mode', query)
  526. /**
  527. * 获取消息列表
  528. */
  529. export const getMessages = (query) => httpGet('/app-api/member/message-manage/page', query)
  530. /**
  531. * 获取Banner
  532. */
  533. export const getBanner = (id) => httpGet<Banner>('/app-api/member/banner/get-by-id', { id })
  534. /**
  535. * 获取积分明细列表
  536. */
  537. export const getPoints = (query) =>
  538. httpGet<{
  539. list: {
  540. id: number
  541. pointsType: string
  542. typeName: string
  543. pointsCategory: string
  544. categoryName: string
  545. sourceId: number
  546. name: string
  547. pointsStauts: string
  548. points: number
  549. orderMoney: string
  550. materialsId: number
  551. materialsBrand: string
  552. stylistId: number
  553. brokerId: number
  554. stylistName: string
  555. brokerName: string
  556. generateTime: string
  557. verifyTime: string
  558. completeTime: string
  559. turnDownTime: string
  560. cancelTime: string
  561. cancelReason: string
  562. turnDownReason: string
  563. remark: string
  564. couponId: number
  565. orderNo: string
  566. createTime: string
  567. }[]
  568. total: number
  569. }>(`/app-api/member/points-details/pageAllByYear/${query.year}`, query)
  570. export const refreshToken = (refreshToken: string) =>
  571. httpPost<any>('/app-api/member/auth/refresh-token', {}, { refreshToken })
  572. export const httpGetMock = <T>(data: T) =>
  573. new Promise<IResData<T>>((resolve) => resolve({ code: 1, msg: '', data } as IResData<T>))
  574. export interface Circle {
  575. headUrl: string
  576. stylistId: string | number
  577. stylistName: string
  578. marketing: string
  579. circleDesc: string
  580. tagName: string
  581. detailsType: string
  582. detailsUrl: string
  583. detailsDesc: string
  584. circleType: string
  585. spaceType: string
  586. designStyle: string
  587. spaceAddr: string
  588. customerDemand: string
  589. bannerUrls: string[]
  590. }
  591. export interface CircleRes {
  592. id: number
  593. headUrl?: string
  594. stylistId?: number
  595. stylistName?: string
  596. marketing?: string
  597. circleDesc?: string
  598. tagName?: string
  599. detailsType?: string
  600. detailsUrl?: string
  601. detailsDesc?: string
  602. circleType?: string
  603. spaceType?: string
  604. designStyle?: string
  605. spaceAddr?: string
  606. customerDemand?: string
  607. createTime: number
  608. bannerUrls: string[]
  609. shareCount?: number
  610. upvoteCount?: number
  611. ownUpvote: boolean
  612. reviewCount: number
  613. }