# qscms **Repository Path**: wp1208/qscms ## Basic Information - **Project Name**: qscms - **Description**: qscms - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-10 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 骑士cms内容管理系统 ## 项目介绍 骑士cms内容管理系统是一个基于 WebMan 和 ThinkORM 开发的全功能内容付费管理系统,提供丰富的商品管理、订单处理、用户管理和数据统计功能。系统支持多种内容类型(图文、文件、多章节、分组章节)和多种资源形式(视频、音频、图文、网盘),适用于知识付费、在线课程、电子书、资源下载、企业官网、博客、文章、软件下载、在线视频播放等多种业务场景。 ## 技术栈 ### 后端技术栈 - 框架:WebMan (基于 Workerman 的高性能 HTTP 服务框架) - 数据库 ORM:ThinkORM - PHP 版本:>= 8.2 - 数据库:MySQL >= 5.7 - 依赖管理:Composer 2.0+ - 第三方库: - monolog/monolog (日志处理) - yansongda/pay (支付集成) - firebase/php-jwt (JWT 认证) - james-heinrich/getid3 (媒体文件元数据提取) - overtrue/pinyin (中文拼音转换) ### 前端技术栈 - 框架:Vue 3.5+ + TypeScript - UI 组件库:TDesign Vue Next - 构建工具:Vite 5.1+ - 状态管理:Pinia - HTTP 客户端:Axios - 富文本编辑器:WangEditor - 图表库:ECharts - CSS 框架:TailwindCSS - 代码规范:ESLint + Prettier + Stylelint ## 系统架构 项目由两部分组成: 1. **service 目录**:后端服务,基于 WebMan 框架 2. **vue 目录**:前端应用,基于 Vue 3 + TypeScript ### 后端目录结构 ``` service/ ├── app/ # 应用目录 │ ├── adminapi/ # 管理后台 API 模块 │ │ ├── controller/ # 后台控制器 │ │ │ ├── goods/ # 商品管理控制器 │ │ │ ├── order/ # 订单管理控制器 │ │ │ ├── plugin/ # 插件管理控制器 │ │ │ ├── setting/ # 系统设置控制器 │ │ │ ├── translation/ # 翻译管理控制器 │ │ │ ├── user/ # 用户管理控制器 │ │ │ ├── Base.php # 基础控制器 │ │ │ ├── Login.php # 登录控制器 │ │ │ ├── Upload.php # 文件上传控制器 │ │ │ └── Workbench.php # 工作台控制器 │ │ ├── middleware/ # 后台中间件 │ │ │ └── AdminLogMiddleware.php # 管理员日志中间件 │ │ ├── validate/ # 后台验证器 │ │ │ ├── goods/ # 商品验证器 │ │ │ ├── setting/ # 设置验证器 │ │ │ ├── user/ # 用户验证器 │ │ │ └── Base.php # 基础验证器 │ │ └── view/ # 后台视图模板 │ │ └── admin/ # 管理员视图 │ ├── api/ # 前台 API 模块 │ │ ├── collection/ # 支付收款模块 │ │ │ ├── interfaces/ # 支付接口定义 │ │ │ ├── AlipayH5.php # 支付宝H5支付 │ │ │ ├── AlipayScan.php # 支付宝扫码支付 │ │ │ ├── WechatH5.php # 微信H5支付 │ │ │ └── ... # 其他支付方式 │ │ ├── controller/ # 前台控制器 │ │ │ ├── Base.php # 基础控制器 │ │ │ ├── Goods.php # 商品控制器 │ │ │ ├── Pay.php # 支付控制器 │ │ │ └── ... # 其他控制器 │ │ ├── validate/ # 前台验证器 │ │ └── view/ # 前台视图模板 │ │ └── pay/ # 支付相关视图 │ ├── command/ # 命令行工具 │ │ ├── AutoInstallCommand.php # 自动安装命令 │ │ ├── ClearDatabaseCommand.php # 清理数据库命令 │ │ ├── HookCommand.php # 钩子命令 │ │ └── TranslationCommand.php # 翻译命令 │ ├── common/ # 公共模块 │ │ ├── bootstrap/ # 系统引导 │ │ │ └── PluginSystem.php # 插件系统引导 │ │ ├── exception/ # 异常处理 │ │ │ ├── Handler.php # 异常处理器 │ │ │ ├── HtmlResponseException.php # HTML响应异常 │ │ │ └── HttpResponseException.php # HTTP响应异常 │ │ ├── functions/ # 公共函数 │ │ │ └── translation.php # 翻译函数 │ │ ├── middleware/ # 公共中间件 │ │ │ ├── CorsMiddleware.php # 跨域中间件 │ │ │ └── LangMiddleware.php # 语言中间件 │ │ ├── model/ # 数据模型层 │ │ │ ├── AdminLog.php # 管理员日志模型 │ │ │ ├── AdminUser.php # 管理员用户模型 │ │ │ ├── Goods.php # 商品模型 │ │ │ ├── GoodsCategory.php # 商品分类模型 │ │ │ ├── GoodsOrder.php # 商品订单模型 │ │ │ ├── User.php # 用户模型 │ │ │ ├── UserVip.php # 用户会员模型 │ │ │ └── ... # 其他数据模型 │ │ ├── plugin/ # 插件系统 │ │ │ ├── HookRegistry.php # 钩子注册器 │ │ │ ├── PluginManager.php # 插件管理器 │ │ │ └── PluginRouteManager.php # 插件路由管理器 │ │ ├── traits/ # 公共特性 │ │ │ └── Translatable.php # 翻译特性 │ │ ├── util/ # 工具类 │ │ │ ├── PinyinHelper.php # 拼音助手 │ │ │ ├── RoleAuth.php # 角色权限 │ │ │ ├── ShortIdEncoder.php # 短ID编码器 │ │ │ └── TokenAuth.php # Token认证 │ │ └── functions.php # 全局函数定义 │ ├── install/ # 系统安装模块 │ │ ├── controller/ # 安装控制器 │ │ │ └── Install.php # 安装控制器 │ │ └── view/ # 安装视图 │ │ └── install/ # 安装页面模板 │ ├── process/ # 进程服务 │ │ ├── CanvasWebsocket.php # Canvas WebSocket服务 │ │ ├── Http.php # HTTP服务进程 │ │ └── Monitor.php # 监控进程 │ ├── service/ # 业务服务层 │ │ ├── api/ # API服务 │ │ │ └── OrderService.php # 订单API服务 │ │ ├── common/ # 公共服务 │ │ │ └── Api.php # 通用API服务 │ │ ├── goods/ # 商品服务 │ │ │ ├── CategoryService.php # 分类服务 │ │ │ ├── ContentService.php # 内容服务 │ │ │ ├── GoodService.php # 商品服务 │ │ │ ├── SpecService.php # 规格服务 │ │ │ └── TextContentService.php # 文本内容服务 │ │ ├── log/ # 日志服务 │ │ │ └── LogService.php # 日志服务 │ │ ├── order/ # 订单服务 │ │ │ └── OrderService.php # 订单服务 │ │ ├── pay/ # 支付服务 │ │ │ └── PayService.php # 支付服务 │ │ ├── translation/ # 翻译服务 │ │ │ ├── providers/ # 翻译提供商 │ │ │ ├── ContentTranslationService.php # 内容翻译服务 │ │ │ └── TranslateApiService.php # 翻译API服务 │ │ ├── uploads/ # 上传服务 │ │ │ └── UploadService.php # 文件上传服务 │ │ └── user/ # 用户服务 │ │ ├── EmailMessageService.php # 邮件消息服务 │ │ ├── StatisticsService.php # 统计服务 │ │ ├── UserCommonService.php # 用户公共服务 │ │ └── UserService.php # 用户服务 │ ├── userapi/ # 用户 API 模块 │ │ ├── controller/ # 用户API控制器 │ │ │ ├── Account.php # 账户控制器 │ │ │ ├── Favorite.php # 收藏控制器 │ │ │ └── Order.php # 订单控制器 │ │ ├── event/ # 用户事件 │ │ │ ├── GoodsComment.php # 商品评论事件 │ │ │ ├── UserActive.php # 用户激活事件 │ │ │ └── UserPassive.php # 用户被动事件 │ │ └── validate/ # 用户API验证器 │ │ ├── resetPasswordValidate.php # 重置密码验证 │ │ └── UserValidate.php # 用户验证器 │ └── web/ # Web 前台模块 │ ├── controller/ # Web控制器 │ │ ├── Agreement.php # 协议控制器 │ │ ├── Auth.php # 认证控制器 │ │ ├── Goods.php # 商品控制器 │ │ ├── Index.php # 首页控制器 │ │ └── User.php # 用户控制器 │ ├── middleware/ # Web中间件 │ └── view/ # Web视图模板 │ └── default/ # 默认主题模板 ├── config/ # 配置文件目录 │ ├── plugin/ # 插件配置目录 │ ├── app.php # 应用配置 │ ├── autoload.php # 自动加载配置 │ ├── bootstrap.php # 引导配置 │ ├── cache.php # 缓存配置 │ ├── container.php # 容器配置 │ ├── database.php # 数据库配置 │ ├── dependence.php # 依赖配置 │ ├── event.php # 事件配置 │ ├── exception.php # 异常配置 │ ├── log.php # 日志配置 │ ├── middleware.php # 中间件配置 │ ├── process.php # 进程配置 │ ├── route.php # 路由配置 │ ├── server.php # 服务器配置 │ ├── session.php # 会话配置 │ ├── site.php # 站点配置 │ ├── static.php # 静态资源配置 │ ├── thinkorm.php # ThinkORM配置 │ ├── translation.php # 翻译配置 │ └── view.php # 视图配置 ├── public/ # 公共资源目录 │ ├── static/ # 静态资源文件 │ ├── upload/ # 上传文件目录 │ └── vue/ # Vue前端构建文件 ├── resource/ # 资源文件目录 ├── runtime/ # 运行时文件目录 ├── storage/ # 存储目录 ├── support/ # 支持文件 │ ├── bootstrap.php # 框架引导文件 │ ├── helpers.php # 助手函数 │ ├── Request.php # 请求类扩展 │ └── Response.php # 响应类扩展 ├── tools/ # 开发工具目录 ├── vendor/ # Composer依赖包 ├── vue/ # Vue前端项目目录 ├── composer.json # Composer配置文件 ├── composer.lock # Composer锁定文件 ├── mysql.sql # 数据库结构文件 ├── start.php # 启动文件 ├── webman # WebMan框架入口 ├── .lock # 安装锁文件 ├── webman.bat # windows启动脚本 └── .env # 环境配置文件 ``` ### 前端目录结构 ``` vue/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API 接口 │ ├── assets/ # 资源文件 │ ├── components/ # 公共组件 │ ├── config/ # 配置文件 │ ├── hooks/ # Vue Hooks │ ├── layouts/ # 布局组件 │ ├── pages/ # 页面组件 │ ├── router/ # 路由配置 │ ├── store/ # Pinia 状态管理 │ ├── style/ # 样式文件 │ ├── types/ # TypeScript 类型定义 │ └── utils/ # 工具函数 └── tools/ # 开发工具 ``` ## 核心功能特点 ### 商品管理 - **多内容类型支持**:图文、文件、多章节、分组章节 - **多资源形式**:视频、音频、图文、网盘、长文本 - **规格管理**:支持多规格商品,灵活定价 - **分类管理**:多级分类,支持规格筛选 - **标签管理**:灵活标记商品属性 ### 用户管理 - 用户注册、登录、权限控制 - 会员等级与积分系统 - 用户行为记录与分析 - 收藏、浏览历史管理 ### 订单系统 - 完整的订单流程管理 - 多支付渠道集成 - 订单状态跟踪 - 交易记录与统计 ### 内容展示 - 多模板支持 - 响应式设计 - SEO 优化 - 内容访问权限控制 ### 系统管理 - 数据统计与分析 - 系统配置管理 - 操作日志记录 - 插件市场与扩展 ## 数据库设计 系统核心表结构: - **goods**: 商品主表 - **goods_category**: 商品分类表 - **goods_content**: 内容分配管理器 - **goods_content_chapter**: 章节内容表 - **goods_content_file**: 文件内容表 - **goods_content_group**: 章节分组表 - **goods_order**: 商品订单表 - **user**: 用户表 - **user_vip**: 用户会员表 ## 安装使用 ### 环境要求 - PHP >= 8.2 - MySQL >= 5.7 - Composer 2.0+ - Node.js >= 16.0.0 - npm >= 7.0.0 ### 安装步骤 1. 克隆项目 ```bash git clone [项目地址] cd 项目目录 ``` 2. 安装后端依赖 ```bash cd service composer install ``` 3. 配置环境变量 ```bash cp .env.example .env ``` 编辑 .env 文件,配置数据库连接信息 4. 导入数据库 ```bash mysql -u用户名 -p密码 数据库名 < zsff.sql ``` 5. 安装前端依赖 ```bash cd ../vue npm install ``` 6. 运行开发环境 ```bash # 在项目根目录下 ./tools/start.py ``` 或分别启动: ```bash # 后端 cd service php webman start # 前端 cd vue npm run dev ``` 7. 构建生产环境 ```bash # 前端构建 cd vue npm run build # 打包上传 ./tools/create_upload.sh ``` ## 开发规范 ### 控制器与服务类规范 1. **控制器职责**: - 参数接收和基本验证 - 调用服务类处理业务逻辑 - 返回结果给客户端 - 控制器中**不应该出现** `try-catch` 语句 - 控制器中的 `$this->success()` 和 `$this->error()` 不应出现在 `try` 代码块内 2. **服务类职责**: - 实现具体的业务逻辑 - 处理数据的增删改查 - 异常处理和错误捕获 - 使用 `try-catch` 并以 `throw new \Exception()` 形式抛出异常 3. **模型职责**: - 定义数据结构和关联关系 - 实现数据查询和过滤方法 - 不包含复杂的业务逻辑 ### 代码风格 1. **命名规范**: - 类名:PascalCase (如 GoodsCategory) - 方法名:camelCase (如 getCategoryList) - 变量名:camelCase (如 $cateId) - 常量名:UPPER_CASE (如 MAX_COUNT) 2. **注释规范**: - 类注释:描述类的功能和用途 - 方法注释:描述方法的功能、参数和返回值 - 复杂逻辑处添加行内注释 3. **错误处理**: - 服务类中使用 try-catch 捕获异常 - 将原始异常包装为业务相关的异常信息 - 控制器直接调用服务,不包含 try-catch 4. **代码结构**: - 每个类职责单一 - 方法尽量短小,功能单一 - 避免重复代码,提取共用方法 - 保持代码整洁,遵循PSR规范 ## 前端开发规范 1. **Vue 规范**: - 使用 Vue3 setup 语法 - 所有新代码使用 TypeScript - 遵循《代码整洁之道》 - 优先使用 async/await 而不是回调 - 遵循 Vue 最佳实践 - 始终保持页面自适应 - 使用 tdesign-vue-next 构建 Vue 页面 2. **组件开发**: - 组件名使用 PascalCase - Props 定义明确类型 - 组件职责单一,避免过大组件 - 使用 Composition API 和 `