尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
RuoYi-Cpp:客户端使用Qt,后端使用libhv实现
Zc管理系统一个基于 C 技术栈的企业级管理系统模仿了前端框架若依RuoYi管理系统的架构设计采用客户端-服务器分离的架构模式。目录zcmaye/zc-manager: 一个基于 C 技术栈的企业级管理系统模仿了前端框架若依RuoYi管理系统的架构设计采用客户端-服务器分离的架构模式。https://github.com/zcmaye/zc-manager项目简介技术栈功能模块待开发功能项目结构快速开始数据库配置构建说明使用说明API 接口代码规范常见问题贡献指南许可证项目简介Zc管理系统是一个完全基于 C 技术栈开发的企业级管理系统主要特点包括架构设计参考若依RuoYi管理系统采用前后端分离架构技术选型Qt6 客户端 libhv 高性能服务器功能完整包含用户、角色、菜单、部门、岗位等完整的权限管理功能跨平台支持 Windows、Linux 等多平台部署技术栈客户端ZcManager-client技术版本说明Qt6.10UI 框架用于构建桌面应用C20编程语言QXlsx-Excel 文件读写库CMake3.16构建工具服务器ZcManager-server技术版本说明libhv-高性能 HTTP 服务器库MySQL8.0关系型数据库Redis6.0缓存数据库可选OpenSSL3.0加密库用于 TLS/SSL 支持nlohmann-json3.12JSON 处理库mysql-connector-c9.2MySQL C 连接器hiredis / redis-Redis 连接器SqlBuilder-SQL 语句生成器C20编程语言CMake3.16构建工具功能模块1. 用户管理用户列表查询用户新增/编辑/删除用户状态管理用户导入/导出Excel用户密码重置2. 角色管理角色列表查询角色新增/编辑/删除角色菜单权限分配角色用户分配3. 菜单管理菜单列表查询树形结构菜单新增/编辑/删除菜单权限配置4. 部门管理部门列表查询树形结构部门新增/编辑/删除5. 岗位管理岗位列表查询岗位新增/编辑/删除6. 个人信息昵称修改密码修改头像上传/修改7. 系统功能用户登录/退出验证码验证路由权限控制Token 认证待开发功能以下功能正在规划或开发中欢迎贡献代码1. 在线用户列表实时显示当前在线用户用户登录/登出记录强制下线功能在线时长统计2. 日志管理登录日志登录时间记录登录IP地址登录状态成功/失败设备信息记录操作日志操作时间记录操作类型新增/修改/删除/查询操作模块操作人信息操作结果3. 字典管理字典类型管理字典数据管理字典缓存机制字典导入/导出4. 参数设置系统参数配置参数分组管理参数校验规则参数值加密存储5. 通知公告公告发布/编辑/删除公告分类管理公告阅读状态公告推送通知项目结构ZcManager-Qt/ ├── ZcManager-client/ # 客户端代码 │ ├── common/ # 公共模块 │ │ ├── base/ # 基础类单例、事件、信号中心 │ │ ├── config/ # 配置管理 │ │ ├── constants/ # 常量定义 │ │ ├── delegate/ # 委托类按钮、复选框等 │ │ ├── json/ # JSON 处理 │ │ ├── network/ # 网络请求管理 │ │ ├── notify/ # 通知提示框 │ │ ├── utils/ # 工具类验证码、Excel、字符串等 │ │ └── widgets/ # 自定义控件 │ ├── domain/ # 领域模型 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ └── vo/ # 视图对象 │ ├── modules/ # 功能模块 │ │ ├── login/ # 登录模块 │ │ ├── home/ # 首页模块 │ │ ├── user/ # 用户管理 │ │ ├── role/ # 角色管理 │ │ ├── menu/ # 菜单管理 │ │ ├── dept/ # 部门管理 │ │ ├── post/ # 岗位管理 │ │ └── personal-info/ # 个人信息 │ ├── Resource/ # 资源文件图标、图片、样式 │ ├── thrid-party/ # 第三方库QXlsx │ ├── sql/ # SQL 脚本 │ ├── CMakeLists.txt # CMake 配置 │ ├── main.cpp # 入口文件 │ ├── MainWindow.cpp # 主窗口 │ └── ContextHolder.h # 全局上下文 │ ├── ZcManager-server/ # 服务器代码 │ ├── zc-admin/ # 应用入口 │ │ ├── web/controller/ # HTTP 控制器 │ │ └── resource/ # 配置文件 │ ├── zc-system/ # 业务逻辑层 │ │ ├── system/dao/ # 数据访问层 │ │ ├── system/service/ # 业务服务层 │ │ └── system/domain/ # 领域模型 │ ├── zc-framework/ # 框架层 │ │ ├── framework/config/ # 配置管理 │ │ ├── framework/context/# 请求上下文 │ │ ├── framework/handler/# 中间件 │ │ ├── framework/server/ # HTTP 路由 │ │ └── framework/service/# 基础服务 │ ├── zc-common/ # 公共模块 │ │ ├── common/base/ # 基础类 │ │ ├── common/cache/ # 缓存管理 │ │ ├── common/domain/ # 领域模型 │ │ ├── common/exception/ # 异常处理 │ │ ├── common/sql/ # 数据库连接池 │ │ └── common/utils/ # 工具类 │ ├── third-party/ # 第三方库 │ │ ├── SqlBuilder/ # SQL 构建器 │ │ ├── json-3.12.0/ # JSON 库 │ │ ├── hv/ # libhv 库 │ │ └── hiredis/ # Redis 客户端 │ ├── sql/ # SQL 脚本 │ └── CMakeLists.txt # CMake 配置 │ ├── CODE_ISSUES.md # 代码问题清单 └── README.md # 项目说明文档快速开始环境要求操作系统Windows 10 / LinuxQt 版本6.10 及以上客户端编译器MSVC 2019 / GCC 11CMake3.16MySQL8.0服务器Redis6.0可选服务器OpenSSL3.0服务器必需步骤 1克隆项目git clone repository-url cd ZcManager-Qt步骤 2解压第三方库由于服务器端的third-party目录包含大量预编译库文件MySQL Connector/C、libhv、hiredis、redis 等为了减小仓库体积该目录已被打包为third-party.7z文件。在构建服务器之前需要先解压此压缩包Windows 环境使用 7-Zip 解压工具右键点击ZcManager-server/third-party.7z选择解压到当前目录。Linux 环境cd ZcManager-server 7z x third-party.7z第三方库兼容性说明压缩包中包含的预编译库仅适用于Windows x64平台库名称类型跨平台兼容性SqlBuilder/源代码✅ 所有平台通用CMake 构建json-3.12.0/源代码头文件✅ 所有平台通用mysql-connector-c-9.2.0-winx64/Windows 预编译❌ Linux 需重新编译hv/Windows 预编译❌ Linux 需重新编译hiredis/Windows 预编译❌ Linux 需重新编译redis/Windows 预编译❌ Linux 需重新编译注意如果需要在 Linux 或其他平台运行服务器需要自行编译以下库并替换third-party目录中的对应文件MySQL Connector/Clibhvhiredisredis步骤 3数据库初始化# 创建数据库 mysql -u root -p CREATE DATABASE zc-manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入 SQL 脚本服务器端 mysql -u root -p zc-manager ZcManager-server/sql/zc-manager.sql # 导入 SQL 脚本客户端示例数据 mysql -u root -p zc-manager ZcManager-client/sql/hdy_manager_system.sql步骤 4配置服务器编辑ZcManager-server/zc-admin/resource/application.ini[app] nameZc-Manager port8080 [mysql] host127.0.0.1 port3306 userroot passwordyour_password dbzc-manager max-size5 [redis] host127.0.0.1 port6379 passwordyour_redis_password db0步骤 5构建服务器cd ZcManager-server mkdir -p out/build/x64-debug cd out/build/x64-debug cmake -DCMAKE_BUILD_TYPEDebug .. cmake --build . --config Debug步骤 6构建客户端cd ZcManager-client mkdir -p out/build/debug cd out/build/debug cmake -DCMAKE_BUILD_TYPEDebug .. cmake --build . --config Debug步骤 7运行# 启动服务器 ZcManager-server/out/build/x64-debug/zc-admin/Zc-Manager-server.exe # 启动客户端 ZcManager-client/out/build/debug/Zc-Manager-client.exe数据库配置MySQL 配置服务器使用 MySQL 8.0 作为主数据库数据库名称默认为zc-manager。表结构表名说明sys_user用户表sys_role角色表sys_menu菜单表sys_dept部门表sys_post岗位表sys_user_role用户角色关联表sys_user_post用户岗位关联表sys_role_menu角色菜单关联表Redis 配置可选服务器支持使用 Redis 作为缓存通过 CMake 选项启用cmake -DUSE_REDIS_CACHEON ..OpenSSL 配置必需服务器依赖 OpenSSL 进行加密操作需要确保 OpenSSL 已正确安装并配置。Windows 环境下载 OpenSSL 安装包https://slproweb.com/products/Win32OpenSSL.html安装时选择 Copy OpenSSL DLLs to the Windows system directory 或记住安装路径如果安装到非默认路径需要设置环境变量经过测试会自动设置set OPENSSL_ROOT_DIRF:\Tools\OpenSSL-Win64 set OPENSSL_INCLUDE_DIRF:\Tools\OpenSSL-Win64\include set OPENSSL_LIB_DIRF:\Tools\OpenSSL-Win64\lib\VC\x64\MDLinux 环境# Ubuntu/Debian sudo apt-get install libssl-dev # CentOS/RHEL sudo yum install openssl-devel # Fedora sudo dnf install openssl-devel构建说明客户端构建WindowsMSVCcd ZcManager-client cmake -B build -DCMAKE_BUILD_TYPERelease cmake --build build --config ReleaseLinuxGCCcd ZcManager-client cmake -B build -DCMAKE_BUILD_TYPERelease make -j$(nproc)服务器构建WindowsMSVCcd ZcManager-server cmake -B build -DCMAKE_BUILD_TYPERelease cmake --build build --config ReleaseLinuxGCC注意在 Linux 环境下构建服务器前需要先编译第三方库详见下方Linux 第三方库编译章节。cd ZcManager-server cmake -B build -DCMAKE_BUILD_TYPERelease make -j$(nproc)Linux 第三方库编译由于压缩包中仅包含 Windows 预编译库在 Linux 环境下需要手动编译以下库1. MySQL Connector/C# 安装依赖 sudo apt-get install libssl-dev libncurses5-dev # 下载源码 git clone https://github.com/mysql/mysql-connector-cpp.git cd mysql-connector-cpp mkdir build cd build # 编译安装 cmake -DCMAKE_BUILD_TYPERelease -DWITH_JDBCON .. make -j$(nproc) sudo make install # 复制到 third-party 目录 cp -r /usr/local/mysql-connector-c/ ${PROJECT_DIR}/ZcManager-server/third-party/mysql-connector-c-linux2. libhv# 下载源码 git clone https://github.com/ithewei/libhv.git cd libhv mkdir build cd build # 编译安装 cmake -DCMAKE_BUILD_TYPERelease .. make -j$(nproc) sudo make install # 复制到 third-party 目录 cp -r /usr/local/lib/hv/ ${PROJECT_DIR}/ZcManager-server/third-party/hv cp /usr/local/include/hv/ ${PROJECT_DIR}/ZcManager-server/third-party/hv/include -r3. hiredis# 下载源码 git clone https://github.com/redis/hiredis.git cd hiredis mkdir build cd build # 编译安装 cmake -DCMAKE_BUILD_TYPERelease .. make -j$(nproc) sudo make install # 复制到 third-party 目录 cp /usr/local/lib/libhiredis.so* ${PROJECT_DIR}/ZcManager-server/third-party/hiredis/lib/ cp -r /usr/local/include/hiredis/ ${PROJECT_DIR}/ZcManager-server/third-party/hiredis/include/4. redis# 下载源码 git clone https://github.com/sewenew/redis-plus-plus.git cd redis-plus-plus mkdir build cd build # 编译安装需要先安装 hiredis cmake -DCMAKE_BUILD_TYPERelease .. make -j$(nproc) sudo make install # 复制到 third-party 目录 cp /usr/local/lib/libredis.so* ${PROJECT_DIR}/ZcManager-server/third-party/redis/lib/ cp -r /usr/local/include/sw/ ${PROJECT_DIR}/ZcManager-server/third-party/redis/include/5. 更新 CMake 路径可选如果将库安装到了非标准路径需要在构建服务器时指定cd ZcManager-server cmake -B build \ -DCMAKE_BUILD_TYPERelease \ -DMySQLConnectorCPP_DIR/path/to/mysql-connector-c \ -Dlibhv_DIR/path/to/hv \ -Dhiredis_DIR/path/to/hiredis \ -Dredis_DIR/path/to/redis \ ..CMake 选项选项默认值说明USE_REDIS_CACHEOFF是否启用 Redis 缓存CMAKE_BUILD_TYPEDebug构建类型Debug/Release使用说明登录启动服务器和客户端在登录页面输入用户名和密码默认管理员账号admin/123456输入验证码点击登录用户管理登录系统后点击左侧菜单系统管理 - 用户管理在用户管理页面可以查看、新增、编辑、删除用户支持导入/导出用户数据Excel 格式角色管理点击左侧菜单系统管理 - 角色管理在角色管理页面可以管理角色信息点击权限设置可以分配角色的菜单权限点击分配用户可以为角色分配用户菜单管理点击左侧菜单系统管理 - 菜单管理在菜单管理页面可以管理系统菜单支持树形结构显示个人信息点击右上角用户头像选择个人信息在个人信息页面可以修改昵称、密码、头像API 接口认证接口方法路径说明POST/login用户登录GET/logout用户退出GET/getInfo获取用户信息GET/getRouters获取路由信息用户接口方法路径说明GET/system/user/list用户列表POST/system/user新增用户PUT/system/user修改用户DELETE/system/user/{userId}删除用户角色接口方法路径说明GET/system/role/list角色列表POST/system/role新增角色PUT/system/role修改角色DELETE/system/role/{roleId}删除角色菜单接口方法路径说明GET/system/menu/list菜单列表POST/system/menu新增菜单PUT/system/menu修改菜单DELETE/system/menu/{menuId}删除菜单部门接口方法路径说明GET/system/dept/list部门列表POST/system/dept新增部门PUT/system/dept修改部门DELETE/system/dept/{deptId}删除部门岗位接口方法路径说明GET/system/post/list岗位列表POST/system/post新增岗位PUT/system/post修改岗位DELETE/system/post/{postId}删除岗位个人信息接口方法路径说明GET/profile/avatar获取头像POST/profile/avatar更新头像PUT/profile/password修改密码代码规范命名规范类名大驼峰命名PascalCase如MainWindow函数名小驼峰命名camelCase如getUserList变量名小驼峰命名camelCase如userName常量名全大写下划线分隔如MAX_SIZE文件命名与类名一致如MainWindow.cpp代码风格使用 4 空格缩进花括号{独占一行行尾不保留空格中文注释使用//英文注释使用//或/* */异常处理使用try-catch块捕获异常自定义异常类继承std::exception异常信息使用英文描述内存管理使用智能指针std::unique_ptr和std::shared_ptr避免手动new/delete使用 RAII 模式管理资源常见问题Q1编译时找不到 Qt 头文件解决方案确保 Qt 环境变量已正确配置或在 CMake 中指定 Qt 路径cmake -DCMAKE_PREFIX_PATH/path/to/qt ..Q2数据库连接失败解决方案检查 MySQL 服务是否启动检查application.ini中的数据库配置确保数据库用户有权限访问zc-manager数据库Q3Redis 连接失败解决方案检查 Redis 服务是否启动检查application.ini中的 Redis 配置如果不需要 Redis在 CMake 中禁用-DUSE_REDIS_CACHEOFFQ4客户端无法连接服务器解决方案检查服务器是否启动检查服务器端口是否正确默认 8080检查防火墙设置确保端口开放贡献指南提交代码Fork 项目创建功能分支git checkout -b feature/xxx提交代码git commit -m feat: xxx推送到远程git push origin feature/xxx创建 Pull Request代码审查确保代码符合项目规范添加必要的注释和文档编写单元测试确保所有测试通过许可证本项目采用 MIT 许可证详见 LICENSE 文件。致谢RuoYi - 若依管理系统提供了优秀的架构设计参考libhv - 高性能 HTTP 服务器库Qt - 优秀的跨平台 UI 框架nlohmann-json - 现代 C JSON 库
RELATED

