requests.ts 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969
  1. import { http, httpDelete, 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. Comment,
  12. Activity,
  13. BannerMode,
  14. Banner,
  15. StudyTour,
  16. PointsOrder,
  17. UserAuthInfo,
  18. ResPageData,
  19. Message,
  20. Coupon,
  21. MyStudyTour,
  22. Badge,
  23. Certificate,
  24. } from './models'
  25. import dayjs from 'dayjs'
  26. import { pointsCancel } from '../../../../merchant/node_modules/@designer-hub/app/src/core/libs/requests'
  27. export const getUserInfo = () =>
  28. httpGetMock<any>({
  29. avatar: 'https://via.placeholder.com/21x21',
  30. nickname: '苏小萌',
  31. })
  32. export const getSchedule = () =>
  33. httpGetMock<Schedule>({
  34. name: '东京艺术设计研习营',
  35. cover: 'https://via.placeholder.com/375x297',
  36. items: [
  37. {
  38. title: '早稻田大学课程',
  39. time: '9:00',
  40. content:
  41. '是位于日本东京都新宿区的一所著名的私立大学。它由早稻田大学的创始人大隈重信于1882年创立,是日本超级国际化大学计划(Top Global University Project)选定的大学之一,也是日本顶尖的高等教育机构之一。',
  42. momentExample: 'https://via.placeholder.com/285x157',
  43. monentHint: '*说明:打卡地XX,收集上课素材',
  44. },
  45. {
  46. title: '早稻田大学博物馆参观',
  47. time: '11:00',
  48. content:
  49. '早稻田大学拥有多座博物馆,‌其中最著名的是早稻田大学历史馆。‌早稻田大学历史馆收藏、‌展示着著名校友在运动方面的杰出表现和成就,‌馆内的解说牌以日语和英语标示,‌展现了传统样式风格的建筑。',
  50. momentExample: 'https://via.placeholder.com/285x157',
  51. monentHint: '*说明:打卡地XX,收集上课素材',
  52. },
  53. ],
  54. })
  55. export const getClassmates = () =>
  56. httpGetMock<any[]>([
  57. {
  58. avatar: 'https://via.placeholder.com/35x35',
  59. nickname: '苏小萌',
  60. level: '0',
  61. },
  62. {
  63. avatar: 'https://via.placeholder.com/35x35',
  64. nickname: '苏小萌',
  65. level: '0',
  66. },
  67. {
  68. avatar: 'https://via.placeholder.com/35x35',
  69. },
  70. ])
  71. export const getClassmate = () =>
  72. httpGetMock<any>({
  73. title: '2023同学荟|清华空间环境艺术设计研修班 阔步向未来',
  74. author: {
  75. avatar: 'https://via.placeholder.com/35x35',
  76. nickname: '苏小萌',
  77. level: '0',
  78. },
  79. viewNum: 125,
  80. createdAt: dayjs('2024-07-15').toDate(),
  81. content: '<div>111111</div>',
  82. })
  83. export const getMaterialDealers = () =>
  84. httpGetMock<any[]>([
  85. {
  86. name: 'IMOLA瓷砖',
  87. icon: 'https://via.placeholder.com/78x78',
  88. brandType: '进口品牌',
  89. type: '瓷砖',
  90. views: 1000,
  91. createdAt: dayjs('2024-07-15').toDate(),
  92. },
  93. {
  94. name: 'IMOLA瓷砖',
  95. icon: 'https://via.placeholder.com/78x78',
  96. brandType: '进口品牌',
  97. type: '瓷砖',
  98. views: 1000,
  99. createdAt: dayjs('2024-07-15').toDate(),
  100. },
  101. ])
  102. export const weixinMiniAppLogin = (phoneCode: string, loginCode: string, state: string) =>
  103. httpPost<any>('/app-api/member/auth/weixin-mini-app-login', {
  104. phoneCode,
  105. loginCode,
  106. state,
  107. })
  108. export const testLogin = (data: { mobile: string; password: string }) =>
  109. httpPost<any>('/app-api/member/auth/login2', data)
  110. export const getMemberUserInfo = () => httpGet<any>('/app-api/member/user/get')
  111. export const updateMemberUserInfo = (data = {}) => httpPut<any>('/app-api/member/user/update', data)
  112. export const getByDictType = (
  113. type: string | 'member_channel_source' | 'member_spatial_expertise_type' | DictType,
  114. ) =>
  115. httpGet<
  116. {
  117. label: string
  118. value: string
  119. dictType: string
  120. status: number
  121. }[]
  122. >('/app-api/system/dict-data/type', { type })
  123. export const validateReferrerCode = (data: { code: string }) =>
  124. httpPost('/app-api/member/user-auth-info/referrer-validate-code', {}, data)
  125. export const createUserAuthInfo = (
  126. data: Partial<{
  127. id: number
  128. userId: number
  129. designerName: string
  130. gender: number
  131. mobile: string
  132. channelSource: number
  133. referrer: string
  134. employer: string
  135. spatialExpertiseType: number
  136. attachment: string
  137. auditStatus: number
  138. remark: string
  139. }>,
  140. ) => httpPost<any>('/app-api/member/user-auth-info/create', data)
  141. /**
  142. * 获取设计师审核信息
  143. */
  144. export const getUserAuthInfo = () => httpGet<UserAuthInfo>('/app-api/member/user-auth-info/get')
  145. /**
  146. * 更新设计师审核信息
  147. */
  148. export const updateUserAuthInfo = (
  149. data: Partial<{
  150. id: number
  151. userId: number
  152. designerName: string
  153. gender: number
  154. mobile: string
  155. channelSource: number
  156. referrer: string
  157. employer: string
  158. spatialExpertiseType: number
  159. attachment: string
  160. auditStatus: number
  161. remark: string
  162. }>,
  163. ) => httpPost('/app-api/member/user-auth-info/update', data)
  164. export const getCircles = (query: { tagName?: string; circleType?: string; stylistId?: string }) =>
  165. httpGet<{
  166. list: {
  167. id: number
  168. headUrl?: string
  169. stylistId?: number
  170. stylistName?: string
  171. marketing?: string
  172. circleDesc?: string
  173. tagName?: string
  174. detailsType?: string
  175. detailsUrl?: string
  176. detailsDesc?: string
  177. circleType?: string
  178. spaceType?: string
  179. designStyle?: string
  180. spaceAddr?: string
  181. customerDemand?: string
  182. createTime: number
  183. bannerUrls: string[]
  184. shareCount?: number
  185. upvoteCount?: number
  186. ownUpvote: boolean
  187. reviewCount: number
  188. }[]
  189. }>('/app-api/member/circle/page', query)
  190. export const createCircle = (data: Partial<Circle>) =>
  191. httpPost<any>('/app-api/member/circle/create', data)
  192. export const getCircle = (id: string) =>
  193. httpGet<Partial<CircleRes>>('/app-api/member/circle/get', { id })
  194. /**
  195. * 删除个人圈子
  196. */
  197. export const deleteCircle = (id: string) => httpDelete('/app-api/member/circle/delete', { id })
  198. export const shareCircle = (id: string) => httpGet('/app-api/member/circle/share', { id })
  199. export const getCircleUpvotes = (id) =>
  200. httpGet<{
  201. total: number
  202. list: {
  203. id: number
  204. circleId: number
  205. userId: number
  206. upvpteTime: number
  207. createTime: number
  208. userName: string
  209. }[]
  210. }>('/app-api/member/circle-upvote/page', { circleId: id })
  211. export const createCircleUpvote = (data: { circleId: number; userId: number; userName: string }) =>
  212. httpPost('/app-api/member/circle-upvote/create', data)
  213. /**
  214. * 取消圈子点赞
  215. */
  216. export const cancelCircleUpvote = (query: { id: string }) =>
  217. httpGet('/app-api/member/circle-upvote/delete', query)
  218. export const createCircleReview = (
  219. data: Partial<{
  220. circleId: string
  221. userId: string | number
  222. userName: string
  223. reviewContent: string
  224. replayReviewId: string
  225. }>,
  226. ) => httpPost<any>('/app-api/member/circle-review/create', data)
  227. export const deleteCircleReview = (id) => httpGet('/app-api/member/circle-review/delete', { id })
  228. export const getCircleReviews = (query: { circleId: string }) =>
  229. httpGet<{
  230. list: Comment[]
  231. }>('/app-api/member/circle-review/getCircleReviewByCircleId', query)
  232. export const createCircleReviewUpvote = (data: {
  233. circleId: number
  234. userId: number
  235. userName: string
  236. reviewId: number
  237. }) => httpPost('/app-api/member/circle-review-upvote/create', data)
  238. export const cancelCircleReviewUpvote = (query: {
  239. circleId: string
  240. userId: string
  241. reviewId: string
  242. }) => httpGet('/app-api/member/circle-review-upvote/cancel', query)
  243. export const getCircleReviewUpvotes = (query: { circleId: string; reviewId?: string }) =>
  244. httpGet('/app-api/member/circle-review-upvote/page', query)
  245. export const getReviewReplay = (query: { id: string }) =>
  246. httpGet('/app-api/member/circle-review/getReviewReplay', query)
  247. export const getTasks = (query) =>
  248. httpGet<{
  249. list: {
  250. id: number
  251. taskKey: string
  252. taskValue: string
  253. createTime: string
  254. sort: number
  255. status: number
  256. }[]
  257. }>('/app-api/basicsetting/set-task-center/page', query)
  258. /**
  259. * 获取发布圈子任务状态
  260. */
  261. export const getCircleTaskStatus = () => httpGet('/app-api/member/circle/taskIntegral')
  262. export const getCircleTags = (query) =>
  263. httpGet<{
  264. list: {
  265. id: number
  266. labelName: string
  267. labelType: number
  268. usageCount: number
  269. creator: string
  270. createTime: number
  271. }[]
  272. }>('/app-api/basicsetting/set-label/page', query)
  273. export const getSetIndexConfigs = (query = {}) =>
  274. httpGet<{
  275. list: {
  276. id: number
  277. name: string
  278. indexPromotionalVideoImage: string
  279. coverVideoImage: string
  280. sort: number
  281. playCount: number
  282. status: number
  283. createTime: string
  284. }[]
  285. }>('/app-api/basicsetting/set-index-config/page', query)
  286. export const updateSetIndexConfig = (data: { id: number; status: number }) =>
  287. httpPut('/app-api/basicsetting/set-index-config/update', data)
  288. /**
  289. * 获取材料商列表
  290. * @param query {{brandLevel: '1'|'2'}}
  291. * @returns {Promise<*>}
  292. */
  293. export const getMaterials = (query = {}) =>
  294. httpGet<{
  295. list: MaterialDealer[]
  296. }>('/app-api/member/materials/page', query)
  297. export const getAppMaterials = () =>
  298. httpGet<MaterialDealerRes[]>('/app-api/member/materials/appMaterialsList')
  299. export const getAppMaterial = (id: number) =>
  300. httpGet<MaterialDealerDetail>('/app-api/member/materials/queryHomePage', { materialsId: id })
  301. export const getMaterialHomePage = (id: number) =>
  302. httpGet<Partial<MaterialDealerHomePage>>('/app-api/member/materials/queryHomePage', {
  303. materialsId: id,
  304. })
  305. export const getMaterialDetail = (query: { id: string }) =>
  306. httpGet<MaterialDealerDetail>('/app-api/member/materials/getDetail', query)
  307. export const createMaterialsReferrer = (data) =>
  308. httpPost('/app-api/member/materials-referrer/create', data)
  309. export const getContents = (query: {
  310. contentType?: '1' | '2' | '3'
  311. contentCategory?: string
  312. pageSize?: string
  313. }) => httpGet<{ list: Content[] }>('/app-api/member/content-manger/page', query)
  314. export const getAllCategories = () =>
  315. httpGet<Category[]>('/app-api/member/categories/getAllCategories')
  316. export const getContent = (query: { id: string }) =>
  317. httpGet<Content>('/app-api/member/content-manger/get', query)
  318. export const getProductCategories = () =>
  319. httpGet<Category[]>('/app-api/member/product-type/getAllProductCategories', {})
  320. export const getProducts = (query: { oneCategory?: string; secondCategory?: string }) =>
  321. httpGet<{
  322. list: {
  323. prodcutName: string
  324. productId: string
  325. needPoints: number
  326. points: number
  327. productPrice: string
  328. productCoverImgUrl: string
  329. productDetailsImgUrl: string
  330. contentDesc: string
  331. productType: string
  332. oneCategory: any
  333. secondCategory: string
  334. }[]
  335. }>('/app-api/member/product/page', query)
  336. /**
  337. * 获取超值划算商品
  338. */
  339. export const getFavourableProducts = () =>
  340. httpPost<
  341. {
  342. id: number
  343. prodcutName: string
  344. productId: string
  345. oneCategory: string
  346. oneCategoryName: string
  347. secondCategory: string
  348. secondCategoryName: string
  349. isRestrict: number
  350. productRepertory: number
  351. productPrice: string
  352. productType: number
  353. vendorId: number
  354. vendorName: string
  355. needPoints: number
  356. points: number
  357. gainType: number
  358. exchangeDesc: string
  359. productCoverImgUrl: string
  360. productDetailsImgUrl: string
  361. contentDesc: string
  362. status: number
  363. exchangeCount: number
  364. memberLevelIds: string
  365. memberLevelName: string
  366. favourablePoints: number
  367. favourableEndDate: string
  368. createTime: string
  369. updateTime: string
  370. }[]
  371. >('/app-api/member/product/listFavourableProduct')
  372. export const getProduct = (id: string) =>
  373. httpGet<{
  374. id: number
  375. prodcutName: string
  376. productId: string
  377. oneCategory: any
  378. oneCategoryName: any
  379. secondCategory: string
  380. secondCategoryName: any
  381. isRestrict: number
  382. productRepertory: any
  383. productPrice: string
  384. productType: number
  385. vendorId: any
  386. vendorName: string
  387. needPoints: number
  388. points: number
  389. gainType: number
  390. exchangeDesc: string
  391. productCoverImgUrl: string
  392. productDetailsImgUrl: string
  393. contentDesc: string
  394. status: number
  395. exchangeCount: any
  396. memberLevelId: any
  397. memberLevelName: any
  398. favourablePoints: any
  399. favourableEndDate: any
  400. createTime: number
  401. updateTime: number
  402. }>('/app-api/member/product/detail', { productId: id })
  403. export const getProductItemBuy = (query: { userId: number }) =>
  404. httpPost<{
  405. list: Partial<{
  406. productId: string
  407. prodcutName: string
  408. oneCategory: any
  409. secondCategory: string
  410. isRestrict: number
  411. productRepertory: any
  412. productPrice: string
  413. productType: string
  414. vendorId: any
  415. vendorName: string
  416. needPoints: number
  417. points?: number
  418. gainType: number
  419. exchangeDesc: any
  420. productCoverImgUrl: string
  421. productDetailsImgUrl: string
  422. contentDesc: string
  423. status: number
  424. exchangeCount: any
  425. memberLevelId: any
  426. memberLevelName: any
  427. favourablePoints?: number
  428. favourableEndDate?: number
  429. favourableStatus: number
  430. count: number
  431. createTime: any
  432. userId: number
  433. nums: number
  434. }>[]
  435. total: number
  436. }>('/app-api/member/product-item-buy/select', query)
  437. /**
  438. * 商品添加到购物车
  439. */
  440. export const createProductItemBuy = (data: {
  441. doList: {
  442. createTime?: string
  443. updateTime?: string
  444. creator?: string
  445. updater?: string
  446. deleted?: boolean
  447. id?: number
  448. productId?: string
  449. userId?: number
  450. points: number
  451. nums: number
  452. }[]
  453. }) => httpPost('/app-api/member/product-item-buy/create', data)
  454. /**
  455. * 从购物车删除商品
  456. */
  457. export const deleteProductItemBuy = (data: {
  458. doList: {
  459. createTime?: string
  460. updateTime?: string
  461. creator?: string
  462. updater?: string
  463. deleted?: boolean
  464. id?: number
  465. productId?: string
  466. userId?: number
  467. nums?: number
  468. }[]
  469. }) => httpPost('/app-api/member/product-item-buy/delete', data)
  470. /**
  471. * 购物车商品数量增减
  472. */
  473. // export const updateProductItemNums = (data: {
  474. // userId: number
  475. // productId: string
  476. // changingNum: number
  477. // }) => httpPost('/app-api/member/product-item-buy/increase-or-decrease/product/num', data)
  478. /**
  479. * 商城下单
  480. */
  481. export const productPlacing = (data: {
  482. isShoppingCart: number
  483. userId: number
  484. list: {
  485. orderNo?: string
  486. productId?: string
  487. points?: number
  488. nums?: number
  489. productName: string
  490. orderImgUrl: string
  491. /**
  492. * 商家id
  493. */
  494. vendorId: string | number
  495. }[]
  496. couponList: {
  497. couponId: number
  498. brandPoints: number
  499. }[]
  500. totalsPoints?: number
  501. totalsCouponPoints?: number
  502. totalsCurrPoints?: number
  503. }) => httpPost('/app-api/member/points-order/placing', data)
  504. /**
  505. * 订单结算
  506. */
  507. export const orderPay = (data: {
  508. isShoppingCart: number
  509. userId: number
  510. list: {
  511. orderNo?: string
  512. productId?: string
  513. points?: number
  514. nums?: number
  515. }[]
  516. couponList: {
  517. couponId: number
  518. brandPoints: number
  519. }[]
  520. totalsPoints?: number
  521. totalsCouponPoints?: number
  522. totalsCurrPoints?: number
  523. }) => httpPost(`/app-api/member/points-order/placingPay`, data)
  524. /**
  525. * 积分结账
  526. */
  527. export const pointsPay = (data: { userId: number; points: number; vendorId: number }) =>
  528. httpPost('/app-api/member/points-order/orderAndPaymentCompleted', data)
  529. export const getPointsOrders = (query) =>
  530. httpGet<{
  531. list: PointsOrder[]
  532. total: number
  533. }>('/app-api/member/points-order/page', query)
  534. export const getPointsOrder = (id) =>
  535. httpGet<Partial<PointsOrder>>('/app-api/member/points-order/get', { id })
  536. /**
  537. * 取消订单
  538. */
  539. export const cancelOrder = (id) => httpGet('/app-api/member/points-order/orderCancel', { id })
  540. export const getActivities = (query) =>
  541. httpGet<{
  542. list: Activity[]
  543. }>('/app-api/member/activity/page', query)
  544. export const getActivity = (id: string) =>
  545. httpGet<Partial<Activity>>('/app-api/member/activity/get', { id })
  546. export const activitySignup = (data: { id: number }) =>
  547. httpPost('/app-api/member/activity/signup', data)
  548. /**
  549. * 获取活动报名列表
  550. */
  551. export const getActivitySignups = (query: { activityId: string }) =>
  552. httpGet<{
  553. list: {
  554. id: number
  555. activityId: number
  556. userId: number
  557. applyTime: number
  558. applyType: number
  559. applyStatus: number
  560. applyPoints: any
  561. isJoin: string
  562. createTime: number
  563. name: string
  564. headImgUrl: string
  565. mobile: string
  566. brokerId: any
  567. brokerName: string
  568. memberLevelId: number
  569. memberLevelName: any
  570. }[]
  571. total: number
  572. }>('/app-api/member/activity/signup/page', query)
  573. /**
  574. * 获取游学列表
  575. */
  576. export const getStudyTours = (query) =>
  577. httpGet<{ list: StudyTour[]; total: number }>('/app-api/member/app-study-abroad/page', query)
  578. /**
  579. * 获取游学详情
  580. */
  581. export const getStudyTour = (id: string) =>
  582. httpGet<StudyTour>('/app-api/member/app-study-abroad/get', { id })
  583. /**
  584. * 游学报名
  585. */
  586. export const studyTourSignup = (data: { id: number }) =>
  587. httpPost('/app-api/member/app-study-abroad/signup', data)
  588. /**
  589. * 获取游学报名列表
  590. */
  591. export const getStudyTourSignups = (query: { studyId: string }) =>
  592. httpGet<{
  593. list: {
  594. id: number
  595. activityId: number
  596. userId: number
  597. applyTime: number
  598. applyType: number
  599. applyStatus: number
  600. applyPoints: any
  601. isJoin: string
  602. createTime: number
  603. name: string
  604. headImgUrl: string
  605. mobile: string
  606. brokerId: any
  607. brokerName: string
  608. memberLevelId: number
  609. memberLevelName: any
  610. }[]
  611. total: number
  612. }>('/app-api/member/app-study-abroad/signup/page', query)
  613. /**
  614. * 获取Banner列表
  615. */
  616. export const getBanners = (query: { mode: BannerMode }) =>
  617. httpGet<Banner[]>('/app-api/member/banner/get-by-mode', query)
  618. /**
  619. * 获取消息列表
  620. */
  621. export const getMessages = (query) =>
  622. httpGet<ResPageData<Message>>('/app-api/member/message-manage/page', query)
  623. /**
  624. * 删除消息
  625. */
  626. export const deleteMessage = (id: string) =>
  627. httpPost('/app-api/member/message-manage/delete', {}, { id })
  628. /**
  629. * 更新消息
  630. */
  631. export const updateMessage = (data: Partial<Message>) =>
  632. httpPut('/app-api/member/message-manage/update', data)
  633. /**
  634. * 积分订单取消
  635. */
  636. export const orderPointsCancel = (query: { id: string; cancelReason: string }) =>
  637. httpGet('/app-api/member/points-details/points-cancel', query)
  638. /**
  639. * 积分订单确认
  640. */
  641. export const orderPointsSubmit = (data: { id: number; userId: number; couponUserId: number }) =>
  642. httpPost('/app-api/member/points-details/confirm', data)
  643. /**
  644. * 获取Banner
  645. */
  646. export const getBanner = (id) => httpGet<Banner>('/app-api/member/banner/get-by-id', { id })
  647. /**
  648. * 获取积分明细列表
  649. */
  650. export const getPoints = (query) =>
  651. httpGet<{
  652. list: {
  653. id: number
  654. pointsType: string
  655. typeName: string
  656. pointsCategory: string
  657. categoryName: string
  658. sourceId: number
  659. name: string
  660. pointsStauts: string
  661. points: number
  662. orderMoney: string
  663. materialsId: number
  664. materialsBrand: string
  665. stylistId: number
  666. brokerId: number
  667. stylistName: string
  668. brokerName: string
  669. generateTime: string
  670. verifyTime: string
  671. completeTime: string
  672. turnDownTime: string
  673. cancelTime: string
  674. cancelReason: string
  675. turnDownReason: string
  676. remark: string
  677. couponId: number
  678. orderNo: string
  679. createTime: string
  680. }[]
  681. total: number
  682. }>(`/app-api/member/points-details/pageAllByYear/${query.year}`, query)
  683. /**
  684. * 获取会员等级列表
  685. */
  686. export const getMemberLevels = () =>
  687. httpGet<
  688. {
  689. id: number
  690. memberLevel: number
  691. memberLevelName: string
  692. upgradeCriteria: number
  693. points: number
  694. retentionDaysCriteria: number
  695. retentionDays?: number
  696. memberBgImage: string
  697. associatedMemberRights: string
  698. associatedMemberRightsName: any
  699. status: number
  700. createTime: number
  701. }[]
  702. >('/app-api/basicsetting/set-member-level-config/list')
  703. /**
  704. * 获取设计师信息
  705. */
  706. export const getDesignerInfo = (userId) =>
  707. httpGet<
  708. Partial<{
  709. id: number
  710. userId: number
  711. brokerId: number
  712. brokerName: string
  713. status: string
  714. authTime: number
  715. points: number
  716. headImgUrl: string
  717. shareCount: number
  718. viewCount: number
  719. winCustomerCount: number
  720. serviceYears: string
  721. serviceCustomerCount: number
  722. designFee: string
  723. memberValidTime: number
  724. personalIdentity: string
  725. designDesc: string
  726. followFocus: string
  727. homePageUrl: string
  728. sharePageUrl: string
  729. retryStatus: number
  730. videoNumber: string
  731. }>
  732. >('/app-api/member/designer/getDesignerInfo', { userId })
  733. /**
  734. * 更新设计师信息
  735. */
  736. export const updateDesignerInfo = (data) =>
  737. httpPost<any>('/app-api/member/designer/updateDesignerInfo', data)
  738. /**
  739. * 预约设计师
  740. */
  741. export const reserveDesigner = (data: {
  742. stylistId: number
  743. stylistName: string
  744. appointmentName: string
  745. appointmentPhone: string
  746. }) => httpPost<any>('/app-api/member/designer/reserveDesigner', data)
  747. /**
  748. * 创建设计师主页浏览记录
  749. */
  750. export const createBrowseHistory = (data: {
  751. stylistId: number
  752. /**
  753. * 业务id
  754. */
  755. bizId?: string
  756. /**
  757. * 业务类型,可用值:分享,获客,浏览 [1,2,3]
  758. */
  759. bizType?: string | number
  760. /**
  761. * 时长:单位-秒
  762. */
  763. duration?: string
  764. }) => httpPost('/app-api/member/designer/browseHistory', data)
  765. export const getBrowseHistories = (query) =>
  766. httpGet<
  767. ResPageData<{
  768. createTime: number
  769. updateTime: number
  770. creator: string
  771. updater: string
  772. deleted: boolean
  773. id: number
  774. stylistId: number
  775. stylistName: string
  776. bizId: any
  777. bizType: number
  778. duration: string
  779. creatorName: string
  780. }>
  781. >('/app-api/member/designer/getBrowseHistory', query)
  782. /**
  783. * 获取获客记录
  784. */
  785. export const getReserveHistory = (query) =>
  786. httpGet<
  787. ResPageData<{
  788. id: number
  789. stylistId: number
  790. stylistName: string
  791. appointmentName: string
  792. appointmentPhone: string
  793. appointmentTime: string
  794. createTime: string
  795. }>
  796. >('/app-api/member/designer/getReserveHistory', query)
  797. /**
  798. * 通过ID获取用户信息
  799. */
  800. export const getUserInfoById = (id) =>
  801. httpGet<
  802. Partial<{
  803. mobile: string
  804. status: string
  805. nickname: string
  806. avatar: string
  807. name: string
  808. sex: string
  809. areaId: number
  810. areaName: string
  811. birthday: string
  812. mark: string
  813. tagIds: string
  814. levelId: number
  815. groupId: number
  816. id: number
  817. registerIp: string
  818. loginIp: string
  819. loginDate: string
  820. createTime: string
  821. point: number
  822. totalPoint: number
  823. tagNames: string
  824. levelName: string
  825. groupName: string
  826. experience: number
  827. }>
  828. >('/app-api/member/user/getByUserId', { id })
  829. /**
  830. * 获取会员等级配置
  831. */
  832. export const getAppMemberLevelConfigs = () =>
  833. httpGet<
  834. {
  835. id: number
  836. memberLevel: number
  837. memberLevelName: string
  838. upgradeCriteria: number
  839. points: number
  840. retentionDaysCriteria: number
  841. retentionDays: number
  842. memberBgImage: string
  843. associatedMemberRights: string
  844. associatedMemberRightsName: string
  845. status: number
  846. createTime: string
  847. setMemberRights: {
  848. createTime: string
  849. updateTime: string
  850. creator: string
  851. updater: string
  852. deleted: boolean
  853. id: number
  854. rightsName: string
  855. rightsType: number
  856. rightsImage: string
  857. rightsDescription: string
  858. associatedMemberRightsLevel: string
  859. status: number
  860. }[]
  861. }[]
  862. >('/app-api/basicsetting/app-set-member-level-config/listAndRights')
  863. /**
  864. * 到店打卡
  865. */
  866. export const storeAndPunchIn = (data: { id: number }) =>
  867. http<boolean>({
  868. url: '/app-api/member/user-auth-info/storeAndPunchIn',
  869. data,
  870. hideErrorToast: true,
  871. method: 'POST',
  872. })
  873. /**
  874. * 获取优惠券
  875. */
  876. export const getCoupons = (query) =>
  877. httpGet<ResPageData<Coupon>>('/app-api/member/coupon-user/page', query)
  878. /**
  879. * 获取商品优惠券
  880. */
  881. export const getProductCoupons = (query) =>
  882. httpGet<Coupon[]>('/app-api/member/coupon-user/coupon-user-by-product-ids-page', query)
  883. /**
  884. * 获取积分券
  885. */
  886. export const getPointsCoupons = (query) =>
  887. httpGet<Coupon[]>('/app-api/member/coupon-user/coupon-user-by-point-ids-page', query)
  888. /**
  889. * 获取已报名的游学
  890. */
  891. export const getMyStudyTours = (query = {}) =>
  892. httpGet<MyStudyTour[]>('/app-api/member/app-study-abroad/getSignUpStudyAbroad', query)
  893. /**
  894. * 获取徽章列表
  895. */
  896. export const getBadges = (query = {}) =>
  897. httpGet<{ [key: string]: Badge[] }>('/app-api/member/stylist-honor/get-badge-list')
  898. /**
  899. * 获取证书列表
  900. */
  901. export const getCertificates = (query = {}) =>
  902. httpGet<Certificate[]>('/app-api/member/stylist-honor/get-certificate-list')
  903. /**
  904. * 获取骑行下拉
  905. */
  906. export const getRidingOptions = () =>
  907. httpGet<
  908. {
  909. id: string
  910. name: string
  911. }[]
  912. >('/app-api/member/app-riding/listFinishedRidingActivity')
  913. /**
  914. * 获取骑行数据
  915. */
  916. export const getRidings = (query) =>
  917. httpGet<
  918. ResPageData<{
  919. memberStylistName: string
  920. avatar: string
  921. radeKmTotal: string
  922. }>
  923. >('/app-api/member/app-riding/page', query)
  924. export const refreshToken = (refreshToken: string) =>
  925. httpPost<any>('/app-api/member/auth/refresh-token', {}, { refreshToken })
  926. export const httpGetMock = <T>(data: T) =>
  927. new Promise<IResData<T>>((resolve) => resolve({ code: 1, msg: '', data } as IResData<T>))
  928. export interface Circle {
  929. headUrl: string
  930. stylistId: string | number
  931. stylistName: string
  932. marketing: string
  933. circleDesc: string
  934. tagName: string
  935. detailsType: string
  936. detailsUrl: string
  937. detailsDesc: string
  938. circleType: string
  939. spaceType: string
  940. designStyle: string
  941. spaceAddr: string
  942. customerDemand: string
  943. bannerUrls: string[]
  944. }
  945. export interface CircleRes {
  946. id: number
  947. headUrl?: string
  948. stylistId?: number
  949. stylistName?: string
  950. marketing?: string
  951. circleDesc?: string
  952. tagName?: string
  953. detailsType?: string
  954. detailsUrl?: string
  955. detailsDesc?: string
  956. circleType?: string
  957. spaceType?: string
  958. designStyle?: string
  959. spaceAddr?: string
  960. customerDemand?: string
  961. createTime: number
  962. bannerUrls: string[]
  963. shareCount?: number
  964. upvoteCount?: number
  965. ownUpvote: boolean
  966. reviewCount: number
  967. }