# Support Ticket System - 客户支持工单系统
## 项目概述
- **项目类型**:Web应用 - 客户支持/工单管理系统
- **主要功能**:多渠道客户支持工单管理、知识库、FAQ、实时聊天、AI辅助回复
- **技术栈**:
- 后端:PHP 8.2+, Laravel 11, MySQL
- 前端:Blade + Tailwind CSS + Vite
- 其他:Redis, Pusher, OpenAI API, 多种支付网关
## 模块结构
```
main-file/
├── app/
│ ├── Console/Commands/ # Artisan命令
│ ├── Events/ # 事件类
│ ├── Http/
│ │ ├── Controllers/ # 控制器
│ │ │ ├── Api/ # API控制器
│ │ │ └── Auth/ # 认证控制器
│ │ ├── Middleware/ # 中间件
│ │ └── Requests/ # 表单请求验证
│ ├── Models/ # 数据模型
│ ├── Mail/ # 邮件类
│ ├── Exports/ # 数据导出
│ ├── Listeners/ # 事件监听器
│ ├── Providers/ # 服务提供者
│ ├── Traits/ # Trait类
│ └── View/ # 视图组件
├── packages/workdo/ # 插件包目录
├── config/ # 配置文件
├── database/
│ ├── migrations/ # 数据库迁移
│ └── seeders/ # 数据填充
├── resources/
│ ├── views/ # 视图文件
│ ├── lang/ # 语言文件
│ └── css/ # CSS资源
├── routes/ # 路由定义
├── public/ # 公共资源
├── storage/ # 存储目录
└── tests/ # 测试文件
```
## 核心业务逻辑
### 1. 工单管理流程
```
工单创建 → 分类分配 → 优先级设置 → 分配给客服 → 处理回复 → 状态更新 → 工单关闭
```
**主要功能:**
- 多渠道工单创建(邮件、网站表单、API)
- 工单分类与标签管理
- 优先级设置(低、中、高、紧急)
- 工单分配与转派
- 工单状态追踪(新建、处理中、等待回复、已解决、已关闭)
- 工单历史记录
- 批量操作(批量分配、批量关闭)
### 2. 知识库系统
```
文章创建 → 分类管理 → 标签设置 → 发布/草稿 → 搜索检索
```
**主要功能:**
- 知识库文章管理
- 分类与标签系统
- 文章搜索功能
- 文章权限控制
- 相关文章推荐
### 3. 用户管理
- 客户管理(注册、登录、资料管理)
- 客服代表管理
- 角色权限管理(使用 Laratrust)
- 部门管理
- 用户组管理
### 4. AI辅助功能
- 使用 OpenAI API 自动生成回复
- AI智能分类工单
- AI情感分析
- 智能推荐知识库文章
### 5. 实时通信
- 工单更新实时通知
- 实时聊天功能(使用 Pusher)
- 邮件通知
- 站内通知
### 6. 报告与分析
- 工单统计报表
- 客服绩效报表
- 客户满意度报表
- 响应时间分析
- 工单趋势分析
## 核心代码分析
### 关键模型
```php
// 工单模型关系
Ticket -> User (创建者)
Ticket -> Category (分类)
Ticket -> Priority (优先级)
Ticket -> TicketReply (回复记录)
Ticket -> CustomFieldValue (自定义字段值)
// 知识库模型关系
Knowledge -> KnowledgebaseCategory (分类)
Knowledge -> User (作者)
```
### 插件化架构
系统采用模块化/插件化架构,位于 `packages/workdo/` 目录:
```
packages/workdo/
├── Ticket/ # 工单模块
├── KnowledgeBase/ # 知识库模块
├── Faq/ # FAQ模块
├── Chat/ # 聊天模块
├── CustomField/ # 自定义字段模块
├── EmailTemplate/ # 邮件模板模块
└── ... # 其他模块
```
每个模块独立管理:
- 独立的路由
- 独立的视图
- 独立的控制器
- 独立的模型
- 独立的配置文件
### 权限系统
使用 Laratrust 实现 RBAC:
- **角色**:超级管理员、管理员、客服、客户
- **权限**:模块级别、操作级别(查看、创建、编辑、删除)
- **团队**:支持多团队/公司模式
### 支付集成
支持多种支付网关:
- Stripe
- PayPal
- Razorpay
- PayTM
- Mollie
- Iyzico
- Skrill
- CoinGate(加密货币)
### 邮件集成
- SMTP 配置
- Mailgun
- Mailchimp 集成
- IMAP 邮件收取自动创建工单
- 邮件模板自定义
### 安全特性
- Google reCAPTCHA 集成
- Google 2FA 双因素认证
- OAuth 登录(Google、Facebook等)
- 密码加密存储
- CSRF 保护
### API支持
- RESTful API
- API认证(Sanctum)
- API文档
- 速率限制
### 多语言支持
- 支持多语言切换
- 语言文件位于 `resources/lang/`
- 可翻译字符串导出/导入
### 特色功能
1. **工单合并**:合并相关工单
2. **工单拆分**:将工单拆分为多个子工单
3. **工单链接**:关联相关工单
4. **自定义字段**:根据业务需求自定义工单字段
5. **工单模板**:快速创建常见工单
6. **自动分配规则**:基于条件自动分配工单
7. **SLA管理**:服务水平协议管理
8. **满意度调查**:工单关闭后自动发送满意度调查
9. **工单导入/导出**:支持Excel批量操作
10. **Webhook支持**:与第三方系统集成