Skip to content

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 --> H

3.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": "用户名或密码错误" }
    end

5.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": {...} }
    end

6. 数据库设计

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 --> H

8. 扩展性设计

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 适合快速开发各类企业级应用,如内容管理系统、客户关系管理系统、电商系统等。通过标准化的架构设计和丰富的功能模块,大大降低了开发成本和时间,提高了开发效率和系统质量。