user.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /**
  2. * 用户相关接口
  3. */
  4. import http from '../utils/request.js';
  5. /**
  6. * 微信登录
  7. * @param {Object} loginParams - 登录参数
  8. * @returns {Promise} - 返回登录结果
  9. */
  10. export function wxLogin(loginParams) {
  11. // 获取 CSRF token
  12. const csrfToken = uni.getStorageSync('csrfToken');
  13. // 确保参数格式正确,完全匹配后端期望的格式
  14. const requestData = {
  15. code: loginParams.code,
  16. userInfo: {
  17. nickname: loginParams.userInfo?.nickName || '微信用户',
  18. avatarUrl: loginParams.userInfo?.avatarUrl || '',
  19. gender: loginParams.userInfo?.gender || 0,
  20. province: loginParams.userInfo?.province || '',
  21. city: loginParams.userInfo?.city || '',
  22. country: loginParams.userInfo?.country || '',
  23. tenant_id: uni.getStorageSync('tenant_id') ||JSON.parse(uni.getStorageSync('userInfo')).tenant_id || 1,
  24. },
  25. signature: loginParams.signature || '',
  26. rawData: loginParams.rawData || '',
  27. encryptedData: loginParams.encryptedData || '',
  28. iv: loginParams.iv || '',
  29. tenant_id: uni.getStorageSync('tenant_id') ||JSON.parse(uni.getStorageSync('userInfo')).tenant_id || 1,
  30. _csrf: csrfToken // 添加 CSRF token
  31. };
  32. return http.post('/wechat/wechatLogin', requestData, {
  33. header: {
  34. 'X-CSRF-Token': csrfToken
  35. }
  36. });
  37. }
  38. /**
  39. * 获取用户详细信息
  40. * @param {String} userId - 用户ID,可选
  41. * @returns {Promise} - 返回用户详细信息
  42. */
  43. export const getUserInfo = (userId,openid) => {
  44. // 如果提供了userId,则获取指定用户信息,否则获取当前登录用户信息
  45. const url = userId ? `/api/wechat/get_user_info?id=${userId}&openid=${openid}` : '/wechat/getUserDetail';
  46. return http.get(url);
  47. };
  48. /**
  49. * 获取用户手机号
  50. * @param {Object} params - 包含code、encryptedData和iv的对象
  51. * @returns {Promise} - 返回用户手机号信息
  52. */
  53. export const getUserPhoneNumber = (params) => {
  54. return http.post('/wechat/getUserPhoneNumber', params);
  55. };
  56. /**
  57. * 更新用户信息
  58. * @param {Object} userData - 用户数据
  59. * @returns {Promise} - 返回更新结果
  60. */
  61. export const updateUserInfo = (userData) => {
  62. return http.put('/api/user/update', userData);
  63. };
  64. /**
  65. * 上传用户头像
  66. * @param {String} filePath - 文件路径
  67. * @returns {Promise} - 返回上传结果
  68. */
  69. export const uploadAvatar = (filePath) => {
  70. return http.upload('/api/upload/avatar', filePath, 'avatar');
  71. };
  72. /**
  73. * 退出登录
  74. * @returns {Promise} - 返回退出结果
  75. */
  76. export const logout = () => {
  77. return http.post('/wechat/wechatLogout');
  78. };
  79. /**
  80. * 获取职位列表
  81. * @param {Object} params - 查询参数
  82. * @param {Number} params.page - 页码
  83. * @param {Number} params.pageSize - 每页数量
  84. * @param {String} params.searchTerms - 搜索关键词
  85. * @param {String} params.status - 职位状态
  86. * @param {Number} params.tenant_id - 租户ID
  87. * @returns {Promise} - 返回职位列表
  88. */
  89. export const getJobList = (params = {}) => {
  90. // 设置默认参数
  91. const defaultParams = {
  92. page: 1,
  93. limit: 50,
  94. searchTerms: '',
  95. status: '',
  96. tenant_id: uni.getStorageSync('tenant_id') || JSON.parse(uni.getStorageSync('userInfo')).tenant_id ||1
  97. };
  98. // 合并默认参数和传入参数
  99. const queryParams = { ...defaultParams, ...params };
  100. return http.get('/api/system/job/list', defaultParams);
  101. };
  102. /* 填写用户信息 */
  103. export const fillUserInfo = (params) => {
  104. return http.post('/api/wechat/save_user_info', params);
  105. };
  106. /* 获取面试列表 */
  107. export const getInterviewList = (params) => {
  108. return http.get('/job/questions', params);
  109. };
  110. /* 获取面试详情 */
  111. export const getInterviewDetail = (params) => {
  112. return http.get('/interview_question/detail', params);
  113. };
  114. /* 提交答案 */
  115. export const submitAnswer = (params) => {
  116. return http.post('/api/job/submit_answer', params);
  117. };
  118. /* 申请职位 */
  119. export const applyJob = (params) => {
  120. return http.post('/api/job/apply', params);
  121. };
  122. /* 获取职位申请详情 */
  123. export const getApplicationDetail = (params) => {
  124. return http.get('/api/job/application_detail', params);
  125. };
  126. /* 文件上传 */
  127. export const uploadPhoto = (params) => {
  128. return http.post('/api/upload/', params);
  129. };
  130. /* 用户协议 */
  131. export const getUserAgreement = () => {
  132. return http.get('/api/public/agreements/terms_of_service/');
  133. };
  134. // 获取隐私政策
  135. /* export function getPrivacyPolicy() {
  136. return http.get('/api/privacy-policy');
  137. } */
  138. /* 获取问题数据 */
  139. export const getQuestions = (params) => {
  140. return http.get('/api/wechat/choice_questions/', params);
  141. };