103 lines
2.9 KiB
JavaScript
103 lines
2.9 KiB
JavaScript
/**
|
|
* 用户接口模块
|
|
* Requirements: 2.3, 5.1, 11.2
|
|
*/
|
|
|
|
import { get, post } from './request'
|
|
|
|
/**
|
|
* 获取每日推荐列表
|
|
* WHEN a user visits the home page, THE XiangYi_MiniApp SHALL display recommended user list
|
|
* Requirements: 2.3
|
|
*
|
|
* @param {number} pageIndex - 页码
|
|
* @param {number} pageSize - 每页数量
|
|
* @returns {Promise<Object>} 推荐用户列表
|
|
*/
|
|
export async function getRecommend(pageIndex = 1, pageSize = 10) {
|
|
const response = await get('/users/recommend', { pageIndex, pageSize }, { needAuth: false })
|
|
return response
|
|
}
|
|
|
|
/**
|
|
* 获取用户详情
|
|
* WHEN a user views a profile detail page, THE XiangYi_MiniApp SHALL call endpoint and display full profile information
|
|
* Requirements: 5.1
|
|
*
|
|
* @param {number} userId - 用户ID
|
|
* @returns {Promise<Object>} 用户详情
|
|
*/
|
|
export async function getUserDetail(userId) {
|
|
const response = await post('/users/detail', { userId })
|
|
return response
|
|
}
|
|
|
|
/**
|
|
* 搜索用户
|
|
* WHEN a user submits search, THE XiangYi_MiniApp SHALL call endpoint with filter parameters
|
|
* Requirements: 11.2
|
|
*
|
|
* @param {Object} params - 搜索参数
|
|
* @param {number} [params.ageMin] - 最小年龄
|
|
* @param {number} [params.ageMax] - 最大年龄
|
|
* @param {number} [params.heightMin] - 最小身高
|
|
* @param {number} [params.heightMax] - 最大身高
|
|
* @param {number[]} [params.education] - 学历列表
|
|
* @param {string} [params.province] - 省份
|
|
* @param {string} [params.city] - 城市
|
|
* @param {number} [params.monthlyIncomeMin] - 最低月收入
|
|
* @param {number} [params.monthlyIncomeMax] - 最高月收入
|
|
* @param {number[]} [params.houseStatus] - 房产状态列表
|
|
* @param {number[]} [params.carStatus] - 车辆状态列表
|
|
* @param {number[]} [params.marriageStatus] - 婚姻状态列表
|
|
* @param {number} [params.pageIndex] - 页码
|
|
* @param {number} [params.pageSize] - 每页数量
|
|
* @returns {Promise<Object>} 搜索结果
|
|
*/
|
|
export async function search(params = {}) {
|
|
const response = await post('/users/search', params)
|
|
return response
|
|
}
|
|
|
|
/**
|
|
* 更新用户头像
|
|
*
|
|
* @param {string} avatar - 头像URL
|
|
* @returns {Promise<Object>} 更新结果
|
|
*/
|
|
export async function updateAvatar(avatar) {
|
|
const response = await post('/users/avatar', { avatar })
|
|
return response
|
|
}
|
|
|
|
/**
|
|
* 更新用户昵称
|
|
*
|
|
* @param {string} nickname - 昵称
|
|
* @returns {Promise<Object>} 更新结果
|
|
*/
|
|
export async function updateNickname(nickname) {
|
|
const response = await post('/users/nickname', { nickname })
|
|
return response
|
|
}
|
|
|
|
/**
|
|
* 解密微信手机号
|
|
*
|
|
* @param {string} code - 微信返回的 code
|
|
* @returns {Promise<Object>} 解密结果,包含 phone 字段
|
|
*/
|
|
export async function decryptPhone(code) {
|
|
const response = await post('/users/phone/decrypt', { code })
|
|
return response
|
|
}
|
|
|
|
export default {
|
|
getRecommend,
|
|
getUserDetail,
|
|
search,
|
|
updateAvatar,
|
|
updateNickname,
|
|
decryptPhone
|
|
}
|