shop-wx/doc/code/移植总结.md

8.0 KiB
Raw Blame History

Doc/Code API 移植总结报告

📊 移植概览

移植日期: 2025-10-30 源目录: doc/code/ 目标目录: src/api/ 总模块数: 6 个 总文件数: 13 个 总 API 函数数: 44 个

📁 目录结构对比

移植前 (doc/code/)

doc/code/
├── ab98/
│   ├── type.ts
│   └── index.ts
├── approval/
│   ├── type.ts
│   └── index.ts
├── cabinet/
│   ├── type.ts
│   └── index.ts
├── manage/
│   └── goods.ts
├── shop/
│   ├── type.ts
│   └── index.ts
├── users/
│   ├── type.ts
│   └── index.ts
└── type.ts

移植后 (src/api/)

src/api/
├── index.ts                  # 基础类型定义(新增)
├── ab98/
│   ├── types.ts             # 类型定义
│   └── index.ts             # API 函数
├── approval/
│   ├── types.ts             # 类型定义
│   └── index.ts             # API 函数
├── cabinet/
│   ├── types.ts             # 类型定义
│   └── index.ts             # API 函数
├── manage/goods/
│   ├── types.ts             # 类型定义
│   └── index.ts             # API 函数
├── shop/
│   ├── types.ts             # 类型定义
│   ├── index.ts             # API 函数
│   └── README.md            # 使用说明
└── users/
    ├── types.ts             # 类型定义
    └── index.ts             # API 函数

🔄 主要变更

1. HTTP 请求方式适配

变更项 移植前 移植后
请求库 @/http/axios @/http/http
GET 请求 request({ url, method: 'get', params }) http.get(url, params)
POST 请求 request({ url, method: 'post', data }) http.post(url, data)
PUT 请求 request({ url, method: 'put', data }) http.put(url, data)
DELETE 请求 request({ url, method: 'delete', params }) http.delete(url, params)

2. 类型定义适配

类型 移植前 移植后
响应泛型 ApiResponseData<T> / ApiResponseMsgData<T> / ApiResponsePageData<T> ApiResult<T>
分页数据 PageDTO<T> 保持不变
基础查询 BasePageQuery 保持不变
响应包装 ResponseData<T> 保持不变

3. 返回数据处理

移植前:

export function getTokenApi(appName: string) {
  return request<ApiResponseData<TokenResponse>>({
    url: '/wx/login/getToken',
    method: 'get',
    params: { appName }
  })
}

移植后:

export async function getTokenApi(appName: string) {
  const res: any = await http.get<ApiResult<TokenResponse>>("/wx/login/getToken", { appName });
  if (res.data.state === 'ok') {
    return res.data.data;
  }
  return Promise.reject(new Error(res.data.message));
}

4. 函数声明变更

  • 所有 API 函数改为 async 函数
  • 添加返回数据状态判断
  • 统一错误处理方式

📋 各模块详情

1. ab98 模块

位置: src/api/ab98/ API 函数数量: 8 个 功能: 用户登录、令牌管理、短信验证

API 函数 描述
getTokenApi 获取临时令牌
getWechatQrCodeApi 获取微信登录二维码
sendSmsApi 发送短信验证码
verifySmsApi 验证短信验证码
logoutApi 用户退出登录
tokenLogin ab98Token登录
bindQyUserApi 绑定企业微信用户

2. approval 模块

位置: src/api/approval/ API 函数数量: 10 个 功能: 审批流程管理

API 函数 描述
getApprovalListApi 获取审批列表
getApprovalAssetListApi 获取固资通审批列表
checkApprovalCodeApi 校验审批码
submitApprovalApi 提交审批申请
handleApprovalApi 处理审批
handleApprovalAssetApi 处理固资通审批
allocateApprovalGoods 分配审批商品
getApprovalOrderGoodsApi 获取审批订单商品
getApprovalGoodsCellApi 获取审批商品格口
getApprovalDetailAssetApi 获取固资通审批详情
openCabinetApi 打开储物柜

3. cabinet 模块

位置: src/api/cabinet/ API 函数数量: 7 个 功能: 智能柜管理

API 函数 描述
getCabinetDetailApi 获取智能柜详情
getRentingCabinetDetailApi 获取出租中的智能柜详情
getUserRentedCabinetListApi 获取用户租用的智能柜列表
openCabinet 打开智能柜
configureGoodsCellsStock 配置商品格口库存
changeGoodsCellsStock 修改商品格口库存
clearGoodsCells 清空商品格口

4. manage/goods 模块

位置: src/api/manage/goods/ API 函数数量: 6 个 功能: 商品管理

API 函数 描述
getGoodsList 获取商品列表
addGoods 新增商品
deleteGoods 删除商品
updateGoods 修改商品
getGoodsInfo 获取单个商品信息

5. shop 模块

位置: src/api/shop/ API 函数数量: 12 个 功能: 商城功能

API 函数 描述
getShopGoodsListApi 获取商品列表
getShopGoodsApi 获取商品详情
submitOrderApi 提交订单
getOpenIdApi 获取微信openid
qyLogin 企业微信登录
fakeQyLoginApi 模拟企业微信登录
getOrdersByOpenIdApi 根据openid获取订单
getOrdersByQyUserIdApi 根据企业微信用户ID获取订单
openCabinetApi 打开储物柜
getBalanceApi 获取用户余额openid
getBalanceByQyUserid 获取用户余额userid
getShopListApi 获取商店列表

6. users 模块

位置: src/api/users/ API 函数数量: 1 个 功能: 用户管理

API 函数 描述
getCurrentUserApi 获取当前登录用户详情

📈 统计信息

类别 数量
总模块数 6
总类型文件数 6
总 API 文件数 6
总 API 函数数 44
新增文档数 2

验证清单

  • 所有模块目录创建完成
  • 所有类型定义文件移植完成
  • 所有 API 函数移植完成
  • HTTP 请求方式适配完成
  • 返回数据处理逻辑添加完成
  • 基础类型定义文件创建完成
  • shop 模块文档创建完成
  • 移植总结文档创建完成

🎯 使用示例

导入方式

// 导入整个模块
import { getTokenApi } from '@/api/ab98';
import { getApprovalListApi } from '@/api/approval';
import { getCabinetDetailApi } from '@/api/cabinet';
import { getGoodsList } from '@/api/manage/goods';
import { getShopGoodsListApi } from '@/api/shop';
import { getCurrentUserApi } from '@/api/users';

调用方式

// async 函数中调用
try {
  const token = await getTokenApi('appName');
  console.log('令牌:', token);

  const approvals = await getApprovalListApi({ pageNum: 1, pageSize: 10 });
  console.log('审批列表:', approvals);

  const cabinet = await getCabinetDetailApi(shopId);
  console.log('智能柜详情:', cabinet);
} catch (error) {
  console.error('API 调用失败:', error.message);
}

📝 注意事项

  1. 异步处理: 所有 API 函数现在都是 async 函数,需要使用 await 调用
  2. 错误处理: 需要自行处理错误,建议使用 try-catch 包裹
  3. 返回数据: 成功后返回实际数据,失败时抛出 Error
  4. 类型安全: 所有类型定义已适配,可享受完整的 TypeScript 类型检查
  5. 跨模块引用: 如 ab98UserDTO 等共享类型已从 shop 模块导入

🔗 相关文档


移植完成时间: 2025-10-30 负责人: Claude Code 状态: 完成