设置-1688绑定

1688绑定模块功能解析文档

1. 模块架构概述

1688绑定模块采用前后端分离架构,前端使用Vue 3 Composition API实现用户界面和交互逻辑,后端使用Spring Boot实现API接口和业务逻辑。模块通过OAuth2协议与1688开放平台进行交互,实现账号授权和数据获取。

1.1 系统架构图

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│ 前端页面    │────>│ 后端API     │────>│ 聚石塔服务  │────>│ 1688开放平台│
│ (Vue 3)     │<────│ (Spring Boot)│<────│            │<────│             │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘

1.2 核心组件

2. 前端代码结构分析

2.1 主组件结构

前端主组件 index.vue 包含以下核心部分:

2.2 API调用服务

purchasealibabaApi.js 定义了与后端交互的API方法:

3. 后端代码结构分析

3.1 控制器层

AlibabaController.java 提供以下API端点:

3.2 服务实现层

PurchaseAlibabaAuthServiceImpl.java 实现了以下核心功能:

3.3 数据模型

PurchaseAlibabaAuth 实体包含以下核心字段:

4. 核心功能实现

4.1 授权流程实现

  1. 前端触发授权

    • 用户点击"绑定账号"按钮
    • 填写账号名称和开发者信息(可选)
    • 点击"授权"按钮,调用 bindAuth() 方法
    • bindAuth() 调用 getcode() 获取账号ID
    • getcode() 调用后端 /submitname 接口创建账号记录
    • 成功后调用 goUrl() 获取1688授权链接
  2. 1688平台授权

    • 前端打开1688授权页面
    • 用户登录1688账号并确认授权
    • 1688平台重定向回系统,并携带授权码
  3. 后端处理授权回调

    • 前端 GetRequest() 方法解析URL参数,获取授权码
    • 调用后端 /bindAuthData 接口,传入授权码和状态
    • 后端 bindAuth() 方法使用授权码获取访问令牌和刷新令牌
    • 保存令牌信息到数据库
  4. 前端更新状态

    • 授权成功后,前端显示成功提示
    • 刷新账号列表,显示新绑定的账号

4.2 令牌管理实现

  1. 令牌获取

    • bindAuth() 方法中,使用授权码调用1688开放平台的 /system.oauth2/getToken 接口
    • 获取 access_tokenrefresh_tokenexpires_in 等信息
    • 计算令牌过期时间并保存到数据库
  2. 令牌刷新

    • refreshAuthToken() 方法中,使用 refresh_token 调用1688开放平台的 /system.oauth2/getToken 接口
    • 获取新的 access_token 和过期时间
    • 更新数据库中的令牌信息
  3. 令牌检查

    • checkAuthorityToken() 方法中,检查访问令牌是否过期
    • 若过期,自动调用 refreshAuthToken() 刷新令牌

4.3 账号管理实现

  1. 账号列表

    • 前端调用 getauthList() 获取已绑定账号列表
    • 后端 getAuthData() 方法查询数据库,返回未删除的账号
    • 前端表格展示账号信息,包括名称、状态、到期时间等
  2. 账号编辑

    • 用户点击编辑图标,打开编辑弹窗
    • 修改账号名称或开发者信息
    • 点击"保存"按钮,调用后端 /submitname 接口更新账号信息
  3. 账号删除

    • 用户点击"删除"按钮
    • 前端调用 removeBind() 方法
    • 后端 updateAlibaba() 方法将账号标记为删除状态
  4. 延期授权

    • 用户点击"延期授权"按钮
    • 前端调用 goUrl() 方法重新获取授权链接
    • 重复授权流程,获取新的令牌和过期时间

5. API调用流程

5.1 授权链接获取流程

