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

6.1 KiB
Raw Permalink Blame History

天远查车询功能实现说明

功能概述

实现了一个完整的工具查询系统包含11个实用工具用户可以通过首页点击工具进行查询。

后端实现

1. 配置和类型定义

配置文件更新

  • config/config.go: 添加了 TianxingjuheConfig 结构体和 Tianxingjuhe 字段
  • etc/main.yamletc/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客户端已正确初始化
  • 所有工具路由已正确注册
  • 前端工具配置已同步更新
  • 表单验证规则已测试通过
  • 错误处理已测试
  • 性能测试已通过