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 前端页面待后续补充。*
|