| | |
| | | | title | String | 是 | 活动标题,≤128 字符 | |
| | | | content | String | 否 | 活动详情 | |
| | | | blobIds | Long[] | 否 | **封面图文件编号**,最多 1 个;不传 = 不改动封面,传 `[]` = 清空封面 | |
| | | | detailBlobIds | Long[] | 否 | **详情图片文件编号**,最多 5 个;不传 = 不改动,传 `[]` = 清空 | |
| | | | location | String | 否 | 活动地点,≤255 字符 | |
| | | | startTime | DateTime | 否 | 活动开始时间 | |
| | | | endTime | DateTime | 否 | 活动结束时间 | |
| | |
| | | | pushStatus | Integer | 0未推送 1已推送 | |
| | | | pushTime | DateTime | 最近推送时间 | |
| | | | attachmentList | Object[] | **封面图附件列表**(最多 1 条),字段同报名附件:`id`、`name`、`url`、`previewURL`、`downloadURL`。列表缩略图、表单回显都从这里取 | |
| | | | detailAttachmentList | Object[] | **详情图片附件列表**(最多 5 条,按上传先后排序),字段同上。表单回显从这里取 | |
| | | |
| | | ### 推送与二维码 |
| | | |
| | |
| | | | 取消后重新报名 | 复用原记录,不会产生第二条历史 | |
| | | | 取消报名 | 活动 `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 张,删除活动时一并清掉 | |
| | | | 详情图片展示 | 报名页在「活动详情」文字下方按**原图比例全宽展示,不裁剪**,点一下打开原图。**二维码、海报这类被裁就失效的图必须放详情图片,不能放封面** | |
| | | |
| | | ## 注意事项 |
| | | |
| | |
| | | - **附件上传走 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>`)。 |
| | | - 通讯录接口**实时调企业微信**,有频率限制,前端务必缓存,不要随输入实时请求。 |