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

12 KiB
Raw Permalink Blame History

YwxApp 功能模块分类

编写日期:2026-08-07 参考来源:Discuz! 版本功能对比页

本文参考 Discuz! 官方版本页的功能模块组织方式,结合 YwxApp 当前代码库实际落地的模块,做一套功能模块分类,用于产品梳理、版本规划与对外介绍。


一、参考来源说明(Discuz! 版本页的分类逻辑)

Discuz! 版本对比页将功能划分为若干大类,其组织思路是:

  • 核心基础:站点底层能力(架构、账号、权限、用户组)。
  • 内容生产:论坛、门户、博客、文档等内容创作与消费模块。
  • 运营工具:积分、勋章、道具、任务、支付、营销、活动等促活/变现手段。
  • 安全与管控:认证、审核、防灌水、日志、访问控制。
  • 扩展与生态:插件、模板、多端、开放接口、第三方对接。

其核心经验:以用户生命周期(注册 → 活跃 → 付费 → 沉淀)为主线组织模块,而非按技术栈划分


二、YwxApp 功能模块分类(按落地情况)

1. 核心基础(账号 / 认证 / 架构 / 市场内核)

子模块 实现位置 说明
账号与认证体系 ywxapp/library/Auth.phpverifyAuth() 登录、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.phpAddonService::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-appmd5 验签)+ 后台人工确认(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 新增)
    • forumforum_topicaudit_reason 列(install.sql 事实源 + SchemaGuard::ensureForumSchema() 兜底);need_audit 开启时发帖走 AiAuditService 机审(命中违规直接驳回,通过转人工待审);后台 Topic::audit()/reject() + 路由 + 「待审帖子」菜单子项 + 列表审核按钮;前台详情页仅 status=1 可见。
    • blogblog_articleaudit_status 列(0草稿/1待审/2通过/3驳回,install.sql + SchemaGuard::ensureBlogSchema() 兜底);BlogArticle 模型 $allowFieldaudit_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 地理位置 / LBS2026-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.phpGuzzleHttp 调 ES 9200 RESTensureIndex/indexDoc/deleteDoc/search/rebuildIK 分词降级 standard,不可用时抛异常由上层降级)。
    • ForumSearchService / BlogSearchService:配置开关 search_engine=like|es,默认 LIKEES 不可用时自动降级到原生模糊检索(零风险)。
    • 薄封装:ES 仅返回 id 列表 → whereIn('id', $ids) 回表取完整行 + 关联,复用现有视图。
    • 接入点:forum 前台搜索、blog 前台搜索替换为 ES 查询;发帖/编辑/删除时同步索引(sync/remove)。
    • 配置项:addon/forum/config.php + addon/blog/config.phpsearch_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 优先级排期。