You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.2 KiB
6.2 KiB
访客管理系统项目文档
项目概述
这是一个基于 Laravel 9 框架开发的企业访客管理系统,主要用于管理企业的访客预约、门岗登记、审核流程等功能。系统采用前后端分离架构,提供了完整的 API 接口。
主要功能模块
1. 访客预约管理
- 功能描述: 支持访客在线预约访问,填写访问信息、时间、区域等
- 核心文件:
app/Models/Visit.php,app/Http/Controllers/Mobile/VisitController.php - 访问类型:
- 访客 (TYPE_VISITOR = 1)
- 访客车辆 (TYPE_VISITOR_CAR = 2)
- 物流车辆 (TYPE_LOGISTICS_CAR = 3)
2. 审核流程管理
- 功能描述: 多级审核流程,支持审核状态跟踪
- 核心文件:
app/Models/VisitAudit.php,app/Http/Controllers/Admin/VisitAuditController.php - 审核状态:
- 待学习 (AUDIT_STATUS_PENDING_STUDY = -1)
- 待审核 (AUDIT_STATUS_PENDING = 0)
- 通过/待进厂 (AUDIT_STATUS_APPROVED = 1)
- 驳回 (AUDIT_STATUS_REJECTED = 2)
- 已进厂 (AUDIT_STATUS_ENTERED = 3)
- 已离厂 (AUDIT_STATUS_LEFT = 4)
3. 门岗管理系统
- 功能描述: 门岗端进行访客登记、ID卡绑定、进出厂记录等
- 核心文件:
app/Http/Controllers/GateController.php,app/Models/GateLog.php - 主要功能:
- 访客列表查询和筛选
- ID卡绑定 (bind_card)
- 进厂登记 (enter)
- 离厂登记 (leave)
- 货车图片上传 (upload_vehicle)
4. 学习培训模块
- 功能描述: 访客进厂前的安全学习和考试
- 核心文件:
app/Models/Study.php,app/Models/StudyAsk.php,app/Models/StudyLog.php - 相关控制器:
app/Http/Controllers/Admin/StudyController.php,StudyAskController.php
5. 系统配置管理
- 功能描述: 系统参数配置、访问区域管理、时间段管理等
- 核心文件:
app/Models/Config.php- 系统配置app/Models/VisitArea.php- 访问区域app/Models/VisitTime.php- 访问时间段app/Models/Blacklist.php- 黑名单管理
6. 用户权限管理
- 功能描述: 基于角色的权限控制系统
- 核心文件:
app/Models/Admin.php,app/Models/Role.php,app/Models/Permission.php - 技术实现: 使用 Spatie Laravel Permission 包
7. 多语言支持
- 功能描述: 支持多语言国际化
- 实现方式: 通过
set.locale中间件实现 - 语言文件:
lang/目录下的语言包
技术架构
后端技术栈
- 框架: Laravel 9.x
- PHP版本: ^8.0.2
- 数据库: MySQL
- 认证: Laravel Sanctum (JWT)
- 权限管理: Spatie Laravel Permission
- API文档: Swagger (darkaonline/l5-swagger)
核心依赖包
{
"darkaonline/l5-swagger": "^8.6", // API文档生成
"spatie/laravel-permission": "^5.5", // 权限管理
"owen-it/laravel-auditing": "^13.6", // 操作审计
"maatwebsite/excel": "^3.1", // Excel导入导出
"overtrue/wechat": "~5.0", // 微信SDK
"lpilp/guomi": "^2.0", // 国密加密
"overtrue/pinyin": "^5.0" // 拼音转换
}
API 路由结构
门岗端接口 (/api/gate/)
GET /visits- 获取访客列表POST /visits/detail- 获取访客详情POST /visits/update- 更新访客状态GET /visits/use-code- 核销访客
管理后台接口 (/api/admin/)
/visits/*- 访客管理/studies/*- 学习内容管理/study-asks/*- 学习题目管理/visit-times/*- 访问时间管理/configs/*- 系统配置/blacklists/*- 黑名单管理/visit-areas/*- 访问区域管理
移动端接口 (/api/mobile/)
/user/*- 用户相关/visit/*- 访客预约相关
数据库设计
核心数据表
visits- 访客预约记录表visit_audits- 审核记录表visit_logs- 访客操作日志表gate_logs- 门岗操作日志表admins- 管理员表visit_areas- 访问区域表visit_times- 访问时间段表studies- 学习内容表study_asks- 学习题目表
安全特性
认证与授权
- 使用 Laravel Sanctum 进行 API 认证
- 基于角色的权限控制 (RBAC)
- 支持多端认证 (admin/mobile)
数据安全
- 支持国密加密算法 (SM2)
- 操作审计日志记录
- 软删除保护重要数据
加密命令
项目提供了 SM2 加密/解密命令:
php artisan sm2:encrypt- 加密数据php artisan sm2:decrypt- 解密数据
部署要求
环境要求
- PHP >= 8.0.2
- MySQL >= 5.7
- Composer
- Node.js (用于前端资源编译)
安装步骤
- 克隆项目代码
- 运行
composer install安装依赖 - 复制
.env.example为.env并配置数据库 - 运行
php artisan key:generate生成应用密钥 - 运行
php artisan migrate执行数据库迁移 - 运行
php artisan db:seed填充初始数据 - 配置 Web 服务器指向
public目录
API 文档
系统集成了 Swagger API 文档,可通过以下方式访问:
- 开发环境:
http://domain/api/documentation - 控制器:
app/Http/Controllers/SwaggerController.php
日志系统
访客操作日志
- 表:
visit_logs - 类型: 进厂、离厂、审核等操作记录
门岗操作日志
- 表:
gate_logs - 功能: 记录门岗的所有操作行为
系统审计日志
- 实现: Laravel Auditing 包
- 功能: 自动记录模型的增删改操作
国际化支持
系统支持多语言,通过中间件 set.locale 实现:
- 语言包位置:
lang/目录 - 支持动态语言切换
- API 接口均支持多语言响应
文件上传管理
- 控制器:
app/Http/Controllers/Admin/UploadController.php - 模型:
app/Models/Upload.php - 功能: 支持图片、文档等文件上传和管理
开发建议
- 代码规范: 遵循 PSR-4 自动加载标准
- API 设计: 遵循 RESTful 设计规范
- 错误处理: 使用统一的 API 响应格式
- 数据验证: 使用 Laravel Validator 进行数据验证
- 日志记录: 重要操作需要记录详细日志
联系信息
如需了解更多项目详情或技术支持,请联系开发团队。