公众号功能设计
这篇解决什么
公众号运营怎么分层:mp_account 是账号主数据,菜单 / 素材 / 粉丝 / 消息是业务。读完先对模块边界和表,再进接入、菜单、素材等功能篇。
默认端口 48080,前缀 /admin-api。工程启动见 快速开始。
业务流程及架构
公众号自己不算流程引擎,没有 processDefinitionKey。运营能力在 yudao-module-mp。微信推送打开放接口 /mp/open/{appId},不走登录。
示意图:运营改菜单和素材。微信事件进开放接口,再写粉丝和消息。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 账号 | mp_account | 公众号接入 |
| 菜单 | mp_menu | 公众号菜单 |
| 素材 | mp_material | 公众号素材 |
| 图文 | 微信草稿,没有 mp_article | 公众号图文 |
| 自动回复 | mp_auto_reply | 自动回复 |
| 消息 | mp_message | 公众号消息 |
| 模版 | mp_message_template | 消息模版 |
| 粉丝 / 标签 | mp_user / mp_tag | 公众号粉丝、粉丝标签 |
| 统计 | 微信 DataCube 现查 | 公众号统计 |
| 移动 | 管理员搬家 | 移动端公众号管理 |
运营账号不是社交登录
mp_account 存公众号运营凭据。会员 H5 授权走 system_social_client,类型 WECHAT_MP = 31,见 微信公众号登录。同一微信应用可以复用 appId,两张表要各自建行。
回调要放行
yudao.security.permit-all_urls 已含 /admin-api/mp/open/**。GET 校验签名,POST 收消息。本机地址微信打不进来,先保证管理端列表能开。
数据表 ER
主干表按已有篇和 DO 画出。图文草稿在微信服务器,仓库没有 mp_article。
示意图:一个公众号账号挂菜单、素材、粉丝和消息。统计不落本地表。
前后端代码
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模块 | 账号、菜单、素材、消息、粉丝 | ruoyi-office/yudao-module-mp/ |
| 单体引入 | yudao-module-mp-server | ruoyi-office/yudao-server/pom.xml |
| 回调 | @RequestMapping("/mp/open") | MpOpenController |
| 管理端 | 公众号各页 | ruoyi-office-vben/apps/web-antd/src/views/mp/ |
| 移动端 | 管理员搬家 | ruoyi-office-uniapp/src/pages-mp/ |
官方菜单:2084 公众号管理(/mp)。账号 2085,菜单 2119,素材 2113,粉丝 2099。看不到菜单时先查角色,再确认 OA 裁剪有没有关掉这棵目录。内置角色「公众号业务」编号 201。
微服务可单独起 MpServerApplication(模块配置端口 48086),单体日常不用。starter 里的 wx.mp.app-id 是占位,防止未配账号时启动失败。真正凭据在 mp_account:appId、appSecret、token、aesKey。

本系统截图:公众号管理 → 账号管理。能进列表说明模块和菜单已经在跑。

本系统截图:公众号管理 → 菜单管理。改的是 mp_menu,不是后台 system_menu。
功能开启
单体 -P boot 时已经依赖公众号实现,没有单独的「公众号开关」页。启动 YudaoServerApplication 即可。
客户默认包 ruoyi-office-db/dump/latest/:先 schema_*.sql 再 static_data_*.sql,带 mp_account、mp_user、mp_menu、mp_material、mp_message、mp_auto_reply、mp_message_template 和菜单树。以后改表走 ruoyi-office-db/update/。
能打开「公众号管理 → 账号管理」说明菜单在。账号列表路由 /mp/account。
示意图:先模块和菜单,再填 appId。接入步骤见账号篇。
旧文 公众号功能开启 已并入本页,请收藏本篇。
