|
|
@@ -0,0 +1,71 @@
|
|
|
+# 活动分享推广与创建活动权限
|
|
|
+
|
|
|
+**日期**: 2026-10-07
|
|
|
+**状态**: 设计完成,待实现
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 需求概述
|
|
|
+
|
|
|
+小程序端支持:
|
|
|
+1. 规划师(activity_provider,审核通过)可创建活动
|
|
|
+2. 分享活动带推荐人(海报 + 分享卡均携带 refCode)
|
|
|
+3. 新用户通过分享链接/小程序码进入时自动绑定推荐人
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 现有基础
|
|
|
+
|
|
|
+| 功能 | 现有状态 |
|
|
|
+|------|----------|
|
|
|
+| 活动详情页"生成海报"按钮 | ✅ 已实现,调用 `getShareQrCode`,scene=`id=X&ref=code` |
|
|
|
+| `share-mixin.js` 获取/绑定推荐码 | ✅ 已实现,`onLoad` 捕获 `refCode`/`inviteCode` |
|
|
|
+| App.vue 捕获 `?refCode=` 参数 | ✅ 已实现,`captureReferralParams` |
|
|
|
+| App.vue 解析小程序码 scene | ⚠️ 仅跳转邀请页,未绑定推荐人 |
|
|
|
+| 活动创建权限 | ⚠️ 仅 admin/activity_admin,未包含 activity_provider |
|
|
|
+| activity/index manage Tab 创建按钮 | ⚠️ 仅对 `isAdmin` 显示 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 变更清单
|
|
|
+
|
|
|
+### 后端(cfc-backend)
|
|
|
+
|
|
|
+**文件**: `controller/ActivityController.java`
|
|
|
+
|
|
|
+修改以下 5 个接口,新增 `activity_provider`(审核通过)判断:
|
|
|
+- `create` — 允许 activity_provider 创建活动
|
|
|
+- `update` — 允许 activity_provider 编辑自己的活动
|
|
|
+- `publish` — 允许 activity_provider 发布活动
|
|
|
+- `end` — 允许 activity_provider 结束自己的活动
|
|
|
+- `submit-review` — 允许 activity_provider 提交审核
|
|
|
+
|
|
|
+权限判断方式:查询 User 实体,检查 `vendorType == 'activity_provider'` 且 `activityProviderStatus == 'approved'`
|
|
|
+
|
|
|
+### 前端(cfc-frontend)
|
|
|
+
|
|
|
+**文件 1**: `App.vue` — `handleScene()`
|
|
|
+- 当 scene 中有 `ref=XXX` 时,已登录直接绑定推荐人,未登录存 storage 待登录后绑定
|
|
|
+- 不再仅跳转 `/pages/invite/join`
|
|
|
+
|
|
|
+**文件 2**: `pages/activity/index.vue` — `isAdmin` computed
|
|
|
+- 新增 `isActivityProvider` 计算属性,查询用户 vendorType/activityProviderStatus
|
|
|
+- 创建活动按钮改为 `v-if="isAdmin || isActivityProvider"`
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 方案选型
|
|
|
+
|
|
|
+采用**方案A(复用现有推广体系)**:
|
|
|
+- 分享码 = 用户个人 referralCode(已有字段)
|
|
|
+- 绑定机制 = `bindReferralIfNotSelf`(已有方法,幂等)
|
|
|
+- 海报生成 = 复用 `getShareQrCode`(已有接口)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 不变更的内容
|
|
|
+
|
|
|
+- 活动详情页海报生成逻辑(已完整)
|
|
|
+- 活动列表页(无需分享入口)
|
|
|
+- 数据库迁移(activity_provider_status 列已存在)
|
|
|
+- 后端其他 Controller/Service
|