Files
ReelShortWeb/src/api/admin/appUser.ts
T
Vicky bedae02946 feat: phase1 UI prep — 后台 App 用户列表支持系统筛选 + 国家中文名 + 标签语义优化
新增: 系统下拉 (ANDROID/IOS)、国家中文名映射、用户列昵称/UID 冒号标签
详情抽屉: 同步系统/国家/标签展示
2026-10-27 15:45:23 +08:00

67 lines
1.8 KiB
TypeScript

// Author: fruit.com.cn
import request from '@/axios'
import type { AppUserBanRecord, AppUserItem, PageResult, WatchHistoryItem } from './types'
export interface AppUserPageParams {
pageIndex?: number
pageSize?: number
/** uid / 昵称 / 手机号 / 邮箱 */
keyword?: string
status?: string
countryCode?: string
registerSource?: string
/** 客户端平台:ANDROID / IOS / WEB */
platform?: string
}
export interface WatchHistoryPageParams {
pageIndex?: number
pageSize?: number
keyword?: string
userId?: number
dramaTitle?: string
dramaId?: number
episodeId?: number
/** 客户端平台:ANDROID / IOS / WEB */
platform?: string
source?: string
finished?: boolean
startTime?: string
endTime?: string
}
export const pageAppUsersApi = (params: AppUserPageParams) => {
return request.get<PageResult<AppUserItem>>({ url: '/admin/app-users/page', params })
}
export const getAppUserApi = (id: number) => {
return request.get<AppUserItem>({ url: `/admin/app-users/${id}` })
}
export const listAppUserBanRecordsApi = (id: number) => {
return request.get<AppUserBanRecord[]>({ url: `/admin/app-users/${id}/ban-records` })
}
export const listAppUserWatchHistoryApi = (id: number, limit = 50) => {
return request.get<WatchHistoryItem[]>({
url: `/admin/app-users/${id}/watch-history`,
params: { limit }
})
}
export const pageWatchHistoryApi = (params: WatchHistoryPageParams) => {
return request.get<PageResult<WatchHistoryItem>>({
url: '/admin/watch-history/page',
params
})
}
/** normal / limited / banned,封禁与限制会立即吊销该用户全部会话 */
export const updateAppUserStatusApi = (id: number, status: string, reason?: string) => {
return request.put<void>({
url: `/admin/app-users/${id}/status`,
params: { status, reason }
})
}