# 银龄库管理功能实施计划
## 项目概述
基于现有`SilverUserProfile`实体,为管理后台设计完整的银龄库(银卡库)管理系统,实现对银龄人才的全面管理功能。
## 技术架构
### 1. 实体结构
使用现有的`SilverUserProfile`实体,包含以下核心字段:
- 基本信息:姓名、年龄、性别、联系方式、头像
- 机构信息:所属组织、机构认证
- 技能信息:个人技能、经验、简介
- 认证状态:未认证、认证中、已认证、已拒绝
- 求职状态:未求职、积极求职、观望机会
- 统计数据:积分、简历数、申请数、时间银行小时数
- 知识贡献:分享数、阅读量、点赞数、排名
### 2. 管理功能模块
#### 2.1 列表管理功能
- 分页查询所有银龄人才
- 多条件筛选(姓名、年龄、认证状态、求职状态等)
- 排序功能(按创建时间、积分、排名等)
- 批量操作(批量认证、批量导出)
#### 2.2 详情管理功能
- 查看完整人才档案
- 编辑人才信息
- 认证状态管理
- 数据统计展示
#### 2.3 认证管理功能
- 认证审核流程
- 认证材料查看
- 认证状态批量更新
- 认证历史记录
#### 2.4 统计分析功能
- 人才总数统计
- 认证状态分布
- 年龄段分布
- 技能标签统计
- 活跃度排名
## 实施步骤
### 阶段一:后端API扩展(标准通用CRUD + 管理增强)
#### 1.1 创建管理专用API路由
```
src/server/api/silver-talents-admin/
├── index.ts # 路由聚合
├── get.ts # 管理列表查询
├── [id]/
│ ├── get.ts # 管理详情查询
│ ├── put.ts # 管理员更新
│ └── patch.ts # 认证状态更新
└── stats.ts # 统计数据
```
#### 1.2 扩展现有服务
在`SilverTalentService`基础上增加管理功能:
- `findForAdmin()` - 管理后台专用查询
- `updateByAdmin()` - 管理员更新功能
- `batchUpdateCertification()` - 批量认证更新
- `getStats()` - 统计数据获取
### 阶段二:管理后台界面开发
#### 2.1 菜单配置
在`src/client/admin/menu.tsx`中添加:
```typescript
{
key: 'silver-talents',
label: '银龄库管理',
icon: ,
path: '/admin/silver-talents',
permission: 'silver-talent:manage'
}
```
#### 2.2 路由配置
在`src/client/admin/routes.tsx`中添加:
```typescript
{
path: 'silver-talents',
element: ,
errorElement:
}
```
#### 2.3 页面组件结构
```
src/client/admin/pages/SilverTalents/
├── index.tsx # 列表页面
├── Detail.tsx # 详情页面
├── components/
│ ├── TalentTable.tsx # 人才表格
│ ├── TalentForm.tsx # 编辑表单
│ ├── CertificationModal.tsx # 认证弹窗
│ └── StatsCard.tsx # 统计卡片
└── hooks/
└── useTalentData.ts # 数据钩子
```
### 阶段三:功能实现详情
#### 3.1 列表页面功能
- 表格展示:姓名、年龄、机构、认证状态、求职状态、积分
- 搜索筛选:姓名搜索、年龄范围、认证状态筛选、求职状态筛选
- 排序功能:按创建时间、积分、活跃度排序
- 批量操作:批量认证、批量导出Excel
- 操作列:查看详情、编辑、认证管理
#### 3.2 详情页面功能
- 基本信息展示
- 认证材料查看
- 统计数据可视化
- 编辑表单
- 操作日志
#### 3.3 认证管理功能
- 认证状态切换
- 认证理由填写
- 认证材料上传
- 认证历史查看
### 阶段四:数据库优化
#### 4.1 索引优化
```sql
-- 为管理查询优化索引
CREATE INDEX idx_silver_profile_name ON silver_user_profiles(real_name);
CREATE INDEX idx_silver_profile_age ON silver_user_profiles(age);
CREATE INDEX idx_silver_profile_cert_status ON silver_user_profiles(certification_status);
CREATE INDEX idx_silver_profile_job_status ON silver_user_profiles(job_seeking_status);
```
#### 4.2 权限配置
在权限系统中添加:
- `silver-talent:read` - 查看银龄人才
- `silver-talent:write` - 编辑银龄人才
- `silver-talent:certify` - 认证管理
- `silver-talent:delete` - 删除银龄人才
## API设计规范
### 列表查询(管理专用)
```
GET /api/v1/admin/silver-talents
参数:
- page: 页码
- pageSize: 每页数量
- keyword: 关键词搜索
- certificationStatus: 认证状态筛选
- jobSeekingStatus: 求职状态筛选
- ageMin/ageMax: 年龄范围
- sortBy: 排序字段
- sortOrder: 排序方向
响应:
{
data: SilverUserProfile[],
pagination: {...},
stats: {...}
}
```
### 认证状态更新
```
PATCH /api/v1/admin/silver-talents/:id/certification
请求体:
{
certificationStatus: "CERTIFIED" | "REJECTED",
certificationInfo: string,
reason?: string
}
```
### 统计数据
```
GET /api/v1/admin/silver-talents/stats
响应:
{
totalCount: number,
certifiedCount: number,
pendingCount: number,
rejectedCount: number,
ageDistribution: {...},
skillDistribution: {...}
}
```
## 前端组件设计
### 表格列配置
```typescript
const columns = [
{ title: '姓名', dataIndex: 'realName', key: 'realName' },
{ title: '年龄', dataIndex: 'age', key: 'age', sorter: true },
{ title: '所属机构', dataIndex: 'organization', key: 'organization' },
{ title: '认证状态', dataIndex: 'certificationStatus', key: 'certificationStatus',
render: (status) => {getStatusText(status)} },
{ title: '求职状态', dataIndex: 'jobSeekingStatus', key: 'jobSeekingStatus' },
{ title: '积分', dataIndex: 'totalPoints', key: 'totalPoints', sorter: true },
{ title: '操作', key: 'action', render: (_, record) => }
];
```
### 筛选表单
- 姓名搜索框
- 年龄范围输入(最小年龄/最大年龄)
- 认证状态下拉选择
- 求职状态下拉选择
- 日期范围选择器
- 技能标签多选框
## 性能优化策略
### 查询优化
1. 使用数据库索引
2. 分页查询
3. 懒加载关联数据
4. 缓存热点数据
### 前端优化
1. 表格虚拟滚动
2. 图片懒加载
3. 搜索防抖
4. 数据缓存
## 安全考虑
### 权限控制
- 基于角色的访问控制
- API级别权限验证
- 操作日志记录
### 数据安全
- 敏感信息脱敏
- 操作审计日志
- 输入验证和过滤
## 测试计划
### 单元测试
- 服务层方法测试
- API接口测试
- 前端组件测试
### 集成测试
- 端到端流程测试
- 权限验证测试
- 性能测试
## 部署步骤
1. 数据库更新(索引和权限)
2. 后端API部署
3. 前端界面部署
4. 权限配置更新
5. 监控和日志配置
## 预期效果
- 管理员可以高效管理所有银龄人才
- 认证流程标准化和自动化
- 数据统计和决策支持
- 用户体验优化
- 系统性能提升
## 后续扩展
- 批量导入功能
- 数据导出(Excel/PDF)
- 消息通知系统
- 高级统计分析
- 移动端管理应用