sequenceDiagram
    participant 前端
    participant 后端
    participant 1688平台
    
    前端->>后端: GET /get1688Url?redirectUrl=xxx&id=xxx
    后端->>后端: 构建授权URL
    后端-->>前端: 返回授权URL
    前端->>1688平台: 打开授权页面
    1688平台->>前端: 用户授权后重定向,携带code
    前端->>后端: GET /bindAuthData?code=xxx&state=xxx
    后端->>1688平台: 调用getToken接口获取令牌
    1688平台-->>后端: 返回令牌信息
    后端->>后端: 保存令牌信息到数据库
    后端-->>前端: 返回绑定成功信息

5.2 令牌刷新流程

sequenceDiagram
    participant 前端
    participant 后端
    participant 1688平台
    
    前端->>后端: GET /refreshAuthData?id=xxx
    后端->>后端: 检查refresh_token是否过期
    后端->>1688平台: 调用getToken接口,使用refresh_token
    1688平台-->>后端: 返回新的access_token
    后端->>后端: 更新令牌信息和过期时间
    后端-->>前端: 返回刷新成功信息

5.3 API调用流程

sequenceDiagram
    participant 前端
    participant 后端
    participant 聚石塔
    participant 1688平台
    
    前端->>后端: 调用业务API(如获取物流信息)
    后端->>后端: 检查令牌是否有效
    后端->>聚石塔: 转发API请求
    聚石塔->>1688平台: 调用1688开放平台API
    1688平台-->>聚石塔: 返回API响应
    聚石塔-->>后端: 转发响应数据
    后端-->>前端: 返回处理结果

6. 技术要点和难点

6.1 OAuth2授权实现

6.2 令牌生命周期管理

6.3 聚石塔服务集成

6.4 多账号管理

7. 代码优化建议

7.1 前端代码优化

  1. 错误处理优化

    • 当前代码在API调用失败时缺少统一的错误处理机制
    • 建议实现全局错误处理拦截器,统一处理API错误
  2. 状态管理优化

    • 当前使用本地响应式数据管理状态,对于复杂场景可能不够灵活
    • 建议使用Pinia或Vuex进行状态管理,提高代码可维护性
  3. 代码结构优化

    • 将授权流程相关的逻辑抽取为独立的composable函数
    • 提高代码的复用性和可读性

7.2 后端代码优化

  1. 安全性优化

    • 当前代码中AppKey和AppSecret直接存储在数据库中
    • 建议对敏感信息进行加密存储,提高安全性
  2. 异常处理优化

    • 当前代码中异常处理较为简单,缺少详细的错误信息
    • 建议实现统一的异常处理机制,提供更详细的错误信息
  3. 性能优化

    • 当前代码中存在重复的数据库查询操作
    • 建议使用缓存机制减少数据库查询,提高系统性能
  4. 代码结构优化

    • 将1688 API调用相关的代码抽取为独立的服务
    • 提高代码的模块化程度和可维护性

7.3 架构优化

  1. 微服务架构

    • 考虑将1688相关的功能抽取为独立的微服务
    • 提高系统的扩展性和可维护性
  2. 异步处理

    • 对于耗时的API调用,考虑使用异步处理方式
    • 提高系统的响应速度和并发处理能力
  3. 监控和告警

    • 实现对1688授权状态和API调用的监控
    • 当授权过期或API调用失败时及时告警

8. 总结

1688绑定模块是Wimoor系统中实现与1688平台对接的重要功能模块,通过OAuth2协议实现了账号授权和数据获取。模块采用前后端分离架构,前端使用Vue 3实现用户界面,后端使用Spring Boot实现业务逻辑,通过聚石塔服务与1688开放平台进行通信。

模块的核心功能包括账号绑定、授权管理、令牌管理、账号列表展示和账号管理等。通过这些功能,用户可以方便地绑定和管理1688账号,实现与1688平台的无缝对接,为后续的采购操作和物流信息查询提供了基础。

在技术实现上,模块解决了OAuth2授权流程、令牌生命周期管理、多账号管理等技术难点,为系统的稳定运行提供了保障。同时,通过代码优化建议的实施,可以进一步提高模块的性能、安全性和可维护性。


版本号 #1
由 Admin 创建于 2026-01-30 18:50:02 CST
由 Admin 更新于 2026-01-30 18:50:19 CST