發(fā)文檔--架構(gòu)設(shè)計(jì))
1. 系統(tǒng)概述?NiuCloud Lite 是一款快速開(kāi)發(fā)通用管理后臺(tái)框架采用前后端分離架構(gòu)支持企業(yè)級(jí)應(yīng)用的快速開(kāi)發(fā)和部署。系統(tǒng)內(nèi)置用戶權(quán)限、代碼生成器、表單設(shè)計(jì)、云存儲(chǔ)、短信發(fā)送、素材中心、微信及公眾號(hào)、API模塊等一系列開(kāi)箱即用功能。2. 技術(shù)棧?2.1 后端技術(shù)棧?框架: ThinkPHP 8.0語(yǔ)言: PHP 8.0數(shù)據(jù)庫(kù): MySQL緩存: Redis隊(duì)列: 內(nèi)置隊(duì)列系統(tǒng)認(rèn)證: JWTAPI設(shè)計(jì): RESTful API2.2 前端技術(shù)棧?后臺(tái)管理: Vue 3 TypeScript Vite Element Plus移動(dòng)端: UniApp Vue 3 TypeScript狀態(tài)管理: Pinia國(guó)際化: i18n樣式: SCSS Tailwind CSS2.3 第三方服務(wù)?支付: 微信支付、支付寶支付短信: 阿里云短信、騰訊云短信存儲(chǔ): 阿里云OSS、騰訊云COS、七牛云存儲(chǔ)OAuth: 微信登錄、QQ登錄3. 系統(tǒng)架構(gòu)?3.1 整體架構(gòu)?NiuCloud Lite 采用經(jīng)典的三層架構(gòu)設(shè)計(jì)包括表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。系統(tǒng)通過(guò)前后端分離的方式實(shí)現(xiàn)前端通過(guò)API與后端進(jìn)行通信。flowchart TD subgraph 前端層 A[管理后臺(tái)brVue3 TypeScript] -- B[移動(dòng)端應(yīng)用brUniApp] end subgraph API層 C[Admin APIbr后臺(tái)管理接口] -- D[Public APIbr公共接口] end subgraph 業(yè)務(wù)邏輯層 E[Admin Servicebr后臺(tái)業(yè)務(wù)服務(wù)] -- F[API Servicebr公共業(yè)務(wù)服務(wù)] G[Core Servicebr核心服務(wù)] -- E G -- F end subgraph 數(shù)據(jù)訪問(wèn)層 H[Modelbr數(shù)據(jù)模型] -- I[DatabasebrMySQL] end A -- C B -- D C -- E D -- F E -- H F -- H3.2 目錄結(jié)構(gòu)?3.2.1 后端目錄結(jié)構(gòu)?3.2.2 前端目錄結(jié)構(gòu)?frontend/ ├── admin/ # 后臺(tái)管理系統(tǒng) │ ├── src/ # 源代碼 │ │ ├── api/ # API接口 │ │ ├── views/ # 頁(yè)面 │ │ ├── components/ # 組件 │ │ ├── stores/ # 狀態(tài)管理 │ │ └── router/ # 路由 │ └── public/ # 靜態(tài)資源 └── uni-app/ # 移動(dòng)端應(yīng)用 ├── src/ # 源代碼 │ ├── pages/ # 頁(yè)面 │ ├── components/ # 組件 │ └── api/ # API接口 └── static/ # 靜態(tài)資源4. 核心功能模塊?4.1 用戶權(quán)限管理?用戶管理: 管理員賬號(hào)的創(chuàng)建、編輯、刪除角色管理: 角色的創(chuàng)建、權(quán)限分配權(quán)限管理: 菜單權(quán)限、操作權(quán)限的精細(xì)化控制部門管理: 企業(yè)組織架構(gòu)管理崗位管理: 崗位設(shè)置和權(quán)限分配4.2 自定義表單?表單設(shè)計(jì): 可視化表單設(shè)計(jì)器表單管理: 表單的創(chuàng)建、編輯、刪除字段管理: 支持多種字段類型文本、數(shù)字、日期、文件等數(shù)據(jù)管理: 表單數(shù)據(jù)的查看、導(dǎo)出、統(tǒng)計(jì)4.3 內(nèi)容管理?文章管理: 文章的發(fā)布、編輯、分類素材管理: 圖片、視頻等素材的上傳、管理菜單管理: 后臺(tái)菜單的配置和管理4.4 系統(tǒng)配置?網(wǎng)站設(shè)置: 網(wǎng)站基本信息、SEO配置支付配置: 微信支付、支付寶支付配置短信配置: 短信服務(wù)提供商配置存儲(chǔ)配置: 云存儲(chǔ)服務(wù)配置4.5 會(huì)員管理?會(huì)員管理: 會(huì)員賬號(hào)的管理會(huì)員等級(jí): 會(huì)員等級(jí)設(shè)置和管理會(huì)員積分: 積分規(guī)則和管理4.6 微信生態(tài)?微信公眾號(hào): 公眾號(hào)配置和消息管理微信小程序: 小程序配置和管理微信支付: 微信支付集成4.7 數(shù)據(jù)統(tǒng)計(jì)?訪問(wèn)統(tǒng)計(jì): 網(wǎng)站訪問(wèn)數(shù)據(jù)統(tǒng)計(jì)操作日志: 系統(tǒng)操作日志記錄數(shù)據(jù)報(bào)表: 業(yè)務(wù)數(shù)據(jù)報(bào)表生成5. 核心流程?5.1 用戶認(rèn)證流程?sequenceDiagram participant Client as 前端 participant API as API層 participant Service as 服務(wù)層 participant DB as 數(shù)據(jù)庫(kù) Client-API: POST /api/login (username, password) API-Service: 調(diào)用AuthService.login() Service-DB: 查詢用戶信息 alt 用戶存在且密碼正確 DB--Service: 返回用戶信息 Service-Service: 生成JWT Token Service--API: 返回Token和用戶信息 API--Client: 200 OK { token: ..., user: {...} } else 用戶不存在或密碼錯(cuò)誤 DB--Service: 返回空 Service--API: 拋出認(rèn)證錯(cuò)誤 API--Client: 401 Unauthorized { message: 用戶名或密碼錯(cuò)誤 } end5.2 自定義表單提交流程?sequenceDiagram participant Client as 前端 participant API as API層 participant Service as 服務(wù)層 participant DB as 數(shù)據(jù)庫(kù) Client-API: POST /api/diy/form/submit (form_id, data) API-Service: 調(diào)用DiyFormService.submit() Service-DB: 驗(yàn)證表單存在性 Service-Service: 驗(yàn)證表單數(shù)據(jù) alt 驗(yàn)證通過(guò) Service-DB: 保存表單數(shù)據(jù) Service-Service: 處理表單提交配置如短信通知 Service--API: 返回提交成功 API--Client: 200 OK { message: 提交成功 } else 驗(yàn)證失敗 Service--API: 拋出驗(yàn)證錯(cuò)誤 API--Client: 400 Bad Request { message: 驗(yàn)證失敗, errors: {...} } end6. 數(shù)據(jù)庫(kù)設(shè)計(jì)?6.1 核心表結(jié)構(gòu)?表名描述用途nc_sys_user系統(tǒng)用戶表存儲(chǔ)管理員賬號(hào)信息nc_sys_role角色表存儲(chǔ)角色信息和權(quán)限配置nc_sys_menu菜單表存儲(chǔ)后臺(tái)菜單信息nc_sys_dept部門表存儲(chǔ)企業(yè)部門信息nc_sys_position崗位表存儲(chǔ)企業(yè)崗位信息nc_diy_form自定義表單表存儲(chǔ)表單基本信息nc_diy_form_fields表單字段表存儲(chǔ)表單字段配置nc_diy_form_records表單記錄表存儲(chǔ)表單提交記錄nc_member會(huì)員表存儲(chǔ)會(huì)員信息nc_pay支付表存儲(chǔ)支付記錄nc_sys_config系統(tǒng)配置表存儲(chǔ)系統(tǒng)配置信息6.2 表關(guān)系?erDiagram SYS_USER ||--o{ SYS_ROLE : 擁有 SYS_ROLE ||--o{ SYS_MENU : 權(quán)限 SYS_USER ||--o{ SYS_DEPT : 屬于 SYS_USER ||--o{ SYS_POSITION : 擔(dān)任 DIY_FORM ||--o{ DIY_FORM_FIELDS : 包含 DIY_FORM ||--o{ DIY_FORM_RECORDS : 產(chǎn)生 DIY_FORM_RECORDS ||--o{ DIY_FORM_RECORDS_FIELDS : 包含 MEMBER ||--o{ PAY : 發(fā)起7. 部署架構(gòu)?7.1 開(kāi)發(fā)環(huán)境?┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端開(kāi)發(fā)環(huán)境 │ │ 后端開(kāi)發(fā)環(huán)境 │ │ 數(shù)據(jù)庫(kù)環(huán)境 │ │ npm run dev │────│ php think run │────│ MySQL Redis │ └─────────────────┘ └─────────────────┘ └─────────────────┘7.2 生產(chǎn)環(huán)境?flowchart TD subgraph 前端 A[CDN] -- B[靜態(tài)文件服務(wù)器] end subgraph 應(yīng)用層 C[負(fù)載均衡] -- D[應(yīng)用服務(wù)器集群] D -- E[PHP-FPM] end subgraph 數(shù)據(jù)層 F[數(shù)據(jù)庫(kù)主從] -- G[Redis集群] G -- H[文件存儲(chǔ)] end B -- C E -- F E -- G E -- H8. 擴(kuò)展性設(shè)計(jì)?8.1 模塊化設(shè)計(jì)?功能模塊化: 每個(gè)功能獨(dú)立成模塊可單獨(dú)啟用或禁用插件系統(tǒng): 支持插件的安裝和卸載鉤子系統(tǒng): 提供系統(tǒng)鉤子支持插件擴(kuò)展功能8.2 多語(yǔ)言支持?國(guó)際化框架: 基于i18n實(shí)現(xiàn)多語(yǔ)言支持語(yǔ)言包: 支持自定義語(yǔ)言包動(dòng)態(tài)切換: 支持運(yùn)行時(shí)語(yǔ)言切換8.3 多租戶設(shè)計(jì)?租戶隔離: 支持多租戶數(shù)據(jù)隔離租戶配置: 支持租戶級(jí)別的配置權(quán)限控制: 支持租戶級(jí)別的權(quán)限管理8.4 API擴(kuò)展?RESTful API: 標(biāo)準(zhǔn)化的API設(shè)計(jì)API版本控制: 支持API版本管理API文檔: 自動(dòng)生成API文檔9. 安全設(shè)計(jì)?9.1 認(rèn)證與授權(quán)?JWT認(rèn)證: 無(wú)狀態(tài)認(rèn)證支持跨域權(quán)限控制: 基于角色的權(quán)限控制RBAC訪問(wèn)控制: 細(xì)粒度的訪問(wèn)控制9.2 數(shù)據(jù)安全?數(shù)據(jù)加密: 敏感數(shù)據(jù)加密存儲(chǔ)SQL注入防護(hù): 使用參數(shù)化查詢XSS防護(hù): 輸入驗(yàn)證和輸出編碼CSRF防護(hù): 令牌驗(yàn)證9.3 傳輸安全?HTTPS: 強(qiáng)制使用HTTPSAPI簽名: API請(qǐng)求簽名驗(yàn)證請(qǐng)求頻率限制: 防止暴力攻擊10. 性能優(yōu)化?10.1 緩存策略?Redis緩存: 熱點(diǎn)數(shù)據(jù)緩存頁(yè)面緩存: 靜態(tài)頁(yè)面緩存查詢緩存: 數(shù)據(jù)庫(kù)查詢結(jié)果緩存10.2 數(shù)據(jù)庫(kù)優(yōu)化?索引優(yōu)化: 合理創(chuàng)建索引查詢優(yōu)化: 優(yōu)化SQL查詢分庫(kù)分表: 支持大數(shù)據(jù)量分庫(kù)分表10.3 代碼優(yōu)化?延遲加載: 按需加載資源代碼壓縮: 前端代碼壓縮資源合并: 靜態(tài)資源合并11. 監(jiān)控與維護(hù)?11.1 日志系統(tǒng)?操作日志: 記錄系統(tǒng)操作錯(cuò)誤日志: 記錄系統(tǒng)錯(cuò)誤訪問(wèn)日志: 記錄API訪問(wèn)11.2 監(jiān)控系統(tǒng)?性能監(jiān)控: 系統(tǒng)性能監(jiān)控異常監(jiān)控: 異常情況監(jiān)控業(yè)務(wù)監(jiān)控: 業(yè)務(wù)指標(biāo)監(jiān)控11.3 維護(hù)工具?數(shù)據(jù)庫(kù)備份: 自動(dòng)數(shù)據(jù)庫(kù)備份系統(tǒng)清理: 日志清理、臨時(shí)文件清理系統(tǒng)升級(jí): 版本升級(jí)管理12. 總結(jié)?NiuCloud Lite 采用現(xiàn)代化的技術(shù)棧和架構(gòu)設(shè)計(jì)提供了一套完整的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)框架。系統(tǒng)具有以下特點(diǎn)前后端分離: 采用Vue3 TypeScript ThinkPHP的前后端分離架構(gòu)模塊化設(shè)計(jì): 功能模塊化易于擴(kuò)展和維護(hù)多端支持: 支持PC端后臺(tái)和移動(dòng)端應(yīng)用豐富的功能: 內(nèi)置用戶權(quán)限、自定義表單、內(nèi)容管理等核心功能安全性: 完善的安全設(shè)計(jì)保障系統(tǒng)安全性能優(yōu)化: 多種性能優(yōu)化策略提升系統(tǒng)性能NiuCloud Lite 適合快速開(kāi)發(fā)各類企業(yè)級(jí)應(yīng)用如內(nèi)容管理系統(tǒng)、客戶關(guān)系管理系統(tǒng)、電商系統(tǒng)等。通過(guò)標(biāo)準(zhǔn)化的架構(gòu)設(shè)計(jì)和豐富的功能模塊大大降低了開(kāi)發(fā)成本和時(shí)間提高了開(kāi)發(fā)效率和系統(tǒng)質(zhì)量。