Files
tyc-server-v2/docs/toolbox_implementation.md

229 lines
6.1 KiB
Markdown
Raw Normal View History

2026-05-25 10:54:17 +08:00
# 天远查车询功能实现说明
2026-05-16 15:45:05 +08:00
## 功能概述
实现了一个完整的工具查询系统包含11个实用工具用户可以通过首页点击工具进行查询。
## 后端实现
### 1. 配置和类型定义
#### 配置文件更新
- `config/config.go`: 添加了 `TianxingjuheConfig` 结构体和 `Tianxingjuhe` 字段
- `etc/main.yaml``etc/main.dev.yaml`: 添加了天行聚合API配置
#### 类型定义
- `types/types.go`: 添加了工具相关类型
- `ToolInfo`: 工具信息结构
- `ToolboxListResp`: 工具列表响应
- `ToolboxQueryReq`: 工具查询请求
- `ToolboxQueryResp`: 工具查询响应
### 2. 天行聚合API客户端
#### 文件结构
- `service/tianxingjuhe_sdk/client.go`: 天行聚合API客户端实现
#### 功能特性
- 支持GET和POST请求
- 自动添加API密钥
- 统一的响应处理
- 错误处理机制
### 3. 工具箱服务
#### 文件结构
- `service/toolboxService.go`: 工具箱服务核心实现
#### 工具列表11个工具
1. **IP地址查询** (ip-location)
- 查询IP地址归属地、运营商等信息
- 支持ipv4和ipv6
- 内网IP自动识别
2. **身份证归属地** (idcard-info)
- 查询身份证归属地、性别、出生日期等信息
- 校验身份证有效性
- 计算年龄
3. **手机号归属地** (phone-location)
- 查询手机号码归属地、运营商等信息
4. **北京时间查询** (beijing-time)
- 获取当前北京时间
- 不需要输入参数
5. **银行卡识别** (bank-card)
- 识别银行卡发卡行与卡种
6. **车牌号解析** (plate-parse)
- 解析车牌类型与归属地
7. **金额大写转换** (money-to-chinese)
- 阿拉伯数字转中文大写金额
8. **密码强度检测** (password-strength)
- 检测密码安全性并给出建议
9. **日期间隔计算** (days-between-dates)
- 计算两个日期相差的天数
10. **文件大小格式化** (file-size-format)
- 字节数转为 KB / MB / GB
11. **文本字数统计** (text-stats)
- 统计字符数、单词数、行数
### 4. API接口
#### 路由配置
- `handler/routes.go`: 添加了工具箱相关路由
- `GET /api/v1/toolbox/list`: 获取工具列表
- `POST /api/v1/toolbox/query`: 执行工具查询
#### Handler实现
- `handler/toolbox/toolboxlisthandler.go`: 工具列表接口
- `handler/toolbox/toolboxqueryhandler.go`: 工具查询接口
#### Logic实现
- `logic/toolbox/toolboxlistlogic.go`: 工具列表业务逻辑
- `logic/toolbox/toolboxquerylogic.go`: 工具查询业务逻辑
### 5. 服务上下文注册
#### 文件更新
- `svc/servicecontext.go`:
- 导入天行聚合SDK包
- 添加 `TianxingjuheService` 字段
- 初始化天行聚合客户端实例
- 注册到服务上下文
## 前端实现
### 1. 工具配置
#### 文件结构
- `config/toolboxRegistry.js`: 工具配置注册表
#### 配置内容
每个工具配置包含:
- `key`: 工具唯一标识
- `name`: 工具名称
- `desc`: 工具描述
- `icon`: 图标类名使用carbon图标库
- `fields`: 输入字段配置
- `validate`: 表单验证函数
- `validateMsg`: 验证失败提示信息
- `resultLabels`: 结果展示字段映射
### 2. 首页集成
#### 文件更新
- `pages/index.vue`:
2026-05-25 10:54:17 +08:00
- 添加了"天远查车询"卡片
2026-05-16 15:45:05 +08:00
- 显示所有11个工具
- 点击工具跳转到查询页面
- 添加了自定义图标样式
### 3. 工具查询页面
#### 文件结构
- `pages/toolbox/query.vue`: 工具查询页面
#### 功能特性
- 动态表单生成支持text、digit、date、textarea等类型
- 表单验证
- 自动查询(无需输入参数的工具)
- 结果展示
- 错误处理
- 加载状态
#### 支持的字段类型
- `text`: 普通文本输入
- `digit`: 数字输入
- `idcard`: 身份证号输入
- `date`: 日期选择器
- `textarea`: 多行文本输入
### 4. API调用
#### 文件结构
- `api/toolbox.js`: 工具箱API封装
#### 接口函数
- `postToolboxQuery(toolKey, params)`: 执行工具查询
## 使用流程
### 用户使用流程
1. 打开首页
2026-05-25 10:54:17 +08:00
2. 看到"天远查车询"卡片
2026-05-16 15:45:05 +08:00
3. 点击任意工具图标
4. 跳转到工具查询页面
5. 填写表单(如需)
6. 点击"立即查询"按钮
7. 查看查询结果
### 数据流程
1. 前端调用 `/api/v1/toolbox/list` 获取工具列表
2. 用户选择工具后调用 `/api/v1/toolbox/query` 执行查询
3. 后端根据 toolKey 分发到对应的处理函数
4. 处理函数执行查询逻辑可能调用第三方API
5. 返回查询结果
6. 前端展示结果
## 技术特点
### 后端特点
- 统一的工具接口设计
- 工具处理器注册表模式
- 灵活的参数传递map[string]interface{}
- 完善的错误处理
- 支持第三方API集成天行聚合
### 前端特点
- 动态表单生成
- 类型安全的TypeScript
- 响应式UI设计
- 统一的错误处理
- 良好的用户体验
## 扩展指南
### 添加新工具
#### 后端步骤
1.`toolboxService.go` 中添加处理函数
2.`toolProcessors` 映射中注册新工具
3.`ListTools()` 方法中添加工具信息
#### 前端步骤
1.`toolboxRegistry.js` 中添加工具配置
2. 定义字段配置和验证规则
3. 定义结果展示字段映射
## 注意事项
1. **API密钥管理**: 天行聚合API的密钥已配置请在生产环境中使用真实的API密钥
2. **错误处理**: 所有工具都有完善的错误处理机制
3. **表单验证**: 前端和后端都有验证,确保数据安全
4. **性能优化**: 工具查询响应时间已优化建议在3秒内完成
5. **用户体验**: 无需输入参数的工具会自动查询,提升用户体验
## 测试建议
1. 测试每个工具的输入验证
2. 测试错误处理(如格式错误的输入)
3. 测试网络异常情况
4. 测试边界情况(如最大长度、特殊字符等)
5. 测试响应速度
## 部署检查清单
- [ ] 配置文件中的API密钥已更新为生产环境密钥
- [ ] 天行聚合API客户端已正确初始化
- [ ] 所有工具路由已正确注册
- [ ] 前端工具配置已同步更新
- [ ] 表单验证规则已测试通过
- [ ] 错误处理已测试
- [ ] 性能测试已通过