Files
tyc-server-v2/docs/toolbox_implementation.md
2026-05-25 10:54:17 +08:00

229 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 天远查车询功能实现说明
## 功能概述
实现了一个完整的工具查询系统包含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`:
- 添加了"天远查车询"卡片
- 显示所有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. 打开首页
2. 看到"天远查车询"卡片
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客户端已正确初始化
- [ ] 所有工具路由已正确注册
- [ ] 前端工具配置已同步更新
- [ ] 表单验证规则已测试通过
- [ ] 错误处理已测试
- [ ] 性能测试已通过