Files
YwxAppThink/docs/功能模块分类.md

179 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# YwxApp 功能模块分类
> 编写日期:2026-08-07
> 参考来源:[Discuz! 版本功能对比页](https://www.discuz.vip/version)
本文参考 Discuz! 官方版本页的功能模块组织方式,结合 YwxApp 当前代码库实际落地的模块,做一套功能模块分类,用于产品梳理、版本规划与对外介绍。
---
## 一、参考来源说明(Discuz! 版本页的分类逻辑)
Discuz! 版本对比页将功能划分为若干大类,其组织思路是:
- **核心基础**:站点底层能力(架构、账号、权限、用户组)。
- **内容生产**:论坛、门户、博客、文档等内容创作与消费模块。
- **运营工具**:积分、勋章、道具、任务、支付、营销、活动等促活/变现手段。
- **安全与管控**:认证、审核、防灌水、日志、访问控制。
- **扩展与生态**:插件、模板、多端、开放接口、第三方对接。
其核心经验:**以用户生命周期(注册 → 活跃 → 付费 → 沉淀)为主线组织模块,而非按技术栈划分**。
---
## 二、YwxApp 功能模块分类(按落地情况)
### 1. 核心基础(账号 / 认证 / 架构 / 市场内核)
| 子模块 | 实现位置 | 说明 |
|---|---|---|
| 账号与认证体系 | `ywxapp/library/Auth.php``verifyAuth()`) | 登录、JWT、用户组权限校验 |
| 会员中心框架 | `app/member/` | 控制台、iframe 工作台、主题换肤 |
| 多应用架构 | `app/{api,backend,frontend,member,wxapp}` | 后台 / 前台 / 会员 / 接口 / 小程序多端 |
| 应用市场内核 | `addon/appmall/` | 插件提交 → 审核 → 上架 → 购买 → 授权闭环 |
### 2. 内容生产(社区 / 博客 / 导航 / 文档)
| 子模块 | 实现位置 | 说明 |
|---|---|---|
| 轻社区论坛 | `addon/forum/` | 发帖、我的帖子、会员中心集成 |
| 博客系统 | `addon/blog/` | 文章发布与管理 |
| 站点导航 | `addon/haonav/` | 自定义导航菜单 |
| 站内文档 | `addon/docs/` | 文档 / 帮助沉淀 |
### 3. 运营工具(积分 / 勋章 / 道具 / 任务 / 支付 / 短信)
| 子模块 | 实现位置 | 说明 |
|---|---|---|
| 任务中心 | `app/member/controller/Task.php` + `ywxapp/model/Task.php` | 任务领取、进度跟踪 |
| 我的道具 | `wxapp_user_prop` 表 + `SchemaGuard::ensureTaskSchema()` | 道具持有与兑换 |
| 我的勋章 | `Medal` 模型 + `wxapp_user_medal` | 成就 / 勋章授予 |
| 充值中心 | `app/member` payment / card | 套餐充值、卡密兑换、兑换记录 |
| 支付网关 | `addon/mqpay/`(免签)、Yansongda | 支付与回调 |
| 短信服务 | `addon/smsbao/``addon/smssend/``ywxapp/model/Sms.php` | 验证码 / 通知 |
### 4. 安全与管控(权限 / 授权 / 锁定 / SEO / 通信)
| 子模块 | 实现位置 | 说明 |
|---|---|---|
| 三端分离登录 | `BackendBase` / `MemberBase` / `FrontendBase` | 后台 / 会员 / 前台独立鉴权 |
| 插件授权巡检 | `command/AddonLicenseCheck.php``AddonService::verifyRuntimeLicense()` | 授权闸门与过期巡检 |
| 登录锁定 | `Auth::login` + `User::isLocked()` | 失败次数 / 时段锁定 |
| SEO 优化 | `addon/seo/` | 静态化 / 收录优化 |
| 即时通信 | `addon/mqttbroker/``addon/wxchat/` | MQTT 消息、微信会话 |
### 5. 扩展与生态(多端 / 开放能力 / CLI / 部署)
| 子模块 | 实现位置 | 说明 |
|---|---|---|
| 微信生态 | `addon/wxchat/` | 小程序 / 微信对接(含 uni-app `.uvue/.uts` |
| 应用市场生态 | `addon/appmall/` | 开发者中心、分润、下载安装 |
| CLI 命令体系 | `ywxapp/service/AppService.php` 注册 | `addon:health` / `make` / `manage` / `license-check` |
| 打包与分发 | `package_appmarket_addon.php` / `package_framework.php` | 插件包 / 框架包生成 |
---
## 三、与 Discuz! 的对照与差距
### 3.1 已具备对应能力(但部分缺后台管理端)
- 权限控制 / 用户组 / 积分 / 勋章 / 道具 / 任务:YwxApp 已有对应能力,但 **勋章、道具、任务目前主要在会员中心侧边菜单**,尚未补齐 `app/backend` 后台管理入口(Discuz! 后台可配置积分规则、勋章发放、道具管理等)。
### 3.2 差异化优势(Discuz! 开源版没有)
- **应用市场商业化闭环**:提交 → 审核 → 购买 → 支付回调 → 域名授权 → 运行期过期巡检 → 分润提现。这是 YwxApp 的独有模块,也是商业变现的核心。
### 3.3 暂缺能力(Discuz! 有,YwxApp 尚未实现)
- 内容审核 / 云审机制
- GEO 地理位置 / LBS
- AI 推荐 / 个性化
- ElasticSearch 全文检索
- 可视化工作流 / 审批流
---
## 四、模块状态总览(已上线 / 待完善 / 缺失)
图例:✅ 已上线 🟡 待完善(有基础能力但缺管理端/不完整) ⬜ 缺失(未实现)
### 核心基础
| 子模块 | 状态 | 说明 |
|---|---|---|
| 账号与认证体系 | ✅ | Auth + verifyAuth 完整 |
| 会员中心框架 | ✅ | 控制台/工作台/换肤完整 |
| 多应用架构 | ✅ | 五端齐备 |
| 应用市场内核 | ✅ | 提交→审核→购买→授权闭环完整 |
### 内容生产
| 子模块 | 状态 | 说明 |
|---|---|---|
| 轻社区论坛 | ✅ | forum 插件完整(含内容审核:need_audit 配置 + 机审/人工复核) |
| 博客系统 | ✅ | blog 插件含 `controller/backend/` 下 9 个控制器,后台管理完整(含内容审核:audit_status |
| 站点导航 | ✅ | haonav 完整 |
| 站内文档 | ✅ | docs 完整 |
### 运营工具
| 子模块 | 状态 | 说明 |
|---|---|---|
| 任务中心 | ✅ | 前台+后台 CRUD 完整 |
| 我的道具 | ✅ | 前台+后台(Prop)完整 |
| 我的勋章 | ✅ | 前台+后台(Medal)完整 |
| 充值中心 | ✅ | 套餐/卡密/记录+后台(Card/Shop)完整 |
| 支付网关 | ✅ | mqpay 免签(收款码+安卓监听自动确认+后台人工确认)+ Yansongda 真实商户支付均已落地 |
| 短信服务 | ✅ | smsbao/smssend+Sms 模型+后台完整 |
| **积分规则管理** | ✅ | 本次新增 `score_rule`/`score_log` 表 + `Score` 控制器/模型/菜单 |
### 安全与管控
| 子模块 | 状态 | 说明 |
|---|---|---|
| 三端分离登录 | ✅ | Backend/Member/Frontend 完整 |
| 插件授权巡检 | ✅ | license-check + 运行时闸门完整 |
| 登录锁定 | ✅ | Auth::login + isLocked 完整 |
| SEO 优化 | ✅ | seo 插件完整 |
| 内容审核 | ✅ | forum/blog 已接入机审+人工复核队列 |
| 即时通信 | ✅ | mqttbroker 连接数/限流保护 + 重连封装 + 压测脚本完整 |
| 全文检索 | ✅ | ES 可选增强(默认 LIKE,ES 不可用自动降级),forum/blog 已接入 |
### 扩展与生态
| 子模块 | 状态 | 说明 |
|---|---|---|
| 微信生态 | ✅ | wxchat + uni-app 对接完整 |
| 应用市场生态 | ✅ | 开发者中心/分润/下载完整 |
| CLI 命令体系 | ✅ | AppService 注册 4 条命令完整 |
| 打包与分发 | ✅ | 两个 package 脚本完整 |
---
## 五、补齐路线图(待完善 / 缺失能力)
### A. 运营工具补全(优先级高)— 已全部完成 ✅(2026-08-07
1. **积分规则管理后台(⬜→✅,2026-08-07 新增)**:新增 `score_rule`/`score_log` 表 + `app/backend/controller/Score.php`(规则 CRUD + 流水查看)+ 模型 + validate + 视图/JS + `admin_power` 菜单种子;任务发积分改为走 `Score::change()`(事务内改 `user.score` 并写 `score_log` 流水)。
2. **支付网关 mqpay 免签真接入(🟡→✅,核实已具备)**:经排查 `addon/mqpay` 插件已实现免签全流程——个人收款码扫码 + 金额零头防撞单 + 安卓监听 App 自动确认(`notify-app`md5 验签)+ 后台人工确认(`Confirm`),并可选启用 Yansongda 真实商户支付。原标注"未接入"系调研不完整所致,实际无需改动。
3. **博客后台管理完善(🟡→✅,核实已具备)**`addon/blog/controller/backend/` 下已有 Article/Category/Comment/Dashboard/Index/Setting/Stat/Tag/User 共 9 个后台控制器,后台管理完整,无需补齐。
### B. 安全与管控增强(优先级中)— 已全部完成 ✅(2026-08-07
1. **内容审核 / 云审机制(⬜→✅,2026-08-07 新增)**
- forum`forum_topic``audit_reason` 列(install.sql 事实源 + `SchemaGuard::ensureForumSchema()` 兜底);`need_audit` 开启时发帖走 `AiAuditService` 机审(命中违规直接驳回,通过转人工待审);后台 `Topic::audit()/reject()` + 路由 + 「待审帖子」菜单子项 + 列表审核按钮;前台详情页仅 `status=1` 可见。
- blog`blog_article``audit_status` 列(0草稿/1待审/2通过/3驳回,install.sql + `SchemaGuard::ensureBlogSchema()` 兜底);`BlogArticle` 模型 `$allowField``audit_status`;发布走机审;后台 `Article::audit()/reject()` + 审核状态列/筛选 + 路由 + 菜单子项。
- 复用 `addon/wxchat/service/AiAuditService.php`(已存在的云审接入点)。
2. **即时通信稳定性(🟡→✅,2026-08-07 新增)**
- Broker 过载保护:新增 `max_connections`(连接数硬上限拒绝新连接防雪崩)+ `publish_rate_limit`(单连接令牌桶限流,超量静默丢弃);config 暴露后台可调。
- 客户端重连封装:`client/MqttClient.js`(指数退避 1s→30s + 会话恢复 + 遗嘱 LWT + 心跳兜底)。
- 压测脚本:`benchmark.php`(纯 PHP 零依赖,模拟 N 客户端并发连接 + 高频发布,验证稳定性)。
### C. 差异化能力扩展(优先级低,对标 Discuz! 缺失项)
1. **GEO 地理位置 / LBS(⬜→✅,2026-08-08 新增)**
- `forum_topic`/`blog_article` 加可选 `lat`/`lng` 字段(install.sql 事实源 + `SchemaGuard::ensureForumSchema/ensureBlogSchema` 兜底)。
- `ForumSearchService::nearby()` / `BlogSearchService::nearby()`:Haversine 球面距离过滤(零依赖),发帖时可带坐标(前端定位可选填)。
- 前台「附近帖子」(`/forum/nearby`)、「附近文章」(`/blog/nearby`) 页:浏览器定位 → 半径列表,未定位可手动传 lat/lng。
2. **AI 推荐 / 个性化(⬜→✅,2026-08-08 新增)**
- 基于内容相似度的相关推荐:`EsSearch::moreLikeThis()`ES more_like_this,内容相关度,启用 ES 时生效)+ `ForumSearchService::related()` / `BlogSearchService::related()`(ES 不可用时降级为同版块/同分类/标签重叠相似度)。
- 接入点:forum 帖子详情页右侧「相关帖子」、blog 文章详情页「相关推荐」。
3. **ElasticSearch 全文检索(⬜→✅,2026-08-08 新增)**
- 通用封装 `ywxapp/library/Search/EsSearch.php`GuzzleHttp 调 ES 9200 RESTensureIndex/indexDoc/deleteDoc/search/rebuildIK 分词降级 standard,不可用时抛异常由上层降级)。
- `ForumSearchService` / `BlogSearchService`:配置开关 `search_engine=like|es`,默认 LIKE,**ES 不可用时自动降级**到原生模糊检索(零风险)。
- 薄封装:ES 仅返回 id 列表 → `whereIn('id', $ids)` 回表取完整行 + 关联,复用现有视图。
- 接入点:forum 前台搜索、blog 前台搜索替换为 ES 查询;发帖/编辑/删除时同步索引(`sync/remove`)。
- 配置项:`addon/forum/config.php` + `addon/blog/config.php``search_engine`/`es_host`/`es_index`
4. **可视化工作流 / 审批流(✅)**——用于插件上架审核流可视化。
- `appmarket_addon_review_log` 审核历史日志表(install.sql + SchemaGuard 双源)。
- `AddonReview` 后台加 `approve`/`reject` 写入审核日志;`detail`(JSON)/`detailview`(HTML)/`history`(JSON) 三接口 + 路由。
- 列表页"查看详情"按钮 → iframe 弹层打开 `detailview`:提交信息卡 + 审核状态步骤条 + 历史时间线。
### D. 对外材料
- 对外介绍页可直接复用本分类五大类结构,突出「应用市场商业化闭环」差异化卖点。
- 版本规划表以第四节状态总览为准,按 A→B→C 优先级排期。