/** * 用户接口模块 * 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 - 每页数量 * @param {number} gender - 筛选性别(1=男,2=女,0=不限) * @returns {Promise} 推荐用户列表 */ export async function getRecommend(pageIndex = 1, pageSize = 10, gender = 0) { // 如果用户已登录,发送token以便后端排除当前用户 const token = uni.getStorageSync('token') const params = { pageIndex, pageSize } if (gender > 0) { params.gender = gender } const response = await get('/users/recommend', params, { needAuth: !!token }) 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} 用户详情 */ 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} 搜索结果 */ export async function search(params = {}) { const response = await post('/users/search', params) return response } /** * 更新用户头像 * * @param {string} avatar - 头像URL * @returns {Promise} 更新结果 */ export async function updateAvatar(avatar) { const response = await post('/users/avatar', { avatar }) return response } /** * 更新用户昵称 * * @param {string} nickname - 昵称 * @returns {Promise} 更新结果 */ export async function updateNickname(nickname) { const response = await post('/users/nickname', { nickname }) return response } /** * 解密微信手机号 * * @param {string} code - 微信返回的 code * @returns {Promise} 解密结果,包含 phone 字段 */ export async function decryptPhone(code) { const response = await post('/users/phone/decrypt', { code }) return response } export default { getRecommend, getUserDetail, search, updateAvatar, updateNickname, decryptPhone }