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 库

相关新闻

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

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

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

2026/7/31 2:04:11 阅读更多 →
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/7/31 2:04:11 阅读更多 →
OpenClaw框架:AI助手的记忆系统与工具集成解析

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

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

2026/7/31 2:04:10 阅读更多 →

最新新闻

Verilog延迟语句深度解析:从仿真原理到工程实践

Verilog延迟语句深度解析:从仿真原理到工程实践

1. 项目概述:Verilog延迟语句的深度解析在数字电路设计和硬件描述语言(HDL)的实践中,Verilog的延迟语句是一个既基础又充满陷阱的概念。很多刚接触FPGA或ASIC设计的朋友,包括我自己在早期项目里,都曾对#5这…

2026/7/31 2:45:23 阅读更多 →
JavaScript学习路径全解析:从零基础到项目实战的优质资源指南

JavaScript学习路径全解析:从零基础到项目实战的优质资源指南

1. 为什么“从零开始”学JavaScript,选对起点比努力更重要最近几年,前端开发的热度一直没降过,而JavaScript作为这门手艺的“母语”,自然成了无数人入行的第一道门槛。我见过太多新手,一上来就抱着厚厚的“红宝书”硬啃…

2026/7/31 2:45:23 阅读更多 →
射频SPDT开关核心结构解析:PIN二极管与FET设计原理及应用对比

射频SPDT开关核心结构解析:PIN二极管与FET设计原理及应用对比

1. 项目概述:射频单刀双掷开关的“心脏”与“骨架”在射频电路的世界里,开关扮演着“交通警察”的角色,它决定了信号的流向。而单刀双掷开关,则是其中最基础、应用最广泛的“十字路口”之一。无论是手机里天线与不同频段收发电路的…

2026/7/31 2:45:23 阅读更多 →
游戏开发者日志解析:从武器设计到技术实现全流程

游戏开发者日志解析:从武器设计到技术实现全流程

这次我们来看一个游戏开发相关的项目——"第一战队豪兽者 纪念版手誓剑UNI.ver"的开发者日志介绍图。从标题来看,这应该是某个游戏或动漫IP的纪念版本开发记录,包含了角色设计、武器设定等关键信息。对于游戏开发者和动漫爱好者来说&#xff0…

2026/7/31 2:45:23 阅读更多 →
和平精英地铁逃生拼装人偶第一弹:完整收集攻略与实战技巧

和平精英地铁逃生拼装人偶第一弹:完整收集攻略与实战技巧

最近在游戏社区看到很多玩家对《和平精英》地铁逃生模式中的拼装人偶系列很感兴趣,但网上资料比较零散,特别是第一弹的完整收集攻略和实战应用技巧。作为资深游戏攻略作者,我整理了这套系统的拼装人偶第一弹全解析,从基础概念到实…

2026/7/31 2:45:23 阅读更多 →
一种基于文化基因工程的人机协同智能生态系统及方法

一种基于文化基因工程的人机协同智能生态系统及方法

[1]邹晓辉,柯丽君. 一种基于文化基因工程的人机协同智能生态系统及方法: CN202511647883.X[P]. CN122133767A[2026-07-30]. 申请(专利)号: CN202511647883.X 申请日期: 2025-11-11 公开/公告号: CN122133767A 发明人: …

2026/7/31 2:44:23 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