/** * 用户管理API接口 * Requirements: 3.1, 3.2, 3.3, 3.4 */ import request from '@/utils/request' import type { PagedResult } from '@/types/api.d' import type { UserListItem, UserDetail, UserQueryParams, UserStatistics } from '@/types/user.d' /** * 获取用户列表 * @param params 查询参数 * @returns 分页用户列表 */ export function getUserList(params: UserQueryParams): Promise> { return request.get('/admin/users', { params }) } /** * 获取用户详情 * @param id 用户ID * @returns 用户详情 */ export function getUserDetail(id: number): Promise { return request.get(`/admin/users/${id}`) } /** * 更新用户状态 * @param id 用户ID * @param status 状态:1正常 2禁用 * @returns 操作结果 */ export function updateUserStatus(id: number, status: number): Promise { return request.put(`/admin/users/${id}/status`, { status }) } /** * 获取用户统计数据 * @returns 统计数据 */ export function getUserStatistics(): Promise { return request.get('/admin/users/statistics') } /** * 创建测试用户 * @param count 创建数量 * @param gender 性别:1男 2女,不传则随机 * @returns 创建的用户ID列表 */ export function createTestUsers(count: number, gender?: number): Promise { return request.post('/admin/users/test-users', { count, gender }) } /** * 删除用户(硬删除) * @param id 用户ID * @returns 操作结果 */ export function deleteUser(id: number): Promise { return request.delete(`/admin/users/${id}`) } /** * 批量删除所有测试用户 * @returns 删除的数量 */ export function deleteAllTestUsers(): Promise { return request.delete('/admin/users/test-users') } /** * 更新用户联系次数 * @param id 用户ID * @param contactCount 联系次数 * @returns 操作结果 */ export function updateContactCount(id: number, contactCount: number): Promise { return request.put(`/admin/users/${id}/contact-count`, { contactCount }) } /** * 更新用户会员等级 * @param id 用户ID * @param memberLevel 会员等级:0非会员 1不限时会员 2诚意会员 3家庭版会员 * @param memberExpireTime 会员到期时间(等级2、3需要) * @returns 操作结果 */ export function updateMemberLevel(id: number, memberLevel: number, memberExpireTime?: string): Promise { return request.put(`/admin/users/${id}/member-level`, { memberLevel, memberExpireTime }) } /** * 取消用户实名状态(只能从已实名改为未实名) * @param id 用户ID * @returns 操作结果 */ export function cancelRealName(id: number): Promise { return request.put(`/admin/users/${id}/cancel-realname`) } /** * 刷新用户推荐列表(清空今日推荐并重新生成) * @param id 用户ID * @returns 重新生成的推荐数量 */ export function refreshRecommend(id: number): Promise { return request.post(`/admin/users/${id}/refresh-recommend`) }