xiangyixiangqin/miniapp/api/user.js
2026-01-04 21:34:50 +08:00

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
}