相关推荐

C++26新特性实战——静态反射与std::expected,面试必问的新考点

C++26新特性实战——静态反射与std::expected,面试必问的新考点

2026年6月,C26国际标准正式完成技术工作。C标准委员会主席Herb Sutter称其为“自C11以来最具冲击力的一次发布”。GCC 16.1已经率先带来了大量C26反射特性。在这场C26的浪潮中,有两个特性注定成为2026年面试的必考点——静态反射(Static Refl…

📅 2026/9/8 16:38:18
Sqli、Xss、Upload靶场中使用的PHP函数

Sqli、Xss、Upload靶场中使用的PHP函数

一、SQLi-Labs 使用函数1.mysqli_query() 执行 SQL 语句 2.mysqli_fetch_array() 获取查询结果 3.mysqli_error() 获取 SQL 报错信息 4.mysqli_close() 关闭数据库连接 5.addslashes() 特殊字符转义(部分关卡防御) 6.sleep() 延时(时间盲注 P…

📅 2026/8/23 1:50:19
OpenClaw框架:AI助手的记忆系统与工具集成解析

OpenClaw框架:AI助手的记忆系统与工具集成解析

1. OpenClaw框架概述:AI助手的记忆与工具化革命OpenClaw是当前AI领域最具突破性的开源框架之一,它通过创新的记忆系统和工具集成机制,彻底改变了传统AI助手的交互模式。我在实际部署测试中发现,相比普通对话模型,搭载O…

📅 2026/8/23 1:50:20
MORE NEWS

更多资讯

📰

Snowpack v3.0 深度解读:流式导入、esbuild 内置优化与全新 JavaScript/Node.js API

前端开发工具前端构建 【免费下载链接】snowpack ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️ 项目地址: https://gitcode.com/gh_mirrors/sn/snowpack 点击查看 免费下载 Snowpack v3.0 是该项目自 v1.0.0 发布以来最大…

📰

OpenClaw等四款AI Agent选型与避坑实践

现在一聊 AI 编程或者说 Agent,几乎绕不开这几个名字:OpenClaw、Hermes Agent、Claude Code、Codex CLI。我最近把这四个都装过、跑过、也在真实任务里拆过,发现一个特别典型的现象——很多朋友把“Agent”当成同一个东西,结果一搜…

📰

Atlas 300V 24G部署YOLOv5实战:从CANN配置到AscendCL推理全流程

先说结论:Atlas 300V 24G(业界常见的叫法还有 Atlas 300V Pro)确实是一块运算加速卡,但它不是显卡,而是昇腾 310P 系列里专门面向 AI 推理和视频解析的 NPU 加速卡。最近我在边缘盒子方案里把 YOLOv5 完整部署到这张卡…

📰

AI Agent动态权限控制与隔离执行技术解析

1. 项目背景与核心价值在AI Agent技术快速发展的当下,安全管控始终是制约企业级应用落地的关键瓶颈。传统AI Agent架构通常采用静态权限分配模式,就像给每个员工发放固定门禁卡——开发人员可能拥有过高权限,而普通用户又常因权限不足影响工作…

📰

Python轻量级图书推荐系统:协同过滤+文本相似度双路融合

简介:本资源是一套完整的Python图书推荐系统源码实现,面向高校计算机专业学生、推荐算法初学者及Web开发学习者,解决从协同过滤到文本相似度融合建模的实战落地问题。压缩包共1828个文件,含1653张界面截图(jpg/png&…

📰

5 步完成 Llama 模型部署:从下载到量化推理的实用指南(llama-models)

5 步完成 Llama 模型部署:从下载到量化推理的实用指南(llama-models) 【免费下载链接】llama-models Utilities intended for use with Llama models. 项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models Llama 模型是 M…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