Files
data-engine/.codebuddy/memory/2026-06-01.md

54 lines
2.9 KiB
Markdown
Raw Normal View History

2026-06-01 14:08:17 +08:00
# 2026-06-01 工作记录
## 快手代发订单详情新增
- 新增 `open.dropshipping.order.merchant.detail``seed_data_kuaishou.sql`
- 第19个接口POST、prefetch 自 dropshipping_order_list、single_record
## 快手接口全面审查
发现 prefetch 相关7个接口存在3个严重Bug
1. Prefetch 阶段业务参数未包入 param JSONbody_wrapper_field 未生效)
2. Prefetch 阶段 `parseResp(nil config)` 无法解析 data.items/data.cpsOrderList 等路径
3. Prefetch 循环未处理游标分页(固定页码递增)
## Bug 修复dynamic_sync.go
1. `syncWithPrefetch` 改用 `buildReqBody(prefetchIface)` 构建请求body_wrapper_field 正确包装
2. 改用 `parseRespExt(resp.Body, prefetchIface.ResponseConfig)` 解析响应
3. 支持游标分页的 prefetch 循环cursor/pcursor
4. `buildPrefetchParams` 增加过滤 body_wrapper_field/exclude_from_wrapper/cursor_pagination/time_field_mode
5. 新增 `collectPrefetchEntities` 辅助函数
6. 修复并发阶段 `inQuery` 变量缺失的问题
## 同步调度并发锁修复
1. `SyncByConfig` 新增 `syncRunningMap` 内存锁sync.Map.LoadOrStore防止同一接口并发执行
2. 调度器从 `time.NewTicker` 改为 `for { run(); time.Sleep(interval) }`,前一次完成后才开始计时
## MEMORY.md 更新
- response_config 增加 `single_record` 字段说明
- prefetch 流程补充游标分页、参数构建、响应解析的详细说明
- 新增「并发保护」章节,记录内存锁和调度器时序
- 调度器章节补充 for+sleep 模式说明
2026-06-11 13:06:54 +08:00
## 钉钉平台新增
- 创建 `seed_data_dingtalk.sql`:钉钉开放平台 + 部门列表接口
- auth_type: OAUTH2access_token 在 URL 查询参数中
- 部门列表POST + parameters_location=query + recursive 递归遍历,响应 `result` 为数组
- 表名:`dingtalk_department`冲突键dept_id
## 递归遍历支持
- 新增 `RecursiveConfig` + `parseRecursiveConfig` + `syncRecursive` 函数
- `syncRecursive`BFS 队列遍历,先查根级 → 对每个子部门递归查下级,防重复 + 最大深度限制
- `buildReqBody` / `buildPrefetchParams` 增加过滤 `recursive` / `max_recursive_depth`
## 钉钉智能人事平台
- 新建 `seed_data_dingtalk_hrm.sql`:钉钉智能人事专用平台
- auth_type: OAUTH2 + Header 认证(`x-acs-dingtalk-access-token`),独立于 oapi 平台
- 企业职位列表 `position_list`POST + cursor 分页 + hasMoreAPI base `api.dingtalk.com`
## 钉钉角色列表 + 引擎增强
- `parseRespExt` 增加 `has_more_field` 支持 + 数字游标(float64→string)
- `syncWithPrefetch` 支持递归预取来源BFS
- `buildReqBody` 增加 `pagination_mode: "offset"` 支持(计算 offset = (page-1)*pageSize
- `syncSingleAPI` 增加 hasMore 驱动的分页循环(钉钉 offset/size + hasMore
- 新增 `hasMoreCheck` 辅助函数
- 新增 `seed_data_dingtalk.sql` 角色列表接口:偏移分页 + hasMore