liu
21 小时以前 5d34bdd3c426bb2ca5f6627424ae67984f745603
docs/wxcp_activity_integration.md
@@ -53,6 +53,7 @@
| title | String | 是 | 活动标题,≤128 字符 |
| content | String | 否 | 活动详情 |
| blobIds | Long[] | 否 | **封面图文件编号**,最多 1 个;不传 = 不改动封面,传 `[]` = 清空封面 |
| detailBlobIds | Long[] | 否 | **详情图片文件编号**,最多 5 个;不传 = 不改动,传 `[]` = 清空 |
| location | String | 否 | 活动地点,≤255 字符 |
| startTime | DateTime | 否 | 活动开始时间 |
| endTime | DateTime | 否 | 活动结束时间 |
@@ -73,6 +74,7 @@
| pushStatus | Integer | 0未推送 1已推送 |
| pushTime | DateTime | 最近推送时间 |
| attachmentList | Object[] | **封面图附件列表**(最多 1 条),字段同报名附件:`id`、`name`、`url`、`previewURL`、`downloadURL`。列表缩略图、表单回显都从这里取 |
| detailAttachmentList | Object[] | **详情图片附件列表**(最多 5 条,按上传先后排序),字段同上。表单回显从这里取 |
### 推送与二维码
@@ -237,7 +239,9 @@
| 取消后重新报名 | 复用原记录,不会产生第二条历史 |
| 取消报名 | 活动 `signupCount` 自动 -1 |
| 封面图 | 不存业务表字段,存 `system_storage_attachment`(`record_type = wxcp_activity`)。删除活动时一并清掉附件关系 |
| 封面图展示 | 报名页顶部以 `object-fit: cover` 展示;管理后台列表在标题左侧显示缩略图 |
| 封面图展示 | 报名页顶部以 `object-fit: cover` 展示(会按 307×260 裁剪);管理后台列表在标题左侧显示缩略图 |
| 详情图片 | 同样存 `system_storage_attachment`,但 `record_type = wxcp_activity_detail`,与封面互不影响,最多 5 张,删除活动时一并清掉 |
| 详情图片展示 | 报名页在「活动详情」文字下方按**原图比例全宽展示,不裁剪**,点一下打开原图。**二维码、海报这类被裁就失效的图必须放详情图片,不能放封面** |
## 注意事项
@@ -253,6 +257,8 @@
- **附件上传走 system 模块的公共上传接口**:报名页先调 `POST /admin-api/system/storage-blob/public-upload`(表单字段名 `files`)拿到 `blobId`,再把 `blobIds` 随报名提交,由**服务端**完成与报名记录的绑定。管理后台查附件用 `/wxcp/activity/signup/attachments`。
- **报名的 `recordType` 固定为 `wxcp_activity_signup`**,已注册进 system 模块的 `StorageRecordTypeEnum` 白名单。以后新增别的附件关联类型,必须同步注册,否则绑定会报「无效的记录类型」。
- **活动封面的 `recordType` 为 `wxcp_activity`**,同样已注册进白名单。封面**不再有 `coverUrl` 字段**,`POST/PUT /wxcp/activity/create|update` 提交 `blobIds`,`GET` 读 `attachmentList`。
- **活动详情图片的 `recordType` 为 `wxcp_activity_detail`**,已注册进白名单。提交 `detailBlobIds`、`GET` 读 `detailAttachmentList`(按 blobId 升序 = 上传先后,因为底层 `selectByIds` 不承诺顺序)。
- **封面和详情图片是两套独立关系**,各自「不传 = 不改动、传 `[]` = 清空」,改一个不会影响另一个。
- **封面图在报名页显示时会去掉协议和域名**。附件地址里的域名取自 `yudao.storage.domain`(一般是内网地址),而手机扫码是从公网域名打开页面的,直连内网地址加载不出图片,所以后端只保留 `/admin-api/...` 路径交给同源代理。**如果部署时管理后台与报名页不同源,这个处理需要重新评估。**
- 表单里的封面用 `ImageUpload` 组件(`maxNumber: 1`)时,组件返回的是**单值而不是数组**,提交前必须包成数组(`blobIds` 后端签名是 `List<Long>`)。
- 通讯录接口**实时调企业微信**,有频率限制,前端务必缓存,不要随输入实时请求。