94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
# Phase 14 完成报告:多类型公益活动
|
||
|
||
> 版本基线:v1.0.0-RC.2 → v1.1.0-dev | 日期:2026-09-08
|
||
> 对应 EPIC:EPIC-P14-V11
|
||
|
||
---
|
||
|
||
## 完成摘要
|
||
|
||
| 项目 | 内容 |
|
||
|------|------|
|
||
| Phase | 14 |
|
||
| 模块 | 多类型公益活动 |
|
||
| 状态 | ✅ 核心链路已完成(V1.1 MVP) |
|
||
|
||
---
|
||
|
||
## 完成的任务
|
||
|
||
### 数据模型(V023)
|
||
- `activities` 表新增 5 个字段:`activity_type`、`registration_policy`、`target_group`、`industry_scope`、`post_event_interest_enabled`
|
||
- 新建 `activity_organizations` 表:支持多组织联合举办活动
|
||
- 新建 `activity_capacity_groups` 表:支持按性别/组别的容量配额
|
||
|
||
### Java 新增/修改
|
||
- `Activity.java` — 新增 5 个 V1.1 字段
|
||
- `ActivityOrganization.java` — 新增实体 + Mapper
|
||
- `ActivityCapacityGroup.java` — 新增实体 + Mapper
|
||
- `Constants.java` — 新增 6 个 ACTIVITY_TYPE_* + 5 个 ORG_ROLE_* 常量
|
||
- `ActivityService.java` — 新增 4 个方法(getActivitiesByType / getActivityOrganizations / getActivityCapacityGroups / createActivityFromAdmin / addActivityOrganization / addCapacityGroup)
|
||
- `ActivityController.java` — 新增 6 个 API 端点
|
||
|
||
---
|
||
|
||
## 数据库变更(V023)
|
||
|
||
```sql
|
||
-- activities 扩展字段
|
||
ALTER TABLE activities ADD COLUMN activity_type VARCHAR(64) DEFAULT 'matchmaking';
|
||
ALTER TABLE activities ADD COLUMN registration_policy TEXT;
|
||
ALTER TABLE activities ADD COLUMN target_group VARCHAR(200);
|
||
ALTER TABLE activities ADD COLUMN industry_scope VARCHAR(200);
|
||
ALTER TABLE activities ADD COLUMN post_event_interest_enabled BOOLEAN DEFAULT FALSE;
|
||
|
||
-- 多组织关联表
|
||
CREATE TABLE activity_organizations (
|
||
id UUID PRIMARY KEY, activity_id UUID, organization_id UUID,
|
||
role VARCHAR(32), created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ,
|
||
UNIQUE(activity_id, organization_id)
|
||
);
|
||
CHECK role IN ('host', 'organizer', 'co_organizer', 'partner', 'venue_partner');
|
||
|
||
-- 容量分组表
|
||
CREATE TABLE activity_capacity_groups (
|
||
id UUID PRIMARY KEY, activity_id UUID, group_code VARCHAR(32),
|
||
rule_definition TEXT, capacity INT, approved_count INT,
|
||
created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ,
|
||
UNIQUE(activity_id, group_code)
|
||
);
|
||
```
|
||
|
||
---
|
||
|
||
## API 新增
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/activities/types/{activityType}` | 按活动类型过滤 |
|
||
| GET | `/activities/{id}/organizations` | 获取活动组织列表 |
|
||
| GET | `/activities/{id}/capacity-groups` | 获取容量分组 |
|
||
| POST | `/operator/activities` | 后台创建活动(含多组织) |
|
||
| POST | `/operator/activities/{id}/organizations` | 添加组织关联 |
|
||
| POST | `/operator/activities/{id}/capacity-groups` | 添加容量分组 |
|
||
|
||
---
|
||
|
||
## Miniapp 前端(后续补充)
|
||
|
||
| 任务 | 状态 |
|
||
|------|------|
|
||
| T07 活动分类Tabs | ⏳ 待实现 |
|
||
| T08 类型化ActivityCard | ⏳ 待实现 |
|
||
| T09 动态报名资格提示 | ⏳ 待实现 |
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
下一阶段为 **Phase 16(活动互选二阶段同意重构)**,需要对现有 activity mutual 流程进行架构重构,将直接创建 Match 改为两阶段同意流程。
|
||
|
||
---
|
||
|
||
*Phase 14 核心链路完成。后端 API + 数据模型已就绪,Miniapp 前端页面待后续补充。*
|