NiuCloud Lite 系统架构设计
1. 系统概述
NiuCloud Lite 是一款快速开发通用管理后台框架,采用前后端分离架构,支持企业级应用的快速开发和部署。系统内置用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、API模块等一系列开箱即用功能。
2. 技术栈
2.1 后端技术栈
- 框架: ThinkPHP 8.0
- 语言: PHP 8.0+
- 数据库: MySQL
- 缓存: Redis
- 队列: 内置队列系统
- 认证: JWT
- API设计: RESTful API
2.2 前端技术栈
- 后台管理: Vue 3 + TypeScript + Vite + Element Plus
- 移动端: UniApp + Vue 3 + TypeScript
- 状态管理: Pinia
- 国际化: i18n
- 样式: SCSS + Tailwind CSS
2.3 第三方服务
- 支付: 微信支付、支付宝支付
- 短信: 阿里云短信、腾讯云短信
- 存储: 阿里云OSS、腾讯云COS、七牛云存储
- OAuth: 微信登录、QQ登录
3. 系统架构
3.1 整体架构
NiuCloud Lite 采用经典的三层架构设计,包括表现层、业务逻辑层和数据访问层。系统通过前后端分离的方式实现,前端通过API与后端进行通信。
mermaid
flowchart TD
subgraph 前端层
A[管理后台<br>Vue3 + TypeScript] --> B[移动端应用<br>UniApp]
end
subgraph API层
C[Admin API<br>后台管理接口] --> D[Public API<br>公共接口]
end
subgraph 业务逻辑层
E[Admin Service<br>后台业务服务] --> F[API Service<br>公共业务服务]
G[Core Service<br>核心服务] --> E
G --> F
end
subgraph 数据访问层
H[Model<br>数据模型] --> I[Database<br>MySQL]
end
A --> C
B --> D
C --> E
D --> F
E --> H
F --> H3.2 目录结构
3.2.1 后端目录结构
backend/
├── app/ # 应用目录
│ ├── adminapi/ # 后台管理API
│ │ ├── controller/ # 控制器
│ │ ├── route/ # 路由
│ │ └── middleware/ # 中间件
│ ├── api/ # 公共API
│ │ ├── controller/ # 控制器
│ │ ├── route/ # 路由
│ │ └── middleware/ # 中间件
│ ├── model/ # 数据模型
│ ├── service/ # 业务服务
│ ├── dict/ # 字典配置
│ ├── validate/ # 数据验证
│ └── job/ # 任务队列
├── config/ # 配置文件
├── core/ # 核心功能
│ ├── base/ # 基础类
│ ├── pay/ # 支付模块
│ ├── upload/ # 上传模块
│ └── util/ # 工具类
├── public/ # 公共目录
└── route/ # 路由配置3.2.2 前端目录结构
frontend/
├── admin/ # 后台管理系统
│ ├── src/ # 源代码
│ │ ├── api/ # API接口
│ │ ├── views/ # 页面
│ │ ├── components/ # 组件
│ │ ├── stores/ # 状态管理
│ │ └── router/ # 路由
│ └── public/ # 静态资源
└── uni-app/ # 移动端应用
├── src/ # 源代码
│ ├── pages/ # 页面
│ ├── components/ # 组件
│ └── api/ # API接口
└── static/ # 静态资源4. 核心功能模块
4.1 用户权限管理
- 用户管理: 管理员账号的创建、编辑、删除
- 角色管理: 角色的创建、权限分配
- 权限管理: 菜单权限、操作权限的精细化控制
- 部门管理: 企业组织架构管理
- 岗位管理: 岗位设置和权限分配
4.2 自定义表单
- 表单设计: 可视化表单设计器
- 表单管理: 表单的创建、编辑、删除
- 字段管理: 支持多种字段类型(文本、数字、日期、文件等)
- 数据管理: 表单数据的查看、导出、统计
4.3 内容管理
- 文章管理: 文章的发布、编辑、分类
- 素材管理: 图片、视频等素材的上传、管理
- 菜单管理: 后台菜单的配置和管理
4.4 系统配置
- 网站设置: 网站基本信息、SEO配置
- 支付配置: 微信支付、支付宝支付配置
- 短信配置: 短信服务提供商配置
- 存储配置: 云存储服务配置
4.5 会员管理
- 会员管理: 会员账号的管理
- 会员等级: 会员等级设置和管理
- 会员积分: 积分规则和管理
4.6 微信生态
- 微信公众号: 公众号配置和消息管理
- 微信小程序: 小程序配置和管理
- 微信支付: 微信支付集成
4.7 数据统计
- 访问统计: 网站访问数据统计
- 操作日志: 系统操作日志记录
- 数据报表: 业务数据报表生成
5. 核心流程
5.1 用户认证流程
mermaid
sequenceDiagram
participant Client as 前端
participant API as API层
participant Service as 服务层
participant DB as 数据库
Client->>API: POST /api/login (username, password)
API->>Service: 调用AuthService.login()
Service->>DB: 查询用户信息
alt 用户存在且密码正确
DB-->>Service: 返回用户信息
Service->>Service: 生成JWT Token
Service-->>API: 返回Token和用户信息
API-->>Client: 200 OK { "token": "...", "user": {...} }
else 用户不存在或密码错误
DB-->>Service: 返回空
Service-->>API: 抛出认证错误
API-->>Client: 401 Unauthorized { "message": "用户名或密码错误" }
end5.2 自定义表单提交流程
mermaid
sequenceDiagram
participant Client as 前端
participant API as API层
participant Service as 服务层
participant DB as 数据库
Client->>API: POST /api/diy/form/submit (form_id, data)
API->>Service: 调用DiyFormService.submit()
Service->>DB: 验证表单存在性
Service->>Service: 验证表单数据
alt 验证通过
Service->>DB: 保存表单数据
Service->>Service: 处理表单提交配置(如短信通知)
Service-->>API: 返回提交成功
API-->>Client: 200 OK { "message": "提交成功" }
else 验证失败
Service-->>API: 抛出验证错误
API-->>Client: 400 Bad Request { "message": "验证失败", "errors": {...} }
end6. 数据库设计
6.1 核心表结构
| 表名 | 描述 | 用途 |
|---|---|---|
nc_sys_user | 系统用户表 | 存储管理员账号信息 |
nc_sys_role | 角色表 | 存储角色信息和权限配置 |
nc_sys_menu | 菜单表 | 存储后台菜单信息 |
nc_sys_dept | 部门表 | 存储企业部门信息 |
nc_sys_position | 岗位表 | 存储企业岗位信息 |
nc_diy_form | 自定义表单表 | 存储表单基本信息 |
nc_diy_form_fields | 表单字段表 | 存储表单字段配置 |
nc_diy_form_records | 表单记录表 | 存储表单提交记录 |
nc_member | 会员表 | 存储会员信息 |
nc_pay | 支付表 | 存储支付记录 |
nc_sys_config | 系统配置表 | 存储系统配置信息 |
6.2 表关系
mermaid
erDiagram
SYS_USER ||--o{ SYS_ROLE : 拥有
SYS_ROLE ||--o{ SYS_MENU : 权限
SYS_USER ||--o{ SYS_DEPT : 属于
SYS_USER ||--o{ SYS_POSITION : 担任
DIY_FORM ||--o{ DIY_FORM_FIELDS : 包含
DIY_FORM ||--o{ DIY_FORM_RECORDS : 产生
DIY_FORM_RECORDS ||--o{ DIY_FORM_RECORDS_FIELDS : 包含
MEMBER ||--o{ PAY : 发起7. 部署架构
7.1 开发环境
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端开发环境 │ │ 后端开发环境 │ │ 数据库环境 │
│ npm run dev │────│ php think run │────│ MySQL + Redis │
└─────────────────┘ └─────────────────┘ └─────────────────┘7.2 生产环境
mermaid
flowchart TD
subgraph 前端
A[CDN] --> B[静态文件服务器]
end
subgraph 应用层
C[负载均衡] --> D[应用服务器集群]
D --> E[PHP-FPM]
end
subgraph 数据层
F[数据库主从] --> G[Redis集群]
G --> H[文件存储]
end
B --> C
E --> F
E --> G
E --> H8. 扩展性设计
8.1 模块化设计
- 功能模块化: 每个功能独立成模块,可单独启用或禁用
- 插件系统: 支持插件的安装和卸载
- 钩子系统: 提供系统钩子,支持插件扩展功能
8.2 多语言支持
- 国际化框架: 基于i18n实现多语言支持
- 语言包: 支持自定义语言包
- 动态切换: 支持运行时语言切换
8.3 多租户设计
- 租户隔离: 支持多租户数据隔离
- 租户配置: 支持租户级别的配置
- 权限控制: 支持租户级别的权限管理
8.4 API扩展
- RESTful API: 标准化的API设计
- API版本控制: 支持API版本管理
- API文档: 自动生成API文档
9. 安全设计
9.1 认证与授权
- JWT认证: 无状态认证,支持跨域
- 权限控制: 基于角色的权限控制(RBAC)
- 访问控制: 细粒度的访问控制
9.2 数据安全
- 数据加密: 敏感数据加密存储
- SQL注入防护: 使用参数化查询
- XSS防护: 输入验证和输出编码
- CSRF防护: 令牌验证
9.3 传输安全
- HTTPS: 强制使用HTTPS
- API签名: API请求签名验证
- 请求频率限制: 防止暴力攻击
10. 性能优化
10.1 缓存策略
- Redis缓存: 热点数据缓存
- 页面缓存: 静态页面缓存
- 查询缓存: 数据库查询结果缓存
10.2 数据库优化
- 索引优化: 合理创建索引
- 查询优化: 优化SQL查询
- 分库分表: 支持大数据量分库分表
10.3 代码优化
- 延迟加载: 按需加载资源
- 代码压缩: 前端代码压缩
- 资源合并: 静态资源合并
11. 监控与维护
11.1 日志系统
- 操作日志: 记录系统操作
- 错误日志: 记录系统错误
- 访问日志: 记录API访问
11.2 监控系统
- 性能监控: 系统性能监控
- 异常监控: 异常情况监控
- 业务监控: 业务指标监控
11.3 维护工具
- 数据库备份: 自动数据库备份
- 系统清理: 日志清理、临时文件清理
- 系统升级: 版本升级管理
12. 总结
NiuCloud Lite 采用现代化的技术栈和架构设计,提供了一套完整的企业级应用开发框架。系统具有以下特点:
- 前后端分离: 采用Vue3 + TypeScript + ThinkPHP的前后端分离架构
- 模块化设计: 功能模块化,易于扩展和维护
- 多端支持: 支持PC端后台和移动端应用
- 丰富的功能: 内置用户权限、自定义表单、内容管理等核心功能
- 安全性: 完善的安全设计,保障系统安全
- 性能优化: 多种性能优化策略,提升系统性能
NiuCloud Lite 适合快速开发各类企业级应用,如内容管理系统、客户关系管理系统、电商系统等。通过标准化的架构设计和丰富的功能模块,大大降低了开发成本和时间,提高了开发效率和系统质量。
