# HelpDesk - 在线工单支持管理系统
## 项目概述
- **项目类型**: Web应用 (Laravel框架)
- **主要功能**: 企业级在线工单系统,支持客户支持、工单管理、知识库、实时聊天、邮件集成
- **技术栈**:
- PHP 8.2+
- Laravel 12
- Vue.js + Inertia.js
- Tailwind CSS
- MySQL/SQLite
- Pusher (实时通信)
- OpenAI API (AI功能)
## 模块结构
```
HelpDesk/
├── app/
│ ├── Broadcast/ # 广播事件
│ ├── Console/ # 命令行工具
│ ├── Events/ # 事件类
│ ├── Exceptions/ # 异常处理
│ ├── Helpers/ # 辅助函数
│ ├── Http/
│ │ ├── Controllers/ # 控制器
│ │ │ ├── Api/ # API控制器
│ │ │ ├── Auth/ # 认证控制器
│ │ │ ├── AIController.php
│ │ │ ├── TicketsController.php
│ │ │ ├── UsersController.php
│ │ │ ├── DashboardController.php
│ │ │ └── ...
│ │ └── Middleware/ # 中间件
│ ├── Install/ # 安装程序
│ ├── Jobs/ # 队列任务
│ ├── Mail/ # 邮件类
│ ├── Models/ # Eloquent模型
│ ├── Notifications/ # 通知类
│ ├── Providers/ # 服务提供者
│ ├── Services/ # 业务服务
│ └── Traits/ # 特性类
├── bootstrap/ # 启动文件
├── config/ # 配置文件
├── database/
│ ├── factories/ # 模型工厂
│ ├── migrations/ # 数据库迁移
│ └── seeders/ # 数据填充
├── lang/ # 多语言文件
├── public/ # 公共资源
├── resources/
│ ├── css/ # CSS资源
│ ├── js/ # JavaScript资源
│ └── views/ # Blade视图
├── routes/ # 路由定义
├── storage/ # 存储文件
├── tests/ # 测试文件
└── vendor/ # Composer依赖
```
## 核心业务逻辑
### 1. 工单管理逻辑
- **工单创建**: 客户创建工单,系统自动分配
- **工单分配**: 基于部门、优先级、负载均衡自动分配
- **工单流转**: 状态管理(待处理、处理中、已解决、已关闭)
- **工单合并**: 支持合并重复工单
- **工单升级**: 自动升级超时工单
### 2. 用户角色系统
- **超级管理员**: 系统全部权限
- **管理员**: 部门管理、用户管理
- **客服代表**: 处理分配工单
- **客户**: 提交工单、查看进度
### 3. 实时通信系统
- **Pusher集成**: 实时消息推送
- **WebSocket**: 在线聊天功能
- **通知系统**: 邮件、站内信、推送通知
### 4. 邮件管道系统
- **IMAP集成**: 自动从邮箱导入工单
- **邮件模板**: 可配置的邮件模板
- **邮件回复**: 邮件回复自动关联工单
### 5. AI智能功能
- **OpenAI集成**: 智能回复建议
- **自动分类**: AI自动分类工单
- **情感分析**: 客户情绪分析
## 核心代码分析
### 主要控制器
#### TicketsController.php
```php
// 工单核心操作
- index() // 工单列表
- create() // 创建工单
- store() // 保存工单
- show() // 工单详情
- update() // 更新工单
- destroy() // 删除工单
- assign() // 分配工单
- merge() // 合并工单
- changeStatus() // 更改状态
```
#### AIController.php
```php
// AI功能控制器
- generateReply() // 生成智能回复
- categorize() // 自动分类
- analyzeSentiment() // 情感分析
```
#### ImapController.php
```php
// 邮件管道控制器
- fetchEmails() // 获取邮件
- createTicket() // 创建工单
- replyByEmail() // 邮件回复
```
### 主要模型
#### Ticket.php
```php
class Ticket extends Model
{
// 工单模型
protected $fillable = [
'subject', 'description', 'status_id',
'priority_id', 'department_id', 'assigned_to'
];
// 关联关系
public function user() // 客户
public function agent() // 客服
public function department() // 部门
public function status() // 状态
public function priority() // 优先级
public function comments() // 评论
public function attachments() // 附件
}
```
### 数据库迁移
#### 核心表结构
```
users # 用户表
tickets # 工单表
ticket_comments # 工单评论
ticket_attachments # 工单附件
departments # 部门表
statuses # 状态表
priorities # 优先级表
ticket_types # 工单类型
knowledge_base # 知识库
faqs # FAQ
email_templates # 邮件模板
notifications # 通知表
conversations # 会话表
```
## 功能特点
1. **工单管理**: 完整的工单生命周期管理
2. **多渠道支持**: Web、邮件、API多渠道提交
3. **实时聊天**: 客户与客服实时沟通
4. **知识库**: 自助服务知识库系统
5. **自动化**: 自动分配、自动回复、自动升级
6. **报告分析**: 多维度数据统计和报表
7. **多语言**: 支持17种语言
8. **API接口**: RESTful API支持
9. **AI集成**: OpenAI智能辅助
10. **邮件管道**: 邮件自动转工单
## 技术亮点
1. **Laravel 12**: 最新Laravel框架
2. **Inertia.js**: 无API的SPA体验
3. **Tailwind CSS**: 现代化UI设计
4. **Pusher**: 实时通信
5. **队列系统**: 异步任务处理
6. **缓存优化**: Redis缓存支持
7. **媒体库**: Spatie媒体库管理
8. **权限控制**: 基于角色的权限管理
## 部署说明
1. **环境要求**: PHP 8.2+, MySQL 5.7+, Node.js
2. **安装步骤**:
```bash
composer install
npm install && npm run build
php artisan migrate
php artisan db:seed
... (content truncated)