116 lines
3.0 KiB
TypeScript
116 lines
3.0 KiB
TypeScript
/**
|
||
* 用户管理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<PagedResult<UserListItem>> {
|
||
return request.get('/admin/users', { params })
|
||
}
|
||
|
||
/**
|
||
* 获取用户详情
|
||
* @param id 用户ID
|
||
* @returns 用户详情
|
||
*/
|
||
export function getUserDetail(id: number): Promise<UserDetail> {
|
||
return request.get(`/admin/users/${id}`)
|
||
}
|
||
|
||
/**
|
||
* 更新用户状态
|
||
* @param id 用户ID
|
||
* @param status 状态:1正常 2禁用
|
||
* @returns 操作结果
|
||
*/
|
||
export function updateUserStatus(id: number, status: number): Promise<void> {
|
||
return request.put(`/admin/users/${id}/status`, { status })
|
||
}
|
||
|
||
/**
|
||
* 获取用户统计数据
|
||
* @returns 统计数据
|
||
*/
|
||
export function getUserStatistics(): Promise<UserStatistics> {
|
||
return request.get('/admin/users/statistics')
|
||
}
|
||
|
||
/**
|
||
* 创建测试用户
|
||
* @param count 创建数量
|
||
* @param gender 性别:1男 2女,不传则随机
|
||
* @returns 创建的用户ID列表
|
||
*/
|
||
export function createTestUsers(count: number, gender?: number): Promise<number[]> {
|
||
return request.post('/admin/users/test-users', { count, gender })
|
||
}
|
||
|
||
/**
|
||
* 删除用户(硬删除)
|
||
* @param id 用户ID
|
||
* @returns 操作结果
|
||
*/
|
||
export function deleteUser(id: number): Promise<void> {
|
||
return request.delete(`/admin/users/${id}`)
|
||
}
|
||
|
||
/**
|
||
* 批量删除所有测试用户
|
||
* @returns 删除的数量
|
||
*/
|
||
export function deleteAllTestUsers(): Promise<number> {
|
||
return request.delete('/admin/users/test-users')
|
||
}
|
||
|
||
/**
|
||
* 更新用户联系次数
|
||
* @param id 用户ID
|
||
* @param contactCount 联系次数
|
||
* @returns 操作结果
|
||
*/
|
||
export function updateContactCount(id: number, contactCount: number): Promise<void> {
|
||
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<void> {
|
||
return request.put(`/admin/users/${id}/member-level`, { memberLevel, memberExpireTime })
|
||
}
|
||
|
||
/**
|
||
* 取消用户实名状态(只能从已实名改为未实名)
|
||
* @param id 用户ID
|
||
* @returns 操作结果
|
||
*/
|
||
export function cancelRealName(id: number): Promise<void> {
|
||
return request.put(`/admin/users/${id}/cancel-realname`)
|
||
}
|
||
|
||
/**
|
||
* 刷新用户推荐列表(清空今日推荐并重新生成)
|
||
* @param id 用户ID
|
||
* @returns 重新生成的推荐数量
|
||
*/
|
||
export function refreshRecommend(id: number): Promise<number> {
|
||
return request.post(`/admin/users/${id}/refresh-recommend`)
|
||
}
|