From 80f605877f267e6fc63966f43731a4626f9f4dd4 Mon Sep 17 00:00:00 2001 From: danial Date: Fri, 21 Nov 2025 15:04:55 +0800 Subject: [PATCH] =?UTF-8?q?docs(camel=5Foil):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=AA=86=E9=A9=BC=E5=8A=A0=E6=B2=B9=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加骆驼加油API端点设计及系统架构文档 - 新增定时任务模块详细说明及任务流程图 - 完成订单管理服务功能及架构介绍 - 增加账号管理模块设计与状态机说明 - 集成Pig接码平台文档,介绍验证码检测流程 - 详细列出各组件的依赖关系及性能优化措施 - 提供故障排除指南及系统扩展性总结 --- .../zh/content/Camel Oil Api Endpoints.md | 210 +++++++++++ .../zh/content/Camel Oil Cron Jobs.md | 320 ++++++++++++++++ .../zh/content/Camel Oil Order Management.md | 172 +++++++++ .../外部集成/Camel Oil Account Management.md | 216 +++++++++++ .../zh/content/外部集成/Pig Integration.md | 211 +++++++++++ .../Camel Oil Database Schema.md | 346 ++++++++++++++++++ .../content/项目概述/Graceful Shutdown Fix.md | 203 ++++++++++ .../zh/content/{ => 项目概述}/项目概述.md | 0 .../repowiki/zh/meta/repowiki-metadata.json | 2 +- .../logic/card_apple_order/push_redeem.go | 228 +++++++++++- utility/integration/apple/consts.go | 158 ++++++++ utility/integration/apple/models.go | 20 +- 12 files changed, 2062 insertions(+), 24 deletions(-) create mode 100644 .qoder/repowiki/zh/content/Camel Oil Api Endpoints.md create mode 100644 .qoder/repowiki/zh/content/Camel Oil Cron Jobs.md create mode 100644 .qoder/repowiki/zh/content/Camel Oil Order Management.md create mode 100644 .qoder/repowiki/zh/content/外部集成/Camel Oil Account Management.md create mode 100644 .qoder/repowiki/zh/content/外部集成/Pig Integration.md create mode 100644 .qoder/repowiki/zh/content/数据模型与ORM映射/Camel Oil Database Schema.md create mode 100644 .qoder/repowiki/zh/content/项目概述/Graceful Shutdown Fix.md rename .qoder/repowiki/zh/content/{ => 项目概述}/项目概述.md (100%) create mode 100644 utility/integration/apple/consts.go diff --git a/.qoder/repowiki/zh/content/Camel Oil Api Endpoints.md b/.qoder/repowiki/zh/content/Camel Oil Api Endpoints.md new file mode 100644 index 00000000..412c0293 --- /dev/null +++ b/.qoder/repowiki/zh/content/Camel Oil Api Endpoints.md @@ -0,0 +1,210 @@ +# 骆驼加油API端点 + + +**本文档中引用的文件** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [account.go](file://api/camel_oil/v1/account.go) +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil.go](file://internal/service/camel_oil.go) +- [v_1_camel_oil_account.go](file://internal/dao/internal/v_1_camel_oil_account.go) + + +## 目录 +1. [简介](#简介) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概述](#架构概述) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) + +## 简介 +本文档详细描述了骆驼加油(Camel Oil)API模块的端点设计、功能实现和系统架构。该模块主要服务于JD V2平台的账号与订单管理,提供完整的账号生命周期管理和订单处理能力。API设计遵循GoFrame框架规范,采用分层架构实现高内聚低耦合。 + +## 项目结构 +骆驼加油模块位于`api/camel_oil`目录下,采用版本化API设计,包含v1版本的账号和订单管理接口。控制器位于`internal/controller/camel_oil`目录,服务层位于`internal/service`,数据访问层由GoFrame自动生成。 + +```mermaid +graph TB +subgraph "API层" +A[api/camel_oil] +A1[v1/account.go] +A2[v1/order.go] +A3[camel_oil.go] +end +subgraph "控制层" +B[internal/controller/camel_oil] +B1[camel_oil_v1_list_account.go] +B2[camel_oil_v1_submit_order.go] +end +subgraph "服务层" +C[internal/service] +C1[camel_oil.go] +end +subgraph "数据层" +D[internal/dao/internal] +D1[v_1_camel_oil_account.go] +end +A --> B +B --> C +C --> D +``` + +**Diagram sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) +- [camel_oil.go](file://internal/service/camel_oil.go) +- [v_1_camel_oil_account.go](file://internal/dao/internal/v_1_camel_oil_account.go) + +**Section sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) + +## 核心组件 +骆驼加油模块的核心组件包括账号管理、订单处理和状态监控三大功能模块。通过`ICamelOilV1`接口定义了11个API端点,涵盖账号列表查询、状态检测、订单提交、订单查询等关键业务功能。服务层`ICamelOil`接口提供了50多个方法,支持完整的业务逻辑处理。 + +**Section sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 架构概述 +系统采用典型的分层架构设计,从上至下分为API层、控制层、服务层和数据访问层。API层定义接口契约,控制层处理HTTP请求转发,服务层实现核心业务逻辑,数据访问层负责数据库操作。各层之间通过接口解耦,确保系统的可维护性和可扩展性。 + +```mermaid +graph TD +Client[客户端] --> API[API层] +API --> Controller[控制层] +Controller --> Service[服务层] +Service --> DAO[数据访问层] +DAO --> DB[(数据库)] +style Client fill:#f9f,stroke:#333 +style API fill:#bbf,stroke:#333 +style Controller fill:#f96,stroke:#333 +style Service fill:#6f9,stroke:#333 +style DAO fill:#69f,stroke:#333 +style DB fill:#9f9,stroke:#333 +``` + +**Diagram sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 详细组件分析 +### 账号管理组件分析 +账号管理组件提供完整的账号生命周期管理功能,包括账号列表查询、状态检测、历史记录查询和统计信息获取。通过`ListAccountReq`请求结构体定义了分页查询参数,支持状态筛选和关键词搜索。 + +#### 对象导向组件: +```mermaid +classDiagram +class ListAccountReq { ++path : /jd-v2/account/list ++tags : JD V2 Account ++method : get ++summary : 账号列表 ++CommonPageReq ++Status : CamelOilAccountStatus ++Keyword : string +} +class AccountListItem { ++AccountId : int64 ++AccountName : string ++Phone : string ++Status : CamelOilAccountStatus ++StatusText : string ++DailyOrderCount : int ++DailyOrderDate : string ++TotalOrderCount : int ++LastUsedAt : gtime.Time ++LastLoginAt : gtime.Time ++TokenExpireAt : gtime.Time ++RemainingOrders : int ++FailureReason : string ++Remark : string ++CreatedAt : gtime.Time ++UpdatedAt : gtime.Time +} +class ListAccountRes { ++CommonPageRes~AccountListItem~ +} +ListAccountReq --> ListAccountRes : "返回" +AccountListItem --> ListAccountRes : "包含" +``` + +**Diagram sources** +- [account.go](file://api/camel_oil/v1/account.go) + +**Section sources** +- [account.go](file://api/camel_oil/v1/account.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) + +### 订单处理组件分析 +订单处理组件负责订单的全生命周期管理,包括订单提交、列表查询、详情获取、历史记录和手动回调。通过`SubmitOrderReq`定义了订单提交的必要参数,包括金额、商户订单号和附加信息。 + +#### API/服务组件: +```mermaid +sequenceDiagram +participant Client as "客户端" +participant API as "API网关" +participant Controller as "ControllerV1" +participant Service as "CamelOil服务" +Client->>API : POST /jd-v2/order/submit +API->>Controller : 转发SubmitOrder请求 +Controller->>Service : 调用SubmitOrder方法 +Service-->>Controller : 返回SubmitOrderRes +Controller-->>API : 返回响应 +API-->>Client : 返回订单号和支付链接 +Note over Client,Service : 提交订单流程 +``` + +**Diagram sources** +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +**Section sources** +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +## 依赖分析 +骆驼加油模块依赖多个核心组件,包括公共API模块、常量定义、GoFrame框架等。通过接口注入方式实现服务层的依赖管理,确保各组件之间的松耦合。数据库依赖通过GoFrame的DAO模式实现,自动生成数据访问代码。 + +```mermaid +graph LR +CamelOil[骆驼加油模块] --> CommonApi[commonApi] +CamelOil --> Consts[consts] +CamelOil --> GoFrame[github.com/gogf/gf/v2] +CamelOil --> Service[service] +Service --> DAO[dao] +DAO --> Database[(数据库)] +style CamelOil fill:#f96,stroke:#333 +style CommonApi fill:#69f,stroke:#333 +style Consts fill:#69f,stroke:#333 +style GoFrame fill:#69f,stroke:#333 +style Service fill:#6f9,stroke:#333 +style DAO fill:#69f,stroke:#333 +``` + +**Diagram sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +**Section sources** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 性能考虑 +系统在设计时充分考虑了性能因素,采用分页查询避免大数据量加载,通过缓存机制减少数据库访问。账号选择策略采用轮询方式,确保负载均衡。定时任务用于处理订单支付状态检测和账号日重置,避免实时处理带来的性能压力。 + +## 故障排除指南 +当遇到API调用失败时,首先检查请求参数是否符合验证规则。对于未实现的接口(如CheckAccount),需要查看控制器实现状态。数据库相关问题可通过检查DAO层代码和数据库表结构来定位。系统提供了详细的错误码机制,便于快速定位问题根源。 + +**Section sources** +- [camel_oil_v1_check_account.go](file://internal/controller/camel_oil/camel_oil_v1_check_account.go) +- [camel_oil_v1_account_history.go](file://internal/controller/camel_oil/camel_oil_v1_account_history.go) + +## 结论 +骆驼加油API模块提供了完整的JD V2平台账号和订单管理功能,采用分层架构设计确保代码的可维护性。通过接口定义和依赖注入实现组件解耦,支持系统的灵活扩展。建议完善未实现的接口功能,并加强错误处理和日志记录,进一步提升系统的稳定性和可观察性。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/Camel Oil Cron Jobs.md b/.qoder/repowiki/zh/content/Camel Oil Cron Jobs.md new file mode 100644 index 00000000..ea6099c8 --- /dev/null +++ b/.qoder/repowiki/zh/content/Camel Oil Cron Jobs.md @@ -0,0 +1,320 @@ +# 骆驼加油定时任务 + + +**本文档引用的文件** +- [main.go](file://main.go) +- [cron.go](file://utility/cron/cron.go) +- [camel_oil.go](file://internal/service/camel_oil.go) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go) +- [camel_oil.go](file://internal/consts/camel_oil.go) +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) + + +## 目录 +1. [项目结构](#项目结构) +2. [核心组件](#核心组件) +3. [骆驼加油模块定时任务](#骆驼加油模块定时任务) +4. [定时任务注册机制](#定时任务注册机制) +5. [数据库设计](#数据库设计) +6. [状态管理与枚举](#状态管理与枚举) +7. [业务逻辑分析](#业务逻辑分析) + +## 项目结构 + +```mermaid +graph TD +A[kami_backend] --> B[api] +A --> C[internal] +A --> D[utility] +A --> E[sql] +B --> B1[camel_oil] +B1 --> B11[v1] +B11 --> B111[account.go] +B11 --> B112[order.go] +C --> C1[controller] +C1 --> C11[camel_oil] +C11 --> C111[camel_oil_v1_submit_order.go] +C11 --> C112[camel_oil_v1_order_callback.go] +C --> C2[logic] +C2 --> C21[camel_oil] +C21 --> C211[cron_tasks.go] +C21 --> C212[account_login.go] +C21 --> C213[order.go] +C --> C3[service] +C3 --> C31[camel_oil.go] +C --> C4[consts] +C4 --> C41[camel_oil.go] +C --> C5[dao] +C5 --> C51[v_1_camel_oil_account.go] +C5 --> C52[v_1_camel_oil_order.go] +D --> D1[cron] +D1 --> D11[cron.go] +E --> E1[camel_oil_tables.sql] +``` + +**Diagram sources** +- [main.go](file://main.go#L1-L56) +- [utility/cron/cron.go](file://utility/cron/cron.go#L1-L96) + +**Section sources** +- [main.go](file://main.go#L1-L56) +- [utility/cron/cron.go](file://utility/cron/cron.go#L1-L96) + +## 核心组件 + +骆驼加油模块的核心组件包括定时任务调度器、服务接口、业务逻辑处理和数据库访问层。这些组件协同工作,实现了账号管理、订单处理和状态监控等功能。 + +**Section sources** +- [internal/service/camel_oil.go](file://internal/service/camel_oil.go#L1-L102) +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L1-L242) + +## 骆驼加油模块定时任务 + +```mermaid +graph TD +A[定时任务调度] --> B[账号登录任务] +A --> C[验证码检测任务] +A --> D[订单支付状态检测任务] +A --> E[账号日重置任务] +B --> B1[每5分钟执行] +B1 --> B2[检查可用订单容量] +B2 --> B3[容量≤50时触发登录] +C --> C1[每5秒执行] +C1 --> C2[查询待验证码账号] +C2 --> C3[从野猪平台检测验证码] +C3 --> C4[调用骆驼加油平台登录] +D --> D1[每10秒执行] +D1 --> D2[查询待支付订单] +D2 --> D3[检测支付状态] +D3 --> D4[更新订单状态] +E --> E1[每日00:00执行] +E1 --> E2[重置在线账号日订单数] +E2 --> E3[处理暂停账号] +E3 --> E4[恢复或标记失效] +``` + +**Diagram sources** +- [utility/cron/cron.go](file://utility/cron/cron.go#L74-L95) +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L19-L241) + +**Section sources** +- [utility/cron/cron.go](file://utility/cron/cron.go#L74-L95) +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L19-L241) + +## 定时任务注册机制 + +```mermaid +sequenceDiagram +participant Main as main.go +participant Cron as cron.go +participant Service as camel_oil.go +participant Logic as cron_tasks.go +Main->>Cron : main()启动 +Cron->>Cron : Register(ctx) +Cron->>Cron : registerCamelOilTasks(ctx) +Cron->>Service : 调用CronAccountLoginTask() +Service->>Logic : 执行具体逻辑 +Logic->>Logic : 检查容量并触发登录 +Cron->>Service : 调用CronVerifyCodeCheckTask() +Service->>Logic : 执行验证码检测 +Cron->>Service : 调用CronOrderPaymentCheckTask() +Service->>Logic : 检测订单支付状态 +Cron->>Service : 调用CronAccountDailyResetTask() +Service->>Logic : 执行日重置任务 +``` + +**Diagram sources** +- [main.go](file://main.go#L24-L54) +- [utility/cron/cron.go](file://utility/cron/cron.go#L14-L95) +- [internal/service/camel_oil.go](file://internal/service/camel_oil.go#L63-L68) +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L19-L241) + +**Section sources** +- [main.go](file://main.go#L24-L54) +- [utility/cron/cron.go](file://utility/cron/cron.go#L14-L95) + +## 数据库设计 + +```mermaid +erDiagram +camel_oil_account { +bigint id PK +varchar(128) account_name +varchar(20) phone UK +text token +tinyint status +datetime token_expire_at +datetime last_login_at +datetime last_used_at +int daily_order_count +date daily_order_date +int total_order_count +text failure_reason +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +camel_oil_order { +bigint id PK +varchar(64) order_no UK +varchar(128) merchant_order_id +bigint account_id FK +varchar(128) account_name +varchar(128) platform_order_no +decimal(10,2) amount +text alipay_url +tinyint status +tinyint pay_status +tinyint notify_status +int notify_count +datetime last_check_at +datetime paid_at +text attach +text failure_reason +datetime created_at +datetime updated_at +datetime deleted_at +} +camel_oil_account_history { +bigint id PK +varchar(36) history_uuid UK +bigint account_id FK +varchar(32) change_type +tinyint status_before +tinyint status_after +int failure_count +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +camel_oil_order_history { +bigint id PK +varchar(36) history_uuid UK +varchar(64) order_no FK +varchar(32) change_type +bigint account_id FK +varchar(128) account_name +text raw_data +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +camel_oil_account ||--o{ camel_oil_order : "1:N" +camel_oil_account ||--o{ camel_oil_account_history : "1:N" +camel_oil_order ||--o{ camel_oil_order_history : "1:N" +``` + +**Diagram sources** +- [sql/camel_oil_tables.sql](file://sql/camel_oil_tables.sql#L1-L119) +- [internal/consts/camel_oil.go](file://internal/consts/camel_oil.go#L7-L229) + +**Section sources** +- [sql/camel_oil_tables.sql](file://sql/camel_oil_tables.sql#L1-L119) + +## 状态管理与枚举 + +```mermaid +classDiagram +class CamelOilAccountStatus { ++Pending : 0 ++SendCode : 1 ++Online : 2 ++Paused : 3 ++Invalid : 4 +} +class CamelOilOrderStatus { ++Pending : 0 ++Processing : 1 ++Completed : 2 ++Failed : 3 +} +class CamelOilPayStatus { ++Unpaid : 0 ++Paid : 1 ++Refunded : 2 ++Timeout : 3 +} +class CamelOilNotifyStatus { ++Pending : 0 ++Success : 1 ++Failed : 2 +} +class CamelOilAccountChangeType { ++Create ++Login ++Offline ++LoginFail ++Pause ++Resume ++Invalidate ++OrderBind ++OrderComplete ++Update ++Delete +} +class CamelOilOrderChangeType { ++Create ++Submit ++GetPayUrl ++CheckPay ++Paid ++Timeout ++Fail ++CallbackSuccess ++CallbackFail +} +``` + +**Diagram sources** +- [internal/consts/camel_oil.go](file://internal/consts/camel_oil.go#L7-L183) + +**Section sources** +- [internal/consts/camel_oil.go](file://internal/consts/camel_oil.go#L7-L183) + +## 业务逻辑分析 + +```mermaid +flowchart TD +A[开始] --> B{检查可用订单容量} +B --> |≤50| C[触发账号登录任务] +B --> |>50| D[无需登录] +C --> E[从野猪平台获取手机号] +E --> F[创建账号记录] +F --> G[调用骆驼加油平台发送验证码] +G --> H{发送成功?} +H --> |是| I[更新状态为发送验证码] +H --> |否| J[标记账号失效] +I --> K[验证码检测任务] +K --> L{收到验证码?} +L --> |是| M[调用骆驼加油平台登录] +L --> |否| N[继续等待] +M --> O{登录成功?} +O --> |是| P[保存Token,更新状态为在线] +O --> |否| Q[标记账号登录失败] +P --> R[账号可用于下单] +Q --> S[标记账号失效] +T[订单支付状态检测] --> U[查询待支付订单] +U --> V{存在订单?} +V --> |是| W[检测支付状态] +W --> X{已支付?} +X --> |是| Y[更新订单为已支付] +X --> |否| Z{超1小时?} +Z --> |是| AA[标记支付超时] +Z --> |否| AB[继续等待] +Y --> AC[完成] +AA --> AC +AB --> AC +``` + +**Diagram sources** +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L19-L241) +- [internal/logic/camel_oil/account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [internal/logic/camel_oil/order.go](file://internal/logic/camel_oil/order.go#L1-L165) + +**Section sources** +- [internal/logic/camel_oil/cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L19-L241) +- [internal/logic/camel_oil/account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [internal/logic/camel_oil/order.go](file://internal/logic/camel_oil/order.go#L1-L165) \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/Camel Oil Order Management.md b/.qoder/repowiki/zh/content/Camel Oil Order Management.md new file mode 100644 index 00000000..fb206388 --- /dev/null +++ b/.qoder/repowiki/zh/content/Camel Oil Order Management.md @@ -0,0 +1,172 @@ +# 骆驼油订单管理 + + +**本文档引用文件** +- [main.go](file://main.go) +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [order.go](file://api/camel_oil/v1/order.go) +- [account.go](file://api/camel_oil/v1/account.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil_v1_list_order.go](file://internal/controller/camel_oil/camel_oil_v1_list_order.go) +- [camel_oil_v1_order_detail.go](file://internal/controller/camel_oil/camel_oil_v1_order_detail.go) +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) +- [camel_oil.go](file://internal/service/camel_oil.go) +- [camel_oil.go](file://internal/consts/camel_oil.go) + + +## 目录 +1. [简介](#简介) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概览](#架构概览) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) + +## 简介 +本系统为骆驼油平台的订单管理服务,提供账号管理、订单提交、状态查询、回调处理等核心功能。系统基于GoFrame框架构建,采用分层架构设计,支持高并发订单处理与自动化任务调度。 + +## 项目结构 +骆驼油订单管理模块位于`api/camel_oil`目录下,包含v1版本API定义,控制器位于`internal/controller/camel_oil`,服务接口定义在`internal/service/camel_oil.go`,相关常量定义于`internal/consts/camel_oil.go`。系统通过API层、控制器层、服务层三层架构实现功能解耦。 + +```mermaid +graph TD +A[API层] --> B[控制器层] +B --> C[服务层] +C --> D[数据访问层] +A --> |HTTP请求| B +B --> |调用| C +C --> |操作| D +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/controller/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +**章节来源** +- [main.go](file://main.go#L24-L54) + +## 核心组件 +系统核心组件包括订单管理、账号管理、支付回调、状态查询等功能。通过`ICamelOil`接口定义了完整的业务能力,包括订单提交、列表查询、详情获取、回调触发等操作。服务层实现具体业务逻辑,控制器层负责请求转发。 + +**章节来源** +- [camel_oil.go](file://internal/service/camel_oil.go#L15-L85) +- [order.go](file://api/camel_oil/v1/order.go#L11-L164) + +## 架构概览 +系统采用典型的分层架构模式,从上至下分为API接口层、控制器层、服务层和数据访问层。API层定义RESTful接口规范,控制器层处理HTTP请求并调用服务层,服务层封装核心业务逻辑,数据层负责持久化操作。 + +```mermaid +graph TB +subgraph "API层" +A[SubmitOrder] +B[ListOrder] +C[OrderDetail] +D[OrderCallback] +end +subgraph "控制器层" +E[camel_oil_v1_submit_order] +F[camel_oil_v1_list_order] +G[camel_oil_v1_order_detail] +H[camel_oil_v1_order_callback] +end +subgraph "服务层" +I[SubmitOrder] +J[ListOrder] +K[OrderDetail] +L[TriggerOrderCallback] +end +A --> E +B --> F +C --> G +D --> H +E --> I +F --> J +G --> K +H --> L +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil_v1_list_order.go](file://internal/controller/camel_oil/camel_oil_v1_list_order.go) +- [camel_oil_v1_order_detail.go](file://internal/controller/camel_oil/camel_oil_v1_order_detail.go) +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) + +## 详细组件分析 + +### 订单管理组件分析 +订单管理组件提供完整的订单生命周期管理功能,包括创建、查询、状态更新和回调处理。系统通过`SubmitOrderReq`结构体定义订单提交参数,包含金额、商户订单号等必要字段。 + +#### 订单提交流程 +```mermaid +sequenceDiagram +participant 客户端 +participant API +participant 控制器 +participant 服务层 +客户端->>API : POST /jd-v2/order/submit +API->>控制器 : 转发请求 +控制器->>服务层 : 调用SubmitOrder +服务层-->>控制器 : 返回订单信息 +控制器-->>API : 返回响应 +API-->>客户端 : 返回订单号和支付链接 +``` + +**图示来源** +- [order.go](file://api/camel_oil/v1/order.go#L11-L24) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +#### 订单查询功能 +系统提供多种订单查询接口,支持按订单号、商户订单号、账号ID、状态等条件进行筛选。`ListOrderReq`结构体定义了分页查询参数和过滤条件。 + +**章节来源** +- [order.go](file://api/camel_oil/v1/order.go#L26-L61) +- [camel_oil_v1_list_order.go](file://internal/controller/camel_oil/camel_oil_v1_list_order.go) + +### 账号管理组件分析 +账号管理组件负责维护骆驼油平台账号的状态和使用情况,包括账号创建、状态更新、历史记录等功能。 + +#### 账号状态管理 +系统定义了完整的账号状态机,通过`CamelOilAccountStatus`常量管理账号生命周期。每个状态变更都会记录到历史表中,便于追踪和审计。 + +**章节来源** +- [account.go](file://api/camel_oil/v1/account.go#L11-L40) +- [camel_oil.go](file://internal/consts/camel_oil.go) + +## 依赖分析 +系统主要依赖GoFrame框架提供的基础能力,包括路由、数据库访问、日志记录等。通过`main.go`中的import语句引入必要模块,服务注册机制确保各组件正确初始化。 + +```mermaid +graph LR +A[骆驼油服务] --> B[GoFrame框架] +A --> C[MySQL数据库] +A --> D[Redis缓存] +A --> E[OpenTelemetry] +B --> F[路由系统] +B --> G[日志系统] +B --> H[配置管理] +``` + +**图示来源** +- [main.go](file://main.go#L3-L17) +- [go.mod](file://go.mod) + +**章节来源** +- [main.go](file://main.go#L1-L56) + +## 性能考虑 +系统设计考虑了高并发场景下的性能表现,通过连接池、缓存机制、异步处理等方式提升响应速度。定时任务如`CronOrderPaymentCheckTask`定期检查订单支付状态,避免实时查询带来的性能压力。 + +## 故障排除指南 +常见问题包括订单提交失败、支付状态不更新、账号登录异常等。建议检查服务日志、数据库连接状态、第三方接口可用性。通过`OrderHistory`接口可查询订单变更历史,辅助问题定位。 + +**章节来源** +- [order.go](file://api/camel_oil/v1/order.go#L102-L123) +- [camel_oil.go](file://internal/service/camel_oil.go#L75-L78) + +## 结论 +骆驼油订单管理系统提供了完整的订单处理能力,架构清晰,功能完备。通过分层设计实现了良好的可维护性和扩展性,适合处理大规模订单业务场景。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/外部集成/Camel Oil Account Management.md b/.qoder/repowiki/zh/content/外部集成/Camel Oil Account Management.md new file mode 100644 index 00000000..e02a50b7 --- /dev/null +++ b/.qoder/repowiki/zh/content/外部集成/Camel Oil Account Management.md @@ -0,0 +1,216 @@ +# 骆驼加油账号管理 + + +**本文档引用的文件** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [account.go](file://api/camel_oil/v1/account.go) +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_new.go](file://internal/controller/camel_oil/camel_oil_new.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil_v1_list_order.go](file://internal/controller/camel_oil/camel_oil_v1_list_order.go) +- [camel_oil_v1_order_detail.go](file://internal/controller/camel_oil/camel_oil_v1_order_detail.go) +- [camel_oil.go](file://internal/service/camel_oil.go) +- [camel_oil.go](file://internal/consts/camel_oil.go) +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) + + +## 目录 +1. [简介](#简介) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概述](#架构概述) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) + +## 简介 +本系统为骆驼加油平台的账号与订单管理模块,提供完整的账号生命周期管理、订单处理及状态追踪功能。系统通过API接口实现账号查询、状态检测、订单提交与查询等核心业务功能,支持高并发下的稳定运行。 + +## 项目结构 +骆驼加油模块采用分层架构设计,包含API定义、控制器、服务层和数据访问层。主要目录结构如下: +- `api/camel_oil/`:API接口定义 +- `internal/controller/camel_oil/`:控制器层 +- `internal/service/camel_oil.go`:服务层主入口 +- `internal/consts/camel_oil.go`:常量定义 +- `sql/camel_oil_tables.sql`:数据库表结构 + +```mermaid +graph TD +A[API接口] --> B[Controller] +B --> C[Service] +C --> D[DAO] +D --> E[(数据库)] +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_new.go](file://internal/controller/camel_oil/camel_oil_new.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +**本节来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_new.go](file://internal/controller/camel_oil/camel_oil_new.go) + +## 核心组件 +系统核心功能包括账号管理、订单处理两大模块。账号管理支持状态查询、历史记录查看;订单处理支持提交、查询、回调等功能。所有接口均通过统一的服务入口进行调度。 + +**本节来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/consts/camel_oil.go) + +## 架构概述 +系统采用GoFrame框架构建,遵循MVC设计模式。前端请求通过API路由进入Controller层,由Controller调用Service层处理业务逻辑,最终通过DAO层操作数据库。Redis用于分布式锁控制并发访问。 + +```mermaid +graph LR +Client[客户端] --> API[API接口] +API --> Controller[控制器] +Controller --> Service[服务层] +Service --> DAO[数据访问层] +DAO --> DB[(MySQL)] +Service --> Cache[(Redis)] +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_new.go](file://internal/controller/camel_oil/camel_oil_new.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 详细组件分析 + +### 账号管理分析 +账号管理模块提供账号列表查询、状态检测、历史记录等功能。系统通过状态机管理账号生命周期,支持待登录、在线、暂停、失效等多种状态。 + +```mermaid +classDiagram +class AccountListItem { ++int64 AccountId ++string AccountName ++string Phone ++int Status ++string StatusText ++int DailyOrderCount ++string DailyOrderDate ++int TotalOrderCount ++*gtime.Time LastUsedAt ++*gtime.Time LastLoginAt ++*gtime.Time TokenExpireAt ++int RemainingOrders ++string FailureReason ++string Remark ++*gtime.Time CreatedAt ++*gtime.Time UpdatedAt +} +class ListAccountReq { ++CommonPageReq Meta ++int Page ++int Limit ++int Status ++string Keyword +} +class CheckAccountReq { ++CommonMeta Meta ++int64 AccountId +} +ListAccountReq --> AccountListItem : "返回列表" +CheckAccountReq --> AccountListItem : "返回详情" +``` + +**图示来源** +- [account.go](file://api/camel_oil/v1/account.go) + +**本节来源** +- [account.go](file://api/camel_oil/v1/account.go) +- [camel_oil_v1_list_account.go](file://internal/controller/camel_oil/camel_oil_v1_list_account.go) + +### 订单处理分析 +订单处理模块负责订单的创建、查询、状态更新和回调通知。系统通过分布式锁保证订单处理的原子性,防止重复提交。 + +```mermaid +sequenceDiagram +participant Client +participant Controller +participant Service +participant DB +Client->>Controller : SubmitOrder(金额, 商户订单号) +Controller->>Service : 调用SubmitOrder +Service->>DB : 检查可用账号 +DB-->>Service : 返回账号信息 +Service->>Service : 分配账号并创建订单 +Service-->>Controller : 返回订单号和支付链接 +Controller-->>Client : 返回响应 +Note over Client,DB : 订单提交流程 +``` + +**图示来源** +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +**本节来源** +- [order.go](file://api/camel_oil/v1/order.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +### 状态管理分析 +系统定义了完整的状态转换机制,涵盖账号状态、订单状态、支付状态等多个维度。状态变更均记录到历史表中,便于追踪和审计。 + +```mermaid +stateDiagram-v2 +[*] --> 待登录 +待登录 --> 登录中 : 开始登录 +登录中 --> 在线 : 登录成功 +登录中 --> 已失效 : 登录失败 +在线 --> 已暂停 : 达到每日上限 +已暂停 --> 在线 : 每日重置 +在线 --> 已失效 : 长时间未使用 +已失效 --> [*] +``` + +**图示来源** +- [camel_oil.go](file://internal/consts/camel_oil.go) + +**本节来源** +- [camel_oil.go](file://internal/consts/camel_oil.go) + +## 依赖分析 +系统依赖于多个外部组件和内部模块。主要依赖关系如下: + +```mermaid +graph TD +A[骆驼加油API] --> B[用户中心] +A --> C[支付系统] +A --> D[通知服务] +A --> E[Redis缓存] +A --> F[MySQL数据库] +B --> G[认证服务] +C --> H[支付宝网关] +style A fill:#f9f,stroke:#333 +style F fill:#bbf,stroke:#333 +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +**本节来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 性能考虑 +系统在设计时充分考虑了性能因素。通过Redis分布式锁控制并发,避免热点账号的竞争;使用数据库索引优化查询性能;设置合理的超时机制防止资源占用。 + +**本节来源** +- [camel_oil.go](file://internal/consts/camel_oil.go) +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) + +## 故障排除指南 +常见问题包括账号无法登录、订单提交失败等。排查时应首先检查日志中的错误码,根据错误码定位问题根源。对于分布式锁相关问题,需检查Redis连接状态。 + +**本节来源** +- [camel_oil.go](file://internal/consts/camel_oil.go) +- [camel_oil_v1_check_account.go](file://internal/controller/camel_oil/camel_oil_v1_check_account.go) + +## 结论 +骆驼加油账号管理系统实现了完整的账号与订单管理功能,具备良好的扩展性和稳定性。通过合理的设计和优化,能够满足高并发场景下的业务需求。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/外部集成/Pig Integration.md b/.qoder/repowiki/zh/content/外部集成/Pig Integration.md new file mode 100644 index 00000000..ac43019c --- /dev/null +++ b/.qoder/repowiki/zh/content/外部集成/Pig Integration.md @@ -0,0 +1,211 @@ +# Pig Integration + + +**本文档中引用的文件** +- [api.go](file://utility/integration/pig/api.go) +- [api_test.go](file://utility/integration/pig/api_test.go) +- [account_login.go](file://internal/logic/camel_oil/account_login.go) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go) +- [cache.go](file://utility/cache/cache.go) +- [camel_oil_api.go](file://utility/integration/camel_oil_api/api.go) + + +## 目录 +1. [介绍](#介绍) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概述](#架构概述) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) + +## 介绍 +Pig Integration 文档详细介绍了在 kami_backend 项目中集成 Pig 接码平台的实现。该集成主要用于骆驼加油业务场景中的手机号获取和验证码检测。系统通过与 Pig 平台的 API 交互,自动化完成账号注册、验证码接收和登录流程,从而支持批量账号管理和订单处理。 + +## 项目结构 +该项目是一个基于 Go 语言的后端服务,采用模块化设计,主要分为 API 接口层、业务逻辑层、数据访问层和集成服务层。Pig 集成位于 `utility/integration/pig` 目录下,作为独立的集成模块被业务逻辑层调用。 + +```mermaid +graph TD +subgraph "API Layer" +API[api/] +end +subgraph "Business Logic Layer" +Logic[internal/logic/] +end +subgraph "Integration Layer" +Integration[utility/integration/] +Pig[pig/] +CamelOilApi[camel_oil_api/] +KamiGateway[kami_gateway/] +end +subgraph "Data Access Layer" +DAO[internal/dao/] +end +API --> Logic +Logic --> Integration +Integration --> Pig +Integration --> CamelOilApi +Logic --> DAO +``` + +**Diagram sources** +- [project_structure](file://project_structure) + +**Section sources** +- [project_structure](file://project_structure) + +## 核心组件 +Pig 集成的核心组件包括 `InternalClient` 结构体及其方法,如 `NewClient`、`getToken`、`GetAccountInfo` 和 `CheckVerifyCode`。这些组件共同实现了与 Pig 平台的认证、账号信息获取和验证码检测功能。 + +**Section sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) + +## 架构概述 +Pig 集成的架构设计遵循了客户端-服务器模式,其中 `InternalClient` 作为客户端与 Pig 平台的服务器进行 HTTP 通信。该集成通过缓存机制优化了 token 的获取,避免了频繁的认证请求,提高了系统的整体性能。 + +```mermaid +sequenceDiagram +participant Logic as 骆驼油业务逻辑 +participant PigClient as Pig客户端 +participant PigServer as Pig服务器 +Logic->>PigClient : GetAccountInfo() +PigClient->>PigClient : getToken() +PigClient->>PigClient : 检查缓存中的token +alt 缓存命中 +PigClient-->>PigClient : 返回缓存的token +else 缓存未命中 +PigClient->>PigServer : POST /sms/?api=login +PigServer-->>PigClient : 返回token +PigClient->>PigClient : 缓存token +end +PigClient->>PigServer : POST /sms?api=getPhone +PigServer-->>PigClient : 返回手机号 +PigClient-->>Logic : 返回手机号 +``` + +**Diagram sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) + +## 详细组件分析 + +### Pig 客户端分析 +Pig 客户端实现了与 Pig 接码平台的完整交互流程,包括认证、账号信息获取和验证码检测。 + +#### Pig 客户端结构 +```mermaid +classDiagram +class InternalClient { ++Client *gclient.Client ++NewClient() *InternalClient ++getToken(ctx context.Context) (string, error) ++GetAccountInfo(ctx context.Context) (string, error) ++CheckVerifyCode(ctx context.Context, phone string) (code string, received bool, err error) +} +InternalClient --> gclient.Client : "使用" +``` + +**Diagram sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) + +#### 账号登录流程 +```mermaid +flowchart TD +Start([开始登录]) --> GetPhone["获取手机号 (GetAccountInfo)"] +GetPhone --> SendCaptcha["发送验证码"] +SendCaptcha --> WaitCaptcha["等待验证码"] +WaitCaptcha --> CheckCode["检测验证码 (CheckVerifyCode)"] +CheckCode --> CodeReceived{"验证码已接收?"} +CodeReceived --> |否| WaitCaptcha +CodeReceived --> |是| Login["执行登录"] +Login --> End([登录完成]) +``` + +**Diagram sources** +- [account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L1-L242) + +**Section sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) +- [account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) + +### 验证码检测任务分析 +验证码检测任务是骆驼加油业务中的关键定时任务,负责定期检查待验证账号的验证码接收情况,并完成登录流程。 + +#### 验证码检测任务流程 +```mermaid +flowchart TD +Start([开始任务]) --> QueryAccounts["查询待验证码账号"] +QueryAccounts --> Loop{"遍历账号"} +Loop --> GetPhone["获取账号手机号"] +GetPhone --> CheckCode["检测验证码 (CheckVerifyCode)"] +CheckCode --> CodeReceived{"验证码已接收?"} +CodeReceived --> |否| ContinueLoop["继续下一个账号"] +CodeReceived --> |是| ExecuteLogin["执行登录"] +ExecuteLogin --> UpdateStatus["更新账号状态为在线"] +UpdateStatus --> LogSuccess["记录成功日志"] +ContinueLoop --> Loop +Loop --> EndLoop{"遍历完成?"} +EndLoop --> |是| End([任务完成]) +``` + +**Diagram sources** +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L169-L241) + +**Section sources** +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L169-L241) + +## 依赖分析 +Pig 集成依赖于多个内部和外部组件,形成了一个复杂的依赖网络。 + +```mermaid +graph TD +PigClient[utility/integration/pig@InternalClient] --> GClient[github.com/gogf/gf/v2/net/gclient] +PigClient --> Cache[utility/cache] +PigClient --> GLog[github.com/gogf/gf/v2/os/glog] +PigClient --> GTime[github.com/gogf/gf/v2/os/gtime] +CamelOilLogic[internal/logic/camel_oil@sCamelOil] --> PigClient +CamelOilLogic --> CamelOilApi[utility/integration/camel_oil_api] +CamelOilLogic --> DAO[internal/dao] +CamelOilLogic --> Config[utility/config] +Cache --> Redis[github.com/gogf/gf/v2/contrib/nosql/redis/v2] +``` + +**Diagram sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) +- [account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L1-L242) + +**Section sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) +- [account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L1-L242) + +## 性能考虑 +Pig 集成在设计时充分考虑了性能优化,主要体现在以下几个方面: + +1. **Token 缓存**:通过 Redis 缓存 Pig 平台的认证 token,有效期为 24 小时,避免了频繁的认证请求。 +2. **单例模式**:`InternalClient` 使用 sync.OnceFunc 确保全局唯一实例,减少了资源消耗。 +3. **HTTP 客户端复用**:使用 g.Client() 创建的客户端实例被复用,避免了频繁创建和销毁 HTTP 客户端的开销。 + +**Section sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) +- [cache.go](file://utility/cache/cache.go#L1-L220) + +## 故障排除指南 +在使用 Pig 集成时可能遇到以下常见问题及解决方案: + +1. **获取 token 失败**:检查 Pig 平台的用户名和密码是否正确,确保网络连接正常。 +2. **获取手机号失败**:确认 Pig 平台是否有可用的手机号资源,检查 API 接口是否正常。 +3. **验证码检测超时**:增加检测间隔时间,或检查 Pig 平台的短信发送是否正常。 +4. **登录失败**:检查骆驼加油平台的登录接口是否正常,确认验证码是否正确。 + +**Section sources** +- [api.go](file://utility/integration/pig/api.go#L1-L116) +- [account_login.go](file://internal/logic/camel_oil/account_login.go#L1-L137) +- [cron_tasks.go](file://internal/logic/camel_oil/cron_tasks.go#L1-L242) + +## 结论 +Pig Integration 在 kami_backend 项目中扮演着关键角色,为骆驼加油业务提供了稳定的手机号获取和验证码检测能力。该集成设计合理,性能优化到位,通过与骆驼加油平台和内部业务逻辑的紧密配合,实现了自动化账号管理和订单处理流程。未来可以考虑增加更多的错误处理和重试机制,进一步提高系统的稳定性和可靠性。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/数据模型与ORM映射/Camel Oil Database Schema.md b/.qoder/repowiki/zh/content/数据模型与ORM映射/Camel Oil Database Schema.md new file mode 100644 index 00000000..396a2a5e --- /dev/null +++ b/.qoder/repowiki/zh/content/数据模型与ORM映射/Camel Oil Database Schema.md @@ -0,0 +1,346 @@ +# 骆驼加油数据库模式 + + +**本文档中引用的文件** +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [v_1_camel_oil_order.go](file://internal/model/entity/v_1_camel_oil_order.go) +- [v_1_camel_oil_account_history.go](file://internal/model/entity/v_1_camel_oil_account_history.go) +- [v_1_camel_oil_order_history.go](file://internal/model/entity/v_1_camel_oil_order_history.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) + + +## 目录 +1. [简介](#简介) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概述](#架构概述) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) + +## 简介 +本文档详细描述了骆驼加油平台的数据库模式,包括账号管理、订单处理和历史记录等核心功能。该系统主要用于管理骆驼加油平台的账号登录状态、订单生命周期以及相关的历史变更记录。 + +## 项目结构 +骆驼加油模块的代码结构遵循分层设计原则,主要包含API接口、控制器、数据访问对象(DAO)和实体模型等组件。数据库表结构定义在SQL文件中,而对应的Go语言模型则分布在model目录下。 + +```mermaid +graph TB +subgraph "API层" +API[api/camel_oil/v1] +end +subgraph "控制器层" +Controller[internal/controller/camel_oil] +end +subgraph "服务层" +Service[internal/service/camel_oil.go] +end +subgraph "逻辑层" +Logic[internal/logic/camel_oil] +end +subgraph "数据访问层" +DAO[internal/dao] +end +subgraph "模型层" +Model[internal/model/entity] +end +subgraph "数据库" +DB[sql/camel_oil_tables.sql] +end +API --> Controller +Controller --> Service +Service --> Logic +Logic --> DAO +DAO --> Model +Model --> DB +``` + +**图示来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [service.go](file://internal/service/camel_oil.go) +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) + +**节来源** +- [camel_oil.go](file://api/camel_oil/camel_oil.go) +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +## 核心组件 +骆驼加油系统的核心组件包括四个主要数据库表:账号表、订单表、账号历史表和订单历史表。这些表共同构成了系统的数据基础,支持账号管理、订单处理和操作审计等功能。 + +**节来源** +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [v_1_camel_oil_order.go](file://internal/model/entity/v_1_camel_oil_order.go) + +## 架构概述 +骆驼加油系统的数据架构采用标准的分层设计,通过实体-关系模型来管理平台的核心业务数据。系统通过外键约束确保数据完整性,并使用软删除机制保留历史数据。 + +```mermaid +erDiagram +CAMEL_OIL_ACCOUNT { +bigint id PK +varchar(128) account_name +varchar(20) phone UK +text token +tinyint status +datetime token_expire_at +datetime last_login_at +datetime last_used_at +int daily_order_count +date daily_order_date +int total_order_count +text failure_reason +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +CAMEL_OIL_ORDER { +bigint id PK +varchar(64) order_no UK +varchar(128) merchant_order_id +bigint account_id FK +varchar(128) account_name +varchar(128) platform_order_no +decimal(10,2) amount +text alipay_url +tinyint status +tinyint pay_status +tinyint notify_status +int notify_count +datetime last_check_at +datetime paid_at +text attach +text failure_reason +datetime created_at +datetime updated_at +datetime deleted_at +} +CAMEL_OIL_ACCOUNT_HISTORY { +bigint id PK +varchar(36) history_uuid UK +bigint account_id FK +varchar(32) change_type +tinyint status_before +tinyint status_after +int failure_count +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +CAMEL_OIL_ORDER_HISTORY { +bigint id PK +varchar(36) history_uuid UK +varchar(64) order_no FK +varchar(32) change_type +bigint account_id FK +varchar(128) account_name +text raw_data +text remark +datetime created_at +datetime updated_at +datetime deleted_at +} +CAMEL_OIL_ACCOUNT ||--o{ CAMEL_OIL_ORDER : "拥有" +CAMEL_OIL_ACCOUNT ||--o{ CAMEL_OIL_ACCOUNT_HISTORY : "产生" +CAMEL_OIL_ORDER ||--o{ CAMEL_OIL_ORDER_HISTORY : "产生" +``` + +**图示来源** +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [v_1_camel_oil_order.go](file://internal/model/entity/v_1_camel_oil_order.go) + +## 详细组件分析 + +### 账号管理组件分析 +骆驼加油账号管理组件负责维护平台账号的生命周期,包括登录状态、Token管理和使用统计等功能。 + +#### 账号实体类图 +```mermaid +classDiagram +class V1CamelOilAccount { ++int64 id ++string accountName ++string phone ++string token ++int status ++gtime.Time tokenExpireAt ++gtime.Time lastLoginAt ++gtime.Time lastUsedAt ++int dailyOrderCount ++gtime.Time dailyOrderDate ++int totalOrderCount ++string failureReason ++string remark ++gtime.Time createdAt ++gtime.Time updatedAt ++gtime.Time deletedAt +} +class V1CamelOilAccountHistory { ++int64 id ++string historyUuid ++int64 accountId ++string changeType ++int statusBefore ++int statusAfter ++int failureCount ++string remark ++gtime.Time createdAt ++gtime.Time updatedAt ++gtime.Time deletedAt +} +V1CamelOilAccount --> V1CamelOilAccountHistory : "生成" +``` + +**图示来源** +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [v_1_camel_oil_account_history.go](file://internal/model/entity/v_1_camel_oil_account_history.go) + +**节来源** +- [v_1_camel_oil_account.go](file://internal/model/entity/v_1_camel_oil_account.go) +- [v_1_camel_oil_account_history.go](file://internal/model/entity/v_1_camel_oil_account_history.go) + +### 订单处理组件分析 +订单处理组件负责管理骆驼加油平台的订单生命周期,从创建到支付完成或失败的全过程。 + +#### 订单实体类图 +```mermaid +classDiagram +class V1CamelOilOrder { ++int64 id ++string orderNo ++string merchantOrderId ++int64 accountId ++string accountName ++string platformOrderNo ++decimal amount ++string alipayUrl ++int status ++int payStatus ++int notifyStatus ++int notifyCount ++gtime.Time lastCheckAt ++gtime.Time paidAt ++string attach ++string failureReason ++gtime.Time createdAt ++gtime.Time updatedAt ++gtime.Time deletedAt +} +class V1CamelOilOrderHistory { ++int64 id ++string historyUuid ++string orderNo ++string changeType ++int64 accountId ++string accountName ++string rawData ++string remark ++gtime.Time createdAt ++gtime.Time updatedAt ++gtime.Time deletedAt +} +V1CamelOilOrder --> V1CamelOilOrderHistory : "生成" +``` + +**图示来源** +- [v_1_camel_oil_order.go](file://internal/model/entity/v_1_camel_oil_order.go) +- [v_1_camel_oil_order_history.go](file://internal/model/entity/v_1_camel_oil_order_history.go) + +**节来源** +- [v_1_camel_oil_order.go](file://internal/model/entity/v_1_camel_oil_order.go) +- [v_1_camel_oil_order_history.go](file://internal/model/entity/v_1_camel_oil_order_history.go) + +### API流程分析 +骆驼加油系统的API流程展示了订单提交和回调处理的核心业务流程。 + +#### 订单提交流程序列图 +```mermaid +sequenceDiagram +participant Client as "客户端" +participant Controller as "ControllerV1" +participant Service as "CamelOil Service" +Client->>Controller : SubmitOrder请求 +Controller->>Service : 调用SubmitOrder方法 +Service-->>Controller : 返回结果 +Controller-->>Client : 返回响应 +``` + +**图示来源** +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) + +#### 回调处理流程序列图 +```mermaid +sequenceDiagram +participant Client as "第三方平台" +participant Controller as "ControllerV1" +Client->>Controller : OrderCallback请求 +Controller-->>Client : 返回未实现错误 +``` + +**图示来源** +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) + +**节来源** +- [camel_oil_v1_submit_order.go](file://internal/controller/camel_oil/camel_oil_v1_submit_order.go) +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) + +## 依赖分析 +骆驼加油模块与其他系统组件存在明确的依赖关系,主要通过服务层进行交互。 + +```mermaid +graph TD +CamelOil[骆驼加油模块] --> GoFrame[GoFrame框架] +CamelOil --> Database[MySQL数据库] +CamelOil --> Utility[工具库] +CamelOil --> Internal[内部其他模块] +subgraph "内部依赖" +Internal --> Service[service模块] +Internal --> Model[model模块] +Internal --> DAO[dao模块] +Internal --> Logic[logic模块] +end +subgraph "外部依赖" +Utility --> Cache[缓存] +Utility --> Notify[通知服务] +Utility --> Monitor[监控服务] +end +``` + +**图示来源** +- [go.mod](file://go.mod) +- [camel_oil.go](file://internal/service/camel_oil.go) + +**节来源** +- [go.mod](file://go.mod) +- [camel_oil.go](file://internal/service/camel_oil.go) + +## 性能考虑 +骆驼加油系统的数据库设计考虑了性能优化,主要体现在以下几个方面: +- 在关键字段上创建了适当的索引以提高查询效率 +- 使用软删除而非物理删除来保留历史数据 +- 对时间敏感的字段建立了复合索引 +- 通过外键约束确保数据完整性的同时考虑了查询性能 + +## 故障排除指南 +在使用骆驼加油系统时可能遇到的常见问题及解决方案: + +1. **账号登录失败**:检查账号状态是否为"待登录",确认Token是否过期 +2. **订单创建失败**:验证商户订单号是否唯一,检查账号状态是否正常 +3. **回调处理异常**:当前回调功能尚未实现,需要开发相应的处理逻辑 +4. **数据查询缓慢**:检查相关字段的索引是否存在,优化查询条件 + +**节来源** +- [camel_oil_tables.sql](file://sql/camel_oil_tables.sql) +- [camel_oil_v1_order_callback.go](file://internal/controller/camel_oil/camel_oil_v1_order_callback.go) + +## 结论 +骆驼加油系统的数据库模式设计合理,通过四个核心表实现了账号管理、订单处理和历史记录的完整功能。系统采用分层架构,代码结构清晰,便于维护和扩展。建议尽快实现订单回调功能,并进一步完善错误处理机制。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/项目概述/Graceful Shutdown Fix.md b/.qoder/repowiki/zh/content/项目概述/Graceful Shutdown Fix.md new file mode 100644 index 00000000..0cc9239a --- /dev/null +++ b/.qoder/repowiki/zh/content/项目概述/Graceful Shutdown Fix.md @@ -0,0 +1,203 @@ +# 优雅关闭修复 + + +**本文档引用的文件** +- [main.go](file://main.go) +- [cmd.go](file://internal/cmd/cmd.go) +- [pool.go](file://utility/pool/pool.go) +- [cron.go](file://utility/cron/cron.go) +- [config.go](file://utility/config/config.go) + + +## 目录 +1. [简介](#简介) +2. [项目结构](#项目结构) +3. [核心组件](#核心组件) +4. [架构概述](#架构概述) +5. [详细组件分析](#详细组件分析) +6. [依赖分析](#依赖分析) +7. [性能考虑](#性能考虑) +8. [故障排除指南](#故障排除指南) +9. [结论](#结论) +10. [附录](#附录)(如有必要) + +## 简介 +本文档详细描述了kami_backend项目中优雅关闭功能的实现机制。系统在接收到终止信号时,能够有序地停止定时任务和关闭线程池,确保所有正在进行的任务能够完成,避免数据丢失或服务异常中断。 + +## 项目结构 +本项目采用GoFrame框架构建的后端服务,主要包含API接口、内部服务逻辑、工具库和配置文件等模块。项目结构清晰,按功能划分目录,便于维护和扩展。 + +```mermaid +graph TB +subgraph "核心模块" +main["main.go
主程序入口"] +cmd["internal/cmd
命令行处理"] +controller["internal/controller
控制器"] +service["internal/service
服务层"] +logic["internal/logic
业务逻辑"] +end +subgraph "工具库" +utility["utility
通用工具"] +pool["utility/pool
线程池管理"] +cron["utility/cron
定时任务"] +config["utility/config
配置管理"] +otel["utility/otel
可观测性"] +end +subgraph "配置与资源" +manifest["manifest
部署配置"] +resource["resource
资源文件"] +sql["sql
数据库脚本"] +end +main --> cmd +cmd --> controller +controller --> service +service --> logic +utility --> cmd +config --> utility +cron --> cmd +pool --> cmd +``` + +**Diagram sources** +- [main.go](file://main.go#L1-L56) +- [cmd.go](file://internal/cmd/cmd.go#L1-L97) +- [pool.go](file://utility/pool/pool.go#L1-L64) +- [cron.go](file://utility/cron/cron.go#L1-L96) +- [config.go](file://utility/config/config.go#L1-L112) + +**Section sources** +- [main.go](file://main.go#L1-L56) +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L1-L97) + +## 核心组件 +系统的核心组件包括主程序入口、命令行处理器、定时任务管理器和线程池管理器。这些组件协同工作,确保服务能够正常启动、运行和优雅关闭。 + +**Section sources** +- [main.go](file://main.go#L24-L55) +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L42-L85) + +## 架构概述 +系统采用分层架构设计,从上到下依次为API层、控制器层、服务层和数据访问层。同时,系统集成了定时任务和线程池等辅助组件,以支持后台任务处理和并发操作。 + +```mermaid +graph TD +A[客户端] --> B[API接口] +B --> C[控制器层] +C --> D[服务层] +D --> E[业务逻辑层] +E --> F[数据访问层] +F --> G[(数据库)] +H[定时任务] --> D +I[线程池] --> E +J[配置管理] --> 所有层级 +K[可观测性] --> 所有层级 +``` + +**Diagram sources** +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L47-L76) +- [utility/cron/cron.go](file://utility/cron/cron.go#L13-L71) +- [utility/pool/pool.go](file://utility/pool/pool.go#L30-L33) + +## 详细组件分析 + +### 优雅关闭机制分析 +系统实现了完整的优雅关闭流程,确保在服务终止时能够有序地清理资源和完成正在进行的任务。 + +#### 优雅关闭流程 +```mermaid +sequenceDiagram +participant 系统 as 系统 +participant 信号监听 as 信号监听 +participant 定时任务 as 定时任务 +participant 线程池 as 线程池 +系统->>信号监听 : 启动信号监听 +信号监听->>系统 : 等待SIGINT/SIGTERM +系统->>系统 : 运行主服务 +用户->>系统 : 发送终止信号 +信号监听->>系统 : 接收终止信号 +系统->>定时任务 : 停止所有定时任务 +定时任务-->>系统 : 确认所有任务完成 +系统->>线程池 : 关闭所有线程池 +线程池-->>系统 : 确认线程池已关闭 +系统->>系统 : 服务完全停止 +``` + +**Diagram sources** +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L87-L96) +- [utility/cron/cron.go](file://utility/cron/cron.go#L13-L71) +- [utility/pool/pool.go](file://utility/pool/pool.go#L56-L63) + +#### 线程池管理 +```mermaid +classDiagram +class PoolManager { ++Pools map[Key]*grpool.Pool ++New(key Key, limit... int) *grpool.Pool ++GracefulDown() +} +class Key { ++AppleCardCallBack ++JDCardCallBack ++RedeemCardConsume ++其他任务类型 +} +PoolManager "1" *-- "0..*" grpool.Pool +Key ..> PoolManager : 作为键值 +``` + +**Diagram sources** +- [utility/pool/pool.go](file://utility/pool/pool.go#L30-L63) + +**Section sources** +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L87-L96) +- [utility/pool/pool.go](file://utility/pool/pool.go#L1-L64) +- [utility/cron/cron.go](file://utility/cron/cron.go#L1-L96) + +## 依赖分析 +系统各组件之间的依赖关系清晰,主要依赖GoFrame框架提供的功能,以及OpenTelemetry用于可观测性。 + +```mermaid +graph TD +A[main.go] --> B[cmd.go] +B --> C[gogf/gf框架] +B --> D[pool.go] +B --> E[cron.go] +B --> F[otel] +D --> G[grpool] +E --> H[gcron] +F --> I[OpenTelemetry] +C --> J[数据库驱动] +C --> K[Redis驱动] +``` + +**Diagram sources** +- [go.mod](file://go.mod#L5-L100) +- [main.go](file://main.go#L3-L16) +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L28-L40) + +**Section sources** +- [go.mod](file://go.mod#L1-L101) +- [main.go](file://main.go#L3-L16) +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L28-L40) + +## 性能考虑 +系统在设计时考虑了性能和资源管理,通过线程池和定时任务的合理配置,确保系统在高并发场景下的稳定运行。优雅关闭机制避免了 abrupt termination 可能导致的资源泄漏和数据不一致问题。 + +## 故障排除指南 +当遇到服务无法正常关闭的问题时,可以按照以下步骤进行排查: + +1. 检查是否有长时间运行的定时任务未完成 +2. 确认线程池中的任务是否都能在合理时间内完成 +3. 查看日志中是否有任务执行失败的记录 +4. 检查系统资源使用情况,确保没有资源瓶颈 + +**Section sources** +- [internal/cmd/cmd.go](file://internal/cmd/cmd.go#L87-L96) +- [utility/pool/pool.go](file://utility/pool/pool.go#L56-L63) +- [utility/cron/cron.go](file://utility/cron/cron.go#L13-L71) + +## 结论 +kami_backend项目的优雅关闭实现是完整且可靠的。通过有序地停止定时任务和关闭线程池,系统能够在接收到终止信号时安全地停止服务,确保数据一致性和系统稳定性。这种设计模式值得在其他微服务中推广使用。 + +## 附录 +本文档基于项目当前代码库生成,随着项目的演进,相关实现可能会有所变化。建议定期更新文档以保持与代码的一致性。 \ No newline at end of file diff --git a/.qoder/repowiki/zh/content/项目概述.md b/.qoder/repowiki/zh/content/项目概述/项目概述.md similarity index 100% rename from .qoder/repowiki/zh/content/项目概述.md rename to .qoder/repowiki/zh/content/项目概述/项目概述.md diff --git a/.qoder/repowiki/zh/meta/repowiki-metadata.json b/.qoder/repowiki/zh/meta/repowiki-metadata.json index 9dc5c6d0..df4de779 100644 --- a/.qoder/repowiki/zh/meta/repowiki-metadata.json +++ b/.qoder/repowiki/zh/meta/repowiki-metadata.json @@ -1 +1 @@ -{"code_snippets":[{"id":"d018b60f9d48763366246e537520686c","path":"internal/middleware/auth.go","line_range":"22-51","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"f451dcc5212a1a2b4e0ce80b06f8e185","path":"internal/middleware/error_handler.go","line_range":"8-27","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"c778028d86a2a65f31627126a2575c0c","path":"/main.go","line_range":"1-50","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"4bad57683321787594727c10ee94c33b","path":"/internal/logic/logic.go","line_range":"1-37","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"aee3a2f386eb5a98ddf5ca7cccff0929","path":"/internal/service/sys_user.go","line_range":"1-102","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"6fe67e9d805a0a633f90f268ef2ee2f4","path":"/internal/service/card_apple_order.go","line_range":"1-127","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"32bf22e91c31d6f141bf6b7ef0de7b96","path":"/internal/service/card_redeem_order.go","line_range":"1-80","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"7face210770aa4ec553604c6d0931175","path":"/internal/service/merchant_order.go","line_range":"1-44","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"842d4a8a22707111e666ac492238b5ef","path":"/internal/service/restriction.go","line_range":"1-67","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"c701edfecf07f4017d7d956624072fde","path":"/internal/logic/sys_user/sys_user.go","line_range":"1-767","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"4d71ea0833e7a0a8266b6f2e8b05e459","path":"/internal/dao/v_1_sys_user.go","line_range":"1-28","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0d5907fd86f99e310c6663b7e705ab7b","path":"/internal/model/sys_user.go","line_range":"1-92","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"488c440eb23bb1208ec810e0d3738028","path":"/internal/logic/card_apple_order/order.go","line_range":"1-343","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"badc687590596030499ebead18afabfc","path":"/internal/logic/merchant_order/order.go","line_range":"1-48","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","path":"/internal/logic/restriction/restriction.go","line_range":"1-174","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"f67970ad2e09c5f5a6048ff8ef3cd50c","path":"/manifest/config/config.yaml","line_range":"1-10","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","path":"internal/model/entity/v_1_account_info.go","line_range":"12-25","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"1c004f6c7e82e215a8538bb563de1a80","path":"internal/model/entity/v_1_order_info.go","line_range":"12-63","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9311a5593c3cb84df188d914b5fcb57b","path":"internal/model/entity/v_1_card_apple_recharge_info.go","line_range":"11-33","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"734fa931bccd869983dd85fd9b7ab371","path":"internal/model/entity/v_1_jd_cookie_account.go","line_range":"12-28","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"314337c7901e5f608be04c99dbf9dcda","path":"utility/otel/config.go","line_range":"1-67","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"02b920b240a8a0b5cc76dbdd011bfade","path":"utility/otel/manager.go","line_range":"1-257","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"a1f8285bc58503a0979846e628322395","path":"utility/otel/utils.go","line_range":"1-230","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"62d876856f82a4ea1e63b343aa650ddc","path":"utility/otel/handler.go","line_range":"1-164","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"0450d2bd60154c9defe18e2dd0db3944","path":"api/monitor/monitor.go","line_range":"1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"776a898a7e3af295ac0d3f657e027a43","path":"api/monitor/v1/heathcheck.go","line_range":"1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"f4357af3bdee1af700d66352486740ac","path":"internal/controller/monitor/monitor_new.go","line_range":"1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"1f3f6baf21697865c02621086d9ebce9","path":"internal/controller/monitor/monitor_v1_health_check.go","line_range":"1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"852c344b512f86e468cc155a007239c3","path":"internal/cmd/cmd.go","line_range":"1-92","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"7f41c190fab616ed408fb3470b01e156","path":"utility/monitor/monitor.go","line_range":"1-14","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"2deccc6412aa3a542406ea4123dbd7e6","path":"internal/consts/jd_cookie.go","line_range":"150-160","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":"ec6f80518cdb41b1cb7ec141e92638a1","path":"internal/middleware/auth.go","line_range":"1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"972216ab1861cc2715878f10ca1d7e82","path":"internal/model/sys_user.go","line_range":"1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"43ed130e118ec9a873129314ddcd834d","path":"internal/service/sys_casbin.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"144cff56ec3838a61a926b3ff9a3d25e","path":"internal/middleware/auth.go","line_range":"50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"4f93cccb25d8c64e73e92615a203e00e","path":"utility/token/user_token.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a964b09bca4acd49db9824c141108f00","path":"resource/casbin/rbac_model.conf","line_range":"1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"5613af50c546b7eeb54ca83263a76c29","path":"internal/dao/v_1_sys_casbin_rule.go","line_range":"1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ceaf312dde8910a6de9a4671cd06d559","path":"utility/mfa/mfa.go","line_range":"1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"7d199570ba96ddc2ca6639d6d726d419","path":"internal/controller/sysUser/sysUser_v1_totp_status_get.go","line_range":"1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"8c317fe404ce5c22b9feef901431fcc5","path":"internal/controller/sysUser/sysUser_v1_totp_set.go","line_range":"1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a5e8020f6c112eb351bfce346cc7e7cd","path":"utility/verify/aes_ecb.go","line_range":"1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"cce1b31f34a553e7032bfe746d1cd94b","path":"utility/verify/md5.go","line_range":"1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a4b14b6b79267d38f599e305591c3273","path":"internal/service/sys_user.go","line_range":"1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"4eedd1dcf74ca7ed561a2da81f45f3d7","path":"internal/errHandler/handler.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"dd733661014ef5805339ded90facaed0","path":"\\utility\\integration\\originalJd\\client.go","line_range":"5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"9749731ed765b177a75bbb84edc2c781","path":"\\utility\\integration\\originalJd\\model.go","line_range":"35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"f415bde86145ca67e63b0a6a7645487a","path":"\\utility\\integration\\originalJd\\client.go","line_range":"65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"ff9ed734519da40b64bea347532ad39d","path":"\\utility\\integration\\originalJd\\model.go","line_range":"110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"a0944686e185b8cdc6f06d21d5678c43","path":"\\internal\\consts\\card_redeem_cookie.go","line_range":"25-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"c6ba97566833b54cd4ff516c8ea88f46","path":"\\internal\\consts\\card_jd.go","line_range":"45-65","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"8a5414d484500ba17e6a788ce484c21b","path":"\\utility\\integration\\originalJd\\client.go","line_range":"10-20","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"37112fccfc8b194c480bb373d48115f7","path":"\\utility\\integration\\originalJd\\client.go","line_range":"70-80","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"7edb6bdca57d6bc188cd5b2bbbc4a138","path":"internal/logic/jd_cookie/order.go","line_range":"50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"5266c40167bf3310e85d510942a06173","path":"internal/logic/jd_cookie/order.go","line_range":"450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"782300bf902736466e525e642592486f","path":"utility/integration/originalJd/model.go","line_range":"136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"47824ef49939140f82365cb3d0eb0cc1","path":"utility/verify/aes_ecb.go","line_range":"1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","path":"utility/verify/md5.go","line_range":"1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"767b677153edb86515b77286476ce79b","path":"utility/utils/tools.go","line_range":"1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"fea30ea749579359c4f54de16878cf4f","path":"utility/verify/aes_ecb.go","line_range":"15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"ef1e0649738859b4447918324f2572d9","path":"utility/utils/tools.go","line_range":"22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"0383311e02468d4e918e6065aa543159","path":"internal/dao/internal/v_1_sys_user.go","line_range":"37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"3b0d083ad6e1e42c3cadee5c77b796a0","path":"internal/model/sys_user.go","line_range":"0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"35ff891033d9d93c8fa7614ad2fce15d","path":"JD_COOKIE_REFACTOR_REPORT.md","line_range":"1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"8f77a4f0854077c3774992dffc7b67b7","path":"utility/config/config.go","line_range":"15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"acfa1be45056640e25383a94f19dc7d9","path":"manifest/config/config.yaml","line_range":"1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"b73368b03e242affa847ca3d7470031e","path":"manifest/docker/Dockerfile","line_range":"1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"db1c31f617d9e5f634d8339367911606","path":"manifest/docker/docker-compose.yml","line_range":"1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"dd64c275dd8d4bc11cde8a7b7a290fed","path":"manifest/docker/docker-compose-local.yaml","line_range":"1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"d6cc2f26e69178bb84fde4c8efd2bc72","path":"Makefile","line_range":"1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"dfaf7eeee313e45381a5c84acad7d598","path":"hack/hack.mk","line_range":"1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"037c00a89165736016c43de51f38904f","path":"manifest/docker/install.sh","line_range":"1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"de0ba4e69640dc07afdabcd8239a78d4","path":"manifest/deploy/kustomize/base/kustomization.yaml","line_range":"1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"6bd49f88fb853be92cced1cf022cf602","path":"manifest/deploy/kustomize/overlays/develop/kustomization.yaml","line_range":"1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"3b39ff5f0cfc1dd7c098c94d3f933f75","path":"manifest/deploy/kustomize/base/deployment.yaml","line_range":"1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"0e4358230bffd4be2ea7053332694d44","path":"manifest/deploy/kustomize/overlays/develop/deployment.yaml","line_range":"1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"ab5aade552f972707c516a2836e5599e","path":"manifest/deploy/kustomize/overlays/develop/configmap.yaml","line_range":"1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"7ba715316b620dc29a8f18d4de067b23","path":".drone.yml","line_range":"1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"c5ee11836f7ab42cda2655f445cac377","path":"utility/cron/cron.go","line_range":"1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"268b3e7951536fbd682c2f50b8960980","path":"/utility/integration/redeem/jd/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"9f040686e23b6fd6b3b53522a50a3fae","path":"/utility/integration/redeem/ctrip/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"d5f63253bfce66da1b9e040b318f5ac8","path":"/utility/integration/redeem/walmart/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"8fcf454d6439e16e2ee45b592d199565","path":"/utility/integration/tmall/api/api.go","line_range":"1-20","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"e7f3e2357a5be12aba6f1b222070b75b","path":"/utility/integration/originalJd/client.go","line_range":"11-123","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"513dd1188dfbad313f70d29fb1e183bc","path":"/utility/integration/originalJd/model.go","line_range":"1-144","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"4fdff47316ebde6fa296678a3558466a","path":"/utility/otel/config.go","line_range":"1-68","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"3172bdd0bdcdcc9961668dac5cd7736a","path":"/utility/otel/manager.go","line_range":"1-258","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"f43353da0dd842671b2ecd75845577a0","path":"/utility/otel/utils.go","line_range":"22-33","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"878ca019cafcda589777cca1b9d046d5","path":"/utility/otel/manager.go","line_range":"35-86","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"7f9267cfe8229dcd33f476ce31fd1bfa","path":"/utility/otel/utils.go","line_range":"1-50","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"d80df587153dec12950eadafbd55b449","path":"/resource/casbin/rbac_model.conf","line_range":"1-14","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"f25e656cbd55294916b70a73a1c4e583","path":"/utility/otel/config.go","line_range":"40-52","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"74c031b18c09b203210b77a20abc9d53","path":"/utility/otel/manager.go","line_range":"50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"3ae8a564e67df9aaecee08d5880927e3","path":"/internal/logic/jd_cookie/order.go","line_range":"500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"a4121ec796fe7df03e581a951109bf2c","path":"/internal/consts/jd_cookie.go","line_range":"150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"6d306b24351264c7f10e496503d064f0","path":"internal/model/entity/v_1_jd_cookie_jd_order.go","line_range":"12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"447357bff1aece2f7004a592d1590f3c","path":"internal/model/entity/v_1_jd_cookie_order.go","line_range":"12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"856abda221f83e850763d32c49eeb8f4","path":"internal/model/do/v_1_jd_cookie_order.go","line_range":"12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"33fd8e434adea0293ba416951c3b04c1","path":"internal/dao/v_1_jd_cookie_order.go","line_range":"1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"}],"commits":[{"id":"77aff4289e7b60617a6b97873721f586af264581","message":"feat(jd-cookie): 实现京东订单创建及支付链接刷新功能","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","message":"refactor(card_redeem):重构携程卡账户接口和京东cookie逻辑","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","message":"docs(jd_cookie): 添加京东Cookie管理模块重构设计文档","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":"34","message":"chore(ci): 更新Docker仓库地址至git.oceanpay.cc","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"12","message":"fix(cron): 调整京东支付状态监控任务执行频率","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","message":"feat(jd_cookie): 实现京东订单支付状态定时检查与卡密提取功能","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","message":"fix(originalJd):修复订单ID字段类型问题","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","message":"fix(originalJd): 更新京东接口字段名","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","message":"fix(originalJd): 修正京东接口卡密字段及添加订单状态","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","message":"refactor(jd): 调整京东订单字段命名","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"8bc2d51c8ba46582286270b3dd85e166f2562e51","message":"fix(order):优化下单接口错误处理逻辑","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","message":"feat(jd): 添加库存错误处理并优化错误枚举","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","message":"feat(jd_cookie):重构订单创建逻辑并优化相关模型","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"924061810e00a9e9d86f6e24e1baedbc27407d07","message":"feat(jd_cookie):重构Cookie历史记录逻辑并增强订单创建并发控制","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"d1b7f907caa0c3c59628241250901cb7239b25a8","message":"refactor(jd_cookie): 优化订单创建逻辑及支付链接刷新机制","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"28","message":"feat(jd_cookie): 启用账户创建权限校验并移除订单创建权限校验","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"30","message":"feat(jd_cookie): 统一使用IFrame登录权限校验","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"31","message":"feat(jd_cookie): 添加权限验证拦截器","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"a2a994df6eb92d304845f8f2711506072549cadc","message":"fix(jd_cookie):修复订单创建中的Cookie记录错误","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"270af97a7ad47f343323425419e15a4b40b5b2d6","message":"fix(jd): 完善订单创建失败时的错误信息和日志记录","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"26","message":"feat(jd):优化苹果权益充值接口调用与日志记录","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","message":"feat(jd_cookie): 添加用户订单号支持并优化订单处理逻辑","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"192aa438cae812c9ca95a5c06a15ca0066237458","message":"feat(jd_cookie): 新增京东订单相关模型及逻辑优化","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","message":"refactor(jd_cookie):重构时间字段类型为*gtime.Time","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"c1e3051c8ba46582286270b3dd85e166f2562e51","message":"fix(order):优化下单接口错误处理逻辑\n\n- 修复了接口返回空时的空指针异常- 统一处理库存不足和Cookie失效的错误状态\n- 保留有效的返回信息用于错误提示\n- 确保所有错误情况都能正确设置响应状态","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","message":"refactor(jd_cookie):重构订单ID字段命名\n\n- 将 UserOrderId 字段统一重命名为 OrderId\n- 更新数据库表字段名 user_order_id 为 order_id- 调整相关结构体和接口中的字段引用\n- 修改历史记录和订单逻辑中的字段使用- 移除临时回调接口定义\n- 保持数据一致性和代码可读性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","message":"feat(jd_cookie): 新增风控失败状态及备注信息支持\n\n- 新增风控失败状态枚举值 RiskFailed (300)- 在京东订单状态中增加 CkFailed 状态 (6) 及对应文案\n- 为多个数据表添加 remark 字段用于存储备注信息\n- 修改下单逻辑以支持风控失败重试机制\n- 更新数据库表结构,将 remark 字段类型从 varchar(500) 改为 text\n- 调整订单历史记录逻辑以包含备注信息-优化 Cookie 失效处理逻辑,支持风险控制失败场景\n- 统一使用 GenerateRandomUUID生成订单号和历史记录 UUID- 完善订单状态变更历史记录,新增 ck_failed 变更类型\n- 增加对京东接口返回 remark 信息的处理和支持\n- 更新相关服务接口定义,添加 remark 参数传递\n- 补充模型定义中的 remark 和 isCkFailed 字段映射","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"ead96af520d030f786869d1a2fc84abf7515ba13","message":"feat(jd_cookie): 添加订单回调功能并优化配置参数- 引入 gclient 包用于发起 HTTP 请求- 移除检查间隔时间常量定义- 在卡密提取成功后添加异步回调逻辑\n- 新增 Callback 方法实现向指定地址发送通知- 记录回调响应日志信息","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","message":"fix(cron): 调整京东支付状态监控任务执行频率\n\n- 将任务执行间隔从10秒调整为30秒\n- 减少任务执行频率以降低系统负载- 保持监控功能的稳定性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","message":"fix(originalJd):修复订单ID类型转换问题\n\n- 将 OrderId 从 string 类型改为 json.Number 类型以支持数字格式- 在 AppleRechargeResp 和 RefreshPaymentRes 中调用 OrderId.String() 进行类型转换\n- 添加 encoding/json 包导入以支持 json.Number 类型处理","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","message":"feat(jd-cookie): 新增京东订单导出功能\n\n- 新增导出京东订单接口,支持按状态、时间范围和订单号筛选\n- 实现订单数据导出为Excel文件的功能\n- 更新订单变更类型枚举,将\"replace\"改为\"send\"\n- 在订单历史记录中使用新的变更类型\n- 添加Excel文件生成逻辑,包含订单号、卡密、状态等信息\n- 支持通过HTTP响应直接下载生成的Excel文件- 优化订单状态文本显示逻辑\n- 修复订单变更历史记录中的类型错误\n- 增加空Excel文件生成处理逻辑\n- 完善订单导出相关的请求和响应结构体定义","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","message":"refactor(jd_cookie):重构京东订单历史查询逻辑\n\n- 修改 GetJdOrderHistoryByOrderId 为 GetJdOrderHistoryByJdOrderId\n- 更新函数参数 orderId 为 jdOrderId\n- 调整数据库查询字段从 OrderId 到 JdOrderId\n- 移除订单信息中的微信支付链接字段\n-优化订单支付状态更新逻辑,记录支付时间\n- 清理订单查询中冗余的支付链接获取代码","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","message":"fix(jd_cookie): 调整订单历史查询接口参数校验与逻辑\n\n- 移除订单类型参数的必填校验- 简化订单历史查询逻辑,仅支持用户订单- 更新服务层方法签名以匹配新的请求结构- 删除对京东订单类型的判断和相关代码分支- 优化控制器调用逻辑以适应接口变更","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","message":"feat(jd_cookie):优化订单支付链接获取逻辑\n\n- 移除订单表中的微信支付链接字段\n- 从京东订单表中动态获取支付链接- 更新订单信息时不再传递支付链接参数\n- 简化订单创建和更新流程\n- 提高支付链接数据的一致性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","message":"feat(jd-cookie): 引入用户订单号支持并重构订单创建逻辑\n\n- 新增用户订单号字段以区分内部订单号\n- 修改订单表结构添加 user_order_id 字段及索引\n- 更新 CreateOrder 接口支持用户订单号参数-重构 CreateOrder 和 GetPaymentUrl 方法返回统一结果对象\n- 新增模型定义用于封装订单创建与支付结果\n- 调整相关逻辑方法签名与调用方式适配新结构- 优化订单创建流程增加内部订单号生成逻辑\n- 完善订单查询逻辑确保正确关联用户订单号- 更新控制器层对接新版服务接口- 升级 Cookie 状态及订单状态管理枚举类型使用","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","message":"feat(jd-cookie): 引入枚举类型管理京东Cookie状态\n\n- 使用 consts.JdCookieStatus 枚举替换原有的 int 类型状态字段\n- 在 CreateAccountRes、ListAccountReq、CookieAccountInfo 和 UpdateAccountReq 中统一状态类型\n- 更新 ListAccount 和 UpdateAccount 方法签名以支持枚举参数-为状态字段添加验证规则,确保输入值有效(1: 正常, 2: 暂停, 3: 失效)\n- 调整逻辑层中状态比较与赋值操作以兼容枚举类型- 保持接口响应结构体中的状态字段语义清晰且类型安全","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","message":"feat(jd_cookie): 更新订单状态及卡密提取逻辑\n\n- 修改 JdOrderChangeTypeReplace 的值为\"已发货\"\n- 移除 OrderChangeTypeBind 常量定义- 优化 RecordJdOrderHistory 调用逻辑,确保 order 非空再记录\n- 在卡密提取成功后更新用户订单状态为已支付\n- 使用结构体方式更新数据库字段,提升代码可读性\n- 清理过期订单时使用结构体更新状态字段\n-修复 orderId 获取逻辑,避免空值情况\n- 添加 do 包引用以支持结构化数据操作","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"baead12025e075376e7927981cdbdb29fc3e9127","message":"refactor(jd_cookie):优化订单与Cookie历史记录逻辑- 统一变更类型参数为枚举值,去除字符串转换\n- 移除订单支付链接过期时间返回字段\n-重构京东支付状态监控任务执行逻辑-优化批量检查订单支付状态分页处理\n- 调整数据库索引类型从唯一索引为普通索引- 规范化各类变更类型的中文描述定义\n- 完善历史记录函数签名及调用方式\n- 清理冗余代码并增强错误日志记录","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","message":"feat(jd):优化苹果权益充值接口调用与日志记录\n\n- 苹果权益充值接口增加ContentJson()方法以明确请求体格式\n- 在苹果权益充值接口中添加响应日志打印逻辑\n- 修改刷新收银台接口的日志描述文案,提升可读性\n- 调整下单接口返回值的日志记录方式,去除冗余包装结构\n- 移除AppleRechargeReq结构体中的UserClient字段定义","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"ecd031f3516ddb30d10184bc29008413fe982138","message":"refactor(order): 注释掉订单复用逻辑并添加下单接口返回日志\n\n- 注释掉了检查订单是否已存在的逻辑\n- 注释掉了复用现有京东订单的相关代码\n- 在下单接口返回后添加了详细的响应日志记录- 保留了创建新订单的主要流程逻辑","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","message":"feat(jd_cookie): 启用账户创建权限校验并移除订单创建权限校验\n\n- 在 CreateAccount 接口中启用 SysAuth 登录校验逻辑\n- 移除 CreateOrder 接口中的 SysAuth 登录校验注释- 调整 errHandler 包的导入位置以优化代码结构","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","message":"feat(jd_cookie): 移除创建账户时的权限检查\n\n- 删除了创建账户接口中的权限验证逻辑\n- 注释掉了原有的权限检查代码块-保留了账户创建的核心业务逻辑\n- 确保接口在无权限校验情况下仍能正常工作","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","message":"feat(jd_cookie): 统一使用IFrame登录权限校验\n\n- 将所有接口的权限校验方法从LoginOnlyLogin替换为LoginOnlyIFrame- 保持权限不足时的错误处理逻辑一致- 更新批量检测、创建、查询等所有相关接口的权限校验方式","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","message":"feat(jd_cookie): 添加权限验证拦截器- 在所有 jd_cookie 相关接口中增加登录态校验\n- 使用 SysAuth().LoginOnlyLogin 进行统一认证\n- 权限不足时返回 401 错误并提示\"权限不足\"- 引入 errHandler 包处理认证错误信息- 确保只有已登录用户可访问 Cookie 管理功能","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"e6b4b9c801912c27d75ebee52fe74a427920df99","message":"refactor(service): 重新整理订单相关接口定义\n\n- 将支付链接获取接口调整到接口尾部\n- 重新组织获取单个订单方法的位置\n- 重新排列订单状态查询接口\n- 调整订单列表查询接口结构\n- 保持接口定义整洁一致,提升代码可读性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","message":"chore(ci): 更新Docker仓库地址至git.oceanpay.cc- 修改Docker登录地址为git.oceanpay.cc\n- 更新镜像构建和推送目标地址\n- 调整部署阶段的Docker仓库配置\n- 移除旧仓库相关环境变量引用\n- 更新docker logout命令目标地址- 保持构建参数和标签策略不变","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","message":"feat(jd): 新增京东Cookie订单支付状态自动监控功能\n\n- 设计后台任务定时调度器,周期性检查待支付订单\n- 增加支付状态检查服务,调用京东接口获取订单最新状态\n- 实现卡密提取服务,自动获取并保存卡号卡密信息\n- 扩展京东订单数据模型,增加支付时间、卡密信息等字段\n- 设计支付状态监控业务流程与异常处理策略\n- 优化并发处理与数据库查询效率,提升系统性能\n- 制定详细测试策略,覆盖状态检查和卡密提取核心功能\n- 增加监控与告警机制,保障支付状态查询的稳定性\n- 提供部署配置说明,支持任务间隔、批量大小等参数调整","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"}],"knowledge_relations":[{"id":537,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":538,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 1efc56f9-e901-4ce4-b98e-e1c793ab2bda","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":539,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":540,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"738f052a-42a0-4959-bafb-657eb467d57d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e 738f052a-42a0-4959-bafb-657eb467d57d","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":541,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"f10ee956-3c2d-488f-a83d-d998dc2c2bd1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e f10ee956-3c2d-488f-a83d-d998dc2c2bd1","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":542,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"29857cbd-6dcb-4ee9-b121-6312d5a523c9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e 29857cbd-6dcb-4ee9-b121-6312d5a523c9","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":543,"source_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","target_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63 -\u003e b2dccb33-ffec-4b07-8759-f7ce71472ecb","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":544,"source_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","target_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63 -\u003e 99d1a050-0313-4c24-90a9-0db3ac835b2c","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":545,"source_id":"c2fef000-7272-4553-b8e9-650afd08aef6","target_id":"5d780517-9a6d-4c42-ba58-f5b8ec8393ce","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c2fef000-7272-4553-b8e9-650afd08aef6 -\u003e 5d780517-9a6d-4c42-ba58-f5b8ec8393ce","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":546,"source_id":"c2fef000-7272-4553-b8e9-650afd08aef6","target_id":"eb1ee078-c356-49ad-827a-9313420c484d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c2fef000-7272-4553-b8e9-650afd08aef6 -\u003e eb1ee078-c356-49ad-827a-9313420c484d","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":547,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 0f130c1f-7f7b-4517-97a1-2d3646bbd246","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":548,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"6f8ee399-7380-4fee-a2e4-728f269611b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 6f8ee399-7380-4fee-a2e4-728f269611b1","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":549,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 2c270c41-0c72-45b9-be8d-a5605ca16e32","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":550,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"df46fe53-92ca-4da6-826a-b33df0bd242b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e df46fe53-92ca-4da6-826a-b33df0bd242b","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":551,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"c7dcc000-3176-454a-a9df-1ecd2131cc5b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e c7dcc000-3176-454a-a9df-1ecd2131cc5b","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":552,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"824c49c6-ab20-4552-b22a-86d1e9351317","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e 824c49c6-ab20-4552-b22a-86d1e9351317","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":553,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e 2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":554,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"17fd343c-4fd0-4124-a801-902c9ecd72ea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e 17fd343c-4fd0-4124-a801-902c9ecd72ea","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":555,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"e81e6998-8633-4c13-ae1f-6eb9820aaa79","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e e81e6998-8633-4c13-ae1f-6eb9820aaa79","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":556,"source_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","target_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab420b44-4f24-4bc3-a44c-bc68b0868ab8 -\u003e 8b580d72-5612-4fa0-b850-b3a7d72c1e19","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":557,"source_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","target_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab420b44-4f24-4bc3-a44c-bc68b0868ab8 -\u003e 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":558,"source_id":"51819175-b0b6-4391-899e-6d9466cf804b","target_id":"0aafdca3-5383-41f6-95ae-95c4f6eb2f32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 51819175-b0b6-4391-899e-6d9466cf804b -\u003e 0aafdca3-5383-41f6-95ae-95c4f6eb2f32","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":559,"source_id":"51819175-b0b6-4391-899e-6d9466cf804b","target_id":"692c0d1b-79e2-466b-bd94-9c041d9bda6b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 51819175-b0b6-4391-899e-6d9466cf804b -\u003e 692c0d1b-79e2-466b-bd94-9c041d9bda6b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":560,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":561,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"1acfa79b-62c0-4874-99e4-6ae09004acc4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 1acfa79b-62c0-4874-99e4-6ae09004acc4","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":562,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"2c96823f-d6db-46ca-a33c-dbfdc28756a1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 2c96823f-d6db-46ca-a33c-dbfdc28756a1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":563,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"56080685-56e4-4a91-ba5c-6a25de62ccdf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e 56080685-56e4-4a91-ba5c-6a25de62ccdf","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":564,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"bd721dc3-a854-4ab4-af6f-1c1a24c2e660","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e bd721dc3-a854-4ab4-af6f-1c1a24c2e660","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":565,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"ff38a877-a28e-47d8-b5c9-939b865c97a3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e ff38a877-a28e-47d8-b5c9-939b865c97a3","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":566,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"f63d9ee2-939e-4112-8422-b76013d0c37b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e f63d9ee2-939e-4112-8422-b76013d0c37b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":567,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"5512c349-309d-4bd7-9e7e-ec7df28c6d32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e 5512c349-309d-4bd7-9e7e-ec7df28c6d32","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":568,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"4a89e30e-d877-427e-98c3-0d58a4fba7a8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e 4a89e30e-d877-427e-98c3-0d58a4fba7a8","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":569,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"06a8f4cd-585e-43e5-992a-156951ca77b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e 06a8f4cd-585e-43e5-992a-156951ca77b1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":570,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"e146bc47-a61b-4bec-bc1a-37faa13b372c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e e146bc47-a61b-4bec-bc1a-37faa13b372c","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":571,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"0ae6bf62-bc86-44bf-b631-7329d2a379ca","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e 0ae6bf62-bc86-44bf-b631-7329d2a379ca","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":572,"source_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","target_id":"4c36e3bc-fa82-4d1b-a78d-e0832adf415b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b2dccb33-ffec-4b07-8759-f7ce71472ecb -\u003e 4c36e3bc-fa82-4d1b-a78d-e0832adf415b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":573,"source_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","target_id":"e05b2dc7-2335-4c8b-b24c-48a1f98f5361","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b2dccb33-ffec-4b07-8759-f7ce71472ecb -\u003e e05b2dc7-2335-4c8b-b24c-48a1f98f5361","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":574,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"e200c8f1-c37b-41e9-bac1-057445ecb066","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e e200c8f1-c37b-41e9-bac1-057445ecb066","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":575,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"6e962549-b111-4d8e-b263-89eafba99a84","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e 6e962549-b111-4d8e-b263-89eafba99a84","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":576,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"3a97712d-0f09-4a0a-b365-60d2af7a7fe2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e 3a97712d-0f09-4a0a-b365-60d2af7a7fe2","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":577,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"0eb7033e-6cb9-4e9c-8641-e80f88d0203c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 0eb7033e-6cb9-4e9c-8641-e80f88d0203c","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":578,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"838ae7a4-15cd-489b-b25d-f4af8946b45b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 838ae7a4-15cd-489b-b25d-f4af8946b45b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":579,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"6d1d4be2-a13f-4897-bcc9-362da9158d9b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 6d1d4be2-a13f-4897-bcc9-362da9158d9b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":580,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"0eb68661-00bd-4d95-809e-54d87927a654","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 0eb68661-00bd-4d95-809e-54d87927a654","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":581,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"8a159a71-a6ed-4138-93a9-e7c1be49368b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 8a159a71-a6ed-4138-93a9-e7c1be49368b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":582,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"4bf6885a-1224-4cca-8789-3f3def1f0343","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 4bf6885a-1224-4cca-8789-3f3def1f0343","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":583,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":584,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"34d853c3-140d-40d8-80fa-e7f32e322305","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 34d853c3-140d-40d8-80fa-e7f32e322305","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":585,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":586,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"324bc16b-185c-4af1-8202-3d9b7a9e6e6f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 324bc16b-185c-4af1-8202-3d9b7a9e6e6f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":587,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":588,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"53947e3e-89de-416d-857e-54a84330a7ae","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e 53947e3e-89de-416d-857e-54a84330a7ae","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":589,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"17fa72bc-2bc8-478c-9b6a-9d6cae53f588","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e 17fa72bc-2bc8-478c-9b6a-9d6cae53f588","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":590,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"a3c9a66f-dcd6-40fb-89b8-abb130e7744a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e a3c9a66f-dcd6-40fb-89b8-abb130e7744a","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":591,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"fc236117-4117-4af0-8d3d-0c3fbecab71a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e fc236117-4117-4af0-8d3d-0c3fbecab71a","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":592,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"4d1ec235-b735-4351-abdb-3721a223dd51","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e 4d1ec235-b735-4351-abdb-3721a223dd51","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":593,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e 7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":594,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"a75ff292-fb3f-42ba-84d8-189105b57626","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e a75ff292-fb3f-42ba-84d8-189105b57626","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":595,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"e8e1b906-cdb1-41b2-a03b-8450dfec49e1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e e8e1b906-cdb1-41b2-a03b-8450dfec49e1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":596,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e 0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":597,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"24431815-8687-4b29-b798-214916920f7f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e 24431815-8687-4b29-b798-214916920f7f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":598,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"eee4b669-1eb7-45b9-a835-ffebfee1f682","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e eee4b669-1eb7-45b9-a835-ffebfee1f682","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":599,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"d7798344-7bd7-4d4b-b7af-12e478898534","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e d7798344-7bd7-4d4b-b7af-12e478898534","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":600,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"f696338b-1dae-45bc-b4e4-f7aab1a66b0d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e f696338b-1dae-45bc-b4e4-f7aab1a66b0d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":601,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"1d532660-5e04-421b-a2b4-3e542c48a890","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e 1d532660-5e04-421b-a2b4-3e542c48a890","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":602,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"d018b60f9d48763366246e537520686c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-51","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":603,"source_id":"eb8338fb24a00daa3a4838bbc0ab1393","target_id":"f451dcc5212a1a2b4e0ce80b06f8e185","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 8-27","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":604,"source_id":"0f583231f0ca6eb6bdc0cd3104f97d42","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":605,"source_id":"b6012388f040de469b7ec2244cf9d3bf","target_id":"4bad57683321787594727c10ee94c33b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-37","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":606,"source_id":"40a0c2b01b15ceae41bdd421874c199e","target_id":"aee3a2f386eb5a98ddf5ca7cccff0929","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-102","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":607,"source_id":"fb94b419b6c25749805b970980a051ae","target_id":"6fe67e9d805a0a633f90f268ef2ee2f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-127","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":608,"source_id":"fa2076592876f7f4387e9050085ba9b5","target_id":"32bf22e91c31d6f141bf6b7ef0de7b96","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-80","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":609,"source_id":"ce93596b3c315be9ad061ed78b9b4a16","target_id":"7face210770aa4ec553604c6d0931175","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-44","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":610,"source_id":"1ede9ed0ed4e2fea117f1f0ee3228874","target_id":"842d4a8a22707111e666ac492238b5ef","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-67","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":611,"source_id":"219fe92fb80e3fa8bd7e4080d15e457a","target_id":"c701edfecf07f4017d7d956624072fde","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-767","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":612,"source_id":"9592a0fc953a2595f709cd0c67c70a06","target_id":"4d71ea0833e7a0a8266b6f2e8b05e459","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-28","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":613,"source_id":"56c658d00971d4697ee90a4fd6912832","target_id":"0d5907fd86f99e310c6663b7e705ab7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":614,"source_id":"0f0ab37127003f1af1d234709f1d3198","target_id":"488c440eb23bb1208ec810e0d3738028","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-343","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":615,"source_id":"1ffd22848808f089677c2ddc482a954a","target_id":"badc687590596030499ebead18afabfc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-48","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":616,"source_id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","target_id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-174","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":617,"source_id":"79ad87595e6f3cccf7d1df8561c8667d","target_id":"f67970ad2e09c5f5a6048ff8ef3cd50c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":618,"source_id":"94aa282e4a22f85674f3004894e95b12","target_id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-25","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":619,"source_id":"3695f0446f58c552ec036968b720c585","target_id":"1c004f6c7e82e215a8538bb563de1a80","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-63","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":620,"source_id":"297412eae542d50411094ce29ff6e9b3","target_id":"9311a5593c3cb84df188d914b5fcb57b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-33","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":621,"source_id":"4f2117fd41858c8f1f05e73af0c4d045","target_id":"734fa931bccd869983dd85fd9b7ab371","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-28","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":622,"source_id":"10b4b7e7bda705f2473233626534db93","target_id":"d96edb8b929124b14e6a2f23bb5174d1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-27","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":623,"source_id":"251c480af7207ec9635af57c9bc50f04","target_id":"6b7240b29633b5a3401cf9e8ec69999f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-22","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":624,"source_id":"24b833965d28e1470eacd7df237acdb4","target_id":"338cc7bab8a15d021b6bf4faea030524","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-27","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":625,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"314337c7901e5f608be04c99dbf9dcda","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-67","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":626,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"02b920b240a8a0b5cc76dbdd011bfade","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-257","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":627,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"a1f8285bc58503a0979846e628322395","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-230","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":628,"source_id":"b0dcfa2b0067be5ec2e3f00ad722ed85","target_id":"62d876856f82a4ea1e63b343aa650ddc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-164","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":629,"source_id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","target_id":"0450d2bd60154c9defe18e2dd0db3944","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":630,"source_id":"2a00f83021031103c438a59751eee183","target_id":"776a898a7e3af295ac0d3f657e027a43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":631,"source_id":"eddf871859d423ace01da9a74db6db86","target_id":"f4357af3bdee1af700d66352486740ac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":632,"source_id":"50111ae80e6ac600d65fbd7b34df3d03","target_id":"1f3f6baf21697865c02621086d9ebce9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":633,"source_id":"6949b603968e204a80d7e6e337496f12","target_id":"852c344b512f86e468cc155a007239c3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":634,"source_id":"b896e4b9529b9c35c2662cf25560c5cd","target_id":"7f41c190fab616ed408fb3470b01e156","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":635,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"ce051f6cc8a25a53dcd349ccf066f90b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_apple/apple_card_info_v1_recharge_list_download_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":636,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"315cb5ac67c46c359e9c8f8aecd320da","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/restriction/restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":637,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"69602f92dc2983d638407af34ffc3699","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cron/t_mall_game_data_sync_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":638,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"a4390b2a5bd3345ca09b4f120a912bf6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":639,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"8d5d9b9151c15db5b80bdccfa4ad9e4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_account/account_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":640,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"3676af4fc53a7e056b34c4afcae6f032","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_account/wallet_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":641,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"1339d4fd004425708306ffba6c2dd7f9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/order_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":642,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"12223cc24bc431745a711c09cde5b50c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_cookie/place_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":643,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"2081083be98975ed163a65fade66d84a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_account/summary_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":644,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"d68b895f71aba40116241dab68952308","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/steal_rule/stats_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":645,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"c87e75096c95a73029618add8b2030a6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/limiter/rate_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":646,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"54791cda92ceb80fb0fd1d394b3c7786","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: go.mod","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":647,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"6f6df715215e91eb3286c71371bf331d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: hack/config.yaml","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":648,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":649,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":650,"source_id":"f72071e80cb61857e0d4b22414fa6ea4","target_id":"8fe8c9081678e20a4b8fa4a4bbddf5e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-123","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":651,"source_id":"03c5c54ee07952069215a22a208842f4","target_id":"d21bc3b599b7c526e4c859b7f957c9c3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":652,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"f48ef892510854b251b181c258bcd119","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-68","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":653,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"964e3fe5d6407728afe85f53719ef569","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-258","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":654,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"616759a9a4d327984230aefdae310fbb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-33","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":655,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"d32ea696977b297ef621a0fb8b5ab306","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-86","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":656,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"b1f6a58d5a943577f0c54d3666cb8975","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":657,"source_id":"b100fafa43450f0fdfd71975218cd99c","target_id":"589fe36265ad27bcea83406c4f9b4f62","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":658,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"59b6d508a3e965dc106b1cbeac2570ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-52","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":659,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"01f4775a3f4eabe935537909fd08110b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-55","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":660,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"6172294c21d9eeef4f7e1cbee7494df4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-550","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":661,"source_id":"eec37ad3c15d2c25f166711fa52e741b","target_id":"2deccc6412aa3a542406ea4123dbd7e6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 150-160","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":662,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"d002a301044bef263b2a95b977c75925","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/aes_ecb.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":663,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"72755b8cc621f2d563a4a5ee5222529b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/md5.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":664,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b279f7393bb4b20c60e4a58537fad6f5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/mfa/mfa.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":665,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a3b7521789787cc4db7608d02c5e95f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":666,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"674428c72460e01521574ca280c115f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":667,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ee654b1f5fb098fe9e7aeb85bd452349","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":668,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"8193684ba57063beec7b646d4b1b54e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":669,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"55835e5aa0b4632d7c3ab1cb90645f23","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_casbin.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":670,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c08fb0c498d0fab1d988a77466050227","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":671,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"9cd3a5d90f9aa905b7855847b1300d50","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_sys_casbin_rule.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":672,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b100fafa43450f0fdfd71975218cd99c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: resource/casbin/rbac_model.conf","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":673,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":674,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ec6f80518cdb41b1cb7ec141e92638a1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":675,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"ec6f80518cdb41b1cb7ec141e92638a1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":676,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"972216ab1861cc2715878f10ca1d7e82","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/sys_user.go#1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":677,"source_id":"674428c72460e01521574ca280c115f4","target_id":"972216ab1861cc2715878f10ca1d7e82","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":678,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"43ed130e118ec9a873129314ddcd834d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/service/sys_casbin.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":679,"source_id":"55835e5aa0b4632d7c3ab1cb90645f23","target_id":"43ed130e118ec9a873129314ddcd834d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":680,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"144cff56ec3838a61a926b3ff9a3d25e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":681,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"144cff56ec3838a61a926b3ff9a3d25e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":682,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c23df18489eaaeec8a340de242b77b44","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":683,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"4f93cccb25d8c64e73e92615a203e00e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/token/user_token.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":684,"source_id":"c23df18489eaaeec8a340de242b77b44","target_id":"4f93cccb25d8c64e73e92615a203e00e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":685,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a964b09bca4acd49db9824c141108f00","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: resource/casbin/rbac_model.conf#1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":686,"source_id":"b100fafa43450f0fdfd71975218cd99c","target_id":"a964b09bca4acd49db9824c141108f00","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":687,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"5613af50c546b7eeb54ca83263a76c29","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/v_1_sys_casbin_rule.go#1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":688,"source_id":"9cd3a5d90f9aa905b7855847b1300d50","target_id":"5613af50c546b7eeb54ca83263a76c29","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":689,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ceaf312dde8910a6de9a4671cd06d559","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/mfa/mfa.go#1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":690,"source_id":"b279f7393bb4b20c60e4a58537fad6f5","target_id":"ceaf312dde8910a6de9a4671cd06d559","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":691,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ed43772f3487059e03a475d29e64c140","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/sysUser/sysUser_v1_totp_status_get.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":692,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"7d199570ba96ddc2ca6639d6d726d419","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/sysUser/sysUser_v1_totp_status_get.go#1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":693,"source_id":"ed43772f3487059e03a475d29e64c140","target_id":"7d199570ba96ddc2ca6639d6d726d419","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":694,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ed385c7e637955c644231fb8b9437600","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/sysUser/sysUser_v1_totp_set.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":695,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"8c317fe404ce5c22b9feef901431fcc5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/sysUser/sysUser_v1_totp_set.go#1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":696,"source_id":"ed385c7e637955c644231fb8b9437600","target_id":"8c317fe404ce5c22b9feef901431fcc5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":697,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a5e8020f6c112eb351bfce346cc7e7cd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":698,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"a5e8020f6c112eb351bfce346cc7e7cd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":699,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"cce1b31f34a553e7032bfe746d1cd94b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/md5.go#1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":700,"source_id":"72755b8cc621f2d563a4a5ee5222529b","target_id":"cce1b31f34a553e7032bfe746d1cd94b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":701,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a4b14b6b79267d38f599e305591c3273","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/service/sys_user.go#1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":702,"source_id":"ee654b1f5fb098fe9e7aeb85bd452349","target_id":"a4b14b6b79267d38f599e305591c3273","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":703,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"00d464ab1568b59906f97ec8146e8af4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/errHandler/handler.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":704,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"4eedd1dcf74ca7ed561a2da81f45f3d7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/errHandler/handler.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":705,"source_id":"00d464ab1568b59906f97ec8146e8af4","target_id":"4eedd1dcf74ca7ed561a2da81f45f3d7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":706,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":707,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"276c0639f90dcf2a34f4f4fbde119792","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/form.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":708,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"b68f5340d85dff7e7356a47028249bea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/log.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":709,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"d004861257e62752cfed1f1a3dee4f6e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/order_summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":710,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"117de4e77295f9440aa08bf4b60bb54e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/order.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":711,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"fb972da6475be273c156b3d340c60b4d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_new.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":712,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"1b43f5469efafba6f30e2a9bf228e4d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_create.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":713,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"6d0148a632b80d69ab9cb23b7b7c1177","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_update.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":714,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"493b77f6804c0cb6c2b773567f9a98a5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_delete.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":715,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"16690b403f75ad7364b91d742d4e0ec2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":716,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"23d82c1c91bfb481851d2302868008b1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":717,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"58a47489aee9a8f906d1d2120d982105","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_delete.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":718,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"b477f7365d4c6efa2c1cbcd88d2e7db9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":719,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"3a8478b750f71d410904fb39aa1e55bc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":720,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"07658a06e2cd29c67a415fcae7cad0cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/order_info.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":721,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"ea969bf93403e59ca22028be70fc6c3a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/merchant_order/order-summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":722,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":723,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"498fdff361f9c01e54357a315e9f7d11","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":724,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"eb65af27cb143cabfacf4e397cb494ca","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":725,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_redeem_cookie.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":726,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"ef7aefce9f83002d91de28b146a92720","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_jd.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":727,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"dd733661014ef5805339ded90facaed0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":728,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"dd733661014ef5805339ded90facaed0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":729,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"9749731ed765b177a75bbb84edc2c781","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go#35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":730,"source_id":"eb65af27cb143cabfacf4e397cb494ca","target_id":"9749731ed765b177a75bbb84edc2c781","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":731,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"f415bde86145ca67e63b0a6a7645487a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":732,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"f415bde86145ca67e63b0a6a7645487a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":733,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"ff9ed734519da40b64bea347532ad39d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go#110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":734,"source_id":"eb65af27cb143cabfacf4e397cb494ca","target_id":"ff9ed734519da40b64bea347532ad39d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":735,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"a0944686e185b8cdc6f06d21d5678c43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_redeem_cookie.go#25-35","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":736,"source_id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","target_id":"a0944686e185b8cdc6f06d21d5678c43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-35","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":737,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"c6ba97566833b54cd4ff516c8ea88f46","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_jd.go#45-65","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":738,"source_id":"ef7aefce9f83002d91de28b146a92720","target_id":"c6ba97566833b54cd4ff516c8ea88f46","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-65","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":739,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"8a5414d484500ba17e6a788ce484c21b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#10-20","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":740,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"8a5414d484500ba17e6a788ce484c21b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-20","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":741,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"37112fccfc8b194c480bb373d48115f7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#70-80","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":742,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"37112fccfc8b194c480bb373d48115f7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 70-80","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":743,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":744,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"5b63b16fce716e9c574c9fcdb6fb533b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":745,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"c0b5e0a48e881e774316a237bd41edcf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":746,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1c27101b67ffcdf02489a331ce98d3dd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":747,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"a2750efa03ae7599bd56314495a2da56","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_jd/card_info_jd_v1_order_callback.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":748,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"711773636c036a042ce625f30229a418","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":749,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1b7d72f7f4a9bb0f3f8a8dc432a433f6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/do/order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":750,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"035d413d594bd8cd49b625ad3200b11c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":751,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"449f4de7045f7b39ec1c6aa4ecb4b840","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":752,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"a2623d6811b08468df51c167eaf9b774","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":753,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"8ac69700098158e9e90a9a8f1a247a9a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/consts/sys_user_payment_record.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":754,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1b43f5469efafba6f30e2a9bf228e4d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_create.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":755,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"23d82c1c91bfb481851d2302868008b1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":756,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"b477f7365d4c6efa2c1cbcd88d2e7db9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":757,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"70e0b28642444d37c06db48c6c61307d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":758,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"3c6298484df164a1e5fe7fc2efa9712c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_walmart/card_info_walmart_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":759,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"fec40ef00c4cd2e564af5cea15277c85","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":760,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"f18bd86f1dafe9eae88b4f4b00db9bcd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_order/card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":761,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"c6ee44f200688a3a1f009e9a166d6481","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/utils/tools.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":762,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"bd83967e8844a9df33a6def66ff88bf8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cache/cache.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":763,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"eec37ad3c15d2c25f166711fa52e741b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/consts/jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":764,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"edd8bea5c8f9373cd0b4de186914479e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":765,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"d6ab1f208fb77fbc9859cad2aa6bb1ed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":766,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"7edb6bdca57d6bc188cd5b2bbbc4a138","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/logic/jd_cookie/order.go#50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":767,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"7edb6bdca57d6bc188cd5b2bbbc4a138","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":768,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"2deccc6412aa3a542406ea4123dbd7e6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/consts/jd_cookie.go#150-160","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":769,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"5266c40167bf3310e85d510942a06173","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/logic/jd_cookie/order.go#450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":770,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"5266c40167bf3310e85d510942a06173","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":771,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"03c5c54ee07952069215a22a208842f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/integration/originalJd/model.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":772,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"782300bf902736466e525e642592486f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/integration/originalJd/model.go#136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":773,"source_id":"03c5c54ee07952069215a22a208842f4","target_id":"782300bf902736466e525e642592486f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":774,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":775,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0fdae6a89fef78f6368400b1fe726d987adda7b1","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":776,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"d002a301044bef263b2a95b977c75925","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/aes_ecb.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":777,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"72755b8cc621f2d563a4a5ee5222529b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/md5.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":778,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"91b0ce4e15bd2ec12a8c8f87efd69254","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/config/config.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":779,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"c6ee44f200688a3a1f009e9a166d6481","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/utils/tools.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":780,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"674428c72460e01521574ca280c115f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":781,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"7fa23727ee8e479ba4e92dc3eed84908","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/systemV2/logic/user_center/user_center.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":782,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"469f62d9db11e2c4fb3697ae2e85f81a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/internal/v_1_sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":783,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":784,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"47824ef49939140f82365cb3d0eb0cc1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":785,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"47824ef49939140f82365cb3d0eb0cc1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":786,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/md5.go#1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":787,"source_id":"72755b8cc621f2d563a4a5ee5222529b","target_id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":788,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"767b677153edb86515b77286476ce79b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/utils/tools.go#1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":789,"source_id":"c6ee44f200688a3a1f009e9a166d6481","target_id":"767b677153edb86515b77286476ce79b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":790,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"fea30ea749579359c4f54de16878cf4f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":791,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"fea30ea749579359c4f54de16878cf4f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":792,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"ef1e0649738859b4447918324f2572d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/utils/tools.go#22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":793,"source_id":"c6ee44f200688a3a1f009e9a166d6481","target_id":"ef1e0649738859b4447918324f2572d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":794,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"0383311e02468d4e918e6065aa543159","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/internal/v_1_sys_user.go#37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":795,"source_id":"469f62d9db11e2c4fb3697ae2e85f81a","target_id":"0383311e02468d4e918e6065aa543159","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":796,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"3b0d083ad6e1e42c3cadee5c77b796a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/sys_user.go#0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":797,"source_id":"674428c72460e01521574ca280c115f4","target_id":"3b0d083ad6e1e42c3cadee5c77b796a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":798,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"35ff891033d9d93c8fa7614ad2fce15d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: JD_COOKIE_REFACTOR_REPORT.md#1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":799,"source_id":"c240c13752c53bbb87d71a8654be71ea","target_id":"35ff891033d9d93c8fa7614ad2fce15d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":800,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"8f77a4f0854077c3774992dffc7b67b7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/config/config.go#15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":801,"source_id":"91b0ce4e15bd2ec12a8c8f87efd69254","target_id":"8f77a4f0854077c3774992dffc7b67b7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":802,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":803,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":804,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0fdae6a89fef78f6368400b1fe726d987adda7b1","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":805,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":806,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"bb84a187-9957-4c61-82b0-b8997f3b306a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e bb84a187-9957-4c61-82b0-b8997f3b306a","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":807,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b52b76ee-90db-4464-bb9d-431b10755e6e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e b52b76ee-90db-4464-bb9d-431b10755e6e","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":808,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e 9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":809,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"d15e79da-d03f-46a7-9939-d486c82bdd9e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e d15e79da-d03f-46a7-9939-d486c82bdd9e","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":810,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"477c9fd9-139a-43fe-87ae-8d64529bbf2c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e 477c9fd9-139a-43fe-87ae-8d64529bbf2c","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":811,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"4c9682c6-1065-4e84-8b74-f2fdd80c62f4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e 4c9682c6-1065-4e84-8b74-f2fdd80c62f4","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":812,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":813,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"753b0096-e6c4-42d1-aba0-93c8df17fdc9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ab1acd9-0488-4f69-a292-63359e8a485a -\u003e 753b0096-e6c4-42d1-aba0-93c8df17fdc9","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":814,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"080fba3c-3cca-40b8-b913-c5cf213a36f9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ab1acd9-0488-4f69-a292-63359e8a485a -\u003e 080fba3c-3cca-40b8-b913-c5cf213a36f9","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":815,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"61e64814-3402-4560-ac80-de2897628585","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 61e64814-3402-4560-ac80-de2897628585","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":816,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":817,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"04861c55-7eb4-4fb8-9367-ea7653e898c2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 04861c55-7eb4-4fb8-9367-ea7653e898c2","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":818,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"f64c7936d86ec71ec54ea9cb5a6d7466","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/config/config.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":819,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"e5e06384050da6e9cb71d788b8fdfea5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/Dockerfile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":820,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"5c71a6de5070579b5c90694ac98bb368","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/docker-compose.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":821,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"07153a17d7dda70c75d2b1b4146f582c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/docker-compose-local.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":822,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"ff277b9199e792d02dbfa13f55915d43","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/install.sh","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":823,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"4d75f6651634ab298f2875fc0e83333d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/base/kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":824,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":825,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"1e38df357652b98eb89f47c776d89716","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/base/deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":826,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"375bbed4688b0d8de4a69655f763d5fe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":827,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"9bf50a69c00a52a1dff9af6d0a524561","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/configmap.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":828,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"cd7e39cff0a7e858c297aca5f1d6a079","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: Makefile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":829,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"fa263673f2a99e1b81a89d8bcba135f2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: hack/hack.mk","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":830,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"a032002d1754289832a7235ddf38bba8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: .drone.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":831,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"2e66ec3759ab8e44a2f8b14f29e91610","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cron/cron.go","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":832,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"acfa1be45056640e25383a94f19dc7d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/config/config.yaml#1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":833,"source_id":"f64c7936d86ec71ec54ea9cb5a6d7466","target_id":"acfa1be45056640e25383a94f19dc7d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":834,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"b73368b03e242affa847ca3d7470031e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/Dockerfile#1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":835,"source_id":"e5e06384050da6e9cb71d788b8fdfea5","target_id":"b73368b03e242affa847ca3d7470031e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":836,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"db1c31f617d9e5f634d8339367911606","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/docker-compose.yml#1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":837,"source_id":"5c71a6de5070579b5c90694ac98bb368","target_id":"db1c31f617d9e5f634d8339367911606","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":838,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"dd64c275dd8d4bc11cde8a7b7a290fed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/docker-compose-local.yaml#1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":839,"source_id":"07153a17d7dda70c75d2b1b4146f582c","target_id":"dd64c275dd8d4bc11cde8a7b7a290fed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":840,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"d6cc2f26e69178bb84fde4c8efd2bc72","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: Makefile#1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":841,"source_id":"cd7e39cff0a7e858c297aca5f1d6a079","target_id":"d6cc2f26e69178bb84fde4c8efd2bc72","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":842,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"dfaf7eeee313e45381a5c84acad7d598","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: hack/hack.mk#1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":843,"source_id":"fa263673f2a99e1b81a89d8bcba135f2","target_id":"dfaf7eeee313e45381a5c84acad7d598","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":844,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"037c00a89165736016c43de51f38904f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/install.sh#1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":845,"source_id":"ff277b9199e792d02dbfa13f55915d43","target_id":"037c00a89165736016c43de51f38904f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":846,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"de0ba4e69640dc07afdabcd8239a78d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/base/kustomization.yaml#1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":847,"source_id":"4d75f6651634ab298f2875fc0e83333d","target_id":"de0ba4e69640dc07afdabcd8239a78d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":848,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"6bd49f88fb853be92cced1cf022cf602","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/kustomization.yaml#1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":849,"source_id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","target_id":"6bd49f88fb853be92cced1cf022cf602","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":850,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"3b39ff5f0cfc1dd7c098c94d3f933f75","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/base/deployment.yaml#1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":851,"source_id":"1e38df357652b98eb89f47c776d89716","target_id":"3b39ff5f0cfc1dd7c098c94d3f933f75","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":852,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"0e4358230bffd4be2ea7053332694d44","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/deployment.yaml#1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":853,"source_id":"375bbed4688b0d8de4a69655f763d5fe","target_id":"0e4358230bffd4be2ea7053332694d44","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":854,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"ab5aade552f972707c516a2836e5599e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/configmap.yaml#1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":855,"source_id":"9bf50a69c00a52a1dff9af6d0a524561","target_id":"ab5aade552f972707c516a2836e5599e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":856,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"7ba715316b620dc29a8f18d4de067b23","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .drone.yml#1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":857,"source_id":"a032002d1754289832a7235ddf38bba8","target_id":"7ba715316b620dc29a8f18d4de067b23","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":858,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c5ee11836f7ab42cda2655f445cac377","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/cron/cron.go#1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":859,"source_id":"2e66ec3759ab8e44a2f8b14f29e91610","target_id":"c5ee11836f7ab42cda2655f445cac377","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":860,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"34","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 34","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":861,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"12","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 12","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":862,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":863,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"0f583231f0ca6eb6bdc0cd3104f97d42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/main.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":864,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"debc2930279b67133bdabc1b8627fa74","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/config.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":865,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"646de3e21aede32684ac250608e30f81","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/manager.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":866,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"1455afd43a1181b4924167eee7f2bf61","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/utils.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":867,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"4aab766e7ad6f5e8c17384b0d5361728","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/resource/casbin/rbac_model.conf","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":868,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"487ce7ed78126fa758cc2d348b2f410e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/jd/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":869,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"85326ba007bc4b730914abf2639ab613","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/ctrip/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":870,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"08fcd1de22231d0da02880634f8774fa","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/walmart/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":871,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"38d3cae75228d13a3dd19e8fa2956753","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/tmall/api/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":872,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"ce3a1385eaebaa905699b23ad83e209c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/client.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":873,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"966e173135a1b07b87f554aa60f65dd1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/model.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":874,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"348a584cbaee62585af0b8f576760382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":875,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"268b3e7951536fbd682c2f50b8960980","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/jd/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":876,"source_id":"487ce7ed78126fa758cc2d348b2f410e","target_id":"268b3e7951536fbd682c2f50b8960980","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":877,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"9f040686e23b6fd6b3b53522a50a3fae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/ctrip/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":878,"source_id":"85326ba007bc4b730914abf2639ab613","target_id":"9f040686e23b6fd6b3b53522a50a3fae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":879,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d5f63253bfce66da1b9e040b318f5ac8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/walmart/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":880,"source_id":"08fcd1de22231d0da02880634f8774fa","target_id":"d5f63253bfce66da1b9e040b318f5ac8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":881,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"8fcf454d6439e16e2ee45b592d199565","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/tmall/api/api.go#1-20","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":882,"source_id":"38d3cae75228d13a3dd19e8fa2956753","target_id":"8fcf454d6439e16e2ee45b592d199565","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-20","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":883,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"e7f3e2357a5be12aba6f1b222070b75b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/client.go#11-123","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":884,"source_id":"ce3a1385eaebaa905699b23ad83e209c","target_id":"e7f3e2357a5be12aba6f1b222070b75b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-123","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":885,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"513dd1188dfbad313f70d29fb1e183bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/model.go#1-144","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":886,"source_id":"966e173135a1b07b87f554aa60f65dd1","target_id":"513dd1188dfbad313f70d29fb1e183bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":887,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"4fdff47316ebde6fa296678a3558466a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/config.go#1-68","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":888,"source_id":"debc2930279b67133bdabc1b8627fa74","target_id":"4fdff47316ebde6fa296678a3558466a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-68","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":889,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3172bdd0bdcdcc9961668dac5cd7736a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#1-258","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":890,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"3172bdd0bdcdcc9961668dac5cd7736a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-258","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":891,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/main.go#1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":892,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f43353da0dd842671b2ecd75845577a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/utils.go#22-33","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":893,"source_id":"1455afd43a1181b4924167eee7f2bf61","target_id":"f43353da0dd842671b2ecd75845577a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-33","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":894,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"878ca019cafcda589777cca1b9d046d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#35-86","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":895,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"878ca019cafcda589777cca1b9d046d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-86","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":896,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"7f9267cfe8229dcd33f476ce31fd1bfa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/utils.go#1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":897,"source_id":"1455afd43a1181b4924167eee7f2bf61","target_id":"7f9267cfe8229dcd33f476ce31fd1bfa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":898,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d80df587153dec12950eadafbd55b449","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/resource/casbin/rbac_model.conf#1-14","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":899,"source_id":"4aab766e7ad6f5e8c17384b0d5361728","target_id":"d80df587153dec12950eadafbd55b449","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":900,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f25e656cbd55294916b70a73a1c4e583","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/config.go#40-52","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":901,"source_id":"debc2930279b67133bdabc1b8627fa74","target_id":"f25e656cbd55294916b70a73a1c4e583","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-52","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":902,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"74c031b18c09b203210b77a20abc9d53","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":903,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"74c031b18c09b203210b77a20abc9d53","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":904,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3ae8a564e67df9aaecee08d5880927e3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go#500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":905,"source_id":"348a584cbaee62585af0b8f576760382","target_id":"3ae8a564e67df9aaecee08d5880927e3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":906,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"14a77dff2e965ae92bd92a79f7c51ea1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/consts/jd_cookie.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":907,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"a4121ec796fe7df03e581a951109bf2c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/consts/jd_cookie.go#150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":908,"source_id":"14a77dff2e965ae92bd92a79f7c51ea1","target_id":"a4121ec796fe7df03e581a951109bf2c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":909,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":910,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":911,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":912,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":913,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f583231f0ca6eb6bdc0cd3104f97d42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/main.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":914,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"b6012388f040de469b7ec2244cf9d3bf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/logic.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":915,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"40a0c2b01b15ceae41bdd421874c199e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":916,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"9592a0fc953a2595f709cd0c67c70a06","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/dao/v_1_sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":917,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"56c658d00971d4697ee90a4fd6912832","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/model/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":918,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"219fe92fb80e3fa8bd7e4080d15e457a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/sys_user/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":919,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f0ab37127003f1af1d234709f1d3198","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_apple_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":920,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0de0fc73ea1c0c78e2d71d04a0a94411","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":921,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"1ffd22848808f089677c2ddc482a954a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/merchant_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":922,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/restriction/restriction.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":923,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d341b69869e9863f8bd7ed7614572d1c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":924,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"fb94b419b6c25749805b970980a051ae","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_apple_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":925,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"fa2076592876f7f4387e9050085ba9b5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_redeem_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":926,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"ce93596b3c315be9ad061ed78b9b4a16","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/merchant_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":927,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"1ede9ed0ed4e2fea117f1f0ee3228874","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/restriction.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":928,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c22d8bb47932b7530c368ff1de72e79a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_t_mall_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":929,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"79ad87595e6f3cccf7d1df8561c8667d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/manifest/config/config.yaml","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":930,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"348a584cbaee62585af0b8f576760382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":931,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"9fbcfcc5b312f6ea4b7a2f526f4fc0c4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/jd_cookie.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":932,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f4b79c169b55a4a353922e49057ab34","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_create.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":933,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"8297c82d56a4566b4e439161bc2454c7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_utils.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":934,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"6f426da779ea01b260285f35941ee350","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":935,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/main.go#1-50","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":936,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"4bad57683321787594727c10ee94c33b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/logic.go#1-37","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":937,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"aee3a2f386eb5a98ddf5ca7cccff0929","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/sys_user.go#1-102","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":938,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"6fe67e9d805a0a633f90f268ef2ee2f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/card_apple_order.go#1-127","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":939,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"32bf22e91c31d6f141bf6b7ef0de7b96","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/card_redeem_order.go#1-80","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":940,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"7face210770aa4ec553604c6d0931175","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/merchant_order.go#1-44","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":941,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"842d4a8a22707111e666ac492238b5ef","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/restriction.go#1-67","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":942,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c701edfecf07f4017d7d956624072fde","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/sys_user/sys_user.go#1-767","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":943,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"4d71ea0833e7a0a8266b6f2e8b05e459","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/dao/v_1_sys_user.go#1-28","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":944,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0d5907fd86f99e310c6663b7e705ab7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/model/sys_user.go#1-92","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":945,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"488c440eb23bb1208ec810e0d3738028","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/card_apple_order/order.go#1-343","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":946,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"badc687590596030499ebead18afabfc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/merchant_order/order.go#1-48","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":947,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/restriction/restriction.go#1-174","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":948,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"f67970ad2e09c5f5a6048ff8ef3cd50c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/manifest/config/config.yaml#1-10","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":949,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"8bc2d51c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8bc2d51c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":950,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":951,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":952,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":953,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":954,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":955,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"a3b7521789787cc4db7608d02c5e95f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/auth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":956,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"eb8338fb24a00daa3a4838bbc0ab1393","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/error_handler.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":957,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"8193684ba57063beec7b646d4b1b54e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_auth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":958,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"b02b1b196de6c12a1b511f4fe368aefa","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/sys_auth/sysAuth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":959,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"fb7ae04d8afd7c7f540758059df7b9fc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_create_account.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":960,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"d212b7838198d532442a43a2720f228c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_create_order.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":961,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"ecaa7eef95a04c10e41b14218959f6bf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_batch_check.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":962,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"c23df18489eaaeec8a340de242b77b44","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":963,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"91b0ce4e15bd2ec12a8c8f87efd69254","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/config/config.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":964,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"a2cc9e42068f81d57e6658912bec50c7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/errHandler/code.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":965,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"d018b60f9d48763366246e537520686c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#22-51","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":966,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"f451dcc5212a1a2b4e0ce80b06f8e185","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/error_handler.go#8-27","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":967,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"28","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 28","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":968,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"30","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 30","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":969,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"31","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 31","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":970,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"6949b603968e204a80d7e6e337496f12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cmd/cmd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":971,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":972,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"2a00f83021031103c438a59751eee183","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/monitor/v1/heathcheck.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":973,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"d9ed9131ddb364556f43b561d041ddd5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":974,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"eddf871859d423ace01da9a74db6db86","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor_new.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":975,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"50111ae80e6ac600d65fbd7b34df3d03","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor_v1_health_check.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":976,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"5824f93b650d7a0b6fb8c1a016077461","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/config.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":977,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"11df2c532cb96a0d8e041af4ea176204","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/manager.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":978,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b0dcfa2b0067be5ec2e3f00ad722ed85","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/handler.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":979,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"70f39d04b38fd3c3c76da74b7b0ed20b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":980,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b896e4b9529b9c35c2662cf25560c5cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":981,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"95d76ee51d8eba69c520952975f3836c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_create.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":982,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b9997c2d25a8edb37042b9aed4b87d4a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":983,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"f72071e80cb61857e0d4b22414fa6ea4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/integration/originalJd/client.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":984,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"ed31ce19cca1ebd07457e557c8cb7147","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":985,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"314337c7901e5f608be04c99dbf9dcda","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/config.go#1-67","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":986,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"02b920b240a8a0b5cc76dbdd011bfade","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/manager.go#1-257","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":987,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"a1f8285bc58503a0979846e628322395","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/utils.go#1-230","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":988,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"62d876856f82a4ea1e63b343aa650ddc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/handler.go#1-164","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":989,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"0450d2bd60154c9defe18e2dd0db3944","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: api/monitor/monitor.go#1-15","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":990,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"776a898a7e3af295ac0d3f657e027a43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: api/monitor/v1/heathcheck.go#1-13","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":991,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"f4357af3bdee1af700d66352486740ac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/monitor/monitor_new.go#1-15","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":992,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"1f3f6baf21697865c02621086d9ebce9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/monitor/monitor_v1_health_check.go#1-13","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":993,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"852c344b512f86e468cc155a007239c3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cmd/cmd.go#1-92","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":994,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"7f41c190fab616ed408fb3470b01e156","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/monitor/monitor.go#1-14","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":995,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":996,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":997,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"26","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 26","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":998,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":999,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"94aa282e4a22f85674f3004894e95b12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_account_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1000,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"3695f0446f58c552ec036968b720c585","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_order_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1001,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"297412eae542d50411094ce29ff6e9b3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1002,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"4f2117fd41858c8f1f05e73af0c4d045","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1003,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"10b4b7e7bda705f2473233626534db93","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1004,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"251c480af7207ec9635af57c9bc50f04","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1005,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"24b833965d28e1470eacd7df237acdb4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_account_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1006,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"035d413d594bd8cd49b625ad3200b11c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_order_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1007,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9ea71fe3dd3d7290fd60892723bb7ee8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1008,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"8d29c379353db1d02b0dbd096eb8a47d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1009,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"319d5ee6b3c76bed0110a972df7470d8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1010,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"81cfcd51a2f0449da14f3d4052765c08","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1011,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"48b3a3cd9e9db7485c82648a8f9c69dc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/merchant/merchant_v1_merchant_config_add.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1012,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9909bbb8255b96a053563e9f3afd6e52","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/account/account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1013,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"c80482f4470a8e3dd050e61ff9bd3738","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/merchant_order/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1014,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"92c36754f0dbd99fed9aa1523374158d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1015,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"cbe32a6c2d1cadcc72019566cad819b6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/status.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1016,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"987fc36e572014bb0a7c02bc015c9fa2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/recharge_history.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1017,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"39c6a811a6208e20dc5b28becf3a2cbe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/steal_relation.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1018,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"fe83d023754ae2aedb7c68ac0f3dcf31","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1019,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"edd8bea5c8f9373cd0b4de186914479e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1020,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"961047bec51802fc7855502acf4bbc07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/rotation.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1021,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_account_info.go#12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1022,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"1c004f6c7e82e215a8538bb563de1a80","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_order_info.go#12-63","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1023,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9311a5593c3cb84df188d914b5fcb57b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_card_apple_recharge_info.go#11-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1024,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"734fa931bccd869983dd85fd9b7ab371","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_account.go#12-28","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1025,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"6d306b24351264c7f10e496503d064f0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_jd_order.go#12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1026,"source_id":"10b4b7e7bda705f2473233626534db93","target_id":"6d306b24351264c7f10e496503d064f0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1027,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"447357bff1aece2f7004a592d1590f3c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_order.go#12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1028,"source_id":"251c480af7207ec9635af57c9bc50f04","target_id":"447357bff1aece2f7004a592d1590f3c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1029,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"dc285be35577dcc5b342eafd1a253628","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/do/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1030,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"856abda221f83e850763d32c49eeb8f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/do/v_1_jd_cookie_order.go#12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1031,"source_id":"dc285be35577dcc5b342eafd1a253628","target_id":"856abda221f83e850763d32c49eeb8f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1032,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"33fd8e434adea0293ba416951c3b04c1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/v_1_jd_cookie_order.go#1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1033,"source_id":"81cfcd51a2f0449da14f3d4052765c08","target_id":"33fd8e434adea0293ba416951c3b04c1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1034,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1035,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1036,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1037,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1038,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1039,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1040,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"c1e3051c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: c1e3051c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1041,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1042,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1043,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1044,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 07388743bf6fdea5ecacfd52844951cf29f1ba5a","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1045,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1046,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d812e1700bb51f25a2e6c7b596cd836326ad0a8f","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1047,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1048,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"ead96af520d030f786869d1a2fc84abf7515ba13","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ead96af520d030f786869d1a2fc84abf7515ba13","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1049,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: cd0ccf6429ac2f33e0a4924282006d85e3631cc8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1050,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5d7a452b6c2a45cd789f302cd469b899a95c3437","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1051,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a50b8b99287d7ee5416b2fa438d7632bca6af461","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1052,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1053,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f6a7e7fcd25a928fdf743967980299caf6e95ee8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1054,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1055,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 59ca3a804f2475b26818d37f3acb8e791eeeec52","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1056,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1057,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f358aa0745eebab14e4848cc7b7093d63ab7ca0c","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1058,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5b059bdb84f8cac3da01ca9e53d0136a28747e2e","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1059,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5170f98c4b5503fbe309f2d93d8361deb7adb713","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1060,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1061,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1062,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"baead12025e075376e7927981cdbdb29fc3e9127","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: baead12025e075376e7927981cdbdb29fc3e9127","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1063,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0e8687c6e1895e5280c42cda1f05e0fe60456c2b","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1064,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"ecd031f3516ddb30d10184bc29008413fe982138","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ecd031f3516ddb30d10184bc29008413fe982138","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1065,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5cbdde321d5a14eeeaf9b4a4885b92b977415750","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1066,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4dc6ef222bf413d145ce29652128ecbd7ea7e31f","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1067,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1068,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: b4f775b86faecdc99a2ab9e89be2d7ca973762ad","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1069,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"e6b4b9c801912c27d75ebee52fe74a427920df99","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e6b4b9c801912c27d75ebee52fe74a427920df99","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1070,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1071,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1072,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1073,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1074,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1075,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1076,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1077,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"c1e3051c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: c1e3051c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1078,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1079,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1080,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1081,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 07388743bf6fdea5ecacfd52844951cf29f1ba5a","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1082,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1083,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d812e1700bb51f25a2e6c7b596cd836326ad0a8f","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1084,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1085,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"ead96af520d030f786869d1a2fc84abf7515ba13","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ead96af520d030f786869d1a2fc84abf7515ba13","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1086,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: cd0ccf6429ac2f33e0a4924282006d85e3631cc8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1087,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5d7a452b6c2a45cd789f302cd469b899a95c3437","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1088,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a50b8b99287d7ee5416b2fa438d7632bca6af461","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1089,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1090,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f6a7e7fcd25a928fdf743967980299caf6e95ee8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1091,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1092,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 59ca3a804f2475b26818d37f3acb8e791eeeec52","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1093,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1094,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f358aa0745eebab14e4848cc7b7093d63ab7ca0c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1095,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5b059bdb84f8cac3da01ca9e53d0136a28747e2e","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1096,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5170f98c4b5503fbe309f2d93d8361deb7adb713","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1097,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1098,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1099,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"baead12025e075376e7927981cdbdb29fc3e9127","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: baead12025e075376e7927981cdbdb29fc3e9127","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1100,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0e8687c6e1895e5280c42cda1f05e0fe60456c2b","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1101,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"ecd031f3516ddb30d10184bc29008413fe982138","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ecd031f3516ddb30d10184bc29008413fe982138","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1102,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5cbdde321d5a14eeeaf9b4a4885b92b977415750","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1103,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4dc6ef222bf413d145ce29652128ecbd7ea7e31f","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1104,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1105,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: b4f775b86faecdc99a2ab9e89be2d7ca973762ad","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1106,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"e6b4b9c801912c27d75ebee52fe74a427920df99","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e6b4b9c801912c27d75ebee52fe74a427920df99","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1107,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1108,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1109,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1110,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1111,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1112,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"e4fe353d-cefc-4899-9e57-39fc9f112127","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e e4fe353d-cefc-4899-9e57-39fc9f112127","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1113,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1114,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e 06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1115,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"399f12e9-6620-446c-9e02-808c39c61bba","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e 399f12e9-6620-446c-9e02-808c39c61bba","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1116,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"d106423b-19ad-4e22-8a4a-567e2ff27e36","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e d106423b-19ad-4e22-8a4a-567e2ff27e36","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1117,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 33150d2c-ac78-4784-a31b-e9d342cc880c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1118,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 2ab1acd9-0488-4f69-a292-63359e8a485a","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1119,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c46f3f6b-d36e-48a1-84b7-1e14cb598119","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e c46f3f6b-d36e-48a1-84b7-1e14cb598119","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1120,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 077abc2a-81e5-4e9c-9a72-757f4765021c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1121,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e ab420b44-4f24-4bc3-a44c-bc68b0868ab8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1122,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e b64a6df1-5797-4877-8b53-29fc0fdad59d","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1123,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f071af41-6de4-4751-8a76-5e5d5d0c02df","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e f071af41-6de4-4751-8a76-5e5d5d0c02df","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1124,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d5e98815-ab00-4c12-8402-2fbc852d8dbd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e d5e98815-ab00-4c12-8402-2fbc852d8dbd","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1125,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"d2e0d8f8-6a5a-4d1d-aa94-30a022535241","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e d2e0d8f8-6a5a-4d1d-aa94-30a022535241","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1126,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1127,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c2fef000-7272-4553-b8e9-650afd08aef6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e c2fef000-7272-4553-b8e9-650afd08aef6","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1128,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"4708f37c-6c92-4fa9-aba1-fa843c3863f2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e 4708f37c-6c92-4fa9-aba1-fa843c3863f2","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1129,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"95e1342a-0e12-4512-98c2-4949a5826e9e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e 95e1342a-0e12-4512-98c2-4949a5826e9e","gmt_create":"2025-11-18T17:28:41.526962+08:00","gmt_modified":"2025-11-18T17:28:41.526962+08:00"},{"id":1130,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"eaaecd0d-f07e-4e5b-8963-4c7502751370","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e eaaecd0d-f07e-4e5b-8963-4c7502751370","gmt_create":"2025-11-18T17:28:41.527062+08:00","gmt_modified":"2025-11-18T17:28:41.527062+08:00"},{"id":1131,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e 3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","gmt_create":"2025-11-18T17:28:41.527134+08:00","gmt_modified":"2025-11-18T17:28:41.527134+08:00"},{"id":1132,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"37f505f3-bc0f-4e17-9e68-01ee420781be","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7af63f20-e74f-4c92-af2f-3124616b0dfc -\u003e 37f505f3-bc0f-4e17-9e68-01ee420781be","gmt_create":"2025-11-18T17:28:41.527204+08:00","gmt_modified":"2025-11-18T17:28:41.527204+08:00"},{"id":1133,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"56220162-83a7-4515-961e-ead90b488a0f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e 56220162-83a7-4515-961e-ead90b488a0f","gmt_create":"2025-11-18T17:28:41.527362+08:00","gmt_modified":"2025-11-18T17:28:41.527362+08:00"},{"id":1134,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"af7baacb-f954-45ab-bdd0-1781066d8db2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e af7baacb-f954-45ab-bdd0-1781066d8db2","gmt_create":"2025-11-18T17:28:41.527426+08:00","gmt_modified":"2025-11-18T17:28:41.527426+08:00"},{"id":1135,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"2fb4f893-35e3-4c02-9030-cbf1a5311cb1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 743dffa6-cd2e-413c-8747-415bb3c039fc -\u003e 2fb4f893-35e3-4c02-9030-cbf1a5311cb1","gmt_create":"2025-11-18T17:28:41.530603+08:00","gmt_modified":"2025-11-18T17:28:41.530603+08:00"}],"source_files":[{"id":"a3b7521789787cc4db7608d02c5e95f4","path":"internal/middleware/auth.go","filename":"auth.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"eb8338fb24a00daa3a4838bbc0ab1393","path":"internal/middleware/error_handler.go","filename":"error_handler.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"c23df18489eaaeec8a340de242b77b44","path":"utility/token/user_token.go","filename":"user_token.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"91b0ce4e15bd2ec12a8c8f87efd69254","path":"utility/config/config.go","filename":"config.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"a2cc9e42068f81d57e6658912bec50c7","path":"internal/errHandler/code.go","filename":"code.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"0f583231f0ca6eb6bdc0cd3104f97d42","path":"/main.go","filename":"main.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"b6012388f040de469b7ec2244cf9d3bf","path":"/internal/logic/logic.go","filename":"logic.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"40a0c2b01b15ceae41bdd421874c199e","path":"/internal/service/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9592a0fc953a2595f709cd0c67c70a06","path":"/internal/dao/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"56c658d00971d4697ee90a4fd6912832","path":"/internal/model/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"219fe92fb80e3fa8bd7e4080d15e457a","path":"/internal/logic/sys_user/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0f0ab37127003f1af1d234709f1d3198","path":"/internal/logic/card_apple_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0de0fc73ea1c0c78e2d71d04a0a94411","path":"/internal/logic/card_redeem_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"1ffd22848808f089677c2ddc482a954a","path":"/internal/logic/merchant_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","path":"/internal/logic/restriction/restriction.go","filename":"restriction.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"d341b69869e9863f8bd7ed7614572d1c","path":"/internal/logic/card_t_mall_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"fb94b419b6c25749805b970980a051ae","path":"/internal/service/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"fa2076592876f7f4387e9050085ba9b5","path":"/internal/service/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"ce93596b3c315be9ad061ed78b9b4a16","path":"/internal/service/merchant_order.go","filename":"merchant_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"1ede9ed0ed4e2fea117f1f0ee3228874","path":"/internal/service/restriction.go","filename":"restriction.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"c22d8bb47932b7530c368ff1de72e79a","path":"/internal/service/card_t_mall_order.go","filename":"card_t_mall_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"79ad87595e6f3cccf7d1df8561c8667d","path":"/manifest/config/config.yaml","filename":"config.yaml","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"348a584cbaee62585af0b8f576760382","path":"/internal/logic/jd_cookie/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9fbcfcc5b312f6ea4b7a2f526f4fc0c4","path":"/internal/service/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"94aa282e4a22f85674f3004894e95b12","path":"internal/model/entity/v_1_account_info.go","filename":"v_1_account_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"3695f0446f58c552ec036968b720c585","path":"internal/model/entity/v_1_order_info.go","filename":"v_1_order_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"297412eae542d50411094ce29ff6e9b3","path":"internal/model/entity/v_1_card_apple_recharge_info.go","filename":"v_1_card_apple_recharge_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"4f2117fd41858c8f1f05e73af0c4d045","path":"internal/model/entity/v_1_jd_cookie_account.go","filename":"v_1_jd_cookie_account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"10b4b7e7bda705f2473233626534db93","path":"internal/model/entity/v_1_jd_cookie_jd_order.go","filename":"v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"251c480af7207ec9635af57c9bc50f04","path":"internal/model/entity/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"24b833965d28e1470eacd7df237acdb4","path":"internal/dao/v_1_account_info.go","filename":"v_1_account_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"035d413d594bd8cd49b625ad3200b11c","path":"internal/dao/v_1_order_info.go","filename":"v_1_order_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9ea71fe3dd3d7290fd60892723bb7ee8","path":"internal/dao/v_1_card_apple_recharge_info.go","filename":"v_1_card_apple_recharge_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"8d29c379353db1d02b0dbd096eb8a47d","path":"internal/dao/v_1_jd_cookie_account.go","filename":"v_1_jd_cookie_account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"319d5ee6b3c76bed0110a972df7470d8","path":"internal/dao/v_1_jd_cookie_jd_order.go","filename":"v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"81cfcd51a2f0449da14f3d4052765c08","path":"internal/dao/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"48b3a3cd9e9db7485c82648a8f9c69dc","path":"internal/controller/merchant/merchant_v1_merchant_config_add.go","filename":"merchant_v1_merchant_config_add.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9909bbb8255b96a053563e9f3afd6e52","path":"internal/logic/account/account.go","filename":"account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"c80482f4470a8e3dd050e61ff9bd3738","path":"internal/logic/merchant_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"92c36754f0dbd99fed9aa1523374158d","path":"internal/logic/card_apple_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"cbe32a6c2d1cadcc72019566cad819b6","path":"internal/logic/card_apple_order/status.go","filename":"status.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"987fc36e572014bb0a7c02bc015c9fa2","path":"internal/logic/card_apple_order/recharge_history.go","filename":"recharge_history.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"39c6a811a6208e20dc5b28becf3a2cbe","path":"internal/logic/card_apple_order/steal_relation.go","filename":"steal_relation.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"fe83d023754ae2aedb7c68ac0f3dcf31","path":"internal/logic/jd_cookie/account.go","filename":"account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"edd8bea5c8f9373cd0b4de186914479e","path":"internal/logic/jd_cookie/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"961047bec51802fc7855502acf4bbc07","path":"internal/logic/jd_cookie/rotation.go","filename":"rotation.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"6949b603968e204a80d7e6e337496f12","path":"internal/cmd/cmd.go","filename":"cmd.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","path":"api/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"2a00f83021031103c438a59751eee183","path":"api/monitor/v1/heathcheck.go","filename":"heathcheck.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"d9ed9131ddb364556f43b561d041ddd5","path":"internal/controller/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"eddf871859d423ace01da9a74db6db86","path":"internal/controller/monitor/monitor_new.go","filename":"monitor_new.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"50111ae80e6ac600d65fbd7b34df3d03","path":"internal/controller/monitor/monitor_v1_health_check.go","filename":"monitor_v1_health_check.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"5824f93b650d7a0b6fb8c1a016077461","path":"utility/otel/config.go","filename":"config.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"11df2c532cb96a0d8e041af4ea176204","path":"utility/otel/manager.go","filename":"manager.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"b0dcfa2b0067be5ec2e3f00ad722ed85","path":"utility/otel/handler.go","filename":"handler.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"70f39d04b38fd3c3c76da74b7b0ed20b","path":"utility/otel/utils.go","filename":"utils.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"b896e4b9529b9c35c2662cf25560c5cd","path":"utility/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"ce051f6cc8a25a53dcd349ccf066f90b","path":"internal/controller/card_info_apple/apple_card_info_v1_recharge_list_download_test.go","filename":"apple_card_info_v1_recharge_list_download_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"315cb5ac67c46c359e9c8f8aecd320da","path":"internal/controller/restriction/restriction_v1_user_info_collection_test.go","filename":"restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"69602f92dc2983d638407af34ffc3699","path":"utility/cron/t_mall_game_data_sync_test.go","filename":"t_mall_game_data_sync_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"a4390b2a5bd3345ca09b4f120a912bf6","path":"utility/token/user_token_test.go","filename":"user_token_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"8d5d9b9151c15db5b80bdccfa4ad9e4f","path":"internal/logic/card_apple_account/account_test.go","filename":"account_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"3676af4fc53a7e056b34c4afcae6f032","path":"internal/logic/card_apple_account/wallet_test.go","filename":"wallet_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"1339d4fd004425708306ffba6c2dd7f9","path":"internal/logic/card_apple_order/order_test.go","filename":"order_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"12223cc24bc431745a711c09cde5b50c","path":"internal/logic/card_redeem_cookie/place_test.go","filename":"place_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"2081083be98975ed163a65fade66d84a","path":"internal/logic/card_redeem_account/summary_test.go","filename":"summary_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"d68b895f71aba40116241dab68952308","path":"internal/logic/steal_rule/stats_test.go","filename":"stats_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"c87e75096c95a73029618add8b2030a6","path":"internal/logic/limiter/rate_test.go","filename":"rate_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"54791cda92ceb80fb0fd1d394b3c7786","path":"go.mod","filename":"go.mod","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"6f6df715215e91eb3286c71371bf331d","path":"hack/config.yaml","filename":"config.yaml","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"c240c13752c53bbb87d71a8654be71ea","path":"JD_COOKIE_REFACTOR_REPORT.md","filename":"JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"b100fafa43450f0fdfd71975218cd99c","path":"resource/casbin/rbac_model.conf","filename":"rbac_model.conf","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"f72071e80cb61857e0d4b22414fa6ea4","path":"utility/integration/originalJd/client.go","filename":"client.go","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"03c5c54ee07952069215a22a208842f4","path":"utility/integration/originalJd/model.go","filename":"model.go","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"eec37ad3c15d2c25f166711fa52e741b","path":"internal/consts/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":"d002a301044bef263b2a95b977c75925","path":"utility/verify/aes_ecb.go","filename":"aes_ecb.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"72755b8cc621f2d563a4a5ee5222529b","path":"utility/verify/md5.go","filename":"md5.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"b279f7393bb4b20c60e4a58537fad6f5","path":"utility/mfa/mfa.go","filename":"mfa.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"674428c72460e01521574ca280c115f4","path":"internal/model/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ee654b1f5fb098fe9e7aeb85bd452349","path":"internal/service/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"8193684ba57063beec7b646d4b1b54e0","path":"internal/service/sys_auth.go","filename":"sys_auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"55835e5aa0b4632d7c3ab1cb90645f23","path":"internal/service/sys_casbin.go","filename":"sys_casbin.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"c08fb0c498d0fab1d988a77466050227","path":"internal/dao/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"9cd3a5d90f9aa905b7855847b1300d50","path":"internal/dao/v_1_sys_casbin_rule.go","filename":"v_1_sys_casbin_rule.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ed43772f3487059e03a475d29e64c140","path":"internal/controller/sysUser/sysUser_v1_totp_status_get.go","filename":"sysUser_v1_totp_status_get.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ed385c7e637955c644231fb8b9437600","path":"internal/controller/sysUser/sysUser_v1_totp_set.go","filename":"sysUser_v1_totp_set.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"00d464ab1568b59906f97ec8146e8af4","path":"internal/errHandler/handler.go","filename":"handler.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"276c0639f90dcf2a34f4f4fbde119792","path":"api/order/v1/form.go","filename":"form.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"b68f5340d85dff7e7356a47028249bea","path":"api/order/v1/log.go","filename":"log.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"d004861257e62752cfed1f1a3dee4f6e","path":"api/order/v1/order_summary.go","filename":"order_summary.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"117de4e77295f9440aa08bf4b60bb54e","path":"api/order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"fb972da6475be273c156b3d340c60b4d","path":"internal/controller/order/order_new.go","filename":"order_new.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"1b43f5469efafba6f30e2a9bf228e4d0","path":"internal/controller/order/order_v1_order_form_create.go","filename":"order_v1_order_form_create.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"6d0148a632b80d69ab9cb23b7b7c1177","path":"internal/controller/order/order_v1_order_form_update.go","filename":"order_v1_order_form_update.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"493b77f6804c0cb6c2b773567f9a98a5","path":"internal/controller/order/order_v1_order_form_delete.go","filename":"order_v1_order_form_delete.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"16690b403f75ad7364b91d742d4e0ec2","path":"internal/controller/order/order_v1_order_form_list.go","filename":"order_v1_order_form_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"23d82c1c91bfb481851d2302868008b1","path":"internal/controller/order/order_v1_order_log_list.go","filename":"order_v1_order_log_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"58a47489aee9a8f906d1d2120d982105","path":"internal/controller/order/order_v1_order_log_delete.go","filename":"order_v1_order_log_delete.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"b477f7365d4c6efa2c1cbcd88d2e7db9","path":"internal/controller/order/order_v1_order_summary_get_list.go","filename":"order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"3a8478b750f71d410904fb39aa1e55bc","path":"internal/controller/order/order_v1_order_summary_daily_get_list.go","filename":"order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"07658a06e2cd29c67a415fcae7cad0cd","path":"internal/model/order_info.go","filename":"order_info.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":"ea969bf93403e59ca22028be70fc6c3a","path":"internal/logic/merchant_order/order-summary.go","filename":"order-summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":"498fdff361f9c01e54357a315e9f7d11","path":"\\utility\\integration\\originalJd\\client.go","filename":"client.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"eb65af27cb143cabfacf4e397cb494ca","path":"\\utility\\integration\\originalJd\\model.go","filename":"model.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","path":"\\internal\\consts\\card_redeem_cookie.go","filename":"card_redeem_cookie.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"ef7aefce9f83002d91de28b146a92720","path":"\\internal\\consts\\card_jd.go","filename":"card_jd.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"5b63b16fce716e9c574c9fcdb6fb533b","path":"api/order/v1/order.go","filename":"order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"c0b5e0a48e881e774316a237bd41edcf","path":"internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","filename":"card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"1c27101b67ffcdf02489a331ce98d3dd","path":"internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go","filename":"card_redeem_jd_v1_place_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"a2750efa03ae7599bd56314495a2da56","path":"internal/controller/card_info_jd/card_info_jd_v1_order_callback.go","filename":"card_info_jd_v1_order_callback.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"711773636c036a042ce625f30229a418","path":"internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go","filename":"card_info_t_mall_game_v1_t_mall_game_order_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"1b7d72f7f4a9bb0f3f8a8dc432a433f6","path":"internal/model/do/order_info.go","filename":"order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"449f4de7045f7b39ec1c6aa4ecb4b840","path":"internal/service/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"a2623d6811b08468df51c167eaf9b774","path":"internal/service/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"8ac69700098158e9e90a9a8f1a247a9a","path":"internal/consts/sys_user_payment_record.go","filename":"sys_user_payment_record.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"70e0b28642444d37c06db48c6c61307d","path":"internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go","filename":"card_info_jd_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"3c6298484df164a1e5fe7fc2efa9712c","path":"internal/controller/card_info_walmart/card_info_walmart_v1_order_summary_list.go","filename":"card_info_walmart_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"fec40ef00c4cd2e564af5cea15277c85","path":"internal/logic/card_apple_order/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"f18bd86f1dafe9eae88b4f4b00db9bcd","path":"internal/logic/card_redeem_order/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"c6ee44f200688a3a1f009e9a166d6481","path":"utility/utils/tools.go","filename":"tools.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"bd83967e8844a9df33a6def66ff88bf8","path":"utility/cache/cache.go","filename":"cache.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"d6ab1f208fb77fbc9859cad2aa6bb1ed","path":"internal/service/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"7fa23727ee8e479ba4e92dc3eed84908","path":"internal/systemV2/logic/user_center/user_center.go","filename":"user_center.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"469f62d9db11e2c4fb3697ae2e85f81a","path":"internal/dao/internal/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"f64c7936d86ec71ec54ea9cb5a6d7466","path":"manifest/config/config.yaml","filename":"config.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"e5e06384050da6e9cb71d788b8fdfea5","path":"manifest/docker/Dockerfile","filename":"Dockerfile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"5c71a6de5070579b5c90694ac98bb368","path":"manifest/docker/docker-compose.yml","filename":"docker-compose.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"07153a17d7dda70c75d2b1b4146f582c","path":"manifest/docker/docker-compose-local.yaml","filename":"docker-compose-local.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"ff277b9199e792d02dbfa13f55915d43","path":"manifest/docker/install.sh","filename":"install.sh","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"4d75f6651634ab298f2875fc0e83333d","path":"manifest/deploy/kustomize/base/kustomization.yaml","filename":"kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","path":"manifest/deploy/kustomize/overlays/develop/kustomization.yaml","filename":"kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"1e38df357652b98eb89f47c776d89716","path":"manifest/deploy/kustomize/base/deployment.yaml","filename":"deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"375bbed4688b0d8de4a69655f763d5fe","path":"manifest/deploy/kustomize/overlays/develop/deployment.yaml","filename":"deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"9bf50a69c00a52a1dff9af6d0a524561","path":"manifest/deploy/kustomize/overlays/develop/configmap.yaml","filename":"configmap.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"cd7e39cff0a7e858c297aca5f1d6a079","path":"Makefile","filename":"Makefile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"fa263673f2a99e1b81a89d8bcba135f2","path":"hack/hack.mk","filename":"hack.mk","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"a032002d1754289832a7235ddf38bba8","path":".drone.yml","filename":".drone.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"2e66ec3759ab8e44a2f8b14f29e91610","path":"utility/cron/cron.go","filename":"cron.go","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"debc2930279b67133bdabc1b8627fa74","path":"/utility/otel/config.go","filename":"config.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"646de3e21aede32684ac250608e30f81","path":"/utility/otel/manager.go","filename":"manager.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"1455afd43a1181b4924167eee7f2bf61","path":"/utility/otel/utils.go","filename":"utils.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"4aab766e7ad6f5e8c17384b0d5361728","path":"/resource/casbin/rbac_model.conf","filename":"rbac_model.conf","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"487ce7ed78126fa758cc2d348b2f410e","path":"/utility/integration/redeem/jd/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"85326ba007bc4b730914abf2639ab613","path":"/utility/integration/redeem/ctrip/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"08fcd1de22231d0da02880634f8774fa","path":"/utility/integration/redeem/walmart/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"38d3cae75228d13a3dd19e8fa2956753","path":"/utility/integration/tmall/api/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"ce3a1385eaebaa905699b23ad83e209c","path":"/utility/integration/originalJd/client.go","filename":"client.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"966e173135a1b07b87f554aa60f65dd1","path":"/utility/integration/originalJd/model.go","filename":"model.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"14a77dff2e965ae92bd92a79f7c51ea1","path":"/internal/consts/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"0f4b79c169b55a4a353922e49057ab34","path":"/internal/logic/jd_cookie/order_create.go","filename":"order_create.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"8297c82d56a4566b4e439161bc2454c7","path":"/internal/logic/jd_cookie/order_utils.go","filename":"order_utils.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"6f426da779ea01b260285f35941ee350","path":"/internal/logic/jd_cookie/order_jd.go","filename":"order_jd.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"b02b1b196de6c12a1b511f4fe368aefa","path":"internal/logic/sys_auth/sysAuth.go","filename":"sysAuth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"fb7ae04d8afd7c7f540758059df7b9fc","path":"internal/controller/jd_cookie/jd_cookie_v1_create_account.go","filename":"jd_cookie_v1_create_account.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"d212b7838198d532442a43a2720f228c","path":"internal/controller/jd_cookie/jd_cookie_v1_create_order.go","filename":"jd_cookie_v1_create_order.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"ecaa7eef95a04c10e41b14218959f6bf","path":"internal/controller/jd_cookie/jd_cookie_v1_batch_check.go","filename":"jd_cookie_v1_batch_check.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"95d76ee51d8eba69c520952975f3836c","path":"internal/logic/jd_cookie/order_create.go","filename":"order_create.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"b9997c2d25a8edb37042b9aed4b87d4a","path":"internal/logic/jd_cookie/order_utils.go","filename":"order_utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"ed31ce19cca1ebd07457e557c8cb7147","path":"internal/logic/jd_cookie/order_jd.go","filename":"order_jd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"dc285be35577dcc5b342eafd1a253628","path":"internal/model/do/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"}],"wiki_catalogs":[{"id":"8292f51b-85c1-41d5-a58a-50585ba999d1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"项目概述","description":"project-overview","prompt":"创建关于kami_backend项目的全面概述内容。解释该项目作为电商平台卡密管理后端系统的核心目的和架构设计。详细描述其基于GoFrame框架的MVC架构,以及如何为京东、天猫、沃尔玛、Ctrip等多个电商平台提供统一的卡密充值与兑换、订单处理和账户管理API服务。阐述系统的主要组件及其相互关系,包括API层、控制器层、服务层、业务逻辑层和数据访问层。为初学者提供概念性介绍,同时为经验丰富的开发者提供技术细节,包括系统的工作流程、关键设计决策和整体技术愿景。使用代码库中的实际示例来说明核心功能,并保持与代码库一致的术语。","progress_status":"completed","dependent_files":"main.go,CLAUDE.md,README.md,Makefile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:22:33+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV5ZPaqnpZD68qW6viSXvNxPEwZQOyt9nbtdfUWCMarbTgmIushNu4J5RPguVc9JC+KjKWBJP2K2k0dMyiFIM1LNRg0L4JwSi0jojAQ3WhyIboOqfY/DVBgMOmJcqMlfegwvZrPWGRL4SzulymvNwlBKhpBjFdkOwae+0Luldz4f3FJgKEvaBF/yXIIEP306Vc4gko1a8JxEgl2h4yzd4FKlZonSXR6zQ1dUGQzOvKCZR36Nh4YDIxoqDOj+3BaqAYI+LW7ILrDyDi5Mb0PRWJLamEJ99ZI7o48W5vPr0GKxCM7CFhirvdnbb6w1dxKHH6j2uz2wnz9oG3PnA4+vKqOMKmx4buCYqtkEjJ7SegnJt85ilBBrYMEOGXIulXglXQT5W4sl8r2DyHY8t/wHuYS1V91vnuhYnlHVozMIpRVfkwARdrqfSDMREv75DzhMHGzjXtILoZzFz+ZIq/kCAeHawR5w9KUUBbRQ65Txpl8p1rsjYhpp63ItiHANivaJcJNvA3xOC0Mnhb1IDucrRB9JzGTwMMOnXzstRcwvdfPaL4//W0eZeVSBRldVOKjxJKyYkTfvoTNBiQ9avgznXLDGNNaln7C1MuPUF1xQOBqYh/1IXq79W0/gMhESyMZcqAZbSHAa72JhU9Tio3IcgF8vBPbEIOBsTZoXbvVT2dtEf7hNIXrZNS5WENbRMMUI+e25NTOclCOPcPABhJhPmVl0HnOvkIkRhNw1F/bflysTZvMpYOYC7S6e5CkwWqfaSJ6TqhaixM/5RqJs9CmLCj8btLxJ7PXiuvk+ao5J9IKRPqIW8AxmvXA+5n7fz8VQzTdrAxOdySKSbty3ZvIVoyqFwN9c9iTPhi90Gd6MqHHaN/TgFO2k1Nsvk0VW9mPdu65aoRUab/oTrM/UlK87rQYaU/FGMCR4Yb08wI8Nv8eL+ynJa3rsFe1Ge4oeCDRJ7fDGiqsePo1A1bcCNPS+kI8qJGQS3cK6yjo+kf7btjlUVXqNqIopDmayuHBa1N/PpFajqsHjVt5rFh8oPISq63okSxfJ2X6kPSzDNFGtnKpphYTXy4TPgFReXEjU5znGV2A8kHnLoHVHUWJvMGkKmoSJqxdvaorvNs9W4GKghA78uwvUQQ/XGmpSHu36Jtr0yN3HWw4iDJ0bhFzI/zbpF/1Kjyh1zDP9sE2Z6qBITBg9LcwAsbFKpdSA/8+9hx3el5g=="},{"id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"卡密管理逻辑","description":"card-management-logic","prompt":"创建kami_backend卡密管理业务逻辑的详细文档。深入阐述Apple、京东、天猫等各平台卡密账户的创建、更新、删除和状态管理流程。详细说明卡密充值逻辑,包括充值历史记录、重复卡密处理、充值状态同步等核心功能。解释卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法的实现细节。记录卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/,internal/logic/card_redeem_account/,internal/logic/card_t_mall_account/,internal/service/card_apple_account.go,internal/service/card_redeem_account.go,internal/service/card_t_mall_account.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:26:44+08:00","raw_data":"WikiEncrypted:kn7Ct+JfrcIimOh9dbHZD8z9sVFXFlw+VowlG4RdkgRiO5PhUZUUR9F/92VQe6/0J84NbYm+zazVIZMP+YkBFE0RZtWubRsgAz8BWjPUtXm2B04dFxVPAt1NIu+3RilzEmU1MR1N7PuxuaIImLt/bu6gQFKA3Bf2MWl0Q61W4ONaIc4V/Ui2hYPvvFDkO+IdljMqxRjRuJmG26kio69x2aFtk6VFwU/V69hDjfymhxbNNKJWT1wgjQARNT1nEy5i/su1X6mIWQSM28YGyPjXB6z9jDFOYmUV6GSJfQ5UBJ5VCQYoGEBZYkcwVn/KqJHkEhHCwDWss36knb4+oRzFcOjfw9Ar7ZVZmZiqPSnto+r5Rp5h1jxSc43jD+7FS5jLTf1Q0Dj7klEVLZpD3lVP2KLOdWz/ekmasAflrPJVMdNKpUh3XIaAUP3nua5TpE+q6OJIrnjLBk17KmAQsE1RBM4z8z5Zvn9XM5sMBDa9u7AoL7spVwcfwJiyg/Apl3eAGjBDjQV7cyRvsfJWs9BMCQRhxgezXNkZi+63bUyJ4OQt+DhLmPD39tL8BWSZkXr3CCrrZ5Xc6nE7w1MlR5SEVykcgzG2dYBYCZW6HtEwx7CHvxKqFZVU7qkueY/8ang60ulQTMY/DcIyMCvGSBb5aVOwIZ228z2G+3k/YacUjDFAYBU1up1I4zkCe2e6cDDuY5qSfyE2eQsaYMaXv6gB45vnQ2w14diy/bR5Mpxe7oT0fWDv3QVx1Oy3Z+JKyx1ehumNJa7zESZWmEai4F7P4d1cY5q5VP+rpdLQilXEOEpP8M0369o+bMLlTKDmZPOqVK/jRVozMnMvyJ/DRXqc3tgo+ng0uT2/ZmuEcpfprBiF0IvtobVjphqZqhGlDDsqazVUdKbPSXxGcbawGOBn+cw8VTXD0BGJgeXIa1HbBZrcZGgyzilCHQjexQSWOBHS9ggSFFHlj22TsLvh78O1avMDXXuFYEXSmltDEzI4tlbJ5K31p0eBCIsUOOCOigJJGIbshguTgw3/ZXE9Kb5LmwfohID/3R2wd+aDgEKAXhP80/XMh1MLF5TKeEGqcXcax+IBT5dfxWSLi6GoEvGYCbKP/CUvvI+DYeNp2XMlGWr6yClsp3WD/pG34pb5Mz1eKbyTRhA+8K62VcJ/4x6j+xqW01PJrKLYXfJOTJIhyHp+uSa3YNvO5OnHj38hl/h5FqYsnZ+cuhs0y2vpa1I5j6ABYMKcu8HMp1wS7jMdZA6ezRBGnl9mSRZ7ELNFCfKEakpT5QBowaBYxviHgYZYHfzjBFc4ViYY/V6u/qtm0i2niSj2bAewlZyWtAVuK7NXFExjovKKnIVvmVHzJraXtJriVnHNOO4ZiaEZk4P9Kil2NZ7vlYo/z+S+pQxjg0H3XDgwhr+/jK+RIDCIp6H7Ng==","layer_level":1},{"id":"0acd557b-c455-4420-956e-96a4a67cd7e0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户数据模型","description":"user-data-model","prompt":"创建kami_backend用户数据模型的全面文档。详细说明v_1_user_info实体的所有字段定义、数据类型和业务含义,包括用户基本信息、状态、权限等属性。解释主键id、唯一索引username的定义,以及与其他表的外键关系。阐述用户数据的验证规则和业务规则,如用户名格式、密码加密策略等。提供用户数据表的模式图和示例数据。记录用户数据的访问模式、缓存策略(如Redis缓存)和性能考虑因素。说明数据生命周期、保留策略和归档规则。详细描述GoFrame ORM框架如何将用户数据模型映射到Go结构体,以及DAO层如何实现用户数据的增删改查操作。包括用户与角色、权限等关联实体的关系映射。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","progress_status":"completed","dependent_files":"internal/model/entity/v_1_user_info.go,internal/model/do/v_1_user_info.go,internal/dao/v_1_user_info.go,internal/model/sys_user.go,internal/model/user_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:26:32+08:00","raw_data":"WikiEncrypted:b2BGJgTIatkHozAd0Nudm/SuvVVYZvaYCYJT//0Xr2YLspulsfZ15EoSMz1BS2Qu+eT/Pia7Bp+rVzGEs5oZfqEhrvkZJtq9PBXvvEoPE0zXdUP4cFX6U6mN1aUOy0Wzdrk4F0Ho1YhY0DNv8UdU+9bn1hHkP/mx5mK9TxjwmMYR7vS8MdbT920j/f9IegBRCliSfMXWqg31OAUcsikZZRl+R0/Zl4jRZ/HbPVB3fakRwaqfvSWAnDURFmoVY6+xCAC/rRtpV7CAnkNrEGNO6yAtqeba/bYPFMlAqlsatVImQavsRJWHPK9fCHhJPPSQAPYoyKliiMdgTzaxceybxTLtNNShGuSvXtR8DLHwFrhUpC+LTyzXI0JROTjR9ndhVDTt/IELxhmYFITb+4aejLlhHN+J4pMcoRYXEh8Z769iRqfiI0DbR+evFug/AFVvxOq32AeaFc1zQnzAJF7s0as2mKEbjRFFI1CHdQ3kfH087Ov2HdugqBWZw5TWPBAgVk7fItFEoKsryzEiRmhWhsNaqhWF0heraMk8eDZGJw0LXDF/8qYeoV0ybASIgxLCeHl4Ckfush86I0zBcpRh4COc5Swi+LdiWGDvbRKTnbQsTgjdl3uT5/PPVw6OwbN/wqNp6tVyZvzazGUiAb/iJVE+XFbjk7JKib26plORd6O4Bjye4HPj5ohndCPDdmAY9+rbrgf7v8UxNxvMrBP5p3MT6I9rCs8Gcg/Lej0OObK6lxCILhHCarkR09+/WIa0PeeHqfQTurlZgd/VKaXK4wOC1UUX51ffo6pzI3SJTEAym4u1KI3TuN+58x12ORQHPCX2SDvh/l4F82L2yWMDyj6MIaDy/e/+2j1j0FcH2NjsHEIetNey1a29fDnrYIV4ZkCkUC/z77TWo+YhucgMUPuA2i7Y6n0PE/AzD6aUdYA+L7G1UUzh8lguXIDPwDDw91JSPi0J7YXEYwv0oqguL3uxLdjY1dx9b2zFWVWxVDw9FofS+q5/hSzw1OIWsZ+QTUtV/apoyHvdSwDX5I49c7NMgAB5H3rEhcKrezwZDu0AU7PQENOzEzvQzGw+ggNrtUYBtjj83biXEpN3V4p9f7kXl92YJRPTygs+noXNkh28gMS80iBdgNdA/KHfuAW4uEHAsE6GxEQsWoYavMxops8UhIz1or3znDivgK7qXuRj07ySoBm4IE4mhnqKGRFzKSEp5JVb7ihkqX2L84XU4FKatiu6wFGWTgm6kaemG3xHmqGaxJdniYvmDX3U43b1uv7iF24ti/BLG/QUQ4O3kzn3EFstT4QdtQJjxVexc7PJwH0s2McUqe8jwOJvLsEu4/iB/zJLzVPuFIUzyxEE/DHApT7Dwea0xgcDdDwOWN+ePYmDENZFLF8ySIiY1wla/L1b4FZayc1IJ1LOv+BWhXzgm7UoNHzsrllsNhtu3xa99+OBshAu7+gKsIJy3FVFBzzKR5w7SHWoYQ2fABUYNLepDMJA+XdzTd283ycqKbyfe8Xcwbt9bmqrNJFfbJfeQ+KVTmm82fpvHF1He83EHzLlM84vE5qh/gfXCnFzDT3FdNNaRDemUH7VnJWUx3KugsmEsWnvfamrX1VoiMSHSMDT5F5OH8DQCMYPZAqf/IQ=","layer_level":1},{"id":"681cb8e8-add7-42cb-8297-72df3436bc74","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限管理API","description":"api-auth","prompt":"创建权限管理API的详细文档,涵盖用户、角色和租户管理功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括菜单管理、角色管理、租户管理等接口,提供实际使用示例、错误处理策略和安全考虑。解释RBAC权限控制模型的实现细节,包括权限规则、角色继承和访问控制策略。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","progress_status":"completed","dependent_files":"api/authority/,internal/controller/authority/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:27:26+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L62h4S7p46pJDygi2mv/I0XaEve9lYczBQSg9mSd5aOOh0poTp2DPKTMapy+4nMq7a037hv9Ush/mogb3Ipd/zY6F/7avn9o6k/F5fymHI3kmpJnb3Cch7lFHClRfGjy+Se/jm6hd5BP7wEVj0xeXaf2SNp+lLPIswTQky3nnRJ64SMVqGlPzMuw8slMCOic41UPWHSc79cUa7HywqwPkdqOtjMcNfL2oq0seuUd9uTnHTYmgQaW9ZGtro3eF+eO5JavVONGPJdDkZqjpv45FdnYSPFCxW3XDrIpT9zWVVPvYj2894UxAg7567zq9uv4n3Rwgk24a6sd2wZhOOGN/M/08rGq4AGs1inTW/jYL/FuOjHFx3HFSDrC8tetfeKhZ4pfFthpjUwkm+rp5dktITYBTL3FJYDE3JMf0BwdWEqWzHxvC5QtfYO3Gm+dmH7mVDtVzeXwfWiW9wqKe/mb7G3avYaNEPswqlbjUoA+wJHR6VxvOOBYakgaJ4Aetel2S0TjBpMxkrJcNoAxAkOtQnqvWZq4VZGeClnvqVNwHvzwvQIOeaEfCiJ1CFQiy5blGYaoCJobLWtZ6tX/vFxuAgNb10VJ1Jg2BAex2DPUG3lZOvWiTLNvEwLKeJKzQCt0nhrGTu0mCSEtOTcvJ2fEUbxqY/YHWpXrNVMmOADPzor6iM2M4ZDv47zV3Kre7/fDE141wJpHnrX6jNTUUcIBGpkGK7v5FrpjxV7cSce+ynBkQj1YVU2S4Ff7lKjZkU+Bdto6roSxfe8X91BU8lyXvO9RZaJ+08pexUfqvvhwGH41v+kg1ua1NxV6tpTj9izddT5Gjm/4Ytmf3wciHRCFvp9sxryPIZte4luZYGmyrmBCDvfBD2qnCPT1Ealw1PxZuENLD9I+aZTIACT40t+/zT7KDMYoPaegds4uDtr9Cxj/hFUUkBCpOibaQ+BmLU4zx3H7SO+GeIQ/tLKTdGjkMJ0KL8JBAdRrcfPq0pLRY7ax8nyaxk0F3HBiIOoO5Z94a62+uLnIi7tRxktQlaKdOOuKwzColXQea1nPflWTj0sYX","layer_level":1},{"id":"965a1a48-9a08-4f01-9b4f-1f1a51c82165","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"认证机制","description":"authentication","prompt":"创建kami_backend认证机制的详细文档。深入解释基于JWT的用户认证流程,包括令牌的生成、验证和刷新机制。描述登录接口的实现细节,分析auth.go中间件如何拦截请求并验证用户身份。说明用户凭证的处理方式、会话管理策略和令牌过期处理。提供认证流程的序列图,展示从用户登录到令牌验证的完整过程。记录认证相关的安全配置选项,如令牌有效期、加密算法和黑名单机制。为开发者提供认证集成指南和常见问题解决方案。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","progress_status":"completed","dependent_files":"internal/middleware/auth.go,utility/token/user_token.go,internal/controller/sys_user_login/sys_user_login_v1_user_login.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:27:44+08:00","raw_data":"WikiEncrypted:uxAckj1IXK2TQH//kEdeBEJk8OQlcivzGG3AR0HSFOo2ht3uRAHL8kInzlA+/LrT0yu/xcGyMMZDf6et32Zc35BW+5OWmSgFHiH3LFscU1wP+DwAH5n49Jy+7BmMwoZqTIxQqKngL0ubWEPVHEOa/2sdpoDYIKxaODRnZW1UQLeZCZw7PZBwRaBTsBF0wCwFd3pQ4sjeKp/gShXpg4nAmtCC/wmqHon1w4l7w3HhG5v3KEzsQfiYoUnjWAPo4otxkFypLPlJsIu7UtzpWYjliKqvJLuBnHY234gVrbqsq1CVHMkxNz+/xzJW1K+F4EGMB239Eg9Ua0R8c7IbOVKrh5h/cdlnwyikDYkBMvn34YMb8lXx+pSgxRO8QNGeuxyy2/Mn6lNZNt3BIl7BRo++j+f7LiPtEgl4dk5mFSeKqsxhXOCvvm8M8iwvFagjRJRuGUDjFoqL5txB7/lomd+GhqEK9Hu/rHoHKiZnx1FKGUk502ZuRI7IThAn/2Maxrd83T1wWkmXL/TTHxPJZEt1K5qxm2oRVGBTbUhqR9w9OxAZdhbGRW6ZEiLjYPBo8kGncrDBzLDT2K0X2avY/l9KX5SlwoDT1Lknt77WWromrjYeHYYm/Q9JMF1FM0f2l3bMtg1fhjKsKDOdFCHqKkLxEoY+kDHrINbuYY62gZoAyuxf/c1yC9r1mUCA3oUVCPEgzP1NmkrfPfYEM+VsKMoPkeB++F0crkF/tC73lIuV7drxAxM59kACqIC0QZXlbMcJyJRndirD7H9sd16sscpwqPw9c2mPM/+FLTx2PyRQExSHLWEyAdMZVrpDC4/r5GmsCOeNByvcwWIaAmvlbijoC1DFkztQI7x73+Pvutzv4jJ/TVE9RmF+B06DM5pTew3OJE5sRmxbM3DCiUUwt2SrzEk/qgqpyWdUs6PyAJ+62P8cMPv3WjlVOryAHjfsrBkAA8K1NKe4bAGwh1tEfWPVMMQHkMK2MOdwUQwKpCKy94PmvkNfgfkrwoz7kw8+/Csppg/0NuacaYkO95aWg9oyphJFE7yBQ3hpsMvIAZeMYCQIZrRX3NjgNSGOEW8tn+lxpUbiAJxSP7KwOpPLcjCKJN9CgEMBXUyem+f0c+bttlZ2UA4ugoKS4Lhbf+IhxTiqQRuSRhNssZoGl6JccTsbcHLyGfA2GEwWpGlNHuvmkNuwSoHBtAdcJcGs0UiDpZimnTloM/mZEhmj93cQ+TGRTw==","layer_level":1},{"id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"电商平台集成","description":"e-commerce-integration","prompt":"创建kami_backend电商平台集成的详细文档。重点说明如何通过integration包集成京东、天猫、Ctrip和沃尔玛等第三方电商平台的API。详细解释各电商平台客户端的实现机制,包括认证方式、API调用模式、错误处理策略和重试机制。提供具体的代码示例,展示如何调用各平台的充值、兑换、账户查询等核心功能。文档应包含各电商平台API的配置参数说明、请求/响应数据结构、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何选择特定的HTTP客户端配置、超时设置和连接池大小。提供常见集成问题的故障排除指南,如认证失败、接口限流、数据格式不匹配等解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","progress_status":"completed","dependent_files":"utility/integration/redeem/,utility/integration/originalJd/,utility/integration/tmall/,utility/integration/ctrip/,utility/integration/walmart/","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-11T17:28:30+08:00","raw_data":"WikiEncrypted:eeiDNSD57OEWfAciOcmA/WWLdtppDTPAYazqwHQI8gYrr96LHBAPdU1K0CNWQJGmBYN8Ly65QOd2X0afpX1xGU9DNB1t8K/iDMRSfwvA1pVT2os/zJkiA9KlsgbcuLoa3HZ3Vho4EypxozxwL5CZrY0ohr9Uz9mNi7BSVymdzC7AipdxoiuZukHeQAVPj//51uAIT93KbN2VcINKNQOHWC9bERRTU/IPP4O0TX+GcG3MFUTAEBVV7BWXBxFet4h1vIGgro1riiblS31vItDrFn+/yxwMI28z0GGl7UnTIJ83p3ZaustBmzdbcX4RrjD24T1sXoCU1pJd9I6FIwiXs5Rsvp+fyXZHfSDmKI5RBom7g0hyW0A1wKMF4XhRlRmV/Eoaw++WFan6rUuw7NoyblES9CidVbd+NKq2TnHg/puAmFS/RPnb8fBiJK3VcLbbAIwko+ZcILI/6vOb2tHVyh10hnwdkfUqV2SjbOvDsaKJmLa8RClsYhIfGalgM0dSG2KieS6nIu0MV0p/nbUvDgZt/DKtzQLiuMOtfrgFlf0IPa8EqyOOmkm51tKrtZLC+Mrg5yw7A3sxa9udjy87/8JK50o7FHGrRMBd3KgeCVRpF//vHBI3MjFu5oLYdngQou4aGZayI9tFyGh/dpXom9OUzxKNIeiiXeRyRi5cmJW181X7QTgKSzSf6XVT4WC7KL0sKOns00pJsOnUBBDF1QB7i/UatGiq4+7NFIG/frRFYs6eah0hm47dgfnMJF1O9uWQDDOjtlUihErLwj2Hu8QKb25padRc1s7aDTqBHMY1CUXj2nNCX6sP3JMHN5mvNwOnwJ1EB+V6ieiPhoObEv8DlOir2xYJ8zoPrMEza2DmeWIrLBJCkIXxFSLm3HcnoCWkk0MLgc+nh4T2kcpHRDTjLOw7qMPsiCmum7agdc1pVogeB9tZmjixjwa2SxY1KBcG8koNuczJJ/UYpZqgkIJZJ00AZm5kf1tNDYtFhAeCpnp68Qxn0J5NX6LIbKZsZqI2rRwSn0rlPRF4k55mVYEYQhtTbPgJCbfvwgWMO35tqwnfkkaPlFU3901Aegh9ITp29x1BoVxrtOmko9jfXL/kZoUpsjltC0dljOcYaGrqEKOd2MPncWZvnqMl1vTicAeqrpUVyh7lHyeVRROMTERd4Nhca8IybwA6CFav8C2mdUPrqhGPfjhUjQGpW/YIFbafKB7/R4RcGLIT5yhvt74GBwnmkQSabKGcyUKFmOcPfg7joCU/hrpbadRv1Q30+SMCGqNp3SRAw9XTIQfzDnHakGO6ynwhmwcFCFK5tLUrKBE+1YKglo1ZeekauOSNwofCSPYYM1c+wmqJ8ZbPIBPQr1qyK3erNtoENdVsDfg/X9uRg80ARWhF3eYZlfgR31IEWHvgib7F8A0V9UYMkNtNgtE/Ti0bwYx/LPMFB2g3v258a6RXp/5OgkgK5NA4rvX44KHo7FvOg7GhyhxEG/5gHy5HWqLhwuFeSqddDVDd6X7KJiD0QWXnE4cDxyyP+a83ChVcPeUK9gOvj3GR5v/dIdMoHqG+2Y+9Das9Rq7CgNYIBlvgWh5szvMGSiigNU0IIB240CcEthiH+aBB6A==","layer_level":1},{"id":"dfd2209f-82b2-4b3c-84b4-8fa7f91207e5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"配置管理","description":"config_management","prompt":"创建kami_backend配置管理的详细文档。深入分析manifest/config/config.yaml文件中的各项配置参数,包括数据库连接、Redis缓存、OpenTelemetry监控、第三方服务集成等配置项的具体含义和取值范围。解释不同环境(开发、测试、生产)下的配置差异和最佳实践。描述配置文件的加载机制和优先级。提供配置参数的验证方法和常见配置错误的排查指南。包含实际的配置示例和安全配置建议。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","progress_status":"completed","dependent_files":"manifest/config/config.yaml,hack/config.yaml","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:28:10+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllBdOkNxBMxnGnLp2RLAVJ7xmBnEGgBX+Mwrm1aKR9Yfw9YgupCqzpiJ1vOAMLIumDoo0hEmndSovwR9ewFhwUm2+jy33bebRLGTcBVfCT0hl6K8y4mrs2DbU7BLgJ5bYsbaZ7u/W1k7Z3hUMv6Ap+addjOylxie0Wd/h9MAuuJ5DhaZCv91V4vUGh3QwBl0tY/uBMHgY+4DesQO1vIXHpEKsl4L6nKtG/oRnMzleCie5X4bCAugaQoOwEkJa7OeSWiseQb9x9UtaFxIWtRcMzwT8ZTHhIswx5dFQejKZ8MGUPpR69In1IYKUEgxxxg8VnFzNJtKZqWnHEyMIA0+AwJSEg33E3SPBbYYUuiaWYd69nnHjCWS9oKItfci8fuUM0H8LwgqD0oXJuavM8jxXZmYx4QhUqpI9P9L8FYxtnlhNrrR7YhvoPfPicE/YF21ZmdFJv8XyWGB/zQGVH7+PXPRHlWTy8pyMBtHlojwlnLTLzJeER7cWApDYyZF++eA/RUm0UK9ajKhqsz8DG9CeFtAG7SJb8oHHjJKEHmHH0FbwSQelN9g6e29mrJUlYoGs+hDeGdAq9VTC9vxaJRXTP+OwbA9Dk8bxlslPIO9LEDuofrw0jpthtTJOiJA76VUU+69Es4ezrj2SJRCt19lzub80YZ2q6aqPQ4/rdZNdvZZpwF/HSOONmB4B0y01Js7k4TgJzAt4IWFsPex3xRKVCEd+gBVBEsJMGcXYyL6NyJoCnn4YRYf6s3rlXZGWiw6Z5YV2x4th4UQkyk5DXk/A6gFCA4hzZLqDbiN1/LFMDTrvpvd3E0wMc5w5ZS0+Sw7UhouoBc7NGOQulWLLN2yMHHkvcNAooOxVdkG+pU+3nEtjlh+tZph0xwx3ZJpPrIm0wNDPRi8erpiMPsnXqpzRSakwEaxUqpuCV4lzjnNLTSBgxLkvQEedYYb/vpbn2+MsERe7VSvy91QoRvuDbrL9ZcZ2JMhQTuZoZtmunnFLWuJlUTddZCsY1jgyj5ZTY40Z4Q==","layer_level":1},{"id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密管理逻辑","description":"apple-card-logic","prompt":"创建Apple卡密管理业务逻辑的详细文档。深入阐述Apple卡密账户的创建、更新、删除和状态管理流程,包括账户信息、钱包余额、历史记录的管理。详细说明Apple卡密充值逻辑,涵盖充值提交、iTunes回调处理、充值历史记录、重复卡密处理、充值状态同步等核心功能。解释Apple卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户创建、充值处理的实现细节。记录Apple卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/account.go,internal/logic/card_apple_account/history.go,internal/logic/card_apple_account/status.go,internal/logic/card_apple_account/wallet.go,internal/service/card_apple_account.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:37:52+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoNzwaMeVTHTu/rGJRszUYK4GblvZyvqVED6wYf1zYH+sjjgavfkzdDpZX/iLMRhlT1XpbU08T5DcNZVvkdoFvwJ6/tteal0zHDJCrSCMrAbPsxqMSW3hCc7alG2OcMhRpTczsl2qchYBK+AtYkv2QeZ65irR51l47RDtevSCnPJkDMWPgHbHnGiKCliBonQJcBME992aQspXUAM0YNH5pw2s15QF+wFfzVDycltGbYenpmbf8UtSlvTidTZ5GexkYZudc3GzMlaW6466mg79Xe4csqslSGY+0LhjQJ+iehgfFI7KsrbESR0NyUGu47BSAdWVTUzFJdceVpbb4uXDq09vbineTVgRewLIp9mm/leT8+byfJ3+VLtk0Pnkzx8RqfLfPb05fMPfyanR75qcDpE+LGpoS3BOpBaOW3k1Qzu3RLIOc07VPABJSj5dMT9erlMryvH0X4Dw80UcFu+mpQf04ifL5dCitAkHBT8sKE5z6/v6tpLUnM+7OwAkMkur672cn9+aARy834jrdoklL/hXqel6EGEIRRcCwzvpT9DaxNECyf7l5y9FkZO+tX5ORO7eAt0KBS6YknKQj0qkDFhOu7nQzm4o1iSzHLDCLO8wgT23CsuKzpjD/w5jCwL/UZKV6V577luwhMCh729g6pMilL3w054dypJuU0/InDyPk0SMzOVRHjFSDWB4gIkP77t4J95AdU1yxAT2CX0SBkoaqXNBc92PgjZGOvU/DmDkmMgj36frOk3ZVoJ2yjrIeTOGKp0152OFJw6rtzTbm99NgSJIbnINxCFqs434RzLj6rwLqvzTnmvHHpdlj0slCfnJAz7jXbQH8+dJ/4OchkvJK2YOQQJAXoPFhixVBeuVlbydhfrCBbDQnBa5A1CYIN8VQTmtdHL56suCkxFC1EwxrRhyeYNdurFysRim7TchES/UKgKhDbIhA3WvfGL5izZ0VwJe+xFcelmLFw/wnk45UD6v+IMj6budI+dSOkHW053gM7HJy5MmoDWk/tMje92upS50Namhu6vmi+/xBZ2GZONGDqppMDcjtZXR8s5Am3Qb8Gp/hLJqvM+1vfzL1NYZlw6DrV5JzdTIpwLoZQYZGaCecjwXUeQUoEamSQoGKcSHtlPBY8+5cp3GhPQzUYDwu7Yn9IzU/y4j8uaXYe0w8nykbFmMrLdDJN0V2Wk/1PgXzHffqsUk7xGu17sSPPCNoa7aXDnapKF/Ko0SNuZT9TUc4Mtq6IFaDvxYHELbfqIBkTewQ+GpVRFoaOeJfrwQAUlH42ZIJzkKNVOPBHZmuEydcGCp4s8xGmyxRf63j7hjmHf+6i0vEaRAxDK3Ac4pcwHgN5ITRDeAxR0v1HTnGd9E23SmOCIWNms5UFCAq9emiqrAW20X5H90eOpg6v0YFyR3Wju1Nlg1BVcG3ipTzCrht+ZNszH+CPNqA6b/NiN/CaidQw8eWfx9FmOLq8h+cVxUVlps0rVHghs3y9LnzqIB8Ylvqe0ZY1pzH2/3CReDGvmULm9jEINUte5i5akwy9CGNt43RPieHwPS7a6xlO39Hg+Rwk3gzNG7eNZ3SozT65lxOkmYJP+85KOQFW9R6MZoJdE6+VMpBZTpcMtlEs4rrkYb5DVDPKxBIt8cCnYWYXAYvxhOIhIE29RV9DSgRkCVcyuLktesXDXRuoMf6xnE91EcmjeHg9mZduNU9HF4jGmiKoBh2MVO+85QFycflsoAFQnJgxiGYLSln34Kx8QeigkYKBjgZhGWdgWM","layer_level":2},{"id":"6810876b-78f1-4c9d-a2e4-a82d03615272","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制机制","description":"ip-restriction","prompt":"创建kami_backend IP限制机制的详细文档。深入阐述IP访问限制的实现原理,包括IP记录的存储结构、黑白名单管理机制和访问控制策略。详细说明IP限制规则的配置方法、查询接口和生效流程。解释IP记录的缓存机制和快速查询算法,以及如何优化大规模IP数据的查询性能。提供IP限制配置的最佳实践和常见使用场景示例,如防止恶意爬虫、限制异常登录等。包含IP限制与其他安全机制(如登录频率限制)的集成方式。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/consts/restriction.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:38:32+08:00","raw_data":"WikiEncrypted:6hVxnL7axMQmHgJLo0JNgWqWpJf6Px2W79mWMsxJ9TGAvR3rE3JrdX51+6StzcOfTkIVdbtImBko043YZPW2NpQGSrhOvIBZ27Yj1kGXfDgKwzSiZgD7IgUSEukesfljr6YXe1Q2MQmb4gz6SbybNWCkscoeZqQxw+/F5u7/ZqD+of8mjvclrK2HdQ0f7qpOqL6gTI4360e6ogzBd+A4GTk9+iM4/87yyUTRsPY5266M9J+7lCbw7h39nIMIrG3+vw3Qhwzfp7vBd0RN8vKyiYM6wTYnrlWjImpk6UBHVNT2EApndrmgKuy8PAvVdmxy2U5c+OwjKzRT6mFutG2qUBiDz7jnmVCz0RlG6ShEfxqMtOwDgTWnYHedxfbiSYb6HRA82NfphG42/U31qwKqWzObwwmMtaRX2HSMkUHDS0BPpycfGon8TXEg00M3I9MKsfRKCsGpHvT83YE1099/x3elNaqplDImzOvrspp1Ww3wwyy8by0mbsPJZWGdzekPsyt13nQBc7Vp8UaIGZBCqOGgDgBYBP75d1+2FCbN5u7Vomxc7rpbbL8EO1WPKhyWnj8v9zXDFYnbwAfCzJsG77bpTc/35U4TLTMVIKHyndtCnKFczkt3+3F+baIz82Rve8Y9SN1Pa6QT7/MvYMdf9yc1Yn2LwCr4mi1VLm6Y2xHkHuqmT3Lhpsv66jX+CUNH8OoyaIA6rdD/WaFaCXAGwq14E8+23QebCH7eIs95XPJpn/iY4E5uC15ksm40bpLVrkBfJKYwjpjqXBSRehPUkBhIra/vf0CE9JgWf5bjqVL5jDpIxN+7nv37IDi/IDo8C8ILpLkU1Q/EicEO3edXr/3sfH1RpSRX4GLKVUYSNFZDCHcKedYsdSxF+8yMxsHw/FmtnMpCkmFuZONUqjahCIUVMPR8GE8MvJ4UUF6u8nx6OSpniwGuOWSp7n2yR2k+n5D0vwb4dlQaVT+kyO5Fn774pNyseCf04jPpL+7Xj8ypbaG+QuX/wBnkZcGxMd82I3ROQ7LVV182CFYGiIla1Khzf+8jqmOM3VG0n/5W90+3ZsMEZws3NjYjeQ8my2PUYvXxgONF4K/jj+rn8F6oqYvLAs5EOwgajo3kq7DekF8QjvctYQ42G9S7HpYiCpd2DvkEwWHuX+QvE8xaCOklT9uhbJnKWIB5vkAIZS4JwdfTXzCN/y+6rRLPKlSgJTvdUw9j2jbYN73r9OYkgJnDvshWdFEMmuTeO6/CxAcAz8cpu87IzVJRhuWVacGl1p7tTUTO/t5JrfPYaR8QT5qzQg==","layer_level":2},{"id":"cae0b323-5cd0-47e9-a902-06ceae30545f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple订单处理","description":"apple-order-processing","prompt":"创建Apple卡密订单处理的详细文档。深入解析Apple卡密充值订单的创建、状态管理、回调处理和历史记录功能。详细说明订单与Apple账户的关联机制、充值金额验证流程以及iTunes回调处理逻辑。阐述订单状态机的转换规则,包括待处理、处理中、成功、失败等状态的触发条件。解释订单幂等性保证机制和事务管理策略。提供订单处理性能优化建议和常见问题解决方案,包括重复订单处理、回调验证失败等场景。","parent_id":"5ffd09f4-939b-4b8b-a254-494937471526","progress_status":"completed","dependent_files":"internal/logic/card_apple_order/callback.go,internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/status.go,internal/service/card_apple_order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_handler.go","gmt_create":"2025-10-08T18:18:55+08:00","gmt_modified":"2025-10-08T18:38:12+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoL9fTXxfO9Um+u6vywbuqNlVAJBbx45l1XJxh5AkoaMelVjKwL/Tj+bOrJfzH0FvH7yiW6YplByZy7TzEt6ow9CYvbYT90NuRLJkRjSCugg6/dx9+rLZH4VKOao3RXIucOtBz7EEcNYIwVNFOS1GHEfs0ENNKNwr8pOYRxwxRyv/LZi0/nOwttovh7UJtj1aAoNbxGzLdk4o1Obw1qv0xiRbdPf4tmEMs+6in1MbhK20W6G5iG9KS+K82ZmhTOvQbR6yepLzGCxTNuRnL9QHUF4QjqpdQNDaDB8mruCNRHJIjeEoEqg+dd+c3Q5j3F5UmI8FTiV5DlaAG1HtSljleUgzo6I2zLaT2VNqWpoRki7b3U8mKqqdOUBodU72l0jUUDngrpYRcT5nzOV6E/7lkDlGCS+DVCqHTz7GB0tKmxi7TAEX2c2XB4T5i4pKe2QgRmEYNkZ0aschiY+kJMxr0/BdNuf059DTFuINcsvhV/06GfXnSa7xklhb48u2U1nBJ+9pQz70XKoA2kEsBB6/lHay5FWj/n+85QTtGQN+jIyBC3H+3ov0qj3dlU2HRucRhWGP2rLi3R10uwIdfOHIcIQqs8qSzTq2+nsQ18r0ku0YMh4vc0lu6IUHgzo/tNAhxgVxZ61M2MZixEtQA9Yg6b6YzRsnDM/E+LHrfcGl0cfn0PqMqR7mcFceNiSrkAa1D8yAry4GYZwKsvvqsamgswj51TbYXsMARaVOYlxndMVjpDIE0R/TWXh3Pv3nGygHbvoP1xDsOuuzEjJ3E/sILuEt2hxs9nO+5RLaweL9K6EVVDdI+PofLell3Zxfc2mjhHBJFLgJhaoI2G+h1u96pR3e3f6NlMrq7G/sLb9AVmODF3Ys/OPBj1Tk1DuwjkRhYqTsmp6I1t76xgggXWykt9Pu571SHlU4Jr3K2f4JD35/bG2UEin9h26K3zVkdUJEQgZCyrJ7CKXiUH+5LaoZ8q0JtTcBrS9HrWwqD2NVrcV80cjQqZ7PrmVzYYU6ft1YrVpcA+fae6YM23PQinDmGUQOG+8/vOqe+Ejozo/QecvLkXBb6J1KzI9x6ycG+PQL/21DaSugH0BRwh/S1pQxiETPLm7dSg8iL5NTU0Y/A0f1+tZU3N677N0TgaHCL9LvDn3wU+CMnvH83k5MyDjIK1KGjn03ywuWIFmcEG3yevlXVvlOkFmOV8QPfc2yPL9ffds6eQ3d7kQ/XrScyX7Px5kL8Y2b1YxqjTVpKPGwDPIRqHEAuSj/C0WNNjCy/bSpoC4426OwW9FhyXbKOl8Ig5QZF0uUPLaFCC5k9xM0Be7fOzhh1dCFwyiqpPEmmSgIrEFOp37tQbtOf5U6FlPjQtduifVeLTBkhQCoqHZSJ9l9I+vBxhEnk8AfNH9L1B4ekpTRpg/rGu8tLjj1fPpCAS2MkpkiPDAUvmsGuvNfSTyI","layer_level":2},{"id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限规则管理","description":"permission-management","prompt":"创建kami_backend权限规则管理的详细文档。深入阐述基于Casbin的RBAC权限控制系统的实现机制,包括角色、权限规则和菜单权限的管理流程。详细说明权限策略的定义、存储和查询方式,以及权限验证中间件的工作原理。提供权限配置的最佳实践,包括角色创建、权限分配和策略更新的具体实现。解释权限继承、权限检查和权限缓存的实现细节。包含安全审计建议和常见权限问题的解决方案。","parent_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","progress_status":"completed","dependent_files":"internal/logic/sys_auth/sysAuth.go,internal/service/sys_auth.go,internal/service/sys_casbin.go,internal/controller/sys_auth_rule/,internal/logic/sys_auth_rule/","gmt_create":"2025-10-08T18:19:01+08:00","gmt_modified":"2025-10-08T18:39:14+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoPZUVARRVnTw525aYFrCIqbEG6QBOjm5e3du5Qm/SOW7RO+umAfB9TSxOT9xkUJQdGFxAzVCFKV/dT+oxnPEIxudZIt7DFP/TqJj390wLSA3TU2jx56lHjMkFbxTB3b+YK2bsUYaxXxgyUYsg0aL1elmmAc05EfOHqD1LjDiv13jT+xsx4f9XrUL+TR6CsMPuCNe3QcVr5JgPY44b59kqygg/oDcazxYTXYcd1fDW1grWYSfWQkLco+lGdxj9phlDjgdV20doL4YrYRQFa2G5te/KDzwIbj7q3oIkGXE1kGQtGuZBMigB6q9X9XZ7RkrZQ8eu73QLCJ3QmHLqxuKGFjQd+/jFHdJ3UBPXhoQNxoLN4ZbS4mmZ3Y27p7n6dKJSJsiJs9ldkimugCR57btqjTDl2LgOQfyimee1zAkEWL7DQt739PUBao/q60R56DC+CFFnpz0YNyMQGoCirk6Ldt5A2ciMtpjGnnAUpfBU4TJd5q5u7Kjw5Feyc9KJvUrJmVNaYX3Ri9BfKEFww59fX9z0V517QOQlX3Ejk1ENOIKIJfp85SAN5orKGmHPhCsG96FgTckuXKW1w+z2ec4H5P5XQ5aR24pC2OGEJVEx7KdQO/Et9qwNo5+cQwLsKfgPgOccuSZZrJVwB5OsTAKmyzkamBgYkOxPxPJvhk4t4knW12lEbYdH98p10a5fiS60NuW+9XH2cw1psC2W5wmFKEXk8j+sHuDcC8FYoR/COQh+COy7rycQMmFWhV+sls04kut4EjUgjEciFqTE0I++4nmaqnqOJydK+FtdNQA+d5v0Y6867bjo06EJ3urA4nkmu5acphb81F4LldYqZIc7UogJerTmW7eN5sAC9jPFef+vs6OW9CmlCueUyNsFUy+lMIvKOIFFBUPSmHYTx9+cPGCBmUCpPMeS6/oF2CCnrbWlKh5NlSjVQILLtN25oqUUrdNrYuvXSPyCjtL420Sw/qQDiLAMvVskbgfv0Ntj7TuZEJ/7YYZt384EyDG4fuI3rdwwnnFQF1yoM8GNBiIUNIx9ohlrWW485KoP9GQL4UmudRw115B3ivAT024y0njHuYfIm9e9wXCq2AxLqge0ThrUeIu2ywFZ1kfogcSe4VtOwBYBXJY2hvGZ7osk39uhBziC7u/OeFFhIE5xy71Qe5Iyx0g1DW/hsgkmrGcMXmSAWhj2lfDxSEu+1InuZsoU5locomPjLn7k5KZyY0oIIb41X/A4XstXmP3zV7Y5gw/QrLpqqIaDcieSsC/8+KSdo8KjrcxT9AryccbHznB4MfzLBQFfQ5xIFXUUAu+unDW","layer_level":2},{"id":"cc12ac77-8ff2-43e0-b014-8cbffbaa022d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"菜单管理API","description":"api-auth-menu","prompt":"创建菜单管理API的详细文档,涵盖菜单的增删改查操作。详细说明创建菜单、更新菜单、删除菜单和获取菜单列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括请求参数、请求体结构和响应数据格式。解释菜单权限在RBAC模型中的作用,以及如何通过菜单控制用户界面访问权限。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","progress_status":"completed","dependent_files":"api/authority/v1/menu.go,internal/controller/authority/authority_v1_menu_create.go,internal/controller/authority/authority_v1_menu_update.go,internal/controller/authority/authority_v1_menu_delete.go,internal/controller/authority/authority_v1_menu_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:39:22+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L608NUXTqXtsly/V+7mrgNl4fXCVjsk9UflvLgGY7iZccAEBf/aM1MapiSKTXNs/zbzpx9CVSpDtL4kRyFP/nB0eNSxL+5bcbTM2i5VPD7Scw4QcOQ+DBsAcp2x8iVBNdbrPqHKZSPj0k9Zm7unBJR93y24WMhZXw6Foh9dJT3F6boHwV1r7mRIVCWk/OmfPLAm8RogxmVlERIpk4K4ryYbQH2zY1b5BpwKQGGJfTOsRzhwHLDZBQ3x1yFrFuDaWYh4XcU70HlgKB6rCbainrA4NI1Nu/AsBeLo4yrvUg++xR/z42ATRrt7hOc5XCo7ItIxWLXk5qX4w0o8i5zVUduNgI/mov9HkvFA0pQfEJITFxRnikDzvlfxqSs51OenVMe1LOT4w5vu5sSQavinT02sHlojgrtLQJaV9TH70JJIedo92erwFuQGWpbb3lUiNMlD3KddW2mEBuE4V1HL4+4LK1LwSIcMdfRWskGyLEiLa4FpdKpUDOx542or+Hnn5hQFat1UgD5iry3xuc5zyBxNF5IfNToDMormpHTcOtJS0+xb0E7R8kq/AOSGwMYqzMy5/OTLBS9OM/4ajQjDw37CdyC+RaIrV9i4qPudBA+6/y+C2igHgjJq7DSPZV0Ne6Mjfhmn3MYfwREBffLwgWO2UjRAlRp3+AxndaIiSp926ALrj2jT+CI3ruhXVAFeRXgIFSTM8R1DqzHbjmEJun/Wdkl1H7g/DPMUYJZZkCwJ8T3EjVZKmwpnw/dGc1E37pCnRe4sUPASdAvpzld5qzArnNgN0kg3BKgrzPCy5OXc6/WGnOKmey4/KqpQ5XlzdaMWOGmGgnHLSk/RUYtC1SP1hxphvb5yWu08wYUJ6HcfkeU7bFW8tauF5XeJvfCEW8TWYQzn+badk1AYqDl5se69K696bKzt8CMrRzlPGo/4k4XDDItQuzNMN1ORffURgjY+zzFNaWsc740n2KxmDPnMx7lZz4fgMgT4VEFr8I3TrbKyspdnRS/Ua0nOeqQYkPqYX4cflqgTp2kRcT31GO3GVsQtjIBGtyngYq9r4J83pWUgBjyKmAxPYreAv7QpylmIfl1JS+eLtNQ5Y7rSoX08osbb+2lLxiF9DuMOmJ4J6db9bZE74ODUfD+km4SO2lTb0dK4lNALbsoB7Ak0nLbv3t0cSUIOV8GoPcCF+ccK007O5iVRWdR1sVJqega2Wm/P8v3ATgBIezWvlcgCuuigRzF07Hglbp4gWbXoJUWe8J18olmRvBE61PQbmXGl4d1P2hz+sdtcVZDVSOOHlzToNVsDZ+wYQ5MRZlsxowtpQBPNxp2KZ/JqAbOXZqBFjZV1ilFGxIceEX65E/dBAQCR8=","layer_level":2},{"id":"071ef93d-b914-433a-b69c-a4ec42c36381","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单表单管理","description":"api-order-form","prompt":"创建订单表单管理API的详细文档,涵盖订单创建、更新、查询和删除等操作。详细说明POST /api/v1/order/form/create、PUT /api/v1/order/form/update、GET /api/v1/order/form/list和DELETE /api/v1/order/form/delete等端点的HTTP方法、请求参数、响应格式和认证机制。文档应包括订单表单的数据结构定义、字段验证规则、业务逻辑约束和状态转换规则。提供实际使用示例,展示如何通过API创建和管理订单表单,包括成功和失败场景的处理。解释订单表单与订单日志、订单汇总之间的关系,以及在订单生命周期中的作用。提供错误处理策略、安全考虑和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","progress_status":"completed","dependent_files":"api/order/v1/form.go,internal/controller/order/order_v1_order_form_create.go,internal/controller/order/order_v1_order_form_update.go,internal/controller/order/order_v1_order_form_list.go,internal/controller/order/order_v1_order_form_delete.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:39:17+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDKeQ1ofxi7BpK4t1qblkOmeHP5ICQmtKx25CPhfRyI6JBsxUD0cDPTYePaevb5jRJ4N5UfH52R/A0sCoeHgOffI/Z2bCUnX8HfPni76+JvZ/5KiEMF1BtsucVmvnNrZKG/vXeChD7yIQ/Hynx08nWaix6LoUNDGCNtoC7Rvcq5pwBvmvijbB/9dvXWAZCeFb8Zgsh4yS7eXAvzcCJ5kO9KlEIK1mhTS1QbKrJSnnGF07DnKNP9o44QFrJabu6m7z20nwoBIDlsOYN5bnOIonGMyvnhu4o7c6GaQ9SXfZl02ppfoNmPkB5cSaFVL/gT4uF3P3XgrBxqQCng5uzkw9XsWiQgcyHG7uTOnIojcNVTxrEvt9TPvYxEh6F1vSsPpcyiJrfUBKObZ+zdhrA0TTTmd2dtYbNiZ9eg9eNkQbMpa3XgW7WJ2NeBn8xfwpYJnMpByua+fvAFz5wFGUr2+ppDZMWfo7K/+rf7Eb4vDWzdRM2C905l9WJcyVUCkBDRPvNLt//IJf1k1+IjoFeep3o0OH1ElX4hPdp1i8ioU9H4KpWV24bkd6yUFrPGtFZ0b23WjrmH5fA+FVZVzBaV144BT25wE5k4Jfz0nEHDq5GhHw7uT5brs7J70OV+v3fwspfsS/Zn4nB78JFGQOWSi2oDYb6DYJ1X8PRg6nY98WDaXSBTBrk9hUdEn+2KovS0bWZ+HAB0zEK4A3etAUTqne6EGvhXvFiXydju3sCL3OWPTP5udHh6/+DoQxZRtmmbKrPOtfYLLr0kWB+3UD98nG1gi+wu2wMcZPTbafai8kRxOOdMr6zucXJ84ZmHOjecLFMQB1WVRbM1B3jqP3lIcbVYEUpKCVXORnxy4Z0QV6/CeVV3NN5Vk8/TVtXtU/34Z8fLJ8qBu28N/14F/fyGhNV3BSWCXnquZ1IbrRG0fjWzt+02vsa5kN+HI/a9PPqmccUWAfNrJwKdLw1IQrVCIShp/nU/VGFMZQ3yn9yYioS3W+2Nvl3VT06cfIFBEtotJNDZ7ZUZXyr8RATD97frEqc4Y3kxYXLgunvq3o07n2n1OAOb/SIJrdVOdDoP1aFbDb2F/62u0bDND+KP0Ck+T5utpVO6bafk1XckldVoWH3cn9/mXEe2huF4bk+HxPhAdawxi9xH6oLO1EI0gFoLqnLi37c4a6pUs68fciZtR71WPU/dlwhLOd3ix589lgp9vk+tMoijKY8QiAdFLArqL2queZabhWTfmz0FaDJaoReG/RwKphYYsYV1JopUf+LM/Zp8p7DqptZ+Rz/tt6LCV9DQi33goXexrkNjFpAP3XQlgdozNaqWiFvLcf+7ulDXaXa8n7kH0gZrBNCBVJ3sw2C/0ACuvN9ZARnGEJqrpkYD5egpAPB6t+Em5yekNgxAnU2O9e6UT4loHNgE804ky4vA22ysES5j8aqp4BrAh/6u6/x8lE525ri0j3A91C5mwWkYd81t/pOF4o+0YAoBKN0LG5y+/Hi3dIqa0L/erx254GlfIckX3kcIHw3x2mpqvSiGQfghtS4Jgi09lIhF9heuUa01Esc0oxypx1SvuJa/9UZaCflaxLJhrHefnDrzln4Dklv/WOYxn9kCcvpGu+OhHstudVrTU3EnZZrtGfHso3TN10ucyBC1zHgyo121lQjg==","layer_level":2},{"id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密管理API","description":"api-card-info-apple","prompt":"创建Apple卡密管理API的详细文档,涵盖账户管理、充值处理、订单回调等接口。详细说明账户创建、状态管理、充值提交、历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量导入卡密、充值状态查询、重复卡密处理等场景。解释Apple卡密特有的iTunes回调机制和防刷单规则,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注Apple平台的特殊要求和限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","progress_status":"completed","dependent_files":"api/card_info_apple/v1/account_info.go,api/card_info_apple/v1/order.go,api/card_info_apple/v1/config.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_callback.go,internal/logic/card_apple_account/account.go,internal/logic/card_apple_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:41:41+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBn7TEZqfgCsLA703mVGMZArD3ybeGVU9mamcCr0oAS6JoQI7AUsc5kkDVupPir3EyB0ASCWYKnCf1ywH8t5TiWXMOBEd2IXYke6xZIuMmkfI4vQ8pmtl6ZGzsEW+v8ATGdgc/gC3dxkOgZfYL6i3bx5NnZFHluGgQQq+VPTVQLx/gNtmTw8QGU3n/7XhmqQtUhi4VDDzZwONwskeuDx7RVD1h5iepp0jdpixdWIwY/lXlDCPaH0x1lRdgUIk9ujJuZXn9N61WiU0ivAduNinSq8AqHNQ0DrV1Fggqy2kJ543LiR3eU9ditGTLgtpUd2WnA+SMPDbtGFXA7plzUkubPHUayfbLtiF9SaLCjeeQzLLxXaCZFDjbhJP3rEKfUvSfveLTP8MZbpXUiaOwo0iBBAunWuR67P4xi3HyGaj6Wc7Rbpjo5r80O4u4OyiEZ4l9JRg1TBGkLaaSDr/C7TOndwfVJUE8KK2WgQTY6HpJR1RjQas+5wJ6MSkXgBW6xLVoYx/NcBQpDjW7cl8eAlmjThgTVP5RbmLb5HduIypeeuzocGiH4QqnegPVM1giGUeGy58Cb7ODGKt3PTp1wYeiL0SQtwU/JYbXD/S6cUgIhmHxr2kS2FrG1uvfJBjNXcHpCTSknFdohWl/an9YEyvLFgTQVAnFyqcrRVB0lr3kWnyMy2vCNEsY0pGa/Gu009rPvzfEeQbo4m0Hm4ekIL1gjxe/mkewU5ZJXWuDLGiNFlD3I6ouGP4HaSy149sY5nvQFx7J2V2eQ1tV1JxK8gyshzOmvH8Ip9wtihX7hUWzIvF0kaEZ0n3xn55iRl89Vd/Z1kH15/3fgrTtqp4BF4xxly1/pYOQvurwZCRYsQq7Piupu/LXEM5kCzUmnccmTgF5Lnho/8rmOW1yZxvUsftjUd09bZY+MYqkEXmFOybIKyhkzB1vY02SVb3/3aF2kADPdqeVT6MbzSI9TX64uA+obPM0ERfdnXHOzw7lrRirpf0LqxnFGo7NLUx4y+iNe+g0In3o+teUHrkwmPnHfI2iwWJaqL+btH9vtcoiJWbN2oGBK1Ykf6h/cMumzlt6PYMf0LO/PNTm5DN8QwloR4FVz2qKHpBQPDu71WA3+8pjnuUcQEcDyCcWfK4z/OEC5ma1t3IE5oseRPRZhwdawXv+NMniOpXnTs2XOPjCrHiGzQ4PSlZTnKnpU0DOnAGPq95KbuoxdtrQKN7Ba+NcdmGcsmbRo99VpueYJ3lKEi3RhvnFksot6i4ysbd1l4lGJiuM48OCXuTChlxsOT7o/hXc+KIvfqwmEORUZrG0SWAOg+ayZ51XbYJgRHGxQK4ccueaog5sku+qfoJ+79mEeRIEzhu+bqmBpEm+SdnYlS8i1snB5K66BnrTTkxQsbnzJ8MkRrQW/VrMGN4f9PrtRsUvXacr374SH8Rx031NkQ3V0fj8cpfed0Iz6BtwsDkLfEUNUtgnKLw7FMQ89wJuK8CMq2sp4hGMNTf74OEae+4Hw3BfIbWNXwtxpAsoTZ/iOtstJPqEC2jvsjDSUm7tc3qp5qoZki4dqnVm4XhW9HzQ2uUd9sgf9x/5wRA+QwWAVu4CbxLtI88+J3tf7PSfJLaEZ6ydbvJfyVwgd9vWt9gEmXMeJG3CIwOtIQBoKIHS6cLMw==","layer_level":2},{"id":"8d814eba-e2eb-46c2-a59f-00ad5b8d5de2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户配置管理","description":"api-merchant-config","prompt":"创建商户配置管理API的详细文档。详细说明商户配置的增删改查接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖商户配置的创建(merchant_v1_merchant_config_add)、查询列表(merchant_v1_merchant_config_list)、更新(merchant_v1_merchant_config_update)、状态管理(merchant_v1_merchant_config_status)和详情获取(merchant_v1_merchant_config_detail)等端点。提供实际使用示例,展示如何通过API进行商户配置操作。解释配置数据的结构和字段含义,包括商户名称、支付方式、费率等关键配置项。说明权限控制机制,确保只有授权用户可以修改商户配置。包含错误处理策略,如配置冲突、参数验证失败等情况的响应码和错误信息。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","progress_status":"completed","dependent_files":"api/merchant/v1/config.go,internal/controller/merchant/merchant_v1_merchant_config_add.go,internal/controller/merchant/merchant_v1_merchant_config_list.go,internal/controller/merchant/merchant_v1_merchant_config_update.go,internal/controller/merchant/merchant_v1_merchant_config_status.go,internal/controller/merchant/merchant_v1_merchant_config_detail.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:40:25+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPyUjsvllLhwi+whN+Y9/3c+n/MVnEm0gAKHUg16cqvzionAovu8HBvB65t8ZUZvp9GL6L6zCIgNolbfADOkYlFi0gLvCLW5GthKYW2OyFJkv+Wiy7IiIM5FBogfrnd8MPC3qDKEc9BRAwUrXXQ4eg1xLyTqeZAjcseBpq5uxnn2YnSKlLmr/9TYRbRLpfhCVmx2v3bsvpmzS3l88cNrXihzeGgZAe0u0XMjJg23lUNRQUAPGQpmFzpr8YNcCmmwQXEegXQa5wn7x+1fqAaOCWNv6QR8KK7YqeaJiH+4ZFQSJUSRQKLHI4+f2fywPi1r9vL+zbfXVGb+JmeOYkYPMpk3JWw53qKeDKJu9BcFspV5hdyjO/RKu/pxkh98zrCD17B0yDQ/8nTkrY7MLN6/uTk9WTegMCcYSzUTAMB54bITpM4PEPkHuGqH5+zi/3DuNETFmz92DlGFLDTa9yb7d9ygFUdnwO4fxsxCFX3RTRv2WCGmeu1cKMPbP9Z3C16Tnds/NEMqOcQJ5+uNcMoAqUFM37FJxbKS56qe+HdN41oTCVMPDe/koxk93uew2qTfbhMQcrbB22hbLuhZiZL/Nz/JGozyLuJFVgazwKbyS9tegQtAdeAAiH6YRqBzRGq12UGPKk/wA7XRe6NArMYtQndqbs3e9utAzpj06PYElnikFszLfsPv+6S8TDavLjizN0MG8kAv8DXbmq0lW8aVpaFOMDwwIak3/SNffLEjn2aHURX8fkWDAQYr9GL2IQhgcR5xIqajU/6TRHu0HMQXHyufxJDIV8KNXziRgb4mOM4oKoOuo6rYg82rziDkeuLkZpOUAae3n+UOyMEAxJxAb7hUcddACeoukrdVCs52zciHdLr2KOCzF5PrVTTbJ2JDqYi9CZPcpA5yiBLOf0nqTU06YPZRv0G3UPLNiPcG4fEMhRlXjKSbLwXpiqcwGwaEH+lwST8np1svFMozhb6kfLqrQs3JsP08vqL6396nqX/+UFLg5J18pGPa3n5RbTmDLLzHrA5gNAhKzgJvjVCCC5z+uzOZTraeJi8Ya/toYfXIoKBKk0tAtx6UObQLivccbjURb+Mb7HpUVsxXrVw8+wbRwbSXudsT9jkak1wV1p5sAtiGhwT8qmMwNWrDAlp9Q8Deyl5cFpDl3+VwUGP+q2hnetVvVV4l5wPQVkew6qaLYIiq5+jHZ9wP3Ew6VfNIgXpTNbZkaRF2jwXkq9lBrp+u1Wx81GKLGVHe1ZMutCqRNoNEQePJOMWKYJwH5AaLJ1DfcZK+ODkaAACpGGGSOrG5tnLhahBZ94j+xZ7Ozp81lpw/7giOl6dXVjNuFBXb0GKEa0rhK8dV5bYa6h9pqNe626ZbtT0JR6XBPMYDTNOnHZC7qJwZ0q3Tyexl8uCCRgqFpmkI24FPT8ZMBoO4Uo/EXuzWkOCulRgQVQmDJT3UByD0YG2N71EX3kWCB6aTa9CArXptCKvrzECHqM9vKq1kpiulPz26R009tvbu/pyigkeU9T/h2lZJbH6wrdzI1umscSVrgehz4nXP+6UwSCHWPg/b2T/GtznN3JaRqcekDMb1AnnOWzcTqHOSkGiaS/fRyrTcZxaZsMhlnvVmiwlYv+Jx65gvRdpmd+rMAun6AVE8b6fnwu6FHtjEuJ6J/9vhGrxnhGieWSehYq61C7kjT6Ld5BKHNNVU36Oc68Bm8sNfWCSpVfq4jvEpEsPMUtkEkK5DUC39Ncdi7mGAReSEbJGLScqHDn81+03RdC7BgqYBJ1QLV6HB0oqonigLRLtTMZIlgIhateavfY1ZB9hDQji3mD2BcbDfAHUNte8iMkOPPt58lODAeor2Nuku3tXw==","layer_level":2},{"id":"162500a5-7167-4984-9744-2802fb00bd08","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"钱包管理","description":"api-fund-wallet","prompt":"创建钱包管理API的详细文档,涵盖钱包的创建、更新、查询和删除等操作。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括钱包余额管理、状态控制和权限验证等接口,提供实际使用示例、错误处理策略和安全考虑。解释钱包管理的实现细节,包括余额计算逻辑、事务处理机制和并发控制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","progress_status":"completed","dependent_files":"api/fund/v1/wallet.go,internal/controller/fund/fund_v1_wallet_create.go,internal/controller/fund/fund_v1_wallet_update.go,internal/controller/fund/fund_v1_wallet_list.go,internal/controller/fund/fund_v1_wallet_delete.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:40:13+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdanSkYpF//vxeQ9sn3ZD2PSyqLrfcO12FxqvLFH7clPHKW5YbGibCYaowMn6lbHZzM2+D/+NQ8EbPTwbM2ItDeyWUppEH7xgv3AiH9Krc9f1tqqg/yEF2noAjpujnYGl/yc39DfocKeu4byCrycqWZtsKn7z8BfZWXm3BD5g+RuIDLJ7BrdFO3Lz0d4Qhb2UkZL2yJUgQQm+HpJBhHU4Bmcbg6XT7s6tR3ET0S79uQO79Eq+SseXl02Wjd5m4p++/UduQxW+uK+z90QWkNkcFX9+8cePFOiyvGnukbAut/1ISM30v/p/lHnF/fIsFm5+ZUCgwcnq6sUv/yZlN9vCPkhwP1v2gy2BhiVMLGyrMQj3KsbOGKJCuZuz9JvheVxe69JXkYwMpRWHy8ffEvlGLRyUmflEPC36DEc2rHEFh1ROikU98jAMdCcJuoWGB5pm8IIWKHpLJpqGbo7S6BcK3DFk9e7onzo41kTNHIWwuBeKs8Rj+dCteOq+qceIxmpeFxpJD5EBwPZAy0eMsh7VVXW6OKHkzsvp0xNzC9pXZS3T81NxuB0ltRpTB/PoJz9lutQ+jcoVHAVnRMNihCMf8drxVHu52P9371cIB7Wgj74vzYuthQxTQhZmEquJx+tv4qj+AUz2RdORnaTbixlnW/1B8783+OdO+dK3NTDjIC/NvN2iSh3tk5Ti7enHir2YmUDZLkpDGMAkEtCnlawu1IOej8Py4J/2iK2WSVraS8OGJzGrqye4GN+6veQo/wHHC0ls5H4dlBnFtQXkJReTDtQWyohRywpYK+nIDNtor3AS4ApdK92Nvud/ZeZ6ketkMnxbB6NEFQo/cwE2uk2OYUOw06tjYaq/5v7/hYJk6KcUqvbpjGE1xvCvans71HuUtWQEdCmNHOYfapQ3L3Zw+i7jp5FS4/2d0CUhKYxE45RYDXn76YmXAT3TWFq/vVB3H0PTmGTPzSdbZgTnpmkE8zlJgiaa28zUEve8vSj4LIlGRB5HqxAnURcdAL07y8JDXJkVU4+Ii0w3VRO9nR3G8fpBDRKLbtUR/wJVumFHBKPsIrMATgUK/0umDVUJhWA4A/y1Ks3Bi8rbfU1x5aQB/3mkqp3ZEIb7OAUvA6D5JksuqsTwNp/TDXAOV2h3aaQABECpmAMxmqSsVRsBZFL9xzR5J0W1zmlSDm3X9+9dYckFsOrKMC181gx1iGjKSninZZjLEbgIciVnmdcOPH1j+e41YfRLXnkGc7v8lRoUsNbZCp1SueQKES4eEXRc3Z7ByBGWSDIY49n5W7ASOensJsE=","layer_level":2},{"id":"bb872064-72df-45eb-ab34-4003a0fe8e62","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制API","description":"api-restriction-ip","prompt":"创建IP限制API的详细文档,重点描述IP访问控制功能。详细说明restraint_v1_check_ip_allowed端点的HTTP方法、URL模式、请求参数和响应结构,包括认证机制和权限控制。提供实际代码示例展示如何检查IP是否被允许访问系统,解释IP黑名单/白名单的实现机制。文档应涵盖IP匹配算法、缓存策略(如Redis缓存IP状态)、性能优化方案和错误处理策略。说明该功能与其他风控组件的集成关系,提供客户端调用示例和常见问题解决方案。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","progress_status":"completed","dependent_files":"api/restriction/v1/collection.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:41:29+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg9UgvWUQwsNKohKsInf5hSs0QQfDn2veT4X+kRCmlL8V7Pq4z7dhmmPz1VcC+RU2Qf7Fnc9kRUMA5sZH2EG69D6PojpUGyAFozLrrMGPL4e7QVaF+PBD1M5l0d7XTmfQnOiPxZyOiSH/wKOSfnTn1RtDReXqbnwGJZWe8EKWbTrMWS7cwn11oOcdQPBrjFO4aveFCFRDyklv80p/CDPEsUtQUocJ8WY6AIqmB8RkosQemHvb6jmoDYTQV6VYYiXtbw486CzKDfatNuMU/Woe2sp78Bhdi+40HqSeohFwnEaTpOmByLU78A89tk/zqDyLN3kVt5AmUX2hGwri6AzzbRbj2DQXG9SNcjpra2J8QQgp8lp+4KJqjQiKeifKyRO1VzaszauCuZQW2Gbq/o/Jw0/7tdDCRpOSbUsaKgNEFKz9MrmhuwIu0hYM5JZIHZ8RzXyOStuolXALCpxMKwfT+OG3QA1OjzrD7pN1K5RtBfyHP+L43u6j4oi0CSv2lwnAtntFYrunnZr5B4l59wIBfLoN0swodz+gpArcDimzwrGT7SxLxA83Ijn8577jyI+VvSMplyH2+X/pGUYfK/jrYAuRDpuFEshvwlEAatbMm3hFmcdA1KLVg99qPEmzBGxGfzK1HWiGhanPJy8LAfqab5m/m5tk2JidZQIC7LXJegWDhatyzlxXmbzmWQ43U+TMpWsw5ul9sN8hEizZnvEZwxZTBFbRhlvIT5WUNILc80Y1XLcq29DmmQMtiuL/pbI1VP92gPW24t8zwuBmx8SV8ohNv4xrdYWkxreJ4hHa9VrCS5l2c67bPkuUocN/HtWEQtN5RFaQVITEps9MKJwQxclSl3LobGjmC46snYtG5sfFiglxxdNuLjgVz2MByxzX/OWXTZryfkJlJLA6kCvsrbLoIiq6gC4ajqsjBL8j8UCWGzzOjkkpdeXmfA3nLfMUhym8Uz60JfjHAc/y0apBiN9iUqIZCopKb823J9GeDx+YSnwZquVQhUVaxV0MJrBCE5/dNNgT+Yl5QI6AcJQi4ZKiu+Cvx8mInSdnZJvbChNYe04+73yQIMw7x0iqFMEqxKQSuXxfslbn/cNYoGfAUpv4xAvw6BbUOoqtWe2CrXg6nYp36yXVG3aFtfIazxPDGQ==","layer_level":2},{"id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Dockerfile详解","description":"dockerfile","prompt":"创建kami_backend的Dockerfile详细文档。逐层解析Dockerfile中的构建指令,包括多阶段构建策略、基础镜像选择(golang:alpine)、依赖安装、代码编译、最终镜像构建等。详细说明每个指令的作用和最佳实践,如WORKDIR设置、环境变量配置、端口暴露等。解释如何通过.dockerignore文件优化构建过程。提供Dockerfile安全加固建议,包括最小化镜像、非root用户运行、漏洞扫描等。包含性能优化技巧,如层缓存利用、依赖预下载等。","parent_id":"3c6ca985-3423-453c-9f11-d9030f798abe","progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:19:36+08:00","gmt_modified":"2025-10-08T18:41:44+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kCSkV9pkP4w42aezSpM8tSnz9DM8PXCI3plj22r54nyHKillw//OdJftbMVj1iHO7i3EACtEoQsA71iwCJ5DlnOvTxQjZAf4O7v713BlkcrCcnWhGA+8tG/wMGITGEvZUu6BRwqZhUXr9xxPIbRR3jEc5tarJ4sMs86NWoRvprRsZhmvuAmFTGimqQ7Na/92ZYiHHNAkQGH886Q+g6gmd5o00jhdtxSGHkOMb2NYcrDYYaoREGCEeyMD9y8wqQVgR4FXlLFSSQuCnNePrDkxqTFT2Mu1NaAmZI+ruDl4TBJBZdcd+jKMaAZt/44HA0t1/8if902Z+o4jMReQfwh0jYxpkJJJi+44WtAVk/xX/Ou6dfzD1O/CC7zgfrJH4eQHVnLNMy6PHSg07dueN5p9KQeG27NEWOTFua4VeWM85/I/n13D4iFgzR0Wra08nfNSpks+F5Vl6gBVUjmxqLbdhHI6Jn/LkX1PD6NbvTakGv0KIqdtqy7uhgJIG1bUIc9q9g6v/nzeh0/j6iI18pSOji3l2W+8XfiF5hcdbG36JaNdfSWreg0ucQn37Dwj6ykOvvxvo982hkKcsIHcRDIYaukC+SGHbChag4WlrTmFEdqliI4bUzqlx4v/uhMDSvrB1pQ92u9Wh2ecvq1BePVHNTT0SN15dwCaHY4XDmsLk4fytUw0Ff4A312ofSMlKEIDVXqdzOTeB3jENRRi9uXPBrQKtGbN2N2O+rqtBxVrM4F5zcIn4e+WZP6Pmbhshgg9xygQjQf2mvxNRDX9KOfIfoTgqONts+uVJykYo+npT0tL6Ih2lFbadsNVjMVDYHfufrSlTPIV0eBMD1UfEeUBCX9+N0wusLPcyUdSwgEBRATtvyeMoAr421D+XqSccif3R6FvgWiFpJrGcGql6SDxeI1wf76ZdFeKSEDEV0/mGJY06DohEo+6NhCZtghVhp2U/IqYtszt4KAFddk8dFtxjx3zAFuaOY1rRz387jPu5wnr0S8mZbuxRxKwh3cFJ1H6VNlO2FWbbZ7UYOv7mmU7Bv4=","layer_level":2},{"id":"27a44e9c-003b-4f06-9b87-2882cf3c1e08","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Makefile自动化构建","description":"makefile","prompt":"创建kami_backend的Makefile自动化构建文档。详细解析Makefile中定义的各个目标(target),包括build、run、deploy、test等命令的实现逻辑和使用方法。解释每个目标的依赖关系和执行流程,说明环境变量的配置方式。提供常用命令的使用示例,如make build进行编译,make run启动服务等。分析Makefile与项目目录结构的集成方式,说明如何通过Makefile简化开发和部署流程。包含自定义Makefile目标的开发指南和最佳实践。","parent_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","progress_status":"completed","dependent_files":"Makefile","gmt_create":"2025-10-08T18:19:37+08:00","gmt_modified":"2025-10-08T18:42:23+08:00","raw_data":"WikiEncrypted:Xz6OVSa8P8xcLcBGQtqZT+Dxn1zjJpWxEV24N6Fu+jinDqPyZqB3u0Luse3ArC1hNmGPMdGO8PFnUOI4dBiXnRprrnrFLNHKqkXdqFAjH6egtx19TUYt9uswGPNuEndVx2EB+iEjV8LbEPzVXN8rNtI4vCMRjbc0Kz6u/M2ZPdFq5RkhkqIAXABX3TXjsGKi7FAEdJYJukF1yxjLLxmRA4fbfh+KLotOtlU1immC1ELsE3u1ihg0K0ss8PDw3gQgmSNE9e6eU6f9DYLRj9W7CBqpQG0eNqJQoLNH5jk47SG22f7kwsvHVOdJMxQyhIsTA6fd6yWAx4fBIaE5XkRoymRNhhwFWPM1aNTCKitdXh67VS3bovSmZamRIIvOFk4NYx8yY650VNEwaQL8/6agTN4uqs3YRFSX4raNv5gy0jLwASjC4oYTbDbCyBPTc98w43OxYz9k5ovTEY3P33P5W85oNfFnvFdr433BCY/jhHJF0mdYulXe6uqR7UIqlVwo6qZgeBVUjuSR2Cr3dP/ta3qv0kv+uPYChbs0KuoldD3+YUJkgtfS4hn72+3Hn0Z8qQFMu9ggbh/7kmUM8Vt2qOVbQxJGgfjpXxFMlFKzyDSGBxSSby/EfKBTm/QIV96E9ItWWGO5taPQnHfedvNFPHEQHGLRRhaiX0r/Sr65eLmku3+pcC3R3X4OzUqh+UvWGQ8EpGc7yf6eaMmW5H4ys5tOpDWFkZLzvhLmtsmk+NKDebuNejLXjsgR9AaC4KV6kKzWiXncWjn+34Ds1m5/Dzq8n8dl8nmP2M3eW4UmpzoPQcjXgup5LTVMLW3WYwfjaTHv0DZipmA5PiZ/67oKJAkCWZtikN2eH8aqazUJZw5xmOn8kDvMUeffjTQKVtoZXgLJJOJ65a3DAptO1kurzv5QOOgY3FGjgqpwJLURtxudQgR+58qc3fXJHs1wETY9M1nKBoNDT0Zik/L5sc4aas4pAdnOAyfcQOWQ6YcRQQesZMeVIwkrITWh/fqX+e0u","layer_level":2},{"id":"de16dd4b-ba68-49bb-97c7-cc34f0ebba00","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密账户管理","description":"apple-account-management","prompt":"创建Apple卡密账户管理的详细文档。深入阐述Apple卡密账户的创建、更新、删除和状态管理流程,包括账户信息、钱包余额、状态同步的实现细节。详细说明账户生命周期管理,涵盖账户激活、暂停、恢复等状态转换逻辑。解释账户与商户、订单系统的集成关系。提供具体的代码示例,展示关键业务方法如账户创建、状态更新的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/account.go,internal/logic/card_apple_account/status.go,internal/service/card_apple_account.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_update.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_delete.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T18:53:45+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoBWmlVTe9rZaX5hosPNAApW0T1uT6n4zjorEkdqGh56+GZE8RPLSrxCBo7Kg1h12kViRt58Aj3n8+FzdDFp7bvwEBscr6hd0N2fuTcwkJL/ex9qIUrnqZYabutinVv60QecvClj2U9jtJxZpAIgdWaLYvnx4JLGxZ1PaIXSJjxhYeffI+Kt6CpElT/s2ToVoJGivcoigObBr0HJ6d097ae2TV63ruyGno7Xko2G6uivsCIGmeDtR0XpdXNxf1hEoY0YbiUk5inhvQlOAofkrUtJHVgJwiAr78gvhUxe/KBv3jt5AkQAwkxyewfayfAjclkxbeMw+qvW3fuX8pHO657HYTRXporhQJLtrYLVBTAK0lj0AfcPcWsj6ZOHWNcdF9QWJnSHe0fKcBYkL/IJJ1LQRt6Dc23++VcquH1UWlRbjyWi0Tj7FXwoPEXjYNnrNh32Y6Q4aZRmvqO6O4dObEOt92p2LNInowxSFhBIJJN37zsTlOrZ0r4tGkxNLZa3YuFWxohcNzKsWkEQ4j9KJJrqTS2AElZlozyZnCJGDdJEyfFF3fNih1FjGGnWHdyiuEAiTm1ufl1pWp0t/J9rL7OhDgWJjQlPLnUmXR9dE/paLqsw46h9KN2dEuFCuZrqfHFcaNtcE1z8XySTT10aNAUVmN8dgmhNrsWBQ8hTFODlWyEnhwjx0MW8WxkeKH5fMheaastOl6UyOnUXirhnItmocSOejN1XMRc6teTYo+cYMQM88aOz0x/Y+6l+SSx1uYEeBUK3dLQC0iPepSXmtMfR/Z0fSWrX5xVtSyKDCsbCjtVeJshAmlY48DfmpRHKz05xkFNDtwbUI+NXQvIEfAOZoGlG13w9aW5vot3TtODeWAPEvz9NR61orto0a5NwrAv284Nb8ZClaChbu3xAIpVJeBrIFAZ753X8DIZ7XfSat69myvxi8yo6Nhlsx17XWf/I2ZmMFMFLHvdwBJK+Iw/IFGLrwoQq1idTC3J2exp5DFuhql1iYPVvRD5rCpz4VPjnrHiqWvMlhzUk4SP0sNyWmoNsRuQOL6jnUZdu5GfLGLk5vqYqjeZyDlUZey4Rw71OqsfL5l+61osSWlrIBnvumRk0sDwNCSIQXwo+1ekK1pua1sLGDIxDSLBMw0ddS9onSVCafMFiM5buKXGRYfrl9UccI65ZgqkLvK+a3fe9BK9X5sJDxkHQk8hpOWEdr61SZBOZdiEL/HZwT8uCvfbLlbuX8RMhkL479RpjSvJFcHatHHrpxDMRQqUB0AHYw187wmavHy7MfYzFFfxwm34pTRvyn2XF843RR4v0Bz35dYLhxuHgiW3olg8Fjw6oDGUaNri894hp29rdsiMCOqF+EbAbfKIKlxHJXYvyCQaplyJ40lBaKxgWlvP9mPspmz3IrzW9hg5DAZFDA9g5cIqXzcTSE8rxyHh7QD2/iOzjfPT6VvXFlDgfolfHimzmSnbJ2bD6znvOpONP+k1A5Q4PRlzNieGHn5eF/GPbOcpoaJe+NGlmhSUvLxLjpHG5AVuJ5PW8rpObrPHpi18GSZJqRmN2SqbB6hyL91mLDfw+o","layer_level":3},{"id":"d47fa6fc-1893-43bf-906f-c9ed0db47dd9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密账户管理","description":"jd-card-account-management","prompt":"创建京东卡密账户管理的详细文档。深入阐述账户的创建、更新、删除和状态管理流程,包括账户信息的数据结构、验证规则和持久化机制。详细说明账户状态机设计,涵盖正常、暂停、禁用等状态的转换逻辑。解释账户与商户、支付渠道的关联关系。提供具体的代码示例,展示关键业务方法如账户创建、状态更新的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_account/operation.go,internal/service/card_redeem_account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_update.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_delete.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T18:53:38+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rTBhpacpL3B3JqOjeV0quJhHeY4JvPnciyP+by1YUNeRemQYuM9NFpdXQryPPslPNYiO7OHybuYaJ6BeXEVnWJNP0Hc6AjitH4ckNyCULFHcp+wSQDZz3ViqsdkiH37hAt/G2U9cMSN10npfdksX3t1kqoeyoCjWC8sUn2y/fOrRhgnJ6d1t+w98D9NFg2l3cfEHSCXaXgrFriUYu7M+nrGAPmV/OXa85AyUQ31H6gAFdZ8QapoUP1Byhy4E9sncB8Av7VOX2TPrCwbB4mzEvOj90ggRC828l865qy6LiH6/HiDDlMBl0F5+VmCgYxW0aQRsdBIrAhkA0+6UFDN31Q0fqBAcE+hvxEZnRYipyhEsK5bBdZ2nLgpA0ALmhMJjNWfoDM0aWOozPSY4IVWi5TIMYPxishFPlguSqANCgmyBWG3I1YabrAQzocipsrdleiIa6O8HvuzA0ZfWf/7uLmSkChlMZ6FfaRYmceZDERpoTEFPinHyZfk07tccxdgO/hUPq1oPzoeVQsbp+QGcDu6CQc7IQY9YFXuaOG+1TZwyMteoCtTK4xccjt7cXiaoqNDbFL40nPJH7fuyO/J3Raqbuzci4SzR1qCy4yH9bbiWibo/iMcF1YqWu23Qw5ArcNuBMeozKrGbrckDeXNB7QF9JqJq+EyTTUv4IKBMa1HYXOtSiAJ0FMzeJi6MbohECkSQf8r9D7L47E7HzDIiI365SVV8nzIPJb6ykmMBSW7zQlCpXPD06wp8vzxg1IozlrJaqqSLeA9NjLgvlEQkbvEoFDmGMKyohLar5g8i3JLTUNwCX5TOaBsM9Hq1O7/gEHgdleefbNDK/7gpWiTIn9CZSUguGxIGI3Wc9OSZG9X8ZIYb7bP+cCZTSc0OV2QqXGnMX2wf9mPu+0IDffVayfJ4OI/sB07G3ci0wCPf3wWtARBjTwvjOslIBNhWKZXlPb+UGnPp8kT860OmcSXIUI1JfDVgvmc9+D9uboS7zY+H1ELmZdbllSSxlV4wfX8m7X28vSU81NfA97rP5019U1pAVmjMDJ8Kx4DR9GNXpSzzPJfFQcg3Chkc2G+uQBuQscayCwlD9Vm7QVirmJO1M6MjjszA4gN8T47CtZxV+KP+S+n7iGRnfkmmDt/7EQPr0Q7rtsGiWQUzf3AVzdECSSAfN4t34WUDTFH35rmIQ43R3l3g8pxVaVCKgHXCPhijxJKNnJPpRdYXhHtJL3yQn5K/OXDTCC0bSk8nsIKVxM4bdZizcgdI91YwDir88H3gVJ+sjFf0QB2K3r+v1pvNvd8C/m+FGVi+C/wRi08R7rqHqYzLf9eNnovxDHg1o5nwO0Glxf94Xp8qP+ds1jMO2GQz0el/tpnFC2KQJ75bQ2qR5YuLAw4NIN6OU2HFBHFPdmsoUrskT6RQ+A00Yig8aZGrJY7JWnC/SAX8scf+RVqo8NiuOWfBmhtX8hO3ZNKQR22wtZZCoV2SNBxXhAkYzITd6ZV+0EDDriu1m3yEzEQntxYZOUmlOl9wXta6bz2UuSV4yDHyqaZhbOPF3vfcfTE=","layer_level":3},{"id":"3ab7071c-90ec-4de1-8d64-d414460e61e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密账户管理","description":"tmall-account-management","prompt":"创建天猫卡密账户管理的详细文档。深入阐述账户的创建、更新、删除和查询流程,包括账户授权、状态切换、认证状态检测等核心功能。详细说明账户与工作空间、订单系统的集成关系。提供具体的代码示例,展示关键业务方法如账户创建、授权回调处理的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如账户授权失败、状态同步异常等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","progress_status":"completed","dependent_files":"internal/logic/card_t_mall_account/account.go,internal/service/card_t_mall_account.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_update.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_delete.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_list.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:54:12+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRUnUfuYU1Ccs6mvDPLPEkeDmJDEzqB+bbxCn9nEKGkJ+ngcQ18ukCSPcWXZUH42B8jgpl4li2lM2GNQoVVNwDi4YlZbrIo4XPZlxyuqNSDhmbbBTv1ynEvzJYd/R2NElCmE25B+pY0lx89xG/fuOSBmrDiwXIyurbfrkKNIX4AlZcVOuBCVCAHKCQKlIKkZILWzUMa67oSxBs9GHdxiQv2QwEYo2X0jeitURbHY15W7uucFvRv4IJjm0SB6xlHOvkJ+HeEXh/txt4PR5gq0EexNxOmVHZ42SJoItonwbQvI+mgSFQeafd4MG9GEYwSwR7aOC8SxbRrWeMGJIpAWjXw0CXiYHmvsxomZ+vMeLOfFGHKLxhI0r6Ly71ZkL/LxWb3Nsm+cdPcANDgnA+vChTAjV+VjsjPVNjzwgEh2HxejBVOb/wJHMdPhM2TDRLBP40uh6QVX1XDYe7TI2cCkecUcda9gquJVLa91TAdNJNQ18zxiiFPdIG0wy3SjhwRvHiGJwDVLO74gxzh2uEWdQ07b3hW5QEZTuF/Ifpi/s6QyLdK2+GSUD58yy7K4Gvtgap3JNBtN7l+GYd6hkuPb+OqYWBcGPt7zQvXKrR+GmKf4j2FnVVWuOQrvyvtT5xlxm8dW1lPqyFM3V6f6nQItxL4VTN3P39hfKuO5QjC2tDXDxngUxHow4LA+Y7Q57RXR/liAToZiNZdy3HoFusvNFjwRYtG4D1+qFr7nGnTKm/pckOGgTC4LsugHBPweDv+5rjBB4IU6hbgyWTzj0HEVdPZDmTJNJqrYHR3Tk7qHSx5y8J7/tnyLmscLH7Z19CxLBL5Dy8xv9ZDzhtKIESbuuTtwvODZ7v02zCfQnzsCDUJBVZWiP7KpcUmziCLYaKmDdW/KKxlQz2UMf0x2FHau0H4Pje5JYHEO1nIrqjSD10W66aUHXAbZzIgJFetCFDSSWidErGEGRQ/XZdhpLC5NDppfST7FkSlbjZOX4yZ7qAiaewMPlXaQM19x1LSAX9p1oT9CSA+LcMUEhrnG0p7KkAnQ4XZY1zE2QCYSNUKOSugZnlflfJdQ/dxKEkYblIFCAC2C029FP2kP1VbqlwFk/mzy3E+YZNHt6GW7RCNU1VsplMW4iXdJr8Lt1TKqK3fOL2UnegurKuUTJWXJffluzXMYH+C1R9UH6ebXluAjEolk71pgux92vB7xj1LeyY9uCFDuCPDT2SS1C19IEIiJ+VwZCWFNt4BJ+fWwUmRJE2YmYIPDzd+FwEF1chxEyYAnm27ls6O/L9DHmbbrNc4gjRlRvSHFhhyUwVClc7a3WQQr4GTjOomLo6c91N7r44ugrSArlkTDz4c4xV4WrIedPsmgAVQqBZy/NHxSK7uUXiOoL91RDCxbCoNCisgkbSOfR7hDoQc9FCBcPa7nuLODnBa06Yj/LtFfB9px5X9kkBpBYMRsg4aF5Ztvld5slD/ZdrCtECopJ0QQFtnh+DfxpZKxIDs5muAcHLwLzQRmj3BTxRidg9IwQvQJNyyt/pJ3EgK/aLgV54jfGrcKCPzytribUgu6HvWM0ZMC4WKEZzTdRsqdRdsQvwUpWo1dwaUAlESHSTahkPl3I4I8AEZTMw/rYMsajYlspOKm+oY75ZkdD65k4XRAdToahanZWubFhuB0PniX1tyhx5mivAkv6X+M=","layer_level":3},{"id":"8b0278d7-2786-4c72-ae74-b9dd35efed2c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP记录管理","description":"ip-record-management","prompt":"创建kami_backend IP记录管理的详细文档。深入阐述IP记录的数据结构设计,包括IP地址、访问次数、最后访问时间、封禁状态等字段的定义和用途。详细说明IP记录的创建、更新、查询和删除操作的实现逻辑,以及如何通过Redis缓存提高读写性能。解释IP记录与用户行为的关联机制,如何通过IP记录追踪异常访问模式。提供IP记录管理的最佳实践,包括数据清理策略、存储优化和性能监控方法。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/dao/v_1_restrict_ip_record.go,internal/model/entity/v_1_restrict_ip_record.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:54:37+08:00","raw_data":"WikiEncrypted:B0ODZirtzWbsF3w9bcSOlHc1dv0P5n03vALNC28DzA/g/OMiv/MAU4WTtzGe+VPqGMG8BJoBvLTAf9atqzKx7iO7sAtYjJzKyHysTAjh6GlN9xrWaHjlXsZfgHEv+81WvJZb5pYsVC8QWPqJVnNT8ZibsnLhkYB7ItAExxnC/n9eJSChUPIuUTXph/2RBUm4TmQ2rlWqFBgHwTBasnwLhHA9JA2rBmoWCSr/mleYr85AvGyKj1Nwj9LmM7seg884PUu6ssOdfBhhstMzCkFYvEZCwGb2hfNGMOXHWYIEdGnmXU+I0e1s5FsLDR7PBwweX9pBVibAZ19zNP6rL/gerTzeXHI18lue++YWXgPyDDJ2hRZ/MPBnW9i/HkpDh4mpc5mWUqmW0zT18UuMaQzNIiP/k2hhcfrrjUZtVFahLteOLFzxA77owqtwGtqziWMDCCx+zQZWO0NcJDlPfX1yXeKuWCjCp9axM8SmGkSuSq0F1Cg40Xurvg6ACvweBhdwkf7+K+nb7hHj4BfH/C4L5Ph614a7EtOIliYURO+uwYp5PNYhsyuXef5OqLMd6ShcgmIdFu3VDhjMZYbDz3yCh5v6/D1Obpanvvok361KfEwGyIqRbz3a0n5jmaVklS4xmje6DyE+tgy2K0Dt+q2mQzMnDZwriFhC5rkNgl0SMdme6DQ3N1cDq9GxUayJWudley42v1V4IKOOQSVLBjKuk5WF0py21M1dFeT5B9zqWVZBNgTdI3Hx+ZbdKzatVUs/9IFagZvvmIdpXqculjOjP57wIMGASkQfp+XpXnd1WxlvVewQADTlC+lSykhlxstBO0CTd6rO6PnBDii2MGVEvDIZ13aoG7+MSqJfRl/71mj4nGifA2wzACoCY7DMV/FJiKNgHSu5pPzhmpaerh/esoC6pRkMYcbC69OW/5grJtVcxYVYFee4WFstY+agTZdGTcGWgYkkI10JrjJYU31Bfgd1/n+Q/ib8prOIaaxUzWu1vZB7jnLnvZT4zp1guLIfbI+DFBkPob9sZUAXTFG2DmYZ9ynkqiYgzTM6aeBfX+tlQKmFBZp9a5oWUiMjr+Bca8UmrhPYfnm5f/6dNqx+Tn2WK4CUg+HY439kyeKlQm8lJjIYpPi+tXROL9uTMfN9AiJft8OIlsH4rhfV9Ujfew==","layer_level":3},{"id":"5624e47a-917e-43a1-bb5f-41c0c061836f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID采集机制","description":"device-id-collection","prompt":"创建kami_backend设备ID采集机制的详细文档。深入阐述客户端设备信息的采集方式,包括HTTP请求头、设备指纹、浏览器特征等数据的收集方法。详细说明采集接口的实现原理、数据传输格式和安全保护措施。解释采集到的设备信息如何进行标准化处理和特征提取。提供采集过程中的隐私合规考虑和数据最小化原则的实现方式。包含异常情况处理和采集失败的降级策略。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","progress_status":"completed","dependent_files":"internal/controller/restriction/restriction_v1_user_info_collection.go,internal/logic/restriction/device_id_record.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T18:54:43+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvGKD8gVb9Hj3G7coH2L3SktvZYebOv8vkgpgSinmPuMCQSSDTEyxoWVWnS3XVxi0V1aDgH75tdCCQdkWCOilOBlur/tpdCGLmSg6Cthot0SIXRwj5zLvF/P4pmwc1GnREbivew89a+d6cB5njXEYLYUADqYDwzY/Ou6iFNaGPLY8XiRbuSbHg2890pkV0H6/Ed1QVe/b0Hm4Hyq6pLG7Fma9/xEn0GsXHIoSZ5MOnPkEM+vDPu53i1GeDtM57mMs4oTZ6k/K2hK+GJc55OT3sBC4wSFG1HCf0h5Kea9EAac/g//SNmqLTzBGxf9N61bfIQlAUB1+y4PEuzyo5XUzhaIODKYUXgboosnmMogvqeAB37Qg6dLbM1Y+eS4Smcerl7nJOTRT8OE5BrDvckmSJ4Rk6ROJMVj7CQolYyjdqZryZhsH5M1XhfvcwQzSLgWIDfAP00oG+H7Ss/zQPO2hxA1ndtfBOpAQXuX1DcBugX+tDztR7+xAbzLkFXW7m0T3yDLSqTbEHRrh3QHg8XOyofIWqJp71gnr4o+rhhj3v0TfMgxhfa0T8GCJe0nT9I/332nEOaacni1oDZ3id/eqonMwiO6yNGb9w56rACC2YEWmbjUOSZJ0FespuJa2wpOyjWUPjjuT2fe3f+DKhFncqnEehTQyTEc2eN4CAEMMc0/AerzjZjYew7rQCVCbZcHbruNwTTdVgn+ay/sjnG8kMd7J88PojEF0sPTeur622fNz8+ANGme7CuqBLvIkDdYEu45gQfZo//zDfco4SxkUWzjyIt9oQ68tOYVogVS4oQW3El5gDaZzMqxcj9cdx4rd8WMPN3j4/eYAT8z1Oh/D3ZKzVkYo3paB8QueZ8YKZ6JafYOQxOSGnFy5/KPoawuo50CZ/S14eN2PNilYroHnGB53OcA25V5pvYAhwikXMzOhmntG1dVwjjfL6i1quWiUH1pW3lHH5A/5KhnEsew3oOwpKkUfzYRxCoeaY24Q+ZtoPp8j+WsEqwl6+WOhOA841qPw15A3tdKAAaa+nVOXzAVZ07Fy334ScRwaiwK1R+29eIn6GQeh2TIPmSReE9FfWu+850DM5Qe6ellMIzoKnnA=","layer_level":3},{"id":"f54d30d0-d3a6-47ba-bdfd-e7da45674e38","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"登录认证","description":"login-authentication","prompt":"创建kami_backend登录认证的详细文档。深入解析用户登录接口的实现流程,包括用户名密码验证、密码加密存储机制(AES-ECB、MD5)和认证失败处理策略。说明登录请求的参数验证、安全校验和错误响应码设计。阐述认证过程中使用的加密算法和安全防护措施,包括防止暴力破解的限流机制。提供登录接口的使用示例和集成指南,以及常见登录问题的诊断方法。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","progress_status":"completed","dependent_files":"internal/controller/sys_user_login/sys_user_login_v1_user_login.go,internal/service/sys_user.go,internal/logic/sys_user/sys_user.go,utility/verify/aes_ecb.go,utility/verify/md5.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T18:55:08+08:00","raw_data":"WikiEncrypted:gVtFIob7WtU/DhLIhhPauKCJymbo4SzVIw0dvv8aC91DNIWhYiwoZmiSp4c2j67hTleejgcuK0+CSov54UgtfevCah8zEa72kD707FT+ocaKIb10nnDfMiUQUGRO8xrC+Q5IXfwDlTtZ1hFf7OdjNFipFuV/SWniGGnHvFnrpgd2jrlgRhnjDEiI3ZvaT4VaczqEfXHod3jH6Iw6tDgt+ybjFShDQlsOQcYJlXBzfedK3qJMYS/c5klQtwPKE9RjNLVjkzZd8n+JU1H1jE7t4esDxJbGwNSRuZLPHX6hwYiov0aQrJlKvkx2O6wRZ/tLkumz1z0G675Xd8fhVg/BKxMucUkGxXvh3i0CZBVZUlgRS9US2DyreXpodaZOnZycnH9Nf0sYq6LppUacl+vgm8v4GtZFX9yFBqGkx0qHpD9m8yt7POIePPUeTNFn2bGixwcm17xF8kibibU/h1OY8KSA1Syout1lVMG+3sZc/O7gyfNEUMWNIVWtunvH3Gz3O/f+T608ya8cf/4ElpoWkrK1IAFQNWVeqEZbIqKvWolN3UWTXhTa0c57LRQOgFXlo6X1E8kZGvOahqKk9FZcmgfXkFWAaOYAWMMax7Lkf3VRgAmcy2W699mf8z75UdANIMSfww+BIM46EwAwkB5oi03EJimkiKwrvhOk6jMD9ZH50OVC+NrYoKN7yK3smK7NyRCqdnPpdQY/AKAweFsf7NOcL2OwuoE6MBRsG3TYBSGEU8AkGOJ8xeDZbiNOqw7KOxpJk7XJgP/dwsBy5bfmkAsJvHQ/VflOI1KtQjRTfZPhNQjPvnVDRNnifIjsXpeXQEK5NpBLh8V74+UZnCgbbj0/s0q+sEB/vH9HZ5/YIkjcAs9/WtUGfNE1Fgy73Q3806nH/pa3O64odg24s83QhudpiMFC3RoDl/zjRNJmiF/BoS26rntv7fA3DV7/1yw3SJ7ZR8AXRd7MEnMzwymFLRaF5NUfKf1VWyBPMUUXkjWK2uVI6qi6RprUhVFZZ4/wewWlQOe1WlQwtWRg5mcMZMTB8+AODgUWyqYxJ92NymII8QUCFHSA0YRfqMeIPGK25zlo3fHNcnAmF66rXYfLL4VQg6G6uTLdvhCtIiyFAHkNtaIo8SMFBZ0prTyersI4ypvk0FTVEfCOUOZL5s6cmooEb6dtaQxabxKhChlawsw=","layer_level":3},{"id":"708d0f68-64e4-4da7-a329-e73234ebb6d3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限规则定义","description":"permission-definition","prompt":"创建kami_backend权限规则定义的详细文档。深入阐述权限规则的数据模型设计,包括规则ID、规则类型、规则值等字段的含义和约束。详细说明权限规则的创建、更新和删除接口实现,包括请求参数验证、数据持久化和缓存更新机制。解释权限规则与角色、菜单的关联关系,以及多层级权限继承的实现方式。提供权限规则配置的最佳实践,包括权限编码规范、权限分类和权限粒度控制。包含权限规则冲突检测和解决策略,以及权限规则版本管理建议。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","progress_status":"completed","dependent_files":"internal/model/sys_auth_rule.go,internal/dao/v_1_sys_auth_rule.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_add.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_update.go,internal/logic/sys_auth_rule/sysAuthRule.go","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T18:55:45+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoOwAbbQLRVPzcd1k2dHh6xPvO1CNIfigRke0ryDobBaSaoichs64p/z82TtWhKzqnfRtn7zC+YhNzCLUaL0A8JDFeUnDrWvFTxw3yuhcszbDwuzk6BRxe0gs4kFOhYEsPA1/Y04lfi8YegVHolvgHLKvZ17SLaOS9bYJHWMoCZP/kJKsxOLnZ93rvkHuIdm2WtiK1iK81bJHe7F23huXgOc7upPu5i3nNZGnaDM7hEKQ/cB7MI5QoDzHuYcqDHqt08ohmzryRB5mJMQqu8CAyUV9/tVRMN1G1BE9CaETWpePEVcW49WXO5v7uFv5o3y2jRbtlgE60ZooiLyUeZ60VHLn6j65ihl5jqjtzHB7qcpCXaVoHZLSotaBSSFs7pAllss6TsBzc6KCDVomzHoQf+PqfKcSv8n/2dwqquYg6HQCEbZYvLCeChJgFbNoovY5zY/BY9jxgXrml3zqVFBKPIkFeBE6uVHZRMpeJTkpbst/AcgaHeDFmFWefIv5Xn1MgKoVgCSbClhDpGbwXJH1rUnNzDax/BkYCyFGmqxFKsNCP32oro+e1BpIiPMdmtiXy2jHJC0PEzlnS4pWf4p4OWZl+mdDIK6iRnyKAINgvfuTT4UsdAu0vxqRAlgd91oo3ABq8ucgniM/oaBKagxXEVv+qYbaeERcv3UTVL6J5MYrIeu0TJXQyDfXJif7Cb0d9tjPohxCZfYCvrQuF/JgsaKV/2OuKffcTQjEXF94v5xcbYVzroBwMsExqvXFtzDHXDUcKmmWL1onKTlDa5nFeHCEwhZDoXVxkWLFI+8+ZaWqKFLDXQ2LQ1Z5aURTBybZlPMQmdjIqszTv0JAAu4uz8yTcW+65emFBT+4SDQ4GaIbp52eQAyFATg6uQQ71IoEFejxBAOcuOnWzagWT/skQVj7x2nXlvyk7g/BrObLtKf8zLaXFB2y4A/OZ2//7oMvEBgtuuNymm/EKEOlKhkNQ5ETZ2o4x7VWwpuj+USDjl/u9uGdszpNTGiE6FZp0k2taXInlD8gg6CR6ddA1QRGiDs8R/GpRoDPFKxbE5J/bZHZP8+7z/PuLcrU5xhyQFN2YdINzxPPXdRS/6vVIfsjXuSsr8q5cG7USJJwm+1NmJxoEX90zJq4wCEDV1TAPupW5nPGpBlm8OnBwh/VQDgk3kS8lga0md5rVm6fbMHzXSH/aJj7JzZ+Q6Di3qFN6VDP965doUC2ELSJO0wDwPs2joO8xBelicPq8EBjbN4EvH2/jLznrdmOoM2eN0ST9uti88fJEpJE4l06+cYAFj6gq5alSOxos+JJfvskuQc6Kq616nxSzwDrgSzwo/qb3FqWiZ02TsWW/GkjHTvzetTd8JVfaojrsVOQajT22gaz491mWxOhtNkhzgKvXeoTLcqI9kJ+UKQ90eII5zAT16DLpFESFp96xfx2BoRzb0vVgS3LwfsXFmpLF7Tl+neDBmgLvYACwCCIlajnZFDnm9PH8pM=","layer_level":3},{"id":"60a234ee-1d45-4e80-b8bf-a0ba60aaf7ee","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密账户管理","description":"api-card-info-apple-account","prompt":"创建Apple卡密账户管理API的详细文档。详细说明账户创建、查询、更新、删除等端点的HTTP方法、URL模式、请求/响应模式和认证机制。涵盖账户状态管理(启用/暂停)、批量导入模板下载、账户信息批量添加等接口。提供实际使用示例,包括从xlsx文件批量导入卡密账户、查询账户列表及详细信息、更新账户状态等场景。解释账户信息的数据模型和验证规则,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注大规模账户管理时的性能考量。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","progress_status":"completed","dependent_files":"api/card_info_apple/v1/account_info.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_list.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_update.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_delete.go,internal/logic/card_apple_account/account.go,internal/model/entity/v_1_card_apple_account_info.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T18:55:43+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBkqinpLacl6fnfehKCwaw8pRy3qKwc6VXfk2vqy+NLa0lTwYJdBlXq8e5vF75MfWxXT29fu2HyUk6opUbjF2W2ADBD29AvaFIeX8frTdSVTfs5URJaHPfXsFQvvLJ3Rg8oZjBSUpqXPio9c3Ip9gtm+KdfHWts4AubnWlvECu5q0fwdcbvrPr5W8ZbVxwPjN2waGFJ9n1Xo2pDgwgKxLWA+VTiMVZ6txaIzQakEIC4/T6Bf+XF6+OTKqRF9kjUeT0tl3gSaJypvozT0cAjxEdYKhcTzwkZFQPSDY5zxgap0epbmOmRmg3VyKwf0MxfTo9DbeQ6XakT7KUm9U7rKxaKSMgDri/6DFmQkzd3Dv1KFK3xYlrD4B8LvshcpIlFZR0tdXF7L+h7vUcuu5qnTeiji2cNkwDpRSpbchRtEHfn2PL8cxdJkb++Li+o33XuI8HueScdK7hb4nMtT24utEQ+r3gZ4srVcZ77JPWWIAkfdo051LXGr5fujnXpbcizZP61qh3YRPKMWKxEQ7o+mwqCvQQzR9+mrc6PxNYz5eDMjfun825w5xTUNiedy6JntfmvTKRO+z+cxEcTJjsy4uT7bB4rBM2TXlKvVHPpzMsXKMgjd/Oa7idl8vBFlxNtD+4LBPRnvLxdafLIS3u4wnQc3bophhVaqHm+hXLUzzuP4jm8EnaQqzjo/BfuNsiNi+wm7gCZhLPJX8hDUrjmb3ToPk+El4qSq9OYDP+OozLq9Lqves6v8r3lAut5Ii2EPL2Vi0KbzgGhb8vk2HgVfMZ3qifEuaipcaNwlxwr7+wSrDuEtfZsZWJdIr/XlNK1d+2VcQ7QKYJ6izbgB/Zu/zFl+YfBcIrTaMF4/e0O3Y7hpMNOxDqi8KQDSoZk+bQyU1ezKM1HU+KtLHiVO+IO6QshTgYUaTG0gIQCpbDRWdf6PIJ1WQgpq5SwD7Zj182JC1lj4H3/DUkpmymWLJOospbguIbIXlzB+k6WGw9g+wXA84a5M6xZzdjFaSwVGxTC55j0kYwpiCaco2vfpcw7jjSUCVRUVnlHWznxAaXl6E13rZFN1wBI0Ik9Sn6rdnD+CS2aLjvahLJGpb7jaUbq7L/ZLI9BA8fRDCwoGIfwFRPdAYGlqYdJoqBL/cnqeFeN9ga87M46Kyz0puLquoQ2Ew0MAXIuc9fxbYACVx9RMiH1Vhi1lDhZOJAvI37u/G0JEXtPJopiSUMYsFY+RUA3A/Qku8kQQwax2XUYTgCR2AQiGnDCdkI+6LMtPPlmSx/QlITlWkkQCy/1ItMjEw1o/PPSftkUZ1JKqn9Jh6mGud8uAgPqxecS9Vamw5jbv6TYMNXzcek9YJJudtf7iHdpX9xRKf7lnwmouqdLT2UM/VGvOhSeDkpDYPpADoBsTjMHE0SbraXDUthLt++TF0E2eHFiPgPoIjgUCGCaA/yY9v4THxQNIZqUjHKD4diMLvaB2giWr3OiFkajHbLz9oGsc3SxrKuCUeQrH6jUtEaCz+BiLMUDkqRvnUvVqHoK/LQrLiYtXJSRvB+yOmQhj69kcR3oBrLBjnSMHKZcITOeAhn7zHSIHxOpfehSXwCJZf00ZWrb35OoqyXGo9DBOARSQ7BnLHiSzObDeoXHrZ7TQQBy+NwX+LyXZRMrgdmjDy0EIChgOQqhxAb5KemwNomIuu709tXJRhytOOiKfPJY/ws9vZ3eIVfgTsar6nXoY0HAQlRmit3zcnQLlA/xCwAxgLx6mv/itLgom07Us0IZv/BOLu","layer_level":3},{"id":"5a0f3a66-d169-4a34-95ca-e173a89429e2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密账户管理","description":"api-card-info-jd-account","prompt":"创建京东卡密账户管理API的详细文档。详细说明账户创建、更新、删除和查询接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述批量添加京东账户Cookie的实现方式,包括Cookie验证机制、状态检测和刷新策略。提供实际使用示例,如批量导入账户、账户状态监控、Cookie有效性验证等场景。解释账户与京东平台的交互机制,包括登录状态管理、反爬虫策略应对和请求频率控制。文档应包含错误处理策略、安全考虑和性能优化建议。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","progress_status":"completed","dependent_files":"api/card_info_jd/v1/account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_list.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_update.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_delete.go,internal/logic/card_redeem_account/query.go,internal/model/entity/v_1_card_redeem_account_info.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T18:56:14+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBgUl2d6Scta4RQBMUlv4P6FBG2to7BFRHZXhg9BHwNCBD381RHw8dSROjY0CP5l2V+vaH2abBiwvnIbxE31IKQRVIdO4Ewz8JwWbtt5tmL8f9cJo6ahniikYwoT8OeUbMRpDl8DxdG2s35ojn5Pkz4O4fSeqtH8+hJ6Xr0rIZlEh8/8f46c+F1LGoWRtLxfdiyKp8oOyO4Is1/w7sEFWzmO9twKFnkqW3HkTjlSQrWAnN6fUR5GuyOSRYijYJ/gyTzY/wl4XKJastvxcCcsA474y8VkOy90tdpJIQznu5Ben1hu0/p3ZpOXPYd+bhjyI9/krzqdGVVWifczIEhoZCu7/XfP4tO2yASiJImRuOR+CO/zjsUDy5+KRNJLBq5HSzEmQ9GfgwNCPc809XcZzrk6IuwtZjLPMperxN1uZKxRCjmAcRaETzkhLDAHCJEDnmwqIO2UEe0ehJr/xSTPfabX0L0c90e78TfEvMdTvI35MS+rQyOO6drdfP7sxQX7pI7i4wWJpfZKsKZVSy8YG5AbSSgdMkWeizoGdLf6dJE/Xjq0NS958wC7/1QHFe4VwtfXX3rqcPRhg2LoX9SPcvmRIGkLtxYws8a/KRMRf146tiCLscWjNMFTNQC+Zw1Y6QzodUwxGpLnafM7L+I3dmnuPv6cu972lxTYVmNlpc/u8h/+WLeodNhWaEzMn2mkZO+zYqIvJwSNYDSEKapP1cM4mjRa1KhV2FdAWcSIa62p6muCsoT+Bj7AVCIUdJF4+s/4Rhc38zcceMRTyOcwK9wWZYajHgdaqZnxNoWFIRYkpRBs7Mq2fCdHMK8vnUAskW0pWnNxJpOwaNA7OlBugvIYZz8PjeHAKIYEYFSul1oVwVprSmg4le5igOxkugrYcLTfOsMnirLxhyI0dzZ95fJSPt2yyQbUDUxb4p8XDiTNSPHwoR1FFtHUGrY6zjZJK0W4n3tw0G+0x+exh1pjVO+oDKcaOtgUOolzOvngO5tfGocxnDVNnj2Dylx+zxkltJVZ67wf9cj+qPLcEDPnN/0bVQD/aHPjbUzdVtCDvBHsGU2KqOvOQRo5lhoBj4biXkQCgARq6rgc8rTMW/7a6Um93POR01838YeN2EE5ameiQV+PjkLrcr/MfY2yche9hwHpEgEtYzi+J7nmOnQKPW2/KR5oXhVL5SLh9xTYFzs+yDcpB5FFd3cZ3oKwJ00X8FXbFWdbanzH5JZDyJsz0uiYkXAdXvU7HYDSeY0kJY6Zh4D7KzYnMLEo+FYkM1UM2WA6sAtPbs0NseDRjhuklugEvOSBsLdXaJY/2ZIIQvy1G8Jy5C++r97NdT5tli77firZyLt+tpnnNj5D/kFmAxI6mLVx2LLTPhvloz4dHP7zHuB9ADxwonQQJxrJ2yL8u9Bya0C29eRCNRpYC5WCPNdjXkR/JVbdjF+Eex0DkjpnMUgwoboTAKNCCt/LsDPsHnfxo6m8X9t5CvOqsU/n1XOplLXPhFlJNOt0w3GuvscLiyFP7I7Vojk0CZ5YfYxTVzdjSrPv0huwDag6PMes8+oU8A2+pBDki3YPnKURMTwxlfjF7oSZjierV3JnlqBQjwAICUDFqCnYvgTbjj3sJGH+ikMk9VFatoxbpZpZN8SzKhZ8kA0IXMBVed4vAuNZetQ==","layer_level":3},{"id":"6a7b8a19-18bb-4222-8c43-45f6c25ea130","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密账户管理","description":"api-card-info-tmall-account","prompt":"创建天猫卡密账户管理API的详细文档,涵盖账户创建、OAuth授权、状态管理等接口。详细说明账户创建、授权回调、状态查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括天猫游戏账户创建、OAuth2.0授权流程、账户状态检测等场景。解释天猫平台特有的OAuth授权流程和access token管理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注天猫平台的OAuth2.0认证流程和API调用配额限制。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/account.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_authorize_callback.go,internal/logic/card_t_mall_account/account.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T18:56:38+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBoR0UyAkbkceqMyhpWku8RVMxI14JrT0WuZAKIquaumc/fyWO7e6sPSexwLceo6/MRNBnGOl41j7jMKXHDp2IJIYtqDgbDCxUwOhOQ8OIuqHJLuTFiEYbTEv9b6wcKKc8EAUOn0Mq8/AHAI14ujJMZ4NX5giXQ1UYTmQPJBU74L+ax7JIOqoeJSCJzn+FNpqHnPZfjB29On4hQ3wkOJvMbEuzSQ+r+Gru2HnMF3kaogVcbE+IytKZo4iVifeIEzWZup7nmaYSY5JPaZtHfY8dLwFZBNsNkKfQO+EFSfoqA8csAJhIyoi2JkXmJgskA2IwVlc7ATUE+4hMEK2SjDNM190H1+u0MFNBrjbwN/nn4rW9P7RynuaB4g36TWvUa6jZFBFwgACpm9x0rUwQJMVL6audS5N0KytY4HsnTtcC0OtHf1Jyr8xeK9Chg3ROKePyBHvA/xmz6AOAZ5E/EDfyZrrPQ8ctqP08gcW0FVVtMK/nQantyuXSlF2prvPTpbRUvukHLA2/M1ZncThXExGhO0PxBSqV/CbOKaSMHZNG6ij3Vr/YN0hlrXtx7tM13kN4u+eudBT5HkmEO2f4gRhmurkgUikBdoqamLraJQUKr+TwS1qSKTYyv6+FzDg0WPvBMVRN00zU4slmhMGSA3VgFKNL7L7y62KwNVqsED+7p9MXnudASGPDkFOuYbtil+LJFDuUiFiIv4PfhL5jmrUApuQAe3EB0AzQujJIrRh2sVrQeSGZMH4vAtvPL2qypV9F9lo9/XYybT+F7i/3Qt5dslxHl3y4xS5M8DKi4qdKHLzWXTHhX/pLeiRiaS/nDIHBu97n5HSUQEtLuY585nkaoMVfgmyg+6ULtg0tU6MdWqkr4b4ANKqvMkZHVrmfXqvIe94uefgBR9xYl10GJS+kFAPy53hJ/rPlIv/8ERnBSm1jSCCgo/bgU+ELVwq8R6blJdx3AxQI5BS65muiIBl09wf5MrrbYoVTl42wXImijcLuEU97bGyUH06LRBHDjkMtClfAzQSUAjHQRmdPTHMuVBhOQhmCjSTtH3Fkj+/4ODYAVa6Begbs/GUe3s2TzX/GE2XkHZCzUpIiiuq+08HgN6x7+Dl9RwoI/vf1IsfKnuhPrI0tkMINyS7v2XW6TgOL2RhNFE/VE6el85W4R7lldv+b9XekZX9s0g+WzI16nFSczoA60cIKhnWcGN77Tuyokf8dLEGr7mSrGwuXJW1iXGk6J5BfaotNOd3Peib6RgN+cGjK8X+K1FpzJ80yoy5U03Tkm42yLi38jXb9tMwu3bn5A9zTQgbvzeTwBhSqU9b2HiCITl0jMEseWoqRPz5p4PLomOL4eatGjoTOYt0i7ndNdRXQvlOknlHER4JJF2TYnFosnqu/pI4V3sEH7jljQRlw8nuyWxoJGh+662U1BS6wKEvY33aQFXQTnIap10xeDGh53y83Im1qI9NfhuqVPqC3iLrnnoH+g/ujcZvV6Zbcbu61QNwo9P5OPk3YDMl","layer_level":3},{"id":"f1ed70ff-aea4-4289-8223-fecd0ffd2cad","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"构建阶段详解","description":"dockerfile-build","prompt":"详细解析Dockerfile中的构建阶段,包括基础镜像golang:alpine的选择理由、依赖安装过程、代码编译步骤。说明多阶段构建中构建阶段的具体指令,如go mod download预下载依赖、代码编译命令、编译参数优化等。解释如何利用构建缓存提高效率,以及构建阶段的最佳实践,如使用.dockerignore避免不必要的文件传输、设置合适的环境变量GO111MODULE=on等。提供构建过程中常见问题的解决方案。","parent_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T18:56:29+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kAC4I1igMIbmJdop4VG0ZbJjFypRxn4xUly2HIQaD6E7Ulk8/xSnFXX+kBsK+YCiAFpBZQaJXx1K6xD8fgHOhJlmWyvZ/fW+LtZKayd0FV0jlHO2AcIFL1eWHd/6OafkRW0RQ3lAEZ3RRU0iA7UKykKoL2lHBTNrjnDDxz4sLu6jLgCdadAE7a1NJYx8QQjdEaCcrMMyW4INTvYDbVmBGbjUfeYUMV8qhxpfBbCR/tGRxLtGS2TyPsJGGPPDNDhbPpwJ0yJPkaNCFT9eMLfbVXwMNLEEHZ36uelrbeySFxF3laONoF3Ina+ld1a1rCYzeBOBrisG3LOcDOgAu84dsk3bqzePE61QcMUimqePrk0tV/VYhMyphCghL+28J/zngBOlSqkLapTPn02rzSuLBtwuWDsm7IdjT0g7vWZR9cQnR6vmGanUjlgOtzEPCxZniXz6wkdcKMs/oSI8NTK4hN0cPQ0XppJQsFzBrlOiE9Fgc+zz/XgEM1isY7Dk7z++54qnPnGLZyatfZnozoDnYQ2xwsF35q9a5kfjP3EkT1RxyPWaqS/sy2HWH77doAWKcDkMiO9iiYPVmUu4SexyxGTnn0W6JUTDqEr6EiDfR/4CwAy0bvzdLNqff9xqVwhukHFvh+EGtngOJKx4iEREqkW8TGhMHdQq8T4UFKDCbBMt20a7wyhGKuDFcdTxOphnRIdgGNXng50y/dMm8RpaQW+kZ4teEXmlsP9HmqtCdqh73KgHhKA5m6k3TGbcusQX8RpxS5xkNYxKSRwKjH/XRgx9kPmPjZjHWS4eWzdmDb92hKVy/lGAJ0qG73t+Y4Vqrvj/g2TN5aGhhyKd/H5QXz/Fz7p9xsHidqQ3uWc/dkTOfSb8BEeINpHlU2KCiK4hTKElQwpYs7burcNRRdw7WiSp8IrMFex61TrKTAZIioHCeOGKRfWNoYHCpQ4eCQEFmw==","layer_level":3},{"id":"18a1847d-4be2-4c61-af2e-3f527f5f3d1c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密账户管理","description":"api-card-info-walmart-account","prompt":"创建沃尔玛卡密账户管理API的详细文档,涵盖账户创建、Cookie批量验证、状态检测、信息更新等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量添加账户Cookie、检测账户状态、更新账户信息等场景。解释沃尔玛卡密特有的账户状态检测机制,包括状态检测频率、异常状态处理流程和账户负载均衡策略。文档应包含客户端实现指南和性能优化建议,特别关注批量操作的并发控制和状态检测的轮询间隔设置。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","progress_status":"completed","dependent_files":"api/card_info_walmart/v1/account.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_create.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_cookie_batch_check.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_status_detect.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_account/status.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T18:57:15+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgknjA9Zzn+5hUWkkdnMISC5CYpQ3ick0SR5Mn60NwWCjSgyn9tJBmohQBrkR7351QihXLt4C3w7EHveHmwZ+0uOjcajq8e2trIg/7vL2Cme4X2Hb6qG1dBHe+QewzwbrR+s2ivL2ZBUVHbNTYqOVu/LtKXASVn8WzizsJy8M3YALdi9aGYPVxe3tG0uR6SypskX10rHVKv6iqyP9PqKLMrWLgbgNLidMynnIfiYaJkjwFVWDArm+GRfL9iSztYoDG4zmt01VMPYfJ4U+YAbeI67jlZkH++gOaL0jeABDZUNYnSSh2362J418uUm+NX3U8yQkYuEksmbZ3PjdFtpI6gA88wbWuMTr9NGz6NAw7Y14rcuHcbTWKBcKlkCMLdQk1OCRYSLQK2hgYvzRvoSOyoO54u8EB50zw1p0hZB2ziVMFXXBWMnk6DiBcu09+vJcEBlefqkHYCOGQ9u8GnDPIGE+h8C6mwZXSUbzHspfZBFmwo2rx1jG+GUhuE9Nv2SpsUBbNGCZ1N60lr/D+4tiJ9Bm4TfBLoKnWszoMAOYSmiqG5xFfVrgjVNX1gHz5Fvz1OKyIPfeC7STYl78rHHydJldofyMXxmM6RmJpm9SAf1UBxBPPeDk2u8IxyBX/M3t8Ani8Vr/Br737nCo7r4t3hUuEVe+hV6PTmC9aeTWvT47WbYT4q0T5Td/zg83FeLZXeHo0v7qDJIEu/U1AFstcvhF1cYnrqfdRaQPLC+NvwBVCg61aQaJfyM0akp/oUh2pl2bXudoa5pIPlxiaM4gDpMv6iURLOr7Gors1oSPojgBM5fNUwjbvvmgJztf8PUnnMcHxBgO0EyUfy7dmLxkJDaMNRR8YDGYHK8XHqsiCJtlFDZCknu847jNfR3RE7ND9JehCRm5zReFaIw5d2jd6rtFp9Lgt1kj1+7sK+eHx7U+pXZjlu9q0Bk7DXhc5YZy0R1xu+Z2yMgeb67CVtosr5abLqsIyubLzBTt5gRJd8zm5iNz5U2NDq8QUprf5k4DXMoMSmj3gOwW/yIoVhgQgHPMjGtVelXb7RSYNV7nBJJ2rbyg6eCwxag7sV3584VAbJq2tx1wmkyjLFefQlBayViTVvYDngeZLFo6TM118hTXZCg3V/kVBesEixvchCkdoAjDQcpeNlFNimtfN/j30H/yC9aV/84QqCSzu4XOzK3toJvQ8NHW2Pha4Uepet/xAGYVbM5VY14haqlRwmNCbXmYthr/FewzGxoaZ4ZLdIRHRI9HrN/2dfK8N4cI5wLvZboQMNIKByVy2LfrH5YBgI9F86RllWtvEeWx5gVeV1sLOxB2ljfTHX5co0CG4zoLe+9AU8Bqu+kBtF1m6BaKKkqTV9kLPLMZNmWTMAfVxnfMaj9xjeXLPh8hTT12/qFhJ+pv0/XhCPl0V289QdlchT2ySBXL4i1KrY7iNonoSAyXenxsE5Cf+9d8+UDdMk1whs5qlT9kAkNwrFEuqb0tXhAh19cBqSLOBy90MTvZ3rzZnCVJ4RcABvwgo0m0IzV1PcVynixzVh6/WilxuJ/t2w5UXlw0xDPfv6Oc2QT6g5TP8vmGn0kC+fvw3M+3pNKZnvkH/kXHiZR6ZoOYDFY3/0sslzc5+MG0ppPasXSkTbMgljd2rhy18zfdmin/UDAHeg=","layer_level":3},{"id":"9b95c229-e3f1-4960-a0be-1b88f001b0bd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"主服务配置","description":"docker_compose_main_service","prompt":"创建kami_backend主服务的Docker Compose配置文档。详细分析docker-compose.yml中kami_backend服务的image、container_name、ports、environment、volumes、depends_on等配置项。解释不同环境下的配置差异,包括开发环境使用的本地构建镜像与生产环境使用的预构建镜像。说明健康检查配置、重启策略、日志驱动等运维相关设置。提供环境变量注入的最佳实践,包括数据库连接、Redis配置、OpenTelemetry设置等。展示如何通过Docker Compose扩展配置来定制化部署。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T18:57:12+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kFDscd1aC5KxtjHTjiiSU1zE7PzaGOYJ+Yho6nUmFlncjDqgU9yqAJXFLLWnMcFSFK8U5OwApMqyMqONb3fv45XCiLTzIfBgkcLgFzQ0y4EDdwKWpKprWy1eNnWMb/m2QMKgCPpqHbSqreXniX/AZXrW6HlWRG2TNMz7NyP2IpJraWJHLgyIvbm2z4pNhVvr6Ysj0rsW0R0l7TgkNgMcdDXwNDP135bsvlW0+lcDDQfzIzm9Se5SVnrZ3kvNyrjTxohlXcHT0Ee5t50msXzCmzd9vRkgosb5s/JjS8W1C4KS7fPVWMKJtBj+SJ4qkA/GWprywN3UVx926ASw9p3qweqHyMPrHtT2qcclvbbBYPMVHur4ZV5C4e79F3Llv/1dbpOeaRcRU8zKUWRQfCtEHhYCBqSZQA4SlWIIuXWWK1LkG9KdjiOhuG55EwE7ackhRP909avT9YUaIlA7OWePgUtKquVu8ebZEe5PCcd0CejuDRe+mWjXZijZvzJv9kX0QY+B+WHA41bMELlafHdiYHa1xBVHWf53LBDVVLVSGbUbCl98dWA7QLSVQ/iTxI8yVxOzJpMjaJ58jM8DXTTKb51XFVeyxTNu2T69KFbcV8Z5J79/rMnF0TCDXjB34H7SAKMb8PpNrYkj3vA52bZ4z3U810dt/tXDdsMGTAPdoNrr6pOsdSEKdZcSDfH5wstFaa63KfgXL9CkRoO2Mi3OmTSzKzhMiyOHynZAa0E/H0RoEGk2zT/70+WbcMa0PpsIybvh+2dYANMQAMo/tqstywpcVcMt3nq3k6dxgdbS3HMluNx97m2eqJVvbiJaoUpnONIBK/bMbVjSwca8ccwYH+u7YdVXWGbfAv8iMhLv+y/lVquNH6u0rG0oXjZDPHp3ibfOaUiGjJM0lqvh3Z+iov6WtnLb7NJL4V1DkXa5Oy8NskWxr44tcsnJdgrGjRx1hQx6FYgUdCKdzNyAmQbmilpgi5f5Z55fReLK5Xy2knIQngXGcJjgfcdMZmz72Z1/6I5D61elD4qNhGxWqL+Phq9JmnBpbdxnrP6W2RRdJQa66FDJQqRLKxq2Vwgc6m/4KdNpbCYRO0BpEnJn8mzVlVcj4rNJxhqWLN1qsi7imv+mUoFzDC0/5o1SQqz1/+RXbp0oXPJig+1ci26QKjkvcLg=","layer_level":3},{"id":"529d0827-5291-40f8-8e40-3b0ec55570bc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东Cookie管理模块重构设计","description":"jd-cookie-refactor-design","prompt":"创建 comprehensive documentation for 京东Cookie管理模块重构设计。Document its 架构设计与业务场景, 数据库表结构与索引设计, API接口规范, 业务逻辑包括Cookie轮询、状态管理及订单复用机制, 支付链接管理与失效处理流程, 并发控制策略和变更记录机制, 缓存策略与性能优化方案, 监控告警体系, 数据安全与接口安全措施, 以及测试策略。Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"JD_COOKIE_REFACTOR_REPORT.md,.qoder/quests/module-rewrite.md","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:31:20+08:00","raw_data":"WikiEncrypted:gc3Nobv341FwplqquUMhwpYHBkEN0ku+TLqWXEIgxy0UQLWUWDgkuyFblxk1o56sdti5kYjZlI5e/9//aiJFKBkDd78ybG3xHnXz0MTn8F69iINGQzKGK4TqQpSWY2ZQliezKr2UdZnjwzqLICppoznHXbakAm2QyzUOWVQZbOirkpdpxjk7gmRurOxW1dMAsYiikka43y/oi1n1ojbcfSat4n8/ICGXklUwNR6EIMRUBcixqY2VLabXYVwweAXZdUzH5oD6pFklkfGtN/s3/LOD9cTaeFUHa84FgptLBUOyIflisdZGn33exnrB4Vvey0eohFtP7epUdZsKJ7FlyzF8Y2AvvYgifJrXQWNiovqWmkgQZLL7NAbAwQChoCI8r1KXETsKbVJVllvmuj+k/sgRGnAtlQVThz8GA/JlF4jbTtPyU7z56ETFApMJ0CQFBwwWDKzCytID2NVdaDKxTPDdFaP9qdVILmb9ZL89PeFHJlkSQu6KCrgM1JD3scBJIiDTU4o290c6OwxO9RPGVXtLKu6zqWfoliffwmMrz9LwYx4mrXjSBweS5oCWWKEsqJQvTcB7HnC4CTEWZ+Lx646SzI55kyZAZljFEgFzdxOcNKzfykfKulyPdSzGnzYSRI12aX5zbGppVi5sSRL+UmBujUksoEaSC0bfXzKx+FVgV31WU9Ktg6rL6HZUnbAn+57xNKAgM5Wj5dAZAQSJe2T1GaEKHUmgSRU3sk/yrw9Jo9qKrfWXnqlEVn6RW4XaAZlFmTrAOU5s21XBPSI7XJ1q2YlDuGzz4E5AL0XlQmreUmEJxuLFbRDfh03Fb8+ylZ7Ahkn5ErmQKQgk1Wat0cEoX1WiIKkWJBsHaZvn4F0VvzF5QA4nrpU4Zk6cIvKS/EYNQtUtJW1HBIWr3QK5aJfqYu4KExKwS8W3ntRDiRHZZrhmcwhpMDmKUOOtD115"},{"id":"9f851a40-0195-456e-b877-f1610bee0ca0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东订单导出功能","description":"jd_cookie_order_export","prompt":"Create comprehensive documentation for 京东订单导出功能. Document its purpose, implementation details, API interfaces, and integration patterns. Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"internal/controller/jd_cookie/jd_cookie_v1_export_jd_order.go,internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00","raw_data":"WikiEncrypted:gc3Nobv341FwplqquUMhwjlgKxBeFfGk8njr/gp7X4kXK9AjWAttEPG3zkYm+jNLq5Sst/T2neRmqO1ycA2iXqQsv07j54mz8rBDiQhxkUwINaMt+UrT+XKMrUvjEX7Nuqhz9vM5qGWKe4wNp8o9wUlfzV4Kjt2OJFupCAoXMm+EISO3vHjWMnho5Zy1i62p85KLxgMVsPh2km6waDCup0YdCAZPwWmti/gczT82Oi6uoLPSEzS9J7Upfpnxl1+P7z91hyLShzP7rzMUEKBy96xQ46YjekjHIp4AYC0xW8GyqN8FQIss12gVy+so8xEOJtDjyaKhkDXyLFY4+UzHSxZkLX1t8+ubCSD2WMb046Jfdb/9GGF1RkzU2e7WaFLci05oVxImePB9S0qNfjLniymSwnQDptD+gDESq7PQ4SixPFdOxr2bqyJgnc3al54EvbXPbGnHgOOql/8jeB4cS+RzKv35Le+6meo1Ou1kNrLrRYXhnm0kQEfmuTda/C1jig59+ckPZ/QwIT+/OufBfAdfh2AkTfLixe6NpUq7mp/4OcfkdijUpltmXMqJxqyDZsCxbS2e2Kibch+bsFnEkGlS8qkHUVH9ds9EpNUuvfo="},{"id":"816e73fd-ddde-4333-9ddc-b0bed7d5d9e0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单回调功能","description":"jd_cookie_callback","prompt":"Create comprehensive documentation for 订单回调功能. Document its purpose, implementation details, API interfaces, and integration patterns. Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:10:35+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI7/wfxTRVBfX0PW5QbxIGkOuWo6CGgQ7+OLX/BVj5fw36u/LmvuB2hEnZUvUgtng38VCnBwGT6hQhX601zUkA49s2aWZtGIFyW78W3BcydQz+h5mSrci+pR0i6nNzI+toidJ/QAfyngC/sRCwZc5Tm8f88JkgS05ROIW70m3Bm+LhVtCbCKe7JYldXcUgUH89D5bfSUel7ZcQ6pdw03fmXcDAlMxXA1jkTLyviLsbM4bsE4ekbFR6dtbn5NwbnrnrQCFvgzAeFa+3PYCsiwwMFXj8BdcvB5BPH3awtJ2W3ufgOrvaaMiHlZWt2qEwUlHkMHp5rSU2LLWkm5NJRqEAcqUjVFtSl1b+tFMXR2LaSl0MowZ+79OsRdjr9D3WkoOrTQ56LwCp1MzS6p2WkxdLz2V5JH/BgB2B3u0btDgslyWU6wII2AUBbtbFAI1LNhcfDeYEfD7aU9TFb0ufVh8/VZPBabw6lLb5Ap1/2xIq6ow"},{"id":"802f0a8e-251b-4bdc-9194-bfdc2122b3bf","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"技术栈与依赖","description":"technology-stack","prompt":"创建关于kami_backend技术栈的全面内容。详细说明项目使用的核心技术,包括Go语言、GoFrame框架、MySQL数据库和Redis缓存。解释OpenTelemetry在系统可观测性中的集成和作用,以及Casbin在RBAC权限控制中的实现。描述RESTful API的设计原则和实现方式。为每个技术组件提供实施细节、配置选项和使用模式。包括实际代码示例,展示这些技术如何在项目中协同工作。解释技术选型的决策原因、权衡取舍和约束条件。为初学者提供概念性概述,同时为经验丰富的开发者提供足够的技术深度。","order":1,"progress_status":"completed","dependent_files":"main.go,go.mod,internal/middleware/auth.go,utility/otel/config.go,manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:21:57+08:00","raw_data":"WikiEncrypted:w0CkdCdnXCcvlN5xOpiEhEX3U68GI0Ngj6azFMJo9xQD0Nwsj9XajeArLn33w436LuYJWl4xP0dT9zLNODhOpJWtrSnsTOFdbU6xnVdYH2WhlC46KME7gjNRiRMPuUpA7dVEI+NP5zwBpvDMRHvIrAb68HCkCmtSyGQKZSrTNYL2NxP6WPImEyXoT9RMGl6UVv4yJYYr2tmXUjqrJgnZFvSGQtZm2LCPWlIAAFHHC4Q7BPX22tszuLBPhoiVxcSCqHIJiooavJWuc9VeQvWXs2fCKn1YDu2U2lNO5216USYVnr3Ut7tqWoVNIJ1CpoCkZS4SeZ0CLrx5YeUFItmKKJq7XiPSfKRFGs1zfEOKcvdyL+RkR9+1SKIWpGzGcTLwP6CtuQ2Y71Lwv2eE2+xopuoSOmPUTGRVBglkPMwm3/EJuszEoTr0cKi57UrMxc1NcOcd5mXvE/AzIQBMbRyOCWtrzO/qpYlJATnhh1i5L3NpdMDU1vvxj3LFPSHPylc5OvLVkiNtifBGe0YzzJMgyhtKNTjc+BRy/nugT+hlJtBU8+sAxmddiQv2tRcUALDh27u9r/VslWIqKZBy4imfsEo4Hg39v/uoP1SVMfbXOa/A42Ogvfe98jByFSvFdw5Q7mJwq49USkBzCKL8ax2Oe3f5FWNRwkGPWr5eVK84Ho4igv3W/eA+2IytxBe60Zdl/w71ClZaknfiSLFsncBZrdNHC02tPvqStcReEZKC0fwXKU2+zIR+gN35Dae/0/QSY59okC53Yoy0/7pXvl/UJNajz4gJlBvI8m1eC1yLFB6FDzvCPnNR3tlb1IN9JPYf3aI4yc0QddV+sRB/h5jcS1wpB5EwJhrwmmf7E83hHD8zxcy1YAC9LgvSjW9ib+JxZniOiwBRdKPE7mt69R2mqktSW4IQKnoYx4KJpsoltWC7XGPanW9wUXCkEYyhMDwEnSBGtwlYEg7lWpsl9b/CBzw/9z5cnbQBei4HDy/DDmqVxAit1VDg8oIAnAw+fReuWS5W+teFhuCkPvq4pRdb7NiWyV2LuCH7ixYAlIBm3YI4/2Td0Hd0GCZdpoepj4SCzQSUr8RKrse1IlTyID2icWpeks4xJ/cQnH1xw7sL5u52nipyQ+T82gQ+hbkM2i5iC899sK23Rdb7Ug+hKDlaxVoxcsaoIfPvqnmnLRXHxsSMsJcAEuzAd8adU9H0AFTMftLv+1oNmYj2ZhWDZZqohcUOT01qCqx1pr5WkYbE2VXp6Pqpa08OeoyK4z8XPOX0"},{"id":"5ffd09f4-939b-4b8b-a254-494937471526","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单处理逻辑","description":"order-processing-logic","prompt":"创建kami_backend订单处理业务逻辑的详细文档。全面描述卡密充值订单、兑换订单的创建、查询、回调处理和状态变更流程。详细说明订单与卡密账户、支付渠道的关联机制。解释订单历史记录、订单统计和订单汇总的实现方式。阐述订单处理中的幂等性保证、事务管理策略和错误重试机制。提供订单状态机的完整描述,包括各状态的转换条件和触发事件。包含实际代码示例和性能优化建议。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_apple_order/,internal/logic/card_redeem_order/,internal/logic/card_t_mall_order/,internal/service/card_apple_order.go,internal/service/card_redeem_order.go,internal/service/card_t_mall_order.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-11T17:28:54+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI+WUf3/2c54GyQsd262eumPCPfeIDLF4ZKJTKT3R5YZNkPz3T8xv/2u1DVwEwDzhtyS35ARhwhlFbL3eDQbUoFzXUP1TcBAEZa9pBoZu0QVk5rpIzwDTJRkSX5j8Oe+1eCdRpNuB8tCuTkIcj3PG1Xj9BkXLyBhcB+mdqhpetnuBg1VR+tkxZRofLH3u7Ua4YdpFim9HwivjZIisiG1NCu8NKhUXgBbPOO6e10f4AFLROv7zvd6WgTEydkP/qIA9ZePQdf3Q50Ll7Sf7167Y2NH6zwpj1apKAiXhXKg2FqkNr7AVzQn2vEbrGlCdmuCqGEtXX3FfsdL8uqUiOIbwqoV9oLAMEdlpD2v5X/yFQZw8lzc1kg/Sj2jIcckJaiLWI2ADsMQnCdJgU5RTmbC0JS+sYbiHL//AlRVxdKU489qRB0aUGFdZ0LyvJwpez3SRSke8Fj3xmQePxeQHqOolg/q3mthumyNoUf0Kb/3u2ssO5KEMc8jBNQsJp8xSGSEJjwgXbc6GYNe2GmuP7uJsQb015AM+o6ITmrfB8JFKUt4DjcbXlzSTowFqEpoW2IUUXfsvG6eVPTu438PLXJa6NI7dd3InE2u0YLV4QLXcXOOtlNGl+VFAiPRA6pxCR/MYAjxYAsoASAUQXMHZwKSRZOhFo+b8NVhrrMMswoGJuv+OyGq5DiFihJY7crKZREtylnXj/KzS00wRfQPTQCjHTh5rQZJlKIcjFZdXvSgD5P55k+UtX4HzUfOmHWiN0fnunOY/YnMO2un3U1nHGnIFoKgKcABdN6t2D2LI/RC+VgTJcsJXT4QYBlharDcrYW2xmpl6Wf9kKRaNc0yLZK1MGuLzcsiv11kceSNGvjijk8f1u/Emuaqq/fcCJqaD/sGyexZ7Kgi/WTc445yqv75vuVm9ya3E3OZJys7E2gtTwhmmzfL4IZ/6xHddbR5+653cePDH8FLYsxoz0yDd8eEUd7Q1Grl8uJjUDhpog1BMhzoE3jM2gfqXCecpzv/t/R3OElbIBovAWlN8W3betCMgzNeFjmIP3yRdLS5vzdrH3i0NhAQWjxu2v0LXC35ft0sn2QzDB533G178KMtJoFJfVnvFdk+gBJzD4oofWysVxP68zSYSBhqvrMWI22nBMDn8/sUDhxyzcFDcC9i4+Bsf+KPDUFMCYZ4wBwMK/OF1Lz1Annys0TP5AVZ7zpy3T5+y03y0ZqbKhStizhiiBAi4gD8fcP+OGi4Bzx8vOj4wspmBHfTPfJ12Riv5ijeju1inZNV4U84QlFXDzUUvdaSb1TFpcaJV9yDF5HvWOV57diArwR8Z+bT1R+p8Zz9bb4dpsw==","layer_level":1},{"id":"4bf77667-f501-43ff-8e67-ed1fa1562255","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单数据模型","description":"order-data-model","prompt":"创建kami_backend订单数据模型的全面文档。详细说明v_1_order_info实体的所有字段定义、数据类型和业务含义,包括订单号、金额、状态、时间戳等关键属性。解释主键id、唯一索引order_no的定义,以及与用户、商品、支付等实体的外键关系。阐述订单数据的验证规则和业务规则,如状态流转、金额校验等。提供订单数据表的模式图和典型订单数据示例。记录订单数据的访问模式(如按用户查询、按时间范围查询)、缓存策略和性能考虑因素(如分库分表策略)。说明订单数据生命周期、保留策略和归档规则。详细描述GoFrame ORM框架如何将订单数据模型映射到Go结构体,以及DAO层如何实现订单数据的复杂查询操作。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":1,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_order_info.go,internal/model/do/v_1_order_info.go,internal/dao/v_1_order_info.go,internal/model/order_info.go,internal/model/entity/v_1_order_profit_info.go,internal/model/entity/v_1_order_settle_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:28:50+08:00","raw_data":"WikiEncrypted:1TcXmWRnDAgI41cGfWTUk1R7Ob0dlO4iS5md97HGy1IUcNsLG/EGmFW+BE7FWuw6SWfHaCr+3MFY0MgqSzOl1OL2ZM9TRbeL8AfQEc0ln3MMKbJQCyDbnjZyYdY/LJJEcsEHhprJAw8tIkRHq/yYKI/FQE4+YkVB7Cxhfi+vNWM8okozNI1ndjoiweeS+IlD3Yfyxq+htkYw/Fyfy5PwyH8qf1tY9ToWSgBkaGm0nl1J7yTZobw3ISf4Dr6L+VaMy5i9Wt1e4xnz1cKzeamnSMuW/ntuDaTXGzqypeuvRNCLYSWE3IzNMuJlr9KIZbOWsrhy+YY045ObSUF67N/A6BUP+0iSk38A1T/E5+pI5JhlkIld8iyW411EvFzoVzyciwB7Oc6uFqVG6VPv1UNit7STXIBiGJjGQSE8aUoqOUP2f5RqWcUjidoH7+Gjj1TlBryTcdmu27PLhhzofQYQqR3KKsKQg/fTkpRlzObdnqTkINMqBINpscAMsO68JlXBQ87nMRHflBa+KzfPIo9+M+agfc/jCH3//VzBWsObHCqSQDK7L70o0bIVQSrdVd+Hcr2jRepyyVTEbh5JlyXjSjad75lkuTZPIO+JSToIqj7FspqO4XxAN6syEKlOxVJgXDkwys+2F+avcGxsj4eCMnlBzckPEWQh4JFOY7D7Br9rINJtG5LMVZbbbIxKAVbgYUFH6PnVTGtkZBxyoI6tRX7SLvBJRLztV0lVk0JTcnUM2z4poezd3nmEHAWf9OMGY4nImos2OuYgEXFJh4eg9hbcZfUcJzY7tjgfkaX0moVwltRVq8E+Nx4+aHaPlP7k3Zsfk5uNA3Hy0f1Nd0Zl7bdqfpymAG0krtNjxarmim3QtliP6m+TdinGDRRk5qWRUlvl6rzFALN8H5IVMvYU7Kx/X3nTO9Q/VWg96lS/O4OKkO7ZILzgR4og8ulXKnlyT2DSistUkyBi5oHlhvzX1AxQvFcB7tbuiJEcnbDITKxOZbEiZhn+Hn3RHNo7p317l2W3jSbBUB8CsITZxd9AVDmEAkqGyljFIeDeahooiZ4TexZR/g5OcHWhj9oPkevPKLubVVYLNOFsTYyhW/JqjRBQUvdBhXchp3dGk+J7ShGwPd8QpYEyya0Qp+oEwSKHatFjL7CCd9XVcISq/eGmQPGzIIFQUzatZKGZMhHWrfD+8ZiaXsXdxKmL6n0ch83LPdUXeLKvH8xH+TFsRTx6tnNoLT5srj96a/fvEoiULLNhwd/XklSwmBC6E10Y+H+ypV+pBstWfpyChTgc9jSiJ69+jPs4vs49ypcBttV6yQtBjmQrlN+pk5pfjuaW0MBmkoE0MAoyLn+NLEPlMdU8NudCbRyh1lpIUyPOYdTVFzzdkPENvQY7KrzMhlP2vMvDS0VjDFFxLYP+CKh3KnvYVfn/AbDOXKYyPnK+ReyMlw8sjOlW6FCeVmd3C/6mosV+fOfQSy/jUiFHe+7WaTs5TCyPZWPnx05rHh+qTi6A4JQcWUyc1CXLWHc+1r2Uujt/3JMOGBxu3qSFz3ZQuU+34En5cNwe2W1lvJCdHcErhmhYPIXOzEPJYem6PmeNC3Yu6jjLiAVqN1ymNC72laPCeVZIq0h4BRRQh0Yl5XefaCvS2gTeuFS3wcNJAjGam9X/mEAU4ZJ59+7IcdoCS0V/W+QYTcDCpAQ0Yg78TnDcDlBquQyfldjKTpjv8ThpZN1RKcB17BDr8xAwX1FBjuNUZ6EW1Rr8ip9RLZHUp7fylWm2TVFy3nXmxuWxre7PALO6","layer_level":1},{"id":"e047b856-1a8e-4ead-bda6-66d7c3ab4651","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"授权机制","description":"authorization","prompt":"创建kami_backend基于Casbin的RBAC授权系统的详细文档。全面解释角色-权限-资源的访问控制模型,分析rbac_model.conf中的策略规则定义。描述权限检查的实现机制,包括如何在控制器和服务层进行权限验证。说明角色和权限的管理接口,如创建、更新和删除权限规则。提供权限策略的配置示例和最佳实践。解释权限缓存机制和性能优化策略。为开发者提供自定义权限策略的指导和调试技巧。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":1,"progress_status":"completed","dependent_files":"resource/casbin/rbac_model.conf,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_add.go,internal/service/sys_casbin.go,internal/logic/sys_casbin/sysCasbin.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:29:44+08:00","raw_data":"WikiEncrypted:Jgq9fCpm/NkqSNIWYhs+n3LeaG07NGCrNcYdQEJMIJmIZ1iPjkNZvT2RpQnX8LDCXRavNA0RTry59fMEhV2iRgG0UidHVojrlOr9wca5f5TTnM0+7u2hJkLOvCJh02e4OasOcajoQDCJYRPEvGMwroqJeEBFOqPeNbEFr8YSlHBQ4kQac5MP3ErY7i2RdzXjaISKkyQnXsz6CHZLCe6Jc9k/Bc35KEHacgylbsyoaIq+IjchEulTpgxDXhJ9hyzb2PtqtWrpOi8q4lEI5zSD7keA0XHr1fkHeO9Wqp2WxVJu3GV+9i1p4F4UOKC5oigUZpN5oC89zXMMJycG+KWpDBLV1uVnFM0QvCe+Sods2wcyBwh4u9Os0xCsB+LnuOvsHvJ/nlbg1SP4r+lNcFgH9aHkcDuglfuq/uqbP953Dwciyb31t/GI0MDEZ4oa6QRxRuhEd4wqwXiaEhtZWf8OCnYwhff/Jep1puFl4BCxqPFZEEpeMlC2m926O/zUP0rQC9Ufhl/N46tVJ16zr0hwRoSETnCsyudAIqE0no789R/p2ySv5Oy/JXDGVORLTWdh1hWxJmnn3FGmIBoG8qaO99VPNz9f19v+cIGrBliOGIj0NkMQRs4vri24/lOx20ZfTwi4zYK0M9zC2I5iGUUxh0dR0AKrwzEw7la1qprAEVtuxf/q0GL7+oMH6cz+jXitSlWAdLRdQXHcjTwodPKh3Lx0favJ8wr7Em4q6/BOGw7RRrpajvmwvwBJQ9Df6j2T+BWCILgA+HjG+iHy7z0CPQI45ZnqzsAvkvVc3SLpGbuMDaRkk66OYbpJOgUB0/Vwer5o8ujRZuJbN93gOm/FfHAL2hNPil/xW5IPXii50A8rAeRSW5lopgO+AoBNtoAIbEahpFUdQwE0Goq1KE6VNwFYbMDd0RJh9zx3hWvfHC5ZWxdNw1d6XvEDdDoXQ4y0YtnTRKUQ815+gd6i8hDS54YTp9p9Y1Z9ivaIOYljCZuQFAs7WYiXGWYeg8OudG7GRsOlTk9annGxH1Ag/n/g638OMH/Ky8R6f2ZsyQADvPNcJuOX9iMWAYs5b/RtyY/WPtzSNTSB8bBZKM4cz/pYxQlmQTR28p+cSnX7IfeEYAgLk+8pCEirf+woRHrYGxC/YviB14bPrDSrv+v5TARuzFxKS8KQ2hKVdF0/ajde7J87lNs+7BsY7rUbb6UMsliP","layer_level":1},{"id":"3885dee9-9a55-4da0-8506-1a84306cae21","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"监控系统集成","description":"monitoring-integration","prompt":"创建kami_backend监控系统集成的全面文档。详细说明OpenTelemetry的集成实现,包括追踪(Tracing)、指标(Metrics)和日志(Logging)的收集与导出机制。解释otel包的配置结构,如何设置采样率、导出器(Exporter)、资源属性和传播格式。提供代码示例,展示如何在控制器、服务层和业务逻辑中创建和使用Span。文档应包含监控数据的上下文传递、错误追踪、性能瓶颈分析等高级功能的使用方法。解释监控集成的技术决策,如为何选择特定的后端存储(如Jaeger、Prometheus)、数据采样策略和性能开销控制。提供监控系统常见问题的故障排除指南,如数据丢失、延迟高、资源消耗过大等问题的解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":1,"progress_status":"completed","dependent_files":"utility/otel/,internal/cmd/cmd.go,utility/monitor/","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:29:59+08:00","raw_data":"WikiEncrypted:HL3VqGjXq8A3aGeLxAjVPrAH/UrhOB11piGSWoyOV2dHVr0n3Bn0Swd0H0gYOAdbVNKbTmRhvw1HJM5/Q01+URHbU/Y2+Djgj9uGcxhMk5cHiAB2TiFj5tg4C/UkYPXIrWDwTdHLdRRcp2V6mOpIyQ1VYlBfNYtuG2wRp42Z+/3bBEIcC+3qsYn8OaFjpKSIAb7FdpUFBciL6M/Cz3oKEQ1x+wRDtToegQWuLK+PutUEfU4fTY5RmVLo6obONP7Z86RTzzERt1QaKURZmZz+C3dlis7l7IYwuic0fiH0WlYGqP3ZHUwurg0vj2eoYkhGSDg2PGUyjOgvO5hIkFEmRWgntr/LrMW5xU17+bnpZAlHWqRP12yvw4Unhvv6C7hw8bk4RWkI4WxEtEMeGEfOAgqIFnXYX/kXT7aanjvdFBbdj61A3GcyOVE9+ELXUY2XHAN4dh1k4NNzNS+z7uX7w8npZUVIzJMb9O0pZPVSJ5ynjrZX8w1k8CpU8c6M2orol/fUttKuMCEh3K/7YZwnuqssxlrM1Em1LqeaImn8QKWwUvv0ymyQc8HzlXCVqkyYKt5lkr9LSTQ4P9BeXrqXGW0AqC3ZUT6GFmG7IL4dNpjZVbbdZ63c+bVqJFrc3VDYaHNR71iLMhckXKIqy1DGe4c9rQ7A1ohCi+U8v3sV9PaXPKI4EOXyPI9tw2OooH0DBXzUMUB4Q4ZnXv4IedHG130GqLFaL66h5kI3ytLXWeDFEX3IJGUaZXPLHb2FnnNyOqJam8OyIbKwxKZnC/9DZTLG67MZ3x0h3Bql5sTCKKDd6s31eRagURn8oamaCZhRGiXfNVE+syT8rpCXCvRUS+ZG3PLPexlIO2vsW4svMqFbHRE8JAMx+CAo2ijQsNfSk+8T8yS51i1ZrADladfIEkm6Sle2Q7O/UiQU1T144p0x9B/j2gmzyFUhi2AQqc2sJBc8RPEOIiUZIzmG4A/OxYLboQ4d0dNWsBVIgryijVdKMsdhu7r9EY5Y04rOE0oGPhpQbRRxgn3lqp/ar3dVNJEwsGvJkTOXYB+YdN279sC8BMPv2FIpOG6eo9aS0S35wZifJMcsUxdAwMF0+6zfRRhtmZbIO4jaev9day1xzb7z+riYh7PGZmEBIlcAVAZijgCXDRaGAfl3UozNebRaMPpkgSNoC1PAsLZ9iI2bH6O7LjO78LGzXh2CxdITkkbN7tWe1d4FArATCWLjMeJ2YdRpWhVS7CGwFOY9h77wSLiIzp5AxuHQvzQQib0YOpn+pF4x6n6JuvUO2OfEX4p0JEi0bqVC4QC375wgrU3+1SjgBgNk9PGdm6a5Ya2vEFTmlXFdHkAsB8bmXE15lm4E0sT18xxsQMJpyizPwXOPCfqbbyKhdiawTzJUl9aA7j+SeEZY2sT/Q44UXLmZm1uqB3wjwH/qcmPv9my8fFKC00IQpNmmskyEPcp8qBrrPOAe","layer_level":1},{"id":"3c6ca985-3423-453c-9f11-d9030f798abe","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"容器化部署","description":"containerization","prompt":"创建kami_backend容器化部署的完整文档。详细解析Dockerfile的每一层构建指令,包括基础镜像选择、依赖安装、代码复制、环境变量设置等。深入分析docker-compose.yml文件中的服务编排配置,包括kami_backend服务、数据库、Redis等组件的定义和网络配置。解释不同docker-compose文件(如docker-compose-local.yaml)的用途差异。提供容器化部署的完整流程,包括镜像构建、服务启动、日志查看和容器管理。包含性能优化建议和安全加固措施。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":1,"progress_status":"completed","dependent_files":"manifest/docker/Dockerfile,manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml,manifest/docker/install.sh,manifest/docker/install-test.sh","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:30:37+08:00","raw_data":"WikiEncrypted:OYVOcFWO8QG2KTNzD99v4xxMusUyWhQxf3J/07wObNtFIyC4CbcNIuFY4V1ewVc8ZQcA3boon6xnUDfRpiaK2BRUAhlH1+fbuKhTMeIFLZYAHWpeiuXeHFl6FjFS/Cz8hv30Yi+prZq5Jfywa+60mlYxpaLuPZRvQ9V2zJsOxq1B15dUxEuRufn+MrL0Neq+z5sRR1Li6Gbk2vOpCMwAS4vt5etXp8EZqcZVW7KSxQ3bgZ1Pb990BioH3X/Tz0KQrflb+UBdIuknD2HkRxU5RnOoGPbu2nkZ0C0hTPDypRuyqKytb+l2q0Dkn8T7Qo6ynR+rsTuCWaGZkc6VZ1GRE7tqWLwW9OaS41EEsLeWYYpxpKvxrHirUd+44TdZdrQ9oUJK2nb0N0NiUkw32CvxFFbPc5W4QyrL7iXhaG6Gj6061EFeHrICyE5KcKpAf9B1eRQYVz9iiPfJURNgeZ+A1xXjACHfHcxHGOybBmMNqd6tzwXUuSnr7aZLcIWgX8Kh7nqL6JYFEg4xUjGLwqR5xCb8oJoQW88R6ziIRJX3RBOgw1cDcItN3SWIf8LXr/ZEheooWu0UecaT5Tt+OarwjqrvR+VKCn9LybaKKxZ/UVF0CB6q69JqoS8T8j6arNZY1b2rh79QCFJzZCBBRgRXmyOZ0cVZMUjEh1ZLGyRccqettD01YdFu08Mmtoo4dbvPVQ5mvzf8pPL78wGjmH/+KH0HIUU099OhBPMJVIwnTlJpGnck+z4RgezxjodsRlMsKqNbB/Xy0oLHreagPvqmPY/jcsorcTDDSTALmdq6waozV2NC+WpiFT/4qtF0fy5PlWRq/3KjHXPdCikpQhfAeZWdNO42wtMH+Qaj1/WI+hU3iXHQwhTDIHySs4Dj1/2TXRiSvvWiFSKNrR6LmE/n5lF0f9aRKlL6xFpbXgehEN7k87Sm8UsEHEB81vAn/2grydMlOYXMvKZBk1djbqUTsexUoAo4hrL6jD7hQDX+TX5UVamMcz76YDh6+nSw+3++gOtJ7x5OgqmzxSaGtgM5I6xiQ6mDrHzeYx6JxJp4C75j/C60IpN3S5/rOUcPQUNXVzK6SgprGfIESnUQLqnvyJ/C1GSIjeMgnRJsJ6NW3wQ5w3yDIBQIBxTAcL1a3h6HARnuuWjmTh20uv9ySipFsJpA1MXbCiUUMO7J0Oo9N+lIGB2Jn1z3oBrgqUDA6uVIFMwtLdhGRvcdGEtx/RPV8Z+cJCV2iezxt2xj2rfx4T7LVYqsI9sU88RdNwT6Kc9S","layer_level":1},{"id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密管理逻辑","description":"jd-card-logic","prompt":"创建京东卡密管理业务逻辑的详细文档。深入阐述京东卡密账户的创建、更新、删除和状态管理流程,包括账户分组、扣款规则、历史记录的管理。详细说明京东卡密兑换逻辑,涵盖兑换订单创建、状态管理、历史查询等核心功能。解释京东卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户创建、兑换处理的实现细节。记录京东卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/,internal/service/card_redeem_account.go,internal/controller/card_info_jd/,internal/controller/card_redeem_jd/","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:43:18+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rUaSoXsxiGw9O3wpAWVX5Hw9Zn+t5brSy6DKjiADvUn5zD80pLs7e6Rkb+ZAlcoR/eE9ccXFudltqMag2wVsQePcUFo+mDT2nXjsqLT5mA40/IJ49Ru5LCBQbhNci8QbxMRFvluUXdUvuenc+LVNm3AQOYOQb89aMmsZsVDljYVNe+DYDHhn1OdSnbB1AKBs++zJFjWL+nFebpJ9CY+McwdmT3zg3RknR0qEqbWPo4s6NUSNZPhPF+SlzrdZ3j4cu77xkyDstaH9mreAGyhHuXVsdFzJmURaJUlHUm8hYUdE4O7w4bBKxgWZFJbLgMVTl6UZUWPwrNr4CcSCZgiY3Y72c2iEwwNk9aqysdXjbO+p7Ec8ZYpv6rEkhDmF3uuk24EZEjwXvp5I8djNFI5LRvdtG3Ai10AO86bBZMAi7onQQatHdN+CiLQ+Ur4i0gEAexVwE0OZiX4RzpbmVoT36NSPmddO3GgUxsjod1vqalZqy3gIt1Hs8V7HawKDtH7IzhQEvYgJrG23vzUi4V2QXeHD3fF4vkPByfMCRbNyGcv6o6/hW4eb4yPWX1LwPg8iEX9imx3TxqA/8qsHTMfJrmtP70NNzXeuMnQ7MvIjlq55Nx8wejsRWuEFaen8j2bbwCN4WaQHXEaMigx+saSsuifW9y3CpctQdISZv6ap1+3urMk/me1OIuSuaI0EJQAWsx3J7j6ecoA70728mZR6G6nih5Ggl96zSMJ1jN6r1WOXuJtMff+thBaktZMtVZfeMrxkSFR8TDMkRk51Lr9sWx3h70qF3rtMHB7rlV/brkmCohMKLNZW64EldtqyXQJI4tIrzKSMtXGp60yMJXulcx6L/jmYF9VK71omKqV2EP1N714L9AxSKjz6iNubOjoHgA4Px9MPP+1YqNczN+33A+DCiqaXK3Vm5REcp8Qx9nXK6tY7rJ5/Fs8/2sdX6zOZ6AeMkD/MPatdnA0yFdNeOZSOC8xbUq1b6YKXG4bVHx9lEsR5O0o0tjqONmSgxLUVWjluuHRdwACQNFlDW9U7SoAr6veu4VYcUSmsrhzx8KQeozPeBcsnqqU2ydBXJzZHYQBc3J+YWJSYH14RGEMaFrv6/Nr6VHLMBw+f8RjY05OnCeLDNe5B65tFrMVSCYcV9rWfdRQd6wsvz8GDwm9S25YgjhWvZ8VsDMa51+d7I9sg9vzz/zDQoS9HhBLYVfkX39aSxM0fxN7tkMUyCmaihme6RTMwIQaCAd4wGYLxckiUS35HK6qEUGKKUQNloHn9b1hbVmMMrsNNoCaswodPc73C9xNhGEp+j3oduB0O4cF5cOKqcivuxvAbgm/gTTig4wjmXa5BtANQsXfwfOs9b8cxzitekmHWMcpSlMFrSW/6Ku+53nGXPrRe9SXxaowk7Q==","layer_level":2},{"id":"fa42c78e-0f93-45a1-8ee8-9cf8cfac869e","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"地域限制机制","description":"geographical-restriction","prompt":"创建kami_backend地域限制机制的详细文档。深入阐述基于地理位置的访问控制实现原理,包括省份限制规则的配置与管理。详细说明地域限制的查询接口、数据结构和生效流程。解释如何通过IP地址解析获取地理位置信息,并与限制规则进行匹配。提供地域限制配置的最佳实践和典型应用场景,如区域化服务控制、合规性要求满足等。包含地域限制与其他风控措施的协同工作机制。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/restriction.go,internal/controller/restriction/restriction_v1_query_all_province.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:43:32+08:00","raw_data":"WikiEncrypted:P3NkKI9iTG8m0x1wQHusvRv9W28aLZc7fU8yLGlEjox9OneM+QWZz8mD/lxQGkCXhSKurHn9FyuzwAEvgDByqBZ7wI7cF4nt3mVvixHgQ68puv7ji8/e+4o3WVDe4+8vsAtEyK9fl7kY2GmlYHgX0y8CvGKG6niBx5OhF5+v8XLH5YnRx9SxDy4oOvJlowOdBp03CrXgMsnH0VMGn2e4/QNq3zorUijFq6hhThfi8h8K478JvG4nI1rPm9vMqxW+hL6U7RkzvqGkz9JOueW0yldQCsHXDBvL+C5xJEze5E7wVO3Ii37LfN2vZHs8Cqc0hzx5hSWDbwjyqH50a9fr+JtvqeNiM0KaHYkBcDULqYe6L2L/o2nIPOEYnkp6iJEAcjpYE9Uil3xkjX9KLwpxAl942K6hi0dsmT04Y4g5ZEFA/sVUuCDQweNW4jNCnt6tYNFaNmX9Cl0DvquC6gdsdTY175dRS5x+0mJHayZQeLg8CY2C/Rrztu4qJL5gQjgMwN8ecUts0GQfqTBCxI0VNfEkQEy3MGNQTABdpNS9m0jiCnfRitMZoG8ap6PV0AmhyH6VQlPd8pJa7KCdN9lkv1rqGdx5G6zaF/MZPfaPJFpdJiWhukBzzxdCNzmccBJO8ylIedjYCNdh+rN30rCGcg3gf3szYxyxxodXhMcXDflzinnHCi2kZpQvpZX7u5c/7MlSVjj6tqjWsOjaZZPomhTaaLW2R6K0oCYyAyy4XxIUUTpRo2Vpeq3YROKE4BsXmz9v8sH9g6FWvAP7Bwn/AuYT0wh4JsGAgA+NBe/PdIf7zm6nADsvilJy42+JjIQTsnlFqclbGQs3yLqQApYF1FENA4b7GX+G8Gduf/8IVRXywollxZevSM+WHtGM9LtCGcUjAJdQNPBQs/ql6UwlgkK5yjLQqDWnFyHm3VI9LWUUIQmzNtqqtYBlLuxxfpQQygRbNIg+Ys+aHYHCVG7z6UDeJaNJur9jH6MVvUUbooHkZq8h90d3ogGd4tLH3ybQxWv5e2eW8CASlRvdCBfiztC6UKnv7akCXv1yBspBgGcpoKYxsW4OIn3+3ZqgS7KpQ/eB0oNS0QVFPXu8Jh11AcLQSuMJQrNqXMQRDKxVl61YCpSVl2XH872xJkI3upUWdrpkcfTy5QD16RHGL/Q55fVpHpTf4FPJIxxf5vbC4u0=","layer_level":2},{"id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户认证管理","description":"user-authentication","prompt":"创建kami_backend用户认证管理的详细文档。全面描述用户登录、登出和会话管理的实现机制。详细说明TOTP双因素认证的集成方式、安全机制和用户配置流程。解释用户身份验证令牌的生成、验证和刷新过程。阐述用户登录日志记录和安全审计的实现细节。提供用户认证最佳实践,包括密码策略、会话超时设置和安全防护措施。包含常见认证问题的排查方法和解决方案。","parent_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","order":1,"progress_status":"completed","dependent_files":"internal/logic/sys_user/sys_user.go,internal/logic/sys_user/totp.go,internal/service/sys_user.go,internal/controller/sysUser/,internal/controller/sys_user_login/,utility/mfa/mfa.go,utility/token/user_token.go","gmt_create":"2025-10-08T18:19:01+08:00","gmt_modified":"2025-10-08T18:44:56+08:00","raw_data":"WikiEncrypted:SmmNTSq96N8aZksVSKE+83PC+cNK/DfBO+OUzl7+L2l2e/CIGqmnuvQf7qkuacMmnoLkipFhcdM+cLbUip31pYXUt+XyL88CjpCGtcV6WgiA3HqAdxPgiOexv3ElMAo/PDxaz+XbGSJxoPBZtHoB6NNUkOCuJ5XBXj0Hr1xrVx8wlNClVHsfL4T+uVK3j2jS0QhXXuyonPfAcspk5vveTDxeOyjeihNnTC1MJFgsMMw3+Jti190Cck3TrSyDb3h6qh/PZb0gRGz6yWJTQ6zKuk4lc9rCqAA7hMx6cwfzrOQeYbg0Wzho8paOlKE98Xb2vm5la+D4bEKvc77rc664fi3jCE4zVr6swviQ3BnlML0N7UWXhrLdZSkj3jGWtYLsbFvpPkOPcpvDF6vrU5F85Bhn5oHjYsy1jzwn2DFnnj+vLu0FYGhT4aQO2iSMJwoYrw1PdPNiIELqGSJVUBci7KJjmxgarnzumXVxGySE/Rs9TWGfzC/tqF0JY9GzD2MoA47uKrT7ly2om4B9eb0Aw9/qA1DR4GTdLMMCVieDKH/H4FXJbUzHK5Vhw7/GR6LEbAgPENPEoDpQwYt1WxhqwfT0pMsf9raNag9Ba6R6Ye/M6cBwFT+ctK55NH70iSAiWcfv/WAVthOatk1Ej3qtlzVdQJbKvK6IGsF80wrW1B1QRbGCnnBQXgKEx/sOF/Xhd92NBToz/uyjvtJpFyiNDR6KFRVPs4z7iRX1FnfdqlkwtNJsr7y2hlIJ2feB69kesP3qPXVR3YxgO8G4jFYVRQ9ij2jjvdEJa7jytAJ36PtgxFxZDW2Tbi/U5ZIpUX/Y7hl9P6o+slKpObwP1amRzF4dabn1EbpDkwg90yU5AoC4112sIEG5+mmJG6l3g/mAfVPRDRzWI0zPScgvH4Ha3wmdXidew2+BuF6gyMXwwl+v3nsOJBkLfqWMKaT7/OaKBmz3QlY0c0QmlG7SOwc1Zz9VRyOhho+85vphYELa/gNUecRlWEO2c8JPDeLyFqsOklUKP1e0RYUjyvfypAJPLyUyQBZVr22zeU+ueeTMHLYPp3auXRYqCD4P7v3fw1UGPsEpQyBPq07IXGwUPfBp2vO6YaYc7k4yzt0417aLPUkrZJbJ/W+EW5T1EaxrNllcpSmgMYd3LwO+rEoUUokYfErQgeCtv7ycv7HbJF1IbFIa+uJvGJanYHRAE6VjAfb0qscRKWPws0eM+3OgiU4nvKX0v+yTCOR9LKbd8VAwBTnqM6EofjNR71Hsy+p4dYbW/fldN+bH9YlMrNnIDk31gXIxHLPCTNRBcl73r/i++9Q=","layer_level":2},{"id":"1ee1a6e7-8394-4ff7-88af-afda35cd1775","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"角色管理API","description":"api-auth-role","prompt":"创建角色管理API的详细文档,涵盖角色的增删改查操作。详细说明创建角色、更新角色、删除角色和获取角色列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括角色权限分配、角色继承配置和角色状态管理。解释角色在RBAC权限控制模型中的核心作用,以及如何通过角色实现细粒度的访问控制。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","order":1,"progress_status":"completed","dependent_files":"api/authority/v1/role.go,internal/controller/authority/authority_v1_role_create.go,internal/controller/authority/authority_v1_role_update.go,internal/controller/authority/authority_v1_role_delete.go,internal/controller/authority/authority_v1_role_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:44:25+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L6+rRbE7IygCTc7CtI4cT8O+zD59F1CL4IfdomTUY+ERjrw/C1sgRZPKjMd/qJd0JK1XynjC5j+ttuY7rxQ3NcMYL4gDLmIj60E0t7iT9EEmLacTiGIEqbqD75xu2P0W8HqTa+6+qc0rXfaxxNXqRIidThrwEfqDd+8GuJWX3FDwbUQ4E6veSUnxgr2Z4FGGHUaKakZAA8tw1Jhr+KHZKSE6MRz9Ent00d2XRIl+nNuUHSwyIayOE+31pjmtBYrUGvgZRJQ89Qd91L/06KO/Vy5OLU4e+YNvpxr7IohsR038eD8jjw1ThQWu6RaUCbDDuFe31sXtXisnhtQIomlucN6fjfrCF+Mw/k65a3JkM/cN94wotQh4vyUz0nKhjF5z0YVta+xU2veibFLulf1veHajhsfJEu3boSmNsh65tx2mblFbm7aw91yNO6saoexuqpDG/7tNWtDTtC5z4oGGlvkBJ67JDoptTwX+i35PtNzPa1mDBl6ab70c0CfShx3q/vk96XMdYjcP5W7HGJ3P3O6YXDEggum7/XyhGg+xT7SSemnnmsoJxLhzVAZCYOkdstHPdP0Ad6Lv799KPUznczFzSEfmcGikpjBEQGXd28vffmGl8euio5vBybeVmfvYB06JMt+CgXslLBnKUJstgJlJYuNHLyRdvmzmtmhhCtmfsNl+DNJvsGvDt11mFWSc8+kKE4wWZW84sB4J8N6EUg4jSm1AN32SRiQLsW0hLRogJ++RBcT91MH3Be4iTYPn7aJC61taQjeJVzSUCJHezetuWA4juKiMlMcvtdAaucOnpfUn1t6CWhb8uQVPXLkWFGmQ1l1RZwHUrXKka5FW7ZbJeOTllkZZDqsiOoPkQssL7UlrdCzI0EhPD4NDeHvSeYeH1jQ0qHQXufPTq9Mzz5PSfNMLm91nr5raDKA8nufucxAilGRbrc2PDR4zAeIRj+Yp320b8o3mLzkgQU8j1locC21AUeGd240sfyo0QGF3trS3wYEAY3/CmWtFAqU6vQR+15tvVSKbbqc5sb85nTKtHIjMszWB5pIlPCqPWJ+CdOKPbWhAIYxKk5r03JCuskliHuZjtwe7pItkgOOUJciW/oqY7dHknLDZfkJhC7lD1OW2KZ6RVwr0vBNrGExBTVocTT63hR6goEi1xYxhrbhDzzZzWZDTgLOY4RGPmo36vL4QGdRldZQJi2Hr1BdbLepk3eE1FbzM6AYlxss5sIaDPslwaLPuNFVNy/SJkKmEh95cIvJrveeAlEBNcTWtWD9jbxK6tWzeZBd6UgSuRoAlaKwMXCsvtXK3kSzc/zdKoHZYdc1nO13T/yWyV6Z25x7lqc9+3a1n5+kNrSn0pJI91rOTde7eIvfegV872hXtu","layer_level":2},{"id":"91befb50-6592-4b74-82da-7510ab876eff","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单日志管理","description":"api-order-log","prompt":"创建订单日志管理API的详细文档,涵盖订单日志的查询和删除功能。详细说明GET /api/v1/order/log/list和DELETE /api/v1/order/log/delete端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单日志的数据结构、查询过滤条件、分页机制和删除策略。提供实际使用示例,展示如何通过API获取特定订单的日志记录,以及如何清理过期或无效的日志数据。解释订单日志在系统审计、问题排查和业务分析中的作用,以及与其他订单组件的集成方式。提供性能优化建议,如合理设置查询时间范围和分页大小,避免对数据库造成过大压力。同时说明日志保留策略和安全访问控制机制。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","order":1,"progress_status":"completed","dependent_files":"api/order/v1/log.go,internal/controller/order/order_v1_order_log_list.go,internal/controller/order/order_v1_order_log_delete.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:45:08+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDMz1KoRQEV75M4mACux9a19OV4ctaPk31IV5hcbtR/46QuarpgfjVEZ8jQDp8PT83SSZ5sjIba6R38nAWF81guWsZFOr8miHF8AOBbRBKlXQMX9qA9/8xyHTHhcnCOVaxCxPYMfBxEefEJifj/adPFe/8wtcWawGJPTZpd7DNy9QpIaS5iU/ARujr8LnXiTEKGnjlunB578POzKxX4UXdmbcVTNSytHSri9S9J6BggfcrJGkVPKDDcot5vaHhUcEVKq0pEmS4yex98PunfcUWXuwsdZIrKalMB5OrO8GRvSrlWdZxCJj/k++ohzpqHN192cAG1pU/wyNroxArGW5X0gwOQcaElNeGnogN2TFFJGvqyqWBwO19YUgDpesqT6gDuJ2pkgvqS8RZUblyJHq//vtWwPAcIm2Q+qLtyLn+M5/z92+wkU6qRgQ4H6/MR6/g+HKKHZUJKPqQEakWetb/LtskzLRkc4dae4st9/vZaLVBveBisOMNeAuIHLFbYQ6G/Jc3pzpCF3yr/Mn4q5lkmvBfZBPKPml75e3dh6NHfTHwrkoGAtQjvOyOr7RGjYWKFIsEz/ydqbgqDLy3CTZKlINfdDmK7gSLJnutOGLiTitJkIm6m67+97hgwaAXgS1odKB9OjQrBlW9LiZmw5fPcoQ+X9vPR+6qIe1Z5b6qofLe8VEizZR00qjZvjE+nT8osWYNzgb45vnED0BpC5WU5ESzSu0HgxuY710ywYZX3dRsrFkqlqGE0DzjhtFUOi81RUh0QfjmhjL5RRxKpJgRZXsiz4uW2DFhaADL3xSvrwM9I+nKE5ZBauh0UZGpEVcaUHVwnC2QzngOgpZxgv6I3Er2QYJ/N6h6c588dN80jkaCKN7GvS7AV6KGOL6YVQkH7R64CExcOYPStomFg0iVEguaJRqdlzupGlaZMx4JsIVGHWPZLSV1n67sEpUPpQeFllrZ7xBHS9dOud5Vg+odh3kErONG+sVTRKqpnn00/QiCP3yqa/7mckxadgTpgRwbKQgTG6T1csQcJ/smy055YozHVVOgCC9OOF4HHhXmYkBTqkjcXHpOFolJYc4FZaiZ4NVOItx1/wIEpSRQCreHriDMIVS4GgDLr+dQ4sHsXDzD6vT2SfE6xV+fvIygSbbl4Cw78zQTiMbMn6E/DtK+pd5fFvXf2JZBwoGxwWk0G2y5XO1DiSsOEb6SdJ6V6zQBh9xha5QfaqVBLpZcVeYeCupe5REbYW2O/DLiIzSaClUEnwjK6hc04LtFKm7g7WWoxibweIrzo6w9+VGUN6G4aRNZYrzv6Q8gb/IFwPz6xIj9mvW7LKQxi52eWK6u6oKbMjIT7Nn9rdvvVLVE7zOwVmJIgen6MBiY4tMXm7aBgHg4n/BGWlcru47by8GF5bs8U3+SN1wApsyDWRGW+SiIx0ErkWSaWIbSbkEF5CdMZBVn8PM6nnjsfglN9Y1ObDoHU8MUzJ6zi83cnmLi4qyQk0=","layer_level":2},{"id":"288b9b5a-64ba-4e93-885d-499412ad90fc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密管理API","description":"api-card-info-jd","prompt":"创建京东卡密管理API的详细文档,涵盖账户管理、充值处理、订单回调等接口。详细说明账户创建、Cookie管理、充值提交、订单历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量添加京东账户Cookie、充值订单提交、订单状态同步等场景。解释京东卡密特有的账户Cookie验证机制和风控策略,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注京东平台的反爬虫机制和请求频率限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":1,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/account.go,api/card_info_jd/v1/order.go,api/card_info_jd/v1/order_summary.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_submit.go,internal/controller/card_info_jd/card_info_jd_v1_order_callback.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:46:02+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBkzZCXcBOHF+FU6wKtFwu90n8FV1byN/6qXgm2Qb9b2hMmA3oufYwccgA02hX880Lv8YtqGVaSdnY3kqkQ7D0lncxopWCP3yTvZllrVraULiC4X6Vv8n39VgoeEkDashdygPT6mPEo5kbP1lV6d2ucc1hVv67KUZugwcSrLRK3B+PQZ9VYvsJpwDZewlCbQsFhobt+eW2yuWVd9RIvYzVbBXpTSEjNXMu9gG317OVvQXaCp/EaNkim3txSiiIMVcr0VYiLlzUjMUknrCRbZ88LPCSkCYdN6vwgd3KU24W2zVIqRm1UTgj7l/GazbLHOElYIL5QLNFJNT2qq5ALN+bUE6Uw/ZCDwDrMjGTpP0xh1/oOtQazPknXxqng7eafCWnLouo5JTYZ7avPjEfhgi2mV08rJ5YK1TA2ecTkN7jIHJzWIyqgGzFQn9dHh2Y4KdBA8s2dr+2yPtYLOYj9XJ3BDwXZNT0J3C5TxL3t9gpTeUbsvyEjDP66j2zMZF3ctVz9a/GTgzXkUST0XMuf9Qj60lGAkNIAbJ16+z26hjV30EBAMnp9iKOlOYpGo2lFApxDLfIXOvdLqn+TL0u8epsrExG+wEAKpmyy3NggvYd3yOEzgYVrgTzOt1TliP2s/rG3mev56dhYLbkGcKybuAbATwu/htr0Wazr2gtRyG3qCC4L/yGEZ4OfdjSvvhYSQBD2m7fDhr1u7X6F+Io5BL7mzGmeGAvzCJL8UViQsa2WSRw7F56Kc0e1BZUt5hTruQ/Hr2pnrC/EpdP8IaXYmNETmxupt+44gv+9uuEjWj4Z3zC7WojZzHuVRTDwhzwiXoP7usTBkpZRwM4WtMXqI7xNaKv+AAFqU51fdVhaDayzzd+EjSAqEInjs7ukZ3qjGIU9JLDhA3Nv32zLOwJ6hPeKt1zZVroaKbf22NEDrG/NCgj8ftLm7F3UtvWBKCRNWycvwuI7ZvZq1KfiMOlcPSBlrHN93XJhL0Z/dulb2rdFPIBkOOuAxEcOKG3SOT5LPOArj23wKaeyHtuRXlW5grO8PLN8BR0qmIhing4Tl/YCQezgOz1+8WPzV9z8xKj5DdxYMJ/cSETmgVlrAuIFZkUPHWIAm0ody17ZyQewLxidzeRYufOa1jceRU3DrqMAl6xseIt/b6jHCbWbnUCE+kE15BfJywZa/yA/O68dVryDjd+LUeRl61IvA1TpataICWFyQUspx5gb1xIUfmIg5dUYONhtRCfIMWSDNREDCnDYbmZlGSa9CLT6l7Nf9N2LBRODpTvQYxRppD+P1cfgFQKilRQeN2OXASBs13pYImwDrUF7EVP0TaMqO/qXSJ/+Fflv44kjXjtIMI4Q61JH1tI6a5apoZsoR9dV6oO+QHulXm2rWGzupXfAHDkur6Sxap6VECVqOGv0qGDMqzBKpek8aX5CfQTleRHuByIeSf4HgYucRpzMQyIejcQ70yUT6kNCl5YQM3h4l/ePO6VfOzj7wkiREzWtfOJv99rfjLWA68t9qfkHgfNZlBrPNLwlhZSgoZQbcY3SSofJKOEJjMMDWAmz6K5bV0NxYGXCluIAXfJgeyd2RfUvzGKiIJ3W8+R6EZp7zU/HzgtioQlbbH7GaZiYeCToNIhY9F/zZt9X+KA5i8+WJ1P7VFX5/zUp/oKA==","layer_level":2},{"id":"3738ad5b-aca0-4c87-9e86-9551d689f889","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户部署管理","description":"api-merchant-deploy","prompt":"创建商户部署管理API的详细文档。详细说明商户部署信息的管理接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖商户部署的创建(merchant_v1_merchant_deploy_add)、查询列表(merchant_v1_merchant_deploy_list)、更新(merchant_v1_merchant_deploy_update)、删除(merchant_v1_merchant_deploy_delete)和详情获取(merchant_v1_merchant_deploy_get_detail)等端点。提供实际使用示例,展示如何通过API进行商户部署操作。解释部署数据的结构和字段含义,包括部署环境、服务器配置、API密钥等关键信息。说明部署信息与商户配置的关系和继承机制。包含权限验证和安全考虑,确保部署信息的安全性。提供错误处理策略,如部署冲突、参数验证失败等情况的响应码和错误信息。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","order":1,"progress_status":"completed","dependent_files":"api/merchant/v1/deploy.go,internal/controller/merchant/merchant_v1_merchant_deploy_add.go,internal/controller/merchant/merchant_v1_merchant_deploy_list.go,internal/controller/merchant/merchant_v1_merchant_deploy_update.go,internal/controller/merchant/merchant_v1_merchant_deploy_delete.go,internal/controller/merchant/merchant_v1_merchant_deploy_get_detail.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:45:48+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPyS1oEBfi2AVR56kbRNYu7vwIO+DHFV69S00Cn9VWMkMaxe1C9oIY3Fq7/E2iPGjEOWLuHnpH/Y3i5x5MeS7pdEua/Xmsn3jSgq97JVn4WmFs+i0qFORtaoDVDhsfdANByM3haKpjsykMQbzBjz/AGlh6GFpbuJFVgb8PakAlvFVMMrnfLDVe781PBTGKjZX5cNj9NyCDvYFqpvf8dGl4Eyrme4koWNiLXCaFHzJmzQuJaMryaqUP1GZCqe2hNocsirvz7vpOLLy+C9/tvNacelJ/PPvVaySV5PvfufSSnWflVxy5lYoOguix9DOaCQlCspj6knTDHJTUKkzXNRgu7kE1uNo6hA9C6bZupPxWXqh/WtXoHtoxH4lr1oCT6O1y11QsWsnJ/7fzFR22ixnyeOY94dUztPBFYF23vFw9NWRAwnFGJuWWnffxzjtNaTxcWu4fMwxrdMtddeVJ8I9rYgQbtNCk1A+gl3qSS23N6M/oLZiOJSBLXHEHJ9KOpPi+THSSBjm3vNiDNAe9nQlzY6w3qgi45586Wm+s+OjJ3pKiIFWCPVdYlBDfEp5x+E/rli6xtXrg4H05DlZMMfEaet6Ylh4xcKYzFHXSSAzgP9P02lfxauvCKRSBlKk4ghhEWe4SgnFDc6/Dp2zVdc9zaBhRrMGPgp+kWS6D58e1Ho7BRAgNQ0eI0FuequP7NvUPxXrgef/k+yf6YYV+MtQEEKlG7kSkoNEIUp5jadkG/OEgfpTLT2vPPK3mZcWPYKJAM/tZhzpBWgKL3JUIh6eLEEEwDVb2X3Lu9IJD6gB8HA+C7gsVW16AJTsjjtLAGVCdQsj+lud1Ppg6g9GJNJeEJx4Djdj9cZCnOwNRprRhXy2CkduLwhjTK2oVU93+XcLTH3CLz5Cx5g7umi3cPadEB26x5+F3G4GLhdSHHOb1dxTlI2kNwc2oN4RhCfwXGOKRmSfVZA4YOihgvwUUGUisWTnap3HiweNrJabbS7EzoQqEjyO5q0EY8sXN7oG7lYZRDCffvkLPe1jWWQwRo5vDjsyCZs/Gb1gywv6M17Xlul4LewLk75OyGzh0M70SjvLzJ9Bx8Bv+utnKT3til4k1br3jXch2Gl8wdB4E38Yv4LKW4EEwZg+auRxbDKbek+aYei9UeiNxUguTyXaPvxlI+7MymT0VYf+P4vYS+45qewtlJdmrtZD3AOXpP4+2V08cdJcxFmOKlziCHqhAb7T4aFEDQu660P/1JR/xCSJYtVcF0fvaH/6zEkzwyPXOblsyboTRnmJ44qqpi71Ue+pLszEoBqH9B9Dz6fiGUmw9fAdArnsa1QMK5I5MAWXHf5TuDl8voTH5BBMNyAu3eCFAENlyxqclkhsa4lEY+daBdYn7d69JRiTN0s2pWKfMdsPHLdFOExvi3DX1n5rTvVOPkFR96ULg+Lz1rMcllNEp96RSOFYsApdCMxSWLI6/weKsE0F7HptwTC/A7Ed9uHtl89JAtxmnNoZ8v7RHeYm3Rgl9CpJa2kIcJ0dHDr54cFdZ8lj8Y0xml3QqRWSiZKESxpGH6/DyTiF89SVYFBhsoE+FOZ5jYAkSiFN+pSTT6uGXK1S24qnF404TeJi0oC7QLG2ignQ3a5/X82JqNoMGgU54GCvm4t/sA/0V+fIE7M48InVffczgysFmxej41P4GJtHiVCv8o7to1G2czXP/xj9B/lvRjKdUE1RF66lcEEl5vjwYnqSqHOm0DxpIoTQO0grYuW+/ZpJ8ZslSJByyvB0HGEhgnknkqZBCCCOjWtt9DaJZy29EaruPeoedC2oeZ7ZfD4mKAqt5zjpU3ylWJtYNR7zOpAp3sADXBD4anBD96Hhfij33UuDUH7Kvsnwy1HMhpsflXZIrIB6auN13Ly+jtDu+vizRqlv7BxQVojuYeA==","layer_level":2},{"id":"3cd0ff7f-89a0-4ba5-89c6-d092ac39981d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"资金流水","description":"api-fund-wallet-log","prompt":"创建资金流水API的详细文档,涵盖资金流水记录的创建、查询、更新和删除等操作。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括流水记录的类型、金额、时间戳和关联交易等字段,提供实际使用示例、错误处理策略和安全考虑。解释资金流水的实现细节,包括流水号生成规则、对账机制和数据一致性保障。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","order":1,"progress_status":"completed","dependent_files":"api/fund/v1/wallet_log.go,internal/controller/fund/fund_v1_menu_log_create.go,internal/controller/fund/fund_v1_menu_log_update.go,internal/controller/fund/fund_v1_menu_log_list.go,internal/controller/fund/fund_v1_menu_log_delete.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:46:06+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdVeNIsI7Rn4dw5X6ZL0mhD1BBBIaJJZW2YjOW+ugimYSG9xA3ZUS6OH8+spiwyeUa2dff3Wg3ZoM3OcF6w1SfIUfWmDL1hLvqFGU/n3l0n5WI5Vsx37b9ZMGqW8T5L9fgTo78EUg4QNL4PRhdW9rf+S2C647GMaU++K2tAlKnr/6Uj8FHsdx17K4KU9iZcNTz44B5lqAjKpw7804zOfD3xTGwiANwhF6eXUn8DHvxHXqTiIdqQiZMNtFg+QWjwQXDukWbfTj3YdRw8vUeR5450/GxUZ82p/6u7YWmBZhukwnZ1quMwModlIJ/tZwDc0eWXVm2y7Y8RVn4g3f1MCJLpLKeqhO64H9s6zBz+t/TDaiD4OwJBnW3MTJoaxbkrllk3myZFBshVPORjS8llqHemg2nyaw4Fs1B03mpXDA+s9ZHfGqOSbgWCCVQ6c1xoBTxx+hBUIpLWOannuTOjWs9AZI8eeEMMDH+39eDKYBx6DlFXmXE2Pw6i+VtroNV0EeEmjWQzH2n9LYui/MFZHAyVmGkzpNGwK6N3hjcoRrxZ0CfyyEPsXWMouwJnXgWwo9ZKQRR8aOabqnkrqm5uF/hWiQL+OVK792xeEZQJf3nwr2C9leCdvZteDTfVdNgWw3Ni5+5tQbURM66mYvX67DWI1CI1vcoJkGfd1cE/9li3sd/+Z5Bt0zfotW5Lg7X6U6ADHq8Hw30xt70n9+AQw68Un2azk4p6Xre1GeFNpawuqltGB3v9Cmh0Yx3oBXD2epYLpBIGf1hZ+m2H/mA8ygEtI/HrRLV+thguWDEsnMsdbtn9OH+lQK3fDH3Vq0aPSwMNdzzZGe/dArFtwDUGUXy2lhRW2H/kKo2XqQtKhzFaY9/XWJ0FqLCmVGqLld6vwXqPqyeaCJ1FtoMbmSKZh8uAw6dbiMayiI12Cv3A5QDeM1gpOFHtm7OxfDoGHqt99yz0TLs8lAh/ci5nkyAr3ZIwE5tFw8tM9usoBFqYcMSW++ta2agBL+dAPLww+z78U9sUVZ8RES+DpgCfm+jImJrxnVYeZJYYD8HNDxEwkpfdPjkKX6uGq47cbaCVZAZnMHx80FIkFVRhojXSWAureFgdRzvaPYvLk3CCMTeKsqITOZoSvwYyTUMr1h/EEo9TrPkgsSgyZwRPGG6142LhfusshjuKyjHNt65vK0eiZL225idaiePPwRd3TxoOzM1B226MG/KvMMGS5I7JKYSG1h/5lwvScTo/FJNCNgo1p3dprug2xLb0NQP2rd06Z+ZNo34iwpVIY0CbQ1mnprmUmlr5zEQVwLzcyMBrcd/Uv6c1VCIq5uKMbypvwrgVS/4BzBMvej7bQW0RELbmm9g/mckKI=","layer_level":2},{"id":"2c2db8d8-8ed8-4ef7-85e5-9d42615aba0a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"地域限制API","description":"api-restriction-region","prompt":"开发地域限制API的详细文档,重点介绍省份查询和地域控制功能。详细说明restriction_v1_query_all_province端点的实现细节,包括HTTP方法、请求响应模式和数据格式。解释如何通过省份信息实施地域限制策略,提供获取所有支持省份列表的使用示例。文档应包含地域数据模型、查询性能优化(如缓存机制)、与IP地理位置服务的集成方式。说明该功能在订单拦截和访问控制中的应用场景,提供实际代码片段和错误处理指南。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","order":1,"progress_status":"completed","dependent_files":"api/restriction/v1/province.go,internal/controller/restriction/restriction_v1_query_all_province.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:46:54+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg6REtxJOhfHapmWv4MsZLlMnVHv8m19RbsDccvca7VOfBHC1jyhvaYbgCJtCr8OFnOXgJd1hgEp8tXWWmNRgzcoiWSPnrtMLbKSNeE/EO5Hsi07kCCTP+q+z0DCEdHjRUoEfVRDUia29axnKySIKf2jdx5h0sg7eXKNqleoXzcRdslyd/E/l2ATKUKwlpRc3Mwi90+KzXlHyVhbun/g5+WDzzDn6j5xICgb772TnbCLFVhJMVG2NK3Nv2T3ld3ONvk+2Ki1GULEIOE3KleevYffTucrxKqfligT01pptyaUOwccqtGqgaKJie1hSM3JrpMnEr3ufNGb1Vir8ePLosnWkuMuMR0xaqbsT/bzFDYdOYfJz3a9gj1sA2NxYBZ32S0oZd7bf+F2DQHMNDuA5PfzcU4NxOra2bK+8uwUe8tFgti0TD4d5IWd4TrYIPH4wqekOJ/ESKj/5Finl8ay2xrjc4gUULV0VUS8o7PSdiGExRCtKTd37sEuYVHxnnrTi4dQefnTa+FmgvBhIJol+i9Eb/iDVchVtSSnNRWzW2KTj2srCgsLRIrvIUAcfJpcoskQgnMYu+IhYpAsbuOqIDdKOxbknqImvsmKUmnYtPpV8l8LJJnIOOxp9/Oa4lMfcOEqGHs+nF1KvuSqVrQ+zJ7+mXSJP9jy99PvTiCoGiWW9QYDBE1mMtKVyoY8IMm0TSHj5lk4XukB1iM5zLUz9K7XWTaWUB3OMrLTT1CT04K4fCvQg4Y/iLv2a5SN2kRlU6rA/2rj4hHujJmkPlAYCEoxfnsRXJAf7nUsPF7a9XQHUOi7NFmYPsdFOelJ+hHjcijXHZf2qT3qY44S/GCGk1pajnWu1k9LhqNO72a8587Qa80ZJzHUjg9HgB9x4tFQB+vJSxQIfNijHYhck7Xb4FuXKyJ1b3kr1N/S2l48Ui35vosb/1OTj6mZKVU2bhIITGIqx9jaEc4TdC0wxzDvx/AM0OLwUtlm6KP45PX+foZ8/9a3tNHVZxOkd5pkXnH/FiGwswP5hgRtHn8BaH1dRA/u/89v9nnK3OF3AasvZbVWVjqoumStKJ4DTye55BGI08akuwQfxtbMSMawQDWLBhxI6UaOa4OdZEUiyTB9X9ieCD/+dcSIkCI3TRMs50o/vBqut5haFnGkCKvHN2pL9Jas=","layer_level":2},{"id":"58118687-a7d8-4b0d-b788-36481cba182d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Docker Compose编排","description":"docker_compose","prompt":"创建kami_backend的Docker Compose编排文档。深入分析docker-compose.yml文件中的服务定义,包括kami_backend主服务、MySQL数据库、Redis缓存等组件的配置。详细说明服务间的依赖关系、网络配置、卷挂载、环境变量注入等。对比docker-compose.yml和docker-compose-local.yaml的差异及其适用场景。解释install.sh和install-test.sh脚本如何自动化部署流程。提供多环境部署策略,包括开发、测试和生产环境的配置管理。","parent_id":"3c6ca985-3423-453c-9f11-d9030f798abe","order":1,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml,manifest/docker/install.sh,manifest/docker/install-test.sh","gmt_create":"2025-10-08T18:19:36+08:00","gmt_modified":"2025-10-08T18:46:51+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kJ8Pt9hFXqPwDEYqTB7J4Z1DpkLMhPMThA20z3p55TN/dbOQvkYqmvPeeZcdT9k8AGiciG93m8eaAYTkXuIB/l4DAim0NYlZ6X87KxK+sMjwpnxmr6pP7RLOBo6UxRplPh70Fbp+ZCyPNE79wMWIsvkF1xqcQIlTyyFRlpmj3TkENxirLFnxTb7D0dGKaC+L4w/Qv2xsaUjLvDxtuk8oqZ71V4Qwcrv2vF2g+FcC4W1y03/EsII4j8QwbYtAmcJgT2klbExZya7oBnsaCapLj7rXm/66r/or1p/c3CBpnRExtlMeW9HJ1N6rJuH9KXgMMUPadAST4plZVIbYOxu2ntmvBhxzre/Cn6cwL8J7x2GZmTOKdvWnemjYF0cHDSy9S/UVwjisOK0dC8TsMQBsg1Vtd4huntjKgTfo8Rv+pyZU5xELyZirMaIL8nw/QLCJyjR2j1DHcq5RpSOpG/2SrKNVU4RFxwv1KbUpPSWZihT5z0JZ+h+R85XbIQ6c8cPrIUNiF9rPJ+LbMgD+GEZf44CSdKVymvGJyLv2aFAnapp6ZnuUPIUw9wmFW0sE//ZPhfGimLyQPXiLLLOx4si9S202RsCHAlNGZXnIkFWQYwlm6Myenb17d4x5DQNtAvL1w3YQA17Z51sicIC8UdcvGSzJL9x4Wm9crIB1WFa9yTbcliqBVqUibPD6sPRZvWYkKlSOM/WeGeZLCOgRBK0ziTl0YSjPlcgHTvyxJQYl3lltxnZ7EpjHVOOYQho6g3Own6kONLcRabI4vN4a1lnuMRb/0jGXo+sbRIR89a480+XJolbxc5+Lt8YJcqkViLNTL2HfcKyaK0u2McIyj9T7cRlNpLFJzIoPLrn/gmzG857hSVZndqZ2S0pOvCsnGjC8KoAz3JYfKGpsSwwjgpcVVda/5cB6X09jBp5PpHGtkWv0M73vV4dhGu/AVMIFcm0oy5iBQ1IoYpYILbmr3eZ3nsK6y/gaOEoYfmQ9guCiGEv1k5mwCsDL2N4GMd4NrphuAZFqa+u2iMGiNkSIGUHaTP7hfEWmFPz3Uypup4T8PtEB2Z1DM4PZMvWRSjab4e97uHlJND2QvS9B7Z5aB7HePoY3Sbz3pqd0MzMYYmBSsP5bdKIr9pzDIm+bo7eHcApmAq2dqSRHg4wr872D6+dpqYmQh2bdUNxT2jnhNJJWdENk","layer_level":2},{"id":"7fce1289-c2cc-4640-9fe2-2049d025cbb3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Shell脚本自动化","description":"shell_scripts","prompt":"创建kami_backend的Shell脚本自动化文档。深入分析install-one.sh和install-simple.sh等自动化安装脚本的工作流程、参数配置和执行逻辑,说明它们在不同部署场景下的使用方法。详细解释wait-for-it.sh脚本在服务依赖等待中的作用机制和实现原理。提供这些脚本的调用示例和常见问题解决方案。包含基于这些Shell脚本的CI/CD集成方案和自定义自动化脚本的开发指南。","parent_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","order":1,"progress_status":"completed","dependent_files":"manifest/docker/install-one.sh,manifest/docker/install-simple.sh,manifest/docker/wait-for-it.sh","gmt_create":"2025-10-08T18:19:37+08:00","gmt_modified":"2025-10-08T18:47:04+08:00","raw_data":"WikiEncrypted:mglmhPyPH3dtFcYRgfroE6r5iIRURsCQLCsCRil02AKAdkWTWXqM5uSIN+acuboTL9lryyEx+kLcd9u/TwuNVTMqaBnEh6CfwrIc77h929CPwdDlT2sE/wWdeWpMkgXVKaGFpTqZtXX//6qhmPDLsHmlnX9gniSevlGs1btfNRHUTRd+FXSh6upD4A4csE8U/XkCo3Vs/o6jjV9gl8fR5IzGI3jONT+pZtXQhSnyg1Oab5dEMJjss9NoZibHZACN4VrCM0o8EioaFPpzibdymj9B9Z4jlW47U0vFFP4b7Vd55YM1jGCF+DjKkIgFPn7i2Wu6L8zPQZjttr7x1ncnG88x1Y5QCVTaxwGUuk8stW7GZiXJVYo+3WALOzz3WwkLISr1DpR+fT7u+Ye9hR+6FquP/p6wgT2qAflGBJ3Ut+PZHUEbE4ejlChLvL20NViWPFY7lixxQjEPrGuJn6VU+TTuPh+4qcPotgMftVXQZCJ25EEOWx8E/5d3cb0RuzmdUSEfr12aqkhv9KwzReY0oDrby6MzpC6MyNkvbtMLY1DJv7M1iFOSJ/IRNleuU1KKBjccItC0xjEDBJXdTlrE4osyiamLCi9WBsTh6T/WYuVYMuE/heHPbq9PAlBPRHl+pjbFVlwO3iBtlQw1ovk6Ef1fSWk5O1L2BYaVN+0wEpslestMrEgxlb0JOZUrvBn+zKzLTJnjx7XCG2frKaDh3VlUYRXX1bQcZu1S+COiIMh0pDFRxlWgWmlz1d40lr3dWgvByBwPY8gWT0rsFXDnoUYzV0F57eXG+G1KrUoZLmST5KDcfjMaK+jQMYlC3oZr6uKfPFT2B8h8IL/ejXjQ2Cvrr0ffSZ4UN4DejfMIcDU8aug7wV9pWi6xgTu25yq8ZXxSNVvsVT+Qn8deffoWvHEcd3XYRAsDP3ck1Qs24QbqvEjBs/kPn3+3kaHIdN5RFq6IosXbzGgFJEdyo2U3tPBYl4il9k5Atd8cfmJlcuVzx37L8EsGAb+8bkHQI2Ck6/3JlyBdaJ6ow7Z4+jS0fgN1dUioC0dfA5Emceck1YIEimTsDBiBjnOFi/1hUmuzn+zRW5ch87jRmVhrp5+TAVS5eN5cLsH77X3Ka9w0IIg=","layer_level":2},{"id":"4ed6b7ca-ace0-4389-81b1-f1e35781d27c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫平台集成","description":"tmall-integration","prompt":"创建天猫平台集成的详细文档。重点说明kami_backend如何通过tmall包集成天猫API,包括天猫游戏卡密充值、账户授权、订单处理等功能的实现机制。详细解释天猫客户端的OAuth认证流程、TOP API调用模式、消息队列处理和错误恢复机制。提供具体的代码示例,展示如何调用天猫的账户授权、订单创建、状态同步等核心功能。文档应包含天猫API的配置参数说明(如AppKey、AppSecret)、请求/响应数据结构、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何采用TOP SDK、消息确认机制和数据同步策略。提供常见集成问题的故障排除指南,如OAuth令牌过期、消息重复消费、订单状态不一致等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":1,"progress_status":"completed","dependent_files":"utility/integration/tmall/api/api.go,utility/integration/tmall/api/oauth.go,utility/integration/tmall/api/trade.go,utility/integration/tmall/models/models.go,utility/integration/tmall/topsdk/,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:47:59+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRUKDbNdP/de0lI/DTackQjt1dXPuSXceIWbMl+vvXLEu1sxXD8WKbhjK3n2/UhdphhaFjQmpEob6TVfcLAEh+k9/ktbVlygCt2t+GwBc3MuUV855x485AalJt0qEkSZAh/ijrFM6JjhTyO0u4jE+gxHIW7BJBRu191WyfTaM9rLj5jdJ7/ATwDjEj6YrggjBlpGVa5HdOID6Z1Ow5f2HWriYkRwBzOiz57SPk+bEWzk+1jtGGbDJrDlsCw5t6dwgu5iC8Gz9fwV6nIkfT3SV2xKmn13dOZmhkh8Psq0dNVRhzi/vb8v8kGuSt/TqcDAZBZIlD4TLJXaHZlqhBSiXZjGYYJogonk1XJtIauXfyDvnZnIcxzFyB153pduPjANIcZwLhf6W3mLm3WZS0gAAZJHcb7mup8Fv6zDUsbTSeQ4pCUCZHBGavulqwK2QgCjJ+UYZDCc4p11qGL0mEqSNYweHwY1gGnEFok0Qywzmq1lSev4814qgIHEdXbjAVq+JlhrprmItEfKQfD0aGhTQv7cfy2f1ku5zPMxcEiqiLS6OR7xgf/wovpJUdLovk4/7GrhnmBOEeJGY0dtPbzoVpDfYoOf0RB6duGZnvknwhR0U96f/uwJJKuqiEGK5hKQd3Qd6fndnXpthkMVClEMw1kd9qvEXCBi3WPETboeXxwXtyPIBySwEi2nWLytULmaHZjY4RKScOjiJH2f/yQDql5d3MmvsLLPZzPvbmjZndmImsFm0PYq+d+3K/sD7Qgl8DHRFd/3Owo7lNJiafzF2oDS8ElVpFYdoLt1Zr1kyaWfkhPuRdO8P/sjJYqdzyenB7V3HTsPrDrpQjIgKbJGCLuXY+7ppltFI5d2BOuQWOVE12zqBmQ7fAIDohuUaE/RemA3/AXDLrUgIK6jv+3ELcuWdFXIcGsA/7EB2qstDoXlUmfQ9/Vohf+ICPfSI/BJN7MNWamVbZwU0E6xd/Ps4TbJlzhokLaNQM4AcLDTF2DJKHscozedlDZvq39T9mOuUl1IQeYrzUpeU/iPW8QrLS/TRmZlyGyD75c4Iz6RB+xp6FY7X2dkToZ9AJWN6uxeOE/aI8dVJYduVmGVqWEQoUUKFMutIP7XgbRYUwBVzVlGrA2qVeh7N+rENqCzTGfjWCSi8MbxKgu4hK3EkiUvvfD06vBI/pZD4a7UeqBsOeXCnAAWpRMJbpGTtlh3WaKk9jp9BEALl4YwtAj3zajfthxfInITjYSfE4p0ZiOsCUAAAagfxaXxcm3wO1jMojEgsLiuZd45YY2dmgLKUSG6cWZvhW/V1Cii/QAokiEduwUHAUbMsla4gK6ntp1viTaha4xkOqXEEP4B+pe2bf0+/GtXc1VHTLHlzzzZVHYIzr+kmk0MawuPIOzVl/pA5HTmzGU3pdyR0/2Ir5sVu1943OaEWhoe8TB9yU+6lSqzUZK+dze1nglXy5q32yYQwNHC6fvgpf7fFnqKsKJeYFPW+B2NFEtOb8Rejh6j+frPjuf9EEumVtZfe0A3TuSDPqRml2PdhEezeDG/CAaUi9X+5va5FHf8AJ6QdJEy2shfCgFd3q+GvdBXHQNxnGzYtjgXYihGtQpDtkVVjBhA+JOsbmlUqCXcYYjFB/ZRC32YxQznIDa2B+ToI+QNUWt7ojUx2xVUsbyJF64FY3noOwm6c615SQUmCpLXI7IPjea8mJ5+/","layer_level":2},{"id":"745be06d-31ed-45f2-9822-e6cf41730cae","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密充值处理","description":"apple-recharge-processing","prompt":"创建Apple卡密充值处理的详细文档。深入阐述Apple卡密充值的完整流程,包括充值订单提交、iTunes回调处理、充值状态同步、重复卡密检测与处理等核心功能。详细说明充值订单的状态机管理、异步处理机制和错误重试策略。解释充值处理与支付系统、风控系统的集成模式。提供具体的代码示例,展示关键业务方法如充值提交、回调处理的实现细节。记录充值处理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/callback.go,internal/service/card_apple_order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_itunes_callback.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_order_reset_status.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T18:57:37+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoJjLFzanDnCUEKH88S7Dvv1X32wPzyDcbjDs6v94J5yROMxgiwKYF1A8NRbu9hnKYFd9aVfkxEfnFwMuDDLlEty7cKSzzMoRz1UzygV8UVvWVW2+IKCBpUW7rWmlmShhwmfprYHt8x6A1O5e7zUArn56dPNYVFegZk+uMVhOmNE6BCX3GjnAD9Bdepxi38Zg3amPwrd5qz9YlDIlZ+JLZjO0DCGiPzkc53UOe749lpTDYnXcbOmjL/B4/19XJNglt7bPpof8OPyqPkjobNzOhVi2DH16GYb9jeyTvBGEquy4zdw1Id+hEx+E8ZKvMAnN0cmKRO+cUF5qqHTRAEJIP1CcyWTMt/p93p+2Z2WXCqJWCUyaWa7PvttrVrMvWWCDoB1TabwTslRtLBBomgUHCdUeoBVZuFyKiWf1v/Eyo/p3w9gyaFDOLXfhy4lcaDGHGmxGyRTBhPaVm3ne10bHji0kVz5VDCYXDzb09tusRHuZXnTPg7o2nintITuqnqCz3cO0rAgo6Qng7F3AfhU9+GjrZpOCnNDjGe6WDeuSmdA0MBs9DLVhcOnKE9HkZHUG+la5VO163Yxbyt0llDofyW61fc6yZYNjKD/ruQxr8aNAEQxs5jnuv+i68P1yLp3rfh8GH/XXcS0nWxrGkP3hafjBNFfATe9UeaR/kJSxcJj3r5ASmUf8Ishf1O9F708uiYh0RV6FJUfkaOXdC7JiOFUOOO2ctzJV3KX8nE9n4Erjg7bCtQ60hX/iR+4Jx9hjtHyKTvXuRpAlMGqXny+q3j0Le1LqcvYuwAykSDOuEPzb7Bpj2mX2aOV/q3GAsA4tHvb67PvBeG/F0wEOR+m9z9RU1F6PLCaj8kPBT54MInl5DxB3WnsfQttQzNmPkccznjfBnus+yYiA9ppvEtkmT/Nq+MVcc3i+yI0jACs+KZwrxp2SaLes/0xJClCjIDBcjMXu9/mJUAiOJg09jQOXzWWeURrtqckus6fMlxecMnp7D71Rli9ELDvDzDeIyE3foA+tlSKW44UdTG0vanco5guTAvX/wwp73jmg2Ypvun0l4wGhpR0+Hbs+J2uVFzwC/CPuiaeygsukFtbXtPs8FCdPKeq8GvyUOEJJzB2dShtjkwHKfNUPbyNd7UzTmsIkvssK19oGYsUMFqrlE1kHe2mzUtSnS2dRWoPQR+ORrOyi0iuR+++7JY0mkKbD0MIxSNny2f3316CKlZwKdkouOqM4tTeqIj8YyLn/Qr6Pbi9q2h3IlETzwZS+aHrUFKNp0x8oPJ35iZQujDc36ez6Z/Aq/E/72JMTOiEHLl22DQ2Onh1osqSleTnR5s182CPNLuTEB05p9g2u0OaKaFjHkEFFqFd3ouYznfA4XFpg3+bzZU62ATY6c+U/GRXWjBPufmMbVaboCEXU6O5E7mwuGm1XfP1lj7+L8TExV5keV8MqxDFBtsQgGn+9t8WQrKmNPFo1eA2GRzQWURAPytBlaiktWpvPU+IMkNEKg52ZrOBaa4sgtomzjP5N+IwBiwMMxK5i+fDu1A2HuGxen4HRE/CWTADfotXqp20oIiJHYDdDX2DOcXnrRyOEVkO5t5zwmmlDWZvyfN9lUM6f2slRNX8=","layer_level":3},{"id":"230cd5da-15c7-41e8-9ed4-a0cc2496bd71","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密兑换处理","description":"jd-card-redeem-processing","prompt":"创建京东卡密兑换处理的详细文档。深入阐述兑换订单的创建、状态管理、历史查询等核心功能,包括订单生命周期、状态转换规则和持久化机制。详细说明兑换请求的处理流程,涵盖参数验证、库存检查、交易执行等环节。解释订单与账户、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如兑换下单、状态更新的实现细节。记录兑换处理中的异常处理策略、幂等性保障和数据一致性机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_order/order.go,internal/logic/card_redeem_order/process.go,internal/service/card_redeem_order.go,internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go,internal/controller/card_redeem_jd/card_redeem_jd_v1_order_list.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T18:58:15+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rRBWcbr4pdze3j1+4HY3S26IQAEz137MI5Yq00cndqaSFSHvFpKgMtWBeU2MocuooTtw+/vbdByTDIm2m6QMlj0YgBjJy7FRIg1NzkZOZo2dBnr4+843dekwRNc4rXV1/WyzTZ0P2PJ6D48QSP3sVRTCYimL8zahcpjhhu5wJ1DCpzXMKRS0S6yE9zk1KbVmaWvcLpDRF5pNuSGch9VhkhRuTvbl3lv3Aa1eGagTfmrN/9ffgkBo8tkME/0k02T1D656W0Ey7cRJDduSIJoBeaM6mA3yT3j9hlXmvG2pJeCfTduDONk24NThZwtsCcaveg+0Svklv73B8N2ZPTlaUuCFlYgBqK9a8qJxVkZpte9lpaZk8G1+8aHCmztrC91WE7QW8jspEMPh5MiQKtzO8H54B9hM7gQ2HLEBWpyoExPTckpsZThAHCwBfdU3astLS3HriwtJRJOmcKSw3aATZ1THHYlUNPwq8jZVBgb04vkosL9/XvlcswEFYBOE06eTvTkWFXiFHvM8cqUTy9fQRorp8OEZgZ+wn2FHM5j+8P9a24346+ldVPhrCwoY2DU+2W0MTdj084H/vRELAsIUVreoAvkRlpj9kxvUjxuhgH45vY6nNk0eU6dfokSMEdFCvTGNvn9WUw7EtE3h2YFWTMMaFcIF0e6AwmgJpPegB6708mBCiJPB+N3DqGM+V7AjS35iT75lpIiBhrNfqRbUehN2vjksWooLFwCKeIzqUpRIG959i85z85YiPBiF1O3LaV93FxMHyB7pVjf955m6am1ebASO3H4uQt55/R1QAgr3wvNxka44+C3DoJQG41xxJzOUi2ixmhUEksYQY9ksSiYxei43GN8bYaqVRC2jTNj0JdHKdjFl2fv4vw6TCLWDQFttUu/sQwvXL87uvnQCaODbvv9pyc0PGQyTjxX3RYIOM4KZWT6MO6EOPPRB0YLtMlXgIkgFguCDMvuTqaPeZKVM0zamwLGMwC/sa/+DixtY3eXPCtzT+J+J7UgQsey9VuF+j8qATagSRTUC2MOUG8Be6N7YHvFzlMSZCgu9OnEkpsZQbCw0HggfkretmqElYXaLWBui210TeE7wM7yrw0FIV1qEiENbbv5N3QZjYve/YAzuufUscM9Mvmg2IA/FvVN8/XMQ1p/WuXPOs1gkqDClgxkPcf4Uac8QieEVlBjotTPYR/RCOtF0edLj5PMOpgj0TF40CorM/HImZcHpCKIHfrTVBYdYJlHTAYmIEzD8Qhoa8VYSaikimVZ1siU+vSUOWK6Vep+GpKvIogddbdc/9xXxkdUtbzxGHQPJ2DDUwhr2Xm1sv3Oh+u70TQfuhhfp4tKWjMmEwqaZtqX9LFM0C4dGaAxI1JlZg2knCT07wjY/e+UzMJrNfJZ7vTj5l3lU1PVHSWgLEZ4gIYRUoOVVl6z9s3/GMH5oM5GGIBC4Nj5QuY/aLZRIMhPbZUa+sQ==","layer_level":3},{"id":"58030d31-a0a0-4431-abd1-4065b0200dfc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密订单处理","description":"tmall-order-processing","prompt":"创建天猫卡密订单处理的详细文档。深入阐述订单的提交、查询、状态修改和回调处理流程,包括订单分类查询、状态同步、成功状态修改等核心功能。详细说明订单与支付系统、AGISO系统的集成模式。提供具体的代码示例,展示关键业务方法如订单提交、回调处理的实现细节。记录订单处理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如订单状态不一致、回调处理失败等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/order.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_modify_status_succeed.go,internal/logic/card_t_mall_order/callback.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:58:16+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRa3WSApkXAR5Fc40tYehasW3oRRWjQgzTzde7LY3UZtxAiPwPZh6umD0hIu1ZxyamO/jzuB0ChImt4fwd/3TrlMI6CTgIwqXZdyi2uZcXeOqr+cxbAih167U94oPG7vP0ynlhZnr9bMec0kuqh/WRLpLnF4vcuws0pDRdrGjPIWvns865FMXNTmBRkZwBD12AI9v5HeuFC/mBSB7bwujiigRKcsIYWzISVjTI9xMTb+wXQOEoH7u5DiAEzaXINxIoGXKPjS1HYunIfG9J+tX/3zCnRIlSG/ZgYGoFEf/KqAWxXGTTDidEywoAaEtsoyEkH/p+fvz49MlshRjhJh82Am0zOO06lkbnHx3CXtY/AmOBkalN40SQNVLLrVhC+nnZOxAQjfbcsLzVpn0k0fBRHw1D7Rgl47TL9Nip8ZGr9tt7vEb6kxG3mGscOumxo5DDzcPHciw2oZmjLLoVfH1wm6WcXKvd5TF/+YePJazkJ/fYq7cseFLu+q0Mrf+5Szk0Img02WDiiJv3/USpD3fIC5SCv9l1fFfzh6haJH+YVntv6VHQzdSfVO8w19NNy9REF5skh6wZLnkuAb35GthbyTT+RrzE+0gfqsnmTO2RlcsGo4M/SNtnF7tyuzSI1Ikc4dbzHRfvBbTuL77Mes48EsZNzKFDP2z6B1SL2WRa03heiT/OwKzZbdJg2v4WQyF9KJUgAjXkxpd21w+XOOeQVnZXBy6iX72BdqeDUHRxOMW8Rft3KoD2rAx4VMSEYlm8yZf05HwnJfgIeQ7FPhDFFtjAyXj206M6cvbKLs8ucEafTjsGGMPcNNposqicSxfBaYJO2LIos4WDfJ8a6ch3fofGBRJYoOlPfMm/E7KdGY11PnkVEYveJsSGG96OY3FZ+skie2zb5Y2GrwfJF5WpDb7Zv4GRWDYj0d8K53mi3k+cg0XmlFnOmLPD1qKIAQg1mwRR4KSO+KVX7aJstFweV5e/0Um5q4VqYLMxQmbVdxe2aseE/XJZY7EZUAEDUh42qi2xQ4/Czer572EPp9ov2yc8RKWtDViOVM7V8mt1E1s2D0abzLj1P2cW3iI1n8zFG47vrU7mddUMpkzCNpAgUtpanjN26fgJuYxkV1Rnoc+A97qS97rBsY5Mw/ijcDep7DSKcn4oE5GNTCekRawF8nmbwXAeEqNZxESHg6HnPDG2TRAa0mU82CUvP8PfHLGFg6+zPW4n3ravMQ9k7JlGW8L+dUBhcLuryFG05xTa6XoW3nUncn4OoYxG+SRzUrSKeunw5OsHzov/HjCDev2WSPerrC5bkCz5m9K+M0ts9Pzl12+9TZimZx0YHqBrlCDaxPdoIB9AecRZkLy3Pj/EKWn5Vua0HBll5c/AXxCj40GCA9q7Axa7wo1DDYzbPs47lwr6Zqfv/cvP91kOFmt/Zsp8D5XtbY/Sy+zFiGnw5WXZp8RwhWdjn87K00yYzlSoX2QkL9rl8PCoJhnEehnRMP3UfhRZufDeXU6lnSHwENNHcARGFOLwKVayg7nvgYOiCRO1XdeX60yUGNNnf8byqMYZhLQBWG+B9ksEfEgBbT3XKQTMv9pm+66dxKzfFssS5kJRXynKAx4Z1ZLChf2TXj2p6fvGgUKiIHk0Qivsc+q","layer_level":3},{"id":"321018b9-e7f9-4101-968c-1818559aeb32","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP查询优化","description":"ip-query-optimization","prompt":"创建kami_backend IP查询优化机制的详细文档。深入阐述IP查询的性能优化策略,包括Redis缓存的使用、布隆过滤器的应用以及索引优化技术。详细说明IP检查接口的实现流程,如何快速判断IP是否在黑名单中,以及如何处理缓存穿透和缓存雪崩问题。解释查询性能的监控指标和优化方法,提供在高并发场景下的查询性能调优建议和实际案例。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go,utility/cache/cache.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:58:38+08:00","raw_data":"WikiEncrypted:HDzk6pDBQ9qxx18eHV4+ms+O2E4ojmm00kWAnKbnb/AMRZB70jeLhKW0WT2jX3fFE0/z7i/lrUCoyD02Qok5lj27e+0TrLp1DnybseY20m2kdsNivDERjyOZh+dwK+03eYbVnW2mgK85IDoNg/stwG/jio1goT9EpZceMcP6kLCBHj6lJvkGJPsl3X3BxGzqrf7U411Gl/8beFyrNtNNbzQcG6MYI5yxfJ6O4giFhnDV4DRaO+9HeZFouNqCnt/MMtPpIRYj5PceoqK2PISi1/BZ3l5wacazP43IMC2XIlaRim0Xy33sGhYw3ggrstwNyc4a2hil3MZeROD4DpV1pcQN5d2qWP+IYERqgfXMNkb5F8cxf1u95Vwwk+DNWLuhWz9zQY4xuiGR9/Uchn45pMRNGEO6Y0FrkfhxyC36f2DL7zAUy+YGw5DzQr8na4naH4ETSD1t+9GIZ2TwCWwbGRU084daz7FFkZNrfGFOmZVmNWmxhab/s4pAqWhP3kjG2uX4Kdv5mxuKTCaUtPtOFZIMK0njiqH4FihPMsX/T+630oVnDA6Kqu/51IyudKWdHaHQhufXjy1WBxMe2Zjc29pd9XGvrONQNP2ER1s50vZSC96ja/S+swTAQu8To1kg84aWGohPl6vMVePDmsrmee7+/zWLen14DcRbvmgp7lDn1yMb5pi/o/uEp1nZrzmAImKHZHfOfc7QSm1k3R1lgYKM60ZSBnTUD3aXc9q752eLLbJ3WUcHPEe3gqA8P+W4+TuUC/MQ5ViyYmDCc8QP4IOWkrn3IJIPUMY5PFS9DISELmYgVsHgatalwV8vdTqOKPSHsd3QzBX0zePRYfi9+0OHLgvEJHxl8H6z3iTI4C6uWP/l7kyfn9weaLbP/2dZLEhWWEjjs6/wFjxsxjzVBP4kuLVRzMu8n70NFPaY6fXdoco/JeRvY8vKs+Vf69EZS6uyWx+tuK0852DXpLZyEtPcltnSx0g94yM0hvBHd6J/gZNaWWkcMHA9u3CFgfIjI5/R756QqfRcn9ThLtOXea6Q4dtoZoRSao4i69ZV/rOO2vJns+9tMTgfJRekfGHMI2b/m3uigX3F/hMBrhvBNQ==","layer_level":3},{"id":"c66c0c6a-c5ba-4081-a359-7bb0a47ca417","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID存储策略","description":"device-id-storage","prompt":"创建kami_backend设备ID存储策略的详细文档。深入阐述设备ID记录的数据库表结构设计,包括字段定义、索引策略和存储周期。详细说明设备ID与用户、IP地址等其他限制条件的关联关系。解释数据存储的性能优化措施,如分表策略、缓存机制和数据归档方案。提供存储容量规划和数据清理策略。包含数据安全性和访问控制的实现方式。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/dao/v_1_restrict_client_access_record.go,internal/model/entity/v_1_restrict_client_access_record.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T18:59:13+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvLbiAthlqnrmydQ6GyJMt94jIqmJP/dizOgivC+50j5F77ll+XT0xbiFFnwmAAdXa5XvJRzqEwFtbYSi4IM7h+azyRc3StUlklnZwVbQ77701gi4uGbBtEtg/gwIuuWVoJ/Ql6uDqLfY8Vf+scSGf7xoM5+A0A0qrQGyf0N5X6CXcw6qPAb3aD9GL5li97zQy91r5bcdBA6OgWxbLohUbk6fzHA+KBsJYJLi5nq1NoDl4rYr8yem47bNIHTQCenlywS2bPPI20HJHWtv+XzDTy5qSXbkTUW+xdnJrkE9QGss3xQD6Vz0Kf7bAReh+9IWnYlbSqrv/Z5Blw6Yb/z8Z9v3ENw8gNqqPyxVwaX/6RMFwZspFbHSFIpdwdr7lRp27btPj5zbd00TdC8eDm4I7Jt+3ptA4eKdPvDUe2MBDtZxy5H19EubCwPk+uw1Yzt7Qb7vJPFrny6Z9r/mQLftGThKr5nNGEtB5EFwVD1I17ZUtYUgOBsL8dQ0fksaOQWuzVK/tUBdiY9BbY6JpcM2wVwhWknYGQhYww/8dYZS79NtnzJcGdK1j5We324ymLwiaipOT2vopHzYlyJQD/0SRL+ly6bevCllY0M/hIqaJazHTjZTRfxwPQAateLjZveU+KBAenloB0u/zTrIHRVoZtGEm1tYZWnd1qzE83mjUqdyBu5OEyhZ06C7sSxpo6NHaZc4uaAM2Maizf3q6YaT//XaqRD4YcBKcgiRqAIOKqdyTR0iNUHgDjSTytTvE3NFN0cdr3xewzbrbSy4IKYkrhYy4twaz+qi3+j5UvlS9czprctGPSXn92s7g9Anu9JfzkYdgWktkLzQ0bfr38cS0raw8TbM1CXN2CMs0ShCm5DP/8kbh5Pl2LjCJ7iPGr3kr40FN83D+1N4rOqQe/385wyJ3Oo/XI79QZfYFXqPiEviwI2jQmaOhV5NzuUfN5D6cupyMPBJZYMOte49njoqpTXlZ6cS9CcKSqbKEx3UZIsaYJgRPPr0AfPeA4OSP8fbWpZIfs5Nxy5N7mJqEHvD+OKr9hEpcIW82eFNT/ovIzu7/HxbtF1ZSXvLKBIkxvIaAAJIWh1boy9iNT8+4bmfiuM=","layer_level":3},{"id":"beeabbca-9f86-4566-98b3-6bbce10c5df2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"双因素认证","description":"two-factor-auth","prompt":"创建kami_backend双因素认证的详细文档。全面描述TOTP(基于时间的一次性密码)认证的实现机制,包括TOTP密钥生成、二维码展示、验证码验证流程。说明用户启用和禁用双因素认证的接口实现和安全考虑。解释MFA工具类的功能和集成方式,以及TOTP验证过程中的时间同步和容错处理。提供双因素认证的安全最佳实践和用户操作指南。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","order":1,"progress_status":"completed","dependent_files":"internal/controller/sysUser/sysUser_v1_totp_set.go,internal/controller/sysUser/sysUser_v1_totp_image_get.go,internal/logic/sys_user/totp.go,utility/mfa/mfa.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T18:59:05+08:00","raw_data":"WikiEncrypted:vY6Su0EQyZ4UawjR6GSslrl8TerMMRiC2vAH1D9LsXlgGlhSVt6X4lc0ZcGM0XjdwUyEG7Z65qRzodxrMLLnPnQdajFR5qdWB7OnHuwnK4nxF5WDbrYVWRgzofrWcIPnTm/3ITBkBoKIcdEEGsY9hB+Nof8DN9JZkRzJJfJbfma96VCDDGRtCeS1yEhWA8GYgQgJAkAspt3/dBRiFREKOruVTI+4YpbiGQbcefs2j2qQZauMp2PZDvYE2My0v9fpY6iZa+cNzD2Y4SVyFRAzChxQBfL4WdUAp3vuq1o+AtQRIF0VKf9Pn14H6j+fXSXXpl779AEYyMBSJ8FBrARnQLn0vcBAdZPICQlMYP05F+LBaYH+qdPxUexSkF5+BhnHbOUDhuKeUXx/1AQXxaDhBgQl0r91Kcat9Fo5GnKmMxkz3jTDyX0eZa0wDQearidX2HEfS6yLhNNlJ/g1IMZ9UyqjsQI/nJNuCMN5hyHZe8A18hef3KSAUcZSN1zxM7o/42dwzBZyszq7sYbh4fAWpCoNVlGI6dUwVMKFZYuwOdd7wY2zp85IqJyYL6zGVyZlcA870+SniyzCc8XjHAdESUR5tC7zcDoN9pdvmX+kShg6eLaB8ogC877RbyElNpqTigH8jBuscxW+ZNhKZ1nbSxhmrSp+R/HZUIja+E3bX4c+aS9+Lzch2Cy1whBO5sBZ4tBOdTG3Dj7fBgQElnp3R05nZGc+8bK2Gabr/E8aMr8Wtg3gUbbuWjXUWUoIpxNjLY0SwMVRmwq5eT+0a+spmaxaiibH0siDFrh1lE4OVfvAz7GHkz1XtBShCRIZJJwD5ul5Su6sEcVRjcKOfee9bAzW0W/wJa2NA3cttTl3YlsYgmjVGItM/7qifqDJmTEHX442NXZFo3tIy0BKzbzrTeizDbhg4K3i+2WlvsxFduyfdbBQffsvRuHuhMIyT3SSM2+HbWwtv0K97jq5GeEsIlw9BoT9VLKSB4PE0AXcQ7k+qRkYCi/bSGN4Vd1Oil53HvXe/oGlWyJsMKj+kfsbVDnC9v/h3G11nHF9ZnztCHwHIL7LI3T9vV3wuvZn3Ryn8e3I+a60Hw5X4LRr64YpJ3YaCy/9g2yyY+VoFh18p24=","layer_level":3},{"id":"3acdd907-8a5f-4d42-9ff1-61bd6e8cabee","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限验证机制","description":"permission-validation","prompt":"创建kami_backend权限验证机制的详细文档。深入阐述基于Casbin的权限验证中间件实现,包括请求拦截、用户身份识别和权限检查流程。详细说明RBAC模型配置文件的结构和策略规则定义,以及权限检查的执行过程和性能优化策略。解释权限缓存机制的实现,包括缓存更新策略和缓存失效处理。提供权限验证的调试方法和日志记录建议,以及在高并发场景下的性能调优方案。包含自定义权限验证逻辑的扩展方法和安全加固措施。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","order":1,"progress_status":"completed","dependent_files":"internal/middleware/auth.go,internal/logic/sys_auth/sysAuth.go,internal/service/sys_auth.go,internal/controller/sysUser/sysUser_v1_user_menus.go,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T18:59:43+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoFf/RGWFtEoRnhdJx6YcaSt2yvz7R2ny27ALK5reW+2v6HBYXkYVp42DaRmQlw6wk5BpsbZJASnN66QvlIxTtX1GJ9/oYF/PBg2wVhmXSI4E4863QHWaMcIRmAVuem99t+HgIXr/Sj/hAls5rJnzaFEWpGVJiEhXzsspWqm/Ek6IyM+UKLwHHfdJ6YRuB3pVTAMrOjKad8gYWgfp0Q60qez80Z6KPcdV9hSUQHs/NNICNd7XzK7msiKl8l6T0U0osNiFKzIa9RdcE+IEr2E3AdSUJIwTrPsXB/eEOjW4OFIDPmMUekW1Nm6Qd5IQrQwvurEGevh7WiWIB3+Zx+e/kwhAR2w1woh2BkKP7zGZYjslYlVBCipomiH0A0qQJP6riQbewrd7b0l8BG6a+/GETYz+XZvViXDCKr4I9iEPSQK9WeOiOlBQJzkvpQjTJzfotSvl6XgazWIuXiyZioPJ5rHqFg/X3PbNBt+N34h+qOmu/4aOJIm0eKJzMVtA3tzOTUCpcKpr7Y3bWvcEXLU/eCW+bKfgwF6I1I3xLJ+fcHhZWuxY8S7Qlk2bfrAyvYU0NhteTi/cOJN0xKilr0yVDDC3Xc+zff5nNN8qBTG8oDj6fNNkQPQcVFf96skiAvJthx/JEn4t0nzjhzRsBhWvJQOZX5dBCyPaqV0kQFlM6m+fQWUwxgAEPly0awuh1di07X4l+BpYEevW8tF2BEIxQIYcLvyuIQ9neH9yNG22mT5w7/ZrwbMxtbUQq2cL8+sYFU4fvda8QGA/C9OJnG6yakaSO0b1CjCyA//By2BZI37d+0laL8Q5epqq32Tqyzg4P/QAQSRdE9g9RZJLfHw4JS/9jCntJruBscq9BVeVifX+yCE/e/LDByJ/BFEJzenEin8wG+/cL1mWQWPHGDolqCnQMfnJQNj8TRaT0F06CPsLK7cbzqYdUxR62plYNbL62Thd1buqu/C7XyVJWdyY424+uPDQSbEo1EMnhSYIUWfCeDrxRNBPcdF3v8RY2Wzrpk+e7TI7dqWVD+23ONlthzIXaYs+njKH6PrggA859ITkjojfKe6AWL3ThoYfmJ9rtpTWBhxfqUVQqhpuIZXdv3jXUiiUnIfAyRYkpClCGrPsvz4AsHPnuuSpGouQzOfACbgdJvGOg6wG4lwH6uhmnxzyiZGOZ2aNpWaZlBTOnbjdHW/rIyB7MbFTqMMRl5qFhO3gZVnS+R+dEwn4dWKVL2VzZP5S/nYKG1o7moc8cbcG4f9rqsNmidFBTCPRzrm1SDdCxZ25mdVF4MMjMCRaq1wEJgRvF7uG1s3lK3uUCOep1q2IRAa79NfyJfLCk2BwQlee+NemPHNHAL50qhGbqt8=","layer_level":3},{"id":"f8a44d0b-b413-4926-a059-e1ac7b32cd45","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密充值处理","description":"api-card-info-apple-recharge","prompt":"创建Apple卡密充值处理API的详细文档。详细说明充值提交、回调处理、历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述iTunes充值回调机制的工作流程、数据验证和状态同步。提供实际使用示例,包括提交充值订单、处理Apple服务器回调、查询充值历史记录等场景。解释充值订单的状态机和生命周期,提供重复卡密处理策略和防刷单机制的实现细节。文档应包含错误处理策略、安全考虑和性能优化建议,特别关注高并发充值场景下的系统稳定性。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","order":1,"progress_status":"completed","dependent_files":"api/card_info_apple/v1/order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_callback.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_history_list.go,internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/callback.go,internal/model/entity/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T19:00:01+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBuQ8gXhRT0hzB3h0Nbh1xIc8vbGqXNlySwlsHA687otrBmRJVS6BPY7gJac8PZeXAsAUuL36qjwvumcmqfC0mO4vzJPpld0yLwP9nKUzByZeABboPKxsN72AHYuimc2vbj6BjRkMxey2MWjbd7zKWCmcBhGvX7aGJZgvRitjV0NbfinDarbhhJnXy2JG8fWQMPVL5MT6As93QDKtWRspAh7McoJm4482mM5530X0q2+/5pquJsvX5TVtIhdaZ9YQ0NVMUw9rRtpicvoJekjYlNOxWZuLmWwLUsj2FGo0lWqQQN0I2qCrLsueyHWEsTrUIE1tcNEGP1SesE9z2GVA2RQzh6Bk5fA+FHSE4yhsvMI/RDblLcl2APujp9eWneAvKuZYvDAULZ8W3jbtM43qVgX8X59wSHDnxfe/iLTGHxobpo2ZY3emYDBUtPdz4aw6Y6djarI1Tug04e0myHz/gBAUvWFuXuzSxrnnWVro4dXM9G93q7dgZjxDgBMUIlBt+0pK3FNWTKt8ypLZ7hcyOZ7qZXEk0SFm6DCxzSadEmnB1/cHvPxgeGky8QtSpttAVJ7QfzJHd1NWP+A85H8VwzZZ1buhNjamJ0FOSidOrszQ9x4j2xPOLXqYpOuF17xM9K3o+F4DxQ7ScG1u2vAmaGOzNgDIdKMVUtGuaVeyOTQmLTObX8XrV6lOE+uEWLHBALC9jMYu9m5mPN4M3HoJtJ4uz0Sth4gVJYSzdXMJgIxDQGRP4vcseqIBD5Vzx/i1Omho2/PT3t46P58JUF1ei3ACBNMgMueW4vpvsIken9QSyshW8MkozNRNpSHaGNgLsZ+Hv0mxz4HZkqm49Iw1BHpKC51pgk3Uks0BUjt6xsKnxDEbbAoh+IFl3Tx5SQfPLU9MdmfgAEUNVUydcdV4RBta8VKRmhQlEpd7u4L2YLOdC3pAz9XvQceBvxc6a9JpFCPbzl7invyujj7Z9Ujz5A4GcukIVtaMKSCBlt53l2LJHofYx2OHrdr/AP+7uZjkZFLBmelj2LX0G7dTMcLILju4QdmFQawqmYJ9HJO15WdO2uz9C/nyK1sN9LbjgMOgVc8eFmO/A4kTYd6D2bIF9TdfzKIhLRdHiiy6ZvlmAMzpcczRB4xN1Hq4Nyw0EAC9Nkf9Hi8AAfxGvABIiNBwWDyXahE9tGdXpB4eMKHZn/5Qt1Z6veg/JG96rpMs35nn4/qtuT5eXQRy+UZdcDC9qyWnyXNKH3N/DnxL2NDRHTcCUtBJhgopB4kQz0fzTh1bZWtylP46ilFo7HswGp1xQScG8DpABULiI3Q50m9CTfBvf42TmKO03cTOn7IxkCEQLmqyOKwNsI4THODt5J5H8ENehAgRz3GhacvV7tATmIbcNLo82ROYYQRADUqdnbB0YbPOZdglgpaoIBJhCym6cpUV3sjLeq+UFO39JT+JDUXVfVmOE8isa7tj+vb3PKn7c/utuSJLcyIGNQ/+Pm4r+w/KjNATozPcmc/buYl0Y4XiHU2xWY6Lptym/XT/1iO2Juge1mI/Il//TytNRDLz1Bs/yqMYiT860ERThWkBlRaRmIVNf5R63uU86tmNaSFV9JXW1nwzRwZJvwPk/lVFlmek7UPPp2dfj6DCmxrtoPqOWCLupaLjEzzAIUhB/fZSGqDo3n6gVa/6Q0kfRoLGGD4NLRVCFj9R6nA54crtmC/F","layer_level":3},{"id":"a255fcc8-4b84-415f-bd11-dc26fa62d0b9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密订单处理","description":"api-card-info-jd-order","prompt":"创建京东卡密订单处理API的详细文档。详细说明充值订单提交、订单状态回调、订单历史查询等接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述订单提交流程,包括订单创建、支付处理、状态同步等环节。提供实际使用示例,如充值订单提交、订单状态同步、异常订单处理等场景。解释订单回调机制的实现方式,包括数据验证、状态更新和错误重试策略。文档应包含客户端实现指南、错误处理策略和性能优化建议,特别关注订单状态一致性保障机制。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","order":1,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/order.go,internal/controller/card_info_jd/card_info_jd_v1_submit.go,internal/controller/card_info_jd/card_info_jd_v1_order_callback.go,internal/logic/card_redeem_order/order.go,internal/logic/card_redeem_order/process.go,internal/model/entity/v_1_card_redeem_order_info.go,internal/model/entity/v_1_card_redeem_order_history.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T19:00:03+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBnAun8ymWT50xr+zQMrdfh+JzQlOWLJm4o1ZqCukrC50DHCusAN/0zL1uDXc/vrzQH6s+pvprxcKT/XPElwdmz6dQ8Qjdb+NTvCbf0d60ZSVdNZn1cZCzjaTkxXDwkUwKfBZAaty3DDkJ97arJJM2XeNGKWOSpcw29gbMfkx2sBWTqtT5Jjotdmd2tVIDWkonvnJ1vA8RzTeDXpB7Mk8YjkTFg+waI+PfPGf/y98gHCNEO/fF1qpBN8vkz+MAs4xkbYJBl92K411F/oX54qyaDCDGt+RDEIYE0GV+kNJ/xmVu9eFvwp/Fkylf4S2X4rMKixtRzRwuyUgcBZjFx+scr0QzVdTWHxpb+4VdAlnyNe8YCn1R35zcM7apkH1DzgEwVPqpz/PUoFISxYyEEPM2ryaCwOAoNe/M8XeXHSIk68dlpJ15NNaMBOuFCVHgCCBweWGWF2Tw38NclAQKtEGfiuvQeetCLRff+NDEEc/XziANOey/NI4PnkQDjMLsDtS5y1pEFGlkzevaULxwOv4Pu62/IFuRRCES4+MjPas6eGbwTm2ahAq7MOwNvUxl1E+oYl9GyVYcqXH2UnD9dWQZYJnbiiIfXAoxhJf8vUQJFV8YpzF7LxPE0zUffUNeX2RjJwq6DOBlH8uBKEnbg/r7MDIJs2IM9MZnpMWulUa2tmbK4aWl2uUpJcyjK/gDjn17XoHysheQllRQalXEkwAbufDf0kDNFzx/K7aMwRd/nKjVOyaKQ2OjwfY/cC6NxPDCvOpuPeglR2C74aHUjHsDkAga817aSC/9ETfHC3IjWSHlcH1ap82au/gJs41NsbO20aGZ6+qarkWDKW0sdmEFqAlJdd0XsS8N1fzyj1unkjosiHLoaV8yzQnLx2oCMX9Yi0TqDAwxq0ZHWcGDgaIDXFb7SxrWW0brOCV3k3ubVAObIM7XAz+pwrcfX/TiXoTbLg6kKMCaw3d+LiAo/Fs1jqVB7L1bdNQsfBbrKPNQMFh/2DdScuVrAAf33hR1rL+DRfddlbIztmuxqyllhL/V1bwR7kD4EakY1sDLkM4aaohE7HaWaGENwI14Ar1oMcjYpBkl2r9iEJFH6e69N6O6Q2IxN2JVXHdDMxCOYytu3uwdmEDwuMVmsKYoLFaEptwJi/v9s88n7rr0LXZaIyYE+FU4/EgMXtVwudLi1aV7e3IU+JKatpMjbLhRpaNLkfNUs5zHCLJx96/VTjaZqogjbqyAdcyaXgw2UWbhpu8AhtS+hk52pXvCwMAUDRyshNvlH1TkgYVttNZN9u+pDO0IEF5kPTA6riGhmt5v0qMfrMETY8Jk0EE3q5mU25xqGe0Dm2M5HIgBFYCzcV0dvCJCZsgZ2dcM7lrHKB5u8wjUN3ceH7aAA7XhZMr6fmA0Cp62hAXM2JvAm7hjxO8XGH6VlduHCeUZODN3M0wVwjqI74BCmeMvxWFpqQBe/uvAnq+TWGM9fRJuqEpwgjZ5OXuBd2HDVRd7OoD44cEFCNykckz0OzFP4UhsTqZZno9bK1TM6Kz93JnP8ZqJtiNF7ArUFxAJQ62924u2nrUOev0NpOqoyUsp5lHb7zh3oiQiLmMy/0jj6/ZbtktpyeOFbHKcth/nPhAuZyD+oKr4m9443SH","layer_level":3},{"id":"c156f2b2-d455-46fd-8a01-d316c8e27336","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密订单处理","description":"api-card-info-tmall-order","prompt":"创建天猫卡密订单处理API的详细文档,涵盖订单提交、状态查询、历史记录等接口。详细说明订单创建、状态查询、历史获取等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括卡密订单提交、订单状态轮询、订单历史查询等场景。解释天猫卡密订单的特殊处理流程和状态机,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注订单幂等性处理和状态同步机制。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":1,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:00:59+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBpwp7PBBej0a/DwKAcLvKuicf6vl49763nJQ4T7oW1SwmmHr2nQhTOzIckcABWKSlUJgeuYKu9aMTw/ksiYmKpWoOVkcuA29AjNMeJLCYrxELEHX/RtDnCSymIrpWrpYBEVNL2JhzkgxKtjJv2P3PIQhoddo5srmVnjOAfj6WX8abAtLQIuib2C3CUsO3Jy0caMGiAhbuPgcILgCNYwKb2LoWo1aDROBNXLQiv0h/5rlxBDhiHp6yHTLcozUcyr+nmvqv0xlQJCRm7PF+qS74uQESL0xA70oGIsY7BGSPSPnggle7XjqUQU++v8gvqoIXLYynp8DzRWxUQBEYDmCgIWSWlWALARmKONm3zkvburdzD7ijliod8N1i6eyqo078f1TofTk5QYiq74NexQNcpLTc/SlKN3x9Sj/ZbYEady2ObHD++RpsV+H94r2br1FWPuZZrQUHafAz5nP/3TIwMEVQ04PQUGYbDbi67wBchEuqQLOBk0hyVb5rt/APRH2aMiGColxHHYv2QIQnfsBOJX1IoQLYg1FJkhFuL75dAg27UIigniKpZrgcL8tB6WU8XvTmX6VRxhoE7zzIsuRWp7tLHqnYVb4K0qfRltEj8Wk+Onp3ReryA9nsxefJwSxa8PpMiEQ4ZmPTda1SyM9MR9ylD3gLtk4rJAjKLmBfCcYoBNgByN6s4iUPY3UlojvhzNM/rvQpxaeuqwykhAj3UTYEiTlQP62+tf/XNvc/4xHAL3h29WOWsPwRYXqYDUrMUkm50C8Rsi0jPVYjKHN6b86sEvCaJtwhRF6MjWaML852XBJv4ccMrBtlKmYfTl0L5+cUZKiv+QNN9mNdBH98POVpcStwSEfUMv7A6w71JdToOKRutsTS/b0U581GtgzvMGd6cwWMRghrk0XbBF0xP85DoMxbzfiL9AFigDz3gkWtIUIHlZ/24+dJKVKSP109IGmzIpMNP6te2vMkbeyv/Oeocdu0hsq4muGsW1UD8vdU9P8UDgiNui04pNnKilDvotpgPvE2nyGzlRIX1fKmO/Jtl1L4YShMr3JuNv8kYu+1tLQ9xiJ9yU/OYalmvBsr20bW6MbKmkE1xSqDpo5D+N8O6/cN82D3AmrmUw3tRxadOxo0dPmrk7lpot813u6vAhi5zNSdK7keFZHGJrULsqvepmKT+ImO6D4Fc/zeNLd/Cx7gc9nU23VRea3HspNOj/is0O4OzIiShq/de4xRBFldanayA34KGEQppWM/6JK4jNiRYjk0o1yI+uoY70npaC/BfcVLxtNs1kyLs20fnJ3JdABUqlTffbNbD8YdkxTAk8jtaLHvJpRjY6q3uqCjf4Z2n7Z+bCt+46Fa+8TegVOr9ulqNoqGprIh59PGkpQ1XvZNSXgGyeplvS1Eo5+HBUosyFzDi6uA5NPwKaH56mBsj6IAdlArnOaLbzM7jPM","layer_level":3},{"id":"754a8225-3d82-4760-bc4f-280e0c19eb86","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"运行阶段详解","description":"dockerfile-runtime","prompt":"详细解析Dockerfile中的运行阶段,包括最终镜像的基础镜像选择(如alpine)、二进制文件复制、运行用户配置、端口暴露、工作目录设置等。说明如何实现最小化镜像,包括只包含运行时必需的文件和库。解释安全最佳实践,如使用非root用户运行应用、设置适当的文件权限、减少攻击面等。提供运行时性能优化建议,如资源限制配置、健康检查设置等。","parent_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","order":1,"progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:01:19+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kCJ8o09p2tGI8awkVmrWyL2InK1RBcwm2+B6aKZI15nZpgKrnqicGdFRDxe41FImLhKK2ZOgsu721pHM3qhtLp+lD9TBo3B8GW4CdNXlVCXttj52FagEQnWjR7Ok8z2qIK7CUp951G7NrzOiF4BuUSyA232hodj/ra0uTSWpWoKgWjEyiZU/YVzEwJHVhlsCBJ76yhX8TTK64mT7WFwWu7azM7pUoD0M1C7mjaxj7mPfUq2iRCCrYACWhaH+T5zrbk2Gbd4O+M4PEs/ywQdHgjvyZMuFF862ueWawUZiDA8Fy2QFwzQ6LHFk4GXX+Qb35PvW6Hl54tucEP1Rw/o7HTnmoONOXu3go6/dL9+WRA0/RoRyUC/+ak1iXB+N5gZ5zlcLfxPIuOf2i3ptDWkDCCS42di4p7JFiJNjzMaiVwpHefr7fPReZmLQJdjI/O0g5WjDycruA2NO/IYw+vJJR0GyaIcF9E8UCtUx95EB8WRcjwwIHGfTMhRbSi9QSHq6409vNdPU9D+wT6kgmYR5HNCkzdc+8Hvgog2HQlg6Rtb3nQ8imzt8pVXlGQl7T3uDyT0Q4JSqfxwO8Q5QtpBXFkwpNoW6W2APxPoaWn8DDEJB0KXRILGnl+hW9I1uCDVCYA59OdsXnYx9D0Osjl6ixMzT/j7EF/kWmwaya+Mazf+wHMHguXqY8Md7TgEFz2Plqd1BX89eRzcKjzNFywC7AXOw0o34TuNLexpxm5AH56vBRwxt4aEj9ZkU0N1kDkqkyxwAIw2uqGevmMFS6EVrx2anEMh7jlzhUxYY+J0hfbl4/FlW5BSppLyk9HZbImH6ooAeAoIZKrgpmBRSivNGx3vzCRjICr6SbMJV35BXkdzhW8NB9AJjRWevAS6q2Rofw2P/mi1byfyZErtt4gYypYM=","layer_level":3},{"id":"694e73a1-0845-4ebf-a2f6-990acde1e379","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密订单处理","description":"api-card-info-walmart-order","prompt":"创建沃尔玛卡密订单处理API的详细文档,涵盖订单提交、回调处理、状态重置等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括订单提交流程、第三方回调处理、订单状态异常恢复等场景。解释沃尔玛卡密订单特有的处理流程,包括订单状态机转换规则、回调验证机制和状态重置的安全限制。文档应包含客户端实现指南和性能优化建议,特别关注高并发订单提交的限流策略和回调接口的安全验证。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","order":1,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/order.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_callback.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_status_reset.go,internal/logic/card_redeem_order/process.go,internal/logic/card_redeem_order/status.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T19:01:13+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgmiZp2o9E+nyWzfq4lRGV5l/tcyFnfkBw9B2/mAMxcM35H6yqYgB3970FKC4oT7YPUYYXIhgNKAWkEUnOk1wxl1biDCVdJzQe2eGwQ9rvmvJLFNNIjY9hB0yA6l9NQkvO/eHqs8iynDUlTpqQxm8nwJfpqDwtjgx0bVz7s/AyOVlPg/pBbtDoClx6HKqM0Q74Rp6MKklmdTj3fVSjBx46aTV10dC8GUmk5SWn3kHKLi0ITX1W/1Yra+NNYNaX5g6HPkQxEXX0SsmtLSIBgPYrK0RDXHDvEeziKFi6k0k+zADnz7V7rd+HY90sOadfVfycJuU0b3CcwqHfT0BYGLUbeRt37Cyk4Af9+mwZqcPsx/yEs7VqF0r8rI68qZpTZFRmlgXwMH6qXci+7CzYs/B6yADK+tQ///GPG15XMO714UDfFgzCjnyreeQ4mwpFW7/IDYlrw2nFO49TfwnRoSmcDGNn2o3o1uAoxRa4HwxqtaXHhK2ke1SCZYjONhha7b94kF+u96x4V75vff6GUqdz2t19Qqsn3KHGGo5WNDt06J/ASkZxTxfBCidTP02xEHgsTMDeOrecgJHS/HHPkdLHQZx0wFJTvSSZXM7J2qKwUzJvmHpgp/84E7UQGffMrIpyp0hdt5CDbGdadVCkTJpRqNOKClurVmSH6LDgySUCmaPogMpXr4wdzo0tJRvPRe0wult0AoHd+4zBHVMO5jJ52YfsRZlO3ZxCeafrFPPOYqpLVvRhExaSR8ckTGL+9sYBPo4Gcjqj1Nng/Rg6dWx5O8pIguOgqRJEC1tDxx0ANIZ81A0lx+YJRLA96evM8m+RR7uh17E8l6fGyX94wr77DU4XSpms3GShy1wsXg4Bm3cjLCQJA2Xck4E1Na0j/Yjz3QOLLPeFz0OXqXF2KCNoGgLWOOQFGdrhtxPqncvCNTlsBxDZoMsbXAJ3KH8aJwx/v2PcDDpoQQjh8zInOUpA2lrwzBXM8P6hnE0yyjaRKjLQ97PhTXOq2gDXKHOdD9Ax5jQc6q/jkYb4W9klpQDXJrNaGCOJz3gf0S90niEy/epd1wfolAArqiCh78gA7FftUAcGgKKKPB/gipbw1OJbP+WvEdvKgtJPbu7bbZq2POT7CcjrMYeiRXOeSgBQs5kPkQt9ErYwHTl7weK4RHm3v2IIIso8wKEXnAWZP1J5RJDyiRL5CQWtUjc9+WAxt7P1y3NXLxZKh4a9S3341YEXjKKNrPaSp3pMBDNHtzYlsn3KvWPDXyF7i6fJkadXtc6aCmX/Fy5pMdua0TFCJLL1z38QkEns4+F1sucDGZ3Ir/917cVVys3GHyVdXaZX3EDm5FDaCbBMjqwn0F/IjYZ5MdojWwrbLrZS1HOm4g/Q8WOHCCv17831vexItO8+xhMnwxOlst49F4LQOl+Eod8VXxy85Wy2T5M8skMw4Sm4altwFeVskh3EiHQPkcB1ATyXv397DP3D2AUJCaGxmPJ/AyQ4sxk9FeIYXsKOW3zSlD4J1uE3TF2GQwbSlBPeuHd7ufO3jI2FvuBiWpgxxWhkRj/CEfSdwdP9R1Yo2JCOYbmPX0vomc5VI4DRgO5ZtOyHU=","layer_level":3},{"id":"350fc114-3308-4a56-87eb-6916d2c2e278","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据库配置","description":"docker_compose_database","prompt":"创建MySQL数据库服务的Docker Compose配置文档。深入分析docker-compose.yml中mysql服务的image版本选择、root密码、数据库名称、端口映射、数据卷持久化配置。说明数据库初始化脚本的执行机制,包括字符集和排序规则的设置。解释数据库与kami_backend应用服务之间的连接配置,以及如何通过环境变量传递数据库连接信息。提供数据库备份和恢复的Docker Compose集成方案,以及性能调优建议。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":1,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/config/config.yaml","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:01:54+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kDbH6uJdYYCT2pc08C2KEwMf5Wl8AN8aSXt7ibeyk8vJfbJakXE0fYaiRSmXHov8N6HxKWIlNdIrovG28EnpX4lr0UA6D4aN/Jr1Dw76RdHebznqhp3C8/j+LlS6Kd6rR9GwW/vWIiXiRsELkjk+KMU3pP9ndmdEuLGFQ4uAWPTqevVaLNpxh/cPBeylyu1hIyRorIghw3DHdQgQbx8D4bUmDCf2AZm+xRJxmakYugRwU1t9VT/TTelfjldfNZrjBMWWKaLWFBoAu1UP68mIeriPuYhVhUp7TbCwFH9dfq731iRttNcit6/wULnty89Wqv23LCCh1GxGYgvFscEAI/a5pQW+4FC8OrqRnF0t8aeh11XU4FyDHA4lavLB3g9FdMh3wSkPTIMs5QC6M9YNlOeROdjd4+yHrEWD4kGWMebzgOrb9CJfohrmExlyyxSmnM/6CXtjTFMZOXW6uQZ6E4ZjbWkMeSt9JXGg4DGAulvTRg2IXMjb0ajkRwH7fbt6YQ4P6kr3Xy2Suft9bjfNTEJu5bzOn8eMK4iFSzJ8j5DhciebwLZPNHwJs9DP/OEFq6vl9oWKWZjxP4qfAACJmVn7+CJmevXfcqc+A9D1GfOSNWASKo/EudAN2/T0FD3CzWHDq7qdkhjrS4m4SvzxPS4+VO1zBYO3gRH4lJez77fsMVpCt1CmlWlzv63AG6H1wsn+mrSZb3Yv/4OPHi4XNckxlkhlhqlmeJO1Vvy2EG2D0zs+/OWIt95lxuKksLver02gy6PAEFN3EK6LzE9qRcDjVsKmqtzEvC4ju6cnmqAA7DhP5+T6mhnh5R3zUuypkJ+sAcffjT+Ns5tkH662R8pXpyZmARzeDVsLkrtE+lRYtgxYF2m+vkRW2NNLesQXuGqKY+8v8N1+5LaxFvcwrAMTcby9wDcKaehfSrYCTgWhBymjwMrboclLoRFkQwYMOTxdH6hF73USe9gHMYlZjcxTczTkUeREQvL8EoYdzcOYTt50qUpwQwSkFBeMjs1DExIPTh3dPbh17g8fRGQ7gxewkAXgw0yhrisFa0KsCrpHswWBkuydMB0YUycjioFxUBvq0WQ8wlHkI/xYDSUUAsCWc6Ud7z2i0llFzpxl4o7G","layer_level":3},{"id":"684c6e3a-714a-4c56-ac79-76dd3bf8b711","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Otel Recovery Mechanism","description":"otel-recovery-mechanism","parent_id":"56f928f7-77bb-40cd-b1ba-80079defed47","order":1,"progress_status":"completed","gmt_create":"2025-11-18T17:20:52.893648+08:00","gmt_modified":"2025-11-18T17:22:20.656142+08:00","raw_data":"WikiEncrypted:kpl2Frorcc9QXQtOSOzWnVs7WAE3r4at1wn/LqYwnjPCnEXSgaQenOo3z2jcV7iLrvKmyGCg1XYawC7hc8GGANuoEkG1Ow/QrVqA+KOkOZCOXd7T/0ValOhDS/c4chT6XLa80juyJA4xQbhiB9QLmuLCwyh3wQojB+wHgpc0R48zVg7sKaFA95SV3UvdfU4W","layer_level":1},{"id":"a848c21a-fe0e-4e1a-b189-d3aa8b219443","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Jd Cookie Validation","description":"jd-cookie-validation","parent_id":"529d0827-5291-40f8-8e40-3b0ec55570bc","order":1,"progress_status":"completed","gmt_create":"2025-11-18T17:25:02.631623+08:00","gmt_modified":"2025-11-18T17:26:02.170973+08:00","raw_data":"WikiEncrypted:jJ3A1HAYaXic61c1+7F1NXGutK+G50spZzNeNtP6/hWiAAXCc7jA0i05HcpLYawndCMzMD5dpZO1UclYJU/k5Qb95gR+xUNrp4+LypsdOLVUkHyZm3KDPlevqFWV7HgpfeauptLwX0it4RjSavFblERc7VSFsu/ZKpiUR1UGN9r1rvRe//I3hJiba8nV101v","layer_level":1},{"id":"aaf3daf4-4a28-4e81-8d88-4453361c2ac6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户管理逻辑","description":"merchant-management-logic","prompt":"创建kami_backend商户管理业务逻辑的详细文档。详细说明商户配置管理、商户部署信息维护和商户样本管理的功能实现。阐述商户与卡密通道、支付方式的关联关系。解释商户配置的增删改查操作流程和权限控制机制。描述商户部署信息的同步策略和状态管理。提供商户管理API的使用示例和最佳实践。包括商户数据隔离策略和多租户支持的实现细节。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":2,"progress_status":"completed","dependent_files":"internal/logic/merchant/,internal/logic/merchant_deploy_info/,internal/service/merchant.go,internal/service/merchant_deploy_info.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:31:02+08:00","raw_data":"WikiEncrypted:3KjeyWIVLPDcIZ9hw3jQxyih1hcV0MJ4WqB9XePVqO5uSk87HoZVMGLCJS/ddafnUeIJQvZXh8CiqeZCsOzZ7WWApgQWliHRHf7qJtC8WdA8vY8+vPG1IchuNQxYCmY726D+QWa21h41Q3fVwQ/EbkZ5I5PeqL7fxALsHkjR7bBIGQOIdSoi28zn6pIjvYcJtnoUtCuvAIjXx4lggeR3EdyOcuTum8hNpHtQIHe94pnVGtGcsTmo4ctQw1pIrWvLoU7Mau/SNz9G1PPgih7WOyVW8Ikgmj0cg0hr8q+tzGSk1f0XuA90bYVJoHuVlzYOxgYv2gYUY3QapeKCICUn1agTLEmg7N5M7J5gxYS5Fcvn0PeeH4pP/EVszrTglRxS3bCNec9qgXJGdu2lNpJysa1pHLO02WqstgyamSPXp3McUvZ2iAukpl37D7J8xXX9ObEoHE6BqctgfhJilK5+D9CeM37NMY2xHIv1AvIz7eJgssb4j1tw46j2zytfPPuHjkbhVD9MAgReDPJi6nDlnYLy4TMisNA6AMWQvZ+QgSa8Vcs6rSg1wYsymZ3Jb+Sp0gRTQJ4w+LqN9lQSEZaZAfaN/UY0vagzo/nN9u8qsucFikMgtnrOn0chKR4cdJM5abvOonr7yFX9n2LVA+tLio3/LOOx+lbSMHV6s55bwhoqRLznUUg82dibsXpDMLfa9Z/VNObrrZDhQdrKtRBhhpSWhAiW+wgqMwVxIfoG663sQVvSSn7InNOHftnlVRJNL3PtprkW/ShZqbUoKbMa2CwBC6eYqRQ5GW/XRcObjsjdZ5iC+0/MsNFpt+WhMSWBxEiX+2WDT0VKjxoO4UxDct5AfSeG6orDnF5nYNe5AmUVRtwRzCSqriHvZI+6zcni/Zi9e4iZatOYfyn0dWqCNgh/tp1h1ijz4fjWm5JD0r2iDnLgsdK1vHpeCi8Vek/TmPythReG4WqRW3Hj0WxgJIBsDppKaoGu6DkbCLa20FyVOxMfxPi+X+bYZoHAuwWDw123uRUGPqUw2NsCDDuVLfnAyuaO/angWaDh+r+Boi1QdjLgELbognD8lGncTpHASDOQL0RrGx7E3zuXU05pvtTv/pJXtxz/S5StHSs8DCw=","layer_level":1},{"id":"8d18de48-44df-4825-825a-d6d8797a330b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"卡密数据模型","description":"card-data-model","prompt":"创建kami_backend卡密数据模型的全面文档。详细说明v_1_card_apple_recharge_info等卡密相关实体的所有字段定义、数据类型和业务含义,包括卡号、密码、面值、状态等关键属性。解释主键id、唯一索引card_no的定义,以及与订单、账户等实体的外键关系。阐述卡密数据的验证规则和业务规则,如卡密格式校验、状态流转规则等。提供卡密数据表的模式图和示例数据。记录卡密数据的访问模式、缓存策略和性能考虑因素(如高频查询优化)。说明卡密数据生命周期、从生成到核销的完整流程、保留策略和归档规则。详细描述GoFrame ORM框架如何将卡密数据模型映射到Go结构体,以及DAO层如何实现卡密数据的批量操作和状态更新。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":2,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_card_apple_recharge_info.go,internal/model/do/v_1_card_apple_recharge_info.go,internal/dao/v_1_card_apple_recharge_info.go,internal/model/card_apple_order.go,internal/model/entity/v_1_card_redeem_order_info.go,internal/model/entity/v_1_card_redeem_account_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:31:25+08:00","raw_data":"WikiEncrypted:UimKryUcsn+gf9HzsspIt0TIkSnTFPxTB2lIcaUYUvTTahsE+f36dmyiYIpjkYfey8DDMQ+BmZ0SzhbP+eCmQhymH25gVp+YgCt1JureApmE5TkiTk2RbLINgqw81oYuaqjVHxuOFT/LJWr7ImO//6hBzRf6kT5rwrtfnbMhZpcgnzdnhvYrshMgYQLG7GmInjya61EcyoSK2g8xCVgq/es4rCHLSk26D0FRMNCM/aTu6Q3HkZhiSsFiNSpsDO93NxTXrDwiqxYZzO8fmCK2WscZ5yz+LCT63AalI2AORs17e5T1px/vEgCNthvL2qcPurZA6nR//CvFRQKkqrDs6Ny8uhNezNQ2muQ366rNdjUkb6Mck+pqB1BihHrYaLbdiNCSdtvmlkQ4o7Jc2YtEQeQp2SB0JqCpI0BapgVIrbHa/ap3At+XPgvjOrM0DkjaBYY1BbaZm/Yo2xaVSipEvZwsJ6Nu1gLeZ/94zGFYd9myhj7tfTOhyDumOITEIVuhb4x4EgjjZNwjrodAm+zNVjYMeJsZl3yDiAwhcqIaqSg0bOBUAb8EZsvjpy0LlWs3lLma6BG7nJl9Ua9mLk89NF4sMmVMwbH2tMv0d2vIYNMdFjiFO1lsXgCM+tDKPwKi27KIN51Yogw1HV+R2LF4uKhdROhEtgQuo0nk7oRAFQ/ebNcn9qFxFbKcmWvj5mPu1yScF0VycTjOs96BwIX5Fb5uEkg9bINW5wxy+Z4yti7erx7Z+GKy5BsrohlZVVudfWC+/EMAGFvoup0d4tXEIA+NliyxBBXa3wLVPX03VyF6ocX3U2xm6R61Jp1oRHUL1QxDFlFyCfDIGr6dQAynjLEmAQfOMqjMj5FZFK99lem8ReSO00U+Jo7neI4Ick0TPlzfxVyVe7Jf9C0GuMlv1tFTa1iygAfB7k0rMYMTqw9ocWd8ZHy1j4CS5wnCJeBfLF4ikXQUG7NY+PbAa/iljAsABhdK9C0DOu7VLa7TC0oAFQBVATzj+4t6DePtbstSXbWzULRqoNA7xplI8vGKRlpySO90g6eEOhvCL03mZCkgEtljL8+NaqrC1zHqsX5RGUr7ecb6V6aTT5wMW5IwgyFlVRgQA66J3hyiayQIUE4Swenep9r7rTady0HC8KKCT8wqYfp3L8WW0Uy8adLSVwKmcQTN98eGDNFyOdDhlPTMslwOldgJwy5XUPKPfzQQaf78PG4780necxhMz/RGNnE2VPyEFdT7FSZOesi+6wjJ0MufPgY2OAVOsadys1egKHEh7N10G37T+ZlBGQSZGclJpwfJjUeTLDwYUrNTPMUKeWYwKF/smI+L4/qIVAUoxOAicOh9NZ04H8RC6zUqnnZQF5sG+LPyx6JwBcpmp0wSmt9umA/Jo3bHMUQkFkjvcIOD2qAkf5+xSUY7rsIY2K4qDZyGPKd0iDHaUGN2XEOkz+gfUmIccB5pQ8y7GEPEoTxl123ZIYHUCPTNnv9IZJ06iJ0UTnw9eWBcuhSS0QPiR5XNrDWa8R7YdXOwSQ2put9iSem2kYb/LJhH1WmdyTUgwzr3A59bH3Yd9j8l3EbofRK/20pz3s8ULT3GxL/JdC0+xhY61uZLj0oas8y1IPHuCbJV6Prqz5MZuDXVYwcD18Duh1HM4sc33SddGmKVEGehJrh+T8l6XuRocVYVr9blG/xIvssdZrx2z0SBclryXwYwIK6NR4X6TAuXiKsldFwNTx91+s7yPlV17QOkWkBkmOrXrORn8puHWpLHabtqPY9IeRaxx05d6b2H6L9WbszqYQqWkFe/6FTXqIJ1o2BNzeNvrmGQA8hej3Nc5OcqsJWsSw+Pj2LOBNsd/1zxr/AipDuF14x05COYbFhqrlO4gth0CYzK+eU4Q/18Lnk=","layer_level":1},{"id":"079920b2-aa64-48aa-a92d-8decf24623b1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单管理API","description":"api-order","prompt":"创建订单管理API的详细文档,涵盖订单创建、查询、历史记录和汇总统计等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单表单管理、订单日志、订单汇总等接口,提供实际使用示例、错误处理策略和安全考虑。解释订单状态机的实现细节,包括订单生命周期、状态转换规则和异常处理流程。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":2,"progress_status":"completed","dependent_files":"api/order/,internal/controller/order/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-11T17:27:33+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI0JvoWx6zPUhTb4HRqSX2wblxy5DfJxLRPGgKRoPkdsCB6p2I5EUE7AQk+39L8I0VQviyQZaImfNEZOtggFwNploSYaTE7l4RjjXzGKiRU8Gj1Mq1SO9gaAVmB4P81rh5y5BtUVjn4cO7JrpGMdRZa8HyHzfD6e8LAA7s81daxDM8gFr/3d4RXXGj+Iiu7EZEJ+rYllow/hMLyPoAwsdrEhhOfP7khzPU1XtnlyynSx/ZQFaYJL+7OCAyGbz+VVHJIh8O2rEcBBJouwdhAb4O5VROn1tu6fgGN7gSqMA4AJ2g6yoqRraOTtGBR19Vmj4uqPhkmqlOy7GriXeI+V30vEPN7H65tR6D2MK6kdTLXiQHx+yLB5YmRpdyKNvSbBoZ0QlfS8KNfwA4xRuEUQ+QmM5aNlReXy1gl3jcyzEQe5/nVZoBuVKrf0Tuno5tcJE4PzNO7EaESiIAd+xHFBi9l/v3zYIoJuzwSaslB3h2BbTY6pLKN4AqTRKAq7HcMHvvdqhBOivNvSdoQnVmvoaRB8Ocv6zt3kjOws92P3iut51az5bZkHZ+pz2Ppr5whoAMP4w4hou1XeipwKey/AxMqw8iZc8ZTCsDFwfkiDobOn6n5BnncbIVfVmgb7Rii9oucNmFYag1K2veaUCqIM5MkPKOQkx3QpKBh/BIaRedPnJMMBcAhmekD4BNjHHLA+0RNpn1j1MGHmRjs9rageXcMrqcMLlY7+inQw1pZO4AC/QVnnxMEXpkwObn3fBPJtE6oNhFJP6MEJGW9BF1mdPmYxl+bqdVsBSuNjadkPokD4Zc8c/HH+cAPqLGdy8Sd2o3+Zz1Sqgc6CVEbE8izb4VlT5yrpnfLEmLTDtMdMdW9YTXAk4rBTdK+/OaNCwlbHqW8ug9CdXbBbJWnDjNRFPFvpk8+P3PbddLua7aWmwSy8vAmyL1C+Xe4NTR9Dk5iDEFEb7LF+TcjuhjT7kalnpzzzmKffJeNbX/H1Bn658W9P8wMDyKzxbFW0TLsP99Bd/vdfOxj3Q2gXLRQo3uTwzZlzrVAC5xicKaq17c1hhvt+KwIMQuY5RQnqaJmDoliEXtS/RcZdZTmIY36OuL7pjBpc=","layer_level":1},{"id":"8b232595-64ae-41b7-95c2-1ae6428857e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据安全","description":"data_security","prompt":"创建kami_backend数据安全机制的详细文档。深入解释数据加密和哈希处理的实现,包括AES ECB模式加密和MD5哈希算法的应用场景。描述敏感数据(如用户密码)的存储策略和保护机制。分析加密模块的API接口、使用方法和安全限制。说明数据完整性验证的实现方式和防篡改措施。提供加密配置的最佳实践,包括密钥管理、算法选择和性能考量。为开发者提供数据安全编码指南和潜在风险的防范措施。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":2,"progress_status":"completed","dependent_files":"utility/verify/aes_ecb.go,utility/verify/md5.go,internal/model/do/v_1_sys_user.go,internal/dao/v_1_sys_user.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-11T17:28:55+08:00","raw_data":"WikiEncrypted:Zb5TNaG1u/mRrgPr+sDyCughdwXy7VcKngnPrhXBk9mq+8vTqaApkxGNWz8AzfwPDXM3ewLU9f0u8hwciM00IIlZnIcBll6gl8LBLw7BrvO7VDkNrXtSqyXynWajifUYWfxTGnS36tIu4vil/lsQgR4NTt2CZbcOOlZNzJklHW9HzG00HlUwW61cPpRnyoG5q46hWubwOdhCsZT11eNLdbtwMzACYDb6Oym3NHyJxO5ic/6p2oxj45ZAFe0BORfKTTnDtzmLSLVFZ3m+sva00QGegW0HNuZAOb2NaNAq4RHjQczuV39bZ/WP71GHIiBwRt4t05OOjMfAmYX5/Lq55FG8nurl+AponX+vuO/tRQHuiftCVW1pslI7cRIAGaFhm4lzAdyBPQKmgPXsUQ1lZXO6cc4Dvfgmkmm0Yfw8t3Bm+7KVug6gjArizaio4ZU5Wp8UWc+Kl1IfExy3QIjPxr24KezusWbuRxdbSnfigcdz1mksH46rUG/vm2/+9/ho3f+JjrvFocW3CMcH3HUyGfRpdvQWJdnoXWWiqzIyis8pK28c8JR6hhZni+kh8KWr2xomIRXsfNWjSHku+FcT7LOZtr9uv984hom8xnOlkOKBgaifiHwYiW4PeCRv1/UTNggx0lDH/I2uBABfYGhY9M02KDvJQ5vTKUuSs9U2R0tcp59s5BLL2PwVYbub5sYAZyBMjHcXTdbgrA5Al9qKpz8KIBmaFRTdWAUZq0La3fXsrwgVfcdZG9VFaiBF7CNGigiuT5nFFr7b3KDEr/PecHM7bN3QZpZz4WaHeuz5kddJNmvn7TrAZgP16Qgz9Wls50CTic3p5I5NFHIfLMGuxnyCQNh7/CXGujC/fNWvo6+CB8MUn5UXbd0KGMPLOF5Jfs+D5E+PNQO6LhHqtBNdQSX9Cw4HowKiws4vxN4fMwE5E8Ii1qZH/Vn58z7OKshSbnSMGhmbbX1NTUnnS234uZqi8rZ1kzzoSf4XSRSsxQpwhNN3suvIP6TzSS7fzkBUZKJktVDjqqu5kMBo8LOcNp0ecHrco7IlRgj4cz+tlbBp24/gP0NBl/cqVY1oIAw9LtlWOpi1P59XVnrCZjJAqetTfEKw303o+T/ceC3YniYtqloJFHJOswLmwkemAdMk","layer_level":1},{"id":"f5f182bf-a48c-41f1-86f7-12c882b3775a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限系统集成","description":"permission-integration","prompt":"创建kami_backend权限系统集成的详细文档。重点说明基于Casbin的RBAC(基于角色的访问控制)模型的实现和配置。详细解释rbac_model.conf文件的结构和语法规则,包括[request_definition]、[policy_definition]、[role_definition]、[policy_effect]和[matchers]各部分的作用。提供实际示例,展示如何定义用户、角色、权限规则和资源访问策略。文档应包含权限验证的实现机制,如何在API请求中进行权限检查,以及动态更新权限策略的方法。解释权限系统的技术决策,如为何选择Casbin而非其他权限框架、性能优化策略和安全性考虑。提供权限配置常见问题的故障排除指南,如权限不生效、角色继承错误、策略冲突等问题的解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":2,"progress_status":"completed","dependent_files":"resource/casbin/rbac_model.conf,internal/controller/sys_auth_rule.go,internal/logic/sys_casbin/sysCasbin.go,internal/model/sys_auth_rule.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:32:32+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoOi+YxZ4wb4fbUs7AyKQkZTfv8mRogDaYSFnyXY1kIyaElUfcfdUV9J0wBG/P2Ehs2OyadwRiht4khd2EsVa63C+MnyAVI7YW8jvLO3v3yE+fhVnyBpR/iyNON5eMBSephXFulXENFk0jgIADmhaOBPZXWUgx1LwKHP+payrBVQL/u4CBFeLuzPWSLwZ99ChGf1b26H4avhLUUrXklEWuQ/I2MlcxALqQ91VYa6i9PgzA5A3yllSOB33AlMEKosbjHeb8t+mG88biL6xtusYRFz8mc5QUUUEVyhQxwXC6Ov+EWJPswoPe/iMp7ktb35Ao8TLjxFECClVRorfUdJKEjsSdmeM5Xz67w75bH3C3vjmEZMjy5yw0iFMm0IuU3CTKUBFsK8BM2CpFSHlP1w3EeJUQghY0ta0cfQNKZmcmR2Uj8+P0TAsPwPs7IXfQOMOXsyc0wtZCTxafeOzFt1DPAud7N2bMpcOMhuG470bKCRlPP9YeA/FYdynNY3VZTp57hwKVE8PIrL0W0x/uSrF3o2FHDAyygDIVoupDbwpwZlFV+niyGek3RIsP9zJ1wDhxjS1fmBugWR5hCi43OrrSzhaTBHOadF/oIcf9W6aqfEx0obSFNLQ06bc5FGQO7F218i211bWCsi+WAl8wSxxc63RT3NmBTYT/DFpBVuhkHKB3OTf/bxn65be8H+uLtdOXZNMg1nsFVhwqBH/g6vYy/gCOx7D2bDciAe+xDImRkryiSWKnnMzKOsTNUL04LYwrYXSxSwVUeZdI9dHH9wNFZD7o/Is1PovEvaqpGaI0xfloNr7lhJePlu9msKkv6KJiw0tWIOWg/2LojMv2lXx6wWsDH+0bLFmHV23uw8OxnawdO1lPX6vsM5FIbqUd8tjtowZOjYi37Ol14RMicd1oxm8I0CNAae0Ipg7vtEK4D+hvMoVIVG5oTjS6GCxBomrPUa8YhNrc2FqFd/65QbxOKgYMEtpawK/rrJSRL9adxUHecNKWUKeiAELdITDeCvgZqfybBlLmdkv/m3hOEn/FLhJiZfABYaGKBYk2QdoGyPuN2WvUyv0NA7eYCjrjbw8RCdRyohv7lltFfQFe6SZFgiKLRAMD1i7RAsxQXqLpfrHjB3O3kbOEkS8O4y9ZqmUoDv7CRCiYwhZ70PdX0vUJDpmEpB4aQpevmh5qdm1Gqb2ybxvpCPuepoQnEilBjtLk3TV39FTFXVDsWx74f4SKvJ5nT0AxuOgyoS25l5HYPK27KyUrIv+xPp8ok7VwIcfmcNOPhrIJ1G28YycZgC4ybvDYW+Biw5qw20wRekJt/7fB0k+ic1k0kyaoAXk/nEUkcSoPCwzTh74LG63uAOEH3oe5n6wl7gSJznpIA6R/wmJJQAYxfrD/nCG3vEuHWvkspZzZdd6fTjp74FMStyZWdn5LrgN+UrrgaGiP4QTJjRwXfITXpEofiNhJBEHOcLoF1GfWSz6Ri4azdyiw8pZRhddUfTXWIctgjHwWiOEUdEDkWUBMOv9a/fBAWjO81e+51yRKQ1w5mpiZmsRVgZz2J2O9V22PtYzw8uughfSOTzm","layer_level":1},{"id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"自动化部署","description":"automation","prompt":"创建kami_backend自动化部署的详细文档。全面解析Makefile中的各个目标(target),包括build、run、deploy等命令的实现逻辑和使用方法。分析install-one.sh和install-simple.sh等自动化安装脚本的工作流程和参数配置。解释wait-for-it.sh脚本在服务依赖等待中的作用机制。提供基于这些自动化工具的CI/CD集成方案。包含自定义自动化脚本的开发指南和最佳实践。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":2,"progress_status":"completed","dependent_files":"Makefile,manifest/docker/install-one.sh,manifest/docker/install-simple.sh,manifest/docker/wait-for-it.sh","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:32:49+08:00","raw_data":"WikiEncrypted:ZCORAne7l5wn5JMRd1ey/o7bkWmPStXjff5imJQAXqphxnBeBXJmPZwisJmizM8eIz7HNdoMBW49/rBkf4pKo2wfKYjANvYUoy1RHJoMcvkl+T7a9UY2qj91JzD+P6W/sfk59RExJfaIeqfZgZ+rQMaLxSQtUuIhyt4mzgGsQPVmLF4IdAyCS/kkIRC78yEzoqoLgwDjrOVxaFsGFSf7guGOTNbeW5qj3HRXzfsOrMBXdHOWUcUTrzZIRl++C3/w0f90Zohr5H3LUM3FkB6I1o36YQji3P6+2m0Y5QYDHgr03cgDVX80/bDeIc+fOZbtm7bWqYWwx5pWiteMMRJS3nQ76LLrfGALYkb1EN1a4sdf6CUQm2zUztLdc85KE6aIdVaq8EbJKv/QBpMkoYe1JR4uu1eA64eotBXkHU4VYwx0SXapkbV8jtT3HkMgMIBXEAT6arg1WSQtm5yHtud9Cs6JE92XEUSUsoLc008qqHqjMXXiClyFKZ5osDVgZw1/8+yK/1z2t7P+lDkkFV3hBFiUhEKvArFdRSqb7/w9pEM6ukPkJZrHTibtKpPd+CSJTzMX00Eh6xjcx4IW0zwNi1M+k09Q2cuwejMkxbMgrBhBMYxxRpSIipS/RfkMVO+6EmpZiYf2i0nDGahSxa+Defz2Xne9m8Ir2tHn5IFauNwMbCjxCoC8PF2pA8yaT74wSHjUpnWPmfm8rxH26mqJoPJyabanEvaSTF6cvil/bczeSjH1c5Jf8K2sPWSbFzE0vwdsPB16RmufM24QhLouxabstQEFXIue4VE4KLXD6V5+ygIL+g06agNyVu9KE/gBs1ynlyxZjKdS0rnNNSF00GwDi8BJjAnNabziMhbftQLSGwEgxkeXLJm/JkjLhVtfSKMaCgryekc9mhDaBaiqRRGgWlsbBmBTldJc3zN0eIzM8jVM4aXYpod/X2oguQnp8nynv37iVKuNG7KgEPWDSAM9Dy3Z9bEHFf0BPHdIbCGl7H6D/i76r097eaXCZFmJah1GoZ/NTkW+WZqQlV5PX1Ot7FhP7m0ag5WO5+SqeHc=","layer_level":1},{"id":"8137c301-f13b-4054-992f-c556767d7c45","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密管理逻辑","description":"tmall-card-logic","prompt":"创建天猫卡密管理业务逻辑的详细文档。深入阐述天猫卡密账户的创建、更新、删除和状态管理流程,包括账户授权、工作空间管理、店铺订单管理。详细说明天猫卡密订单逻辑,涵盖订单提交、AGISO回调处理、订单状态同步、日常汇总等核心功能。解释天猫卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户授权、订单处理的实现细节。记录天猫卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_account/,internal/logic/card_t_mall_order/,internal/service/card_t_mall_account.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:49:06+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRYQ6tdackApaOqk+2UiPey5Uympesdb3pMU/7s+Qp6tO6oPzMXaUwJg4minT6Xnk6sePRl2JWkJUs+0eVIxY0BG9pcqjbf7cWuLX8od0+v34lp0Zxn9XDzSh8RTI15SkYOSghIua2OYZxaRm/Mu4hX5l6kQTTVTfSSKyPKClM4KvavuPVwUtPmj3jmzkp6+OxGfvyOHHxi45tlQ7sJSA+9hPXVBJv0Bs5vgyXxnNgX79q6xkLTpWKwHh3G9HbmAbT+aM/YMoDKTlpBQatIoveO7Fj4b5lrfF4mq//5hqz7inZBGo9qXDxTG+bHBvV8Gy2QtMZlsNHM+P93RPmaRnLfbs1sgKR/Owrqd3c5hAfU3Gdn/V6HhVnIBe+PUsSaBZO3dOQyqHd0vGnaweozy2yNfkf+KTky4lg0pCrlrz2Dxn+qqOiiLRPGGSHcfUtctCi1L3cd9njdgA45LEi25H+KhWw9n8da4OvHAQxlH5HQKjIUnRZshILDmupCmj4ugHgAqew99Lswzv5acdEtL73iUh7AUvGNXLMbpj5SCo8meYSA9PblqFZ6h1nexkoA4LLO5BlZpHP8aKjFkIa50INM7W7ULapiqxAsnV/qkR29Z5Nuc/zpa5WAaDESeKwbZzWoPc3wJ5wPlFwvjfSehVeLAMwxVGy9W6uMXoL73LOUb3kYjjrycjhDxwDA70gdBAZ3qJvU955H6z9f0/QWRrs7ihikQdHyQNj6ForyX7LpUYS7yieOoPNSNtECIWQZFyeLEQ6ZgP05r1cO9gPDVxR+LyuNGoCdtBTlo/MQScFbyuCjrRoDENX2MXyU5vC/+VhOM1PE5EJMjt75Sd4AEqDgM9w092/WXwdzvR01LAHBXQvPqQrK/E2cj6fXzxOATYgKkQvtYGT4WXSVPfGE37oaMmCQpARSRiPViVe308ZV9avQPCm4WX+RmrXITc9ABnvpRAXtlCyHKEvVENtFfEdJl7we04YVsFP2xnZPc0ewH5p5qkB0247fnAXiYzp3Uakf5FfnJYrJ0192eDLmFxY7WxmYlw3s3X3ZcRFSN7NQOKLEf5cTZpBGiZ74vcH/IAJxjsbqiYQ/Bgrflft4ARYAFHJxbe1XOiGSbManH1eo3ti1puLFxSJ+JtNQEgyR+uwTdaEplerXLbkft/HM6BbUCi/D5PQjeuF8V+PjvoyM1WmRpHAPwArIQl7v0r4P+DI1ncJAo55u7CpPXQgG6AprMnaT8eF18vn9QqQpM4AeUEZAMA3iFMnvnehJD1EvkSdEGUTtiiRIzyM43FK65ZZ2R6Q2hDVoi9Awv79id1D9RtBYT/gthzgG8N89GhEVJif8iojiJclglG7j7zh3AxyOr+uBr+itr5ferH2t9LJgzDq8XfBkqScWuzotO2AfXPAA6aXLT1n2qvWNrgQEAbTokiHNZ3FV2UiG0aclDHvK3RA3uTnWnM+Cn/z6kngnpasYO/Be3ah+v1QIV/ucnyEuzCe/1jnHjL9+fOFe59HMdN","layer_level":2},{"id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID限制机制","description":"device-id-restriction","prompt":"创建kami_backend设备ID限制机制的详细文档。深入阐述基于设备标识的访问控制实现原理,包括设备ID记录的采集、存储和匹配机制。详细说明设备限制规则的配置方法、查询接口和生效流程。解释设备ID的生成策略、隐私保护措施以及如何防止设备伪装。提供设备ID限制的最佳实践和典型应用场景,如防止多开、设备级访问控制等。包含设备ID限制与用户认证系统的集成方式。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","order":2,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/controller/restriction/restriction_v1_user_info_collection.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:48:47+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvN6YBAqoBx6vmhNXnYNUbJ7vAEccQfsRXUvrcsUd5Ica1hLwUQWXp/Pckc1X4JzDNoA66D2onB6YIWzByv/B4nSRfbjaSB7sM5WkmHD/fJHdteFTnfZ1b2QAGESqdRvnKyy28PscM42NmgyL9aY8cmYTSe4nohnfq0HoW7tpvppy3BF4ebSEgq5qwXh3mJGqFINPrVHftbrjrPgAd0+c2XTCEyqkld8j5v+0XPQ0dOQ4Mb7yJQvZEAY52bW8BuCR/kWAdOxtP1hJrMmyy2WU97hyLm3Irg5YI85Qy/lDkTxotVPWosAoA9yaV8tIyv8EaMg335NRDnF2rtrX5P446NAbwzZCcmjCJ/t1UYVtCQDt+CrDK105I29wT9bhylEcqnM0u+H+STpsOG6tTb09D+JiGAlDrhGWXzJiPr5ZE8qt0i5NiuCynzQW5r9lC2BGBCQ8mwKUsVXSA4k5B0fVgJtsxAJJ3ocg30aelFEq1ZlXlC7E5tufuh0PNI0CfXakfDay8V6UAGZwZGyKo8Bz8p+zP0qoUCIr120fndCuiZpmbCJagp1x1Pv02SPxoPv8XC3F36isbCU03ygDPhF52wuPtfA8n9l7jvTOpLF2giltwoZLWYD1MPEKjXIZpaAXtrDMxLCr20ycqoM9jG5agOvfVU5lgaPDXpm7p3+xt4XfPj48zWHh2pn4IyeYeYN5HcDzyjOBhf7mJDG+Mn4fh5w2r8fwvtZfEzKA2PXfAIRFmD1e38y1ArMbS5+bmG0cuh5xaFsogjA6T8HLopwiAqfDct8ZyBw/lOUacbWqasTEWh4ACx85OfTJD1hBDJkfN/14QrqHojfgE1azQMRgUnNX3DM8ww2IMfRybwOrwq6+y4wvgQNmKwq8aSsNHiUePPtyTSS/jArDa4aGK+AiOpNYmGSHmH4C+95/Tn4Rrwjl6xt7o69UNsNEUlQBD6ESNR5ckzlMhfbKzf+GNWd8R6PmCfy5btoM93AAP/c+l1QJR3Lda5DNt8PqRC8Z//dIYxhdR7BxxXnXVWnKPJ4nqJoOn1D5j0O6c2PBae44z3wu1c3UhOTGiAatqctKYk1ivn5TU0tOWY6i4YIbCN9xe/klx+RTqPdqjCS2ZFepErm5ECBfxEP4jMo2I+5veVsOVQCJzd7OkOehSPJ7clSquxotKDzc+PDyIqnIM02mLj9J93ZjgPjzTffw6zaHsCSVbVEaqB30+YiJ9Huj23cERqg=","layer_level":2},{"id":"15255e1e-df14-473a-8e50-b20da5e10eec","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫订单处理","description":"tmall-order-processing","prompt":"创建天猫卡密订单处理的详细文档。深入解析天猫游戏卡密订单的创建、店铺订单处理、工作区管理、回调处理和状态变更流程。详细说明订单与天猫店铺的关联机制、订单同步逻辑以及Agiso回调处理。阐述订单状态机的转换规则和订单处理中的事务管理策略。解释订单工作区的概念和使用场景。提供订单处理性能优化建议和常见问题解决方案,包括订单同步延迟、回调验证失败等场景。","parent_id":"5ffd09f4-939b-4b8b-a254-494937471526","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/callback.go,internal/logic/card_t_mall_order/order.go,internal/logic/card_t_mall_order/shop.go,internal/logic/card_t_mall_order/workspace.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go","gmt_create":"2025-10-08T18:18:55+08:00","gmt_modified":"2025-10-08T18:49:02+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRa3WSApkXAR5Fc40tYehasW3oRRWjQgzTzde7LY3UZtxxDt9YCxNFsXtULH5ojzuVd9vnuTQsUsGlwPeby53UoJRaMP+2TVlBnpawHqqLyQZmsIaCEBa0KDS6Vqvn+W5/fkhVXVX9ZWv35eZ2nDZVxRX9N06OvWXNmnlgFwDtZrtnykRQYxEsdH87S0WS6nkRGy88H5gvafKUFjtLpWMOF6taMNbNenHgJfYss3RB7DnTw5MIT6wHuS+ZaU4JjMkQrG+5wFdEAdZUD1PSue0jzfaEh15NxpLX1QVkytkWFWRjQT1rS2FovSJu01DE0SX11tKcURB5NvNm4ZGvmOg7fehl8mrIhDcaoIXabkCxF4QnAodr8aJRQgsU3+D0pGKgDs2bNBK0cfAIZkrodMbBqU6PFOGHE50ld4+ikmQr5KmGbQHsuKVUOtfUwt9mk8rJB7IhJyZYhAtWHZ8xk3SRyTzG1S1h8bNcK8J3Utm1HQthqzBOvkipvWIkP4YeVA708Di7n0XMyI7DG6OXY1KkL//Af6gFaLG4/m57mx9WpCFPnRMEKsYbLQ3VeI0H+Elm6Pc4XG58wC+p+Vl3AwSZNm9XmPvgXDd9/I6nt97XKMk4QrQrguiSDFxawF1kWGkf+9Fq110k31gZVuJuJH1LBg3qac1ymngVP1P3Jb92QJz2KbUMgJFFn4CetxV8jxUPO5HHW3G+VhTynwYKx4otPsZQMUlQ6ZengsKFQp0zjnBWF6/+P/WtjkyD655aF4YYaKYBKZQayVIzFTsElEckA9VMM4P0g1dJaMUNfTzM8uw9h+ovl7gYigVnxgmEsrppjOG0GOuWraQJ89qKWGj4jWP7th5aHRtjLYU/lwo2yeGpIlhtQLy4Az7RisMFacI08umgWXM/NSZYjkd9kbUtA43t/ZiUHSUgCIPQ7x2w5ECTQHShtOWKhjBtifMTmudS1EvQHRfw/dHf+892fVxOWAXMlZnneciAcEEEWVmHC/0j96byVrqztM/MjygFKB8+ziEAMTgCGG7GH3GyoLYY0qeB0Q61VzaRPJbzbFPP0wemK3vPaiISKryQx6THbGQ+mFRq/yuUZ6ikHx80C5rj75zXIUOVDjzljDedQmmMucRlgPFyFIfyqFfLk2eD+Leo4z0T7bwSAWOE6jMe5XxvbFFpjQL1MXj4G2nA8WOBMNsjkXE6ExDG62CSDBmNTkPlLSUKYhIbDAl5+Kp42/e5auXARWcD1XZELs43fbGxn2FREszMT9n+Cx9UxEAiP5FdJ+P2Amoaa055YfhtdY7oTThxWYbqE4e1zwx/WQeSXEiNyUS+giHH4RCxyNGDb8BMRvEmjCTBJCBYsZ17AcitHKWsDmiB2ryVyOXYQBw0zda8RiMtG1c9VPyOHjJWS4CPUSSoETLnSzrMmeeB4o0q00xAxuwr2NtlrjOuoYTYhTvLTHdXahJS1yWobZNrOzFC+PoibaT0m55GndT/ry9xDczzuws8NwZZywyAGrouKanzoFiGbLPdBXSt8KGcS+/X10E+U981sSx867gYDQ+foo=","layer_level":2},{"id":"ed66dce5-4de8-4993-bc89-a466abb74f43","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"租户管理API","description":"api-auth-tenant","prompt":"创建租户管理API的详细文档,涵盖租户的增删改查操作。详细说明创建租户、更新租户、删除租户和获取租户列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括租户配置、租户状态管理和租户权限设置。解释租户隔离机制在多租户架构中的实现方式,以及如何通过租户管理实现不同客户或组织的资源隔离。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","order":2,"progress_status":"completed","dependent_files":"api/authority/v1/tenant.go,internal/controller/authority/authority_v1_tenant_create.go,internal/controller/authority/authority_v1_tenant_update.go,internal/controller/authority/authority_v1_tenant_delete.go,internal/controller/authority/authority_v1_tenant_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:49:45+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L68aHWPaH9F5LGpC42+E2cka9EswWMfNQznGCsOCwDohduHxVlwwNiPebu27Gv+tzlD2DJk2+e2CXbX4dfJxKGN6iUbX3rXiwgFJEI3tC+P9BDa6tkVW6SDvFBRodPlpM5SfO9sa2tIGmYdoiIQaCCSyrzuMZ3cVpNcUA30mpGuwh0hcBAyezdqNf+XF6K5W2OBNNssVE0ZWipueAut2AP3gQ5pargmXYfZIrw7bxHPayUU/63u9oOqj164zIv9snb3CtKhR+5XTNVjKB3XKD3sYGBWt0Fsf/RNB0iKQHCOuMcvKFNJ8GMg1QXel8Weay2egAt0rFmmvy3H5Xh4AwjRI8Qpbj/voCcmRv+oQiMvc7z9aUOWlU0TEQooi6X7kClFfXBaSD8/rzGXK7nDDrt244bvSAV2nA3DMYPTsSpFk3VFK4KmyQBwrsAkK0rv14GdrZf0wbcT/4gpqfXdUI/1p2BP+qG4Ozb981mOeaRNKSglZAqVqtHjrwvbUEgNRm2OkKKyjzzi1Zy3YacNPZp7w2FDDvGtnMzGaDCVep6iGIIzGbvuJl4hDkp26j2XQgzDbGnoywuxfaKD5CMEx2jRS94b5pT0RJXPBKbKcfRJR23SWk95iuXVyL0Aa0rTjWOA2pqtWbna/sep84jJcYr+0HUsLErLraLR6XakY07pPga+qdyVRckjsyT20Bp7lFmDQ9AF2ptKF3ZIj6powFEPpm2RDmh2PRoUtOG2katpZspF7kypixlrNTRVu+xUQ8KbaI094k0j9A47l2ejku9ih7Tr/F71Ro2HvQGYR3WWE+Q4jjoin2j02mkT4ekHmA8iQ4JTt4G2ovfm6FnJiVQ3xpdayjZm74nE/7Vp36luCg0ufDKLWrfzn16uX8iNbTDcUYbLSxKcPIYCZnq8/xV3msRVkPB8Wx98Ex/uOBqkcWSLYUGN8h2FFXzZrID0OpYrEXXw4s2ctIKTPG1W8O+t4k6WmZNz8/OoPRIRt08L3+XJICLTyu8/yYO37lMxNdK+TPNzHxfxk8D/8DBGaK6g4wKAVaujejzovOMx8N+pLQDh/i/AAgjuZUejUE923/FR6sQAHBxnXdRhE/ckdUPbFc5zFKSy3Wuf2nepPcCkDNYrW7pH8x/wKhaN1hbOI6j4A8tA3ByFN0/KCrCmSkcb0QRqouTNt9VYuEGpia3uAx9l7cZEZKo4nCUTVidhSE8o01GX63uFoWubwxz8vrIeDSDuif29gImVfOxDXRaMCmeUP7Ex2ZjvU/LX+ocYkP88H39YM5YlXhIeroyuo/HE5XUT9DpKEMeRXK7l6dTiYeA+9oQ/KDnGslDc3C0f+ujJFOmr5HCWofJ5haZzePeM6oBR9vh9LcSlHI1Zjl79pkvhYq1a4ZoPMuhxAg1Bvb857PlDJLE6F0D3lp9LdjIK4=","layer_level":2},{"id":"1b7f1c36-8377-4ab0-91c2-52017bc8c76d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单汇总统计","description":"api-order-summary","prompt":"创建订单汇总统计API的详细文档,涵盖订单汇总数据的查询功能。详细说明GET /api/v1/order/summary/get/list和GET /api/v1/order/summary/daily/get/list端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单汇总的数据结构、统计维度(如按日、按状态等)、查询条件和返回格式。提供实际使用示例,展示如何通过API获取订单的总体统计信息和每日统计趋势,用于业务分析和报表生成。解释汇总数据的计算逻辑、更新频率和数据一致性保证机制。提供性能优化建议,如合理使用缓存、避免高频查询等。同时说明该接口在监控系统健康状况和业务运营情况中的重要作用。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","order":2,"progress_status":"completed","dependent_files":"api/order/v1/order_summary.go,internal/controller/order/order_v1_order_summary_get_list.go,internal/controller/order/order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:51:11+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDG2/5vEWeLFokdGXmwHMfnNK62dfNT/UxNqYsUKg4IQXr9Ziy+qK6wcqxCPYSkXSBZ0Cu4Zbo3RmnZoSYolWzgof99Xi3JgdE7ix8h4MkQ781jRhI+eruRoMp257F/SEC7HsTSYYhA7lKgnr48YMoeXisC8c5v16L12us0oUm0RmANUS5LKkMUc1hWm3Ig3y/TJsLtY0m0Etg0vKodqG0jzEzt3hYCwo8lmabkQ1RXOehBSOV4bXZ87/bKnsvWzhq3Mce36iq8EhqPTdUOiDtQD6/UWYi57FkpDqNNtqGQg7iEKgetSw6T8tpKay7FpwMUKjEENFU1aC0aCoeeO+fhicusalJNWwkRCG05SqepMUai5Za+i/EY1pvEUsZ8sUGCazB+077/m4Cy2Suck7wnLWIt7HqcUtBisSZpHQCJa0K9esOcNPCBV7RYrZKFMlstxIgHaEekG9ZOw4q1GdblhjpAtfvknRGVYM4Sm9LoLGwkDpGliMpLHAzyTS/U04L3Rs9gyhHGMN2to30SPbcUYf20HcWE0U2f0yQb2hXCjZb4rTXrGGIzVDn2CLiJGkIV2LL9P7q3CFc34F7nqNpICm5qezQljeUT/ebs5hLcHYfudzI5gx4cf5QFGGj17ozZUxbuMBfPSQ8mnfWxO2BktJj4Z1kvMAeImmPMYb/1h4a27qGGH/UuhkQi/QmQFw99CUkPn0ogsRRx1do6KjhNOF0NGrQV9wo3yqrD/4C6UuHEYkGIjzBMnb/h9BhkeEiIAnbtlBubeBjuyH/BXIOGAhHWR1sAWbxOpctru5MhJ/MO5wBcRPWeAsIuidmRL6NjbHFVucDMxadZc/SoUurRVN2aopGy+F+xtws7AKxcHnuXDJVfVkTNyv00yg5UwELk23xwSe+RTmVSma/Do9ntHx8/r5f6bsrSleb8X6GF47ZdA/ChJjBqJZZFs50dq6kohWG2rqDhoaqILhIhPECc9PZaiUhvr50hwwi63uAWfNmFlZh56WjIZFNIFOLIsT2QSIfd3pnSN9al2Xomrpj7P/GiNdxFbsYMZnPNcRdMMRKNXNFLaBXLQM0RmJE3rRpd+lJr0YoCGuADbH2zGedbowpr9VZsHZ08SMLTXTg5FtkItK5Q5021PBS2uEnv+X3Q5M3SLKvNVJWrYVFB7y91p/v0mIdISQr9e3x8dCl31EFUIZ3MGH1v5WIqC5AZAYAgjaMFFEaPrRrCP7lXUADvh8T6x0VcTg6pHTbw9A1HkvanKGEQlqdkb+rpQctfnMhoNMANZLTnDAPzeqjC58w3H1itGrxqpCfeXGCPePp12vtYWbIt64YArky4APRKa5JOzlDqlofYj+wFOoq52kube7QqnpFuzLqmvS7t6LNbqhxss1+e2s/H0aHFtagsYbPDN+zqhTH+8SxRCBhGQbDEyOAx4lvRWlzdMkeTIK+SyoYxr2AfcTckRZP/Vy68YFo59hzeDRj5uqFzXUozrkn9brVnp+eMXH/sMmxEombcpY","layer_level":2},{"id":"c32a3e21-0961-4618-a256-ee1396eca8c2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密管理API","description":"api-card-info-tmall","prompt":"创建天猫卡密管理API的详细文档,涵盖账户授权、订单处理、店铺管理等接口。详细说明账户创建、OAuth授权、订单提交、店铺信息同步等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括天猫游戏账户授权、订单状态查询、店铺商品同步等场景。解释天猫卡密特有的Agiso回调机制和workspace管理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注天猫平台的OAuth2.0认证流程和API调用配额限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":2,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/account.go,api/card_info_t_mall_game/v1/order.go,api/card_info_t_mall_game/v1/shop.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_agiso_callback.go,internal/logic/card_t_mall_account/account.go,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:50:18+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBhDOfi1XULNq8w0FtjpadAUvV+ceSF9+Fz49FHc4BI/wHY1vMagnUmaQBpv8QvE77IhbXlWaabmCE2ntgHj2iMG2xn6ujYVBOVW2WcwN+kfsWyXc7LZw0jyz4gDVPMYNps5QyZVLLCWx9ZXoE5MCdw3yTVPhueAv+StWiFapxus+h78kDi3FaIPsR9Nn6SFMJ5OKTJsTSn5+vf0kwylPNuc/+Kpj4+S4rjyiHkJ6/AkHMKS+z+fyQQ0fjp32p98HtaISDQovw4/NwSSOIBGOOKvGwuLE9TcqkFbnrUP69eyaOju/vnY6PHNO3ceg9Yyn/1HLZ1/I4WGAcmKA4DS4/iTGZc2gs56D3HGebg96AKT8PNFnLMQJiamx5915UQWdh60OOzrVDfJv+QYu1BILz+Owzs68mGQwCajmmc8pFuUoFCwb0/TK/J7fM+53LDucBYx/r89clLpo/qaQw8QMGYsmmnej1ejEOHaAjABPIVLNhdU1hO0oDm93rT9aY3aUpCcz/Vti4anzEkdGsMtsYwcF7r8v3ue4rIHzgny4bDynfCCeog5tMziIesbErutBiY1DfNxO+dE9FusuhVvbSPigcOPcYXpYzqZdhzaqTMExjvXifhIsnSFio/uCxYhMyhwhNVAjVfJqTuSHcsZq4SsMJdenQ9PfoP5Q1ynfDf8oPhJs9SgOqyUC27Cei/bxKvqdqXjyYb1sP2AvuVz2IRvgt52TP8qo3gB+lwZJ4XbIjNSZgTDKUwWcdMzpPHZky+2IIwX+UosDNia64SYUbXA9oYZRrf1o539Pce880X3uv0jL49t7e0QPbrp2LEo7TWXF+qqEQ2qBeZ6TohEr62fapuOoiPBs0bylJaNcp8mg2ueegHm0Y3I044rIew1itqX8NSaRaqlt5fhSrOuGCjX9+HoBCUnOlMuFudHJVF48VibHUycpS03gHGJ94xyqm77K+5+zKPCaVUIrmkx1uju5P/eZS+sO015HYD+2O6h/tF0aJywJ2j/26CQ77i6BZx0kc8j9kEG784h6ghQJNmuLVOBrVIzAgYDx+3IFcZzPayWAWK+y7Zc9MOxkAolM6D7trEmVVbWabNyWFLUUr2ck0tAT5OFGF7ufaJZ7Vhmi2HMvSSWYN7vUwiHODD08eaLEnixCTMpfvgNsloZMsHLRjrjO6dGzl0OAf/NZoT9B16KghJf3jgKSr51FSI1H7j+aw8+U6pdmxWadCTS51urAV7jMnWULfylBcom/XNu9Fpnm4hm/HlGrcIEuD7jN5U95w9n/QWwsE14ddxPlVjLBEa3o1o8Y7GyogxfuHQitt8CLvUNGciIsADU0B9z/WEfmMA32Nz/B2cq+w1uuI9JXRi5WFOEnVrQQGiji/rELtk5/XGvlMH6/QnjYshVbOcaHTIo/Vb/X8nYiQibC4lFYhVW3pa+jrtI72e7MvUCYZ8AbQ2dFGE0KkGOtDjvk8nwMu+OCcqZvBs8W7g4RQmBtHkFxwcUL6lEw0it0RE9V5kLxyIncbh07rZxArIKwsF9SdtPgSqWSd07iRXzJpSpbKWBM6KJ2A/YjmBpj/X+rPp6Y+Jfd85tLwAixDLf5JWHEks9n9zDTD/YEBKg3HUchj5rqyt8TgXus4BbxX7HzKyLhZGtisgeXWKxKTu9wkbWXhSvyP7lrdt2I77Y4JHiZaZaNS5KQdEt336RGvmtv4bLgdu99zuEdp4OERMA6J/2rl8ReXKrbV60uO355I7fadmUGx4XdJFRD8j8onK1P7DhkLE++PPiFP0j9AHSrftMC4T1Hw6rgr9DXJLkabPs=","layer_level":2},{"id":"c98a021c-f5a3-4847-b8a2-445d4b79ffe9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"盗单处理管理","description":"api-merchant-steal","prompt":"创建盗单处理管理API的详细文档。详细说明盗单规则的管理接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖盗单规则的创建(merchant_v1_steal_create)、查询列表(merchant_v1_steal_list)、更新(merchant_v1_steal_update)、删除(merchant_v1_steal_delete)、状态查询(merchant_v1_steal_status_get)、状态设置(merchant_v1_steal_status_set)、统计信息(merchant_v1_steal_stats)和记录查询(merchant_v1_steal_record_list)等端点。提供实际使用示例,展示如何通过API进行盗单规则配置和管理。解释盗单规则的数据结构和匹配逻辑,包括触发条件、处理策略等关键配置项。说明盗单处理与订单流程的集成方式和执行时机。包含权限控制机制,确保只有授权用户可以修改盗单规则。提供错误处理策略和监控建议,帮助用户有效管理盗单风险。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","order":2,"progress_status":"completed","dependent_files":"api/merchant/v1/steal.go,internal/controller/merchant/merchant_v1_steal_create.go,internal/controller/merchant/merchant_v1_steal_list.go,internal/controller/merchant/merchant_v1_steal_update.go,internal/controller/merchant/merchant_v1_steal_delete.go,internal/controller/merchant/merchant_v1_steal_status_get.go,internal/controller/merchant/merchant_v1_steal_status_set.go,internal/controller/merchant/merchant_v1_steal_stats.go,internal/controller/merchant/merchant_v1_steal_record_list.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:50:34+08:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"87378996-7b26-4ef7-81e5-3e2c73c13d78","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户信息收集API","description":"api-restriction-user-info","prompt":"创建用户信息收集API的详细文档,重点描述用户行为数据采集功能。详细说明restraint_v1_user_info_collection端点的技术实现,包括HTTP方法、请求参数结构、数据验证规则和响应模式。解释该接口如何收集用户设备信息、访问行为等数据用于风控决策,提供实际请求示例和测试用例参考。文档应涵盖数据隐私保护措施、信息加密传输、存储安全策略以及与风控规则引擎的集成方式。说明该功能在反欺诈和异常行为检测中的应用,并提供性能优化建议。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","order":2,"progress_status":"completed","dependent_files":"api/restriction/v1/collection.go,internal/controller/restriction/restriction_v1_user_info_collection.go,internal/controller/restriction/restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:51:10+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg9Hm0SYOCvN6Palim0MtUus3FRNUjP5X2DCKGq6+ITrvgt+4sqxszJWV8CNot6oQWekgcQS8eVsvLJhdJdSqYK1/4eLLujPOisKkWSSyE0MbrNLnRLCyhUOTiL8xLNUE+kiF3Wn/RyPl6myAP2CJGriWPhItOWgUSC38Gt4OwaYhJnX90WR1tujcn/wfm0biK6DZGNjYY62gbT8J/3/q0KB91C0sGiJcSPpO+s0i40b172wZpabVN6RrvRIdzLaZaA214I46pvfMwW+XyrBZFsBS7A9f+FT87iV026cSHEM/dv2hDmNwqB8x24otSAcPa9TNagF1DXZ8+1yrQ/9wEAU4B10UJtJvlfR2qttVWVI+sI8ofW2cud+igJZpDKZsngjgh0PudRtiMr18IvHigwdTKWumLLlvQJN2B1HS07YSGF28BeBw/J6P7PPhPebxYs+Nh953dxH3QFrV62BuIXEkHaRVqujfh54QZ+e3hl60SSHCNBuagg9V9Sg3fKXC/Gq/stqK7Ux4zMi7NrKQyDGjxacTeuU1XhFz126uL0OQgz9d8b11sZ9HtssERoHAMlccKzPTB63sv+aHrs3/0AOOE2tWwlNGf7PHdUzbM9tBv3Y7uGMVUMNhZVL/hqHNsqShbPGS2MpFTWlaXiAeUw+rUP3/OxhZOmXYnJNL0BWjZGqrpT4KHDQWdbCyA+P3P2F9j63WiE908Ut5YcozUHGpRejdfp3ynbgOw8n25xEOvteYn2m9r/q6fW3TqhvBzB/GsBIgHqR9w18yIVBxJS+3J2XCbVaQQgq3QerI9Eg4EcvkHhU9YwzRymfHWJZ6S8+mnkmv0/75ztt/+oi3P1XYhxJSn4OsQeAzbRUpclq5+VGNITuCW0QxUPOPVYveBzyuS3RhuBwIkJNRgijrUGv+e+hdmftbRl0r/3xfpzbUvyDitwfN5jobAs3znVH3GbOa3N8odfniMbqoy5Cz9V3kTXZtNJCnZdNrY9yWCGPctBl/RpwIA8mQMhf32EE5zi/7bQCF3gALwp+lSxNBsulPvREC3hm9Wxfm6gPygOmwK2JlX/WSbX4bbeN6tabdSKome/uXenGYsklPX/1Q56wW9cqV5IURChlK6JOSQ6yByrDCgbVt17oAEh85Ek88wpSlBqgO101409FnYgaooyKmO2kTogWu86DCBAjsiAlQtv/7QVPsgliddIiIsxxDUtgKRJ3lRpVIaCx6/tX5YXZtfAx7sVSCTvbfpbZjvhA0P4PlGuwjY1NlRrJlDZF9J7X8QhGULeMnEPHVsNXhWVYBBqDkcqxS+V/DxpNznCV2a5PWF/mi1HLmSC+zWJEjAw==","layer_level":2},{"id":"e0f89cbb-9392-48f7-987d-45771ccb89fc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Ctrip平台集成","description":"ctrip-integration","prompt":"创建Ctrip平台集成的详细文档。重点说明kami_backend如何通过redeem/ctrip包集成Ctrip API,包括Ctrip账户管理、卡密兑换、订单回调等功能的实现机制。详细解释Ctrip客户端的认证方式、API调用模式、异步回调处理和错误处理策略。提供具体的代码示例,展示如何调用Ctrip的账户创建、卡密兑换、订单状态更新等核心功能。文档应包含Ctrip API的配置参数说明、请求/响应数据结构、回调接口设计、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何选择特定的加密方式、回调验证机制和数据一致性保障。提供常见集成问题的故障排除指南,如回调验证失败、账户状态同步延迟、兑换结果不明确等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":2,"progress_status":"completed","dependent_files":"utility/integration/redeem/ctrip/api.go,utility/integration/redeem/ctrip/service.go,utility/integration/redeem/ctrip/models.go,internal/logic/card_redeem_account/query.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_submit.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:51:44+08:00","raw_data":"WikiEncrypted:UPowAVLR47I9KpaM27BQNY25Tcm9u6r8CQlUx42Oyv9SIsPI+sjq9zcQuAYq4Aj7ZFcqK4G4tONeGwS9wfInT0HqqrC5TLc9yn2T648Jr2XMAcJAFSztYq2GfpdIKgaqAKZJd7Ibv5l0QHPYxLKWD6b/RiKQOPvl1NWejLjqk6eYCh2BIMNn1EAmLMQSRH5NK+lXqUuafTH4mz1+5o1R1cj2GrZrKn4m0UsHuEwOfAbwpMwegFDBf5NxtokIPoJEm04TDmVh81ZS1kv2O4EFdN2SWkS0vMGwv8qd41IRIbkXCagkrPCaVcyRdrDlt9RK44kx3quJbVEYFs7JkwG4ebNg5WVU8H+Uld7emgNxHnfP911t1cv+hdyj2+3LcQe6vENgxrjqjzDUfn5uVH7ewZWuYu689uCA16PorSm2rUgdK3K6dDCwz/gEgYO2P6EErI3QPU3YCbMvCsAb2M2l/mpnCsFXwYJlsdRqbZuOT3sH56M8+aCZ2bpij4hIvGfBpmhBGBwNnsfkDwdCg2g3Zw7HYj++Zoh0/H/0K2y5LSWkpx5quqS45yl+nItz3OOIxxtjHXEDjsYGce+XkStLOHO88p2BDo0BeW1FDEQdtH8pKsfG2lwVFfWlpHEz0uAs8xS4qh8+zKOBbaQvgdxrzoTlcOsSGGlOGZXH6wOkzGUNKBLgenHRrbUC+z00BvJztlFAQaS/qnWgoMudHgz41eHD+3UsuiEB6vvXv/OcBD063rR0DQFjWQwluwtgxDnhf12uEolZoCw5cICUELwvGdqGUc1H3DlRx6YfoBdWDOHCh8zmhb+o5jLh0iduFYGhPXGiu1axWTM6dUQ6KMCTwFw3ej9KyK6amObtogSWVceSBkUHgL8VfsxbbxO113RlhcNQ8yDpJ8dPIzHz1U7+iFGugpjAHnFonBMmvyIrEzHtAOR9DNJL9Cf9lMuZL/GjU6u+rq4bMfTSEyqvOPlKH62kJ7piM/Q7id3t5J531i1IyhM7SkAJ52vm0OyfEOt1DW7R5LmaQgH1k6PALdm0ol6Bk5rRhuEdkid3Q+luOpFlMLHz/dNphKl2HaUazUiVFo9e49hjQB9co77K2v/f+3VW7x8NPNIpMF/3mEVBBV8QtjBzKB3c/rKlhDinvChS++aIzG1n9xBmNpX+QJd2oVxqOCCFx/QmpfKhwtI266i6QO66OkJFRd9zDJuybzmAKsPptIXlKEjXxalWmIAxY8evvpHZ0EnReyuMzjxArkP7gKSWJgc66m9FU+DDR3EPP9R5xJU3ZjYn1kOXPJTgG9SGLaZ8Cp9xnMYmy85oyyi6puprdI7HkLc+/JZs1pyQU4g+0Ho5RWVkXcSS2rDcXGO7LIE0PFRTHxlO22ZyGbWYNGC8xqj1Wy86DnJqzStOLs5ESPa+2qp2VmQ7hCyUvU0vwvtvDCR8sMfftH3WiQB2HbemqRqOvEr6sSLfc+sgGEiu89eDpWBazdQznquG6ZiMAFEtUtilu5CxPwZS1RDkP97rX2DRxOtL+Cw8Lr6yZCSyfp8kZqBQ5KiCeIM4vW344ofIZC4r7T/qTvIsPcThZZuRY421zZ+KKVCP2Ttn/5v9cm2t6HwOTYYzxtq8KVoNaVbMrjkEwG7gED7pw7We/Hm/08jV6xadGySJA0K5XZ+zO7DD79pvYr4VjSRrX4JPsmElCY3/vFRnh99Si31w5MjXHXmN3XEin2Ig7x6Y","layer_level":2},{"id":"677ff050-ffe6-4e0c-93e6-5aa4da717ad6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密历史记录管理","description":"apple-history-management","prompt":"创建Apple卡密历史记录管理的详细文档。深入阐述Apple卡密账户历史记录和充值历史记录的管理机制,包括历史数据的存储、查询、导出等功能。详细说明历史记录的数据结构设计、索引优化策略和数据归档方案。解释历史记录与审计、对账系统的集成关系。提供具体的代码示例,展示关键业务方法如历史记录查询、数据导出的实现细节。记录历史记录管理中的性能优化策略和数据一致性保障机制。包括大数据量下的查询优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_apple_account/history.go,internal/logic/card_apple_order/recharge_history.go,internal/controller/card_info_apple/card_info_apple_v1_card_history_info_list.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_history_list.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_list_download.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T19:02:08+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoB3OA1rtdKXDOkAhm5sOWqzA3/WA09WLFVJkUHDwV4FMWdJdNF197MEgGU6up5YiGZBWV78aiz6bb/GDIkJYs2Pu0ofn68MM1Mqb0uAGEtzLsF3qvS+hvKv0PuTIvCeA0x/JV+fiNz0Giz0mdwV2l3/qNo6PlALMi1OK7rUowVitawMfPVyVvcKnMYzN5jQhSmqnw1AJgZm+UAdHSZmgawysFiQw9+tzIa+qP/5eXEHMNeuqM003rn2XwXHb+mviK57f7p29cVF70XFlRDaj2xWLOHACh49c7k0DUE3U2fan0s8F33ONXFfgbMyAEp0ZZIudDmF25zN/eREW8lksgg02E9qMTrXLAdqiiD3W2QUCfsynROPM1gje61P7tUkNX6XAX8fFKhEGYGlPc1aXAeH+fU699Jf/oPNsvmFddpE8D3OayJrFlah49ygdlq8gcWyzA8whPM55OCtD2re41YEo3MhoSOnPtw366i3OYSVqa7fwGfvhkRp9O4m5tmfakSg/tGgwrav0DRZPVRU4n2YGVpuKnoKuCQIlxicONfb5rC38GH5pBcL7NJmF4qsbV+CKQtUMcUfqY/4e4STvEkim8FBjLGn+khlvp5A9w48MOkg9R1TiqshykBp7PuMtkBBI98J1Gx/oRFAuQ/cZ0MAEYnNBEGDdEDXlgzbHfK1l8WUfuxVn6dcpETYRaQqwSQgxz+mQzh4EAtoFXf0AiJ9aXtSV8sJ+teI9QH6mjOKaxbI5+x0+HL9Hke6YorWpVzaybslQ2C5K3tvn54l5Sg29A2rK7VT9CpoH0wrezZY1qo7XG6K6IhVEdrf9gRIfKKIIPUe5opGayOEqyBoADMI9R2AE0jZ8PvzYi6F7cC4pCyR+HfmfBHRRE1xgHf8Wv/Xq2sNpzSBxsmyUZd85zTbPsd6EsLJXR9n4WqADET9xM3N9BsaPSdd4sE5vi9LutNoKZv+eY5wVodnm+kcV0QXPC3CfUHznHcBGvfpAWsbGYZnQTlAUhNXHjiDVp9J2oqBFK51Orc2NQLa0HwMZaHqwrkwvRqprjQ4WLbwWZEcd4a93FkWC4od1B15lHx09KGQQEhZgyXAtyFmrD9L80bkyMpbCaOKVb/6ZZUSvgAjdZygPvWyyMcD4/ish4NYBKRU+URklOOT83ZlTSxpE2ZQA1HyqP/rw8iwW4xbIWMz0TM7hFcy3Lp2LhLELuzpeAIV1EpP3uH9RU8C7ZplVsqrdE+lPlOxBRjY6BMPM5dAd2nXqlnu6TKvcBQl5tQmCOG+yu6Kf06MsYYVQHq++FoO+7lxcuv3y3sj/wZsif1PNc5uQkzUCT9hJEHHw5uuBB2HRmb5ZK2HaDKxufHfRP4H4Kpnayrfwfna5AB2hYhDzFD1zceyLISggD1R011K1/F8UrJ88TsG8jM2A6aTQCgFdORo+q0z8WR5m7sWWhId7DNIGmL3SK6u18f+ii5W24QQtOY9i/4wHHDmFr/YX0bGM+4VhygDVSVkfpDMf9aZHJa6GlFJmqESruc+VgwUKVj07wKE0Tt47Q+gEkEAZeibwg7zKPGVPxnQjCjE9Gjy0SAbXV706+wE4UUTSuHnmcg==","layer_level":3},{"id":"b86eeb37-caa6-4edb-807b-036800419a82","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密分组管理","description":"jd-card-group-management","prompt":"创建京东卡密分组管理的详细文档。深入阐述账户分组的创建、更新、删除和统计功能,包括分组的数据结构、成员管理规则和统计计算机制。详细说明分组与账户的关联关系,以及分组级别的操作权限控制。解释分组统计信息的计算逻辑和更新策略。提供具体的代码示例,展示关键业务方法如分组创建、成员添加、统计查询的实现细节。记录分组管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/group.go,internal/logic/card_redeem_account/group_stats.go,internal/service/card_redeem_account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_wallet_list.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T19:02:13+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rdLCKJ6he4t2YUuBiX+duHKsu0bSY6j5XtmWtlRDFLesp7B9t2FDeCzDhF4tjVQoWGbvNToSiArfvZgRhQhttoLMtONWLHnMjRQenEBAi3gU3uKMbVAVeFljYBll520xQvoXqZ0NtQx/im3wRUib4Li+8S/od1LJN/Z0mq+kG1GYo+Lu4o27Ap4u3GzHiKooY3As4LhjGAKZhtIJMx3NNFhT+ADz7+kJheEtwsTDIiyoneYQWowtLsktNUwONgXs7hEK1S+UT+Y6mJ+Wp4zENLPLuvm8sFO5/AR5+OzUIPhZQFbfAlIRTx25QByM6Wu/VKsvfiI6pZkx+cRRnle3NwKKP6f4h9rsJYL4mmBU1YAjDPiBnHrhKbMvys8sElQ93S+XvWbYDBHuAo8qJoO4s2540VnNWryZQAPUBejfvdoxXEv4qW1+TaNSw1CgAP1xgnwkJ4pjZF/Dzi9Jp0Lr5h9dtedNzyWAcbg92U5BE3awlNd5SLwapVjVCyAEjhW6BRi5KEbVamWkcv8r1lM7K+FxjpH2JwcjIE12ss08VsgcJY63zbbmkb6nzHyqmJopJA/QRCFqgbdNos7S+wmTEB6iFBQHlB6kUdTjLc9AsewksLuq3mSISM99nyCEwyv67e+KycKuwx2Y5dbPlSKCBXMAoewC4/gRTUu52365kvtXC10uSkaQIxviZ3tIQzU+Lp9ToWWiCDu0PyHzVBiNciBP/eEZol/E8ccCxge+8FLQnSOuS/a04xUSuw+eElgAGwETH7LuRG9W9rbn/GEZqNyjk3bGDqpsHg8qTxXGXYtx22CGktjyQeWM6MuSIbxCx/MltO61rs/Zsw6wLbCdwOtlhDkxTUvYeBVGJONk/7WcC18hYYsqbYoaW0VI8fzwHD9Q/ghhYbrWFLJSIVYLpfj0FuFwtZDD0Eo/qipCouBkT7EuIppujAlRk6htn1EXnjfHPxLPQeAboeM+JXLTkPKREgiWh9au9YXfsIfhHYiDDHnrXGtaFXEnGCjntosgeWJJFO2klzMfb1HLy4Lz8anm1zJhhCXR6tP0QOIhSd1jbprd4/ZPEgOaS3emoPD1wGvg5wwg1SFQR52NkRkSfesQL2p/t5DoqhNARduABqIXJNMK5SzMb3K0+80tADmqpcEkpwlossbWevFqR/me0i1HEJptn5x2TjaJvmgCxj0UHt61ChLkOFUeHbMkYZuxtRvVsXj5Mlh0sr5Dr5OhwxDOwdGY6MiLmWooApabtnqiddw74+cz/1pWQY61rKOprsDDKeGBQlbZWWHJeyUFq5xKVCxfv83FzL6yVJzhSthvpiFuRyvr4trnvFlfUqSd9Z8fThOOHV2mUDU8vLMI4WH0Qnp4JYQf1Vo49qf4+62N","layer_level":3},{"id":"9267865e-7ecd-4a9f-9bdc-66f3c47cdd00","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密工作空间管理","description":"tmall-workspace-management","prompt":"创建天猫卡密工作空间管理的详细文档。深入阐述工作空间的数据同步、统计分析、日常订单汇总等核心功能。详细说明工作空间与账户系统、订单系统的数据流转关系。提供具体的代码示例,展示关键业务方法如数据同步、统计计算的实现细节。记录工作空间管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如数据同步延迟、统计结果不准确等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/workspace.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_data_sync.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_stats.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_daily_order_summary.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T19:03:01+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwReDTM6Mx2U4SoX+wR3uMBnmUaLdaRPubDduH+iqcINL2F1uVz5fih8PpiymWyOsPjzO3Qey8yIXLoDGg/WTheetMHYoKhIvyZu6pbbaNAyK61SCxJNNwF/EHyoZFQPylLOta3kgaHFuEH7RGJE835QK8BRaPwrSAAzB+ZiFMTk04e8iWcaKdykmjCtO+9EdIARCuLs+JEVcc/GCxm5irW39IU9Sq9o21tO3Gc9lE8pXm5S7QQmQJlNeHsJUvwKT/rcb36wYlQA4H294Y2fKMcYWPnY19lKjJOlS54A5YpkwIDVrBf2JAnvHy3dKfCmCltaweNs5W1nPhB99CID0yC6RRwKclk599rzEPP9uQcMho+ncsqATPxffkpDN0ZSRz6xYJeoNBkP0i+h027xzaM1LTNShoiL6rjaZKyhmGlwvB+p4NqZthrp4zSR9vzdf9E1Z1lQfJ+1kDHKaBNyk8N7YbphhcsK1T4YGoOZ8kUj7JTTDlhNOK/ulyhDY/6RfKqXyYOKfDyJxDoTFM6PHl27fqCuaQDefSjzVOcK34HOi917aWeTxrLhCKUOHI2o/RiOtcMeSDHLDrrs+FK1ZgABoIR+Ba//CmGoZIuBo3WyrpunFHTDMw5QiMlc1GwbmwFz1bu1ST66DuvuFhnqy6TH97FEW5llBk5OkMjOO7359IKCkqXCchGhXFFVGAhatkBD6If6cXhJnux5uF5xD/yiGt9JdSV9FZkLpF+8OUWxrlE2rdiM/vF18w4PrGqRENA+XZQDyuxTIEXCuHfermrLGleSD2cLNANrx/6IOfIgjSiD7Hgz9uzPYvHeqQDM9TGjPItqR5e63PZKxIXaGfkkIj8hZSOR0IvlljXIdKULszbxi33SVWUMSyqMo0di5toQDQVI9+HKTYkS55Bj4OA9iIerZvVKl9/x2DdJkXksNL5LocFKFeAuGhmigZj1Jqpjaf3OiZSPXi3B/qoor3Ea3woUmI9b7OW3RmJQxYjShTEIy2Gh7KfAXc/afdHm6sD1Mskv1AUWlDwR6pGtzWwY809btuYtkA4XxaU+fDLtLYuUbc7glBGylDcndTjgRXxcS9kNWC4NaxQqK/nXjG7qxLiRyBL/aALnch5eb+TI1tjd48lbUQnWX085G90STcsymVAS9See5WUxEIWawYlgAhbHVBjGaTuVEBTEDXv65DipF9LCzobfTRsu+iyh4YL3xl+NipnjZSKiqCL++PtLK7cTpEg+sGO/sxMoiN3xpnYW+a+d1crOwLBIAIqZSSaJrRra0p4NKxFwKYiYhvl0fxKU4Ms7rElsigkjVy0K2v+iO21FBG2InZvMAPpC449SbG9nBEem7L5U8oKJGEYkNlbRlzZeQRXsedB5eoQlyhjZK0Ugtql/Pf8euHHPa+RkiuBR/YR264eXgsA2C8x5KBdnKv/m5adEZC6AEZ2WdXHXUqs+SVr9BUJ11V2x5gxA==","layer_level":3},{"id":"4de9e641-e754-4df4-be5c-96bd78e98da8","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制策略","description":"ip-restriction-strategy","prompt":"创建kami_backend IP限制策略的详细文档。深入阐述IP限制策略的配置机制,包括黑白名单的定义、封禁时长设置、例外规则配置等。详细说明策略的生效流程和优先级规则,如何与其他安全策略(如地域限制)协同工作。解释动态策略调整的实现方式,如何根据系统负载或安全事件自动调整IP限制策略。提供不同业务场景下的策略配置示例和最佳实践指南。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","order":2,"progress_status":"completed","dependent_files":"internal/consts/restriction.go,internal/logic/restriction/restriction.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T19:03:06+08:00","raw_data":"WikiEncrypted:6hVxnL7axMQmHgJLo0JNgXroZS4XfIcI9txs//qPFg+UgB1QVZpinkI/9oxfW9tPotJf/5BTyF8XCfAyLA7+o10wprGeKJwF1KwCWge7URyS6iBsJc1lQYVLzkprQ1jUE8cO5rpOjgyC1AA20f6UT11yA1zxFozgy/g0LWVZqwOTRcGh+5yXvLGbTIxDRKp8p7pt/JuDSzO5qTu5ypX7rWkkH/Ups0tZBzzh8KCM7WGq88jgY1gbBfHMqDQyCgAqZNcIcUwmlLKjk4PgKB0qkQ9cmZIfkS+fHSj6RMDGc03sD1qanuKGk9ESxwY21oWzpc/3wI+n/p+cdeMFNTalWE8KhkaGlEid4ydyq6Q3KBCtTFLn2chxi6nNbNbhR/oFhb6UBipCLFW0jjQKQ/jUYHiYU3tx2uj7sLliYtY19p18ER6Q0eeBzTY9x6nJ5BHpy/cDqFEPbiO9W5r+DPrP6vYT5cEPKpIowqt4W5NGOjvKSzqfvwE8nIWzMdP4bsrSwJtJwfsSEHBZdExKEtWcW/tbdT2dRxkYWfQmhI7cY/K1wKL764SlWVFpDVN+LSHez15/UO730AgIR2e6oqt2ubbB0A71eBp6Qu1o7smfperkg7P67OyP6tINwOIIAIT/xNd+7CrePcaWmIzDfUWMrQxspxyNaWctU0QgSR/sPFkIhxzsg7LIShBmrEH8tfw15U5yDFSTvuMUgYw31xprPAGUtKSR0uXZhTwuMmfaKTu6u3Frny5Ci+SIa+CQ7eLxurjMgXLzc1ZZkzt0xg4POwjzU9cbPVRqDBYeI51W/Jd60XoQOpn3PaYJH+5URyIzfWw119cEIMboj5KPdyxdd9RbkyB8rcUn8jIb0aiGVpcpbXpFMap7ZvfLCNKd/75/0k1IoUeZ4MQxILjkca8+WBgoq9iAkOcm33IneMzc7ySgTBgxAlw+q0ecVEmBEU2N8pVhCnBwtT/ubPGSftmicQOKOw0Y2f32sVWMOx927CIe8Ia+lc/UDbep8rsQTvc05NQYljd6ImHHvXErpYqND6Rn/VIbHHLmN3pdHLvgfX6BmeTBIAJTuADvXyxsroxWyc9xMTd8URXX7qi32k3LtA==","layer_level":3},{"id":"1072ba9e-1fcc-4ea4-9598-564f965be8fd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID匹配算法","description":"device-id-matching","prompt":"创建kami_backend设备ID匹配算法的详细文档。深入阐述设备ID匹配的实现逻辑,包括精确匹配、模糊匹配和相似度计算等算法。详细说明匹配过程中的性能优化策略,如布隆过滤器、哈希索引等技术的应用。解释匹配结果的判定规则和置信度评估机制。提供匹配失败的处理流程和异常情况的应对策略。包含算法准确率和误判率的评估方法。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":2,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T19:02:59+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvGbxql1VxGvXj8wXXJoD2jUkzw2IGr4vc8v4wXpMfAxM2i8Pu8fZQDbDACIjUvIa2PVuqqdtSsLu4AJ9u0PM176QBtkhz5xzzYCLIycke55A/EUOP2wz2ZNWE/Bho5s1esCxg86joQ+AEbPAnr9y4UUwrK5FmZpNj+5GIwqmWtRjK35+74RSPESBv1ntHb/v2a2wcfXK251Ny6Dp7MPayMWlDG9yeyKHWz+gvgg83t0mNRySmYr+wYO7EOi5jEUt5xOpBXzx163xE7VSEVoLhMc8lwsJ2znxTW9Ol5h3jHAQHyDf3PAwJHBvY7VTIonMDSRTcTtHoN/ZQ/vHjZcKvGxzN5NWQzci9mKua3WKZxVZrzeXbLs2uP7EjHKBCKdSn+klV6TqxAbX9IupDuZZnlTIG7uOpMmBFxrNYucDVnE3E1DI5K/pgGpCovf9M1KvV1S88adX34wxLsK9cVPO3H5vGBQvx7wI2iH6iQwtkhHGGEQcUC3m4f6M+IH0iqiLhYc+zS3jSdXy+/BGTg0wV+KX9Kygmetric0/m/F7hMm51IjieiNNc1axMYaij3qP3bgmWwj/6ktVEE0PpDUs2GGZo6r8vDnhobdxZRBzSddT7YPfnCF5ddjO/F3cP3fLrAT3Rtd6Mg3tyCdAT/aDqAx3L9DwuVuw1tS0HnsqVvMftCwo802muaLJgn/FC+hiUl0Umk2nwNzL2AWXUYxGof5X1fHBYcg/zwnkUD8dJegR7x9y2el9apjSKOScDn5eIL0qF8eu5XasmUbk2oCnZxefc1BHrCudzZbO3DAZw2HM1/Wo3vXNZS8hnvPAquMJu8ehFcPVakBQEDC9/pM4sdhD15dX1jl1K/KT3Cdr5tF/mYSlJSHSi3Z6i2nLiV03DGx8L5rt6QQjlUEXIHY3jvDFgIwqg09zDDSZUZrucbEpXbmt4t84YgDNLAMSKZBsyVhzkleMWbVLt6K6WSlKDE8CrUFYDQV2wKmy+T0lnUpu","layer_level":3},{"id":"282f094b-3780-49d1-b057-75345b1de3c1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"会话管理","description":"session-management","prompt":"创建kami_backend会话管理的详细文档。详细说明用户身份验证令牌(JWT或自定义token)的生成、签发、验证和刷新机制。描述用户登出功能的实现,包括令牌失效处理和会话清理。解释认证中间件如何拦截请求、验证令牌有效性并提取用户信息。阐述令牌的安全存储策略、过期时间设置和防止令牌劫持的防护措施。提供会话管理相关的性能优化建议和安全加固方案。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","order":2,"progress_status":"completed","dependent_files":"internal/controller/sysUser/sysUser_v1_user_login_out.go,utility/token/user_token.go,internal/logic/sys_user/sys_user.go,internal/middleware/auth.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T19:03:57+08:00","raw_data":"WikiEncrypted:0Uk4p/ZIoJw1paXZ+Fb51ur9+BiJ0NP0cT7pD4QVBe+7MMhlz5M7a/p3drxSwSHvY8dFGDqDL1NRl4IgWhD1zXBn1GX2bUFf+oTxEhJhkYDUEYNU4nAACLzPI6gYMpw5QuZ1FZd5Bfv9+JPo8JUI4/Wsnw12tivlRmPEWuUj2hS/gIdfFzjw33l92TOweftqv2Or+uu92XSaClg+hTtpkPfRQ63ISdketIPowsTblGDxkEJW9DQoG01H810yoQkh97osF7oShLX7rTAqICvr393BB2UQO9dczlsDlAONcq9XmHogAGNsXSc6ee5PXC4RedEYh2856MODoJZdInm2s/IPVcAxgetGlgi7JwOCSuyGfDoisLCkTrycX7msEXgR6G1Ya/cFKC64K9k7b9c+hZKvWQLqDEm1LtVtUdng7zKto7hDWCexiw7A62sSPiJCMM4AjsTj+d/6qUCNOPIpMJeHiTzUumQGyjuX13AX7KVx8X7jU5gzlLv8OxgyBstD91uvBqMkfrY4LTJrSMdXwObD0CyWGCa5dXWtLx2tWvBd7lbCjZtvKzDOK9UaOg8/xCORlP0hX4sRMwNjUMAH1jFyEUxO12zItHHTYuqU4bJyCsYj0Yxrbh8xg/oKxLH67+JkwTqKnXOG1JXHpavpa9iMp6IM1SM8PMYaYIucJ8+FeJP+I0od6rjxON8kaZ6Nto1dA6oQl3JVHSCUhVPriTHXURowCQsAVK0zHULWLVRzwBjFj2bM2CuunGe8q/wzVflGRZzu6mmD7aW6pB7y1+XVyx31rdwZ0vznb/YlgpS+/eCh55SCgUynS/chV0HlZBfhoISANahRO7FJW0ei9/Jov7tdIIt1K86McWKL0QDBGmMqjLLtRuqYdxK3H5tmyBWuB2k+BR6VVJvTUsfElTXCpzsqWIGrvpPRvutDudUGla9WwmG+hzOe4zFEW+y/6yY6qzurPLhfxcuvt7Q/MAV+wyQ/UPVTlmKJlXxn0N699jJrNZTLNWjqlgOILkpNlBMG3Ic8iKMNCRujrINna7YGVF5yHCPXMy2zZA+Rg2kc9PwDJRSRiOMhp7aHalBcM8w1Jq6fAIx29mUAqkVhrSu43W2H+UF60gQHvVwAb7cSlL9JIhIMm+FLRQ30H9E818+NAlUrdM4h9jOZY9G1Fe075L8z9cVHAzmqSnnrItr/U6ULv3pAMm/cP2oxeCAV","layer_level":3},{"id":"0406e349-1ce0-4ec4-9c86-6c842ad5b1d2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限策略管理","description":"permission-policy-management","prompt":"创建kami_backend权限策略管理的详细文档。深入阐述权限策略的动态管理机制,包括策略的加载、更新和同步流程。详细说明权限策略的查询接口实现,包括分页查询、条件过滤和结果排序功能。解释权限策略的持久化存储方案和分布式环境下的策略一致性保障。提供权限策略的备份恢复方案和迁移指南,以及权限策略变更的审计日志记录方法。包含权限策略性能监控指标和异常告警配置建议。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","order":2,"progress_status":"completed","dependent_files":"internal/service/sys_casbin.go,internal/logic/sys_casbin/sysCasbin.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_search.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_info.go","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T19:03:58+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoLDUXcFN5JXkHFkoIAmNJ1/s1y5qg9P3LBm2T8ID5ZgmWBKUZ3Dbc60bKc98HGzCgFy3CL6WPzz+X5mP2XoNn8E846x/EhAJdQZ02CvSPcKWPjLrj9WB8eoyVAuvgRl8qvRfFLq1eqvUPCEblXl7axcaXWZj0WVsktrtxjeP/8QhdCub63OC8xdv5YBIqFSFE0oLTHE5odO61XXDE3a+d3HsN53R9hJ+10EH/5OdJhONztMy8eQQaZfon0pv1NWLPRZnis8kO+9Z9WH1i6QrY2zlOkpNdkdFeCle0QOSVdh9sGbtL5aL92/dC8NlHB1ObwAUA8FXzrtEoUSOfuDMKZBr9vKSMJKjOtv3BkSDfVryd1MScwzyjMLbWW2LJSOTsFwnUPs6gU5Oi1YWEkIfJw4jNvAtLwjPSYIcy/FLIwjc4HYzUTMo/7SEue6uUy2nDRL6KKcv9ct7EghLzVG0vkdGSZOIHjhw+7+yGiWt+W2nJX5hqcTUhN5+Ts0vQKmgDI722zqHvkU8EugwGYrYtXVx721cK2w4UnJUu4EhaojW4NCIjr2EUsOYHQufzp2o2PH6xB56dIfdT55XaRGx9LkNO4wwDfy+82V+8xZpk/jkuTb3TGmiXJutwYEp9GKfv8iR1GvwGL6gD/GWgCFGmL2QrbD7pUAMye+/xftFOYjEWIA+U4Jsz41MGPcaqDUz5H4R4vMvPmqmNPN4oa+1SgSKTPox4GxqWLVB7zpYFECaTCYa7jDT93G++8fj+ylqpmowUhayRFsamEpavdXx85/5MTQ+rC+BhHRWd/N40oojTXddOFBSKH4Y3V2+jrDTxrzy869oxTgbkOHWzNsCM6ogDa3eFzH1oyVBAG27NWT38UsHvnsTDOO87YgjDXblTftC2lgQrc4JrcG77dHDTDp+symmhHngwOpzmCTwkkcUVCo8aoCNWHSBxxwtEWx6tYhZqR2N5JHuJHuBaLU1ipUc4OhJsxvZ8bRdU/UqA11Yly3oVljYGG5C4fzweb3yB0/Z4RqWP/jeQu3Q8NS5CcYttqraoI956pNJzJPnkk7TGBG6pbhYSfLP+86O3pRo9XIpqTxPYPbxTiBp1B4iCcWbZ5PpPeUurauBX9B0scUjl4Ct3C0W/arnRx5JKF9Lp1l8QajNBGdXXmWMm4V9m4k5qNJxVAv799478EZFGRN6UB/aKkW8rr7emXxhCreCL0HbB/UPg14brYONlQ3CHPhZ3Ix1nPJ+zeKVGWhn2GHxCuk/hGvb4sI0IFpRyQYTbSaE4zRaDYzMR0mxPeT+qOlyX1eGZfjLwsZKtkl6F9WcR8EoepjX6l/vvh2R0Wid7Q==","layer_level":3},{"id":"6d3c9aea-cd8a-4031-b3a4-7491202249b6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密配置管理","description":"api-card-info-apple-config","prompt":"创建Apple卡密配置管理API的详细文档。详细说明配置获取、设置等端点的HTTP方法、URL模式、请求/响应模式和认证机制。涵盖Apple卡密服务的各项可配置参数,包括充值超时时间、回调重试策略、防刷单规则阈值等。提供实际使用示例,包括获取当前配置、更新服务参数等场景。解释配置项的数据结构和有效值范围,提供配置变更的生效机制和验证方法。文档应包含最佳实践建议、安全考虑和故障排查指南,特别关注配置变更对现有服务的影响评估。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","order":2,"progress_status":"completed","dependent_files":"api/card_info_apple/v1/config.go,internal/controller/card_info_apple/card_info_apple_v1_config_get.go,internal/controller/card_info_apple/card_info_apple_v1_config_set.go,internal/consts/card_apple.go,utility/config/models.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T19:04:12+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBuUbm3n/HylwaNIVUMKnhGi/Hgcopm/oQ4lcWfRCIkkHsiiTeu/ue9QAKwdbXpDBVY/P3Qigua05nKAQFPAwVn3WVT6n8PyrbxbmWxlX/Dr9E8oxhzTn5RaBjXjsaww+IOXyA37lEwC4a5tWnw59MOF2aurMPzaSawPSQ34tIgQmu6Qn8ETjIv1cwEItfDy7Ibtlk/RELXp791EI0CwKOC5X7yQcy/Qgwcm5Nr18sS3bULKQ/1RM1j5/Q6iPNSTKWyEAHUgcC+hnoha/jhBaiiBFLTW31hjoUkzVARhihUKc8bjyzsobI2sDWbda7c+fh3gK6rUfQevMI98h/QP43OZl7Ve8M7Cu+Jlj0vxZgA1WeGa69Rsv4nAcbWfTor8uO1utjzDpJauE5fRbsS4/FlayjbskXg/O+QtyiBEqB9equauoZoQ+ZhoxvaujE1dZOJgB0N7hleHBoPYV3LNI57UtJs7BBHTtdU4F/DgWAYMf6AP86/SGiGRIoaSBAiuXF4D+MuNmfIDZjvIL7N7tboGmG4HN6ngBGx0kfwGOKeKq1ZEoOKgLlZXQ51o0O+K873agX0cfYx6P2sXT55QpyKyv/EoPF30/aM0z7crEtLJrs4tBHLKQIuiKfjA2Z13sChBPIFHKYCsO9M9ly/Eiezx9jmuntNp47cSCZM0f6uRGaaI1/aYeftBkRAV5/hhCAfq5fUiE7aDNHLx0fpwpi+qMkpl6gqwLIcL4ZMPN8yPPL6RL/mdDxq3I72ZsDGUYMOfRlDFZKExEHZDRy7Ic89Wk+mEjZhTnZec/hEsoMan6t+8CIpBHoRk5axvE2mgzY68TEDb+UykPBvKFbNdCAi5+buFYqIR/So7EEbRfJiZY4crBbwR5YmbmWMvK8KIPYsC1cXhhMNKP9LTFDi9kmdvQWq3woH0ZFxMNM/WG+071k2ZKFVVwzTzR/TRNNAFEqwJyA56J0cQ17TwzZp7VKxeGBLI6+esXEhJScPryxNVN8hl79PFX3pj4uD/a1Mze05MVVYU2K+a8qCd4h1ZpaJJR9RomPHIhXxi1XUupB6xur+PugZWExABg91LfdnS2CoCERGkHpDjSlBJMc3o4Fz2J7iyH3O/HjdqBDXhnY7o7GvYBFzBfr1UOLcyH6l9VQ6JHLlI7OA+yAbyB/TtX3LDqesUMzusgP/8tMhcoOrnQ1F5Xc8Z8sDKcs10PNvZeuWCkyxASCirD+bBHG9wWdxod8BKgkWhFwO3I7IOzpuGIFLmOCGOkt2YA8BrJ0KxCi4RQmgR35kPYVQlHIv58VVFFjrhPN4KESeTWyOq+ZgghpDU/ZBW7CVifbND8fzZguEpprUzAognHKAX4uV8z+4We2CYI5M3jfAWm5U4OAgE2hBFAcoNsP+YdC8f7Il8PgulhjJCUtgodbkbJWqEwCG4=","layer_level":3},{"id":"45710fa8-25aa-4217-ae14-a73410f49c30","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密数据汇总","description":"api-card-info-jd-summary","prompt":"创建京东卡密数据汇总API的详细文档。详细说明订单汇总、账户统计、交易分析等接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述数据汇总的计算逻辑、时间范围选择和数据精度控制。提供实际使用示例,如日/月交易量统计、账户余额汇总、充值成功率分析等场景。解释数据缓存策略、查询性能优化和大数据量处理机制。文档应包含数据一致性保证、错误处理策略和性能优化建议,特别关注高并发查询场景下的响应时间优化。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","order":2,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/order_summary.go,internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go,internal/logic/card_redeem_order/summary.go,internal/model/entity/v_1_card_redeem_account_summary.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T19:04:46+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBqF/AgjQv6sM0ab/eWm9Zc2i7CrUWQErn5CVnJDUSAmvbhzvUotPoOifzRMm9owTgiZzFXf8qg/H7WNy+vMKY21byd2lSmn06NgdDtFEAjS3aLRCCk8nGUvX0YWM5O+3y0Jwn9eDcKvfVG1xTNvbumyL67Azpb1QcAI8x8ReYD3s4A205HtSKca8tiqyCsl/ceYDq6Xg4nSvm0ZT21L4vjiYz2RsI6zQf1WkOQtKqEFSoeqKNcNxP/Pmht9nPJkbUtb6OguOmXiRwz8CP7BR7HUjcUKXPUujoT/Fba2zEWZMa/q2Odh/tDg+JUiWSXdZTZPwpURaAjsO4d+yn7JWxeJtGpvl5Y1+oQr3+pxgvYExfD7Pktk/0uLIXbUL29o+h5ui6SzhyNDIfNrvyy+IKj9F8IfYCq9+hJtpzO2tmTz2hS46eqoX66HxcC081e08XNsrjLF09CdmHXEwSUjZZ9gvLocabptJ/DhoKo5vFfAM7tV9T1CgDpD3K2gAusHRUOg5GLVBCjcRVippewoSb6q6JyF0Qr9aV+ktSvuiEhVc8MR27ywdDm92JG00+A4AJItDSFPYfJM2J1knKG+Vj2Jqbhlm1z0IDJ7oEy+b0y1EkpMnG2y3/+DSggZSiZbIQvO/uYG/Cab/zFkbELifNrSVrdOr4Z25EJz55VOhYjcq9fxEC0hFGLowZmWUQZV6q7yGFcj5qQcBPKz/UVyFQFTAhNIpxL0sDR+ClaiHFGwotrSeqUyPF+TtoN8UyXQTSjbdDfA904H/il3JIqltti3+FI4On7WWHgNNuWL4+GrMrqVZuR5ore24S0OcJz8OaZkAnl6ISaC1LZ/0S+Ng3lqTOxvVlzOvs+TMuWK80FBcY6ixKthxI3BzeOx6KuBhdjI6PS0gpqtxEzvXxWff2NUB9YuWymP0o3NMFlXBvJZRR7Lds9P9WfTxe5SK12GEVdWuYoWWX3HxVfOvJRIv4nsl10xQru1mMxf8f8UnT/idBs1cNJ0v4f3eiEUvrwspVYzYjbsDza7h40I9QIItp2EUVVyChbWb+wXkNF1LvS6SdAU5V9UD+sYu/GSjhxNAHNpmAKXmgbEAjDJyEH+4/WBv9KCvpujORaZcdTQoNq0U39t864GLh+4pW9SVMehu5nNNMoOJ0iG9TiwueE+kqJm2Kk9P+A1pOyGlmbPIA1BJoKKhxLe12AnelH9hPoUj5ZzQwR5mYjqsghmq428peD75K78JtJKIXtMN/Y75i1w10UusM5jOQfQ8gc72zC7MC8CmkER8HCT9017AdwDZWnRdl1Pa2g1hgaDZ+pVe1nRwcoZB3ev7N+XmRnJhAlbt2SudhELdmp9mq1/8f2A/JtkEJTMdybogDqanF1yg1S6FHRUvbjjslN/dQXeqw0LeUA==","layer_level":3},{"id":"1bb36bef-7cd2-4cfe-895a-726588a9a89b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密店铺管理","description":"api-card-info-tmall-shop","prompt":"创建天猫卡密店铺管理API的详细文档,涵盖商品查询、订单同步、库存管理等接口。详细说明商品列表获取、订单详情查询、库存同步等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括店铺商品同步、订单获取、库存状态更新等场景。解释天猫店铺与卡密系统的数据同步机制,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注数据同步的实时性和一致性保证。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":2,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/shop.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_shop_order_list.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_shop_order_get_one.go,internal/logic/card_t_mall_order/shop.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:05:04+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBtDWVCx1PqAct37L9oLDN6sZVjNa9Ch3OShCJn/kzhZeficIBnIrtnenIuXfUtVRu54GfaWNfbXdZe6evvtyGUfLvBB9ZYagGxmI0e7fGNTwVebDYlI3vfj2gZZT+8AlmtTVcgmrN1XVtiBaxzwhpwmuOalDR0NLwHMiyHwbWWetbQf5t6OWMtxhbw8uR5sdShhBQ69i8kMs7gasHO3L9ef8JiQuzmZab4jt2/xrfjl4dZ0a33GiWO3s3sRpWIvHNJRIOrV6hf5IffMdcZ+R7hrSNZZScyPUg65QcCziiCn0h1g+lw9ryli/75CUEtdbQOfsVaDyth80KMQE5da5xEO5cCTXJMWgpOUz2FphlHtIWaRc4KLjTeDDHJEcsT3KcTB+HLPmJ9Bffm6bu9KYEZOiYE54St8xhGgQ5aFx3DuxS47eI5mm2c5dl70QwWPN7feFwV8k699umCHjkpBK9VJyP9Nx9y79++Lfib9iA7DeaelrZrsy5A94TSKWBeyRHyIUy//kyJR0yTxXJMl2PzYCmzhe1y6kVeZBj4CEnsou77ZBf6Wv5QiomP7c3NEtjyWLFhj6DNu0aHK7UT5xwpuTlIrquQkJKImYvh/iwUbhs2+D9R1TjMpMw5YVCJQ5q+rLJfT95TApJ0NtQ/gK23lM2fHt/tolP9xWLnZDlSWYSV6iFsNWRKoAqf9BHDgJ9le3vZ1FPEl9EgjncBN3bbnJDq9mcz5yz68bnS1Jll6eqr93nSxeRfsT2THN+ocDILhi2/m/iQ3eiE64QQD9sdieF20QrUhBPas/aA+9yyaLtKOioBS2R/6QPfXfHzrZxEFiXBgFwsq/bLVcuTePzmiJkWAQNlshCdn08Gpl6ofPGXLcaV3vjJpAzxmysSPJxfN/9ubB7na7J+oZsrX1qknTBfOmSJR5kZVH7IMJ0xvrvvjt1BHLjbLI3AVVCRFLrcA72WPH1h7pwhBLZMk3p2mL1wcOjUJbnEPniayx+ShuePbZ+pPKcF5PNMLRmoi4beEULlRKyfD9izQo73oKV33Lhn1wmk/Cie5kwEUxD3VS6F4iaXoi+GluVFSmgFF2drwnDjMqCLRfzUWAp1pnrJjRiv6TjdEfzWl8hpMkfaRrkKtAcZTN7KylwN39fXVoFc8N6mvNTPmoQSdFV7eXp0ervzriGjtKZI+kuCXrzl2ZizKg7iir7yyK96aM/gVWH9FdYboTNOtqshAL1Huz2zB+NiQn6Rs/haQcNkTjF2wimOwOXKWLFHWUPnv3KMpLZDS5eXL/T3sNHKkkwqj1ZTQN71hh7utbZNZESsx66lxlah5v6nJCuPRXBaFw5Mr7PRN2A/mN/fXNv+K2m8nSvRUZzG32wf46zNfQOM8lMSfhh5fucX+IPUbJgoZ0jy/nLoTCVmbnlI3gfTZawah36s9OLG1zOW8nU1+9wvKzzfpB","layer_level":3},{"id":"25942f43-183a-4e00-be2e-c61ae84373a3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密分组管理","description":"api-card-info-walmart-group","prompt":"创建沃尔玛卡密分组管理API的详细文档,涵盖分组创建、列表查询、统计分析等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括创建账户分组、查询分组列表、获取分组统计信息等场景。解释沃尔玛卡密分组特有的统计功能,包括分组内账户状态分布、订单成功率统计和性能指标监控。文档应包含客户端实现指南和性能优化建议,特别关注大规模分组查询的分页策略和统计计算的性能优化。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","order":2,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/group.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_add.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_list.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_stat.go,internal/logic/card_redeem_account/group.go,internal/logic/card_redeem_account/group_stats.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T19:05:31+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgmsc7A0SALqjbDeilIpHRL6DsPwTdRjUHYClnmKJSuNfACUdp3TkWYbmYMcAGm9QFylogt4mb2yDTK0EN/YLlt/RBQR5SZ5V/KHZILmc/y1KU6XVB6sUYTM82cUmNQnYJGXhawqUhz9I9sjWCuKFxN92r6Ts+uEomIRqNu/nLp1DP/fXR/mOoM/aL/nRdvof1psvVPnHuOq3PwEE0c0Hl0GJz5ZjOE1tuhqSyLAbG5/z2gx3mdUK1vPHi2QuksMlMBPg/06zzpUyFvktulAD2TJpcvz49m6i6FPJti6DITE/BvLQkCwmynKNFHOlZwhdmK7peCkOww6N9EbHudcCRtU/FFyiqSV7pudlOxijj7dyrPR0WaptsYxGjWxXYg70vzVBWXg4baAVjJOv7cO9T5WNxxDhRhnd7/VHAyAcxadzPC/kpSV0f5HZzQbjuiCCG4igGvWZnvD/DXSZDQVz/fXO4DLHglL0OiIqBsp63nrnxLcIl0cTYFEByRa0MWtRBTHqAumz9SkyMtqCZCHtEduLIvSCEKn7tdDNyt0eSpjQjkdflGkrzxmBEQPlZUfmVUJ2leNHBhkTHKOT8yDQzMEdxuFPInwNF+Jl7eLrZjAZPqhfEm/t4WEWxqOsqPa/E1/kiJ5Pk7YrmdqE9+mWG87PWLlh9ex0u0lKQ655K2BOzxxvnrSiMeT8pdZRtI7hK0SxAvC3ARDNt+eFmV9sH5hFs6KNNKmeU21CxBOja+DiP7gkwaFHRJJuTPYBWogRYgUzm180wMZq1N2/UvoPNu3Fu1Kyqpr0vsPi0BdEaclfsJuru6qg6bV16dOiYW41Fy5HO64a+GwP69rp+vdj44Q1TZO7e9JhPhTNH3T6o5fORtAqUlC2Zs4rBQOlhYbhl5fooN+4HfqjQBPYnU4lMQrbR3dbhX+mm2c8pjcOWODEF9nNmovrmY8sLff7qYbdHpgsBkWZ9D7LKlPEANGF0psXr6ouYyHA/+a3HceDZCJ6yXv2XKSgfni5u9x99WpRFCth/GcKvlzJou4D8ukkFuR0lFo5W738+St2i+O3SXhiGn5FagE/jO6SMOy8g8QnxJpxRrku66rc2kbCu4I3RSW1dXWk1L+Bexw2BUqUhsMjWjFkLVIl72YEac2I2n77kuEa+sUa+OscA2Uih6FeWBvnH/CkPR9cMPk1g/EW50Tll683aCYkQEqeyW6XgHf6EW3s/bCLbnFX9Zdzn3wfuRdomyBLf/sNKrWMHW4+KJNeYPvhhlXK4S5Lz8aGlfgGxrsuh2Vhy5bC367+Lvk695IsAYLi1b5PVIk+UTBVEsGflVvZfaNIvLDZns4z+i22NR6V4AXyry57N0EGLATzIKiiIbKUHtr2pwj06mnJoCJ8y+8DtdT2VZN9by5vIfsmkiOF1Z7irKQgVA4Y56qa1nuKZhMlKFY3IEXNhUIzFo83qfMw6w+3dzuELr5iXCHZOB7Hq4y9t1oKmw/UIGOw2qXtxKAJonahaTg40BEdOGB/ghKpe3uvjVtoGtCTjlgYP276fVmezwd7jeAQOHteUPQDcilw51riNjd9VUdCaD01w==","layer_level":3},{"id":"f9c16741-f716-4147-9f51-cd748e8960a5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"缓存配置","description":"docker_compose_cache","prompt":"创建Redis缓存服务的Docker Compose配置文档。详细说明docker-compose.yml中redis服务的配置,包括镜像版本、端口映射、数据持久化策略、内存限制等。解释Redis在kami_backend中的使用场景,如会话存储、限流器、缓存数据等。说明Redis配置的优化建议,包括最大内存设置、淘汰策略、持久化模式选择。提供Redis集群模式的Docker Compose部署方案,以及监控和维护的最佳实践。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":2,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,utility/config/database.go","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:05:35+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kAZDiR5uyhkNoy9DDL9YABhaEGF21FDK2lTOHOfPDhj7T/FDn1Ku8tga0alrgEkw/RnLRX29SXM2cScpouF3wTSEeO65NpPQ3qqRkvoVmI7/Eeg0bM/cK2Jd8E6G+CfBMqrXmpBoSlfnKbzufPSADPQZvbEn9P/riWA9fe9D7wnl7nDDdOyAETPdiUlfUJm0zdfQTXnm9zI+xF+HDJLOPRbiCrOtd3kCj0kpsHPy1dyDK0LhX53PpQrvYy7mVOznIiAMdEi0sxVdvdoX/hJ2mG8QALG9fBdajYUdDJJofEnYoEn+pBMge8BFflGFtG+8KDidpc+Z5MbIcyZ35zpuG/L6+UnzjQqYYmL0hY8Ii+zFjMDtyqWBW4QQBWME7ad1l2KdOSYL9T39EG/6ETY7nKYnrToEXLMH8diq8/LiZ8wLQ+DzXv6eTXG+kmCbkgICkwSRrJ/bPyeOe79Rz9MUJSUA7VflvcUO8U+LlJxpWGMQGGSSkqTs0yFP1zBHKLLJZQEJLrwPnacqmqi6JipdZRnDub9T/812Wb3XrCrmTaya1QcyE6gxdHBdL3c7it5mfTFia24pNkk6uot8k2m5242PnN4Fqdp0YtnhZResM4sFUc7qlNTfjzfUxafk5AJgP6lzaFJsnJf2I71o7DbODP6h5yhF0V5h5euEKDwfCic9MGwS2uVK251XZrmCLrZveGK6yKr/yZMKPOfF2xj0Ybp2FaLOlFw/ufSP8i/eNEvSs+p1uLteKwhCuM1ka3iRjtq+BboN+u/1EthGBUXo9c96Rh838yBDN9cxDVWypm4OazaaN0+SPOzlW6Fe2+7tOxj3fylS3oyDM0KC2YkRchVp8ouMtW0P3dXAXWNFx+dEel7qOuLgfcRdOdkrQhfAsbwSUcjOuksYygd1j4gPTTxYmV/Coj4nzMfaOKq0seHLa9x4VDssXqM4XspnrDeaUVYziL0OeyBOfdlWTA7T9aR8+aCSAnHbBkQpqj26MU/V4A7qmIX6I8hjA6yAtuZS3GvtdbIM6Pr2+6b9N71D40Y=","layer_level":3},{"id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据模型与ORM映射","description":"data-model","prompt":"创建kami_backend数据模型的全面文档。详细说明所有实体关系、字段定义和数据类型,包括v_1_account_info、v_1_order_info、v_1_card_apple_recharge_info等核心数据表。解释主键/外键、索引和约束的定义。阐述数据验证规则和业务规则。提供数据库模式图和示例数据。记录数据访问模式、缓存策略和性能考虑因素。说明数据生命周期、保留策略和归档规则。包括数据迁移路径和版本管理策略。详细描述GoFrame ORM框架如何将这些数据模型映射到Go结构体,以及DAO层如何实现数据访问操作。","order":3,"progress_status":"completed","dependent_files":"internal/model/,internal/dao/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:08:05+08:00","raw_data":"WikiEncrypted:Zb5TNaG1u/mRrgPr+sDyCrIPJ1Zxavjbt9nmnu5AenzUzYPN5uc5C6wzIS8/PeNcv6LLiygnuF5xUDWa8XqJE7IjIV6eXd69l/JtvP6o1P1jy+3cnXGgKfnOxR4u4Q1TA3D/7OQWsDjnaDKwT716Jt0VRpxvRuCniy/osjCX/ffnYvfk9AAIeI7UGuqdi/a/Q0ZNu1ehBfpjlzXvUksWttBcvkkogdMbgQM+B43YQPtYWBrjQ3pwYVOsigQGO4N4gyWkvlt2wL2okMZNmY7VOjMavyD60JAJ/ZKp+VwsJ1qEdZcOqWZRrpeZ2wQKv1saav1NxwksIJpuCEtUQJYLDelN0JnDXA3SBXf7v7weR09c0STFwo2g23KEApdXKD/PRFJepZ72hdodaaVfJCuRdnjC4sGCpX1re073+5Vrkyw3Xom/qjbKTAN3qbH34xa9LnE8/iCyqvJaqZDwuX9tMjlRMhPrQPB+ouFqkb/MzKN9QNbEvTkmEwcWFupDNtIGPRxUoXN4tnwrvfljbgLk6y53vb/a/K+uXmb0u/boOg2Bj7bOb4lzKppPvHOyfuSpPVb3FO8sPJqBd3Tj/Lty0azBKxr/wnC4Dx5suaOY6QrA63paR2w5oEKyxmilj4gu9D37dIez1SA7yVdWcFoRP+JIwIGqiGbAFJl00aOaMPelGtOdwYBlVDp3fTUf2Nw15essR1LYfzzmoS0v9+gJsw/vqR4Fu96KwBr69F4q+4ut2b/gEdMtyGK5nuYTKPKmo3zcjudH/jr7dSyTaC32/Hze8omvIei4x+zrCZHvqUgkgMwD4MtGeC8uMU52QxNoyNs74Xi+flRNtOXAnLJMyP1cZG1Cj9NTnL2jtufAuvPxQK0n1Y+C+jT+l8npdzsFmuI0ScA1PxwuKEbTTTTXih9+pWvY4f/dRtzHEiLKmKEqNjho4x9Eb59qaK4cXiDaalTAZqVh4Dhp7Mj2L6UhsZEDW5njhNwA3f0oWolJ6kChm49sIwpWcOZsh19LRSYe42TuHcQUa0tRr2ueRqlBercZSw4CF/5VXd3LkOziPF8aCmtNIyYTbGpIG8Qi1SN1KQdDpGBFOLe77qCuRe1cDay3STIZhUDzGX/J3YraqBu1EAxAHbnjBJtPyPsJ7Wpt8H7OqqWEkFcK+dWqP29W9etK1hnqDuLCIwJjGiKerIDItCmJb6IWwuaj07jWyKgNpKVYoLPfw+8ouy5op44yeqEACM0hftf4+jpviiOqtoPCOE2mYjCr1CoPwvteOWj95x80op60xi7UPRjRqsCWeg=="},{"id":"93bada60-b20a-4977-b82c-eca224ca34f6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"风控限制逻辑","description":"restriction-logic","prompt":"创建kami_backend风控限制业务逻辑的详细文档。深入阐述IP访问限制、地域限制和设备ID限制的实现机制。详细说明限制规则的配置、查询和生效流程。解释限制记录的存储结构和查询优化策略。描述限制检查的性能优化方案,包括缓存机制和快速查询算法。提供限制规则配置的最佳实践和常见使用场景示例。包含限制逻辑与其他安全机制的集成方式。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":3,"progress_status":"completed","dependent_files":"internal/logic/restriction/,internal/service/restriction.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:33:33+08:00","raw_data":"WikiEncrypted:rmn9+OO+cFYNLeMVIfracfb63BkhhjJRyqXSuaq50u8NkbHHDfDUH3Ca5Nzi7BICsqkkjM6/JbGxGiDJum6puODFwc0XVrFGf1U+T3ppY+/l7ubsf7Cq0hWzVGfofjO8CwBujarPvK9ExMiTDu025Rwb7jUN83Lb/JtpO102m/RriiKTWdi9aNMMkkp3W1AiSykNwum7Y0nIkZrCVumEqNV/igPyvwAD93jEa4oNpXCarHJ8DcdrJwfPvG1U3r65KvfI6jQostXVwoJJylWNL+CJOyoYXBZqwbZZ4UomSfq0cn02py2oooaRW0XhIus1SDN2j65f333RgJCZjNPkF2JNAMF4diAzD6A3QZHj9M245QSoYy0/jB5M/CWJ/bvbf20OMhNV8ksFDKZqZ8vNXERLVA1Ji6qNFmyoBuojPd+ojKjfbXkFmHvKRYQSEsK1CrJ/o03kvEDiCyCWjWqGg1B5/kSYC+eUhE9akwTemjnQPmiPwDPyBhW9GVqAgZpk7/W3gEJz8sIba4wStaHry9+Wcvq4oZGOcxL3eccP6Cw6xTpstRyPkn7bQuS/B1+CghM9X5qDMhZcsFLAVmXBmkMnUckcRmK6BFd6AZADu3Pn9lqRed2eOoOkjCT87iJCw47E58Rm5AJh9+zo6JSiCHhS/C3C13ZX9LGMgTyrisHtz+73RbcV30J61OtJbpAu4GtbyWNDhSc1k4uanUxHKDQvgligLfogEbLuOB4nJB6ziKC6Ho+xkMdnsk5xDHr5+RWwDLHGQ3NLvIKl3eBRjKOM0zu9DYtTytEQVHLkAwDQUlaRz1w9FZR732JXjtbwR1x7DZGiSUNNiltyTZNlpvBQ2iCPqbTZ2hOAdetVTrlCqYfOBPpeOQ2W62vYDXNzO5dn+RvQU8N4Ullm2QwmoAA+0GnWE2JrnmMXwmjcHCvQCWRFuPtD6FAl05M6Bj4+4HTrCsgpDtULVpdsgilGafLN+ARsqMvPjZRZnEc0fJM5jOhW4w23RWJLz0r84z9x0m4Q/ko1yBSoLphHozReNnKcjztw+ayMsmwD9pUW+AIzVxamjFjXV2B9cGKmIo/h","layer_level":1},{"id":"f5173a3f-1bbf-4ffd-aefb-fedf3a92a65e","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"账户数据模型","description":"account-data-model","prompt":"创建kami_backend账户数据模型的全面文档。详细说明v_1_account_info实体的所有字段定义、数据类型和业务含义,包括账户标识、平台类型、状态、余额等关键属性。解释主键id、唯一索引account_id+platform_type复合索引的定义,以及与用户、订单等实体的外键关系。阐述账户数据的验证规则和业务规则,如账户状态管理、余额变更规则等。提供账户数据表的模式图和示例数据。记录账户数据的访问模式、缓存策略(如账户余额缓存)和性能考虑因素。说明账户数据生命周期、从创建到注销的完整流程、保留策略和归档规则。详细描述GoFrame ORM框架如何将账户数据模型映射到Go结构体,以及DAO层如何实现账户数据的并发安全操作。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":3,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_account_info.go,internal/model/do/v_1_account_info.go,internal/dao/v_1_account_info.go,internal/model/card_apple_account.go,internal/model/entity/v_1_account_history_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:33:34+08:00","raw_data":"WikiEncrypted:3dIsHCE5EGeVKP2C6D6lOCkvNeCOXjZSxEjRTy1S7+/QWb+uLuqEj23E3Do63zz/VSQitRzz21hs9T6IKnBpbmFXXMfSvZCOf+XeR2xuRYb1wH/WgEYG1zwq6ZO9CTp5cMDe6P1T/h6F0mbTsnvCrSvEKO1R4fPO1j5lneD1/OwacDkV0fCoAoDz+bX0fIwhOjm/TH6hjDIgEJxqPJX+FgDC/cj748gYlAdIVVehBDfiZ2A0qRNeJ7QLMjxkgtpMDnB2iX4uTRow/hXyREEEK/kCS3G95VWuqp71XOAZ1Ez6C63OQ3cIF8KqI5pxvkeO/Xv0KaIrRRsj7AE+MB2EYoh55cH1jek5Iwn7tP6HRyYfnHa/nnO1xK/+17wlcLkf29pTGgu5PLrzj0+uJirjORrc3SJflFtiR4BSzSrSEdT7PNVcMhc3fViku3v3GUuD+56BPacBo7+KZLI6nJV+0qHbPv4ENuxHLu3TxQCqgjwJtscQ0GjsZFx4wm5+jOx20DHHQaOFsUymNgjT03Si9OtMZPnSIJSz5L0ypcgifxGHSh5D4PuO0cxVgWA+xSyOLnx2WRIIHEFgXRdGmwzvx3gE5/4EVh1ezImJ+4JhY0/lOuvWaIWFANAQvxBbcUAPiPnzlwcMWHEk1kPqmQ/LEIJRBQY1N8JxaqtCxaAUK+Bp1a1Ufr4cDO1lMI4Jjk0Q6bP6gpuSkETykx0rxYSvhzQg4ZwdG536wrJqFg0GaMMMfXJlSIeBh0r53JKdO6+6/km6NM1JYA8jFgychcjGcay6DvFDDgNCfSTJClp3sZybNIbWNT692xtrfAL/tLvkmM+WPGdIHIaLLD0OU5jacGmK0GKQwUetfgUG0KHrQkLe5OjN7j71O+VP0EokXMXnF7UkvBFEuXvjFT2ceyGAmuG7NSdtryzFM+oJxhzvS8ybJd8MA/cyDsij0uHnD4dLoQvc4E7Ree3BW5QEAIj0zfp2+dZSpkG1ynDuLVc70jV+eJX3znkvFeTx1nAzEFzeyiKaD3CsU0LZihc2TxaPMKtslWoGKelrGN1cPJsfwpuxRemP2rVcLyldPD8PH0XCT62SmfejaULlVU+zpO2za4huGsByfK8xYeU+tKUJ03leKqFSC0ql/ggakUhbQ+gaID+PI3Smt1AkdzBD/rRQHaNGS1XSAeXLOo4xclv0Bg+6VFm0EStFrMc4K9uSlfje37HPvFh1IOZK6y2vsZE0kr1FgcFl7F1F4WKJeOm6LsfaPWfjvwpcxt+Kd1JoFy+c1ixuqNFpT9K+4fsxp48ww3R7+FSY/7n/vVJFByuMerlKpU0S3Ad3DcoRg8SUs61sHHrIiyCd2LOZjvw4cTQwm00dYZW/M+1BNHluKGWH7bH9tMOmV2EZbRGkdB4kMfRAiZqgR7+E/fa1IWyBA+UROUr2Py4e4ao6WMhqJMwG+s3mMH4FkDfCuckeqje5zrUAlB81rWBIA7rlXui9i2eAIe/jQRlse1kP7mCieLhwFHXD4tGmzjXMdL3TaFP6a/ZlJw3rS70yZnloNcsJx5ABM2vD3qKVomGE6SJ9405a93VNO+tSxIQE0VwP5baf8Vv+9WzExpT4NhHCYs3htDB+2RtiPJXFL8GuS6UhD8Df3D7fzUYcVVU2vjc6avg+ekXV9k15VzJRY4fkOwo16GBMhz18wToI2o4TQ0HMlFOBU/6UBCh2D+2bxy4F9YqYSZvDNE5jhg7gA8yngafc90aA7w==","layer_level":1},{"id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户管理API","description":"api-merchant","prompt":"创建商户管理API的详细文档,涵盖商户配置、部署管理和盗单处理等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括商户配置管理、部署信息、盗单规则等接口,提供实际使用示例、错误处理策略和安全考虑。解释商户多租户架构的实现细节,包括商户隔离、配置继承和权限控制策略。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":3,"progress_status":"completed","dependent_files":"api/merchant/,internal/controller/merchant/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:34:16+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPybGcuuvxRs2CfAl0PFcG7KpCNLgP8WOvFGabZLnsy2GsEox7gQAXhOjRTiMKQFzbYy/K9GotmGX2DI90LPZsAe9sSXhANcWDT9nqO0uGP02OTRTaU91z8NAKkJzcQCy8lC1wHEYEHYcWf2Lx8YWDaX7dmfJr9Py6QmhKrP7IiXXndM58ObteVahcfVS9RkUFhR2ip7tsNTVUDpwvtYtKD1jquWDRzjcmvWx3hCMXwiHOKKnvVJKzJ57Eiv5h6yBL6MA1AVQ8cz4wASjv8ELaAah8GB2VFp7+UuNl0h1Om0WF1CkUQDZ+C1+4LU6Mv5Hj7rRrGCz0Zopyo8fAF+VJBGLijJ+uszi1hpN92Sbtam8Qd5uzNQalK55BPCCDCb281/lA73rAZVZZQbe7RlLv4Zi4xEw+OgQjuu2I1SzSq0+vu5JOZfep9xjXL9ULwBdna1tswOf3w1mpQo19IRcjaROAJHtbKF+hbDSCi7vS038aD100gLwN+uG7ZQfgMRVr1QFURn9cVHuyb26Z9NLxTwGHUHj4tDhqXPa6uUDZBbTMGF9R+Um8Hj5ARPqearUCzBD3vJig5KF1yeLYcrGh+WBpXpyGD2wlqNWsxcppyRjKz88diapNRnTa21zs9oQpSSOsTfAGUTQLpQvsSaV3kLIDV07sCC4k4fKapYgoCCMeJmpNqAPP/6M7D0raWnNf2DOKMQdyWzbfn/upcYP+lX9+X5uEzBZv6YzEBQYfsK1Ah9FjHGValRvXCKHFFSgmxjcfUEHF8vxOHPG4ODKAcjLz0VHQo3Ec/EJE67BXpVP1rEz306Io1vwGLsQc3YF1qdDimMKJCcxgUSnYjJyhtHOHNG17PNQfNwOOf6lLJsEXjn2jR0mO1/3hgpgxXMlv3tQHcv8aFQ5lyjjuXFjies/ZQOnLQ5OWGOYUN2WtrxyMf0OA35tMf9WUgzkIY4uYeqNskZqV7jQcaqB9OTOUmVPO979hfZZemNaew+jBfMu9Ib3NsGds5XeAp+ep4qMyU+NErQiZShZaLfokmfng9Pb/OYBWHCwMOwvb1TVpcoZKxBQKCNSo/8y2YUOQiUrlng==","layer_level":1},{"id":"f6a6925e-fe4d-4480-858a-b25ee0c9c478","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"双因素认证","description":"mfa","prompt":"创建kami_backend双因素认证(MFA)系统的详细文档。全面解释TOTP(基于时间的一次性密码)的实现机制,包括密钥生成、二维码展示和验证码验证流程。描述MFA的启用、禁用和重置功能的实现细节。说明MFA与用户登录流程的集成方式,以及如何在关键操作中强制要求二次验证。提供MFA配置选项和安全策略,包括时间窗口、尝试次数限制和恢复机制。为开发者提供MFA集成指南和用户体验优化建议。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":3,"progress_status":"completed","dependent_files":"utility/mfa/mfa.go,internal/controller/sysUser/sysUser_v1_totp_set.go,internal/controller/sysUser/sysUser_v1_totp_image_get.go,internal/logic/sys_user/totp.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:34:59+08:00","raw_data":"WikiEncrypted:1mQkBhU7zMZB1o4VXQ0tIfCPNGelihAe1OHsrdClRIeqyrooM3s/X6t2e/65cFvRA3wivlmlEYtSHLhr6beRpNTaPYgjZfzEefiNa064drVQuuctg/mfwIsGR35APO/VDcX9ZFkziinBYT5GRdGH5ocOSmcRtk4JQHpWdkRRlQrMDfe7USm4d6Oy1bKF+J5efS6sSNrAkUe893l9uLmJNJNDuX8NQhkyhtfomjEQPi9Tq2PcSrOcevwppvH6NtuSalX5ypD1YIkUl7ZaEU/1zObuuUwph64pUX1VrHBDvkoVgczCFtDgixQzLQFkh/XRJfx8ifGiRBITvz03ll9cPtj4NlDkM/IAiuYfHRgnRQ248qf9Z/zug9sf8V/9kxC5a2c0uDkwN5ZEz9hBXultyzCfA/PLYJioazACT+wyP3ijM01HLzgMCnj7tORPOujRUXAtsibTde5zPgI4Oy3+oHYfDt2DvdaiaYXnnX9yTTFjKiI57aPg/ib/mTwwclY8DJAwdLBeyYDMceMfL8lm+jNCEGmKZ9CIckBZtPvoe6kBU7NwRYKWs7g+u9s8eBXs7AP9tG5j4RzOAWlrCHlKdfGxmluqwa64nimel0aXHugmUxB0Ge7ZclnFH0eP7+8p2tm+kmoMeRTeSJKeipKT2+Hxgjax3jvErOcMx8nV7srzcSx1hEyOVaJdzmiKetumFY7oJmRlw3d7iMbAX5ucyYDBLaKt37QwdApq5oN29uQqZk0j03vcas/2T2gV2G1Ob2jEU+U3MgQhM0ZjcESR6TfqVO5FjNVF10M+EGHnIsbiMD75Vl5inoVYX8CdrQL5r2Tj43GB4IfYDl9xD4dC7AvdBocGwVGsNe/N7DKKbNAiqb2DBsy8fVoqBBR0GfiPID3yImKzC/4ojNba7ZDhr188T7grgn6L0Wq5UF0OWcE3jZliEtTXueK0BaoSomqRtELn4g2fivTK5YW/cJf7OyfQTG5FwHXSIbeUrQlAjkwVcIg3JQ1+kdSylLxeYK6r5TALd0O+JvdCBPqyRIbQ+d6db5NS3SjCVlQJPnqrx5g08XCdGkU4pDyMtxAcCGAXpMG+5zmqMOMTdqJQ3S0myMT9yM3z6eG8PMg9FVk/jA1OcL4EEcHrU+sdjY8TrRM79veEkppNqBl7WquDxxhnybGGchFvshdWwZQjHVlZOvDxCQkBww0RzyvWA5HI/jCd","layer_level":1},{"id":"e7731430-b57c-48b6-b326-56a4297fa5b6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Kustomize配置管理","description":"kustomize","prompt":"创建kami_backend使用Kustomize进行配置管理的详细文档。深入解析base目录下的基础配置文件,包括kustomization.yaml、deployment.yaml和service.yaml的结构和内容。解释overlays/develop目录下开发环境特定配置的定制化方法。详细说明Kustomize的资源合并、补丁应用和变量替换机制。提供基于Kustomize的多环境(开发、测试、生产)配置管理最佳实践。包含Kustomize与其他部署工具的集成方案。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":3,"progress_status":"completed","dependent_files":"manifest/deploy\\kustomize/base/kustomization.yaml,manifest/deploy\\kustomize/overlays\\develop/kustomization.yaml,manifest/deploy\\kustomize/base/deployment.yaml,manifest/deploy\\kustomize/base/service.yaml","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:34:17+08:00","raw_data":"WikiEncrypted:WN+mr5UPYRkQAIvPkaSGEMgGA/r6qHO++eNCqp1GOm5Famwo2gREIdrRZbFYAcnVfzuhWGEYNkfqjO12Wdtn6OVY8JsLHupd9bhIih9tudckvDpIpZj4Ki88PM2Oi9v72mz4Hdd04K+K1QMYq4IH9xDjfo8RW242uY5KblUHeNf44iajTypg96u4nFfW7x4bKOUcMWVXoDEDC7J3vi6mGwl5XP1ojo5qwTFE+q/LU4euWP/RJuYV3y7VXwgXNWLnS7DyzXbbgmWexxK1a0cO49xAF+IgBzPUSRwJQDm1x/p2IaVPaKkVxEe7bgdLGaLrjO/d2UAmGlQXxJzTZafLJljR72QxsZvQPDpuTDgtPEClhtk55C76kYSlCtBZO04L5ciAnhrlH7Du0N88puX1lGxLJ4THQP5l8sQt4hvEcMQnbnfC9j9kGpCJKdcoyzPlJ+nbHvge1aEXA1UR/kkti8qNaYRau90WS5hn2y/bMqBKoww0+uG81JNWK3QSHXf8nZ9TOtkial1F6sqRgNNa08N4YuUtrf1Ktjyqb7kyQBzi/dQMasCJsb5lYySDv4eXApg/Kwhpal9B1omiTGg2GVo8lhpxGmUl8BnlWZDBVu0OnjjY0Jh6mlpqomtXjDlRfX49va7iImq4tmiZ12r7EWgsV8W6Pd8aLL0nC3jZOS/5hIcZ+vCU9ihoiQor074hyDtzDUFPRmHzXg1Oht8DYmiaWH5MCHj/kmpJDZrFw66nLe4IU3//RdL+HP3+1UUx2AkW24TKb1iPzflOWY9pvdIpA37B6IjcFJE8Gv+90T20Htw1nkFFQlG0QsNClNVbmhK+Ra9EPzOl3giD2IAzvx+S4oHbefenQqz3KSBNsV8IVoRbi6af9sQKjSjXOuqrmMefgdKvg7F9LJGWIvhxre7RilxpYZR5WGAwAKoa2G4qy1DUwj4OzkD8eH0r5TvowvEuCHHcYUC7gc8Vf0rqX8ZbFO6bUy3pjzRsgeX4YboNgQ/83LYdF/+YQ0Kpno6C6od0MbxPWfWz3pswD1Y8cSOuDHGDkx3pTdA02QFKnupx1wUtTzwTjy4n6B+/kpKURZSdaZf3N3YL9vLaiXkJWC21spdhL0UQyo1qnNih+AkOsbQmT0n3VkQtxOekCvPPAUkvmvi0J9ES87PKNzsU0GQKPyjv6SO2Q8Mgr+6KAeoim/7T7OH+x+1qLz9+T99A04ltlDvuEdmlMIABxVmhTPZXvbQOxruqW838L6JrHQZVE6i2iBOd2BXuFiSoSxNN","layer_level":1},{"id":"7171317b-83f6-4146-8818-b00d88d2b2b2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密管理API","description":"api-card-info-walmart","prompt":"创建沃尔玛卡密管理API的详细文档,涵盖账户管理、订单处理、分组管理等接口。详细说明账户创建、状态检测、订单提交、分组管理等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括沃尔玛账户Cookie批量验证、订单状态重置、账户分组管理等场景。解释沃尔玛卡密特有的账户状态检测机制和分组统计功能,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注沃尔玛平台的账户状态同步频率和API调用限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":3,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/account.go,api/card_info_walmart/v1/order.go,api/card_info_walmart/v1/group.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_create.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_callback.go,internal/logic/card_redeem_account/operation.go,internal/logic/card_redeem_order/process.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:52:33+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBp9VMQPniJjC7MmBrb6ZdbLGBmfEuxNN9Ju89NloKGS7u9sYWjyr3dXMhm3kDUSOZPZC9/KLRjcFlQhIuYfLO7R3L1hFLamXrba3/G+Nzuj/bA/n0ZCcGJ9Dvu+Nuxym5NVi5sleNwjnsroBcq0g0gN7jqYlqXUpRU78rBE12fWrFZ1r1SGkcQ5G3XsL2baLn0N28+pjVfzwy+BupbPPYcsQJiZ4WhRuSzumI2qBhiQuJwD158bGgEdHMOXShVwCItaG3UMtNncIIQ2xZfu4QBG5haVlAYHLXLodz2eXh2KTAH+LDtNmL+lnjDSC+PcuOs4m0eNaH40XLWCr8wm/2xoHW8syTo8k71o9BL5tjPbkAWBdEqGUX+MSvYAqSImwkr8zV+bwlZB3Nn8u34UNS2r7G9nWjj0PAJDbIFdI75aDMbE7PL4k9rbqrUMnYsE+Zkv3t5kw4SgVl7kpaBujJTYYMAPSDwxci+a5k+bOzCBigKeT6/833XPzDZUhubutA+gAzsbuzfe0Bp717p/RGgii242yhpRT7FP9KBT55tplJfmyjrA36i2xNCzHUhmmJ7YrjcW+8X1Xub8JqcOtwch7kUcBA+lcela+Lp2fvDYA8C5OtkULqkus+CLNSvQiOmPuwb/FoxBv9zNyqoM/1hUAmKArkIGgcApFbz9NXzgpztrL8N3/vqTfZUCBIPXc+xNcKfucg5073b2evauSihZKEYGedMWHOplNMgmA6HU/ft01XhjNFzf/PDpj5rZBlSHF0eLx+QtVif7X0NuMVUpZlBm/Sc7z4eAM6s3LMQHu7plPbUmPvo/32b3UJwYbmE4dbfO1lDrfcHub8DtESVk7Hhcf3faojPEucgecblz3VioJ5WZJUE4qMNmKn3zIDTZ46pg985NGUdnntnViNlkLBz6ygGygmeKaevxHa2Oa4/85hNG913mc4XOv1RdZ2AcmqUy8DXYPv80lSkaYr6BjFW+VBDH5xqmUI77J12dlCHzfHYq0kDDUj/JXk5CKaUg2bvQGs2Dz+26gCfJb/4i7Ypi8lM1MScG0Fwezl99C/DaxBJ4zZ/xxTn5giHLPHJdqqs64z5gnRs1rGd9d8KDE2GYy5Rymp7U6khgtMMdspybPgYuSu9aU3nPBFpk0WFm/V+6UOWdxyBqncJvDQGvJ0SoKZo0FcV6lvtsrMfF/FuiGEYor4goIcRNvFgBiOcW6z4dhjdUYfrOrDWA/GV+uhvca+HPt7kOg4kWyHlgPDfxLqotFw1cImhvx2+yfYg7c8WiQ7UXMA/3zQuTvWgM0su3coR5fVgIQ/nLjbMO1htzBmHY5bB+3qCo7cfXmQeG4VKLx9nS1x6FEn9cd3vF1fYkftJ1yDINMXmFYM6hcXTo3F74IcLBnZ4RSUrYHIus31uTllKogCJuHbm3vBsJqXxYmc9qQSWxgojRPXyY1HOh4vcM2KyvBPM7cIPXxuM+peTUEFxq4kSCDM6fz0s91MLxiRy9O0jnVhHe09SQ6ZA1T0pl0m45y8bx8FHJWBG8XHsi3LgE3aojHYr4yOfFjLUCbogu3SrQwuQB3ec1+2lRtFrjXKZR+KJDHFbtSg8z0ZeMzLY8HIXtvDLETZeN+n7LU6tuRkCoSgVSoaDsWzBxg4cRcsesVzLbUVZ3mOCO6LKk5UHN9VwA4NuPM0GMImGM0JbzDddtEIp5AWn82LWho1gNrTmRb5j4VdNb++5JXh2fs4dHPY4VifkewjiM=","layer_level":2},{"id":"6c7962c8-8824-47d8-b89c-e12e2ab0e54c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛平台集成","description":"walmart-integration","prompt":"创建沃尔玛平台集成的详细文档。重点说明kami_backend如何通过redeem/walmart包集成沃尔玛API,包括沃尔玛账户管理、卡密兑换、订单处理等功能的实现机制。详细解释沃尔玛客户端的认证方式、API调用模式、分组管理策略和错误处理机制。提供具体的代码示例,展示如何调用沃尔玛的账户创建、卡密兑换、订单查询等核心功能。文档应包含沃尔玛API的配置参数说明、请求/响应数据结构、分组管理接口、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何采用分组策略、批量处理机制和状态轮询方案。提供常见集成问题的故障排除指南,如分组管理冲突、账户状态不一致、兑换速率限制等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":3,"progress_status":"completed","dependent_files":"utility/integration/redeem/walmart/api.go,utility/integration/redeem/walmart/service.go,utility/integration/redeem/walmart/models.go,internal/logic/card_redeem_account/strategy.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:52:19+08:00","raw_data":"WikiEncrypted:OzcNx2L0Mri06+ni3EZYPtfJLNsyrYI82HyHl2Uze3V6HVRrHnrR/zAu9X4/MF8+wiRjtDmvfbBQUsMyVrZLoVe07Fw2ndFvLNrct2Aj6eGECUBCYp7R61S3B4Y+hvV9Q4JWZJ9VXmj7S7AzIdGyDwtgTPN12QeXWddNScmrLGJR+i4xUkmJYb0gH1tqkMMgIJOkBgS0kp4W35of8tYiqPg1AEsY7UQtWisafG/Tcf3nKIksjzWfa8IFwbzk7ONbiFYEsuL2DuEdi6Qb8Dj6elJkBs8UohFPMZ6P6GhL/xD6qPXAjKccW5g6PGPbGuAQeDUk/KDWsreIMp517iRJ6KwG9uWo4w9Pv1JQAbXz1VO61jK7xLF1g0yuqwfGKNSXgu7RspOz/GzOJJJyim3elcYnwPxeEalrwg7MHpLI9axAT0Rpw3ucJGe162x49x8UpXh3dMwbv5onPNGZMJGSlkA1r0Zxt0squJVI1DcRvThVo8LqWfb/DpT/cnMS9o5etN2aGljW4pcst8YmHMz26NixB4J1qCcujBX5zq3gO3j4LdVwUft/TY0UUgk8+GWPT7ScRIscW2fQ4ZqkPD7b+8scY3Jyj8zj5cwxsuPj+CoApFOM7E+2vMEqJMgk5FOiR3ifpe1Wi5tUY9Oxi5gO8BZkY2kBDf4Wsi+O0LO8FMwRYX+mRC+vurUDehJS/ZE9oF0D9LN7EbFP1DT3H9meuOfxLgweGLEyEAvl1YOP+Wmx0bI3tS03IG00iub+slBIkaIw/icokP8iscEhH8R7yJIypFs6JABPer7FyFe5ReA+NgjpOMO4i9uU0ikaHPTnrx3hweE9+73c+fEMNYtmAWXQTnVtKoD3GNFIbFbrTEasYnt7LHcUTeQ8+pE3nNcLpnYgtAKF2GPMZxji121Otiuo3NNhn0xuPYl0exIBH0/BHf9SrM/Fl1K1MvjWefGpuG+u+kwYx8Ln4tJGFjlovXNBue04DRpSSSweVDkyRZ09evR1UdPNbw0eUXqMBE6WR1LR+xI7AdjMhQNlEIfsGUQkTAKIl7OdqiXWko+aOzb0NwMXmZWW45HrNvKqKCqAD9vf1rGQCR62IgIlRXHNv8hJvYELm5qMX0dQgNe/QMhPAE9eRF27Vf2rgFRXeF/lrWrU4/uCUQnWCWxot2ByhBqsbzkGDCtU8mbw6ZJafAgaUvTjJO9PlWtRMwmbQvDCrMdu0zfX3Jstvo7M5qQh5szfZHOmWYdhfBLhCgt+ES9SM8KCT+W38tpypaFDsyvVYGb+kW5Chaka+quKwil7m9+U/Vm3hd7IrZ6zSFk36cCDg1h9i1QXf1RVWZoI5ou4Uqc4NJUy9I+EknWCnKtwc/qZonk59yISaTk5RWZx/PMu2RgllCz6dpufR4Wd154rdJiCw0aKbSdvG6o2gpnFaL4RF2YiEZChOg9NLuFgImpiYt0c7ND4vj8MxGflwX09pWKJnVHxNX7eCbdkC9rUX82bD90fgosEcQ+lEYtUY2/QVbGyDpNHAFUPUT2RYVjWysoqM8BKAawuBKw44ADOeZMgQ7SbsUKPzMet0Anyai0PUBDKB0JfXPnAxjIaQN6CDIc8Cg/ZHQySooABrL5cf8O35gqIdYMvBd9q4dgmSBwITyTOxQyrin2MVbfSKYSrerIPUP+PtOBz4uk7ccLtZcwAyhsJPqvMNVW4z0Dpy2t6idwrzuY+4+wKe+iLAaJ4OM3yubgDwvO2CT7+33DAzKqCrRQY8HsA00Qmdu3bM6k=","layer_level":2},{"id":"f7e484b5-92f1-43b5-8bf5-9cd33a035658","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID隐私保护","description":"device-id-privacy","prompt":"创建kami_backend设备ID隐私保护的详细文档。深入阐述设备ID的加密存储方案,包括AES-ECB、MD5等加密算法的应用场景和实现方式。详细说明设备ID的脱敏处理、匿名化技术和数据最小化原则的实施方法。解释隐私数据的访问控制策略和审计日志机制。提供符合GDPR等隐私法规的合规性实现方案。包含数据泄露的应急响应预案。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":3,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,utility/verify/aes_ecb.go,utility/verify/md5.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T19:05:48+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvI31XMJ25/L+57ZIBwtcM5REl4fdp7GotkDn/eZBYuqu0ocnWyJMPttEZL2wffxtzrGN4Ui+cCTKiBWUAo/YRtlwF0BHrV178pSyDk02tHmtG5z0OE3VwCYiJAdRPQan4N5o+RFMluEyZnSqhiMHlih/kRM+hUbdobEMOB8KEMOuGBsv1+stUGRqQp/R+OuGBcQ6wh0+z+YLolv1UKhmH6UC3FEZhPTSTvLxcpYf6/vCfUJS0zOrHyITk4yG07g/Y3QV6o+STvgQTbZ/4zfY3fQbayuef67C4oGqkMILUajosDtVQmhIM9zAaG5H7BVxzBKU8EVyco3rHWCjrHJhCGAqVuz0eu/PIrTAwib9TMNCzC6WAsIZ83KJancA5x1IL3mpFzYPs14z8bghK+/yXtTc4jVGUTsmUvRgt/Yy49S+PjswW2fOlG9BsQV6ztPfjhifouB3UQkAwx6efk3f425Rv8cntFg6hJ9DyVXcYEbQVixu8LBhSoqvm0DCJPPffQ7ZDVbA9jAtVYbvgUUP3SvX4nVW4KfZeLG9YZ7Zd8IYYGYL1FxlTYFSA6m1377dSYaNf0aQA6fziWmKxi8r3iAAEg61ULS3H1pURSRFOBwyDfEvLG16/ztt3NqiMxJwgBv0POoSVRSQ4M0kUivWxi9Jq0VHWdQ/ZKqwev4OcVPqFnDL6O8i01Phw3IqdbK5q1LnCsi5Qgxm+t9H/wmEi6TcUJcXx7r8lP6KY5LLA7qeq2jb351tTLZ3vdwNOauB0hobuExwq0nlPfrSlZxWwl5rhX4iRD+kFFZK4iYXK+Sdqi2wUxIZDDrtbK1HEau3mmrvVrso1VXwZIe+w0Xj1y1iPqAr1Xq/8v6/WejcGriMp7ciotcoeHcOy3ffTSoV6lnAlTlZQ8EGETczBAGi96ReFFLjbsaxqqvtOmuYR1WV2ohPO6DkUKh3GhGUNNpuIqUpN09dkl32ETskx1sUbTF9VkP0fvDido0h1Me/EgC2","layer_level":3},{"id":"e5c8c7c7-0135-416c-a55a-80655940b9c4","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密回调机制","description":"api-card-info-tmall-callback","prompt":"创建天猫卡密回调机制的详细文档,涵盖Agiso回调、订单状态回调等接口。详细说明回调接收、验证、处理等端点的HTTP方法、URL模式、请求/响应模式和安全机制。提供实际使用示例,包括Agiso回调处理、订单状态更新、错误重试等场景。解释天猫平台特有的Agiso回调协议和安全验证机制,提供错误处理策略和安全考虑。文档应包含服务端实现指南和性能优化建议,特别关注回调的幂等性处理和安全性验证。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":3,"progress_status":"completed","dependent_files":"internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_agiso_callback.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_call_back_order_manual.go,internal/logic/card_t_mall_order/callback.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:06:43+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBoebvwpaHfPwY96ZsYHNOSB7YbW4lEnnUYmwTTOYlPJ4vFdOgmYHRlja5WAsIIMSiChhgejNqh98FydD01AfqU7fcD4S8JSlDh3f2l6XDHMsJkUVy1hXRwgZQCn0Ezt9vkeKjs/e6IC3CYyZvT02aI21wgkPUt83TpGKLP187ArVUlAK/TznGcJjC4y7KFkDTVLOGxzn5fvyuCOQecg8p3kMIUh/K5A/GFm+jA+bb6+jwwUhHWS5JnpXJypGX2mX2+YEhLShHZ+qSgJTL++AkYqlCO7jAqme0get6lTfiYjoGBTpCAF26VECJDm0bdEVpHHk2zaeUoIUKBAWL9r0zq0B3tv9iWLODIzmCL4Ewosw+ZhpaZgDNpXxD5/vlbOTtBMz3d8Cdz26chtvCpU+X4Cl4FPDhiJ/t8zHDKjsoWGQd6yWmTAujUeQT2VHEGO0CLznXRmj6phog/bLztxYbcwoknZzQ7YRe1BXgU977CAMyaLJoyYYniWcI889Ml4GWFIwmPvDPSnSU13PRpHgJ6nYWr6LEbFRMzR4N36PLzyTIEbSOLhLXhB6DTi1f5oC6bWAFp+S7bXi4EzOePVFaa1sF3xwhEDpbl3LCUoXb3eYJrfFEmw9ON8TQrRfO0dD0pMCsJslU4/kymto9cNk3wF1AnlZKVdPhgKjA5nISWn4y3qEd0QYqHlkn9x3Tj9p3gQw1T5eK3cjxz73UkeKzhaA7rm47nu5162jt63UFPieRudaKG6Ru74Slq8kWgiOhZeNlkdbJiMcjXRc2sZmDgzerXou+3Obqykaka2KjnItdiGnhETAK+R7XYjpgNZs4xh8JG4buz4qA3o33fFpkJ4X21y22PfMdINjUWhM7lKlDHNGWGTKN2Fo11R6gBqmNKHuV2dwb29TQvh7rM1MbVaCQfRUx4kCXIagpJuumDlgQJD3Q0Qjrja8QDN37QrwzFObq/UkW2YRIJQvgN0CVJQziPS9kkK1qZ/wKy89VuCrrZ7vOb8Cu9P+vXdXkZHbWCmpEDxNj8/6H5LMKhjjbs6rfF/sI7wQpscsl58UgmG6dNNd0z9JClD/IK7T1tnQYcI0AxI+TiUiA5omRw2OAxAiT9vVATsG/o7mh1tRzHFX+mve+Eaubn12x4txqcvHN8fTp5qf7dUlhox9Fu+9C1d/Y+7ua7/KC8xdSRT1WLy1JCBXEDrCeNt7QcKc/V99jFxEmybhld5sQrweYYjqNBqGNuFW1KMzjLSzkCvs7qunv5akWJgCnq5vRPqVo9YXdPH8Olxatyx3T+IR4SHo2QHov7891HAm9HqPoPQIeCmPJLkaWQAK1LrAHKeV6DrsTccJatqOd479X+bmA3H0lf4=","layer_level":3},{"id":"f72acdfa-67dd-4c2f-8c3f-17f119b4be62","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"部署自动化","description":"docker_compose_deployment_automation","prompt":"创建Docker Compose部署自动化脚本文档。深入分析install.sh、install-test.sh和install-one.sh脚本的功能和执行流程。解释这些脚本如何自动化执行docker-compose up命令,处理前置条件检查、环境准备、服务启动和状态验证。对比不同安装脚本的适用场景,包括完整部署、测试环境部署和单节点部署。提供脚本参数说明、错误处理机制和日志输出格式。展示如何扩展这些脚本以支持自定义部署需求。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":3,"progress_status":"completed","dependent_files":"manifest/docker/install.sh,manifest/docker/install-test.sh,manifest/docker/install-one.sh","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:06:32+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kJNHi1rj8bPlcMDc2oqYiBBB9d9qOfkyH8LrF6EG2Q+eM1G861Cke2aeXMWBKIHmIfk8qnnXIkNGF44BMoK2xo8tqhB2Q3qwmlBoetUgkgwa2T78PgfgYO/dn1F/QxZfSL6FtNPIV3kx00w1lLb8+ZJL7vsA4eLT2ieTW/24xeDu805exuttMjC7Yw6NbHRb/Yj5XmzzXj5utTiAt1HG5pZszLt4xGVf6C6H6T6gXZ/9gpTCrrqOWsc+GsQFZnb1yAb7xXQPbLZf+uGGBOO3NLzB9uhH7uce9XgxyYawq2zqct6U4uNmE1fvKT8a/tvt/mllajWpBJ8Kum3N94MSOq7kNwzorrV+uUC21z4LFx4Dy8KPQPJU70I3IxfnXBX5Z4/0XpDkmU7+GjswBDAb0nDk5mveoEDxbJGWH8A24htH7LnKqRBGuX+0pVWDGQd5kP7TC2dIJ86FgVI6HI2PzrWPSg3OiW7XbV7wCVGxxXr7jgK3i/BSZZCU7B86R+eBemj+GkGqBBirtEslxAchSPxOlLCMmZfKn3xpMyPRGk+qyvqBYuteJKtgsMbn6vISowhit3nU8hRVbpfmBAaaOIewKafx5OOEr450ugNwsizm2IGHshwcf3UDHN8DlBkz4rBjHWifKKKHzwejgZaLIEdWJJMMSWB6FNeorJ1Uc43uwvthBQOiOzAyqdtVs9OJMydzNMDXCyQr2fEtrJttKfXRM4scFCvf4ph78vqqzZ7zsLq+ZSwi9pcudBdRTpJToQRHDOqVq06TBNHJ47wYvo89b1vcWoGSLtwgomkrT3QuYlwpaSRU0mQ//N5E01Lq/AI5MKJMgEhcY4A7mpOaT1Zob60pyt62uYewFQZzmSjptDaOjZplIb37U7FQbHDSzLSqwfV+4PZ0CTq+yzraNK/CBfr4zDdSYxbRUAtOhoHPFRPeZE1qKrPrn/Dn4D+1aAUODb4ov+GlHyHLjnfH5V6Kj0StrTEbu6fIqXO7U8zJvtxpjo5vv7B/IfS3Yy6G46CLLtq5wTCA673BvZNc3fgbs8olWBDFQkWS7TZgjy2gz132pzOB/SpvY1pJq5RMon/iRS7G84tDq7nSwtrSuyFMMjYohF+4CyvFj1AQCwLo1bbore1aDHq51xbJqAG0EX/1ybieglEHKrOho6z9VQo=","layer_level":3},{"id":"8e78cb1a-5de9-4638-b6af-8323a944817a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Integration","description":"camel-oil-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:22:20.705906+08:00","gmt_modified":"2025-11-18T17:23:20.217108+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilM3prdohIxGvfldrt0m5l9buFyY1Rgv31PdU12Df4Cva5YIhwinL4+uMn/5s8W+pu2KSMZWdfqLqPu2pBvwAAAz5bwov+d7FqDg4ybmM1onn4HYQ6h2MGa0qg4gLrj5sWzmV3XKBLK0JABtavvWMRiLxNMmrXNs2RdtxZRHovtSWW","layer_level":1},{"id":"07cb49ec-6a3b-473f-9fbc-7470be3dd4c7","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple Integration","description":"apple-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:23:20.269615+08:00","gmt_modified":"2025-11-18T17:25:02.580331+08:00","raw_data":"WikiEncrypted:2nRH8ssstMtuaP1BkPwTuVk71Q0j1Vw/t5lTPcPUhYm1q7rgKKHxVUzzZRLKddLpzWjtHbbURUd6Jun/6a7FBUS95iIDSC/fLdtirjleV+6YnVbw8WvCGtFd2C0G1esVg3NZpyZwCC5R3wXvsMqQtyVAlYtCoG6QnKvBM5mIbcmXTJ1WsUVyystxegEv+CZf","layer_level":1},{"id":"7db12e70-0f35-4efa-924d-3161cf2cfd56","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Kami Gateway Integration","description":"kami-gateway-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:26:02.221997+08:00","gmt_modified":"2025-11-18T17:27:31.264796+08:00","raw_data":"WikiEncrypted:t2ShZv2+RRvxKlpejZjnQzTBw5KAsf0cRLo4WHIzQSon91nwusS/iDRsBUiIPo+pkB00FCV0TF5bJqUMWhVVZEJIkmnYxurzCaKVPtrGlUu3iVChaQfcihrMsym8kyCfcVzlhRHmD7+yGs6O0NAx58Re0vBViFkjFbmgmkxmF0gKajrTw67uPeK5CfHPyxh9","layer_level":1},{"id":"201b5004-c469-41f6-a407-c98892822b49","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"业务逻辑层架构","description":"business-logic","prompt":"创建kami_backend业务逻辑层的架构文档。描述高阶设计、架构模式和系统边界。详细说明controller、service和logic各层的职责划分和交互模式。解释核心业务流程,如卡密充值流程、订单处理流程和账户管理流程。记录组件间的交互、数据流和集成模式。阐述关键的技术决策、权衡取舍和约束条件。包括基础设施要求、可扩展性考虑和部署拓扑。提供系统上下文图和组件分解图。解决安全性、监控和灾难恢复等横切关注点。详细说明技术栈、第三方依赖及其版本兼容性。","order":4,"progress_status":"completed","dependent_files":"internal/logic/,internal/service/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:30+08:00","raw_data":"WikiEncrypted:nTJcmZGR4n7nsIYUWzxCEBy0i487lDHI27zzkO8s4GsVEQVKXcBFabpKr2XQ6XJKtlHqbrE9PVqIMhgcfiOvMabk8TbZAsCaWeJzv2ccsAsgyCftb/dB0tmYzG+Xik0ZhR3UW+81zieL8Swo8dtHFHP/c9V/DChKEHqlNLt/LR+LdHQVeMJt8/4tYX7Iko0b2FfNPdbFFEDYQMdQ0vqLHb4uA6e5pDDVP/pbzgI7v4vovEwZVCBhgJwUhQNqhzrKC713fo+znzpLhb0QOOU+J6KBBVBHdePw5GXI4Glzq0YMFNDk0/s9wM7hOrtqrm0NAAWfXUBwxUBhSEMV6PGimLxIkDpIHcwWR7VIdiWxU2TUdPt+tMYL5Qw+ko0xAWAvsaWJG/clR3TJuaNaxMPMaJjVkyTsWdJF3Uf44Br8oAmuaOUtHrFXFNTHnCFVnhLjX52H48ibArhi11KOqoMywYi0Um1gSvxkRkyRfskLrif2l+C6XzmPgGCONPIBhnoMenfw4JEkcUCPK4V8MzAs6kHdEPjhXO0eP7NTViSG2iLZjmxvySpPhXUnXo5sNgosJv7jjZHrN6ZSRcESQlbAR/lVpZdARFMnJeqGSZ6/BX+dwok6Ys+Ac+E8PVVgBJ6EBLHL/i/8LmhYYfgQebhhrQUTbWb5LpQ6IVHVvL9uPVfO3hq1iUqvZJamUbr1zwky/9gOtOKXEn0uQia6fPE6Dt3Vf/oeECSJgJGtBL3vovteGRYsVpL0gD1HzN1ONJ6+kOmb/3xP8QPIX2xqLNWWDznrjiFMfEzrYtwGir+o9YtwnrHAyrJcLWnD7az7h8rqzeKjNkA4f+8NykxjDPBfoJExkS8VBhcLdSaayXqTzY/H9fp2zSc0Xm3wOMgTezgq+0TRkNGw66dr3zlEzYvcITtn/eTfqBI+PtHsUTPKgBT1uoEE4p3thhe8YY0Ip0WXduO/Aa5HSeM65Lj4jBV0GWwUgMHW10C/FsXZH8NKkOBiEdiyGeA23AiqtBSzAxZBPrD+CPYoH7wuzHuTQL8BjhTsz1pgHQA877ThZ9Sdcras/xe9VywZEdJcihcSeWFXCRQvdJjdO9V2ZAOAiu+jsvI3F6yiASgTYm8Q1riiEHCIisg96Ex+YV4Iw13sHLmgcuWi4fNpQxBVhg5uCV0zstSpB8oEgaTlLyzS3LynZyBV8O399OT0NyXUVz5pl6OS/fUlYY2BUIeBGbW/eRetlPdDxGf365lVgQIY5qTHGetY8bpSVzHcBYg44JuR5u6c"},{"id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统认证逻辑","description":"system-auth-logic","prompt":"创建kami_backend系统认证业务逻辑的详细文档。全面描述基于Casbin的RBAC权限控制系统的实现。详细说明用户角色、权限规则和菜单权限的管理流程。阐述TOTP双因素认证的集成方式和安全机制。解释用户登录、登出和会话管理的实现细节。提供权限验证中间件的工作原理和使用方法。包含权限配置的最佳实践和安全审计建议。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":4,"progress_status":"completed","dependent_files":"internal/logic/sys_auth/,internal/logic/sys_user/,internal/service/sys_auth.go,internal/service/sys_user.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:35:57+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjJxill0Dm7pr1ti6WpojZlBntM5mCZ3svI9SgZ2utFjCFZC5Z+FEI6aOz5Gj4A3aFbuhD2XPZL1bwaqLneqa1L4WLh4KTENL19+xdVNs4RhZjD6ZJ7n1M9pktzRYdEXoPx+WtK62h4BKAZ0CxmcKe+iDWgkzPAQdKVBpjhDesmHLcMHBH7+qeVJ7Z2lQF9Tg9AnP2CTNteWT27HOIOr0I3SaYM6k65n3Z0vySmltobX5INahUuaU18V7hzjdbCpc9e5UHoC79ydglrCuB6262LMQvfH/HvilWFq4jVC5YJbDO8PJk1Gfq54roM0WSjUbhYxrGp/UbDq6+C5hqExt5Y061mJXxmclsJBxX6zoO1P8x1PcEQiNH5J9mCgXblQrg3YrhaFIyyjoVfVVRHz+uT2SeSswzwmEIOZ86/OdiSf5Ng+xT7V/fkPevbgJVr3RkKckk2n5GJwGVJ2uBXK6ZMZor8iMBjD7CDIrTCGT4m/YSesNCfTYm/qJSandEHXkNe5yNg70qSJ2+S5+V4yIIxQPG2D5dIt6cKC0ppsF0YpybkQ3ONoINWaT4cov9e/FZssbGYOztwGx2gb0RNdxoMWQx2d6tt8NEgRvP+bidzO/SDBouGelKXOmdJM1cQ84ofFHTLPNxb4HbzIgPPLAOlNQyG7wXIrR+qRJWn8+b3laIVEpguIhUuWU7jM+tD3vuePgZnnuJV+d/zI4U0Ot3Z6Qa7t8993FQxzdKPU33UYh5JLxnLI7JwzMkncaT8Y4yLk2QLb3GqxdlUfxuk4byEiRjK8QdgorcuF99pGDvJ/VCV7m3Yc51cF87OMVYx3/fpuwfTPdnTOKP7hAdcvghET4DdWsBchrPEE+3FNLBfpemPgvq6xcqnVujyE8zRwP9JFlEuBg7aZggJMXhGx4HI4xlKTKIMStOyBJa3O9u1VsMRFpdsj0ubLd3wJx4cgxon8lCNOZeQ5YTQGBbkl9/AfzC7Y6b4mOf3P7otMfSeyaDLBHqJJGNHZ63/k3NmTSk0YPvPM+bFukpsWqU1417uUFwYSb20epfNpwYYt6O+svxIDRurYoRkjNu9OsbUIP6Q==","layer_level":1},{"id":"c31af7ce-10ef-44f2-9bb6-b8772f1bc957","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统配置数据模型","description":"system-data-model","prompt":"创建kami_backend系统配置数据模型的全面文档。详细说明v_1_sys_config_dict实体的所有字段定义、数据类型和业务含义,包括配置键、值、类型、描述等关键属性。解释主键id、唯一索引config_key的定义。阐述系统配置数据的验证规则和业务规则,如配置项分类、权限控制等。提供系统配置数据表的模式图和典型配置示例。记录系统配置数据的访问模式、缓存策略(如全量配置缓存)和性能考虑因素。说明配置数据生命周期、动态更新机制、保留策略和版本管理。详细描述GoFrame ORM框架如何将系统配置数据模型映射到Go结构体,以及DAO层如何实现配置数据的高效读取和原子更新操作。同时涵盖权限规则、角色等系统管理相关数据模型。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":4,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_sys_config_dict.go,internal/model/do/v_1_sys_config_dict.go,internal/dao/v_1_sys_config_dict.go,internal/model/entity/v_1_sys_auth_rule.go,internal/model/entity/v_1_sys_role.go,internal/model/sys_config_dict.go,internal/model/sys_auth_rule.go,internal/model/sys_role.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:35:37+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjHo3Cfllvrq9dj+VS2LjLU+XipU5iS8bjftNtXgNkjAUuhoBjsDPl9BjrKUtcrFkS+Ysf07QELqCRkUaE9W1TE2R7c8Pd1omOAa/LrhdmLcUIIP96HDPywGNUVLCkClEpXPVZjr5yV4lRUGn6Vd4AT2Kz1qx9Z60YINVebiHZjal1ZSSIEFUhg9ahC91CkdhbkfPsFPYo7zMmbdYpPuVWMr6ap0pycHPC2HK/qMDmiRrncLGuHUk1wvb1uo+ICF2w4nK1LEbdLGMdBnwT4IJT1/VKtcxo2/pYRnXc03fs9K/Ygz4/XEi/NkXdxC/VqdAyv4d1CfzIzJSvNlEQ7q29GzcswCh1BY0PcFBwO8cpevtwMseZAGbVXoYQm4DvJWiuPzb08JC731Ube7hPRcijJDUEI6FzXVqcu7qngW0DX7qWoZkFKtveIpW9OxNAeMloxr/k1e3Q2+eIsAF5AUw2OGwbpBtaGsu3uOQreqGvzlwo++/8n8bml/QCk5HQT2Y5qhWAOEY2IvCK1OMB1ckrWn32rwWkPhSQn0+oWqtWFkj1D+Y2FNRZcZCijgId6mwgVLXOClH97C7v4Hm/CWvUvxwcreNuYjJKSlQ0GFwWBBvXhrlRSHF5zBKqux7NwYZsipPHjNF08UAhCOLm18HxVfpYB+awS2Axa3d3fK79m/oZfPUfyNc82Y8bPFwNUP5/hMSr/4qU+EqzK6RHaQ8tbdTzzfDXEwUCUK/BwE4Mjl9vdTP1mfkfjvfb3SokJ+zqi63WemXEQnH7NGSRFNxNdGMFRNKzDmmrApwYZXjztqqdDxgssTXGg/rhy1dSGYaS6H+ToTGp8c9/MH6lKhx8ZNdTBMTdbG8CibYcK9suxALPynvOq1UqP6oqOXPpfxfgOce1FzA4Rrzq9nTHIQMnw4QCdV9/126aBKVxCPa3jLY8mBAIOH0B4YZhqyBo83RfL/4vY8G3VkWs5Zo2NJu20B/7M5Qdyw2ZtirWKJHPE8v0rDmPA6/9DKI4Lv3enLKeIhMIAqZebPwwk4Zh2wA6oHlk2esnHqVw2Z/5BadsNJFgBakyMMnkrUxaesU/frMcRJ1jLsN8YHKOATLE4F/RDg0ZwxOSu6zy1LLm2k6wpQWgegMovr8kg0Riq+YHAdz5ge2gTtD2DOGpTfbHWVQlwXDER72hgcmSJSy81lE/TLcsT4ONAPXTLkDAXTTJOv3gVnQeYvISQ8Cvg/eqncCsIKeDVWC0QSg6cUAK0GzhCSXJw5GVzKMgyzelmKtqiI/jX/Q7V3CVMGP5V56R4wC4eVlP4Au2POc5fEZ7FY0l0x6nrL0H80Sk4o2reootBU5tBzcE+u5f7MhAfetwZjOAzh36C9gdNBv/Ifrz4QMZRDaVmNunuMpHmL1QXPGLjflQ3YHGIWlc19NJ+isI17zfse6YSGGbkSmo7ZZjYkvhWzpUIqTxaqRNav/ebsmWVlxtpJZiplO2HMkHY6acUOBnYJY6HbyUv0FGySPMvwY4nPGH07tRkC1AZV3qw8LLsbJn8DVFeJrKAwJctcsn5xqfaET5PF/NPt72tuGx/6k/RrpkxcR4lelfXNeV9htOdisaPesSw4Pr7lvTDzSMpA0ed6iRgFptBW51AhCUXUP+bK9e+gHK+a48LCXouUt4FBb8gMCDgozFYPIcEQto55NRVPlyQg64fORyVH190r4M8KpnxUqe4GDrywDZsH+6MkikYbcwibrb04bdsPHvRd6xSN0OZuGzEo1TA9sL7Se0hxVHB6yvpgFJmFisuwHEqIvZkoKgCgNlAkkYri0hOJVS3DyuQ2PKQV/hIHswEOBdcoCwbrq4wjJqa0LN3BrqrSB/9Yutb/OS2vIuHtpzhQxowpYZTlb9L5YATj9+RTo21L5H/qdRyYYhWd2Zk0WStnU8b1MUKbLHRG8qxd9PMi21Ro=","layer_level":1},{"id":"71487087-d57a-431c-af0f-f9ce8536c80b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"风控限制API","description":"api-restriction","prompt":"创建风控限制API的详细文档,涵盖IP限制、地域限制和用户信息收集等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括IP访问控制、省份查询、用户信息收集等接口,提供实际使用示例、错误处理策略和安全考虑。解释风控规则引擎的实现细节,包括规则匹配算法、缓存策略和性能优化方案。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":4,"progress_status":"completed","dependent_files":"api/restriction/,internal/controller/restriction/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:35:55+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg/Aj/+xQhog6A4luCmyduH9mLQCMR1txLqnqXtH07QvTvFpjblyIOlgLn8a8ai3D7Ewm7QQOAJqH2lPNcwyVaNI0R5AYYnLv/ppJRFtq4rzXS7bs6R9WuJre+34kpQbKpXoIpVWgwRPZYMpoRIFHyVDRhlKppZX2lYuhs5kJJ8K16v1qjWj9EPaec6JuobLvqnJqXTaspOxb6DYL6t/m3ee8njSnivlA5TBb37QHmL++obh/Kk5h+4xIJSe21L4nnMWNpRdMi7z9OddGgJdQ7cqjcP7zr5ABy4IHsnW3EFVdvfC4nm4/R+qMzBqawYOBP36gHMj/TSuwnGCS8ksNGcXZEP8EyUKFQlgl+jB+M3GefG6k7XcYpWqRoluloNsAXEVElsPfuwmTgyYh5u9u8bX3tLoQ34dZsr+GxKBIlEJ+63G0NlMMECxLCro1+wlTlTWYgRk3mTd6Q/IpJs/8ulLW5Wp37GDVOTkmUAOcljgtKaPqx9SaC3n20GBxh4ADqnjaElyzJQDD0fotl50FyTouwJhWwA7R/eIRnGvLV2TcfAzUFza6PHYAf93AqvaZ42N1PVZ8xCqnUrKUMm0nSk1kszj0ZOdIDaTB2K5Oqdft+dEKlNql3mqK5Me3nm2U9LT1LiR0/nYzGTyPc5i0+rAQH8IuTDjCweeT/XzOOos5gzbbNI2cNK5+zPr5FFweiGme/ZpOI5xUrO6GaApl+nLg1RNWcO/9CLtQ5MhinBOcPcs5EtOSUEf7B46NuVQVA0Ng3iG6lgMtZ/iVfcyuMJrScMVv2LLyTdeKGRtlCn5Nh434nWxxoWacpf0Lp/+ohXJzuadHvVjKZWmqJt6TlrP/AlI3qMbKvISLZKY8b3UCdwJmfGCB1eCKS1rQCLNGKIeRuEhYqXm+8ENWPskUauLGtiafNJrxP3/OUVrYJ+ZnpCC/CmxXAjYKn2517/REXJbpMv49iNGGkvnOfo6tN7DcJVykM1JV4vwRALkz/d3c86mJq4sRWuACN/FXwolQ/jzh/NEYtylpIQFu6vihdAyH4nmm78l9BMlWQqqJ7dPRvqlHFA9pmbti/d7oWwTJHcehGaRHk2wcBAQoibim2Zw=","layer_level":1},{"id":"4a2f1ccb-e858-46e2-b051-4b553c1e2f48","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Ctrip卡密管理API","description":"api-card-info-ctrip","prompt":"创建Ctrip卡密管理API的详细文档,涵盖账户管理、订单处理等接口。详细说明账户创建、充值配置、订单提交等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括Ctrip账户Cookie管理、充值订单提交、订单历史查询等场景。解释Ctrip卡密特有的兑换配置机制和回调处理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注Ctrip平台的API调用频率限制和数据加密要求。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":4,"progress_status":"completed","dependent_files":"api/card_info_c_trip/v1/account.go,api/card_info_c_trip/v1/order.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_account_create.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_submit.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_order_callback.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:52:54+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBsi+sn5XqP8JBkcaC5gJFHJK50Ht+k6VsfsVf9W/46ar2nyfG9aPfFuj3OqAvsQ2zOP7QpzVJoUCtwLglIP1GqQDfx2qCBmv9YLB3RMP78a9O9+gzXuyc6BxhwnZvmIessag0UDmHRNFDHWh/c+FW5GBTkZyHeFnwgXxp51yK06aXkjMzyn5eA4CvzR4McCvvmNyaoVacg1P7xKnbquq9Ia9uZgXZeU3u/ggK6JRkZkCVh1Zumh1AkkQGrdlfCed38c0P9WvhTtkOtaTUUgqVgV4kPOHQE7eMtvhRDXeWefnUTHsLeLBkhUnsPQh57JVtL9penKtwtZMS3ZdxKC7mBE3nQcCUFLJYE/e35/lJQB9x5nfbWUa7jPIsOajHYZdkiCN21fYL0V/Q6EPksqkB4+mB69hkPbaNChKgjBxEXViBKw0mCVrIPIm6A/3XUaOmVerm9BMmuw3TjuBiNmedKD7KGcoTVWpcKr3JD4Re10b1RuYSXVFtF3QNJf42tGl4STBHVWLQxdDzzUSzZ9a5V6O8L2nlcWzwNo8t5ea8aypotVTvuXGPCGdOfAj0oMWRzyv3UkWfkvVdqjQGiq/Awvpzm1ehEGWAdHK7Ybq2QiH9KFjzZE/zHCQblXhwJIeHrIxd42fJnxmgtzKtKkKKNLwubmC0ACReXOzkEeq5yqyl+k4DFST4612/ohoShJdbmS515Ktd/p872+kvMkvRdFL1nZyX90FSeEW+NHE2msG57PUE35eBr2HDzOeZ0aKZG8hN1kM5bx216br0hSytYUwrBk1+zBfBAxtFpFOwo9mCX5lR9ZIm3wEDL3IXMIThBbX/zEgayD4CyED7uNP7HETLzga7E2YIbK613r7V+Oo54uFxQeMZY59omb87gcgVD24gyqVYjuQdHbkY3PyT7FWdCZJgHNetaXc441gHpJadv/HvApPekkTG1aALw+qVPjAxTw0WkWMAtkqHmzCchMN6pr2UxFzp0CutbgFkzckVkztczx/MtG62+q82XL5gCUx27bTj2k/pXL7ptnIvS09Kvo4u2HGl2yTmwOX/mk3z74LDJrli3RhwLbTLZLt+9oLIyKYFJGSYgUTt4PZPAfbOt31mm2iaC9zx4TivF45d7eBwjwAxXRGJDA/0FabI+UODLt2C6Yq6FMYgT/PiDqyGnByH1VFg2sflHRsjcBjn1bEhQN8BuPrQczskgR7TIVEfyKuvuJ8D5A77vM0jeNN4ItGIwpekB/dEYYCz3ImYgXEpjtckpM8q9eCIXdL+/sNzWUMVwYXZBRYRly/8cs1ikZzbpYJT/174qCZJz/wVZTCXo1WXL+WdLu4wbkwMe0xX5kysB3MglJt2NEXqQ9PDSXap41Br/jR6Qx/2WX2+yXerLvNXS8uz6duY4F6EgJlTzzzJ0MatuhpTNRKWushr7zk55Lhuk0GQ9V+hIoTgnmGHMfVJr3sMv8H1ugeKslOpRJkKU08CEUoi4C91/YLLqEodWJ0uu2U4CG0qf6xofEmBZFmte09BxNSghJqqhCoITeAbctcbJajy4hgq24=","layer_level":2},{"id":"fd83f8e3-9940-400c-9e6d-de5f5af056a4","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密工作区管理","description":"api-card-info-tmall-workspace","prompt":"创建天猫卡密工作区管理API的详细文档,涵盖数据同步、配置管理、状态监控等接口。详细说明工作区创建、数据同步、状态查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括工作区数据同步、配置更新、状态监控等场景。解释天猫卡密工作区的架构设计和数据隔离机制,提供错误处理策略和安全考虑。文档应包含管理端实现指南和性能优化建议,特别关注大规模数据同步的效率和可靠性。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":4,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/workspace.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_data_sync.go,internal/logic/card_t_mall_order/workspace.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:06:55+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBsdm8AkKOxMEeYHksr3yo/imcaxTypW54rkWuc8ok+kKMbSlF2H953r2+WhakNMZcjsjyyB7rKnqmSG2mxBDLCJWe9iaXwfbHFUvq9GbhvS4IjS4kTKCcbQ+sCUikK+7FfwbN1kjwSJYZyajiuvyySsnUbdPIeDE1F3uAgmGyh2uecVNUaDzxxoZQQCTVYlsQu3uXE9x6nf3mJm7bRTUzODojt4smYpecVIV23Xo530zZC4lJoFvu3VihPgS1mBaAyeC0wUq19w2gQv6Yl+IRv0BewRn2X0XuXoQAA/bEQkxyvI/ZnEq7Z3Ht1XjYaVwMYfnrqx3zDJngO9dGCIvutLPeWc26nTjlF9AHVe9CstGMfDsbYz2EYxAgd4TpcoxRbY94++BUXFFXjvkJVwOe4LUP1/dFcNQdJeO4+n04TlG4kCOXbKE9zdsoPSEitnEnB/ZZDfT8EDeJXv76RwkZfFLIPJKLLjbAygECbOMUx388ePp7KJlA9S2mvSAYo3fDT3UMJG4jvW9UObR+sQ0xVOvlYsc1klhStSELVLxScBsf3bT/a4J1aQu+0r7ADJBd0LJF+KDYyddEbPVOq8asO5MCI2xKVFQTSvitDVgEE0j2fUm4VYuzkx+dtP0STq5UsqNoZWJgH9QCcOWMD8OH3e8EZ401QbDJ8DQ4aXuANeMw1FSrJfj1kfo3MSfn+NlO6sq6G2Y25BdnK+4OHQCjGi9l1vEA8sb5coNTeMZMnV255/WW5jxJALdfWfT4cw50URsj1dji1e8B5YKS5tiNF8xsXSMqA1nFFPvaRs853/38eTxl3Bbb2k+wIL0uAegEpzLYl/MIFwWZYD9fv1AaAzvKWLGXoWoiTPlpdvImM5NwgHaGiP8lEt+mTkJ3TRjRInKp22n2TQcx1Mmo5R1ZaD4XEyCJqbQmy0/3Hwa3o1wshqcNGwaeaQVwHZVkij1DzaCIk3gRcxtfka0AJQvPZWEycGiLVBBNQd0ipwSLh/QeQU5Q/GEen5grBuQ9mJzDoPrNqozcgxHSW4NSCeIhkV9ZsykURjNvAnTdgq/4g914hp7dJ3gANT+uBjblNLhqJEhEBT5cmIUSHG9wA9d12q9CUdVLM6KKSs6OCmIr7uJEMtFqt7S/LyYZ3kDmcY70Z1ooUjaXBWPnjpHMMH6jPUl9Rm2ET+HD2jYR2+qCEkZYi+mIkXmagYULy9jBW3toNuMoZu8NCiwo9FwDDom9HYBHWY+WBxPd+c7QCAAHuy1siswdIkMes1uZXen9UsL4ve5wv4IuEY4ExInxqiQCcJ6r9wLjgfv+ZA5D2MqV/rtdKT5gs3J7qSM38Tb1X/s4w==","layer_level":3},{"id":"2b9019cd-02f4-470d-8202-7f5c7bfda871","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Aes Encryption System","description":"aes-encryption-system","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":4,"progress_status":"completed","gmt_create":"2025-11-18T17:19:29.124745+08:00","gmt_modified":"2025-11-18T17:20:52.838599+08:00","raw_data":"WikiEncrypted:y4L1edmh4sBJH82Eb07yqfDm0kK6zW/SjwpLhGndZ67tAT3IOewYTnTbHMTrrP/bLhuVeGLRTpK0Xw5ODtEMgoBxVplNk3afStLdHtqon3CxkIpIx2Q8cgue0Dw0TJmW1Oyj3E4wGfrzAiRkPnvBJjWFAAtMdmIKXKWxPnPs0g75FaMZH3tWWRbloIcygogv","layer_level":1},{"id":"0f5bd67b-d698-4271-8a8b-f64cf051c127","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"User Login Log","description":"user-login-log","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":4,"progress_status":"completed","gmt_create":"2025-11-18T17:27:31.321098+08:00","gmt_modified":"2025-11-18T17:28:41.457273+08:00","raw_data":"WikiEncrypted:BOX6ZnW3+L5giC9SFYUX4g4pOcwkiJohFTUkq60ecmgkzh82aE+halo7bpUe8CtZawC4HfH6QaIUwQ+8ENEEKUF+K68XR97yY19107V5i4kJR5Fb17odYgSMi+TVmiCUzRktK5sLl/z6mXk4RNMqqw8RkvlIpcxTG2eg9eFnX2s=","layer_level":1},{"id":"e71856cb-fd63-47f5-8f0b-2dd3d29fba10","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"中间件与拦截器","description":"middleware","prompt":"创建kami_backend中间件和拦截器的详细文档。描述认证中间件(auth.go)如何实现用户身份验证和授权检查,以及错误处理中间件(error_handler.go)如何统一处理和格式化API响应。解释这些中间件在整个请求处理流程中的位置和作用。详细说明中间件的实现细节、配置选项和使用模式。提供实际代码示例,展示中间件如何与控制器层集成。解释中间件如何影响系统安全性和可靠性。为开发者提供创建自定义中间件的指南和最佳实践。","order":5,"progress_status":"completed","dependent_files":"internal/middleware/auth.go,internal/middleware/error_handler.go,internal/controller/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:40+08:00","raw_data":"WikiEncrypted:AqpSPShNE36Xgo6VuqdMl5aF+VgV8aILolR6tO6geQOv4rIik8VRwkyDUsnMruLqtWT2tLSI/ajurej/9aj1sBkNS0BQYdSIE30Piw6rw6EVyMRGtX0LS4U/g7sUZEJ0LUxms93QTwszPabEL85pQnWEkV9dobHUpmkwNdecI63kSSncdIdLjByZ/fGShR44SyDBdhI3Od/uInGR8eDkqB0x+jUKVaOqNzKOBnSG9U6dcEuC+k4ImYV1zLCcDu+BT8QIViHujr1Yv8t31woNkKhqDSfW71jYe4zEIc6GoP1p/wIhUtXRHGklEe0rUln7DnB6uIC7vWx3dbxtLat96jV6WdhhtG4J7WrYvdY8KDXNLmR6+apdp58sz2k7pobYXU4Z3K71AcAEEB3sFXu09lDbNDD9AqcCqAtbaCBlfMtxQp3qSTkne+HFzKvuBSu9SoryUHSdRNcxpf9RgVhICQhxcClfeKyrwHv6Tra9UTD9ICSsV67UNBa7GtowO9ggtQFr3NckIKBDrDrJQkxMnHRGt+EytXt682wzMLLAaWBuJRpF49XyLbpNGyAMBewSNTFnbvaoDkdEO3xYyyqBGs1SxQdvTF/uqHDwQTqplVOZSl3ZEm7A2BnwOl/s5fpPykdy2yllDvjckxI3QCY2cDZGoLv4+pcAb5qq46Rp/Q17ja8msX3bucmtjP8xpK6MakQeUU+HxzdCfZLjMZKUquBjEx4vlJsxQFf9MrtNoPHeAKKUM2jb058WRpc2Djm8JPSo4DUqSpG43b5XWQPNwAPQVSSJ6f/ozjuCFjZoW6y6oXA1w7bSoxdQ+olL6pymruYakChFtivBdpom3lmVC0n0nNsNOMOk6YJtbZJUSS/3Z8/AYig/O2OujPVzCqIRsV7qZpT3QmZJuCHsKnQwl9V+EKR/k9q2ndmn5fwH3wRT7MwXGrFSJqOCsm9WlNhRZwV2d6BoOnAV7MioIsYpb2PpT/nEqPueKEsBc2KX643vuMaLCTkqD7kdtz4aAoRuyNbMeKCS1hArb8WTVRbBMMSMeIGSogxm9p4Ey5HAHYVSTCFgwdkAH3jQi+b6lJzRlH0x7/oIUhS570RCBmdROsIbhJtzKt9kNPbAbibfQhcx+ReAOS3Osr4gqD8sHtjVTHcjyqptb3EIuOFeIzcDew0wFcvYt526+LLQUqS3HGM="},{"id":"d7caf3d0-b00a-4bf4-8045-ea54b457c2a2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统监控API","description":"api-monitor","prompt":"创建系统监控API的详细文档,涵盖健康检查和系统状态监控等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括健康检查接口,提供实际使用示例、错误处理策略和安全考虑。解释系统监控的实现细节,包括健康检查指标、响应时间监控和故障检测机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":5,"progress_status":"completed","dependent_files":"api/monitor/,internal/controller/monitor/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:36:45+08:00","raw_data":"WikiEncrypted:/pxnfuZ7db/sgP748CYPEnnajIZ9eAOE7G8r6j42pVkNAjXGu0NMqCu4ydfGAfQ4GCItYufWEEmQ59/IYRNbh4TeLwCIq0wIYZR+tuutkroBmNLFE5voLalJsBHhYaFnQaIIcLYC0slAZsS9oHRLvxN81DhPdygvrXE/yMXvqwipS2laucJTknMAy6yPY72cC2uNaeLCUccXQ3+7TZiCyurymQFvMJUHg8rSJXfJoIQFZYpFpU3y/Wc0h1ncH+gv2NmpFz78Z+3zMmwDouKYevCRVsVcsYKlXyMsfuzm8QPyt6042xhOVfpXWsvcNPXcKAzofi2NhJLVNH4gyXY9dOMCyz0CHeSCdHZVJoHXKQx3r5gcEptf489enTsk3rhQIsv8aNO6Mf7YbqBik7Z+TipJEsfI/66sMRt4PeLANnfc6+A0bdAR3YTSIYXSf+EYmzy0UjkNy8u3X0Wa0z1ySvPq0dHmFhm8ZMM+zYSees1DL3E5EeOOW0tNbwLlf4VLPqsDSYdqhiF1sxUVTknZSQB4ENiBo6tN73myIn6Y5/Uce2xyeMbu7HxqGCXNtmtvGaQgT1JX1C+wE6j9UzZVFxCvtxa//B1R2r8XnccZrYESFrZ+I5/t4NNolLDcBtp+Ti2SpW5KMMbhl5ubN8n9diodZSJNprv1UPJHilQQqFiYvt8zQG0vqN4MWJPF8s4xuMTpyq01/rQ3AKddpKiYTsqG13TxIYLmzGzO14Nl7v1rd0fvJ3e0QCOUyUITbeGEVofJ0AsRKyxs7SzsaMHmnLa+MjOuG9dWlU92ibQsNfTs9pCvHQhcEq7oRkzH9bm1VPCDNUlxxRcPrNeL42ETGlrzl/3gfK6JiyPsYpspcC04xNu+AfT8lPmMKXNIuUKGIS/yd2ghbla/zUIYhEiOmQC2EM6CUv7YCOa5jSVT4/f/HbkHVOwcMz+rrCh72QDmLrMFnejLqMZ3NVp5/3OisLhAp5eEP+79XK2/iRn+H6Y0a1hsoe0p00fiqzmsCLI+","layer_level":1},{"id":"050aabef-4c8c-4892-849c-74a2e3feb22b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"外部集成","description":"external-integration","prompt":"创建kami_backend外部集成的全面文档。详细说明如何通过integration包集成第三方服务,包括京东、天猫、Ctrip和沃尔玛等电商平台的API集成。解释OpenTelemetry集成的实现方式,包括追踪、指标和日志的收集与导出。描述Casbin权限系统的集成和RBAC模型配置。为每个集成点提供实施细节、配置选项和使用模式。包括实际代码示例,展示集成的实现方式。解释集成的技术决策、权衡取舍和约束条件。提供故障排除指南和常见问题解决方案。","order":6,"progress_status":"completed","dependent_files":"utility/integration/,utility/otel/,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:04:37+08:00","raw_data":"WikiEncrypted:6V5sbJNGDAyDYhOBZelaU1rOxrf0dOOzAFdTG/qUxgWgnhYSEslMfkL1CRLZ3CQgEd93QD8haush522llnu67Doh76s5Ca+S41WwnEUyjrWkASiLiIoPvV1u9Tr5MJ8CbF84fStM1LCuyPWlPs/mlFNUTr24LC9t++Zu3Ik83S/sRYZu5Anrldz8wW8HccvYj9Rn20vd6tmEZliHCEV08zHOt86iCSIOrMiTn3nOoMbWtj74US6SnxRTIiAe0dSpWl5EUXR31FT/6dDmipJ2YFay1qoavAYP/UI4jtl2HDQtzbgWt8XIeqGtiUD1OXkwvdMhfnxiz+5clANNAbdXNngBv0jyDyUgSA9AoYTTEl9w41yu5vhE7F4cl0TeyL8LTuCgyZCS7XSwh3QLhuyD3zSZdwOWs9L/SqYpPsBVN5WrgIqpnqoHaXRqj6bAzpEvOx0cq5p3fgjQBhnGa1m42Zel3U9snM1riGCPy0zkuCcUW++pBwIoqkd1S3D2Oy6iVMV4dE6NKtDjYOXbUS1UnEVVTPH1LwTTG6CYwpx+U0NAXMbfEiF8k9UghE5GfLBvN/fhUbAzxt+HDEwSEVzJllfYXSasLi6ObdHeqm2wGnlMWsXcqE0P2ZjaQeF8KiEFm31p3vIPsvj4FVziPgkYK9QPT1pFAJJgDsrb3PpvJimsenaXhodnFODVOxoas6Qnk4A5W01t7n5qhzeb30qazovqIRMCVukoZnPDmKjWUxk43YyyZLeD43BkZ3pYiiRGjFIo3HX3wx99iA/MFheSEchJa8AWgWO3M6T2VdBDAl70B1Z2cgJrt9/ONw6ITr5LGb0J4twEwfxPZOAXS9FJNKbezsfTDWTR01YN9cemazmggbV0FiMr/httwX01Z2H5Nx+2po6zExOQdREJRSDXK9+Bcd5Ub3lKXGEAwtU5JDEihamP5bNx4DYkd2m0t2dCdAxTUJp/sDS7XZnB12PSeqnSf9EGC1mTHn1X5SoZbZ3eR2dbwxF0tyRs7rL2k8nHsjg6iXNNAn5DcbVik91lhrpLbY969BE0J3LsFJ9bQVSqJ+Zind7Rw1jU89i9lGjaGVfkHsad3NQWM3QF6yFQX2LuS+qeD6uCFpGb/kl/cPaT3+qrGM/vB7USeBgspgQksjgq39blrrRR7g/1bx4A4GN+S/EmOC/oJVQPIF+YfyWzor2o4iEZiervnUHnorgNjJJ07WRZb//KgtlGhzGKhmkNL73Hsp0WxOecTkIZFrKtt4Cv2RopxRvI66mJ9SRt"},{"id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"资金管理API","description":"api-fund","prompt":"创建资金管理API的详细文档,涵盖钱包管理和资金流水等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括钱包创建、更新、查询和资金流水记录等接口,提供实际使用示例、错误处理策略和安全考虑。解释资金管理的实现细节,包括余额计算、事务处理和对账机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":6,"progress_status":"completed","dependent_files":"api/fund/,internal/controller/fund/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:37:11+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdYizgJv16EHz36uF4KpBUPfyYMj4B2ukzPWea1pyWCEUGSSgvWMYpbGE/0eXLXpahXj+nH+hAZ1T5Uqw7u/veqBEMSd4ZN7RlGn3vv+9NmDgmZapIP+6vYH/S8FvnohYJDgPfroVhJsbTNWdc1r+OYfmMZXDkw4Jvi7EcW3p27E8UxGvqCpcW6V29NgKjhDHhujat8O0d/dG3yCMgFrKlXmYD/sAna9JiXICSNZtLhKAzQjQejQFVNebLsV6hDSvj8vWJpev4t3C+5MnzV/vyME3m8vPse/JGNVtfWlZblxEkyHM9EHKkl+y9lSwinSmrwBYqNjMhccJXHxBYeKEhXxsMf7UVNNhTvRyAPCllxzdsrFsI1PSrUJbjkLuBPtIQ5KWGZXO5ZklIoCP/MxvcrujKsi8ynEpCQ71VYFkV79LlyKKiP1Z2NznMXVrjFt2j9WJci28BcKND8fPSzZ1cVOGDBpxa08RAtE5D2qjOJ9L8BpEDo0TFtv9RuupBJDmBuSGWRxYRBa9c+8QbUSg269A1zt5mytOIlHm3CBHza7MKw1rh28mCwGi3B9XOEq+fJBpjqGDI0CaiMRc331/7foVEqTo+gAVYvRdTGzgcN5sVI+qy6GqKdvyFKDlJGmLgeby15Org+vgyff6iO6z7Ympy8xZepxmie7rEJrVoBjJaSCtXM9THYYSuw2CdW2BJbTHDfSdGsNL1+AwmOqVIbU9QLKC/9FF42HwnHgWAtZ6q9+pV8HUmaEmhcrxzlGiKCtoBtu7CMYTcXwvN1ZeH4fwcwuCFoaPzrJabjIurTs05pIKP/tlzP1kG1dD2e73NKcnx5KeHH8zdGTq5csTIUvezoWg0TshToj4yd2Ce6fIuy5dOEDxbc6JQYy/WNVAqnV2oFH4DtDKJGQNSjzMlDqPzs1VIFTw8JHLozliPH6PFqzilC9fLI1bp9d9fpwGnSrPjjZldPtYKbpMwJjW41KYKt4BXZnjpp3XiVZnBh2ACAyRKfdLeznjk6c/YhLEKg==","layer_level":1},{"id":"56f928f7-77bb-40cd-b1ba-80079defed47","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"日志与监控","description":"monitoring","prompt":"创建kami_backend日志与监控系统的详细文档。描述系统如何通过OpenTelemetry实现分布式追踪、指标收集和日志聚合。解释monitor.go中实现的监控功能和cmd.go中的命令行监控选项。详细说明日志级别、格式和存储策略。记录关键性能指标(KPI)和系统健康检查机制。提供监控数据的可视化和告警配置指南。包括系统性能监控、错误率跟踪和请求延迟分析的最佳实践。为运维人员提供系统健康状况评估和问题诊断的实用指南。","order":7,"progress_status":"completed","dependent_files":"utility/monitor/monitor.go,internal/cmd/cmd.go,utility/otel/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:41+08:00","raw_data":"WikiEncrypted:fO6ZyTV/+zFGGiGBj2YmQFZZh2B/tCl8VpzMyKHwoVG2Igcp9ko+l59aB87pRBKmPklfl7BSGuvixmNrfwMmWQxMzVwUymNIandfPCI58hlbQlqRgIi+ICKMQENuEKEjR2ions3uCUq+qhKarJTToHVOXp0nVAS7juzle/+W9nwF4i3U5NGByOXHzYUuevprmr9bxS7i34AZJvFVOKhlXuO+73P1N/dmmcX1dxZWaLyaN8jVFmOJXbH9BXydVPxvKBodJucsjbTDXfg4pQa6cESHukFR98S1csG57kcGSkscV9ykKWRF9ggYTyXhIoqF0RWirI+cLlab2WJHgM1WPBzqnhew0OV1IbRM6AE2yThwUxCdyiuG1HITVzftfn8khF4yGN0b4IcHZULP/+mXssMACE8xF5GxreYjrvSYd16wUbdUn7m5MiQnIxbfU+pmw8P+RYRHNynBdJMP67qIk1Fgd77rHmdlaWeTepcng36Ed5y2oE9PQ3JWD3+PCk4QrP5j9boLfUw6Dyn7w8gfF/cSksocnCuKZ6GCOq0CUqWc89UJHmMZD4za7f4Pr/6TDq90fOfuzZwu3Bh9gsev4fPGz459XO2bMxZn+5ZT4IgnEiRkQlHZvxMIx6NtunvKPU0WZZQB6SA3tPMcnezD7f7cE4Ez2Gwk9MbtoXxRmAEeTyQYh6u2gSq81FE/u/giUC0TTJfchjFNz/rSf3KNlMmLLLrGtCsVFgZzo8RHnzIJ/rnol/eqs+K8vBS/ZHcD1GHVxj916N4mq69Xw3ImDRk5S6W1wPzpG3GgEw1bwmYcj6IVQolRBF6VOEf0iGlQHjrvL2YdcuNQ20fksmhOBWbYmXl7W4h0oBc/KiKTKag44ttfl02IZy4t1jUthgoAFfIDXgEikUJgaZj00PfTRfMwXbAfJYWiVn9hEjEf5WBO6FjabSGR8P/jx+ZHZ32k/bcoRofPswULCXBQzqVJQxHCZsI66mig1Q8LJIPjJfSORL1/NvUl/tzxjfB2e4+rmsH8Zhs8R8W7tLBZEqjMkqZNNHsMdHOe/SGQxQNaZIepV/YRvoXjZGeNZTVaAfIzjC9hELFZb/wUNaDSlF4vgdtB3ia1lmrcTbKcHccGd+o="},{"id":"5309a75d-a6b1-41af-83ab-5dcaa399435f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"渠道管理API","description":"api-channel","prompt":"创建渠道管理API的详细文档,涵盖入口管理和渠道配置等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括入口创建、更新、删除和查询等接口,提供实际使用示例、错误处理策略和安全考虑。解释渠道管理的实现细节,包括渠道路由、流量分配和性能监控机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":7,"progress_status":"completed","dependent_files":"api/channel/,internal/controller/channel/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:37:07+08:00","raw_data":"WikiEncrypted:iIHnz7p+SPRw5X8B3MUgFa3SWR2/Ac9jwMRHn97q5TAg/jMwINtcbL5tYBTv90hQTNAlft0onNagd77WQYgFAUbr/hurYRZ+mt/lb3o1rOqpBK12mmTfxKl2ybT5ohYhbercVyHXiabficTisH8KWoyrZ566Ui1H9pqtQF/GrrtIi+Td4U8o0gtHAdEZCfaPNmO7CrqJgSjnDgjRbziLAtZ0EmCF6fqGQS0izR81eUDwq59erHoiKZ7u7VAVGSBS67EUL2KHYHgcApNpFCWBLPOI5UCp+Iiwnp9iUlxZv/E8E6X73U2BJk4SI9y4vzh3Ttn07qyu8hKusTgTgyXSYyn6L+PrdPwPsnWR+zcRttRRAeKkPzNaZxkTmcR3w2aIb/lbQ9jGcfXPO+C4n6MNW00ROPColagBltNS2+YthHqmXHlzMxDHZKwQ44RXfgyM5SpvkQWRdYLNgqtokMd4LJ3iS11Gbo3Bf68UPu5UBcpJsri++zY1OTRgIM4j0JI4fVLwqMHieHVZ7RInKj3EKm/W4TI1SZbKSUxA7yAqw0nM3z4sLmQXCXzWEDVzFfgZaofr6DzZlfJ8LOBxJ7AGuz7+agPVtR0DMvmeqiS5f/liW+5TninqNXkLBTGZGhdm75y5syHJucfgCS9DsZXMJW0XKL8bPZZS/ji1Rda4BjQZtmJ5Z+aPGt6YkCmo27N1t+wzAE1+t37Euom91RpXDFxtKv83XKgym9d7m0yvAIn3dUp+QM8FV414mAOppnUG+8J1H90QPv24YVIF12YMnhoZR93pUSYidhAZhxSrEcZvLH/d16z+AgVlTdUH3svOmwikAh6cZbqYfOzfG+uwWxlzCZ1CDmq9XYLntOR42UsvOivTwQWg7+sUaFbCO5CAV7mF5XiDmNJ4L8YMTvziX7RrGD3FWX32UKCL0VYEhK8w2YQf800Qw9IK/NSekK678tB/FLKNQXH9KTFL3I5dxPpc43UL4thkeVlcnSAvGVeyh54KklcwIR/SkVNT73El","layer_level":1},{"id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"安全考虑","description":"security","prompt":"创建kami_backend安全架构的全面文档。详细说明系统的多层安全机制,包括基于JWT的认证、基于Casbin的RBAC授权、TOTP双因素认证(MFA)和数据加密(verify包中的AES ECB和MD5)。解释每个安全组件的实现细节、配置选项和使用模式。描述身份验证流程、权限检查机制和会话管理。提供安全最佳实践指南,包括密码策略、令牌管理和安全头配置。记录常见的安全威胁和相应的缓解措施。为开发者提供安全编码实践和漏洞防范指南。","order":8,"progress_status":"completed","dependent_files":"utility/verify/,utility/mfa/,internal/middleware/auth.go,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-11T17:27:31+08:00","raw_data":"WikiEncrypted:6g8iffgXzed698CsRven+TxLJxsKi89Zg4cHxSgvhEzr/4bcgtkHOokh3q1+kVqE1tnaxONz31UFJtXDgUZL+vdV+t+IhM/TRGE1OlPebhRkyHA+yPymEcTKks0vO/fj2fQLtFRk00DPWThrLdA8vUwRH77Q32mgd7eyHBog20mYf1lRn8KKFeWdqwWZPEdRMkGMmgHUA96Im9yLeyuGqrdya5JJEeiLyLj9rUFhkQZoxl+sR6NIPeauGuYWoh3MshU8jdmI9vT1WOHPjjdWggrf6SJc6KPKy6kIUrPujJYq48yOinbDA8mCKOghP3tgraLBN2/rm7uOoYPavRuwXYjfuS4Bu2RuHPHuVJ+soIPrb1J9X13DW8irgPPZcjjukzL1cqVpmZ5mzEnN/DY2/wCMQ3L5AgH8R3B7G/bcv5ji31sZjxLyyMF6xoqNVAl9E9XXzHWM3bPCcJxXRVmw37qJZyR2BN8gEoFc471qQueIdf95b4JT9EwJEDW6uRKG2/qfrlU/qVwBCg3wCVtz7yyQdzeHYPg7MW8doys0/4JYBTCitk8wySH4SRXbLJIc+j7b3cVKwq+ltIUZze8Jei22pClgQRU6A9FT4X6EHZKld7DIqkyAvU0P/1C8eIJ5hTkTO7ck3+W+h6Vf0R5s+0uh/sOcCTavFP/OgZ46O7RBw+YOv/dTEwm5scteo56AdTeSVYvhUDPG/w0HE0p6xt8fhbEQhbXZi21FfTZZrKhac7VTS30km9dLm7ycPvCHxPWo93OkMz7eL72nmQBWtKH7+61Z5Fbl2JQG4+AG8SjWsCGcJufBFYhDiLqk+u7JXMCq8qTDjB3+xhcHXKJhPkDvsin5rL0yTupa2h6tJJAA6IIGLbrYHzpMVoyx6bytf9Hyi5xjwoylMYScUywttZM9qp0oWKY54LHcLuz1RmE+5O7oXjhEeP7B73DLfCzpSVz7gckEkgbAdFtp2QbuYlN8Lcb2f79lDOUcJsvg8Y6BYR0DkXYVVBNbvWCBcvU+kPyO9/KZjWJNmoLsOTq8Uyar0nfOYe+dzsJzJkQypSgeOayQVjAKMaISOo1Fu/6NLFkM9+crrDivnAhwkoOT8RzcDegEkI336FxALNQGyHY73GjEvTkUtfn9rTapDUVFLo0ZGPHBxYYfBVKUNByKmry0NFiWjJ/o0YUp3001PQDNDSNf/mIet6apQlXgK7Kd"},{"id":"519aff94-32db-4783-85f1-071d6c314ff3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"部署配置","description":"deployment","prompt":"创建kami_backend部署配置的详细文档。解释如何使用manifest目录下的配置文件进行系统配置,包括config.yaml中的各项参数含义和配置方法。描述Docker容器化部署的实现,包括Dockerfile的构建过程和docker-compose.yml的编排配置。提供基于Makefile的自动化部署脚本使用指南。详细说明不同环境(开发、测试、生产)的配置差异和部署流程。包括Kustomize配置管理的使用方法。为运维人员提供完整的部署检查清单和最佳实践。","order":9,"progress_status":"completed","dependent_files":"manifest/config/config.yaml,manifest/docker/,docker-compose.yml,Makefile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:04:18+08:00","raw_data":"WikiEncrypted:XJiAh4Py4zdOGBbpygpFvNM5YJoFCwLwhMBuV/C58fOZOPUaHJKo94aolWSN1qNGMLxoon4t+emUd9D/p7gwzvwJ/vluqP9Sp8eGHboCI3LEJz6ISr3JAXRSRsIB38jMipXGleUHXpvneh7Dexhh5G6wPFr+pJBIK1yptWrPI+5nX+N6cthMlivGNb/bkD/ENhls+X3raWhzLlghho8cBf5b9Cp4sLtgs41hEaoHShLHGB3K+ZBFDTaRYea4IYLaevBYUmvh7N5BWtZd8IiOmmNPIhX+phk8GrnHPghYSxo6FoezuPyRzqXx1Mz6X+JWIFl24DUHMReqHFmPzqMoy8lJLapDUJ3YhbzAss+zUx805+7AbMFh2N/ZyoaeH4g4gqxkdJ4iJFlULcFvzPP4Fj3ZETJziR32P9Cx0++Ju0tEsFPpBdexYujrFcKqdVqtmk7CarLxxWFlN8rTm4476jRU2Skjx6SkoAvWlxxE4eCLzoBKjdqxXis7jqd2KUE2cYuBfXG4tNrvIosBNEDaMMExaAe5YGibc7FbQddTx3zFAYwpgp7MyodjHbnySgPv1Z4v7gF4Hzaqgzp7ygutrGTwUnKrVWNNQrQ3CdFfv1UIufMAoih8UTVMyyrNr7CQjir08GtwgYKQPiQ4f570FqBGD/4foRJA/GMKvUokAj2umlI6qhbTCZB8uBZBmFA1YBJdI7QnG9gKxrcB+Yb6JwGNp34XI+fvjiuyfPF7uYbkDc5aS6iemGf/iVurb+RPwca1kXG8u3JpuMZUxy/cBTq4gA20iuVPxTliB9B7/pbct7oxb6gXkAH5TKfw3Gdu9fS1y7XIRVt8zjWOuYvaH7lQwPlQKCH8muApkvPle9Fv6cpWkRt0jFGcb7NlJVwc9hIfh729ZR53EBTSLkfyiC9PD4c2ADkVhtccp/7MBh6FrMLYxkcTw7PF9ezWJxDq3PrnRry1CAlh4P3zfl/n2l89eRffw/aG7W0Q4qblGl4jLDOqyXxtiMvY4Te4PFd1RFVOA80IW6xtjxOcr1cVmjbmTsUhE5aNZcRkB8Dxf49CFS7PS/kYcM2PJLaGU7+pWk6/cTcr/Dg8tDs6sne/WXbfhSyOKFJRfGl7piVyxksvp/srp/Mr0y2oGL9WyKbHxDh3DyYxaukyUCPmXZbN8g=="},{"id":"6c6c6963-ea94-43ef-8abd-97ab6817a48b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"测试策略","description":"testing","prompt":"创建kami_backend测试策略的全面文档。描述项目的整体测试方法论,包括单元测试、集成测试和端到端测试的覆盖范围。解释如何为业务逻辑层、服务层和控制器层编写有效的测试用例。提供使用Go测试框架的实际代码示例。说明测试数据的准备和清理策略。记录代码覆盖率目标和测量方法。包括性能测试和压力测试的指南。为开发者提供测试驱动开发(TDD)的最佳实践和常见测试模式。","order":10,"progress_status":"completed","dependent_files":"internal/logic/,internal/service/,internal/controller/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-11T17:26:03+08:00","raw_data":"WikiEncrypted:Xd2Zu8BM8p49theGlFJHkHqkA5ycuMpwkltd7rjxfkZm5u2F/OCOa2rxC3NxLrZDZf5D15q4Vh8tHCK9cPrOS4+Ys3urQt//f060Y4iIHh0l1A28UoBx4zw0WH3M31LfLAxkTXkOcrkF5ptnw52Idh6trbx5eJS2Qv+BcIzGv/Iw3x2pAWTgHakxyzRAqrc1k7BDI4v7XRmjHtE2IpxaQQ1aRofarEJM4MyjQfoDXHYSW8+3BB/rIqmowV+wDhA0o9b5SkR3FDUW6zx/cusIqFWZk/E8ssygQCH92MhSu1TDh7dMd3oLVFHt8qweO2CeDQeBoVaqprQtzFydOqViXVvUbxt3J49Uu/XsYzuy2y9gkwK3BwWK432ZYLCE+TWL6kcU1LvWM5MNSnWuGzOcPYn5QXe0o7M7Jw0uSo6luSgbk0g5PqKn/lvl79JWmtgOZZgyHAL/2hOegzUFr9e5VmFSCTJMrD9W2HXeCpQr1IJuo0bEdoBQVOimVUmnn+dAiarIRzwyeOYNBkLQFRAX8l/FyKQWEE4ApGtZc5ATGdj/1nx0+aQ8IFVjwlqm0n+vM+Osh8OLVPDt9uXwJwrz0I3jphsV4Ml2A+7g2pu8CEw24LB9nnY8bQszP2CCoZNFm4qFdWxelglVd7EsL+ai2vTQtsW0M1FnJHcQoaNzKrBNXZ36aZzUrIkVOUzOPDNGBQqANaVf31s6bnJPy9hbTv88NsQu0FbvNSue+JJlY9wzKRLof/eMacip+HUjo5ETmUhP2ocTHL1IyYpaDEHbn3tfw7h7q7gWngIdXTg/cWpTfnqaYWLuhBdLSpUoUSgbr/mIAASCKNBmH9FvjcV9FADEFcl9P93PTrkoo009k2XSR7sGLDMS6KnwDvoM65t19TQDgLj5s2bKPAwe41GpH6RsJYk6UZ98moX0xtBpsWAKDYiyTxNLLDYYuNoL9UBg0EhXm9uLrMC28S8rd70zT767Mf+MbJEx4/GyUt7uBSJcsWBtNgcuw8aVwd0QTuTj"},{"id":"35d30eb8-d12a-498a-a19c-c1b6ef95145b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"快速入门","description":"getting-started","prompt":"创建kami_backend的快速入门指南。为新开发者提供清晰、逐步的设置说明,包括开发环境配置、依赖安装、数据库初始化和项目启动。使用Makefile中的命令作为主要操作入口,解释每个命令的作用。提供'Hello World'级别的简单示例,展示如何调用一个基本API端点。包括常见问题的故障排除指南。确保指南足够简单明了,让开发者能在15分钟内完成环境搭建并运行第一个请求。","order":11,"progress_status":"completed","dependent_files":"CLAUDE.md,Makefile,README.md,main.go","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:26:09+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWjuiNN7p/9UiziFtG8VxSN3lDZPQFx0/QJ3DnzLYLtDRB4nGAaU70RZkhO+ON1gRN4x+OHmdrMLZxTrt1rT6pGA304dmEU5OCbFwPbamZhWwUiBN85RO9DSQy2tzy/P/lVYlefkzZMkpfKXb9Hr2X9EYwdxWad8uG+wdSo7mYQ6g2cGIh6DXj5RS83lPDobvMdSy2x/+meDkNsdZVrtgqWSPSfZB7kbAgbAwqL66wuPprOWkltTYURGRfQIKB6OhS+r9VX3YXOm+gQXKVeTKrOzf4NXqlD25+zhbtCJ3+4IzXOpl8s5skN6wQcclYhNU2fZ0+dhVr2zUOJv/Swtb2ppsHzKz/H2CZ9U9jz+M19LpXEq65esOK1cJDloyR0A/LEuZREMHX/itrpygGEXG1NhnJdnffjF9snrEFtX4to8GEHJTSUJ7xAbIWr1Eceb93J0pKYLGy9eNXaKuEU2A9HyZHdkI5409eQvTnIABD7JVK8EZlcp12EI0LtM1fFMI6/cvAOk826mSlFvoy6J2JdN0zN2mhqlQ43bWoyVFPq29j8ZmAVA/rf+wSQoXZS7UKmeuGosnjq6MMZOZ/KILspUla3seZ7O5+Os1gd71bHfOuCkQPJUQWWtPeSbhF08+pwWOkmbEM2+yo9JwnDh5GdRaqRT4BMZgREKFdqIUVvo4XY9GCyXJJGce0AKXrI70YRhapEjIV1rF7jRZ52QQcEBvRl6JsFcZEMkKnGyOHEZCVtmvAW4gI1yJ1XmCM7RzER77Q0l9IzJlSNp6SVCHz3Tqy1gDWAlPNHwCCsEn/7GZikekXguvT5jfZBNNtrpFH78RmRIXRV9qCLNZaBnnZmOQbzPjFNBy9v0ZQHFqYW6HPYyMlMFVZtZibhPe1UDOm22OOmnwEzdlDtUQZpU/ZIeftMXuXgPoP64qn7ytqc6gPu59MXlUVl8D3G4+labxbVg="}],"wiki_items":[{"catalog_id":"802f0a8e-251b-4bdc-9194-bfdc2122b3bf","title":"技术栈与依赖","description":"technology-stack","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2d252858-5e54-46c7-8333-19753b85e57a","gmt_create":"2025-10-08T18:21:57+08:00","gmt_modified":"2025-10-08T18:21:57+08:00"},{"catalog_id":"8292f51b-85c1-41d5-a58a-50585ba999d1","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ed77f21d-2b02-47a9-b2cb-1f1d36e06b8d","gmt_create":"2025-10-08T18:22:33+08:00","gmt_modified":"2025-10-08T18:22:33+08:00"},{"catalog_id":"e71856cb-fd63-47f5-8f0b-2dd3d29fba10","title":"中间件与拦截器","description":"middleware","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","gmt_create":"2025-10-08T18:23:25+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"catalog_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","title":"数据模型与ORM映射","description":"data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","gmt_create":"2025-10-08T18:23:37+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"catalog_id":"201b5004-c469-41f6-a407-c98892822b49","title":"业务逻辑层架构","description":"business-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"caeb482b-4671-4692-98b5-948f768bcf2d","gmt_create":"2025-10-08T18:24:00+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"catalog_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","title":"外部集成","description":"external-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"32329179-a4a2-47e2-83dd-1a93c046af96","gmt_create":"2025-10-08T18:24:17+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"catalog_id":"56f928f7-77bb-40cd-b1ba-80079defed47","title":"日志与监控","description":"monitoring","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","gmt_create":"2025-10-08T18:24:50+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"catalog_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","title":"安全考虑","description":"security","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","gmt_create":"2025-10-08T18:25:14+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"catalog_id":"519aff94-32db-4783-85f1-071d6c314ff3","title":"部署配置","description":"deployment","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"056cda49-d96e-49a5-831c-7def9872435e","gmt_create":"2025-10-08T18:25:27+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"catalog_id":"6c6c6963-ea94-43ef-8abd-97ab6817a48b","title":"测试策略","description":"testing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","gmt_create":"2025-10-08T18:25:41+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"catalog_id":"35d30eb8-d12a-498a-a19c-c1b6ef95145b","title":"快速入门","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8148be9a-75be-4ed8-acba-f6008757d0e0","gmt_create":"2025-10-08T18:26:09+08:00","gmt_modified":"2025-10-08T18:26:09+08:00"},{"catalog_id":"0acd557b-c455-4420-956e-96a4a67cd7e0","title":"用户数据模型","description":"user-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e4fe353d-cefc-4899-9e57-39fc9f112127","gmt_create":"2025-10-08T18:26:32+08:00","gmt_modified":"2025-10-08T18:26:32+08:00"},{"catalog_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","title":"卡密管理逻辑","description":"card-management-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"33150d2c-ac78-4784-a31b-e9d342cc880c","gmt_create":"2025-10-08T18:26:44+08:00","gmt_modified":"2025-10-08T18:26:44+08:00"},{"catalog_id":"681cb8e8-add7-42cb-8297-72df3436bc74","title":"权限管理API","description":"api-auth","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","gmt_create":"2025-10-08T18:27:26+08:00","gmt_modified":"2025-10-08T18:27:26+08:00"},{"catalog_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","title":"电商平台集成","description":"e-commerce-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","gmt_create":"2025-10-08T18:27:39+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"catalog_id":"965a1a48-9a08-4f01-9b4f-1f1a51c82165","title":"认证机制","description":"authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"bb84a187-9957-4c61-82b0-b8997f3b306a","gmt_create":"2025-10-08T18:27:42+08:00","gmt_modified":"2025-10-08T18:27:44+08:00"},{"catalog_id":"dfd2209f-82b2-4b3c-84b4-8fa7f91207e5","title":"配置管理","description":"config_management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d2e0d8f8-6a5a-4d1d-aa94-30a022535241","gmt_create":"2025-10-08T18:28:10+08:00","gmt_modified":"2025-10-08T18:28:10+08:00"},{"catalog_id":"5ffd09f4-939b-4b8b-a254-494937471526","title":"订单处理逻辑","description":"order-processing-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2ab1acd9-0488-4f69-a292-63359e8a485a","gmt_create":"2025-10-08T18:28:45+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"catalog_id":"4bf77667-f501-43ff-8e67-ed1fa1562255","title":"订单数据模型","description":"order-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","gmt_create":"2025-10-08T18:28:50+08:00","gmt_modified":"2025-10-08T18:28:50+08:00"},{"catalog_id":"e047b856-1a8e-4ead-bda6-66d7c3ab4651","title":"授权机制","description":"authorization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b52b76ee-90db-4464-bb9d-431b10755e6e","gmt_create":"2025-10-08T18:29:44+08:00","gmt_modified":"2025-10-08T18:29:44+08:00"},{"catalog_id":"3885dee9-9a55-4da0-8506-1a84306cae21","title":"监控系统集成","description":"monitoring-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f071af41-6de4-4751-8a76-5e5d5d0c02df","gmt_create":"2025-10-08T18:29:59+08:00","gmt_modified":"2025-10-08T18:29:59+08:00"},{"catalog_id":"3c6ca985-3423-453c-9f11-d9030f798abe","title":"容器化部署","description":"containerization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","gmt_create":"2025-10-08T18:30:37+08:00","gmt_modified":"2025-10-08T18:30:37+08:00"},{"catalog_id":"aaf3daf4-4a28-4e81-8d88-4453361c2ac6","title":"商户管理逻辑","description":"merchant-management-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c46f3f6b-d36e-48a1-84b7-1e14cb598119","gmt_create":"2025-10-08T18:31:02+08:00","gmt_modified":"2025-10-08T18:31:02+08:00"},{"catalog_id":"8d18de48-44df-4825-825a-d6d8797a330b","title":"卡密数据模型","description":"card-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","gmt_create":"2025-10-08T18:31:25+08:00","gmt_modified":"2025-10-08T18:31:25+08:00"},{"catalog_id":"079920b2-aa64-48aa-a92d-8decf24623b1","title":"订单管理API","description":"api-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ba1c4880-8600-4564-afa6-175208ea101b","gmt_create":"2025-10-08T18:31:48+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"catalog_id":"8b232595-64ae-41b7-95c2-1ae6428857e3","title":"数据安全","description":"data_security","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","gmt_create":"2025-10-08T18:32:10+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"catalog_id":"f5f182bf-a48c-41f1-86f7-12c882b3775a","title":"权限系统集成","description":"permission-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d5e98815-ab00-4c12-8402-2fbc852d8dbd","gmt_create":"2025-10-08T18:32:32+08:00","gmt_modified":"2025-10-08T18:32:32+08:00"},{"catalog_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","title":"自动化部署","description":"automation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c2fef000-7272-4553-b8e9-650afd08aef6","gmt_create":"2025-10-08T18:32:49+08:00","gmt_modified":"2025-10-08T18:32:49+08:00"},{"catalog_id":"93bada60-b20a-4977-b82c-eca224ca34f6","title":"风控限制逻辑","description":"restriction-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"077abc2a-81e5-4e9c-9a72-757f4765021c","gmt_create":"2025-10-08T18:33:33+08:00","gmt_modified":"2025-10-08T18:33:33+08:00"},{"catalog_id":"f5173a3f-1bbf-4ffd-aefb-fedf3a92a65e","title":"账户数据模型","description":"account-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"399f12e9-6620-446c-9e02-808c39c61bba","gmt_create":"2025-10-08T18:33:34+08:00","gmt_modified":"2025-10-08T18:33:34+08:00"},{"catalog_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","title":"商户管理API","description":"api-merchant","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","gmt_create":"2025-10-08T18:34:16+08:00","gmt_modified":"2025-10-08T18:34:16+08:00"},{"catalog_id":"e7731430-b57c-48b6-b326-56a4297fa5b6","title":"Kustomize配置管理","description":"kustomize","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4708f37c-6c92-4fa9-aba1-fa843c3863f2","gmt_create":"2025-10-08T18:34:17+08:00","gmt_modified":"2025-10-08T18:34:17+08:00"},{"catalog_id":"f6a6925e-fe4d-4480-858a-b25ee0c9c478","title":"双因素认证","description":"mfa","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d15e79da-d03f-46a7-9939-d486c82bdd9e","gmt_create":"2025-10-08T18:34:59+08:00","gmt_modified":"2025-10-08T18:34:59+08:00"},{"catalog_id":"c31af7ce-10ef-44f2-9bb6-b8772f1bc957","title":"系统配置数据模型","description":"system-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d106423b-19ad-4e22-8a4a-567e2ff27e36","gmt_create":"2025-10-08T18:35:37+08:00","gmt_modified":"2025-10-08T18:35:37+08:00"},{"catalog_id":"71487087-d57a-431c-af0f-f9ce8536c80b","title":"风控限制API","description":"api-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","gmt_create":"2025-10-08T18:35:55+08:00","gmt_modified":"2025-10-08T18:35:55+08:00"},{"catalog_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","title":"系统认证逻辑","description":"system-auth-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","gmt_create":"2025-10-08T18:35:57+08:00","gmt_modified":"2025-10-08T18:35:57+08:00"},{"catalog_id":"d7caf3d0-b00a-4bf4-8045-ea54b457c2a2","title":"系统监控API","description":"api-monitor","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8e29abbf-237b-418a-b169-69594db3a3e6","gmt_create":"2025-10-08T18:36:45+08:00","gmt_modified":"2025-10-08T18:36:45+08:00"},{"catalog_id":"5309a75d-a6b1-41af-83ab-5dcaa399435f","title":"渠道管理API","description":"api-channel","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f5a8ad7a-5455-4dda-8fa1-28c34b83dfb0","gmt_create":"2025-10-08T18:37:07+08:00","gmt_modified":"2025-10-08T18:37:07+08:00"},{"catalog_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","title":"资金管理API","description":"api-fund","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"51819175-b0b6-4391-899e-6d9466cf804b","gmt_create":"2025-10-08T18:37:11+08:00","gmt_modified":"2025-10-08T18:37:11+08:00"},{"catalog_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","title":"Apple卡密管理逻辑","description":"apple-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","gmt_create":"2025-10-08T18:37:52+08:00","gmt_modified":"2025-10-08T18:37:52+08:00"},{"catalog_id":"cae0b323-5cd0-47e9-a902-06ceae30545f","title":"Apple订单处理","description":"apple-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"753b0096-e6c4-42d1-aba0-93c8df17fdc9","gmt_create":"2025-10-08T18:38:12+08:00","gmt_modified":"2025-10-08T18:38:12+08:00"},{"catalog_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","title":"IP限制机制","description":"ip-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","gmt_create":"2025-10-08T18:38:32+08:00","gmt_modified":"2025-10-08T18:38:32+08:00"},{"catalog_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","title":"权限规则管理","description":"permission-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","gmt_create":"2025-10-08T18:39:14+08:00","gmt_modified":"2025-10-08T18:39:14+08:00"},{"catalog_id":"071ef93d-b914-433a-b69c-a4ec42c36381","title":"订单表单管理","description":"api-order-form","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"61e64814-3402-4560-ac80-de2897628585","gmt_create":"2025-10-08T18:39:17+08:00","gmt_modified":"2025-10-08T18:39:17+08:00"},{"catalog_id":"cc12ac77-8ff2-43e0-b014-8cbffbaa022d","title":"菜单管理API","description":"api-auth-menu","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"738f052a-42a0-4959-bafb-657eb467d57d","gmt_create":"2025-10-08T18:39:22+08:00","gmt_modified":"2025-10-08T18:39:22+08:00"},{"catalog_id":"162500a5-7167-4984-9744-2802fb00bd08","title":"钱包管理","description":"api-fund-wallet","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0aafdca3-5383-41f6-95ae-95c4f6eb2f32","gmt_create":"2025-10-08T18:40:13+08:00","gmt_modified":"2025-10-08T18:40:13+08:00"},{"catalog_id":"8d814eba-e2eb-46c2-a59f-00ad5b8d5de2","title":"商户配置管理","description":"api-merchant-config","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"df46fe53-92ca-4da6-826a-b33df0bd242b","gmt_create":"2025-10-08T18:40:25+08:00","gmt_modified":"2025-10-08T18:40:25+08:00"},{"catalog_id":"bb872064-72df-45eb-ab34-4003a0fe8e62","title":"IP限制API","description":"api-restriction-ip","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","gmt_create":"2025-10-08T18:41:29+08:00","gmt_modified":"2025-10-08T18:41:29+08:00"},{"catalog_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","title":"Apple卡密管理API","description":"api-card-info-apple","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6e73ea9a-6384-4196-b8f0-c31e83783450","gmt_create":"2025-10-08T18:41:41+08:00","gmt_modified":"2025-10-08T18:41:41+08:00"},{"catalog_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","title":"Dockerfile详解","description":"dockerfile","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","gmt_create":"2025-10-08T18:41:44+08:00","gmt_modified":"2025-10-08T18:41:44+08:00"},{"catalog_id":"27a44e9c-003b-4f06-9b87-2882cf3c1e08","title":"Makefile自动化构建","description":"makefile","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5d780517-9a6d-4c42-ba58-f5b8ec8393ce","gmt_create":"2025-10-08T18:42:23+08:00","gmt_modified":"2025-10-08T18:42:23+08:00"},{"catalog_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","title":"京东卡密管理逻辑","description":"jd-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","gmt_create":"2025-10-08T18:43:18+08:00","gmt_modified":"2025-10-08T18:43:18+08:00"},{"catalog_id":"fa42c78e-0f93-45a1-8ee8-9cf8cfac869e","title":"地域限制机制","description":"geographical-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6f8ee399-7380-4fee-a2e4-728f269611b1","gmt_create":"2025-10-08T18:43:32+08:00","gmt_modified":"2025-10-08T18:43:32+08:00"},{"catalog_id":"1ee1a6e7-8394-4ff7-88af-afda35cd1775","title":"角色管理API","description":"api-auth-role","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f10ee956-3c2d-488f-a83d-d998dc2c2bd1","gmt_create":"2025-10-08T18:44:25+08:00","gmt_modified":"2025-10-08T18:44:26+08:00"},{"catalog_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","title":"用户认证管理","description":"user-authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","gmt_create":"2025-10-08T18:44:56+08:00","gmt_modified":"2025-10-08T18:44:56+08:00"},{"catalog_id":"91befb50-6592-4b74-82da-7510ab876eff","title":"订单日志管理","description":"api-order-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","gmt_create":"2025-10-08T18:45:08+08:00","gmt_modified":"2025-10-08T18:45:08+08:00"},{"catalog_id":"3738ad5b-aca0-4c87-9e86-9551d689f889","title":"商户部署管理","description":"api-merchant-deploy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c7dcc000-3176-454a-a9df-1ecd2131cc5b","gmt_create":"2025-10-08T18:45:48+08:00","gmt_modified":"2025-10-08T18:45:48+08:00"},{"catalog_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","title":"京东卡密管理API","description":"api-card-info-jd","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","gmt_create":"2025-10-08T18:46:02+08:00","gmt_modified":"2025-10-08T18:46:02+08:00"},{"catalog_id":"3cd0ff7f-89a0-4ba5-89c6-d092ac39981d","title":"资金流水","description":"api-fund-wallet-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"692c0d1b-79e2-466b-bd94-9c041d9bda6b","gmt_create":"2025-10-08T18:46:06+08:00","gmt_modified":"2025-10-08T18:46:06+08:00"},{"catalog_id":"58118687-a7d8-4b0d-b788-36481cba182d","title":"Docker Compose编排","description":"docker_compose","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","gmt_create":"2025-10-08T18:46:51+08:00","gmt_modified":"2025-10-08T18:46:51+08:00"},{"catalog_id":"2c2db8d8-8ed8-4ef7-85e5-9d42615aba0a","title":"地域限制API","description":"api-restriction-region","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"17fd343c-4fd0-4124-a801-902c9ecd72ea","gmt_create":"2025-10-08T18:46:54+08:00","gmt_modified":"2025-10-08T18:46:54+08:00"},{"catalog_id":"7fce1289-c2cc-4640-9fe2-2049d025cbb3","title":"Shell脚本自动化","description":"shell_scripts","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eb1ee078-c356-49ad-827a-9313420c484d","gmt_create":"2025-10-08T18:47:04+08:00","gmt_modified":"2025-10-08T18:47:04+08:00"},{"catalog_id":"4ed6b7ca-ace0-4389-81b1-f1e35781d27c","title":"天猫平台集成","description":"tmall-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"477c9fd9-139a-43fe-87ae-8d64529bbf2c","gmt_create":"2025-10-08T18:47:59+08:00","gmt_modified":"2025-10-08T18:47:59+08:00"},{"catalog_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","title":"设备ID限制机制","description":"device-id-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","gmt_create":"2025-10-08T18:48:47+08:00","gmt_modified":"2025-10-08T18:48:47+08:00"},{"catalog_id":"15255e1e-df14-473a-8e50-b20da5e10eec","title":"天猫订单处理","description":"tmall-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"080fba3c-3cca-40b8-b913-c5cf213a36f9","gmt_create":"2025-10-08T18:49:02+08:00","gmt_modified":"2025-10-08T18:49:02+08:00"},{"catalog_id":"8137c301-f13b-4054-992f-c556767d7c45","title":"天猫卡密管理逻辑","description":"tmall-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","gmt_create":"2025-10-08T18:49:06+08:00","gmt_modified":"2025-10-08T18:49:06+08:00"},{"catalog_id":"ed66dce5-4de8-4993-bc89-a466abb74f43","title":"租户管理API","description":"api-auth-tenant","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"29857cbd-6dcb-4ee9-b121-6312d5a523c9","gmt_create":"2025-10-08T18:49:45+08:00","gmt_modified":"2025-10-08T18:49:45+08:00"},{"catalog_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","title":"天猫卡密管理API","description":"api-card-info-tmall","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","gmt_create":"2025-10-08T18:50:18+08:00","gmt_modified":"2025-10-08T18:50:18+08:00"},{"catalog_id":"c98a021c-f5a3-4847-b8a2-445d4b79ffe9","title":"盗单处理管理","description":"api-merchant-steal","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"824c49c6-ab20-4552-b22a-86d1e9351317","gmt_create":"2025-10-08T18:50:34+08:00","gmt_modified":"2025-10-08T18:50:34+08:00"},{"catalog_id":"87378996-7b26-4ef7-81e5-3e2c73c13d78","title":"用户信息收集API","description":"api-restriction-user-info","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e81e6998-8633-4c13-ae1f-6eb9820aaa79","gmt_create":"2025-10-08T18:51:10+08:00","gmt_modified":"2025-10-08T18:51:10+08:00"},{"catalog_id":"1b7f1c36-8377-4ab0-91c2-52017bc8c76d","title":"订单汇总统计","description":"api-order-summary","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"04861c55-7eb4-4fb8-9367-ea7653e898c2","gmt_create":"2025-10-08T18:51:11+08:00","gmt_modified":"2025-10-08T18:51:11+08:00"},{"catalog_id":"e0f89cbb-9392-48f7-987d-45771ccb89fc","title":"Ctrip平台集成","description":"ctrip-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4c9682c6-1065-4e84-8b74-f2fdd80c62f4","gmt_create":"2025-10-08T18:51:42+08:00","gmt_modified":"2025-10-08T18:51:44+08:00"},{"catalog_id":"6c7962c8-8824-47d8-b89c-e12e2ab0e54c","title":"沃尔玛平台集成","description":"walmart-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","gmt_create":"2025-10-08T18:52:19+08:00","gmt_modified":"2025-10-08T18:52:19+08:00"},{"catalog_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","title":"沃尔玛卡密管理API","description":"api-card-info-walmart","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"817fc86a-b662-454b-83ed-09be950b1bdc","gmt_create":"2025-10-08T18:52:33+08:00","gmt_modified":"2025-10-08T18:52:33+08:00"},{"catalog_id":"4a2f1ccb-e858-46e2-b051-4b553c1e2f48","title":"Ctrip卡密管理API","description":"api-card-info-ctrip","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f8adb15a-410b-4784-bbd6-402691aacab2","gmt_create":"2025-10-08T18:52:54+08:00","gmt_modified":"2025-10-08T18:52:54+08:00"},{"catalog_id":"d47fa6fc-1893-43bf-906f-c9ed0db47dd9","title":"京东卡密账户管理","description":"jd-card-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e200c8f1-c37b-41e9-bac1-057445ecb066","gmt_create":"2025-10-08T18:53:38+08:00","gmt_modified":"2025-10-08T18:53:38+08:00"},{"catalog_id":"de16dd4b-ba68-49bb-97c7-cc34f0ebba00","title":"Apple卡密账户管理","description":"apple-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","gmt_create":"2025-10-08T18:53:45+08:00","gmt_modified":"2025-10-08T18:53:45+08:00"},{"catalog_id":"3ab7071c-90ec-4de1-8d64-d414460e61e3","title":"天猫卡密账户管理","description":"tmall-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"fc236117-4117-4af0-8d3d-0c3fbecab71a","gmt_create":"2025-10-08T18:54:12+08:00","gmt_modified":"2025-10-08T18:54:12+08:00"},{"catalog_id":"8b0278d7-2786-4c72-ae74-b9dd35efed2c","title":"IP记录管理","description":"ip-record-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"56080685-56e4-4a91-ba5c-6a25de62ccdf","gmt_create":"2025-10-08T18:54:37+08:00","gmt_modified":"2025-10-08T18:54:37+08:00"},{"catalog_id":"5624e47a-917e-43a1-bb5f-41c0c061836f","title":"设备ID采集机制","description":"device-id-collection","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","gmt_create":"2025-10-08T18:54:43+08:00","gmt_modified":"2025-10-08T18:54:43+08:00"},{"catalog_id":"f54d30d0-d3a6-47ba-bdfd-e7da45674e38","title":"登录认证","description":"login-authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0eb7033e-6cb9-4e9c-8641-e80f88d0203c","gmt_create":"2025-10-08T18:55:08+08:00","gmt_modified":"2025-10-08T18:55:08+08:00"},{"catalog_id":"60a234ee-1d45-4e80-b8bf-a0ba60aaf7ee","title":"Apple卡密账户管理","description":"api-card-info-apple-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"06a8f4cd-585e-43e5-992a-156951ca77b1","gmt_create":"2025-10-08T18:55:43+08:00","gmt_modified":"2025-10-08T18:55:43+08:00"},{"catalog_id":"708d0f68-64e4-4da7-a329-e73234ebb6d3","title":"权限规则定义","description":"permission-definition","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f63d9ee2-939e-4112-8422-b76013d0c37b","gmt_create":"2025-10-08T18:55:45+08:00","gmt_modified":"2025-10-08T18:55:45+08:00"},{"catalog_id":"5a0f3a66-d169-4a34-95ca-e173a89429e2","title":"京东卡密账户管理","description":"api-card-info-jd-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0eb68661-00bd-4d95-809e-54d87927a654","gmt_create":"2025-10-08T18:56:14+08:00","gmt_modified":"2025-10-08T18:56:14+08:00"},{"catalog_id":"f1ed70ff-aea4-4289-8223-fecd0ffd2cad","title":"构建阶段详解","description":"dockerfile-build","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4c36e3bc-fa82-4d1b-a78d-e0832adf415b","gmt_create":"2025-10-08T18:56:29+08:00","gmt_modified":"2025-10-08T18:56:29+08:00"},{"catalog_id":"6a7b8a19-18bb-4222-8c43-45f6c25ea130","title":"天猫卡密账户管理","description":"api-card-info-tmall-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a75ff292-fb3f-42ba-84d8-189105b57626","gmt_create":"2025-10-08T18:56:38+08:00","gmt_modified":"2025-10-08T18:56:38+08:00"},{"catalog_id":"9b95c229-e3f1-4960-a0be-1b88f001b0bd","title":"主服务配置","description":"docker_compose_main_service","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","gmt_create":"2025-10-08T18:57:12+08:00","gmt_modified":"2025-10-08T18:57:12+08:00"},{"catalog_id":"18a1847d-4be2-4c61-af2e-3f527f5f3d1c","title":"沃尔玛卡密账户管理","description":"api-card-info-walmart-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d7798344-7bd7-4d4b-b7af-12e478898534","gmt_create":"2025-10-08T18:57:15+08:00","gmt_modified":"2025-10-08T18:57:15+08:00"},{"catalog_id":"745be06d-31ed-45f2-9822-e6cf41730cae","title":"Apple卡密充值处理","description":"apple-recharge-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1acfa79b-62c0-4874-99e4-6ae09004acc4","gmt_create":"2025-10-08T18:57:37+08:00","gmt_modified":"2025-10-08T18:57:37+08:00"},{"catalog_id":"230cd5da-15c7-41e8-9ed4-a0cc2496bd71","title":"京东卡密兑换处理","description":"jd-card-redeem-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6e962549-b111-4d8e-b263-89eafba99a84","gmt_create":"2025-10-08T18:58:15+08:00","gmt_modified":"2025-10-08T18:58:15+08:00"},{"catalog_id":"58030d31-a0a0-4431-abd1-4065b0200dfc","title":"天猫卡密订单处理","description":"tmall-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4d1ec235-b735-4351-abdb-3721a223dd51","gmt_create":"2025-10-08T18:58:16+08:00","gmt_modified":"2025-10-08T18:58:16+08:00"},{"catalog_id":"321018b9-e7f9-4101-968c-1818559aeb32","title":"IP查询优化","description":"ip-query-optimization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"bd721dc3-a854-4ab4-af6f-1c1a24c2e660","gmt_create":"2025-10-08T18:58:38+08:00","gmt_modified":"2025-10-08T18:58:38+08:00"},{"catalog_id":"beeabbca-9f86-4566-98b3-6bbce10c5df2","title":"双因素认证","description":"two-factor-auth","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"838ae7a4-15cd-489b-b25d-f4af8946b45b","gmt_create":"2025-10-08T18:59:05+08:00","gmt_modified":"2025-10-08T18:59:05+08:00"},{"catalog_id":"c66c0c6a-c5ba-4081-a359-7bb0a47ca417","title":"设备ID存储策略","description":"device-id-storage","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"53947e3e-89de-416d-857e-54a84330a7ae","gmt_create":"2025-10-08T18:59:13+08:00","gmt_modified":"2025-10-08T18:59:13+08:00"},{"catalog_id":"3acdd907-8a5f-4d42-9ff1-61bd6e8cabee","title":"权限验证机制","description":"permission-validation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5512c349-309d-4bd7-9e7e-ec7df28c6d32","gmt_create":"2025-10-08T18:59:43+08:00","gmt_modified":"2025-10-08T18:59:43+08:00"},{"catalog_id":"f8a44d0b-b413-4926-a059-e1ac7b32cd45","title":"Apple卡密充值处理","description":"api-card-info-apple-recharge","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e146bc47-a61b-4bec-bc1a-37faa13b372c","gmt_create":"2025-10-08T19:00:01+08:00","gmt_modified":"2025-10-08T19:00:01+08:00"},{"catalog_id":"a255fcc8-4b84-415f-bd11-dc26fa62d0b9","title":"京东卡密订单处理","description":"api-card-info-jd-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8a159a71-a6ed-4138-93a9-e7c1be49368b","gmt_create":"2025-10-08T19:00:03+08:00","gmt_modified":"2025-10-08T19:00:03+08:00"},{"catalog_id":"c156f2b2-d455-46fd-8a01-d316c8e27336","title":"天猫卡密订单处理","description":"api-card-info-tmall-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e8e1b906-cdb1-41b2-a03b-8450dfec49e1","gmt_create":"2025-10-08T19:00:59+08:00","gmt_modified":"2025-10-08T19:00:59+08:00"},{"catalog_id":"694e73a1-0845-4ebf-a2f6-990acde1e379","title":"沃尔玛卡密订单处理","description":"api-card-info-walmart-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f696338b-1dae-45bc-b4e4-f7aab1a66b0d","gmt_create":"2025-10-08T19:01:13+08:00","gmt_modified":"2025-10-08T19:01:13+08:00"},{"catalog_id":"754a8225-3d82-4760-bc4f-280e0c19eb86","title":"运行阶段详解","description":"dockerfile-runtime","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e05b2dc7-2335-4c8b-b24c-48a1f98f5361","gmt_create":"2025-10-08T19:01:19+08:00","gmt_modified":"2025-10-08T19:01:19+08:00"},{"catalog_id":"350fc114-3308-4a56-87eb-6916d2c2e278","title":"数据库配置","description":"docker_compose_database","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"34d853c3-140d-40d8-80fa-e7f32e322305","gmt_create":"2025-10-08T19:01:54+08:00","gmt_modified":"2025-10-08T19:01:54+08:00"},{"catalog_id":"677ff050-ffe6-4e0c-93e6-5aa4da717ad6","title":"Apple卡密历史记录管理","description":"apple-history-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c96823f-d6db-46ca-a33c-dbfdc28756a1","gmt_create":"2025-10-08T19:02:08+08:00","gmt_modified":"2025-10-08T19:02:08+08:00"},{"catalog_id":"b86eeb37-caa6-4edb-807b-036800419a82","title":"京东卡密分组管理","description":"jd-card-group-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3a97712d-0f09-4a0a-b365-60d2af7a7fe2","gmt_create":"2025-10-08T19:02:13+08:00","gmt_modified":"2025-10-08T19:02:13+08:00"},{"catalog_id":"1072ba9e-1fcc-4ea4-9598-564f965be8fd","title":"设备ID匹配算法","description":"device-id-matching","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"17fa72bc-2bc8-478c-9b6a-9d6cae53f588","gmt_create":"2025-10-08T19:02:59+08:00","gmt_modified":"2025-10-08T19:02:59+08:00"},{"catalog_id":"9267865e-7ecd-4a9f-9bdc-66f3c47cdd00","title":"天猫卡密工作空间管理","description":"tmall-workspace-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","gmt_create":"2025-10-08T19:03:01+08:00","gmt_modified":"2025-10-08T19:03:01+08:00"},{"catalog_id":"4de9e641-e754-4df4-be5c-96bd78e98da8","title":"IP限制策略","description":"ip-restriction-strategy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ff38a877-a28e-47d8-b5c9-939b865c97a3","gmt_create":"2025-10-08T19:03:06+08:00","gmt_modified":"2025-10-08T19:03:06+08:00"},{"catalog_id":"282f094b-3780-49d1-b057-75345b1de3c1","title":"会话管理","description":"session-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6d1d4be2-a13f-4897-bcc9-362da9158d9b","gmt_create":"2025-10-08T19:03:57+08:00","gmt_modified":"2025-10-08T19:03:57+08:00"},{"catalog_id":"0406e349-1ce0-4ec4-9c86-6c842ad5b1d2","title":"权限策略管理","description":"permission-policy-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4a89e30e-d877-427e-98c3-0d58a4fba7a8","gmt_create":"2025-10-08T19:03:58+08:00","gmt_modified":"2025-10-08T19:03:58+08:00"},{"catalog_id":"6d3c9aea-cd8a-4031-b3a4-7491202249b6","title":"Apple卡密配置管理","description":"api-card-info-apple-config","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0ae6bf62-bc86-44bf-b631-7329d2a379ca","gmt_create":"2025-10-08T19:04:12+08:00","gmt_modified":"2025-10-08T19:04:12+08:00"},{"catalog_id":"45710fa8-25aa-4217-ae14-a73410f49c30","title":"京东卡密数据汇总","description":"api-card-info-jd-summary","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4bf6885a-1224-4cca-8789-3f3def1f0343","gmt_create":"2025-10-08T19:04:46+08:00","gmt_modified":"2025-10-08T19:04:46+08:00"},{"catalog_id":"1bb36bef-7cd2-4cfe-895a-726588a9a89b","title":"天猫卡密店铺管理","description":"api-card-info-tmall-shop","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","gmt_create":"2025-10-08T19:05:04+08:00","gmt_modified":"2025-10-08T19:05:04+08:00"},{"catalog_id":"25942f43-183a-4e00-be2e-c61ae84373a3","title":"沃尔玛卡密分组管理","description":"api-card-info-walmart-group","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1d532660-5e04-421b-a2b4-3e542c48a890","gmt_create":"2025-10-08T19:05:31+08:00","gmt_modified":"2025-10-08T19:05:31+08:00"},{"catalog_id":"f9c16741-f716-4147-9f51-cd748e8960a5","title":"缓存配置","description":"docker_compose_cache","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","gmt_create":"2025-10-08T19:05:35+08:00","gmt_modified":"2025-10-08T19:05:35+08:00"},{"catalog_id":"f7e484b5-92f1-43b5-8bf5-9cd33a035658","title":"设备ID隐私保护","description":"device-id-privacy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a3c9a66f-dcd6-40fb-89b8-abb130e7744a","gmt_create":"2025-10-08T19:05:48+08:00","gmt_modified":"2025-10-08T19:05:48+08:00"},{"catalog_id":"f72acdfa-67dd-4c2f-8c3f-17f119b4be62","title":"部署自动化","description":"docker_compose_deployment_automation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"324bc16b-185c-4af1-8202-3d9b7a9e6e6f","gmt_create":"2025-10-08T19:06:32+08:00","gmt_modified":"2025-10-08T19:06:32+08:00"},{"catalog_id":"e5c8c7c7-0135-416c-a55a-80655940b9c4","title":"天猫卡密回调机制","description":"api-card-info-tmall-callback","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"24431815-8687-4b29-b798-214916920f7f","gmt_create":"2025-10-08T19:06:42+08:00","gmt_modified":"2025-10-08T19:06:43+08:00"},{"catalog_id":"fd83f8e3-9940-400c-9e6d-de5f5af056a4","title":"天猫卡密工作区管理","description":"api-card-info-tmall-workspace","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eee4b669-1eb7-45b9-a835-ffebfee1f682","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"catalog_id":"529d0827-5291-40f8-8e40-3b0ec55570bc","title":"京东Cookie管理模块重构设计","description":"jd-cookie-refactor-design","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"743dffa6-cd2e-413c-8747-415bb3c039fc","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"catalog_id":"9f851a40-0195-456e-b877-f1610bee0ca0","title":"京东订单导出功能","description":"jd_cookie_order_export","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"catalog_id":"816e73fd-ddde-4333-9ddc-b0bed7d5d9e0","title":"订单回调功能","description":"jd_cookie_callback","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"catalog_id":"2b9019cd-02f4-470d-8202-7f5c7bfda871","title":"Aes Encryption System","description":"aes-encryption-system","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"56220162-83a7-4515-961e-ead90b488a0f","gmt_create":"2025-11-18T17:20:52.83714+08:00","gmt_modified":"2025-11-18T17:20:52.838687+08:00"},{"catalog_id":"684c6e3a-714a-4c56-ac79-76dd3bf8b711","title":"Otel Recovery Mechanism","description":"otel-recovery-mechanism","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"37f505f3-bc0f-4e17-9e68-01ee420781be","gmt_create":"2025-11-18T17:22:20.655605+08:00","gmt_modified":"2025-11-18T17:22:20.656167+08:00"},{"catalog_id":"8e78cb1a-5de9-4638-b6af-8323a944817a","title":"Camel Oil Integration","description":"camel-oil-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"95e1342a-0e12-4512-98c2-4949a5826e9e","gmt_create":"2025-11-18T17:23:20.215395+08:00","gmt_modified":"2025-11-18T17:23:20.21801+08:00"},{"catalog_id":"07cb49ec-6a3b-473f-9fbc-7470be3dd4c7","title":"Apple Integration","description":"apple-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eaaecd0d-f07e-4e5b-8963-4c7502751370","gmt_create":"2025-11-18T17:25:02.574506+08:00","gmt_modified":"2025-11-18T17:25:02.580364+08:00"},{"catalog_id":"a848c21a-fe0e-4e1a-b189-d3aa8b219443","title":"Jd Cookie Validation","description":"jd-cookie-validation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2fb4f893-35e3-4c02-9030-cbf1a5311cb1","gmt_create":"2025-11-18T17:26:02.169904+08:00","gmt_modified":"2025-11-18T17:26:02.171049+08:00"},{"catalog_id":"7db12e70-0f35-4efa-924d-3161cf2cfd56","title":"Kami Gateway Integration","description":"kami-gateway-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","gmt_create":"2025-11-18T17:27:31.263507+08:00","gmt_modified":"2025-11-18T17:27:31.264876+08:00"},{"catalog_id":"0f5bd67b-d698-4271-8a8b-f64cf051c127","title":"User Login Log","description":"user-login-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"af7baacb-f954-45ab-bdd0-1781066d8db2","gmt_create":"2025-11-18T17:28:41.456205+08:00","gmt_modified":"2025-11-18T17:28:41.457343+08:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n# kami_backend 项目综合分析报告\n\n## 1. 项目介绍\n\n### 项目目的\nkami_backend 是一个基于 GoFrame 框架构建的后端服务系统,主要功能是为各类电商平台(如京东、天猫、沃尔玛、Ctrip 等)的卡密信息管理、订单处理、账户管理提供统一的 API 接口支持。系统集成了权限控制、支付管理、商户管理、风控限制等模块,形成了完整的后台管理系统。\n\n### 核心目标\n- 提供统一的电商平台卡密充值与兑换接口\n- 实现多平台账户信息集中管理\n- 支持灵活的权限控制与角色管理\n- 构建可扩展的微服务架构基础\n- 集成可观测性系统(OpenTelemetry)\n\n### 目标用户\n- 平台运营管理人员\n- 第三方商户接入方\n- 系统维护与开发人员\n- 安全审计人员\n\n## 2. 技术架构\n\n### 组件分解\n项目采用典型的分层架构设计,包含以下核心组件:\n\n- **API 层**:位于 `api/` 目录,定义了所有对外暴露的 RESTful 接口\n- **Controller 层**:位于 `internal/controller/`,处理请求转发与参数校验\n- **Service 层**:位于 `internal/service/`,实现核心业务逻辑\n- **Logic 层**:位于 `internal/logic/`,封装具体业务规则\n- **DAO 层**:位于 `internal/dao/`,负责数据访问操作\n- **Model 层**:位于 `internal/model/`,定义数据结构与实体\n- **Utility 工具层**:位于 `utility/`,提供通用工具函数\n\n### 设计模式\n系统采用了多种设计模式:\n- **MVC 模式**:清晰分离关注点\n- **依赖注入**:通过 GoFrame 的 DI 机制实现\n- **中间件模式**:用于认证、日志、错误处理\n- **策略模式**:不同电商平台的处理逻辑分离\n\n### 系统关系与数据流\n\n```mermaid\nflowchart TD\n A[客户端] --\u003e B[API Gateway]\n B --\u003e C[Middlewares]\n C --\u003e D[Controller]\n D --\u003e E[Service]\n E --\u003e F[Logic]\n F --\u003e G[DAO]\n G --\u003e H[(MySQL)]\n G --\u003e I[(Redis)]\n J[OpenTelemetry] \u003c--\u003e K[日志/监控/追踪]\n style A fill:#f9f,stroke:#333\n style H fill:#ccf,stroke:#333\n style I fill:#ccf,stroke:#333\n```\n\n## 3. 关键实现\n\n### 主要入口点\n- **main.go**:应用启动入口,负责初始化 OTel 和运行主服务\n- **cmd.go**:命令行处理逻辑\n- **boot_enums.go**:系统启动时自动加载的枚举配置\n\nSources:\n- [main.go](main.go)\n- [cmd.go](internal/cmd/cmd.go)\n- [boot_enums.go](internal/boot/boot_enums.go)\n\n### 核心模块\n- **权限管理模块** (`api/authority`):基于 Casbin 的 RBAC 权限控制\n- **卡密信息管理模块** (`api/card_info_*`):支持多个电商平台\n- **订单管理模块** (`api/order`):统一订单处理流程\n- **商户管理模块** (`api/merchant`):商户接入与配置管理\n- **风控限制模块** (`api/restriction`):IP 限制、访问控制等\n\nSources:\n- [authority.go](api/authority/authority.go)\n- [order.go](api/order/order.go)\n- [merchant.go](api/merchant/merchant.go)\n- [restriction.go](api/restriction/restriction.go)\n\n### 配置方法\n系统使用 YAML 配置文件进行管理,主要配置文件包括:\n\n- `manifest/config/config.yaml`:主配置文件,包含数据库、Redis、服务端口等\n- `hack/config.yaml`:gfcli 工具配置,用于代码生成\n- `resource/casbin/rbac_model.conf`:权限模型配置\n\n配置通过 GoFrame 的 gcfg 组件加载,支持环境变量覆盖。\n\nSources:\n- [config.yaml](manifest/config/config.yaml)\n- [rbac_model.conf](resource/casbin/rbac_model.conf)\n\n### 外部依赖\n```mermaid\ngraph TD\n A[kami_backend] --\u003e B[MySQL]\n A --\u003e C[Redis]\n A --\u003e D[OpenTelemetry Collector]\n A --\u003e E[Taobao API]\n A --\u003e F[Jingdong Service]\n A --\u003e G[Ctrip API]\n A --\u003e H[Walmart API]\n A --\u003e I[Agiso Platform]\n style A fill:#f96,stroke:#333\n```\n\n### 集成点\n- **OAuth2 集成**:天猫游戏平台 OAuth 接入\n- **第三方支付通知**:飞书 Webhook 通知\n- **外部服务调用**:京东卡密服务、Ctrip 接口等\n- **可观测性集成**:OpenTelemetry 全链路追踪\n\nSources:\n- [config.yaml](manifest/config/config.yaml#L80-L95)\n\n## 4. 关键特性\n\n### 功能概览\n- 多平台卡密充值与兑换\n- 完善的权限与角色管理体系\n- 商户接入与配置管理\n- 订单全生命周期管理\n- 风控与访问限制机制\n- 可视化监控与日志系统\n\n### 实现亮点\n- **模块化设计**:每个电商平台独立模块,易于扩展\n- **自动化代码生成**:通过 gfcli 自动生成 DAO、Service 等代码\n- **安全机制完善**:包含 MFA、Token 加密、AES/MD5 验证等\n- **可观测性强**:集成 OpenTelemetry 实现监控、追踪、日志一体化\n\n### 特性架构图\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e 初始化\n 初始化 --\u003e 配置加载: 读取YAML\n 配置加载 --\u003e 数据库连接: MySQL/Redis\n 数据库连接 --\u003e 服务注册: API路由\n 服务注册 --\u003e 权限初始化: Casbin\n 权限初始化 --\u003e 运行中: 接收请求\n 运行中 --\u003e 异常处理: Middleware\n 异常处理 --\u003e 运行中\n 运行中 --\u003e 日志记录: OTel\n```\n\nSources:\n- [main.go](main.go#L1-L49)\n- [config.go](utility/config/config.go)\n- [otel](utility/otel)\n\u003c/blog\u003e","gmt_create":"2025-10-08T18:16:44+08:00","gmt_modified":"2025-10-08T18:16:44+08:00","id":"2a3bb0d1-da41-428d-be41-2df43f097c60","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740"},"wiki_readme":{"content":"### docker deploy token\r\n\r\n579f3fab0f179949b1b8a509ba4f2dff0c8dcdd5","gmt_create":"2025-10-08T17:56:14+08:00","gmt_modified":"2025-10-08T17:56:14+08:00","id":"f3ffe0e6-9115-4f61-b2cb-742ee58f26e2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740"},"wiki_repo":{"id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"kami_backend","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── api\\n│ ├── authority\\n│ │ ├── v1\\n│ │ │ ├── menu.go\\n│ │ │ ├── model.go\\n│ │ │ ├── role.go\\n│ │ │ └── tenant.go\\n│ │ └── authority.go\\n│ ├── card_info_apple\\n│ │ ├── v1\\n│ │ │ ├── account_history.go\\n│ │ │ ├── account_info.go\\n│ │ │ ├── config.go\\n│ │ │ ├── model.go\\n│ │ │ ├── order.go\\n│ │ │ ├── order_history.go\\n│ │ │ └── order_steal.go\\n│ │ └── card_info_apple.go\\n│ ├── card_info_c_trip\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ └── order.go\\n│ │ └── card_info_c_trip.go\\n│ ├── card_info_jd\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ ├── order.go\\n│ │ │ └── order_summary.go\\n│ │ └── card_info_jd.go\\n│ ├── card_info_original_jd\\n│ │ ├── v1\\n│ │ │ └── account.go\\n│ │ └── card_info_original_jd.go\\n│ ├── card_info_t_mall_game\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── callback.go\\n│ │ │ ├── fake.go\\n│ │ │ ├── order.go\\n│ │ │ ├── shop.go\\n│ │ │ ├── sync.go\\n│ │ │ └── workspace.go\\n│ │ └── card_info_t_mall_game.go\\n│ ├── card_info_walmart\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ ├── group.go\\n│ │ │ ├── order.go\\n│ │ │ ├── order_summary.go\\n│ │ │ └── stats.go\\n│ │ └── card_info_walmart.go\\n│ ├── card_redeem_jd\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ └── order.go\\n│ │ └── card_redeem_jd.go\\n│ ├── channel\\n│ │ ├── v2\\n│ │ │ ├── entrance.go\\n│ │ │ └── model.go\\n│ │ └── channel.go\\n│ ├── commonApi\\n│ │ └── common.go\\n│ ├── fund\\n│ │ ├── v1\\n│ │ │ ├── wallet.go\\n│ │ │ └── wallet_log.go\\n│ │ └── fund.go\\n│ ├── merchant\\n│ │ ├── v1\\n│ │ │ ├── config.go\\n│ │ │ ├── deploy.go\\n│ │ │ ├── model.go\\n│ │ │ ├── order.go\\n│ │ │ └── steal.go\\n│ │ └── merchant.go\\n│ ├── monitor\\n│ │ ├── v1\\n│ │ │ └── heathcheck.go\\n│ │ └── monitor.go\\n│ ├── order\\n│ │ ├── v1\\n│ │ │ ├── form.go\\n│ │ │ ├── log.go\\n│ │ │ └── order_summary.go\\n│ │ └── order.go\\n│ ├── restriction\\n│ │ ├── v1\\n│ │ │ ├── collection.go\\n│ │ │ └── province.go\\n│ │ └── restriction.go\\n│ ├── road\\n│ │ ├── v1\\n│ │ │ └── road.go\\n│ │ └── road.go\\n│ ├── road_pool\\n│ │ ├── v1\\n│ │ │ └── road_pool.go\\n│ │ └── road_pool.go\\n│ ├── sysUser\\n│ │ ├── v1\\n│ │ │ ├── logout.go\\n│ │ │ ├── model.go\\n│ │ │ ├── payment.go\\n│ │ │ ├── sysUser.go\\n│ │ │ └── totp.go\\n│ │ └── sysUser.go\\n│ ├── sys_auth_rule\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_auth_rule.go\\n│ │ └── sys_auth_rule.go\\n│ ├── sys_payment\\n│ │ ├── v1\\n│ │ │ ├── statistic.go\\n│ │ │ └── sys_payment.go\\n│ │ └── sys_payment.go\\n│ ├── sys_role\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_role.go\\n│ │ └── sys_role.go\\n│ ├── sys_user_login\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_user_login.go\\n│ │ └── sys_user_login.go\\n│ ├── user_center\\n│ │ ├── v1\\n│ │ │ └── info.go\\n│ │ └── user_center.go\\n│ └── validation\\n│ ├── v1\\n│ │ └── captcha.go\\n│ └── validation.go\\n├── hack\\n│ └── config.yaml\\n├── internal\\n│ ├── boot\\n│ │ └── boot_enums.go\\n│ ├── cmd\\n│ │ └── cmd.go\\n│ ├── consts\\n│ │ ├── asigo.go\\n│ │ ├── cache.go\\n│ │ ├── card_apple.go\\n│ │ ├── card_excharge.go\\n│ │ ├── card_jd.go\\n│ │ ├── card_recharge_t_mall.go\\n│ │ ├── card_redeem.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── common.go\\n│ │ ├── consts.go\\n│ │ ├── entrance.go\\n│ │ ├── login_status.go\\n│ │ ├── restriction.go\\n│ │ ├── road.go\\n│ │ ├── sysUser.go\\n│ │ ├── sys_config_dict.go\\n│ │ ├── sys_user_channel_config.go\\n│ │ ├── sys_user_deductions.go\\n│ │ └── sys_user_payment_record.go\\n│ ├── controller\\n│ │ ├── authority\\n│ │ │ ├── authority.go\\n│ │ │ ├── authority_new.go\\n│ │ │ ├── authority_v1_menu_create.go\\n│ │ │ ├── authority_v1_menu_delete.go\\n│ │ │ ├── authority_v1_menu_list.go\\n│ │ │ ├── authority_v1_menu_update.go\\n│ │ │ ├── authority_v1_role_create.go\\n│ │ │ ├── authority_v1_role_delete.go\\n│ │ │ ├── authority_v1_role_list.go\\n│ │ │ ├── authority_v1_role_update.go\\n│ │ │ ├── authority_v1_tenant_create.go\\n│ │ │ ├── authority_v1_tenant_delete.go\\n│ │ │ ├── authority_v1_tenant_list.go\\n│ │ │ └── authority_v1_tenant_update.go\\n│ │ ├── card_info_apple\\n│ │ │ ├── apple_card_info_v1_recharge_list_download_test.go\\n│ │ │ ├── card_info_apple.go\\n│ │ │ ├── card_info_apple_new.go\\n│ │ │ ├── card_info_apple_v1_call_back_order_manual.go\\n│ │ │ ├── card_info_apple_v1_card_history_info_list.go\\n│ │ │ ├── card_info_apple_v1_card_info_batch_add_from_xlsx.go\\n│ │ │ ├── card_info_apple_v1_card_info_create.go\\n│ │ │ ├── card_info_apple_v1_card_info_delete.go\\n│ │ │ ├── card_info_apple_v1_card_info_download_template.go\\n│ │ │ ├── card_info_apple_v1_card_info_list.go\\n│ │ │ ├── card_info_apple_v1_card_info_suspend_or_continue.go\\n│ │ │ ├── card_info_apple_v1_card_info_update.go\\n│ │ │ ├── card_info_apple_v1_card_info_update_status.go\\n│ │ │ ├── card_info_apple_v1_config_get.go\\n│ │ │ ├── card_info_apple_v1_config_set.go\\n│ │ │ ├── card_info_apple_v1_recharge_duplicated_card_pass.go\\n│ │ │ ├── card_info_apple_v1_recharge_handler.go\\n│ │ │ ├── card_info_apple_v1_recharge_history_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_itunes_callback.go\\n│ │ │ ├── card_info_apple_v1_recharge_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_list_download.go\\n│ │ │ ├── card_info_apple_v1_recharge_order_modify_actual_amount.go\\n│ │ │ ├── card_info_apple_v1_recharge_order_reset_status.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_add.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_delete.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_status_update.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_update.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_setting.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_setting_get.go\\n│ │ │ ├── card_info_apple_v1_recharge_submit.go\\n│ │ │ └── card_info_apple_v1_recharge_submit_query.go\\n│ │ ├── card_info_c_trip\\n│ │ │ ├── card_info_c_trip.go\\n│ │ │ ├── card_info_c_trip_new.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_batch_add.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_batch_check.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_check.go\\n│ │ │ ├── card_info_c_trip_v1_account_create.go\\n│ │ │ ├── card_info_c_trip_v1_account_delete.go\\n│ │ │ ├── card_info_c_trip_v1_account_list.go\\n│ │ │ ├── card_info_c_trip_v1_account_refresh_status.go\\n│ │ │ ├── card_info_c_trip_v1_account_update.go\\n│ │ │ ├── card_info_c_trip_v1_account_update_status.go\\n│ │ │ ├── card_info_c_trip_v1_account_wallet_list.go\\n│ │ │ ├── card_info_c_trip_v1_download.go\\n│ │ │ ├── card_info_c_trip_v1_download_template.go\\n│ │ │ ├── card_info_c_trip_v1_list.go\\n│ │ │ ├── card_info_c_trip_v1_order_callback.go\\n│ │ │ ├── card_info_c_trip_v1_order_history.go\\n│ │ │ ├── card_info_c_trip_v1_redeem_config_get.go\\n│ │ │ ├── card_info_c_trip_v1_redeem_config_set.go\\n│ │ │ └── card_info_c_trip_v1_submit.go\\n│ │ ├── card_info_jd\\n│ │ │ ├── card_info_jd.go\\n│ │ │ ├── card_info_jd_new.go\\n│ │ │ ├── card_info_jd_v1_download.go\\n│ │ │ ├── card_info_jd_v1_download_template.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_batch_add.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_batch_check.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_check.go\\n│ │ │ ├── card_info_jd_v1_jd_account_create.go\\n│ │ │ ├── card_info_jd_v1_jd_account_delete.go\\n│ │ │ ├── card_info_jd_v1_jd_account_list.go\\n│ │ │ ├── card_info_jd_v1_jd_account_refresh_status.go\\n│ │ │ ├── card_info_jd_v1_jd_account_update.go\\n│ │ │ ├── card_info_jd_v1_jd_account_update_status.go\\n│ │ │ ├── card_info_jd_v1_jd_account_wallet_list.go\\n│ │ │ ├── card_info_jd_v1_jd_config_get.go\\n│ │ │ ├── card_info_jd_v1_jd_config_set.go\\n│ │ │ ├── card_info_jd_v1_list.go\\n│ │ │ ├── card_info_jd_v1_order_callback.go\\n│ │ │ ├── card_info_jd_v1_order_history.go\\n│ │ │ ├── card_info_jd_v1_order_summary_list.go\\n│ │ │ └── card_info_jd_v1_submit.go\\n│ │ ├── card_info_original_jd\\n│ │ │ ├── card_info_original_jd.go\\n│ │ │ ├── card_info_original_jd_new.go\\n│ │ │ ├── card_info_original_jd_v1_original_download.go\\n│ │ │ ├── card_info_original_jd_v1_original_download_template.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_batch_add.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_batch_check.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_check.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_create.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_delete.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_list.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_refresh_status.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_update.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_update_status.go\\n│ │ │ └── card_info_original_jd_v1_original_jd_account_wallet_list.go\\n│ │ ├── card_info_t_mall_game\\n│ │ │ ├── card_info_t_mall_game.go\\n│ │ │ ├── card_info_t_mall_game_new.go\\n│ │ │ ├── card_info_t_mall_game_v1_call_back_order_manual.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_authorize_callback.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_authorize_get_key.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_create.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_delete.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_get_one_random.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_t_mall_auth_status.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_toggle.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_agiso_callback.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_agiso_callback_test.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_daily_order_summary.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_data_sync.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_modify_status_succeed.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_query_category.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_query_order.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_submit.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_get_one.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_history.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_t_mall_history.go\\n│ │ │ └── card_info_t_mall_game_v1_t_mall_game_stats.go\\n│ │ ├── card_info_walmart\\n│ │ │ ├── card_info_walmart.go\\n│ │ │ ├── card_info_walmart_new.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_batch_add.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_batch_check.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_check.go\\n│ │ │ ├── card_info_walmart_v1_account_create.go\\n│ │ │ ├── card_info_walmart_v1_account_daily_summary.go\\n│ │ │ ├── card_info_walmart_v1_account_delete.go\\n│ │ │ ├── card_info_walmart_v1_account_list.go\\n│ │ │ ├── card_info_walmart_v1_account_load.go\\n│ │ │ ├── card_info_walmart_v1_account_refresh_status.go\\n│ │ │ ├── card_info_walmart_v1_account_status_detect.go\\n│ │ │ ├── card_info_walmart_v1_account_summary_download.go\\n│ │ │ ├── card_info_walmart_v1_account_update.go\\n│ │ │ ├── card_info_walmart_v1_account_update_status.go\\n│ │ │ ├── card_info_walmart_v1_account_wallet_list.go\\n│ │ │ ├── card_info_walmart_v1_download.go\\n│ │ │ ├── card_info_walmart_v1_download_template.go\\n│ │ │ ├── card_info_walmart_v1_group_add.go\\n│ │ │ ├── card_info_walmart_v1_group_all_list.go\\n│ │ │ ├── card_info_walmart_v1_group_delete.go\\n│ │ │ ├── card_info_walmart_v1_group_export.go\\n│ │ │ ├── card_info_walmart_v1_group_list.go\\n│ │ │ ├── card_info_walmart_v1_group_stat.go\\n│ │ │ ├── card_info_walmart_v1_group_update.go\\n│ │ │ ├── card_info_walmart_v1_list.go\\n│ │ │ ├── card_info_walmart_v1_order_callback.go\\n│ │ │ ├── card_info_walmart_v1_order_export.go\\n│ │ │ ├── card_info_walmart_v1_order_history.go\\n│ │ │ ├── card_info_walmart_v1_order_status_reset.go\\n│ │ │ ├── card_info_walmart_v1_order_summary_list.go\\n│ │ │ ├── card_info_walmart_v1_redeem_config_get.go\\n│ │ │ ├── card_info_walmart_v1_redeem_config_set.go\\n│ │ │ ├── card_info_walmart_v1_stats_overview.go\\n│ │ │ ├── card_info_walmart_v1_stats_overview_download.go\\n│ │ │ └── card_info_walmart_v1_submit.go\\n│ │ ├── card_redeem_jd\\n│ │ │ ├── card_redeem_jd.go\\n│ │ │ ├── card_redeem_jd_new.go\\n│ │ │ ├── card_redeem_jd_v1_account_add.go\\n│ │ │ ├── card_redeem_jd_v1_account_delete.go\\n│ │ │ ├── card_redeem_jd_v1_account_get.go\\n│ │ │ ├── card_redeem_jd_v1_account_list.go\\n│ │ │ ├── card_redeem_jd_v1_account_status.go\\n│ │ │ ├── card_redeem_jd_v1_account_update.go\\n│ │ │ ├── card_redeem_jd_v1_order_list.go\\n│ │ │ └── card_redeem_jd_v1_place_order.go\\n│ │ ├── channel\\n│ │ │ ├── channel.go\\n│ │ │ ├── channel_new.go\\n│ │ │ ├── channel_v2_entrance_create.go\\n│ │ │ ├── channel_v2_entrance_delete.go\\n│ │ │ ├── channel_v2_entrance_list.go\\n│ │ │ └── channel_v2_entrance_update.go\\n│ │ ├── fund\\n│ │ │ ├── fund.go\\n│ │ │ ├── fund_new.go\\n│ │ │ ├── fund_v1_menu_log_create.go\\n│ │ │ ├── fund_v1_menu_log_delete.go\\n│ │ │ ├── fund_v1_menu_log_list.go\\n│ │ │ ├── fund_v1_menu_log_update.go\\n│ │ │ ├── fund_v1_wallet_create.go\\n│ │ │ ├── fund_v1_wallet_delete.go\\n│ │ │ ├── fund_v1_wallet_list.go\\n│ │ │ └── fund_v1_wallet_update.go\\n│ │ ├── merchant\\n│ │ │ ├── merchant.go\\n│ │ │ ├── merchant_new.go\\n│ │ │ ├── merchant_v1_merchant_all_list.go\\n│ │ │ ├── merchant_v1_merchant_config_add.go\\n│ │ │ ├── merchant_v1_merchant_config_detail.go\\n│ │ │ ├── merchant_v1_merchant_config_list.go\\n│ │ │ ├── merchant_v1_merchant_config_status.go\\n│ │ │ ├── merchant_v1_merchant_config_update.go\\n│ │ │ ├── merchant_v1_merchant_deploy_add.go\\n│ │ │ ├── merchant_v1_merchant_deploy_delete.go\\n│ │ │ ├── merchant_v1_merchant_deploy_get_detail.go\\n│ │ │ ├── merchant_v1_merchant_deploy_list.go\\n│ │ │ ├── merchant_v1_merchant_deploy_update.go\\n│ │ │ ├── merchant_v1_merchant_sample_all_list.go\\n│ │ │ ├── merchant_v1_order_query.go\\n│ │ │ ├── merchant_v1_steal_create.go\\n│ │ │ ├── merchant_v1_steal_delete.go\\n│ │ │ ├── merchant_v1_steal_list.go\\n│ │ │ ├── merchant_v1_steal_record_list.go\\n│ │ │ ├── merchant_v1_steal_stats.go\\n│ │ │ ├── merchant_v1_steal_status_get.go\\n│ │ │ ├── merchant_v1_steal_status_set.go\\n│ │ │ ├── merchant_v1_steal_update.go\\n│ │ │ └── merchant_v1_steal_update_status.go\\n│ │ ├── monitor\\n│ │ │ ├── monitor.go\\n│ │ │ ├── monitor_new.go\\n│ │ │ └── monitor_v1_health_check.go\\n│ │ ├── order\\n│ │ │ ├── order.go\\n│ │ │ ├── order_new.go\\n│ │ │ ├── order_v1_order_form_create.go\\n│ │ │ ├── order_v1_order_form_delete.go\\n│ │ │ ├── order_v1_order_form_list.go\\n│ │ │ ├── order_v1_order_form_update.go\\n│ │ │ ├── order_v1_order_log_delete.go\\n│ │ │ ├── order_v1_order_log_list.go\\n│ │ │ ├── order_v1_order_summary_daily_get_list.go\\n│ │ │ └── order_v1_order_summary_get_list.go\\n│ │ ├── restriction\\n│ │ │ ├── restriction.go\\n│ │ │ ├── restriction_new.go\\n│ │ │ ├── restriction_v1_block_order.go\\n│ │ │ ├── restriction_v1_check_ip_allowed.go\\n│ │ │ ├── restriction_v1_query_all_province.go\\n│ │ │ ├── restriction_v1_user_info_collection.go\\n│ │ │ └── restriction_v1_user_info_collection_test.go\\n│ │ ├── road\\n│ │ │ ├── road.go\\n│ │ │ ├── road_new.go\\n│ │ │ └── road_v1_simple_all_get_road.go\\n│ │ ├── road_pool\\n│ │ │ ├── road_pool.go\\n│ │ │ ├── road_pool_new.go\\n│ │ │ └── road_pool_v1_simple_all_get_road.go\\n│ │ ├── sysUser\\n│ │ │ ├── sysUser.go\\n│ │ │ ├── sysUser_new.go\\n│ │ │ ├── sysUser_v1_totp_image_get.go\\n│ │ │ ├── sysUser_v1_totp_reset.go\\n│ │ │ ├── sysUser_v1_totp_set.go\\n│ │ │ ├── sysUser_v1_totp_status_get.go\\n│ │ │ ├── sysUser_v1_user_add.go\\n│ │ │ ├── sysUser_v1_user_change_pwd.go\\n│ │ │ ├── sysUser_v1_user_delete.go\\n│ │ │ ├── sysUser_v1_user_edit.go\\n│ │ │ ├── sysUser_v1_user_forbidden_by_id.go\\n│ │ │ ├── sysUser_v1_user_get_all_user.go\\n│ │ │ ├── sysUser_v1_user_get_by_ids.go\\n│ │ │ ├── sysUser_v1_user_get_edit.go\\n│ │ │ ├── sysUser_v1_user_get_params.go\\n│ │ │ ├── sysUser_v1_user_login_out.go\\n│ │ │ ├── sysUser_v1_user_menus.go\\n│ │ │ ├── sysUser_v1_user_search.go\\n│ │ │ ├── sysUser_v1_user_status.go\\n│ │ │ └── sysUser_v1_user_suspend_or_continue.go\\n│ │ ├── sys_auth_rule\\n│ │ │ ├── sys_auth_rule.go\\n│ │ │ ├── sys_auth_rule_new.go\\n│ │ │ ├── sys_auth_rule_v1_rule_add.go\\n│ │ │ ├── sys_auth_rule_v1_rule_delete.go\\n│ │ │ ├── sys_auth_rule_v1_rule_get_params.go\\n│ │ │ ├── sys_auth_rule_v1_rule_info.go\\n│ │ │ ├── sys_auth_rule_v1_rule_search.go\\n│ │ │ └── sys_auth_rule_v1_rule_update.go\\n│ │ ├── sys_payment\\n│ │ │ ├── sys_payment.go\\n│ │ │ ├── sys_payment_new.go\\n│ │ │ ├── sys_payment_v1_payment_summary_list.go\\n│ │ │ ├── sys_payment_v1_sys_payment_add.go\\n│ │ │ ├── sys_payment_v1_sys_payment_get.go\\n│ │ │ ├── sys_payment_v1_sys_payment_get_one.go\\n│ │ │ ├── sys_payment_v1_sys_payment_records_get.go\\n│ │ │ └── sys_payment_v1_sys_payment_records_get_statistics.go\\n│ │ ├── sys_role\\n│ │ │ ├── sys_role.go\\n│ │ │ ├── sys_role_new.go\\n│ │ │ ├── sys_role_v1_role_add.go\\n│ │ │ ├── sys_role_v1_role_delete.go\\n│ │ │ ├── sys_role_v1_role_edit.go\\n│ │ │ ├── sys_role_v1_role_get.go\\n│ │ │ ├── sys_role_v1_role_get_params.go\\n│ │ │ └── sys_role_v1_role_list.go\\n│ │ ├── sys_user_login\\n│ │ │ ├── sys_user_login.go\\n│ │ │ ├── sys_user_login_new.go\\n│ │ │ └── sys_user_login_v1_user_login.go\\n│ │ ├── user_center\\n│ │ │ ├── user_center.go\\n│ │ │ ├── user_center_new.go\\n│ │ │ └── user_center_v1_get_user_info.go\\n│ │ └── validation\\n│ │ ├── validation.go\\n│ │ ├── validation_new.go\\n│ │ └── validation_v1_get_captcha.go\\n│ ├── dao\\n│ │ ├── internal\\n│ │ │ ├── v_1_account_history_info.go\\n│ │ │ ├── v_1_account_info.go\\n│ │ │ ├── v_1_agent_info.go\\n│ │ │ ├── v_1_bank_card_info.go\\n│ │ │ ├── v_1_card_apple_account_info.go\\n│ │ │ ├── v_1_card_apple_account_info_history.go\\n│ │ │ ├── v_1_card_apple_hidden_settings.go\\n│ │ │ ├── v_1_card_apple_hidden_settings_recharge_info.go\\n│ │ │ ├── v_1_card_apple_history_info.go\\n│ │ │ ├── v_1_card_apple_recharge_info.go\\n│ │ │ ├── v_1_card_redeem_account_deduction.go\\n│ │ │ ├── v_1_card_redeem_account_group.go\\n│ │ │ ├── v_1_card_redeem_account_history.go\\n│ │ │ ├── v_1_card_redeem_account_info.go\\n│ │ │ ├── v_1_card_redeem_account_summary.go\\n│ │ │ ├── v_1_card_redeem_cookie_info.go\\n│ │ │ ├── v_1_card_redeem_cookie_order.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_history.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_jd.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_jd_history.go\\n│ │ │ ├── v_1_card_redeem_order_history.go\\n│ │ │ ├── v_1_card_redeem_order_info.go\\n│ │ │ ├── v_1_legend_any_money.go\\n│ │ │ ├── v_1_legend_area.go\\n│ │ │ ├── v_1_legend_fix_money.go\\n│ │ │ ├── v_1_legend_fix_present.go\\n│ │ │ ├── v_1_legend_group.go\\n│ │ │ ├── v_1_legend_scale_present.go\\n│ │ │ ├── v_1_legend_scale_template.go\\n│ │ │ ├── v_1_menu_info.go\\n│ │ │ ├── v_1_merchant_deploy_info.go\\n│ │ │ ├── v_1_merchant_hidden_config.go\\n│ │ │ ├── v_1_merchant_hidden_record.go\\n│ │ │ ├── v_1_merchant_info.go\\n│ │ │ ├── v_1_merchant_load_info.go\\n│ │ │ ├── v_1_migrations.go\\n│ │ │ ├── v_1_notify_info.go\\n│ │ │ ├── v_1_order_info.go\\n│ │ │ ├── v_1_order_profit_info.go\\n│ │ │ ├── v_1_order_settle_info.go\\n│ │ │ ├── v_1_payfor_info.go\\n│ │ │ ├── v_1_power_info.go\\n│ │ │ ├── v_1_recharge_t_mall_account.go\\n│ │ │ ├── v_1_recharge_t_mall_order.go\\n│ │ │ ├── v_1_recharge_t_mall_order_fake.go\\n│ │ │ ├── v_1_recharge_t_mall_order_history.go\\n│ │ │ ├── v_1_recharge_t_mall_shop.go\\n│ │ │ ├── v_1_recharge_t_mall_shop_history.go\\n│ │ │ ├── v_1_restrict_client_access_ip_relation.go\\n│ │ │ ├── v_1_restrict_client_access_record.go\\n│ │ │ ├── v_1_restrict_ip_order_access.go\\n│ │ │ ├── v_1_restrict_ip_record.go\\n│ │ │ ├── v_1_road_info.go\\n│ │ │ ├── v_1_road_pool_info.go\\n│ │ │ ├── v_1_role_info.go\\n│ │ │ ├── v_1_schema_migrations.go\\n│ │ │ ├── v_1_second_menu_info.go\\n│ │ │ ├── v_1_sys_auth_rule.go\\n│ │ │ ├── v_1_sys_casbin_rule.go\\n│ │ │ ├── v_1_sys_config_dict.go\\n│ │ │ ├── v_1_sys_role.go\\n│ │ │ ├── v_1_sys_user.go\\n│ │ │ ├── v_1_sys_user_config_channel.go\\n│ │ │ ├── v_1_sys_user_deductions.go\\n│ │ │ ├── v_1_sys_user_login_log.go\\n│ │ │ ├── v_1_sys_user_payment.go\\n│ │ │ ├── v_1_sys_user_payment_records.go\\n│ │ │ ├── v_1_task_order_fake.go\\n│ │ │ └── v_1_user_info.go\\n│ │ ├── v_1_account_history_info.go\\n│ │ ├── v_1_account_info.go\\n│ │ ├── v_1_agent_info.go\\n│ │ ├── v_1_bank_card_info.go\\n│ │ ├── v_1_card_apple_account_info.go\\n│ │ ├── v_1_card_apple_account_info_history.go\\n│ │ ├── v_1_card_apple_hidden_settings.go\\n│ │ ├── v_1_card_apple_hidden_settings_recharge_info.go\\n│ │ ├── v_1_card_apple_history_info.go\\n│ │ ├── v_1_card_apple_recharge_info.go\\n│ │ ├── v_1_card_redeem_account_deduction.go\\n│ │ ├── v_1_card_redeem_account_group.go\\n│ │ ├── v_1_card_redeem_account_history.go\\n│ │ ├── v_1_card_redeem_account_info.go\\n│ │ ├── v_1_card_redeem_account_summary.go\\n│ │ ├── v_1_card_redeem_cookie_info.go\\n│ │ ├── v_1_card_redeem_cookie_order.go\\n│ │ ├── v_1_card_redeem_cookie_order_history.go\\n│ │ ├── v_1_card_redeem_cookie_order_jd.go\\n│ │ ├── v_1_card_redeem_cookie_order_jd_history.go\\n│ │ ├── v_1_card_redeem_order_history.go\\n│ │ ├── v_1_card_redeem_order_info.go\\n│ │ ├── v_1_legend_any_money.go\\n│ │ ├── v_1_legend_area.go\\n│ │ ├── v_1_legend_fix_money.go\\n│ │ ├── v_1_legend_fix_present.go\\n│ │ ├── v_1_legend_group.go\\n│ │ ├── v_1_legend_scale_present.go\\n│ │ ├── v_1_legend_scale_template.go\\n│ │ ├── v_1_menu_info.go\\n│ │ ├── v_1_merchant_deploy_info.go\\n│ │ ├── v_1_merchant_hidden_config.go\\n│ │ ├── v_1_merchant_hidden_record.go\\n│ │ ├── v_1_merchant_info.go\\n│ │ ├── v_1_merchant_load_info.go\\n│ │ ├── v_1_migrations.go\\n│ │ ├── v_1_notify_info.go\\n│ │ ├── v_1_order_info.go\\n│ │ ├── v_1_order_profit_info.go\\n│ │ ├── v_1_order_settle_info.go\\n│ │ ├── v_1_payfor_info.go\\n│ │ ├── v_1_power_info.go\\n│ │ ├── v_1_recharge_t_mall_account.go\\n│ │ ├── v_1_recharge_t_mall_order.go\\n│ │ ├── v_1_recharge_t_mall_order_fake.go\\n│ │ ├── v_1_recharge_t_mall_order_history.go\\n│ │ ├── v_1_recharge_t_mall_shop.go\\n│ │ ├── v_1_recharge_t_mall_shop_history.go\\n│ │ ├── v_1_restrict_client_access_ip_relation.go\\n│ │ ├── v_1_restrict_client_access_record.go\\n│ │ ├── v_1_restrict_ip_order_access.go\\n│ │ ├── v_1_restrict_ip_record.go\\n│ │ ├── v_1_road_info.go\\n│ │ ├── v_1_road_pool_info.go\\n│ │ ├── v_1_role_info.go\\n│ │ ├── v_1_schema_migrations.go\\n│ │ ├── v_1_second_menu_info.go\\n│ │ ├── v_1_sys_auth_rule.go\\n│ │ ├── v_1_sys_casbin_rule.go\\n│ │ ├── v_1_sys_config_dict.go\\n│ │ ├── v_1_sys_role.go\\n│ │ ├── v_1_sys_user.go\\n│ │ ├── v_1_sys_user_config_channel.go\\n│ │ ├── v_1_sys_user_deductions.go\\n│ │ ├── v_1_sys_user_login_log.go\\n│ │ ├── v_1_sys_user_payment.go\\n│ │ ├── v_1_sys_user_payment_records.go\\n│ │ ├── v_1_task_order_fake.go\\n│ │ └── v_1_user_info.go\\n│ ├── errHandler\\n│ │ ├── code.go\\n│ │ └── handler.go\\n│ ├── logic\\n│ │ ├── account\\n│ │ │ └── account.go\\n│ │ ├── base_user_info\\n│ │ │ └── user_info.go\\n│ │ ├── captcha\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── card_apple_account\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_apple_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_redeem_account\\n│ │ │ └── ... 15 files, 0 dirs not shown\\n│ │ ├── card_redeem_cookie\\n│ │ │ └── ... 7 files, 0 dirs not shown\\n│ │ ├── card_redeem_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_t_mall_account\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── card_t_mall_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── limiter\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── merchant\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── merchant_deploy_info\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── merchant_order\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── pay_type\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── restriction\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── steal_rule\\n│ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ ├── sys_auth\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_auth_rule\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_casbin\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_config_dict\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── sys_login_log\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_role\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_user\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── sys_user_channel_config\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_user_payment\\n│ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ ├── v1_road\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── v1_road_pool\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── logic.go\\n│ ├── middleware\\n│ │ ├── auth.go\\n│ │ └── error_handler.go\\n│ ├── model\\n│ │ ├── do\\n│ │ │ └── ... 69 files, 0 dirs not shown\\n│ │ ├── entity\\n│ │ │ └── ... 69 files, 0 dirs not shown\\n│ │ ├── agiso.go\\n│ │ ├── card_apple_account.go\\n│ │ ├── card_apple_order.go\\n│ │ ├── card_redeem.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── card_t_mall_game_account.go\\n│ │ ├── card_t_mall_game_order.go\\n│ │ ├── card_t_mall_game_work_space.go\\n│ │ ├── entrance.go\\n│ │ ├── merchant.go\\n│ │ ├── merchant_deploy.go\\n│ │ ├── order_info.go\\n│ │ ├── restriction.go\\n│ │ ├── road.go\\n│ │ ├── road_pool.go\\n│ │ ├── steal_rule.go\\n│ │ ├── sys_auth_rule.go\\n│ │ ├── sys_role.go\\n│ │ ├── sys_rule.go\\n│ │ ├── sys_user.go\\n│ │ ├── sys_user_config.go\\n│ │ ├── sys_user_deductions.go\\n│ │ ├── sys_user_login.go\\n│ │ ├── sys_user_payment_record.go\\n│ │ └── user_info.go\\n│ ├── packed\\n│ │ └── packed.go\\n│ ├── service\\n│ │ ├── account.go\\n│ │ ├── base_user_info.go\\n│ │ ├── captcha.go\\n│ │ ├── card_apple_account.go\\n│ │ ├── card_apple_order.go\\n│ │ ├── card_redeem_account.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── card_redeem_order.go\\n│ │ ├── card_t_mall_account.go\\n│ │ ├── card_t_mall_order.go\\n│ │ ├── limiter.go\\n│ │ ├── merchant.go\\n│ │ ├── merchant_deploy_info.go\\n│ │ ├── merchant_order.go\\n│ │ ├── pay_type.go\\n│ │ ├── restriction.go\\n│ │ ├── steal_rule.go\\n│ │ ├── sys_auth.go\\n│ │ ├── sys_auth_rule.go\\n│ │ ├── sys_casbin.go\\n│ │ ├── sys_config_dict.go\\n│ │ ├── sys_login_log.go\\n│ │ ├── sys_role.go\\n│ │ ├── sys_user.go\\n│ │ ├── sys_user_channel_config.go\\n│ │ ├── sys_user_payment.go\\n│ │ ├── v_1_road.go\\n│ │ └── v_1_road_pool.go\\n│ └── systemV2\\n│ ├── dao\\n│ │ └── ... 14 files, 1 dirs not shown\\n│ ├── logic\\n│ │ └── ... 1 files, 3 dirs not shown\\n│ ├── model\\n│ │ └── ... 0 files, 2 dirs not shown\\n│ └── service\\n│ └── ... 3 files, 0 dirs not shown\\n├── manifest\\n│ ├── config\\n│ │ └── config.yaml\\n│ ├── deploy\\\\kustomize\\n│ │ ├── base\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ └── overlays\\\\develop\\n│ │ └── ... 3 files, 0 dirs not shown\\n│ └── docker\\n│ ├── Dockerfile\\n│ ├── docker-compose-local.yaml\\n│ ├── docker-compose.yml\\n│ ├── install-one.sh\\n│ ├── install-simple.sh\\n│ ├── install-test.sh\\n│ ├── install.sh\\n│ └── wait-for-it.sh\\n├── resource\\\\casbin\\n│ └── rbac_model.conf\\n├── utility\\n│ ├── cache\\n│ │ ├── cache.go\\n│ │ └── consts.go\\n│ ├── config\\n│ │ ├── config.go\\n│ │ ├── database.go\\n│ │ └── models.go\\n│ ├── cron\\n│ │ ├── cron.go\\n│ │ ├── t_mall_game_data_sync.go\\n│ │ └── t_mall_game_data_sync_test.go\\n│ ├── integration\\n│ │ ├── agiso\\n│ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ ├── originalJd\\n│ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ ├── redeem\\n│ │ │ └── ... 2 files, 5 dirs not shown\\n│ │ ├── restriction\\n│ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ └── tmall\\n│ │ └── ... 5 files, 3 dirs not shown\\n│ ├── lib\\n│ │ ├── libErr\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── libResponse\\n│ │ └── ... 1 files, 0 dirs not shown\\n│ ├── limiter\\n│ │ ├── rate.go\\n│ │ └── redis.go\\n│ ├── mfa\\n│ │ └── mfa.go\\n│ ├── monitor\\n│ │ └── monitor.go\\n│ ├── notify\\n│ │ ├── impl\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── notify.go\\n│ ├── otel\\n│ │ ├── config.go\\n│ │ ├── errors.go\\n│ │ ├── handler.go\\n│ │ ├── manager.go\\n│ │ └── utils.go\\n│ ├── pool\\n│ │ └── pool.go\\n│ ├── token\\n│ │ ├── user_token.go\\n│ │ ├── user_token_test.go\\n│ │ └── utils.go\\n│ ├── utils\\n│ │ ├── charset.go\\n│ │ ├── orm.go\\n│ │ ├── tools.go\\n│ │ ├── tools_test.go\\n│ │ └── utils.go\\n│ └── verify\\n│ ├── aes_ecb.go\\n│ └── md5.go\\n├── CLAUDE.md\\n├── CODEBUDDY.md\\n├── Makefile\\n├── README.md\\n├── docker-compose.yml\\n└── main.go\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"b43178efdf305c8598f6a66465cd197eb9291551","last_commit_update":"2025-11-18T17:04:17+08:00","gmt_create":"2025-10-08T17:56:14+08:00","gmt_modified":"2025-11-18T17:28:41.538152+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"develop\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"0.2.15\"}"}} \ No newline at end of file +{"code_snippets":[{"id":"d018b60f9d48763366246e537520686c","path":"internal/middleware/auth.go","line_range":"22-51","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"f451dcc5212a1a2b4e0ce80b06f8e185","path":"internal/middleware/error_handler.go","line_range":"8-27","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"c778028d86a2a65f31627126a2575c0c","path":"/main.go","line_range":"1-50","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"4bad57683321787594727c10ee94c33b","path":"/internal/logic/logic.go","line_range":"1-37","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"aee3a2f386eb5a98ddf5ca7cccff0929","path":"/internal/service/sys_user.go","line_range":"1-102","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"6fe67e9d805a0a633f90f268ef2ee2f4","path":"/internal/service/card_apple_order.go","line_range":"1-127","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"32bf22e91c31d6f141bf6b7ef0de7b96","path":"/internal/service/card_redeem_order.go","line_range":"1-80","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"7face210770aa4ec553604c6d0931175","path":"/internal/service/merchant_order.go","line_range":"1-44","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"842d4a8a22707111e666ac492238b5ef","path":"/internal/service/restriction.go","line_range":"1-67","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"c701edfecf07f4017d7d956624072fde","path":"/internal/logic/sys_user/sys_user.go","line_range":"1-767","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"4d71ea0833e7a0a8266b6f2e8b05e459","path":"/internal/dao/v_1_sys_user.go","line_range":"1-28","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0d5907fd86f99e310c6663b7e705ab7b","path":"/internal/model/sys_user.go","line_range":"1-92","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"488c440eb23bb1208ec810e0d3738028","path":"/internal/logic/card_apple_order/order.go","line_range":"1-343","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"badc687590596030499ebead18afabfc","path":"/internal/logic/merchant_order/order.go","line_range":"1-48","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","path":"/internal/logic/restriction/restriction.go","line_range":"1-174","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"f67970ad2e09c5f5a6048ff8ef3cd50c","path":"/manifest/config/config.yaml","line_range":"1-10","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","path":"internal/model/entity/v_1_account_info.go","line_range":"12-25","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"1c004f6c7e82e215a8538bb563de1a80","path":"internal/model/entity/v_1_order_info.go","line_range":"12-63","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9311a5593c3cb84df188d914b5fcb57b","path":"internal/model/entity/v_1_card_apple_recharge_info.go","line_range":"11-33","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"734fa931bccd869983dd85fd9b7ab371","path":"internal/model/entity/v_1_jd_cookie_account.go","line_range":"12-28","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"314337c7901e5f608be04c99dbf9dcda","path":"utility/otel/config.go","line_range":"1-67","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"02b920b240a8a0b5cc76dbdd011bfade","path":"utility/otel/manager.go","line_range":"1-257","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"a1f8285bc58503a0979846e628322395","path":"utility/otel/utils.go","line_range":"1-230","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"62d876856f82a4ea1e63b343aa650ddc","path":"utility/otel/handler.go","line_range":"1-164","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"0450d2bd60154c9defe18e2dd0db3944","path":"api/monitor/monitor.go","line_range":"1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"776a898a7e3af295ac0d3f657e027a43","path":"api/monitor/v1/heathcheck.go","line_range":"1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"f4357af3bdee1af700d66352486740ac","path":"internal/controller/monitor/monitor_new.go","line_range":"1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"1f3f6baf21697865c02621086d9ebce9","path":"internal/controller/monitor/monitor_v1_health_check.go","line_range":"1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"852c344b512f86e468cc155a007239c3","path":"internal/cmd/cmd.go","line_range":"1-92","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"7f41c190fab616ed408fb3470b01e156","path":"utility/monitor/monitor.go","line_range":"1-14","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":"2deccc6412aa3a542406ea4123dbd7e6","path":"internal/consts/jd_cookie.go","line_range":"150-160","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":"ec6f80518cdb41b1cb7ec141e92638a1","path":"internal/middleware/auth.go","line_range":"1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"972216ab1861cc2715878f10ca1d7e82","path":"internal/model/sys_user.go","line_range":"1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"43ed130e118ec9a873129314ddcd834d","path":"internal/service/sys_casbin.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"144cff56ec3838a61a926b3ff9a3d25e","path":"internal/middleware/auth.go","line_range":"50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"4f93cccb25d8c64e73e92615a203e00e","path":"utility/token/user_token.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a964b09bca4acd49db9824c141108f00","path":"resource/casbin/rbac_model.conf","line_range":"1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"5613af50c546b7eeb54ca83263a76c29","path":"internal/dao/v_1_sys_casbin_rule.go","line_range":"1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ceaf312dde8910a6de9a4671cd06d559","path":"utility/mfa/mfa.go","line_range":"1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"7d199570ba96ddc2ca6639d6d726d419","path":"internal/controller/sysUser/sysUser_v1_totp_status_get.go","line_range":"1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"8c317fe404ce5c22b9feef901431fcc5","path":"internal/controller/sysUser/sysUser_v1_totp_set.go","line_range":"1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a5e8020f6c112eb351bfce346cc7e7cd","path":"utility/verify/aes_ecb.go","line_range":"1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"cce1b31f34a553e7032bfe746d1cd94b","path":"utility/verify/md5.go","line_range":"1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"a4b14b6b79267d38f599e305591c3273","path":"internal/service/sys_user.go","line_range":"1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"4eedd1dcf74ca7ed561a2da81f45f3d7","path":"internal/errHandler/handler.go","line_range":"1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"dd733661014ef5805339ded90facaed0","path":"\\utility\\integration\\originalJd\\client.go","line_range":"5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"9749731ed765b177a75bbb84edc2c781","path":"\\utility\\integration\\originalJd\\model.go","line_range":"35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"f415bde86145ca67e63b0a6a7645487a","path":"\\utility\\integration\\originalJd\\client.go","line_range":"65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"ff9ed734519da40b64bea347532ad39d","path":"\\utility\\integration\\originalJd\\model.go","line_range":"110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"a0944686e185b8cdc6f06d21d5678c43","path":"\\internal\\consts\\card_redeem_cookie.go","line_range":"25-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"c6ba97566833b54cd4ff516c8ea88f46","path":"\\internal\\consts\\card_jd.go","line_range":"45-65","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"8a5414d484500ba17e6a788ce484c21b","path":"\\utility\\integration\\originalJd\\client.go","line_range":"10-20","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"37112fccfc8b194c480bb373d48115f7","path":"\\utility\\integration\\originalJd\\client.go","line_range":"70-80","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"7edb6bdca57d6bc188cd5b2bbbc4a138","path":"internal/logic/jd_cookie/order.go","line_range":"50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"5266c40167bf3310e85d510942a06173","path":"internal/logic/jd_cookie/order.go","line_range":"450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"782300bf902736466e525e642592486f","path":"utility/integration/originalJd/model.go","line_range":"136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"47824ef49939140f82365cb3d0eb0cc1","path":"utility/verify/aes_ecb.go","line_range":"1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","path":"utility/verify/md5.go","line_range":"1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"767b677153edb86515b77286476ce79b","path":"utility/utils/tools.go","line_range":"1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"fea30ea749579359c4f54de16878cf4f","path":"utility/verify/aes_ecb.go","line_range":"15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"ef1e0649738859b4447918324f2572d9","path":"utility/utils/tools.go","line_range":"22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"0383311e02468d4e918e6065aa543159","path":"internal/dao/internal/v_1_sys_user.go","line_range":"37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"3b0d083ad6e1e42c3cadee5c77b796a0","path":"internal/model/sys_user.go","line_range":"0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"35ff891033d9d93c8fa7614ad2fce15d","path":"JD_COOKIE_REFACTOR_REPORT.md","line_range":"1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"8f77a4f0854077c3774992dffc7b67b7","path":"utility/config/config.go","line_range":"15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"acfa1be45056640e25383a94f19dc7d9","path":"manifest/config/config.yaml","line_range":"1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"b73368b03e242affa847ca3d7470031e","path":"manifest/docker/Dockerfile","line_range":"1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"db1c31f617d9e5f634d8339367911606","path":"manifest/docker/docker-compose.yml","line_range":"1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"dd64c275dd8d4bc11cde8a7b7a290fed","path":"manifest/docker/docker-compose-local.yaml","line_range":"1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"d6cc2f26e69178bb84fde4c8efd2bc72","path":"Makefile","line_range":"1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"dfaf7eeee313e45381a5c84acad7d598","path":"hack/hack.mk","line_range":"1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"037c00a89165736016c43de51f38904f","path":"manifest/docker/install.sh","line_range":"1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"de0ba4e69640dc07afdabcd8239a78d4","path":"manifest/deploy/kustomize/base/kustomization.yaml","line_range":"1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"6bd49f88fb853be92cced1cf022cf602","path":"manifest/deploy/kustomize/overlays/develop/kustomization.yaml","line_range":"1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"3b39ff5f0cfc1dd7c098c94d3f933f75","path":"manifest/deploy/kustomize/base/deployment.yaml","line_range":"1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"0e4358230bffd4be2ea7053332694d44","path":"manifest/deploy/kustomize/overlays/develop/deployment.yaml","line_range":"1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"ab5aade552f972707c516a2836e5599e","path":"manifest/deploy/kustomize/overlays/develop/configmap.yaml","line_range":"1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"7ba715316b620dc29a8f18d4de067b23","path":".drone.yml","line_range":"1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"c5ee11836f7ab42cda2655f445cac377","path":"utility/cron/cron.go","line_range":"1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"268b3e7951536fbd682c2f50b8960980","path":"/utility/integration/redeem/jd/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"9f040686e23b6fd6b3b53522a50a3fae","path":"/utility/integration/redeem/ctrip/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"d5f63253bfce66da1b9e040b318f5ac8","path":"/utility/integration/redeem/walmart/api.go","line_range":"1-5","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"8fcf454d6439e16e2ee45b592d199565","path":"/utility/integration/tmall/api/api.go","line_range":"1-20","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"e7f3e2357a5be12aba6f1b222070b75b","path":"/utility/integration/originalJd/client.go","line_range":"11-123","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"513dd1188dfbad313f70d29fb1e183bc","path":"/utility/integration/originalJd/model.go","line_range":"1-144","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"4fdff47316ebde6fa296678a3558466a","path":"/utility/otel/config.go","line_range":"1-68","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"3172bdd0bdcdcc9961668dac5cd7736a","path":"/utility/otel/manager.go","line_range":"1-258","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"f43353da0dd842671b2ecd75845577a0","path":"/utility/otel/utils.go","line_range":"22-33","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"878ca019cafcda589777cca1b9d046d5","path":"/utility/otel/manager.go","line_range":"35-86","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"7f9267cfe8229dcd33f476ce31fd1bfa","path":"/utility/otel/utils.go","line_range":"1-50","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"d80df587153dec12950eadafbd55b449","path":"/resource/casbin/rbac_model.conf","line_range":"1-14","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"f25e656cbd55294916b70a73a1c4e583","path":"/utility/otel/config.go","line_range":"40-52","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"74c031b18c09b203210b77a20abc9d53","path":"/utility/otel/manager.go","line_range":"50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"3ae8a564e67df9aaecee08d5880927e3","path":"/internal/logic/jd_cookie/order.go","line_range":"500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"a4121ec796fe7df03e581a951109bf2c","path":"/internal/consts/jd_cookie.go","line_range":"150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"6d306b24351264c7f10e496503d064f0","path":"internal/model/entity/v_1_jd_cookie_jd_order.go","line_range":"12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"447357bff1aece2f7004a592d1590f3c","path":"internal/model/entity/v_1_jd_cookie_order.go","line_range":"12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"856abda221f83e850763d32c49eeb8f4","path":"internal/model/do/v_1_jd_cookie_order.go","line_range":"12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"33fd8e434adea0293ba416951c3b04c1","path":"internal/dao/v_1_jd_cookie_order.go","line_range":"1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"}],"commits":[{"id":"77aff4289e7b60617a6b97873721f586af264581","message":"feat(jd-cookie): 实现京东订单创建及支付链接刷新功能","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","message":"refactor(card_redeem):重构携程卡账户接口和京东cookie逻辑","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","message":"docs(jd_cookie): 添加京东Cookie管理模块重构设计文档","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":"34","message":"chore(ci): 更新Docker仓库地址至git.oceanpay.cc","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"12","message":"fix(cron): 调整京东支付状态监控任务执行频率","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","message":"feat(jd_cookie): 实现京东订单支付状态定时检查与卡密提取功能","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","message":"fix(originalJd):修复订单ID字段类型问题","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","message":"fix(originalJd): 更新京东接口字段名","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","message":"fix(originalJd): 修正京东接口卡密字段及添加订单状态","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","message":"refactor(jd): 调整京东订单字段命名","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"8bc2d51c8ba46582286270b3dd85e166f2562e51","message":"fix(order):优化下单接口错误处理逻辑","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","message":"feat(jd): 添加库存错误处理并优化错误枚举","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","message":"feat(jd_cookie):重构订单创建逻辑并优化相关模型","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"924061810e00a9e9d86f6e24e1baedbc27407d07","message":"feat(jd_cookie):重构Cookie历史记录逻辑并增强订单创建并发控制","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"d1b7f907caa0c3c59628241250901cb7239b25a8","message":"refactor(jd_cookie): 优化订单创建逻辑及支付链接刷新机制","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"28","message":"feat(jd_cookie): 启用账户创建权限校验并移除订单创建权限校验","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"30","message":"feat(jd_cookie): 统一使用IFrame登录权限校验","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"31","message":"feat(jd_cookie): 添加权限验证拦截器","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"a2a994df6eb92d304845f8f2711506072549cadc","message":"fix(jd_cookie):修复订单创建中的Cookie记录错误","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"270af97a7ad47f343323425419e15a4b40b5b2d6","message":"fix(jd): 完善订单创建失败时的错误信息和日志记录","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"26","message":"feat(jd):优化苹果权益充值接口调用与日志记录","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","message":"feat(jd_cookie): 添加用户订单号支持并优化订单处理逻辑","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"192aa438cae812c9ca95a5c06a15ca0066237458","message":"feat(jd_cookie): 新增京东订单相关模型及逻辑优化","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","message":"refactor(jd_cookie):重构时间字段类型为*gtime.Time","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":"c1e3051c8ba46582286270b3dd85e166f2562e51","message":"fix(order):优化下单接口错误处理逻辑\n\n- 修复了接口返回空时的空指针异常- 统一处理库存不足和Cookie失效的错误状态\n- 保留有效的返回信息用于错误提示\n- 确保所有错误情况都能正确设置响应状态","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","message":"refactor(jd_cookie):重构订单ID字段命名\n\n- 将 UserOrderId 字段统一重命名为 OrderId\n- 更新数据库表字段名 user_order_id 为 order_id- 调整相关结构体和接口中的字段引用\n- 修改历史记录和订单逻辑中的字段使用- 移除临时回调接口定义\n- 保持数据一致性和代码可读性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","message":"feat(jd_cookie): 新增风控失败状态及备注信息支持\n\n- 新增风控失败状态枚举值 RiskFailed (300)- 在京东订单状态中增加 CkFailed 状态 (6) 及对应文案\n- 为多个数据表添加 remark 字段用于存储备注信息\n- 修改下单逻辑以支持风控失败重试机制\n- 更新数据库表结构,将 remark 字段类型从 varchar(500) 改为 text\n- 调整订单历史记录逻辑以包含备注信息-优化 Cookie 失效处理逻辑,支持风险控制失败场景\n- 统一使用 GenerateRandomUUID生成订单号和历史记录 UUID- 完善订单状态变更历史记录,新增 ck_failed 变更类型\n- 增加对京东接口返回 remark 信息的处理和支持\n- 更新相关服务接口定义,添加 remark 参数传递\n- 补充模型定义中的 remark 和 isCkFailed 字段映射","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"ead96af520d030f786869d1a2fc84abf7515ba13","message":"feat(jd_cookie): 添加订单回调功能并优化配置参数- 引入 gclient 包用于发起 HTTP 请求- 移除检查间隔时间常量定义- 在卡密提取成功后添加异步回调逻辑\n- 新增 Callback 方法实现向指定地址发送通知- 记录回调响应日志信息","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","message":"fix(cron): 调整京东支付状态监控任务执行频率\n\n- 将任务执行间隔从10秒调整为30秒\n- 减少任务执行频率以降低系统负载- 保持监控功能的稳定性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","message":"fix(originalJd):修复订单ID类型转换问题\n\n- 将 OrderId 从 string 类型改为 json.Number 类型以支持数字格式- 在 AppleRechargeResp 和 RefreshPaymentRes 中调用 OrderId.String() 进行类型转换\n- 添加 encoding/json 包导入以支持 json.Number 类型处理","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","message":"feat(jd-cookie): 新增京东订单导出功能\n\n- 新增导出京东订单接口,支持按状态、时间范围和订单号筛选\n- 实现订单数据导出为Excel文件的功能\n- 更新订单变更类型枚举,将\"replace\"改为\"send\"\n- 在订单历史记录中使用新的变更类型\n- 添加Excel文件生成逻辑,包含订单号、卡密、状态等信息\n- 支持通过HTTP响应直接下载生成的Excel文件- 优化订单状态文本显示逻辑\n- 修复订单变更历史记录中的类型错误\n- 增加空Excel文件生成处理逻辑\n- 完善订单导出相关的请求和响应结构体定义","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","message":"refactor(jd_cookie):重构京东订单历史查询逻辑\n\n- 修改 GetJdOrderHistoryByOrderId 为 GetJdOrderHistoryByJdOrderId\n- 更新函数参数 orderId 为 jdOrderId\n- 调整数据库查询字段从 OrderId 到 JdOrderId\n- 移除订单信息中的微信支付链接字段\n-优化订单支付状态更新逻辑,记录支付时间\n- 清理订单查询中冗余的支付链接获取代码","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","message":"fix(jd_cookie): 调整订单历史查询接口参数校验与逻辑\n\n- 移除订单类型参数的必填校验- 简化订单历史查询逻辑,仅支持用户订单- 更新服务层方法签名以匹配新的请求结构- 删除对京东订单类型的判断和相关代码分支- 优化控制器调用逻辑以适应接口变更","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","message":"feat(jd_cookie):优化订单支付链接获取逻辑\n\n- 移除订单表中的微信支付链接字段\n- 从京东订单表中动态获取支付链接- 更新订单信息时不再传递支付链接参数\n- 简化订单创建和更新流程\n- 提高支付链接数据的一致性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","message":"feat(jd-cookie): 引入用户订单号支持并重构订单创建逻辑\n\n- 新增用户订单号字段以区分内部订单号\n- 修改订单表结构添加 user_order_id 字段及索引\n- 更新 CreateOrder 接口支持用户订单号参数-重构 CreateOrder 和 GetPaymentUrl 方法返回统一结果对象\n- 新增模型定义用于封装订单创建与支付结果\n- 调整相关逻辑方法签名与调用方式适配新结构- 优化订单创建流程增加内部订单号生成逻辑\n- 完善订单查询逻辑确保正确关联用户订单号- 更新控制器层对接新版服务接口- 升级 Cookie 状态及订单状态管理枚举类型使用","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","message":"feat(jd-cookie): 引入枚举类型管理京东Cookie状态\n\n- 使用 consts.JdCookieStatus 枚举替换原有的 int 类型状态字段\n- 在 CreateAccountRes、ListAccountReq、CookieAccountInfo 和 UpdateAccountReq 中统一状态类型\n- 更新 ListAccount 和 UpdateAccount 方法签名以支持枚举参数-为状态字段添加验证规则,确保输入值有效(1: 正常, 2: 暂停, 3: 失效)\n- 调整逻辑层中状态比较与赋值操作以兼容枚举类型- 保持接口响应结构体中的状态字段语义清晰且类型安全","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","message":"feat(jd_cookie): 更新订单状态及卡密提取逻辑\n\n- 修改 JdOrderChangeTypeReplace 的值为\"已发货\"\n- 移除 OrderChangeTypeBind 常量定义- 优化 RecordJdOrderHistory 调用逻辑,确保 order 非空再记录\n- 在卡密提取成功后更新用户订单状态为已支付\n- 使用结构体方式更新数据库字段,提升代码可读性\n- 清理过期订单时使用结构体更新状态字段\n-修复 orderId 获取逻辑,避免空值情况\n- 添加 do 包引用以支持结构化数据操作","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"baead12025e075376e7927981cdbdb29fc3e9127","message":"refactor(jd_cookie):优化订单与Cookie历史记录逻辑- 统一变更类型参数为枚举值,去除字符串转换\n- 移除订单支付链接过期时间返回字段\n-重构京东支付状态监控任务执行逻辑-优化批量检查订单支付状态分页处理\n- 调整数据库索引类型从唯一索引为普通索引- 规范化各类变更类型的中文描述定义\n- 完善历史记录函数签名及调用方式\n- 清理冗余代码并增强错误日志记录","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","message":"feat(jd):优化苹果权益充值接口调用与日志记录\n\n- 苹果权益充值接口增加ContentJson()方法以明确请求体格式\n- 在苹果权益充值接口中添加响应日志打印逻辑\n- 修改刷新收银台接口的日志描述文案,提升可读性\n- 调整下单接口返回值的日志记录方式,去除冗余包装结构\n- 移除AppleRechargeReq结构体中的UserClient字段定义","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"ecd031f3516ddb30d10184bc29008413fe982138","message":"refactor(order): 注释掉订单复用逻辑并添加下单接口返回日志\n\n- 注释掉了检查订单是否已存在的逻辑\n- 注释掉了复用现有京东订单的相关代码\n- 在下单接口返回后添加了详细的响应日志记录- 保留了创建新订单的主要流程逻辑","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","message":"feat(jd_cookie): 启用账户创建权限校验并移除订单创建权限校验\n\n- 在 CreateAccount 接口中启用 SysAuth 登录校验逻辑\n- 移除 CreateOrder 接口中的 SysAuth 登录校验注释- 调整 errHandler 包的导入位置以优化代码结构","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","message":"feat(jd_cookie): 移除创建账户时的权限检查\n\n- 删除了创建账户接口中的权限验证逻辑\n- 注释掉了原有的权限检查代码块-保留了账户创建的核心业务逻辑\n- 确保接口在无权限校验情况下仍能正常工作","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","message":"feat(jd_cookie): 统一使用IFrame登录权限校验\n\n- 将所有接口的权限校验方法从LoginOnlyLogin替换为LoginOnlyIFrame- 保持权限不足时的错误处理逻辑一致- 更新批量检测、创建、查询等所有相关接口的权限校验方式","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","message":"feat(jd_cookie): 添加权限验证拦截器- 在所有 jd_cookie 相关接口中增加登录态校验\n- 使用 SysAuth().LoginOnlyLogin 进行统一认证\n- 权限不足时返回 401 错误并提示\"权限不足\"- 引入 errHandler 包处理认证错误信息- 确保只有已登录用户可访问 Cookie 管理功能","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"e6b4b9c801912c27d75ebee52fe74a427920df99","message":"refactor(service): 重新整理订单相关接口定义\n\n- 将支付链接获取接口调整到接口尾部\n- 重新组织获取单个订单方法的位置\n- 重新排列订单状态查询接口\n- 调整订单列表查询接口结构\n- 保持接口定义整洁一致,提升代码可读性","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","message":"chore(ci): 更新Docker仓库地址至git.oceanpay.cc- 修改Docker登录地址为git.oceanpay.cc\n- 更新镜像构建和推送目标地址\n- 调整部署阶段的Docker仓库配置\n- 移除旧仓库相关环境变量引用\n- 更新docker logout命令目标地址- 保持构建参数和标签策略不变","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","message":"feat(jd): 新增京东Cookie订单支付状态自动监控功能\n\n- 设计后台任务定时调度器,周期性检查待支付订单\n- 增加支付状态检查服务,调用京东接口获取订单最新状态\n- 实现卡密提取服务,自动获取并保存卡号卡密信息\n- 扩展京东订单数据模型,增加支付时间、卡密信息等字段\n- 设计支付状态监控业务流程与异常处理策略\n- 优化并发处理与数据库查询效率,提升系统性能\n- 制定详细测试策略,覆盖状态检查和卡密提取核心功能\n- 增加监控与告警机制,保障支付状态查询的稳定性\n- 提供部署配置说明,支持任务间隔、批量大小等参数调整","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"}],"knowledge_relations":[{"id":537,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":538,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 1efc56f9-e901-4ce4-b98e-e1c793ab2bda","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":539,"source_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","target_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33150d2c-ac78-4784-a31b-e9d342cc880c -\u003e 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":540,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"738f052a-42a0-4959-bafb-657eb467d57d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e 738f052a-42a0-4959-bafb-657eb467d57d","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":541,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"f10ee956-3c2d-488f-a83d-d998dc2c2bd1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e f10ee956-3c2d-488f-a83d-d998dc2c2bd1","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":542,"source_id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","target_id":"29857cbd-6dcb-4ee9-b121-6312d5a523c9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 050adf51-c0b8-417b-8e31-5502c8d7ebcc -\u003e 29857cbd-6dcb-4ee9-b121-6312d5a523c9","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":543,"source_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","target_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63 -\u003e b2dccb33-ffec-4b07-8759-f7ce71472ecb","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":544,"source_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","target_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63 -\u003e 99d1a050-0313-4c24-90a9-0db3ac835b2c","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":545,"source_id":"c2fef000-7272-4553-b8e9-650afd08aef6","target_id":"5d780517-9a6d-4c42-ba58-f5b8ec8393ce","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c2fef000-7272-4553-b8e9-650afd08aef6 -\u003e 5d780517-9a6d-4c42-ba58-f5b8ec8393ce","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":546,"source_id":"c2fef000-7272-4553-b8e9-650afd08aef6","target_id":"eb1ee078-c356-49ad-827a-9313420c484d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: c2fef000-7272-4553-b8e9-650afd08aef6 -\u003e eb1ee078-c356-49ad-827a-9313420c484d","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":547,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 0f130c1f-7f7b-4517-97a1-2d3646bbd246","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":548,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"6f8ee399-7380-4fee-a2e4-728f269611b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 6f8ee399-7380-4fee-a2e4-728f269611b1","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":549,"source_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","target_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 077abc2a-81e5-4e9c-9a72-757f4765021c -\u003e 2c270c41-0c72-45b9-be8d-a5605ca16e32","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":550,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"df46fe53-92ca-4da6-826a-b33df0bd242b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e df46fe53-92ca-4da6-826a-b33df0bd242b","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":551,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"c7dcc000-3176-454a-a9df-1ecd2131cc5b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e c7dcc000-3176-454a-a9df-1ecd2131cc5b","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":552,"source_id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","target_id":"824c49c6-ab20-4552-b22a-86d1e9351317","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e55523f2-f9d0-4297-b67d-dc4fcbee269b -\u003e 824c49c6-ab20-4552-b22a-86d1e9351317","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":553,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e 2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":554,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"17fd343c-4fd0-4124-a801-902c9ecd72ea","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e 17fd343c-4fd0-4124-a801-902c9ecd72ea","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":555,"source_id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","target_id":"e81e6998-8633-4c13-ae1f-6eb9820aaa79","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: e65b9b9b-d210-44c8-8f0c-85e0422070d9 -\u003e e81e6998-8633-4c13-ae1f-6eb9820aaa79","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"id":556,"source_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","target_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab420b44-4f24-4bc3-a44c-bc68b0868ab8 -\u003e 8b580d72-5612-4fa0-b850-b3a7d72c1e19","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":557,"source_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","target_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab420b44-4f24-4bc3-a44c-bc68b0868ab8 -\u003e 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":558,"source_id":"51819175-b0b6-4391-899e-6d9466cf804b","target_id":"0aafdca3-5383-41f6-95ae-95c4f6eb2f32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 51819175-b0b6-4391-899e-6d9466cf804b -\u003e 0aafdca3-5383-41f6-95ae-95c4f6eb2f32","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":559,"source_id":"51819175-b0b6-4391-899e-6d9466cf804b","target_id":"692c0d1b-79e2-466b-bd94-9c041d9bda6b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 51819175-b0b6-4391-899e-6d9466cf804b -\u003e 692c0d1b-79e2-466b-bd94-9c041d9bda6b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":560,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":561,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"1acfa79b-62c0-4874-99e4-6ae09004acc4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 1acfa79b-62c0-4874-99e4-6ae09004acc4","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":562,"source_id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","target_id":"2c96823f-d6db-46ca-a33c-dbfdc28756a1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 4cc7d7ec-1470-45ec-8b91-d43b0285ff1e -\u003e 2c96823f-d6db-46ca-a33c-dbfdc28756a1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":563,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"56080685-56e4-4a91-ba5c-6a25de62ccdf","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e 56080685-56e4-4a91-ba5c-6a25de62ccdf","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":564,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"bd721dc3-a854-4ab4-af6f-1c1a24c2e660","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e bd721dc3-a854-4ab4-af6f-1c1a24c2e660","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":565,"source_id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","target_id":"ff38a877-a28e-47d8-b5c9-939b865c97a3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 0f130c1f-7f7b-4517-97a1-2d3646bbd246 -\u003e ff38a877-a28e-47d8-b5c9-939b865c97a3","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":566,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"f63d9ee2-939e-4112-8422-b76013d0c37b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e f63d9ee2-939e-4112-8422-b76013d0c37b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":567,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"5512c349-309d-4bd7-9e7e-ec7df28c6d32","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e 5512c349-309d-4bd7-9e7e-ec7df28c6d32","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":568,"source_id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","target_id":"4a89e30e-d877-427e-98c3-0d58a4fba7a8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8b580d72-5612-4fa0-b850-b3a7d72c1e19 -\u003e 4a89e30e-d877-427e-98c3-0d58a4fba7a8","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":569,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"06a8f4cd-585e-43e5-992a-156951ca77b1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e 06a8f4cd-585e-43e5-992a-156951ca77b1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":570,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"e146bc47-a61b-4bec-bc1a-37faa13b372c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e e146bc47-a61b-4bec-bc1a-37faa13b372c","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":571,"source_id":"6e73ea9a-6384-4196-b8f0-c31e83783450","target_id":"0ae6bf62-bc86-44bf-b631-7329d2a379ca","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6e73ea9a-6384-4196-b8f0-c31e83783450 -\u003e 0ae6bf62-bc86-44bf-b631-7329d2a379ca","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":572,"source_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","target_id":"4c36e3bc-fa82-4d1b-a78d-e0832adf415b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b2dccb33-ffec-4b07-8759-f7ce71472ecb -\u003e 4c36e3bc-fa82-4d1b-a78d-e0832adf415b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":573,"source_id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","target_id":"e05b2dc7-2335-4c8b-b24c-48a1f98f5361","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b2dccb33-ffec-4b07-8759-f7ce71472ecb -\u003e e05b2dc7-2335-4c8b-b24c-48a1f98f5361","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":574,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"e200c8f1-c37b-41e9-bac1-057445ecb066","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e e200c8f1-c37b-41e9-bac1-057445ecb066","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":575,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"6e962549-b111-4d8e-b263-89eafba99a84","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e 6e962549-b111-4d8e-b263-89eafba99a84","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":576,"source_id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","target_id":"3a97712d-0f09-4a0a-b365-60d2af7a7fe2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1efc56f9-e901-4ce4-b98e-e1c793ab2bda -\u003e 3a97712d-0f09-4a0a-b365-60d2af7a7fe2","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":577,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"0eb7033e-6cb9-4e9c-8641-e80f88d0203c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 0eb7033e-6cb9-4e9c-8641-e80f88d0203c","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":578,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"838ae7a4-15cd-489b-b25d-f4af8946b45b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 838ae7a4-15cd-489b-b25d-f4af8946b45b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":579,"source_id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","target_id":"6d1d4be2-a13f-4897-bcc9-362da9158d9b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e -\u003e 6d1d4be2-a13f-4897-bcc9-362da9158d9b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":580,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"0eb68661-00bd-4d95-809e-54d87927a654","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 0eb68661-00bd-4d95-809e-54d87927a654","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":581,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"8a159a71-a6ed-4138-93a9-e7c1be49368b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 8a159a71-a6ed-4138-93a9-e7c1be49368b","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":582,"source_id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","target_id":"4bf6885a-1224-4cca-8789-3f3def1f0343","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: a4cd3134-13ac-4d33-a867-4d225a7f89c3 -\u003e 4bf6885a-1224-4cca-8789-3f3def1f0343","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":583,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":584,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"34d853c3-140d-40d8-80fa-e7f32e322305","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 34d853c3-140d-40d8-80fa-e7f32e322305","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":585,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":586,"source_id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","target_id":"324bc16b-185c-4af1-8202-3d9b7a9e6e6f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 99d1a050-0313-4c24-90a9-0db3ac835b2c -\u003e 324bc16b-185c-4af1-8202-3d9b7a9e6e6f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":587,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":588,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"53947e3e-89de-416d-857e-54a84330a7ae","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e 53947e3e-89de-416d-857e-54a84330a7ae","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":589,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"17fa72bc-2bc8-478c-9b6a-9d6cae53f588","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e 17fa72bc-2bc8-478c-9b6a-9d6cae53f588","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":590,"source_id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","target_id":"a3c9a66f-dcd6-40fb-89b8-abb130e7744a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2c270c41-0c72-45b9-be8d-a5605ca16e32 -\u003e a3c9a66f-dcd6-40fb-89b8-abb130e7744a","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":591,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"fc236117-4117-4af0-8d3d-0c3fbecab71a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e fc236117-4117-4af0-8d3d-0c3fbecab71a","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":592,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"4d1ec235-b735-4351-abdb-3721a223dd51","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e 4d1ec235-b735-4351-abdb-3721a223dd51","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":593,"source_id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","target_id":"7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3 -\u003e 7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":594,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"a75ff292-fb3f-42ba-84d8-189105b57626","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e a75ff292-fb3f-42ba-84d8-189105b57626","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":595,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"e8e1b906-cdb1-41b2-a03b-8450dfec49e1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e e8e1b906-cdb1-41b2-a03b-8450dfec49e1","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":596,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e 0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":597,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"24431815-8687-4b29-b798-214916920f7f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e 24431815-8687-4b29-b798-214916920f7f","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":598,"source_id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","target_id":"eee4b669-1eb7-45b9-a835-ffebfee1f682","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ae7b131d-110f-4347-a2db-f9ee1bb2568a -\u003e eee4b669-1eb7-45b9-a835-ffebfee1f682","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":599,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"d7798344-7bd7-4d4b-b7af-12e478898534","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e d7798344-7bd7-4d4b-b7af-12e478898534","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":600,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"f696338b-1dae-45bc-b4e4-f7aab1a66b0d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e f696338b-1dae-45bc-b4e4-f7aab1a66b0d","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":601,"source_id":"817fc86a-b662-454b-83ed-09be950b1bdc","target_id":"1d532660-5e04-421b-a2b4-3e542c48a890","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 817fc86a-b662-454b-83ed-09be950b1bdc -\u003e 1d532660-5e04-421b-a2b4-3e542c48a890","gmt_create":"2025-10-08T19:06:56+08:00","gmt_modified":"2025-10-08T19:06:56+08:00"},{"id":602,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"d018b60f9d48763366246e537520686c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-51","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":603,"source_id":"eb8338fb24a00daa3a4838bbc0ab1393","target_id":"f451dcc5212a1a2b4e0ce80b06f8e185","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 8-27","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":604,"source_id":"0f583231f0ca6eb6bdc0cd3104f97d42","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":605,"source_id":"b6012388f040de469b7ec2244cf9d3bf","target_id":"4bad57683321787594727c10ee94c33b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-37","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":606,"source_id":"40a0c2b01b15ceae41bdd421874c199e","target_id":"aee3a2f386eb5a98ddf5ca7cccff0929","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-102","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":607,"source_id":"fb94b419b6c25749805b970980a051ae","target_id":"6fe67e9d805a0a633f90f268ef2ee2f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-127","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":608,"source_id":"fa2076592876f7f4387e9050085ba9b5","target_id":"32bf22e91c31d6f141bf6b7ef0de7b96","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-80","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":609,"source_id":"ce93596b3c315be9ad061ed78b9b4a16","target_id":"7face210770aa4ec553604c6d0931175","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-44","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":610,"source_id":"1ede9ed0ed4e2fea117f1f0ee3228874","target_id":"842d4a8a22707111e666ac492238b5ef","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-67","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":611,"source_id":"219fe92fb80e3fa8bd7e4080d15e457a","target_id":"c701edfecf07f4017d7d956624072fde","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-767","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":612,"source_id":"9592a0fc953a2595f709cd0c67c70a06","target_id":"4d71ea0833e7a0a8266b6f2e8b05e459","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-28","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":613,"source_id":"56c658d00971d4697ee90a4fd6912832","target_id":"0d5907fd86f99e310c6663b7e705ab7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":614,"source_id":"0f0ab37127003f1af1d234709f1d3198","target_id":"488c440eb23bb1208ec810e0d3738028","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-343","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":615,"source_id":"1ffd22848808f089677c2ddc482a954a","target_id":"badc687590596030499ebead18afabfc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-48","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":616,"source_id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","target_id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-174","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":617,"source_id":"79ad87595e6f3cccf7d1df8561c8667d","target_id":"f67970ad2e09c5f5a6048ff8ef3cd50c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":618,"source_id":"94aa282e4a22f85674f3004894e95b12","target_id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-25","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":619,"source_id":"3695f0446f58c552ec036968b720c585","target_id":"1c004f6c7e82e215a8538bb563de1a80","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-63","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":620,"source_id":"297412eae542d50411094ce29ff6e9b3","target_id":"9311a5593c3cb84df188d914b5fcb57b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-33","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":621,"source_id":"4f2117fd41858c8f1f05e73af0c4d045","target_id":"734fa931bccd869983dd85fd9b7ab371","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-28","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":622,"source_id":"10b4b7e7bda705f2473233626534db93","target_id":"d96edb8b929124b14e6a2f23bb5174d1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-27","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":623,"source_id":"251c480af7207ec9635af57c9bc50f04","target_id":"6b7240b29633b5a3401cf9e8ec69999f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-22","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":624,"source_id":"24b833965d28e1470eacd7df237acdb4","target_id":"338cc7bab8a15d021b6bf4faea030524","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-27","gmt_create":"2025-10-11T17:25:03+08:00","gmt_modified":"2025-10-11T17:25:03+08:00"},{"id":625,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"314337c7901e5f608be04c99dbf9dcda","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-67","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":626,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"02b920b240a8a0b5cc76dbdd011bfade","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-257","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":627,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"a1f8285bc58503a0979846e628322395","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-230","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":628,"source_id":"b0dcfa2b0067be5ec2e3f00ad722ed85","target_id":"62d876856f82a4ea1e63b343aa650ddc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-164","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":629,"source_id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","target_id":"0450d2bd60154c9defe18e2dd0db3944","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":630,"source_id":"2a00f83021031103c438a59751eee183","target_id":"776a898a7e3af295ac0d3f657e027a43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":631,"source_id":"eddf871859d423ace01da9a74db6db86","target_id":"f4357af3bdee1af700d66352486740ac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":632,"source_id":"50111ae80e6ac600d65fbd7b34df3d03","target_id":"1f3f6baf21697865c02621086d9ebce9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-13","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":633,"source_id":"6949b603968e204a80d7e6e337496f12","target_id":"852c344b512f86e468cc155a007239c3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":634,"source_id":"b896e4b9529b9c35c2662cf25560c5cd","target_id":"7f41c190fab616ed408fb3470b01e156","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-11T17:25:58+08:00","gmt_modified":"2025-10-11T17:25:58+08:00"},{"id":635,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"ce051f6cc8a25a53dcd349ccf066f90b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_apple/apple_card_info_v1_recharge_list_download_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":636,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"315cb5ac67c46c359e9c8f8aecd320da","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/restriction/restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":637,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"69602f92dc2983d638407af34ffc3699","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cron/t_mall_game_data_sync_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":638,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"a4390b2a5bd3345ca09b4f120a912bf6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":639,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"8d5d9b9151c15db5b80bdccfa4ad9e4f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_account/account_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":640,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"3676af4fc53a7e056b34c4afcae6f032","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_account/wallet_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":641,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"1339d4fd004425708306ffba6c2dd7f9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/order_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":642,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"12223cc24bc431745a711c09cde5b50c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_cookie/place_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":643,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"2081083be98975ed163a65fade66d84a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_account/summary_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":644,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"d68b895f71aba40116241dab68952308","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/steal_rule/stats_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":645,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"c87e75096c95a73029618add8b2030a6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/limiter/rate_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":646,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"54791cda92ceb80fb0fd1d394b3c7786","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: go.mod","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":647,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"6f6df715215e91eb3286c71371bf331d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: hack/config.yaml","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":648,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":649,"source_id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":650,"source_id":"f72071e80cb61857e0d4b22414fa6ea4","target_id":"8fe8c9081678e20a4b8fa4a4bbddf5e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-123","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":651,"source_id":"03c5c54ee07952069215a22a208842f4","target_id":"d21bc3b599b7c526e4c859b7f957c9c3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":652,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"f48ef892510854b251b181c258bcd119","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-68","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":653,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"964e3fe5d6407728afe85f53719ef569","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-258","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":654,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"616759a9a4d327984230aefdae310fbb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-33","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":655,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"d32ea696977b297ef621a0fb8b5ab306","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-86","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":656,"source_id":"70f39d04b38fd3c3c76da74b7b0ed20b","target_id":"b1f6a58d5a943577f0c54d3666cb8975","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":657,"source_id":"b100fafa43450f0fdfd71975218cd99c","target_id":"589fe36265ad27bcea83406c4f9b4f62","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":658,"source_id":"5824f93b650d7a0b6fb8c1a016077461","target_id":"59b6d508a3e965dc106b1cbeac2570ae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-52","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":659,"source_id":"11df2c532cb96a0d8e041af4ea176204","target_id":"01f4775a3f4eabe935537909fd08110b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-55","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":660,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"6172294c21d9eeef4f7e1cbee7494df4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-550","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":661,"source_id":"eec37ad3c15d2c25f166711fa52e741b","target_id":"2deccc6412aa3a542406ea4123dbd7e6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 150-160","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":662,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"d002a301044bef263b2a95b977c75925","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/aes_ecb.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":663,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"72755b8cc621f2d563a4a5ee5222529b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/md5.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":664,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b279f7393bb4b20c60e4a58537fad6f5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/mfa/mfa.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":665,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a3b7521789787cc4db7608d02c5e95f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":666,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"674428c72460e01521574ca280c115f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":667,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ee654b1f5fb098fe9e7aeb85bd452349","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":668,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"8193684ba57063beec7b646d4b1b54e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":669,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"55835e5aa0b4632d7c3ab1cb90645f23","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_casbin.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":670,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c08fb0c498d0fab1d988a77466050227","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":671,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"9cd3a5d90f9aa905b7855847b1300d50","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_sys_casbin_rule.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":672,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b100fafa43450f0fdfd71975218cd99c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: resource/casbin/rbac_model.conf","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":673,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":674,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ec6f80518cdb41b1cb7ec141e92638a1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":675,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"ec6f80518cdb41b1cb7ec141e92638a1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-154","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":676,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"972216ab1861cc2715878f10ca1d7e82","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/sys_user.go#1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":677,"source_id":"674428c72460e01521574ca280c115f4","target_id":"972216ab1861cc2715878f10ca1d7e82","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-92","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":678,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"43ed130e118ec9a873129314ddcd834d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/service/sys_casbin.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":679,"source_id":"55835e5aa0b4632d7c3ab1cb90645f23","target_id":"43ed130e118ec9a873129314ddcd834d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":680,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"144cff56ec3838a61a926b3ff9a3d25e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":681,"source_id":"a3b7521789787cc4db7608d02c5e95f4","target_id":"144cff56ec3838a61a926b3ff9a3d25e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-100","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":682,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"c23df18489eaaeec8a340de242b77b44","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":683,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"4f93cccb25d8c64e73e92615a203e00e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/token/user_token.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":684,"source_id":"c23df18489eaaeec8a340de242b77b44","target_id":"4f93cccb25d8c64e73e92615a203e00e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":685,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a964b09bca4acd49db9824c141108f00","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: resource/casbin/rbac_model.conf#1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":686,"source_id":"b100fafa43450f0fdfd71975218cd99c","target_id":"a964b09bca4acd49db9824c141108f00","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":687,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"5613af50c546b7eeb54ca83263a76c29","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/v_1_sys_casbin_rule.go#1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":688,"source_id":"9cd3a5d90f9aa905b7855847b1300d50","target_id":"5613af50c546b7eeb54ca83263a76c29","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-28","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":689,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ceaf312dde8910a6de9a4671cd06d559","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/mfa/mfa.go#1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":690,"source_id":"b279f7393bb4b20c60e4a58537fad6f5","target_id":"ceaf312dde8910a6de9a4671cd06d559","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-53","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":691,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ed43772f3487059e03a475d29e64c140","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/sysUser/sysUser_v1_totp_status_get.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":692,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"7d199570ba96ddc2ca6639d6d726d419","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/sysUser/sysUser_v1_totp_status_get.go#1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":693,"source_id":"ed43772f3487059e03a475d29e64c140","target_id":"7d199570ba96ddc2ca6639d6d726d419","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-37","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":694,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"ed385c7e637955c644231fb8b9437600","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/sysUser/sysUser_v1_totp_set.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":695,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"8c317fe404ce5c22b9feef901431fcc5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/sysUser/sysUser_v1_totp_set.go#1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":696,"source_id":"ed385c7e637955c644231fb8b9437600","target_id":"8c317fe404ce5c22b9feef901431fcc5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-34","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":697,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a5e8020f6c112eb351bfce346cc7e7cd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":698,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"a5e8020f6c112eb351bfce346cc7e7cd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-91","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":699,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"cce1b31f34a553e7032bfe746d1cd94b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/md5.go#1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":700,"source_id":"72755b8cc621f2d563a4a5ee5222529b","target_id":"cce1b31f34a553e7032bfe746d1cd94b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-32","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":701,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"a4b14b6b79267d38f599e305591c3273","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/service/sys_user.go#1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":702,"source_id":"ee654b1f5fb098fe9e7aeb85bd452349","target_id":"a4b14b6b79267d38f599e305591c3273","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-102","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":703,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"00d464ab1568b59906f97ec8146e8af4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/errHandler/handler.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":704,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"4eedd1dcf74ca7ed561a2da81f45f3d7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/errHandler/handler.go#1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":705,"source_id":"00d464ab1568b59906f97ec8146e8af4","target_id":"4eedd1dcf74ca7ed561a2da81f45f3d7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":706,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":707,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"276c0639f90dcf2a34f4f4fbde119792","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/form.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":708,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"b68f5340d85dff7e7356a47028249bea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/log.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":709,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"d004861257e62752cfed1f1a3dee4f6e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/order_summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":710,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"117de4e77295f9440aa08bf4b60bb54e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/order.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":711,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"fb972da6475be273c156b3d340c60b4d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_new.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":712,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"1b43f5469efafba6f30e2a9bf228e4d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_create.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":713,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"6d0148a632b80d69ab9cb23b7b7c1177","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_update.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":714,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"493b77f6804c0cb6c2b773567f9a98a5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_delete.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":715,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"16690b403f75ad7364b91d742d4e0ec2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":716,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"23d82c1c91bfb481851d2302868008b1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":717,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"58a47489aee9a8f906d1d2120d982105","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_delete.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":718,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"b477f7365d4c6efa2c1cbcd88d2e7db9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":719,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"3a8478b750f71d410904fb39aa1e55bc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":720,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"07658a06e2cd29c67a415fcae7cad0cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/order_info.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":721,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"ea969bf93403e59ca22028be70fc6c3a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/merchant_order/order-summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":722,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":723,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"498fdff361f9c01e54357a315e9f7d11","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":724,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"eb65af27cb143cabfacf4e397cb494ca","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":725,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_redeem_cookie.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":726,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"ef7aefce9f83002d91de28b146a92720","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_jd.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":727,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"dd733661014ef5805339ded90facaed0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":728,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"dd733661014ef5805339ded90facaed0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-35","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":729,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"9749731ed765b177a75bbb84edc2c781","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go#35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":730,"source_id":"eb65af27cb143cabfacf4e397cb494ca","target_id":"9749731ed765b177a75bbb84edc2c781","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-50","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":731,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"f415bde86145ca67e63b0a6a7645487a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":732,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"f415bde86145ca67e63b0a6a7645487a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 65-85","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":733,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"ff9ed734519da40b64bea347532ad39d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\model.go#110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":734,"source_id":"eb65af27cb143cabfacf4e397cb494ca","target_id":"ff9ed734519da40b64bea347532ad39d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 110-125","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":735,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"a0944686e185b8cdc6f06d21d5678c43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_redeem_cookie.go#25-35","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":736,"source_id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","target_id":"a0944686e185b8cdc6f06d21d5678c43","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-35","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":737,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"c6ba97566833b54cd4ff516c8ea88f46","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\internal\\consts\\card_jd.go#45-65","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":738,"source_id":"ef7aefce9f83002d91de28b146a92720","target_id":"c6ba97566833b54cd4ff516c8ea88f46","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 45-65","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":739,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"8a5414d484500ba17e6a788ce484c21b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#10-20","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":740,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"8a5414d484500ba17e6a788ce484c21b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-20","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":741,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"37112fccfc8b194c480bb373d48115f7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend\\utility\\integration\\originalJd\\client.go#70-80","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":742,"source_id":"498fdff361f9c01e54357a315e9f7d11","target_id":"37112fccfc8b194c480bb373d48115f7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 70-80","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":743,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:28:30+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"id":744,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"5b63b16fce716e9c574c9fcdb6fb533b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/order/v1/order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":745,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"c0b5e0a48e881e774316a237bd41edcf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":746,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1c27101b67ffcdf02489a331ce98d3dd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":747,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"a2750efa03ae7599bd56314495a2da56","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_jd/card_info_jd_v1_order_callback.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":748,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"711773636c036a042ce625f30229a418","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":749,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1b7d72f7f4a9bb0f3f8a8dc432a433f6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/do/order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":750,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"035d413d594bd8cd49b625ad3200b11c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":751,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"449f4de7045f7b39ec1c6aa4ecb4b840","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":752,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"a2623d6811b08468df51c167eaf9b774","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":753,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"8ac69700098158e9e90a9a8f1a247a9a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/consts/sys_user_payment_record.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":754,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"1b43f5469efafba6f30e2a9bf228e4d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_form_create.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":755,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"23d82c1c91bfb481851d2302868008b1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_log_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":756,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"b477f7365d4c6efa2c1cbcd88d2e7db9","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/order/order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":757,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"70e0b28642444d37c06db48c6c61307d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":758,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"3c6298484df164a1e5fe7fc2efa9712c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/card_info_walmart/card_info_walmart_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":759,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"fec40ef00c4cd2e564af5cea15277c85","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":760,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"f18bd86f1dafe9eae88b4f4b00db9bcd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_redeem_order/card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":761,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"c6ee44f200688a3a1f009e9a166d6481","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/utils/tools.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":762,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"bd83967e8844a9df33a6def66ff88bf8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cache/cache.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":763,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"eec37ad3c15d2c25f166711fa52e741b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/consts/jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":764,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"edd8bea5c8f9373cd0b4de186914479e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":765,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"d6ab1f208fb77fbc9859cad2aa6bb1ed","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":766,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"7edb6bdca57d6bc188cd5b2bbbc4a138","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/logic/jd_cookie/order.go#50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":767,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"7edb6bdca57d6bc188cd5b2bbbc4a138","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-130","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":768,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"2deccc6412aa3a542406ea4123dbd7e6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/consts/jd_cookie.go#150-160","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":769,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"5266c40167bf3310e85d510942a06173","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/logic/jd_cookie/order.go#450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":770,"source_id":"edd8bea5c8f9373cd0b4de186914479e","target_id":"5266c40167bf3310e85d510942a06173","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 450-490","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":771,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"03c5c54ee07952069215a22a208842f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/integration/originalJd/model.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":772,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"782300bf902736466e525e642592486f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/integration/originalJd/model.go#136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":773,"source_id":"03c5c54ee07952069215a22a208842f4","target_id":"782300bf902736466e525e642592486f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 136-143","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":774,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":775,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0fdae6a89fef78f6368400b1fe726d987adda7b1","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":776,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"d002a301044bef263b2a95b977c75925","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/aes_ecb.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":777,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"72755b8cc621f2d563a4a5ee5222529b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/verify/md5.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":778,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"91b0ce4e15bd2ec12a8c8f87efd69254","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/config/config.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":779,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"c6ee44f200688a3a1f009e9a166d6481","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/utils/tools.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":780,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"674428c72460e01521574ca280c115f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":781,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"7fa23727ee8e479ba4e92dc3eed84908","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/systemV2/logic/user_center/user_center.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":782,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"469f62d9db11e2c4fb3697ae2e85f81a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/internal/v_1_sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":783,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"c240c13752c53bbb87d71a8654be71ea","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":784,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"47824ef49939140f82365cb3d0eb0cc1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":785,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"47824ef49939140f82365cb3d0eb0cc1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-90","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":786,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/md5.go#1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":787,"source_id":"72755b8cc621f2d563a4a5ee5222529b","target_id":"cd5e2b6c3c51650146b62ae6dc8f5ad7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-31","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":788,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"767b677153edb86515b77286476ce79b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/utils/tools.go#1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":789,"source_id":"c6ee44f200688a3a1f009e9a166d6481","target_id":"767b677153edb86515b77286476ce79b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-25","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":790,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"fea30ea749579359c4f54de16878cf4f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/verify/aes_ecb.go#15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":791,"source_id":"d002a301044bef263b2a95b977c75925","target_id":"fea30ea749579359c4f54de16878cf4f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-85","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":792,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"ef1e0649738859b4447918324f2572d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/utils/tools.go#22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":793,"source_id":"c6ee44f200688a3a1f009e9a166d6481","target_id":"ef1e0649738859b4447918324f2572d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-24","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":794,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"0383311e02468d4e918e6065aa543159","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/internal/v_1_sys_user.go#37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":795,"source_id":"469f62d9db11e2c4fb3697ae2e85f81a","target_id":"0383311e02468d4e918e6065aa543159","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37-81","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":796,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"3b0d083ad6e1e42c3cadee5c77b796a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/sys_user.go#0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":797,"source_id":"674428c72460e01521574ca280c115f4","target_id":"3b0d083ad6e1e42c3cadee5c77b796a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 0-91","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":798,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"35ff891033d9d93c8fa7614ad2fce15d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: JD_COOKIE_REFACTOR_REPORT.md#1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":799,"source_id":"c240c13752c53bbb87d71a8654be71ea","target_id":"35ff891033d9d93c8fa7614ad2fce15d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-167","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":800,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"8f77a4f0854077c3774992dffc7b67b7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/config/config.go#15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":801,"source_id":"91b0ce4e15bd2ec12a8c8f87efd69254","target_id":"8f77a4f0854077c3774992dffc7b67b7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-35","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":802,"source_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":803,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"77aff4289e7b60617a6b97873721f586af264581","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 77aff4289e7b60617a6b97873721f586af264581","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":804,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"0fdae6a89fef78f6368400b1fe726d987adda7b1","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0fdae6a89fef78f6368400b1fe726d987adda7b1","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":805,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"f029eb7d6cfc4e70657225da8d0f4d90071071e4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f029eb7d6cfc4e70657225da8d0f4d90071071e4","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":806,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"bb84a187-9957-4c61-82b0-b8997f3b306a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e bb84a187-9957-4c61-82b0-b8997f3b306a","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":807,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"b52b76ee-90db-4464-bb9d-431b10755e6e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e b52b76ee-90db-4464-bb9d-431b10755e6e","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":808,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e 9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":809,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"d15e79da-d03f-46a7-9939-d486c82bdd9e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e d15e79da-d03f-46a7-9939-d486c82bdd9e","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":810,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"477c9fd9-139a-43fe-87ae-8d64529bbf2c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e 477c9fd9-139a-43fe-87ae-8d64529bbf2c","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":811,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"4c9682c6-1065-4e84-8b74-f2fdd80c62f4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e 4c9682c6-1065-4e84-8b74-f2fdd80c62f4","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":812,"source_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","target_id":"a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: b64a6df1-5797-4877-8b53-29fc0fdad59d -\u003e a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":813,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"753b0096-e6c4-42d1-aba0-93c8df17fdc9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ab1acd9-0488-4f69-a292-63359e8a485a -\u003e 753b0096-e6c4-42d1-aba0-93c8df17fdc9","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":814,"source_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","target_id":"080fba3c-3cca-40b8-b913-c5cf213a36f9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 2ab1acd9-0488-4f69-a292-63359e8a485a -\u003e 080fba3c-3cca-40b8-b913-c5cf213a36f9","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":815,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"61e64814-3402-4560-ac80-de2897628585","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 61e64814-3402-4560-ac80-de2897628585","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":816,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":817,"source_id":"ba1c4880-8600-4564-afa6-175208ea101b","target_id":"04861c55-7eb4-4fb8-9367-ea7653e898c2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ba1c4880-8600-4564-afa6-175208ea101b -\u003e 04861c55-7eb4-4fb8-9367-ea7653e898c2","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"id":818,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"f64c7936d86ec71ec54ea9cb5a6d7466","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/config/config.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":819,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"e5e06384050da6e9cb71d788b8fdfea5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/Dockerfile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":820,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"5c71a6de5070579b5c90694ac98bb368","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/docker-compose.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":821,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"07153a17d7dda70c75d2b1b4146f582c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/docker-compose-local.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":822,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"ff277b9199e792d02dbfa13f55915d43","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/docker/install.sh","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":823,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"4d75f6651634ab298f2875fc0e83333d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/base/kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":824,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":825,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"1e38df357652b98eb89f47c776d89716","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/base/deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":826,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"375bbed4688b0d8de4a69655f763d5fe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":827,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"9bf50a69c00a52a1dff9af6d0a524561","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: manifest/deploy/kustomize/overlays/develop/configmap.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":828,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"cd7e39cff0a7e858c297aca5f1d6a079","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: Makefile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":829,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"fa263673f2a99e1b81a89d8bcba135f2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: hack/hack.mk","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":830,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"a032002d1754289832a7235ddf38bba8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: .drone.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":831,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"2e66ec3759ab8e44a2f8b14f29e91610","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/cron/cron.go","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":832,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"acfa1be45056640e25383a94f19dc7d9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/config/config.yaml#1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":833,"source_id":"f64c7936d86ec71ec54ea9cb5a6d7466","target_id":"acfa1be45056640e25383a94f19dc7d9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-104","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":834,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"b73368b03e242affa847ca3d7470031e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/Dockerfile#1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":835,"source_id":"e5e06384050da6e9cb71d788b8fdfea5","target_id":"b73368b03e242affa847ca3d7470031e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-41","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":836,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"db1c31f617d9e5f634d8339367911606","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/docker-compose.yml#1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":837,"source_id":"5c71a6de5070579b5c90694ac98bb368","target_id":"db1c31f617d9e5f634d8339367911606","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-19","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":838,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"dd64c275dd8d4bc11cde8a7b7a290fed","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/docker-compose-local.yaml#1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":839,"source_id":"07153a17d7dda70c75d2b1b4146f582c","target_id":"dd64c275dd8d4bc11cde8a7b7a290fed","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-20","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":840,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"d6cc2f26e69178bb84fde4c8efd2bc72","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: Makefile#1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":841,"source_id":"cd7e39cff0a7e858c297aca5f1d6a079","target_id":"d6cc2f26e69178bb84fde4c8efd2bc72","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-6","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":842,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"dfaf7eeee313e45381a5c84acad7d598","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: hack/hack.mk#1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":843,"source_id":"fa263673f2a99e1b81a89d8bcba135f2","target_id":"dfaf7eeee313e45381a5c84acad7d598","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-75","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":844,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"037c00a89165736016c43de51f38904f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/docker/install.sh#1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":845,"source_id":"ff277b9199e792d02dbfa13f55915d43","target_id":"037c00a89165736016c43de51f38904f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":846,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"de0ba4e69640dc07afdabcd8239a78d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/base/kustomization.yaml#1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":847,"source_id":"4d75f6651634ab298f2875fc0e83333d","target_id":"de0ba4e69640dc07afdabcd8239a78d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-9","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":848,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"6bd49f88fb853be92cced1cf022cf602","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/kustomization.yaml#1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":849,"source_id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","target_id":"6bd49f88fb853be92cced1cf022cf602","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":850,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"3b39ff5f0cfc1dd7c098c94d3f933f75","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/base/deployment.yaml#1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":851,"source_id":"1e38df357652b98eb89f47c776d89716","target_id":"3b39ff5f0cfc1dd7c098c94d3f933f75","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-22","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":852,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"0e4358230bffd4be2ea7053332694d44","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/deployment.yaml#1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":853,"source_id":"375bbed4688b0d8de4a69655f763d5fe","target_id":"0e4358230bffd4be2ea7053332694d44","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-10","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":854,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"ab5aade552f972707c516a2836e5599e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: manifest/deploy/kustomize/overlays/develop/configmap.yaml#1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":855,"source_id":"9bf50a69c00a52a1dff9af6d0a524561","target_id":"ab5aade552f972707c516a2836e5599e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-15","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":856,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"7ba715316b620dc29a8f18d4de067b23","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: .drone.yml#1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":857,"source_id":"a032002d1754289832a7235ddf38bba8","target_id":"7ba715316b620dc29a8f18d4de067b23","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-46","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":858,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c5ee11836f7ab42cda2655f445cac377","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/cron/cron.go#1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":859,"source_id":"2e66ec3759ab8e44a2f8b14f29e91610","target_id":"c5ee11836f7ab42cda2655f445cac377","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-65","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":860,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"34","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 34","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":861,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"12","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 12","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":862,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":863,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"0f583231f0ca6eb6bdc0cd3104f97d42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/main.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":864,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"debc2930279b67133bdabc1b8627fa74","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/config.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":865,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"646de3e21aede32684ac250608e30f81","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/manager.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":866,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"1455afd43a1181b4924167eee7f2bf61","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/otel/utils.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":867,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"4aab766e7ad6f5e8c17384b0d5361728","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/resource/casbin/rbac_model.conf","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":868,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"487ce7ed78126fa758cc2d348b2f410e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/jd/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":869,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"85326ba007bc4b730914abf2639ab613","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/ctrip/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":870,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"08fcd1de22231d0da02880634f8774fa","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/redeem/walmart/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":871,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"38d3cae75228d13a3dd19e8fa2956753","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/tmall/api/api.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":872,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"ce3a1385eaebaa905699b23ad83e209c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/client.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":873,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"966e173135a1b07b87f554aa60f65dd1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/model.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":874,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"348a584cbaee62585af0b8f576760382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":875,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"268b3e7951536fbd682c2f50b8960980","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/jd/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":876,"source_id":"487ce7ed78126fa758cc2d348b2f410e","target_id":"268b3e7951536fbd682c2f50b8960980","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":877,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"9f040686e23b6fd6b3b53522a50a3fae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/ctrip/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":878,"source_id":"85326ba007bc4b730914abf2639ab613","target_id":"9f040686e23b6fd6b3b53522a50a3fae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":879,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d5f63253bfce66da1b9e040b318f5ac8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/redeem/walmart/api.go#1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":880,"source_id":"08fcd1de22231d0da02880634f8774fa","target_id":"d5f63253bfce66da1b9e040b318f5ac8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-5","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":881,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"8fcf454d6439e16e2ee45b592d199565","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/tmall/api/api.go#1-20","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":882,"source_id":"38d3cae75228d13a3dd19e8fa2956753","target_id":"8fcf454d6439e16e2ee45b592d199565","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-20","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":883,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"e7f3e2357a5be12aba6f1b222070b75b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/client.go#11-123","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":884,"source_id":"ce3a1385eaebaa905699b23ad83e209c","target_id":"e7f3e2357a5be12aba6f1b222070b75b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 11-123","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":885,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"513dd1188dfbad313f70d29fb1e183bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/integration/originalJd/model.go#1-144","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":886,"source_id":"966e173135a1b07b87f554aa60f65dd1","target_id":"513dd1188dfbad313f70d29fb1e183bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-144","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":887,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"4fdff47316ebde6fa296678a3558466a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/config.go#1-68","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":888,"source_id":"debc2930279b67133bdabc1b8627fa74","target_id":"4fdff47316ebde6fa296678a3558466a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-68","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":889,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3172bdd0bdcdcc9961668dac5cd7736a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#1-258","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":890,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"3172bdd0bdcdcc9961668dac5cd7736a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-258","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":891,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/main.go#1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":892,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f43353da0dd842671b2ecd75845577a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/utils.go#22-33","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":893,"source_id":"1455afd43a1181b4924167eee7f2bf61","target_id":"f43353da0dd842671b2ecd75845577a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-33","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":894,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"878ca019cafcda589777cca1b9d046d5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#35-86","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":895,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"878ca019cafcda589777cca1b9d046d5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-86","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":896,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"7f9267cfe8229dcd33f476ce31fd1bfa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/utils.go#1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":897,"source_id":"1455afd43a1181b4924167eee7f2bf61","target_id":"7f9267cfe8229dcd33f476ce31fd1bfa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-50","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":898,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d80df587153dec12950eadafbd55b449","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/resource/casbin/rbac_model.conf#1-14","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":899,"source_id":"4aab766e7ad6f5e8c17384b0d5361728","target_id":"d80df587153dec12950eadafbd55b449","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-14","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":900,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f25e656cbd55294916b70a73a1c4e583","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/config.go#40-52","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":901,"source_id":"debc2930279b67133bdabc1b8627fa74","target_id":"f25e656cbd55294916b70a73a1c4e583","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40-52","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":902,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"74c031b18c09b203210b77a20abc9d53","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/utility/otel/manager.go#50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":903,"source_id":"646de3e21aede32684ac250608e30f81","target_id":"74c031b18c09b203210b77a20abc9d53","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 50-55","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":904,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3ae8a564e67df9aaecee08d5880927e3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go#500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":905,"source_id":"348a584cbaee62585af0b8f576760382","target_id":"3ae8a564e67df9aaecee08d5880927e3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 500-550","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":906,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"14a77dff2e965ae92bd92a79f7c51ea1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/consts/jd_cookie.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":907,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"a4121ec796fe7df03e581a951109bf2c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/consts/jd_cookie.go#150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":908,"source_id":"14a77dff2e965ae92bd92a79f7c51ea1","target_id":"a4121ec796fe7df03e581a951109bf2c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 150-160","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":909,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":910,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":911,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":912,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":913,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f583231f0ca6eb6bdc0cd3104f97d42","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/main.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":914,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"b6012388f040de469b7ec2244cf9d3bf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/logic.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":915,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"40a0c2b01b15ceae41bdd421874c199e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":916,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"9592a0fc953a2595f709cd0c67c70a06","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/dao/v_1_sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":917,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"56c658d00971d4697ee90a4fd6912832","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/model/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":918,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"219fe92fb80e3fa8bd7e4080d15e457a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/sys_user/sys_user.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":919,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f0ab37127003f1af1d234709f1d3198","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_apple_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":920,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0de0fc73ea1c0c78e2d71d04a0a94411","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":921,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"1ffd22848808f089677c2ddc482a954a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/merchant_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":922,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/restriction/restriction.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":923,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d341b69869e9863f8bd7ed7614572d1c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":924,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"fb94b419b6c25749805b970980a051ae","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_apple_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":925,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"fa2076592876f7f4387e9050085ba9b5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_redeem_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":926,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"ce93596b3c315be9ad061ed78b9b4a16","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/merchant_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":927,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"1ede9ed0ed4e2fea117f1f0ee3228874","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/restriction.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":928,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c22d8bb47932b7530c368ff1de72e79a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/card_t_mall_order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":929,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"79ad87595e6f3cccf7d1df8561c8667d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/manifest/config/config.yaml","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":930,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"348a584cbaee62585af0b8f576760382","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":931,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"9fbcfcc5b312f6ea4b7a2f526f4fc0c4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/service/jd_cookie.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":932,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0f4b79c169b55a4a353922e49057ab34","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_create.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":933,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"8297c82d56a4566b4e439161bc2454c7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_utils.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":934,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"6f426da779ea01b260285f35941ee350","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: e:\\projects\\kami\\kami_backend/internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":935,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c778028d86a2a65f31627126a2575c0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/main.go#1-50","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":936,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"4bad57683321787594727c10ee94c33b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/logic.go#1-37","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":937,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"aee3a2f386eb5a98ddf5ca7cccff0929","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/sys_user.go#1-102","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":938,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"6fe67e9d805a0a633f90f268ef2ee2f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/card_apple_order.go#1-127","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":939,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"32bf22e91c31d6f141bf6b7ef0de7b96","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/card_redeem_order.go#1-80","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":940,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"7face210770aa4ec553604c6d0931175","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/merchant_order.go#1-44","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":941,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"842d4a8a22707111e666ac492238b5ef","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/service/restriction.go#1-67","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":942,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c701edfecf07f4017d7d956624072fde","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/sys_user/sys_user.go#1-767","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":943,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"4d71ea0833e7a0a8266b6f2e8b05e459","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/dao/v_1_sys_user.go#1-28","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":944,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"0d5907fd86f99e310c6663b7e705ab7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/model/sys_user.go#1-92","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":945,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"488c440eb23bb1208ec810e0d3738028","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/card_apple_order/order.go#1-343","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":946,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"badc687590596030499ebead18afabfc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/merchant_order/order.go#1-48","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":947,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"cf2c6c7ec0ed0b542c5ad37d11c2ea57","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/internal/logic/restriction/restriction.go#1-174","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":948,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"f67970ad2e09c5f5a6048ff8ef3cd50c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: e:\\projects\\kami\\kami_backend/manifest/config/config.yaml#1-10","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":949,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"8bc2d51c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8bc2d51c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":950,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":951,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":952,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":953,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":954,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":955,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"a3b7521789787cc4db7608d02c5e95f4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/auth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":956,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"eb8338fb24a00daa3a4838bbc0ab1393","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/error_handler.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":957,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"8193684ba57063beec7b646d4b1b54e0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/service/sys_auth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":958,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"b02b1b196de6c12a1b511f4fe368aefa","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/sys_auth/sysAuth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":959,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"fb7ae04d8afd7c7f540758059df7b9fc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_create_account.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":960,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"d212b7838198d532442a43a2720f228c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_create_order.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":961,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"ecaa7eef95a04c10e41b14218959f6bf","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/jd_cookie/jd_cookie_v1_batch_check.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":962,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"c23df18489eaaeec8a340de242b77b44","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/token/user_token.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":963,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"91b0ce4e15bd2ec12a8c8f87efd69254","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/config/config.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":964,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"a2cc9e42068f81d57e6658912bec50c7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/errHandler/code.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":965,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"d018b60f9d48763366246e537520686c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/auth.go#22-51","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":966,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"f451dcc5212a1a2b4e0ce80b06f8e185","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/error_handler.go#8-27","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":967,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"28","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 28","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":968,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"30","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 30","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":969,"source_id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","target_id":"31","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 31","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":970,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"6949b603968e204a80d7e6e337496f12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cmd/cmd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":971,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":972,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"2a00f83021031103c438a59751eee183","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: api/monitor/v1/heathcheck.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":973,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"d9ed9131ddb364556f43b561d041ddd5","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":974,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"eddf871859d423ace01da9a74db6db86","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor_new.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":975,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"50111ae80e6ac600d65fbd7b34df3d03","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/monitor/monitor_v1_health_check.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":976,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"5824f93b650d7a0b6fb8c1a016077461","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/config.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":977,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"11df2c532cb96a0d8e041af4ea176204","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/manager.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":978,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b0dcfa2b0067be5ec2e3f00ad722ed85","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/handler.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":979,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"70f39d04b38fd3c3c76da74b7b0ed20b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/otel/utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":980,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b896e4b9529b9c35c2662cf25560c5cd","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/monitor/monitor.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":981,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"95d76ee51d8eba69c520952975f3836c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_create.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":982,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"b9997c2d25a8edb37042b9aed4b87d4a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":983,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"f72071e80cb61857e0d4b22414fa6ea4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: utility/integration/originalJd/client.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":984,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"ed31ce19cca1ebd07457e557c8cb7147","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":985,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"314337c7901e5f608be04c99dbf9dcda","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/config.go#1-67","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":986,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"02b920b240a8a0b5cc76dbdd011bfade","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/manager.go#1-257","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":987,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"a1f8285bc58503a0979846e628322395","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/utils.go#1-230","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":988,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"62d876856f82a4ea1e63b343aa650ddc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/otel/handler.go#1-164","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":989,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"0450d2bd60154c9defe18e2dd0db3944","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: api/monitor/monitor.go#1-15","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":990,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"776a898a7e3af295ac0d3f657e027a43","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: api/monitor/v1/heathcheck.go#1-13","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":991,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"f4357af3bdee1af700d66352486740ac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/monitor/monitor_new.go#1-15","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":992,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"1f3f6baf21697865c02621086d9ebce9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/controller/monitor/monitor_v1_health_check.go#1-13","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":993,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"852c344b512f86e468cc155a007239c3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cmd/cmd.go#1-92","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":994,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"7f41c190fab616ed408fb3470b01e156","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: utility/monitor/monitor.go#1-14","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":995,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":996,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":997,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"26","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 26","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":998,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":999,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"94aa282e4a22f85674f3004894e95b12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_account_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1000,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"3695f0446f58c552ec036968b720c585","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_order_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1001,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"297412eae542d50411094ce29ff6e9b3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1002,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"4f2117fd41858c8f1f05e73af0c4d045","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1003,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"10b4b7e7bda705f2473233626534db93","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1004,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"251c480af7207ec9635af57c9bc50f04","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/entity/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1005,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"24b833965d28e1470eacd7df237acdb4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_account_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1006,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"035d413d594bd8cd49b625ad3200b11c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_order_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1007,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9ea71fe3dd3d7290fd60892723bb7ee8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1008,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"8d29c379353db1d02b0dbd096eb8a47d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1009,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"319d5ee6b3c76bed0110a972df7470d8","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1010,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"81cfcd51a2f0449da14f3d4052765c08","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/dao/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1011,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"48b3a3cd9e9db7485c82648a8f9c69dc","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/controller/merchant/merchant_v1_merchant_config_add.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1012,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9909bbb8255b96a053563e9f3afd6e52","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/account/account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1013,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"c80482f4470a8e3dd050e61ff9bd3738","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/merchant_order/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1014,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"92c36754f0dbd99fed9aa1523374158d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1015,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"cbe32a6c2d1cadcc72019566cad819b6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/status.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1016,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"987fc36e572014bb0a7c02bc015c9fa2","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/recharge_history.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1017,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"39c6a811a6208e20dc5b28becf3a2cbe","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/card_apple_order/steal_relation.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1018,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"fe83d023754ae2aedb7c68ac0f3dcf31","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/account.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1019,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"edd8bea5c8f9373cd0b4de186914479e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1020,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"961047bec51802fc7855502acf4bbc07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/logic/jd_cookie/rotation.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1021,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9faa5f2db2ec0340fbf2ecfb0e5a7740","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_account_info.go#12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1022,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"1c004f6c7e82e215a8538bb563de1a80","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_order_info.go#12-63","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1023,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"9311a5593c3cb84df188d914b5fcb57b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_card_apple_recharge_info.go#11-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1024,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"734fa931bccd869983dd85fd9b7ab371","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_account.go#12-28","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1025,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"6d306b24351264c7f10e496503d064f0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_jd_order.go#12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1026,"source_id":"10b4b7e7bda705f2473233626534db93","target_id":"6d306b24351264c7f10e496503d064f0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-33","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1027,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"447357bff1aece2f7004a592d1590f3c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/entity/v_1_jd_cookie_order.go#12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1028,"source_id":"251c480af7207ec9635af57c9bc50f04","target_id":"447357bff1aece2f7004a592d1590f3c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-25","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1029,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"dc285be35577dcc5b342eafd1a253628","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/do/v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1030,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"856abda221f83e850763d32c49eeb8f4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/do/v_1_jd_cookie_order.go#12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1031,"source_id":"dc285be35577dcc5b342eafd1a253628","target_id":"856abda221f83e850763d32c49eeb8f4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 12-26","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1032,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"33fd8e434adea0293ba416951c3b04c1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/dao/v_1_jd_cookie_order.go#1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1033,"source_id":"81cfcd51a2f0449da14f3d4052765c08","target_id":"33fd8e434adea0293ba416951c3b04c1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-27","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1034,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1035,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1036,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1037,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"id":1038,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1039,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1040,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"c1e3051c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: c1e3051c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1041,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1042,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1043,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1044,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 07388743bf6fdea5ecacfd52844951cf29f1ba5a","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1045,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1046,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d812e1700bb51f25a2e6c7b596cd836326ad0a8f","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1047,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1048,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"ead96af520d030f786869d1a2fc84abf7515ba13","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ead96af520d030f786869d1a2fc84abf7515ba13","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1049,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: cd0ccf6429ac2f33e0a4924282006d85e3631cc8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1050,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5d7a452b6c2a45cd789f302cd469b899a95c3437","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1051,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a50b8b99287d7ee5416b2fa438d7632bca6af461","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1052,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1053,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f6a7e7fcd25a928fdf743967980299caf6e95ee8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1054,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1055,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 59ca3a804f2475b26818d37f3acb8e791eeeec52","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1056,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1057,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f358aa0745eebab14e4848cc7b7093d63ab7ca0c","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1058,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5b059bdb84f8cac3da01ca9e53d0136a28747e2e","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1059,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5170f98c4b5503fbe309f2d93d8361deb7adb713","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1060,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1061,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1062,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"baead12025e075376e7927981cdbdb29fc3e9127","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: baead12025e075376e7927981cdbdb29fc3e9127","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1063,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0e8687c6e1895e5280c42cda1f05e0fe60456c2b","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1064,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"ecd031f3516ddb30d10184bc29008413fe982138","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ecd031f3516ddb30d10184bc29008413fe982138","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1065,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5cbdde321d5a14eeeaf9b4a4885b92b977415750","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1066,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4dc6ef222bf413d145ce29652128ecbd7ea7e31f","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1067,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1068,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: b4f775b86faecdc99a2ab9e89be2d7ca973762ad","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1069,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"e6b4b9c801912c27d75ebee52fe74a427920df99","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e6b4b9c801912c27d75ebee52fe74a427920df99","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1070,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1071,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1072,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1073,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1074,"source_id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"id":1075,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"a2a994df6eb92d304845f8f2711506072549cadc","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a2a994df6eb92d304845f8f2711506072549cadc","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1076,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"e88855ef6b355e26a0332e37c8fbf35f06f1a6df","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e88855ef6b355e26a0332e37c8fbf35f06f1a6df","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1077,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"c1e3051c8ba46582286270b3dd85e166f2562e51","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: c1e3051c8ba46582286270b3dd85e166f2562e51","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1078,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"270af97a7ad47f343323425419e15a4b40b5b2d6","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 270af97a7ad47f343323425419e15a4b40b5b2d6","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1079,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 6f2b7aa144efdea96e65be3ab8ac7fa2cdbc2225","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1080,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d4205dbef5fa248356ab84f4f34e92d41043bbc0","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d4205dbef5fa248356ab84f4f34e92d41043bbc0","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1081,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"07388743bf6fdea5ecacfd52844951cf29f1ba5a","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 07388743bf6fdea5ecacfd52844951cf29f1ba5a","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1082,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"bc2d58753b8fe0b4f7150657bf40cfe756ce48de","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: bc2d58753b8fe0b4f7150657bf40cfe756ce48de","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1083,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d812e1700bb51f25a2e6c7b596cd836326ad0a8f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d812e1700bb51f25a2e6c7b596cd836326ad0a8f","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1084,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"924061810e00a9e9d86f6e24e1baedbc27407d07","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 924061810e00a9e9d86f6e24e1baedbc27407d07","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1085,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"ead96af520d030f786869d1a2fc84abf7515ba13","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ead96af520d030f786869d1a2fc84abf7515ba13","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1086,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"cd0ccf6429ac2f33e0a4924282006d85e3631cc8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: cd0ccf6429ac2f33e0a4924282006d85e3631cc8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1087,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5d7a452b6c2a45cd789f302cd469b899a95c3437","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5d7a452b6c2a45cd789f302cd469b899a95c3437","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1088,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"a50b8b99287d7ee5416b2fa438d7632bca6af461","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: a50b8b99287d7ee5416b2fa438d7632bca6af461","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1089,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 7e6d24ac888cf8fdd9d027a3cce623957ca0f8b4","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1090,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f6a7e7fcd25a928fdf743967980299caf6e95ee8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f6a7e7fcd25a928fdf743967980299caf6e95ee8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1091,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"192aa438cae812c9ca95a5c06a15ca0066237458","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 192aa438cae812c9ca95a5c06a15ca0066237458","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1092,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"59ca3a804f2475b26818d37f3acb8e791eeeec52","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 59ca3a804f2475b26818d37f3acb8e791eeeec52","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1093,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"8748578e0b514c8688d4696b1d6586fca63e8fe7","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 8748578e0b514c8688d4696b1d6586fca63e8fe7","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1094,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f358aa0745eebab14e4848cc7b7093d63ab7ca0c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f358aa0745eebab14e4848cc7b7093d63ab7ca0c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1095,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5b059bdb84f8cac3da01ca9e53d0136a28747e2e","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5b059bdb84f8cac3da01ca9e53d0136a28747e2e","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1096,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5170f98c4b5503fbe309f2d93d8361deb7adb713","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5170f98c4b5503fbe309f2d93d8361deb7adb713","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1097,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: fe3dcd33e3ae6611c76e350efc9232c0e71ddecf","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1098,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: f3b5ab94ad13f5d0cc3bbaccd7fb568c17eef2fb","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1099,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"baead12025e075376e7927981cdbdb29fc3e9127","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: baead12025e075376e7927981cdbdb29fc3e9127","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1100,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"0e8687c6e1895e5280c42cda1f05e0fe60456c2b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 0e8687c6e1895e5280c42cda1f05e0fe60456c2b","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1101,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"ecd031f3516ddb30d10184bc29008413fe982138","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: ecd031f3516ddb30d10184bc29008413fe982138","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1102,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"5cbdde321d5a14eeeaf9b4a4885b92b977415750","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 5cbdde321d5a14eeeaf9b4a4885b92b977415750","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1103,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"4dc6ef222bf413d145ce29652128ecbd7ea7e31f","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4dc6ef222bf413d145ce29652128ecbd7ea7e31f","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1104,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 9fd91c1bd29bc83ea3a7b2217bbab7af022f74b5","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1105,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"b4f775b86faecdc99a2ab9e89be2d7ca973762ad","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: b4f775b86faecdc99a2ab9e89be2d7ca973762ad","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1106,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"e6b4b9c801912c27d75ebee52fe74a427920df99","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: e6b4b9c801912c27d75ebee52fe74a427920df99","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1107,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"d1b7f907caa0c3c59628241250901cb7239b25a8","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: d1b7f907caa0c3c59628241250901cb7239b25a8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1108,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 4d9bf1ca97d6fd14d26fe4edfdcbb64fc8cc57c2","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1109,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"81494a0669c2c7e2fc491bbeea59dc78597e1efa","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 81494a0669c2c7e2fc491bbeea59dc78597e1efa","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1110,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 1b7e2f0b6c0e9ee2f84cb06b857a01aa99a2d98c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1111,"source_id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","target_id":"76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","source_type":"WIKI_ITEM","target_type":"COMMIT","relationship_type":"GENERATED_IN","extra":"Wiki generated in commit: 76ab51c20a1b2b44037ea4706db6cd49a6be8f3b","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1112,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"e4fe353d-cefc-4899-9e57-39fc9f112127","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e e4fe353d-cefc-4899-9e57-39fc9f112127","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1113,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1114,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e 06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1115,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"399f12e9-6620-446c-9e02-808c39c61bba","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e 399f12e9-6620-446c-9e02-808c39c61bba","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1116,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"d106423b-19ad-4e22-8a4a-567e2ff27e36","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e d106423b-19ad-4e22-8a4a-567e2ff27e36","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1117,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"33150d2c-ac78-4784-a31b-e9d342cc880c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 33150d2c-ac78-4784-a31b-e9d342cc880c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1118,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"2ab1acd9-0488-4f69-a292-63359e8a485a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 2ab1acd9-0488-4f69-a292-63359e8a485a","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1119,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"c46f3f6b-d36e-48a1-84b7-1e14cb598119","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e c46f3f6b-d36e-48a1-84b7-1e14cb598119","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1120,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"077abc2a-81e5-4e9c-9a72-757f4765021c","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e 077abc2a-81e5-4e9c-9a72-757f4765021c","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1121,"source_id":"caeb482b-4671-4692-98b5-948f768bcf2d","target_id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: caeb482b-4671-4692-98b5-948f768bcf2d -\u003e ab420b44-4f24-4bc3-a44c-bc68b0868ab8","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1122,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e b64a6df1-5797-4877-8b53-29fc0fdad59d","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1123,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"f071af41-6de4-4751-8a76-5e5d5d0c02df","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e f071af41-6de4-4751-8a76-5e5d5d0c02df","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1124,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"d5e98815-ab00-4c12-8402-2fbc852d8dbd","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e d5e98815-ab00-4c12-8402-2fbc852d8dbd","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1125,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"d2e0d8f8-6a5a-4d1d-aa94-30a022535241","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e d2e0d8f8-6a5a-4d1d-aa94-30a022535241","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1126,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e 33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1127,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"c2fef000-7272-4553-b8e9-650afd08aef6","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e c2fef000-7272-4553-b8e9-650afd08aef6","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1128,"source_id":"056cda49-d96e-49a5-831c-7def9872435e","target_id":"4708f37c-6c92-4fa9-aba1-fa843c3863f2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 056cda49-d96e-49a5-831c-7def9872435e -\u003e 4708f37c-6c92-4fa9-aba1-fa843c3863f2","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"id":1129,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"95e1342a-0e12-4512-98c2-4949a5826e9e","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e 95e1342a-0e12-4512-98c2-4949a5826e9e","gmt_create":"2025-11-18T17:28:41.526962+08:00","gmt_modified":"2025-11-18T17:28:41.526962+08:00"},{"id":1130,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"eaaecd0d-f07e-4e5b-8963-4c7502751370","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e eaaecd0d-f07e-4e5b-8963-4c7502751370","gmt_create":"2025-11-18T17:28:41.527062+08:00","gmt_modified":"2025-11-18T17:28:41.527062+08:00"},{"id":1131,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e 3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","gmt_create":"2025-11-18T17:28:41.527134+08:00","gmt_modified":"2025-11-18T17:28:41.527134+08:00"},{"id":1132,"source_id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","target_id":"37f505f3-bc0f-4e17-9e68-01ee420781be","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7af63f20-e74f-4c92-af2f-3124616b0dfc -\u003e 37f505f3-bc0f-4e17-9e68-01ee420781be","gmt_create":"2025-11-18T17:28:41.527204+08:00","gmt_modified":"2025-11-18T17:28:41.527204+08:00"},{"id":1133,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"56220162-83a7-4515-961e-ead90b488a0f","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e 56220162-83a7-4515-961e-ead90b488a0f","gmt_create":"2025-11-18T17:28:41.527362+08:00","gmt_modified":"2025-11-18T17:28:41.527362+08:00"},{"id":1134,"source_id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","target_id":"af7baacb-f954-45ab-bdd0-1781066d8db2","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 8987b1d6-99e5-4387-8d3c-60e739a30e20 -\u003e af7baacb-f954-45ab-bdd0-1781066d8db2","gmt_create":"2025-11-18T17:28:41.527426+08:00","gmt_modified":"2025-11-18T17:28:41.527426+08:00"},{"id":1135,"source_id":"743dffa6-cd2e-413c-8747-415bb3c039fc","target_id":"2fb4f893-35e3-4c02-9030-cbf1a5311cb1","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 743dffa6-cd2e-413c-8747-415bb3c039fc -\u003e 2fb4f893-35e3-4c02-9030-cbf1a5311cb1","gmt_create":"2025-11-18T17:28:41.530603+08:00","gmt_modified":"2025-11-18T17:28:41.530603+08:00"},{"id":1136,"source_id":"ed77f21d-2b02-47a9-b2cb-1f1d36e06b8d","target_id":"62ac605d-6709-41e3-b6ff-8e8558c68d66","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ed77f21d-2b02-47a9-b2cb-1f1d36e06b8d -\u003e 62ac605d-6709-41e3-b6ff-8e8558c68d66","gmt_create":"2025-11-21T01:00:12.531601+08:00","gmt_modified":"2025-11-21T01:00:12.531601+08:00"},{"id":1137,"source_id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","target_id":"f305e0c7-f9b7-4ea4-8a2f-ce0c4b0f7962","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 5ff3fb8f-241e-4d7b-a9f7-3f265eda053f -\u003e f305e0c7-f9b7-4ea4-8a2f-ce0c4b0f7962","gmt_create":"2025-11-21T01:00:12.532672+08:00","gmt_modified":"2025-11-21T01:00:12.532672+08:00"},{"id":1138,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"e00311d3-8a99-4aeb-8a73-3e2051477971","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e e00311d3-8a99-4aeb-8a73-3e2051477971","gmt_create":"2025-11-21T01:00:12.533358+08:00","gmt_modified":"2025-11-21T01:00:12.533358+08:00"},{"id":1139,"source_id":"32329179-a4a2-47e2-83dd-1a93c046af96","target_id":"1a6141a1-1580-4e97-ad9c-ce8b32e22063","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 32329179-a4a2-47e2-83dd-1a93c046af96 -\u003e 1a6141a1-1580-4e97-ad9c-ce8b32e22063","gmt_create":"2025-11-21T01:00:12.533481+08:00","gmt_modified":"2025-11-21T01:00:12.533481+08:00"}],"source_files":[{"id":"a3b7521789787cc4db7608d02c5e95f4","path":"internal/middleware/auth.go","filename":"auth.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"eb8338fb24a00daa3a4838bbc0ab1393","path":"internal/middleware/error_handler.go","filename":"error_handler.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"c23df18489eaaeec8a340de242b77b44","path":"utility/token/user_token.go","filename":"user_token.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"91b0ce4e15bd2ec12a8c8f87efd69254","path":"utility/config/config.go","filename":"config.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"a2cc9e42068f81d57e6658912bec50c7","path":"internal/errHandler/code.go","filename":"code.go","gmt_create":"2025-10-11T17:24:20+08:00","gmt_modified":"2025-10-11T17:24:20+08:00"},{"id":"0f583231f0ca6eb6bdc0cd3104f97d42","path":"/main.go","filename":"main.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"b6012388f040de469b7ec2244cf9d3bf","path":"/internal/logic/logic.go","filename":"logic.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"40a0c2b01b15ceae41bdd421874c199e","path":"/internal/service/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9592a0fc953a2595f709cd0c67c70a06","path":"/internal/dao/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"56c658d00971d4697ee90a4fd6912832","path":"/internal/model/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"219fe92fb80e3fa8bd7e4080d15e457a","path":"/internal/logic/sys_user/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0f0ab37127003f1af1d234709f1d3198","path":"/internal/logic/card_apple_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"0de0fc73ea1c0c78e2d71d04a0a94411","path":"/internal/logic/card_redeem_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"1ffd22848808f089677c2ddc482a954a","path":"/internal/logic/merchant_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"e5ef83e4ccff2f66a4eb56f3b2096bf0","path":"/internal/logic/restriction/restriction.go","filename":"restriction.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"d341b69869e9863f8bd7ed7614572d1c","path":"/internal/logic/card_t_mall_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"fb94b419b6c25749805b970980a051ae","path":"/internal/service/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"fa2076592876f7f4387e9050085ba9b5","path":"/internal/service/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"ce93596b3c315be9ad061ed78b9b4a16","path":"/internal/service/merchant_order.go","filename":"merchant_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"1ede9ed0ed4e2fea117f1f0ee3228874","path":"/internal/service/restriction.go","filename":"restriction.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"c22d8bb47932b7530c368ff1de72e79a","path":"/internal/service/card_t_mall_order.go","filename":"card_t_mall_order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"79ad87595e6f3cccf7d1df8561c8667d","path":"/manifest/config/config.yaml","filename":"config.yaml","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"348a584cbaee62585af0b8f576760382","path":"/internal/logic/jd_cookie/order.go","filename":"order.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"9fbcfcc5b312f6ea4b7a2f526f4fc0c4","path":"/internal/service/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:24:50+08:00","gmt_modified":"2025-10-11T17:24:50+08:00"},{"id":"94aa282e4a22f85674f3004894e95b12","path":"internal/model/entity/v_1_account_info.go","filename":"v_1_account_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"3695f0446f58c552ec036968b720c585","path":"internal/model/entity/v_1_order_info.go","filename":"v_1_order_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"297412eae542d50411094ce29ff6e9b3","path":"internal/model/entity/v_1_card_apple_recharge_info.go","filename":"v_1_card_apple_recharge_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"4f2117fd41858c8f1f05e73af0c4d045","path":"internal/model/entity/v_1_jd_cookie_account.go","filename":"v_1_jd_cookie_account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"10b4b7e7bda705f2473233626534db93","path":"internal/model/entity/v_1_jd_cookie_jd_order.go","filename":"v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"251c480af7207ec9635af57c9bc50f04","path":"internal/model/entity/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"24b833965d28e1470eacd7df237acdb4","path":"internal/dao/v_1_account_info.go","filename":"v_1_account_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"035d413d594bd8cd49b625ad3200b11c","path":"internal/dao/v_1_order_info.go","filename":"v_1_order_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9ea71fe3dd3d7290fd60892723bb7ee8","path":"internal/dao/v_1_card_apple_recharge_info.go","filename":"v_1_card_apple_recharge_info.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"8d29c379353db1d02b0dbd096eb8a47d","path":"internal/dao/v_1_jd_cookie_account.go","filename":"v_1_jd_cookie_account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"319d5ee6b3c76bed0110a972df7470d8","path":"internal/dao/v_1_jd_cookie_jd_order.go","filename":"v_1_jd_cookie_jd_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"81cfcd51a2f0449da14f3d4052765c08","path":"internal/dao/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"48b3a3cd9e9db7485c82648a8f9c69dc","path":"internal/controller/merchant/merchant_v1_merchant_config_add.go","filename":"merchant_v1_merchant_config_add.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"9909bbb8255b96a053563e9f3afd6e52","path":"internal/logic/account/account.go","filename":"account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"c80482f4470a8e3dd050e61ff9bd3738","path":"internal/logic/merchant_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"92c36754f0dbd99fed9aa1523374158d","path":"internal/logic/card_apple_order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"cbe32a6c2d1cadcc72019566cad819b6","path":"internal/logic/card_apple_order/status.go","filename":"status.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"987fc36e572014bb0a7c02bc015c9fa2","path":"internal/logic/card_apple_order/recharge_history.go","filename":"recharge_history.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"39c6a811a6208e20dc5b28becf3a2cbe","path":"internal/logic/card_apple_order/steal_relation.go","filename":"steal_relation.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"fe83d023754ae2aedb7c68ac0f3dcf31","path":"internal/logic/jd_cookie/account.go","filename":"account.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"edd8bea5c8f9373cd0b4de186914479e","path":"internal/logic/jd_cookie/order.go","filename":"order.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"961047bec51802fc7855502acf4bbc07","path":"internal/logic/jd_cookie/rotation.go","filename":"rotation.go","gmt_create":"2025-10-11T17:25:02+08:00","gmt_modified":"2025-10-11T17:25:02+08:00"},{"id":"6949b603968e204a80d7e6e337496f12","path":"internal/cmd/cmd.go","filename":"cmd.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"cd47a7c1fd3185ff279cca4dd4a1cd9d","path":"api/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"2a00f83021031103c438a59751eee183","path":"api/monitor/v1/heathcheck.go","filename":"heathcheck.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"d9ed9131ddb364556f43b561d041ddd5","path":"internal/controller/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"eddf871859d423ace01da9a74db6db86","path":"internal/controller/monitor/monitor_new.go","filename":"monitor_new.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"50111ae80e6ac600d65fbd7b34df3d03","path":"internal/controller/monitor/monitor_v1_health_check.go","filename":"monitor_v1_health_check.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"5824f93b650d7a0b6fb8c1a016077461","path":"utility/otel/config.go","filename":"config.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"11df2c532cb96a0d8e041af4ea176204","path":"utility/otel/manager.go","filename":"manager.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"b0dcfa2b0067be5ec2e3f00ad722ed85","path":"utility/otel/handler.go","filename":"handler.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"70f39d04b38fd3c3c76da74b7b0ed20b","path":"utility/otel/utils.go","filename":"utils.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"b896e4b9529b9c35c2662cf25560c5cd","path":"utility/monitor/monitor.go","filename":"monitor.go","gmt_create":"2025-10-11T17:25:57+08:00","gmt_modified":"2025-10-11T17:25:57+08:00"},{"id":"ce051f6cc8a25a53dcd349ccf066f90b","path":"internal/controller/card_info_apple/apple_card_info_v1_recharge_list_download_test.go","filename":"apple_card_info_v1_recharge_list_download_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"315cb5ac67c46c359e9c8f8aecd320da","path":"internal/controller/restriction/restriction_v1_user_info_collection_test.go","filename":"restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"69602f92dc2983d638407af34ffc3699","path":"utility/cron/t_mall_game_data_sync_test.go","filename":"t_mall_game_data_sync_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"a4390b2a5bd3345ca09b4f120a912bf6","path":"utility/token/user_token_test.go","filename":"user_token_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"8d5d9b9151c15db5b80bdccfa4ad9e4f","path":"internal/logic/card_apple_account/account_test.go","filename":"account_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"3676af4fc53a7e056b34c4afcae6f032","path":"internal/logic/card_apple_account/wallet_test.go","filename":"wallet_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"1339d4fd004425708306ffba6c2dd7f9","path":"internal/logic/card_apple_order/order_test.go","filename":"order_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"12223cc24bc431745a711c09cde5b50c","path":"internal/logic/card_redeem_cookie/place_test.go","filename":"place_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"2081083be98975ed163a65fade66d84a","path":"internal/logic/card_redeem_account/summary_test.go","filename":"summary_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"d68b895f71aba40116241dab68952308","path":"internal/logic/steal_rule/stats_test.go","filename":"stats_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"c87e75096c95a73029618add8b2030a6","path":"internal/logic/limiter/rate_test.go","filename":"rate_test.go","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"54791cda92ceb80fb0fd1d394b3c7786","path":"go.mod","filename":"go.mod","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"6f6df715215e91eb3286c71371bf331d","path":"hack/config.yaml","filename":"config.yaml","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"c240c13752c53bbb87d71a8654be71ea","path":"JD_COOKIE_REFACTOR_REPORT.md","filename":"JD_COOKIE_REFACTOR_REPORT.md","gmt_create":"2025-10-11T17:26:03+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"id":"b100fafa43450f0fdfd71975218cd99c","path":"resource/casbin/rbac_model.conf","filename":"rbac_model.conf","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"f72071e80cb61857e0d4b22414fa6ea4","path":"utility/integration/originalJd/client.go","filename":"client.go","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"03c5c54ee07952069215a22a208842f4","path":"utility/integration/originalJd/model.go","filename":"model.go","gmt_create":"2025-10-11T17:26:05+08:00","gmt_modified":"2025-10-11T17:26:05+08:00"},{"id":"eec37ad3c15d2c25f166711fa52e741b","path":"internal/consts/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:26:06+08:00","gmt_modified":"2025-10-11T17:26:06+08:00"},{"id":"d002a301044bef263b2a95b977c75925","path":"utility/verify/aes_ecb.go","filename":"aes_ecb.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"72755b8cc621f2d563a4a5ee5222529b","path":"utility/verify/md5.go","filename":"md5.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"b279f7393bb4b20c60e4a58537fad6f5","path":"utility/mfa/mfa.go","filename":"mfa.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"674428c72460e01521574ca280c115f4","path":"internal/model/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ee654b1f5fb098fe9e7aeb85bd452349","path":"internal/service/sys_user.go","filename":"sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"8193684ba57063beec7b646d4b1b54e0","path":"internal/service/sys_auth.go","filename":"sys_auth.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"55835e5aa0b4632d7c3ab1cb90645f23","path":"internal/service/sys_casbin.go","filename":"sys_casbin.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"c08fb0c498d0fab1d988a77466050227","path":"internal/dao/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"9cd3a5d90f9aa905b7855847b1300d50","path":"internal/dao/v_1_sys_casbin_rule.go","filename":"v_1_sys_casbin_rule.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ed43772f3487059e03a475d29e64c140","path":"internal/controller/sysUser/sysUser_v1_totp_status_get.go","filename":"sysUser_v1_totp_status_get.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"ed385c7e637955c644231fb8b9437600","path":"internal/controller/sysUser/sysUser_v1_totp_set.go","filename":"sysUser_v1_totp_set.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"00d464ab1568b59906f97ec8146e8af4","path":"internal/errHandler/handler.go","filename":"handler.go","gmt_create":"2025-10-11T17:27:31+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"id":"276c0639f90dcf2a34f4f4fbde119792","path":"api/order/v1/form.go","filename":"form.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"b68f5340d85dff7e7356a47028249bea","path":"api/order/v1/log.go","filename":"log.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"d004861257e62752cfed1f1a3dee4f6e","path":"api/order/v1/order_summary.go","filename":"order_summary.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"117de4e77295f9440aa08bf4b60bb54e","path":"api/order/order.go","filename":"order.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"fb972da6475be273c156b3d340c60b4d","path":"internal/controller/order/order_new.go","filename":"order_new.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"1b43f5469efafba6f30e2a9bf228e4d0","path":"internal/controller/order/order_v1_order_form_create.go","filename":"order_v1_order_form_create.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"6d0148a632b80d69ab9cb23b7b7c1177","path":"internal/controller/order/order_v1_order_form_update.go","filename":"order_v1_order_form_update.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"493b77f6804c0cb6c2b773567f9a98a5","path":"internal/controller/order/order_v1_order_form_delete.go","filename":"order_v1_order_form_delete.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"16690b403f75ad7364b91d742d4e0ec2","path":"internal/controller/order/order_v1_order_form_list.go","filename":"order_v1_order_form_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"23d82c1c91bfb481851d2302868008b1","path":"internal/controller/order/order_v1_order_log_list.go","filename":"order_v1_order_log_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"58a47489aee9a8f906d1d2120d982105","path":"internal/controller/order/order_v1_order_log_delete.go","filename":"order_v1_order_log_delete.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"b477f7365d4c6efa2c1cbcd88d2e7db9","path":"internal/controller/order/order_v1_order_summary_get_list.go","filename":"order_v1_order_summary_get_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"3a8478b750f71d410904fb39aa1e55bc","path":"internal/controller/order/order_v1_order_summary_daily_get_list.go","filename":"order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-11T17:27:32+08:00","gmt_modified":"2025-10-11T17:27:32+08:00"},{"id":"07658a06e2cd29c67a415fcae7cad0cd","path":"internal/model/order_info.go","filename":"order_info.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":"ea969bf93403e59ca22028be70fc6c3a","path":"internal/logic/merchant_order/order-summary.go","filename":"order-summary.go","gmt_create":"2025-10-11T17:27:33+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"id":"498fdff361f9c01e54357a315e9f7d11","path":"\\utility\\integration\\originalJd\\client.go","filename":"client.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"eb65af27cb143cabfacf4e397cb494ca","path":"\\utility\\integration\\originalJd\\model.go","filename":"model.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"f94f261c1cc667bd73b5e2d9fc8b4c0f","path":"\\internal\\consts\\card_redeem_cookie.go","filename":"card_redeem_cookie.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"ef7aefce9f83002d91de28b146a92720","path":"\\internal\\consts\\card_jd.go","filename":"card_jd.go","gmt_create":"2025-10-11T17:28:29+08:00","gmt_modified":"2025-10-11T17:28:29+08:00"},{"id":"5b63b16fce716e9c574c9fcdb6fb533b","path":"api/order/v1/order.go","filename":"order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"c0b5e0a48e881e774316a237bd41edcf","path":"internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","filename":"card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"1c27101b67ffcdf02489a331ce98d3dd","path":"internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go","filename":"card_redeem_jd_v1_place_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"a2750efa03ae7599bd56314495a2da56","path":"internal/controller/card_info_jd/card_info_jd_v1_order_callback.go","filename":"card_info_jd_v1_order_callback.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"711773636c036a042ce625f30229a418","path":"internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go","filename":"card_info_t_mall_game_v1_t_mall_game_order_submit.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"1b7d72f7f4a9bb0f3f8a8dc432a433f6","path":"internal/model/do/order_info.go","filename":"order_info.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"449f4de7045f7b39ec1c6aa4ecb4b840","path":"internal/service/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"a2623d6811b08468df51c167eaf9b774","path":"internal/service/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"8ac69700098158e9e90a9a8f1a247a9a","path":"internal/consts/sys_user_payment_record.go","filename":"sys_user_payment_record.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"70e0b28642444d37c06db48c6c61307d","path":"internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go","filename":"card_info_jd_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"3c6298484df164a1e5fe7fc2efa9712c","path":"internal/controller/card_info_walmart/card_info_walmart_v1_order_summary_list.go","filename":"card_info_walmart_v1_order_summary_list.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"fec40ef00c4cd2e564af5cea15277c85","path":"internal/logic/card_apple_order/card_apple_order.go","filename":"card_apple_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"f18bd86f1dafe9eae88b4f4b00db9bcd","path":"internal/logic/card_redeem_order/card_redeem_order.go","filename":"card_redeem_order.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"c6ee44f200688a3a1f009e9a166d6481","path":"utility/utils/tools.go","filename":"tools.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"bd83967e8844a9df33a6def66ff88bf8","path":"utility/cache/cache.go","filename":"cache.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"d6ab1f208fb77fbc9859cad2aa6bb1ed","path":"internal/service/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-11T17:28:54+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"id":"7fa23727ee8e479ba4e92dc3eed84908","path":"internal/systemV2/logic/user_center/user_center.go","filename":"user_center.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"469f62d9db11e2c4fb3697ae2e85f81a","path":"internal/dao/internal/v_1_sys_user.go","filename":"v_1_sys_user.go","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"id":"f64c7936d86ec71ec54ea9cb5a6d7466","path":"manifest/config/config.yaml","filename":"config.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"e5e06384050da6e9cb71d788b8fdfea5","path":"manifest/docker/Dockerfile","filename":"Dockerfile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"5c71a6de5070579b5c90694ac98bb368","path":"manifest/docker/docker-compose.yml","filename":"docker-compose.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"07153a17d7dda70c75d2b1b4146f582c","path":"manifest/docker/docker-compose-local.yaml","filename":"docker-compose-local.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"ff277b9199e792d02dbfa13f55915d43","path":"manifest/docker/install.sh","filename":"install.sh","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"4d75f6651634ab298f2875fc0e83333d","path":"manifest/deploy/kustomize/base/kustomization.yaml","filename":"kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"c668b2b1eb7f16d3e643a19a9e1fdd7b","path":"manifest/deploy/kustomize/overlays/develop/kustomization.yaml","filename":"kustomization.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"1e38df357652b98eb89f47c776d89716","path":"manifest/deploy/kustomize/base/deployment.yaml","filename":"deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"375bbed4688b0d8de4a69655f763d5fe","path":"manifest/deploy/kustomize/overlays/develop/deployment.yaml","filename":"deployment.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"9bf50a69c00a52a1dff9af6d0a524561","path":"manifest/deploy/kustomize/overlays/develop/configmap.yaml","filename":"configmap.yaml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"cd7e39cff0a7e858c297aca5f1d6a079","path":"Makefile","filename":"Makefile","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"fa263673f2a99e1b81a89d8bcba135f2","path":"hack/hack.mk","filename":"hack.mk","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"a032002d1754289832a7235ddf38bba8","path":".drone.yml","filename":".drone.yml","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"2e66ec3759ab8e44a2f8b14f29e91610","path":"utility/cron/cron.go","filename":"cron.go","gmt_create":"2025-10-18T22:04:18+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"id":"debc2930279b67133bdabc1b8627fa74","path":"/utility/otel/config.go","filename":"config.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"646de3e21aede32684ac250608e30f81","path":"/utility/otel/manager.go","filename":"manager.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"1455afd43a1181b4924167eee7f2bf61","path":"/utility/otel/utils.go","filename":"utils.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"4aab766e7ad6f5e8c17384b0d5361728","path":"/resource/casbin/rbac_model.conf","filename":"rbac_model.conf","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"487ce7ed78126fa758cc2d348b2f410e","path":"/utility/integration/redeem/jd/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"85326ba007bc4b730914abf2639ab613","path":"/utility/integration/redeem/ctrip/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"08fcd1de22231d0da02880634f8774fa","path":"/utility/integration/redeem/walmart/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"38d3cae75228d13a3dd19e8fa2956753","path":"/utility/integration/tmall/api/api.go","filename":"api.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"ce3a1385eaebaa905699b23ad83e209c","path":"/utility/integration/originalJd/client.go","filename":"client.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"966e173135a1b07b87f554aa60f65dd1","path":"/utility/integration/originalJd/model.go","filename":"model.go","gmt_create":"2025-10-18T22:04:36+08:00","gmt_modified":"2025-10-18T22:04:36+08:00"},{"id":"14a77dff2e965ae92bd92a79f7c51ea1","path":"/internal/consts/jd_cookie.go","filename":"jd_cookie.go","gmt_create":"2025-10-18T22:04:37+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"id":"0f4b79c169b55a4a353922e49057ab34","path":"/internal/logic/jd_cookie/order_create.go","filename":"order_create.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"8297c82d56a4566b4e439161bc2454c7","path":"/internal/logic/jd_cookie/order_utils.go","filename":"order_utils.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"6f426da779ea01b260285f35941ee350","path":"/internal/logic/jd_cookie/order_jd.go","filename":"order_jd.go","gmt_create":"2025-10-18T22:05:30+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"id":"b02b1b196de6c12a1b511f4fe368aefa","path":"internal/logic/sys_auth/sysAuth.go","filename":"sysAuth.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"fb7ae04d8afd7c7f540758059df7b9fc","path":"internal/controller/jd_cookie/jd_cookie_v1_create_account.go","filename":"jd_cookie_v1_create_account.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"d212b7838198d532442a43a2720f228c","path":"internal/controller/jd_cookie/jd_cookie_v1_create_order.go","filename":"jd_cookie_v1_create_order.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"ecaa7eef95a04c10e41b14218959f6bf","path":"internal/controller/jd_cookie/jd_cookie_v1_batch_check.go","filename":"jd_cookie_v1_batch_check.go","gmt_create":"2025-10-18T22:05:40+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"id":"95d76ee51d8eba69c520952975f3836c","path":"internal/logic/jd_cookie/order_create.go","filename":"order_create.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"b9997c2d25a8edb37042b9aed4b87d4a","path":"internal/logic/jd_cookie/order_utils.go","filename":"order_utils.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"ed31ce19cca1ebd07457e557c8cb7147","path":"internal/logic/jd_cookie/order_jd.go","filename":"order_jd.go","gmt_create":"2025-10-18T22:05:41+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"id":"dc285be35577dcc5b342eafd1a253628","path":"internal/model/do/v_1_jd_cookie_order.go","filename":"v_1_jd_cookie_order.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"}],"wiki_catalogs":[{"id":"8292f51b-85c1-41d5-a58a-50585ba999d1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"项目概述","description":"project-overview","prompt":"创建关于kami_backend项目的全面概述内容。解释该项目作为电商平台卡密管理后端系统的核心目的和架构设计。详细描述其基于GoFrame框架的MVC架构,以及如何为京东、天猫、沃尔玛、Ctrip等多个电商平台提供统一的卡密充值与兑换、订单处理和账户管理API服务。阐述系统的主要组件及其相互关系,包括API层、控制器层、服务层、业务逻辑层和数据访问层。为初学者提供概念性介绍,同时为经验丰富的开发者提供技术细节,包括系统的工作流程、关键设计决策和整体技术愿景。使用代码库中的实际示例来说明核心功能,并保持与代码库一致的术语。","progress_status":"completed","dependent_files":"main.go,CLAUDE.md,README.md,Makefile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:22:33+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV5ZPaqnpZD68qW6viSXvNxPEwZQOyt9nbtdfUWCMarbTgmIushNu4J5RPguVc9JC+KjKWBJP2K2k0dMyiFIM1LNRg0L4JwSi0jojAQ3WhyIboOqfY/DVBgMOmJcqMlfegwvZrPWGRL4SzulymvNwlBKhpBjFdkOwae+0Luldz4f3FJgKEvaBF/yXIIEP306Vc4gko1a8JxEgl2h4yzd4FKlZonSXR6zQ1dUGQzOvKCZR36Nh4YDIxoqDOj+3BaqAYI+LW7ILrDyDi5Mb0PRWJLamEJ99ZI7o48W5vPr0GKxCM7CFhirvdnbb6w1dxKHH6j2uz2wnz9oG3PnA4+vKqOMKmx4buCYqtkEjJ7SegnJt85ilBBrYMEOGXIulXglXQT5W4sl8r2DyHY8t/wHuYS1V91vnuhYnlHVozMIpRVfkwARdrqfSDMREv75DzhMHGzjXtILoZzFz+ZIq/kCAeHawR5w9KUUBbRQ65Txpl8p1rsjYhpp63ItiHANivaJcJNvA3xOC0Mnhb1IDucrRB9JzGTwMMOnXzstRcwvdfPaL4//W0eZeVSBRldVOKjxJKyYkTfvoTNBiQ9avgznXLDGNNaln7C1MuPUF1xQOBqYh/1IXq79W0/gMhESyMZcqAZbSHAa72JhU9Tio3IcgF8vBPbEIOBsTZoXbvVT2dtEf7hNIXrZNS5WENbRMMUI+e25NTOclCOPcPABhJhPmVl0HnOvkIkRhNw1F/bflysTZvMpYOYC7S6e5CkwWqfaSJ6TqhaixM/5RqJs9CmLCj8btLxJ7PXiuvk+ao5J9IKRPqIW8AxmvXA+5n7fz8VQzTdrAxOdySKSbty3ZvIVoyqFwN9c9iTPhi90Gd6MqHHaN/TgFO2k1Nsvk0VW9mPdu65aoRUab/oTrM/UlK87rQYaU/FGMCR4Yb08wI8Nv8eL+ynJa3rsFe1Ge4oeCDRJ7fDGiqsePo1A1bcCNPS+kI8qJGQS3cK6yjo+kf7btjlUVXqNqIopDmayuHBa1N/PpFajqsHjVt5rFh8oPISq63okSxfJ2X6kPSzDNFGtnKpphYTXy4TPgFReXEjU5znGV2A8kHnLoHVHUWJvMGkKmoSJqxdvaorvNs9W4GKghA78uwvUQQ/XGmpSHu36Jtr0yN3HWw4iDJ0bhFzI/zbpF/1Kjyh1zDP9sE2Z6qBITBg9LcwAsbFKpdSA/8+9hx3el5g=="},{"id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"卡密管理逻辑","description":"card-management-logic","prompt":"创建kami_backend卡密管理业务逻辑的详细文档。深入阐述Apple、京东、天猫等各平台卡密账户的创建、更新、删除和状态管理流程。详细说明卡密充值逻辑,包括充值历史记录、重复卡密处理、充值状态同步等核心功能。解释卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法的实现细节。记录卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/,internal/logic/card_redeem_account/,internal/logic/card_t_mall_account/,internal/service/card_apple_account.go,internal/service/card_redeem_account.go,internal/service/card_t_mall_account.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:26:44+08:00","raw_data":"WikiEncrypted:kn7Ct+JfrcIimOh9dbHZD8z9sVFXFlw+VowlG4RdkgRiO5PhUZUUR9F/92VQe6/0J84NbYm+zazVIZMP+YkBFE0RZtWubRsgAz8BWjPUtXm2B04dFxVPAt1NIu+3RilzEmU1MR1N7PuxuaIImLt/bu6gQFKA3Bf2MWl0Q61W4ONaIc4V/Ui2hYPvvFDkO+IdljMqxRjRuJmG26kio69x2aFtk6VFwU/V69hDjfymhxbNNKJWT1wgjQARNT1nEy5i/su1X6mIWQSM28YGyPjXB6z9jDFOYmUV6GSJfQ5UBJ5VCQYoGEBZYkcwVn/KqJHkEhHCwDWss36knb4+oRzFcOjfw9Ar7ZVZmZiqPSnto+r5Rp5h1jxSc43jD+7FS5jLTf1Q0Dj7klEVLZpD3lVP2KLOdWz/ekmasAflrPJVMdNKpUh3XIaAUP3nua5TpE+q6OJIrnjLBk17KmAQsE1RBM4z8z5Zvn9XM5sMBDa9u7AoL7spVwcfwJiyg/Apl3eAGjBDjQV7cyRvsfJWs9BMCQRhxgezXNkZi+63bUyJ4OQt+DhLmPD39tL8BWSZkXr3CCrrZ5Xc6nE7w1MlR5SEVykcgzG2dYBYCZW6HtEwx7CHvxKqFZVU7qkueY/8ang60ulQTMY/DcIyMCvGSBb5aVOwIZ228z2G+3k/YacUjDFAYBU1up1I4zkCe2e6cDDuY5qSfyE2eQsaYMaXv6gB45vnQ2w14diy/bR5Mpxe7oT0fWDv3QVx1Oy3Z+JKyx1ehumNJa7zESZWmEai4F7P4d1cY5q5VP+rpdLQilXEOEpP8M0369o+bMLlTKDmZPOqVK/jRVozMnMvyJ/DRXqc3tgo+ng0uT2/ZmuEcpfprBiF0IvtobVjphqZqhGlDDsqazVUdKbPSXxGcbawGOBn+cw8VTXD0BGJgeXIa1HbBZrcZGgyzilCHQjexQSWOBHS9ggSFFHlj22TsLvh78O1avMDXXuFYEXSmltDEzI4tlbJ5K31p0eBCIsUOOCOigJJGIbshguTgw3/ZXE9Kb5LmwfohID/3R2wd+aDgEKAXhP80/XMh1MLF5TKeEGqcXcax+IBT5dfxWSLi6GoEvGYCbKP/CUvvI+DYeNp2XMlGWr6yClsp3WD/pG34pb5Mz1eKbyTRhA+8K62VcJ/4x6j+xqW01PJrKLYXfJOTJIhyHp+uSa3YNvO5OnHj38hl/h5FqYsnZ+cuhs0y2vpa1I5j6ABYMKcu8HMp1wS7jMdZA6ezRBGnl9mSRZ7ELNFCfKEakpT5QBowaBYxviHgYZYHfzjBFc4ViYY/V6u/qtm0i2niSj2bAewlZyWtAVuK7NXFExjovKKnIVvmVHzJraXtJriVnHNOO4ZiaEZk4P9Kil2NZ7vlYo/z+S+pQxjg0H3XDgwhr+/jK+RIDCIp6H7Ng==","layer_level":1},{"id":"0acd557b-c455-4420-956e-96a4a67cd7e0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户数据模型","description":"user-data-model","prompt":"创建kami_backend用户数据模型的全面文档。详细说明v_1_user_info实体的所有字段定义、数据类型和业务含义,包括用户基本信息、状态、权限等属性。解释主键id、唯一索引username的定义,以及与其他表的外键关系。阐述用户数据的验证规则和业务规则,如用户名格式、密码加密策略等。提供用户数据表的模式图和示例数据。记录用户数据的访问模式、缓存策略(如Redis缓存)和性能考虑因素。说明数据生命周期、保留策略和归档规则。详细描述GoFrame ORM框架如何将用户数据模型映射到Go结构体,以及DAO层如何实现用户数据的增删改查操作。包括用户与角色、权限等关联实体的关系映射。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","progress_status":"completed","dependent_files":"internal/model/entity/v_1_user_info.go,internal/model/do/v_1_user_info.go,internal/dao/v_1_user_info.go,internal/model/sys_user.go,internal/model/user_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:26:32+08:00","raw_data":"WikiEncrypted:b2BGJgTIatkHozAd0Nudm/SuvVVYZvaYCYJT//0Xr2YLspulsfZ15EoSMz1BS2Qu+eT/Pia7Bp+rVzGEs5oZfqEhrvkZJtq9PBXvvEoPE0zXdUP4cFX6U6mN1aUOy0Wzdrk4F0Ho1YhY0DNv8UdU+9bn1hHkP/mx5mK9TxjwmMYR7vS8MdbT920j/f9IegBRCliSfMXWqg31OAUcsikZZRl+R0/Zl4jRZ/HbPVB3fakRwaqfvSWAnDURFmoVY6+xCAC/rRtpV7CAnkNrEGNO6yAtqeba/bYPFMlAqlsatVImQavsRJWHPK9fCHhJPPSQAPYoyKliiMdgTzaxceybxTLtNNShGuSvXtR8DLHwFrhUpC+LTyzXI0JROTjR9ndhVDTt/IELxhmYFITb+4aejLlhHN+J4pMcoRYXEh8Z769iRqfiI0DbR+evFug/AFVvxOq32AeaFc1zQnzAJF7s0as2mKEbjRFFI1CHdQ3kfH087Ov2HdugqBWZw5TWPBAgVk7fItFEoKsryzEiRmhWhsNaqhWF0heraMk8eDZGJw0LXDF/8qYeoV0ybASIgxLCeHl4Ckfush86I0zBcpRh4COc5Swi+LdiWGDvbRKTnbQsTgjdl3uT5/PPVw6OwbN/wqNp6tVyZvzazGUiAb/iJVE+XFbjk7JKib26plORd6O4Bjye4HPj5ohndCPDdmAY9+rbrgf7v8UxNxvMrBP5p3MT6I9rCs8Gcg/Lej0OObK6lxCILhHCarkR09+/WIa0PeeHqfQTurlZgd/VKaXK4wOC1UUX51ffo6pzI3SJTEAym4u1KI3TuN+58x12ORQHPCX2SDvh/l4F82L2yWMDyj6MIaDy/e/+2j1j0FcH2NjsHEIetNey1a29fDnrYIV4ZkCkUC/z77TWo+YhucgMUPuA2i7Y6n0PE/AzD6aUdYA+L7G1UUzh8lguXIDPwDDw91JSPi0J7YXEYwv0oqguL3uxLdjY1dx9b2zFWVWxVDw9FofS+q5/hSzw1OIWsZ+QTUtV/apoyHvdSwDX5I49c7NMgAB5H3rEhcKrezwZDu0AU7PQENOzEzvQzGw+ggNrtUYBtjj83biXEpN3V4p9f7kXl92YJRPTygs+noXNkh28gMS80iBdgNdA/KHfuAW4uEHAsE6GxEQsWoYavMxops8UhIz1or3znDivgK7qXuRj07ySoBm4IE4mhnqKGRFzKSEp5JVb7ihkqX2L84XU4FKatiu6wFGWTgm6kaemG3xHmqGaxJdniYvmDX3U43b1uv7iF24ti/BLG/QUQ4O3kzn3EFstT4QdtQJjxVexc7PJwH0s2McUqe8jwOJvLsEu4/iB/zJLzVPuFIUzyxEE/DHApT7Dwea0xgcDdDwOWN+ePYmDENZFLF8ySIiY1wla/L1b4FZayc1IJ1LOv+BWhXzgm7UoNHzsrllsNhtu3xa99+OBshAu7+gKsIJy3FVFBzzKR5w7SHWoYQ2fABUYNLepDMJA+XdzTd283ycqKbyfe8Xcwbt9bmqrNJFfbJfeQ+KVTmm82fpvHF1He83EHzLlM84vE5qh/gfXCnFzDT3FdNNaRDemUH7VnJWUx3KugsmEsWnvfamrX1VoiMSHSMDT5F5OH8DQCMYPZAqf/IQ=","layer_level":1},{"id":"681cb8e8-add7-42cb-8297-72df3436bc74","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限管理API","description":"api-auth","prompt":"创建权限管理API的详细文档,涵盖用户、角色和租户管理功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括菜单管理、角色管理、租户管理等接口,提供实际使用示例、错误处理策略和安全考虑。解释RBAC权限控制模型的实现细节,包括权限规则、角色继承和访问控制策略。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","progress_status":"completed","dependent_files":"api/authority/,internal/controller/authority/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:27:26+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L62h4S7p46pJDygi2mv/I0XaEve9lYczBQSg9mSd5aOOh0poTp2DPKTMapy+4nMq7a037hv9Ush/mogb3Ipd/zY6F/7avn9o6k/F5fymHI3kmpJnb3Cch7lFHClRfGjy+Se/jm6hd5BP7wEVj0xeXaf2SNp+lLPIswTQky3nnRJ64SMVqGlPzMuw8slMCOic41UPWHSc79cUa7HywqwPkdqOtjMcNfL2oq0seuUd9uTnHTYmgQaW9ZGtro3eF+eO5JavVONGPJdDkZqjpv45FdnYSPFCxW3XDrIpT9zWVVPvYj2894UxAg7567zq9uv4n3Rwgk24a6sd2wZhOOGN/M/08rGq4AGs1inTW/jYL/FuOjHFx3HFSDrC8tetfeKhZ4pfFthpjUwkm+rp5dktITYBTL3FJYDE3JMf0BwdWEqWzHxvC5QtfYO3Gm+dmH7mVDtVzeXwfWiW9wqKe/mb7G3avYaNEPswqlbjUoA+wJHR6VxvOOBYakgaJ4Aetel2S0TjBpMxkrJcNoAxAkOtQnqvWZq4VZGeClnvqVNwHvzwvQIOeaEfCiJ1CFQiy5blGYaoCJobLWtZ6tX/vFxuAgNb10VJ1Jg2BAex2DPUG3lZOvWiTLNvEwLKeJKzQCt0nhrGTu0mCSEtOTcvJ2fEUbxqY/YHWpXrNVMmOADPzor6iM2M4ZDv47zV3Kre7/fDE141wJpHnrX6jNTUUcIBGpkGK7v5FrpjxV7cSce+ynBkQj1YVU2S4Ff7lKjZkU+Bdto6roSxfe8X91BU8lyXvO9RZaJ+08pexUfqvvhwGH41v+kg1ua1NxV6tpTj9izddT5Gjm/4Ytmf3wciHRCFvp9sxryPIZte4luZYGmyrmBCDvfBD2qnCPT1Ealw1PxZuENLD9I+aZTIACT40t+/zT7KDMYoPaegds4uDtr9Cxj/hFUUkBCpOibaQ+BmLU4zx3H7SO+GeIQ/tLKTdGjkMJ0KL8JBAdRrcfPq0pLRY7ax8nyaxk0F3HBiIOoO5Z94a62+uLnIi7tRxktQlaKdOOuKwzColXQea1nPflWTj0sYX","layer_level":1},{"id":"965a1a48-9a08-4f01-9b4f-1f1a51c82165","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"认证机制","description":"authentication","prompt":"创建kami_backend认证机制的详细文档。深入解释基于JWT的用户认证流程,包括令牌的生成、验证和刷新机制。描述登录接口的实现细节,分析auth.go中间件如何拦截请求并验证用户身份。说明用户凭证的处理方式、会话管理策略和令牌过期处理。提供认证流程的序列图,展示从用户登录到令牌验证的完整过程。记录认证相关的安全配置选项,如令牌有效期、加密算法和黑名单机制。为开发者提供认证集成指南和常见问题解决方案。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","progress_status":"completed","dependent_files":"internal/middleware/auth.go,utility/token/user_token.go,internal/controller/sys_user_login/sys_user_login_v1_user_login.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:27:44+08:00","raw_data":"WikiEncrypted:uxAckj1IXK2TQH//kEdeBEJk8OQlcivzGG3AR0HSFOo2ht3uRAHL8kInzlA+/LrT0yu/xcGyMMZDf6et32Zc35BW+5OWmSgFHiH3LFscU1wP+DwAH5n49Jy+7BmMwoZqTIxQqKngL0ubWEPVHEOa/2sdpoDYIKxaODRnZW1UQLeZCZw7PZBwRaBTsBF0wCwFd3pQ4sjeKp/gShXpg4nAmtCC/wmqHon1w4l7w3HhG5v3KEzsQfiYoUnjWAPo4otxkFypLPlJsIu7UtzpWYjliKqvJLuBnHY234gVrbqsq1CVHMkxNz+/xzJW1K+F4EGMB239Eg9Ua0R8c7IbOVKrh5h/cdlnwyikDYkBMvn34YMb8lXx+pSgxRO8QNGeuxyy2/Mn6lNZNt3BIl7BRo++j+f7LiPtEgl4dk5mFSeKqsxhXOCvvm8M8iwvFagjRJRuGUDjFoqL5txB7/lomd+GhqEK9Hu/rHoHKiZnx1FKGUk502ZuRI7IThAn/2Maxrd83T1wWkmXL/TTHxPJZEt1K5qxm2oRVGBTbUhqR9w9OxAZdhbGRW6ZEiLjYPBo8kGncrDBzLDT2K0X2avY/l9KX5SlwoDT1Lknt77WWromrjYeHYYm/Q9JMF1FM0f2l3bMtg1fhjKsKDOdFCHqKkLxEoY+kDHrINbuYY62gZoAyuxf/c1yC9r1mUCA3oUVCPEgzP1NmkrfPfYEM+VsKMoPkeB++F0crkF/tC73lIuV7drxAxM59kACqIC0QZXlbMcJyJRndirD7H9sd16sscpwqPw9c2mPM/+FLTx2PyRQExSHLWEyAdMZVrpDC4/r5GmsCOeNByvcwWIaAmvlbijoC1DFkztQI7x73+Pvutzv4jJ/TVE9RmF+B06DM5pTew3OJE5sRmxbM3DCiUUwt2SrzEk/qgqpyWdUs6PyAJ+62P8cMPv3WjlVOryAHjfsrBkAA8K1NKe4bAGwh1tEfWPVMMQHkMK2MOdwUQwKpCKy94PmvkNfgfkrwoz7kw8+/Csppg/0NuacaYkO95aWg9oyphJFE7yBQ3hpsMvIAZeMYCQIZrRX3NjgNSGOEW8tn+lxpUbiAJxSP7KwOpPLcjCKJN9CgEMBXUyem+f0c+bttlZ2UA4ugoKS4Lhbf+IhxTiqQRuSRhNssZoGl6JccTsbcHLyGfA2GEwWpGlNHuvmkNuwSoHBtAdcJcGs0UiDpZimnTloM/mZEhmj93cQ+TGRTw==","layer_level":1},{"id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"电商平台集成","description":"e-commerce-integration","prompt":"创建kami_backend电商平台集成的详细文档。重点说明如何通过integration包集成京东、天猫、Ctrip和沃尔玛等第三方电商平台的API。详细解释各电商平台客户端的实现机制,包括认证方式、API调用模式、错误处理策略和重试机制。提供具体的代码示例,展示如何调用各平台的充值、兑换、账户查询等核心功能。文档应包含各电商平台API的配置参数说明、请求/响应数据结构、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何选择特定的HTTP客户端配置、超时设置和连接池大小。提供常见集成问题的故障排除指南,如认证失败、接口限流、数据格式不匹配等解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","progress_status":"completed","dependent_files":"utility/integration/redeem/,utility/integration/originalJd/,utility/integration/tmall/,utility/integration/ctrip/,utility/integration/walmart/","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-11T17:28:30+08:00","raw_data":"WikiEncrypted:eeiDNSD57OEWfAciOcmA/WWLdtppDTPAYazqwHQI8gYrr96LHBAPdU1K0CNWQJGmBYN8Ly65QOd2X0afpX1xGU9DNB1t8K/iDMRSfwvA1pVT2os/zJkiA9KlsgbcuLoa3HZ3Vho4EypxozxwL5CZrY0ohr9Uz9mNi7BSVymdzC7AipdxoiuZukHeQAVPj//51uAIT93KbN2VcINKNQOHWC9bERRTU/IPP4O0TX+GcG3MFUTAEBVV7BWXBxFet4h1vIGgro1riiblS31vItDrFn+/yxwMI28z0GGl7UnTIJ83p3ZaustBmzdbcX4RrjD24T1sXoCU1pJd9I6FIwiXs5Rsvp+fyXZHfSDmKI5RBom7g0hyW0A1wKMF4XhRlRmV/Eoaw++WFan6rUuw7NoyblES9CidVbd+NKq2TnHg/puAmFS/RPnb8fBiJK3VcLbbAIwko+ZcILI/6vOb2tHVyh10hnwdkfUqV2SjbOvDsaKJmLa8RClsYhIfGalgM0dSG2KieS6nIu0MV0p/nbUvDgZt/DKtzQLiuMOtfrgFlf0IPa8EqyOOmkm51tKrtZLC+Mrg5yw7A3sxa9udjy87/8JK50o7FHGrRMBd3KgeCVRpF//vHBI3MjFu5oLYdngQou4aGZayI9tFyGh/dpXom9OUzxKNIeiiXeRyRi5cmJW181X7QTgKSzSf6XVT4WC7KL0sKOns00pJsOnUBBDF1QB7i/UatGiq4+7NFIG/frRFYs6eah0hm47dgfnMJF1O9uWQDDOjtlUihErLwj2Hu8QKb25padRc1s7aDTqBHMY1CUXj2nNCX6sP3JMHN5mvNwOnwJ1EB+V6ieiPhoObEv8DlOir2xYJ8zoPrMEza2DmeWIrLBJCkIXxFSLm3HcnoCWkk0MLgc+nh4T2kcpHRDTjLOw7qMPsiCmum7agdc1pVogeB9tZmjixjwa2SxY1KBcG8koNuczJJ/UYpZqgkIJZJ00AZm5kf1tNDYtFhAeCpnp68Qxn0J5NX6LIbKZsZqI2rRwSn0rlPRF4k55mVYEYQhtTbPgJCbfvwgWMO35tqwnfkkaPlFU3901Aegh9ITp29x1BoVxrtOmko9jfXL/kZoUpsjltC0dljOcYaGrqEKOd2MPncWZvnqMl1vTicAeqrpUVyh7lHyeVRROMTERd4Nhca8IybwA6CFav8C2mdUPrqhGPfjhUjQGpW/YIFbafKB7/R4RcGLIT5yhvt74GBwnmkQSabKGcyUKFmOcPfg7joCU/hrpbadRv1Q30+SMCGqNp3SRAw9XTIQfzDnHakGO6ynwhmwcFCFK5tLUrKBE+1YKglo1ZeekauOSNwofCSPYYM1c+wmqJ8ZbPIBPQr1qyK3erNtoENdVsDfg/X9uRg80ARWhF3eYZlfgR31IEWHvgib7F8A0V9UYMkNtNgtE/Ti0bwYx/LPMFB2g3v258a6RXp/5OgkgK5NA4rvX44KHo7FvOg7GhyhxEG/5gHy5HWqLhwuFeSqddDVDd6X7KJiD0QWXnE4cDxyyP+a83ChVcPeUK9gOvj3GR5v/dIdMoHqG+2Y+9Das9Rq7CgNYIBlvgWh5szvMGSiigNU0IIB240CcEthiH+aBB6A==","layer_level":1},{"id":"dfd2209f-82b2-4b3c-84b4-8fa7f91207e5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"配置管理","description":"config_management","prompt":"创建kami_backend配置管理的详细文档。深入分析manifest/config/config.yaml文件中的各项配置参数,包括数据库连接、Redis缓存、OpenTelemetry监控、第三方服务集成等配置项的具体含义和取值范围。解释不同环境(开发、测试、生产)下的配置差异和最佳实践。描述配置文件的加载机制和优先级。提供配置参数的验证方法和常见配置错误的排查指南。包含实际的配置示例和安全配置建议。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","progress_status":"completed","dependent_files":"manifest/config/config.yaml,hack/config.yaml","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:28:10+08:00","raw_data":"WikiEncrypted:aC5ZtUyEKPSxjzg//aVllBdOkNxBMxnGnLp2RLAVJ7xmBnEGgBX+Mwrm1aKR9Yfw9YgupCqzpiJ1vOAMLIumDoo0hEmndSovwR9ewFhwUm2+jy33bebRLGTcBVfCT0hl6K8y4mrs2DbU7BLgJ5bYsbaZ7u/W1k7Z3hUMv6Ap+addjOylxie0Wd/h9MAuuJ5DhaZCv91V4vUGh3QwBl0tY/uBMHgY+4DesQO1vIXHpEKsl4L6nKtG/oRnMzleCie5X4bCAugaQoOwEkJa7OeSWiseQb9x9UtaFxIWtRcMzwT8ZTHhIswx5dFQejKZ8MGUPpR69In1IYKUEgxxxg8VnFzNJtKZqWnHEyMIA0+AwJSEg33E3SPBbYYUuiaWYd69nnHjCWS9oKItfci8fuUM0H8LwgqD0oXJuavM8jxXZmYx4QhUqpI9P9L8FYxtnlhNrrR7YhvoPfPicE/YF21ZmdFJv8XyWGB/zQGVH7+PXPRHlWTy8pyMBtHlojwlnLTLzJeER7cWApDYyZF++eA/RUm0UK9ajKhqsz8DG9CeFtAG7SJb8oHHjJKEHmHH0FbwSQelN9g6e29mrJUlYoGs+hDeGdAq9VTC9vxaJRXTP+OwbA9Dk8bxlslPIO9LEDuofrw0jpthtTJOiJA76VUU+69Es4ezrj2SJRCt19lzub80YZ2q6aqPQ4/rdZNdvZZpwF/HSOONmB4B0y01Js7k4TgJzAt4IWFsPex3xRKVCEd+gBVBEsJMGcXYyL6NyJoCnn4YRYf6s3rlXZGWiw6Z5YV2x4th4UQkyk5DXk/A6gFCA4hzZLqDbiN1/LFMDTrvpvd3E0wMc5w5ZS0+Sw7UhouoBc7NGOQulWLLN2yMHHkvcNAooOxVdkG+pU+3nEtjlh+tZph0xwx3ZJpPrIm0wNDPRi8erpiMPsnXqpzRSakwEaxUqpuCV4lzjnNLTSBgxLkvQEedYYb/vpbn2+MsERe7VSvy91QoRvuDbrL9ZcZ2JMhQTuZoZtmunnFLWuJlUTddZCsY1jgyj5ZTY40Z4Q==","layer_level":1},{"id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密管理逻辑","description":"apple-card-logic","prompt":"创建Apple卡密管理业务逻辑的详细文档。深入阐述Apple卡密账户的创建、更新、删除和状态管理流程,包括账户信息、钱包余额、历史记录的管理。详细说明Apple卡密充值逻辑,涵盖充值提交、iTunes回调处理、充值历史记录、重复卡密处理、充值状态同步等核心功能。解释Apple卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户创建、充值处理的实现细节。记录Apple卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/account.go,internal/logic/card_apple_account/history.go,internal/logic/card_apple_account/status.go,internal/logic/card_apple_account/wallet.go,internal/service/card_apple_account.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:37:52+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoNzwaMeVTHTu/rGJRszUYK4GblvZyvqVED6wYf1zYH+sjjgavfkzdDpZX/iLMRhlT1XpbU08T5DcNZVvkdoFvwJ6/tteal0zHDJCrSCMrAbPsxqMSW3hCc7alG2OcMhRpTczsl2qchYBK+AtYkv2QeZ65irR51l47RDtevSCnPJkDMWPgHbHnGiKCliBonQJcBME992aQspXUAM0YNH5pw2s15QF+wFfzVDycltGbYenpmbf8UtSlvTidTZ5GexkYZudc3GzMlaW6466mg79Xe4csqslSGY+0LhjQJ+iehgfFI7KsrbESR0NyUGu47BSAdWVTUzFJdceVpbb4uXDq09vbineTVgRewLIp9mm/leT8+byfJ3+VLtk0Pnkzx8RqfLfPb05fMPfyanR75qcDpE+LGpoS3BOpBaOW3k1Qzu3RLIOc07VPABJSj5dMT9erlMryvH0X4Dw80UcFu+mpQf04ifL5dCitAkHBT8sKE5z6/v6tpLUnM+7OwAkMkur672cn9+aARy834jrdoklL/hXqel6EGEIRRcCwzvpT9DaxNECyf7l5y9FkZO+tX5ORO7eAt0KBS6YknKQj0qkDFhOu7nQzm4o1iSzHLDCLO8wgT23CsuKzpjD/w5jCwL/UZKV6V577luwhMCh729g6pMilL3w054dypJuU0/InDyPk0SMzOVRHjFSDWB4gIkP77t4J95AdU1yxAT2CX0SBkoaqXNBc92PgjZGOvU/DmDkmMgj36frOk3ZVoJ2yjrIeTOGKp0152OFJw6rtzTbm99NgSJIbnINxCFqs434RzLj6rwLqvzTnmvHHpdlj0slCfnJAz7jXbQH8+dJ/4OchkvJK2YOQQJAXoPFhixVBeuVlbydhfrCBbDQnBa5A1CYIN8VQTmtdHL56suCkxFC1EwxrRhyeYNdurFysRim7TchES/UKgKhDbIhA3WvfGL5izZ0VwJe+xFcelmLFw/wnk45UD6v+IMj6budI+dSOkHW053gM7HJy5MmoDWk/tMje92upS50Namhu6vmi+/xBZ2GZONGDqppMDcjtZXR8s5Am3Qb8Gp/hLJqvM+1vfzL1NYZlw6DrV5JzdTIpwLoZQYZGaCecjwXUeQUoEamSQoGKcSHtlPBY8+5cp3GhPQzUYDwu7Yn9IzU/y4j8uaXYe0w8nykbFmMrLdDJN0V2Wk/1PgXzHffqsUk7xGu17sSPPCNoa7aXDnapKF/Ko0SNuZT9TUc4Mtq6IFaDvxYHELbfqIBkTewQ+GpVRFoaOeJfrwQAUlH42ZIJzkKNVOPBHZmuEydcGCp4s8xGmyxRf63j7hjmHf+6i0vEaRAxDK3Ac4pcwHgN5ITRDeAxR0v1HTnGd9E23SmOCIWNms5UFCAq9emiqrAW20X5H90eOpg6v0YFyR3Wju1Nlg1BVcG3ipTzCrht+ZNszH+CPNqA6b/NiN/CaidQw8eWfx9FmOLq8h+cVxUVlps0rVHghs3y9LnzqIB8Ylvqe0ZY1pzH2/3CReDGvmULm9jEINUte5i5akwy9CGNt43RPieHwPS7a6xlO39Hg+Rwk3gzNG7eNZ3SozT65lxOkmYJP+85KOQFW9R6MZoJdE6+VMpBZTpcMtlEs4rrkYb5DVDPKxBIt8cCnYWYXAYvxhOIhIE29RV9DSgRkCVcyuLktesXDXRuoMf6xnE91EcmjeHg9mZduNU9HF4jGmiKoBh2MVO+85QFycflsoAFQnJgxiGYLSln34Kx8QeigkYKBjgZhGWdgWM","layer_level":2},{"id":"6810876b-78f1-4c9d-a2e4-a82d03615272","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制机制","description":"ip-restriction","prompt":"创建kami_backend IP限制机制的详细文档。深入阐述IP访问限制的实现原理,包括IP记录的存储结构、黑白名单管理机制和访问控制策略。详细说明IP限制规则的配置方法、查询接口和生效流程。解释IP记录的缓存机制和快速查询算法,以及如何优化大规模IP数据的查询性能。提供IP限制配置的最佳实践和常见使用场景示例,如防止恶意爬虫、限制异常登录等。包含IP限制与其他安全机制(如登录频率限制)的集成方式。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/consts/restriction.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:38:32+08:00","raw_data":"WikiEncrypted:6hVxnL7axMQmHgJLo0JNgWqWpJf6Px2W79mWMsxJ9TGAvR3rE3JrdX51+6StzcOfTkIVdbtImBko043YZPW2NpQGSrhOvIBZ27Yj1kGXfDgKwzSiZgD7IgUSEukesfljr6YXe1Q2MQmb4gz6SbybNWCkscoeZqQxw+/F5u7/ZqD+of8mjvclrK2HdQ0f7qpOqL6gTI4360e6ogzBd+A4GTk9+iM4/87yyUTRsPY5266M9J+7lCbw7h39nIMIrG3+vw3Qhwzfp7vBd0RN8vKyiYM6wTYnrlWjImpk6UBHVNT2EApndrmgKuy8PAvVdmxy2U5c+OwjKzRT6mFutG2qUBiDz7jnmVCz0RlG6ShEfxqMtOwDgTWnYHedxfbiSYb6HRA82NfphG42/U31qwKqWzObwwmMtaRX2HSMkUHDS0BPpycfGon8TXEg00M3I9MKsfRKCsGpHvT83YE1099/x3elNaqplDImzOvrspp1Ww3wwyy8by0mbsPJZWGdzekPsyt13nQBc7Vp8UaIGZBCqOGgDgBYBP75d1+2FCbN5u7Vomxc7rpbbL8EO1WPKhyWnj8v9zXDFYnbwAfCzJsG77bpTc/35U4TLTMVIKHyndtCnKFczkt3+3F+baIz82Rve8Y9SN1Pa6QT7/MvYMdf9yc1Yn2LwCr4mi1VLm6Y2xHkHuqmT3Lhpsv66jX+CUNH8OoyaIA6rdD/WaFaCXAGwq14E8+23QebCH7eIs95XPJpn/iY4E5uC15ksm40bpLVrkBfJKYwjpjqXBSRehPUkBhIra/vf0CE9JgWf5bjqVL5jDpIxN+7nv37IDi/IDo8C8ILpLkU1Q/EicEO3edXr/3sfH1RpSRX4GLKVUYSNFZDCHcKedYsdSxF+8yMxsHw/FmtnMpCkmFuZONUqjahCIUVMPR8GE8MvJ4UUF6u8nx6OSpniwGuOWSp7n2yR2k+n5D0vwb4dlQaVT+kyO5Fn774pNyseCf04jPpL+7Xj8ypbaG+QuX/wBnkZcGxMd82I3ROQ7LVV182CFYGiIla1Khzf+8jqmOM3VG0n/5W90+3ZsMEZws3NjYjeQ8my2PUYvXxgONF4K/jj+rn8F6oqYvLAs5EOwgajo3kq7DekF8QjvctYQ42G9S7HpYiCpd2DvkEwWHuX+QvE8xaCOklT9uhbJnKWIB5vkAIZS4JwdfTXzCN/y+6rRLPKlSgJTvdUw9j2jbYN73r9OYkgJnDvshWdFEMmuTeO6/CxAcAz8cpu87IzVJRhuWVacGl1p7tTUTO/t5JrfPYaR8QT5qzQg==","layer_level":2},{"id":"cae0b323-5cd0-47e9-a902-06ceae30545f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple订单处理","description":"apple-order-processing","prompt":"创建Apple卡密订单处理的详细文档。深入解析Apple卡密充值订单的创建、状态管理、回调处理和历史记录功能。详细说明订单与Apple账户的关联机制、充值金额验证流程以及iTunes回调处理逻辑。阐述订单状态机的转换规则,包括待处理、处理中、成功、失败等状态的触发条件。解释订单幂等性保证机制和事务管理策略。提供订单处理性能优化建议和常见问题解决方案,包括重复订单处理、回调验证失败等场景。","parent_id":"5ffd09f4-939b-4b8b-a254-494937471526","progress_status":"completed","dependent_files":"internal/logic/card_apple_order/callback.go,internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/status.go,internal/service/card_apple_order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_handler.go","gmt_create":"2025-10-08T18:18:55+08:00","gmt_modified":"2025-10-08T18:38:12+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoL9fTXxfO9Um+u6vywbuqNlVAJBbx45l1XJxh5AkoaMelVjKwL/Tj+bOrJfzH0FvH7yiW6YplByZy7TzEt6ow9CYvbYT90NuRLJkRjSCugg6/dx9+rLZH4VKOao3RXIucOtBz7EEcNYIwVNFOS1GHEfs0ENNKNwr8pOYRxwxRyv/LZi0/nOwttovh7UJtj1aAoNbxGzLdk4o1Obw1qv0xiRbdPf4tmEMs+6in1MbhK20W6G5iG9KS+K82ZmhTOvQbR6yepLzGCxTNuRnL9QHUF4QjqpdQNDaDB8mruCNRHJIjeEoEqg+dd+c3Q5j3F5UmI8FTiV5DlaAG1HtSljleUgzo6I2zLaT2VNqWpoRki7b3U8mKqqdOUBodU72l0jUUDngrpYRcT5nzOV6E/7lkDlGCS+DVCqHTz7GB0tKmxi7TAEX2c2XB4T5i4pKe2QgRmEYNkZ0aschiY+kJMxr0/BdNuf059DTFuINcsvhV/06GfXnSa7xklhb48u2U1nBJ+9pQz70XKoA2kEsBB6/lHay5FWj/n+85QTtGQN+jIyBC3H+3ov0qj3dlU2HRucRhWGP2rLi3R10uwIdfOHIcIQqs8qSzTq2+nsQ18r0ku0YMh4vc0lu6IUHgzo/tNAhxgVxZ61M2MZixEtQA9Yg6b6YzRsnDM/E+LHrfcGl0cfn0PqMqR7mcFceNiSrkAa1D8yAry4GYZwKsvvqsamgswj51TbYXsMARaVOYlxndMVjpDIE0R/TWXh3Pv3nGygHbvoP1xDsOuuzEjJ3E/sILuEt2hxs9nO+5RLaweL9K6EVVDdI+PofLell3Zxfc2mjhHBJFLgJhaoI2G+h1u96pR3e3f6NlMrq7G/sLb9AVmODF3Ys/OPBj1Tk1DuwjkRhYqTsmp6I1t76xgggXWykt9Pu571SHlU4Jr3K2f4JD35/bG2UEin9h26K3zVkdUJEQgZCyrJ7CKXiUH+5LaoZ8q0JtTcBrS9HrWwqD2NVrcV80cjQqZ7PrmVzYYU6ft1YrVpcA+fae6YM23PQinDmGUQOG+8/vOqe+Ejozo/QecvLkXBb6J1KzI9x6ycG+PQL/21DaSugH0BRwh/S1pQxiETPLm7dSg8iL5NTU0Y/A0f1+tZU3N677N0TgaHCL9LvDn3wU+CMnvH83k5MyDjIK1KGjn03ywuWIFmcEG3yevlXVvlOkFmOV8QPfc2yPL9ffds6eQ3d7kQ/XrScyX7Px5kL8Y2b1YxqjTVpKPGwDPIRqHEAuSj/C0WNNjCy/bSpoC4426OwW9FhyXbKOl8Ig5QZF0uUPLaFCC5k9xM0Be7fOzhh1dCFwyiqpPEmmSgIrEFOp37tQbtOf5U6FlPjQtduifVeLTBkhQCoqHZSJ9l9I+vBxhEnk8AfNH9L1B4ekpTRpg/rGu8tLjj1fPpCAS2MkpkiPDAUvmsGuvNfSTyI","layer_level":2},{"id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限规则管理","description":"permission-management","prompt":"创建kami_backend权限规则管理的详细文档。深入阐述基于Casbin的RBAC权限控制系统的实现机制,包括角色、权限规则和菜单权限的管理流程。详细说明权限策略的定义、存储和查询方式,以及权限验证中间件的工作原理。提供权限配置的最佳实践,包括角色创建、权限分配和策略更新的具体实现。解释权限继承、权限检查和权限缓存的实现细节。包含安全审计建议和常见权限问题的解决方案。","parent_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","progress_status":"completed","dependent_files":"internal/logic/sys_auth/sysAuth.go,internal/service/sys_auth.go,internal/service/sys_casbin.go,internal/controller/sys_auth_rule/,internal/logic/sys_auth_rule/","gmt_create":"2025-10-08T18:19:01+08:00","gmt_modified":"2025-10-08T18:39:14+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoPZUVARRVnTw525aYFrCIqbEG6QBOjm5e3du5Qm/SOW7RO+umAfB9TSxOT9xkUJQdGFxAzVCFKV/dT+oxnPEIxudZIt7DFP/TqJj390wLSA3TU2jx56lHjMkFbxTB3b+YK2bsUYaxXxgyUYsg0aL1elmmAc05EfOHqD1LjDiv13jT+xsx4f9XrUL+TR6CsMPuCNe3QcVr5JgPY44b59kqygg/oDcazxYTXYcd1fDW1grWYSfWQkLco+lGdxj9phlDjgdV20doL4YrYRQFa2G5te/KDzwIbj7q3oIkGXE1kGQtGuZBMigB6q9X9XZ7RkrZQ8eu73QLCJ3QmHLqxuKGFjQd+/jFHdJ3UBPXhoQNxoLN4ZbS4mmZ3Y27p7n6dKJSJsiJs9ldkimugCR57btqjTDl2LgOQfyimee1zAkEWL7DQt739PUBao/q60R56DC+CFFnpz0YNyMQGoCirk6Ldt5A2ciMtpjGnnAUpfBU4TJd5q5u7Kjw5Feyc9KJvUrJmVNaYX3Ri9BfKEFww59fX9z0V517QOQlX3Ejk1ENOIKIJfp85SAN5orKGmHPhCsG96FgTckuXKW1w+z2ec4H5P5XQ5aR24pC2OGEJVEx7KdQO/Et9qwNo5+cQwLsKfgPgOccuSZZrJVwB5OsTAKmyzkamBgYkOxPxPJvhk4t4knW12lEbYdH98p10a5fiS60NuW+9XH2cw1psC2W5wmFKEXk8j+sHuDcC8FYoR/COQh+COy7rycQMmFWhV+sls04kut4EjUgjEciFqTE0I++4nmaqnqOJydK+FtdNQA+d5v0Y6867bjo06EJ3urA4nkmu5acphb81F4LldYqZIc7UogJerTmW7eN5sAC9jPFef+vs6OW9CmlCueUyNsFUy+lMIvKOIFFBUPSmHYTx9+cPGCBmUCpPMeS6/oF2CCnrbWlKh5NlSjVQILLtN25oqUUrdNrYuvXSPyCjtL420Sw/qQDiLAMvVskbgfv0Ntj7TuZEJ/7YYZt384EyDG4fuI3rdwwnnFQF1yoM8GNBiIUNIx9ohlrWW485KoP9GQL4UmudRw115B3ivAT024y0njHuYfIm9e9wXCq2AxLqge0ThrUeIu2ywFZ1kfogcSe4VtOwBYBXJY2hvGZ7osk39uhBziC7u/OeFFhIE5xy71Qe5Iyx0g1DW/hsgkmrGcMXmSAWhj2lfDxSEu+1InuZsoU5locomPjLn7k5KZyY0oIIb41X/A4XstXmP3zV7Y5gw/QrLpqqIaDcieSsC/8+KSdo8KjrcxT9AryccbHznB4MfzLBQFfQ5xIFXUUAu+unDW","layer_level":2},{"id":"cc12ac77-8ff2-43e0-b014-8cbffbaa022d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"菜单管理API","description":"api-auth-menu","prompt":"创建菜单管理API的详细文档,涵盖菜单的增删改查操作。详细说明创建菜单、更新菜单、删除菜单和获取菜单列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括请求参数、请求体结构和响应数据格式。解释菜单权限在RBAC模型中的作用,以及如何通过菜单控制用户界面访问权限。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","progress_status":"completed","dependent_files":"api/authority/v1/menu.go,internal/controller/authority/authority_v1_menu_create.go,internal/controller/authority/authority_v1_menu_update.go,internal/controller/authority/authority_v1_menu_delete.go,internal/controller/authority/authority_v1_menu_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:39:22+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L608NUXTqXtsly/V+7mrgNl4fXCVjsk9UflvLgGY7iZccAEBf/aM1MapiSKTXNs/zbzpx9CVSpDtL4kRyFP/nB0eNSxL+5bcbTM2i5VPD7Scw4QcOQ+DBsAcp2x8iVBNdbrPqHKZSPj0k9Zm7unBJR93y24WMhZXw6Foh9dJT3F6boHwV1r7mRIVCWk/OmfPLAm8RogxmVlERIpk4K4ryYbQH2zY1b5BpwKQGGJfTOsRzhwHLDZBQ3x1yFrFuDaWYh4XcU70HlgKB6rCbainrA4NI1Nu/AsBeLo4yrvUg++xR/z42ATRrt7hOc5XCo7ItIxWLXk5qX4w0o8i5zVUduNgI/mov9HkvFA0pQfEJITFxRnikDzvlfxqSs51OenVMe1LOT4w5vu5sSQavinT02sHlojgrtLQJaV9TH70JJIedo92erwFuQGWpbb3lUiNMlD3KddW2mEBuE4V1HL4+4LK1LwSIcMdfRWskGyLEiLa4FpdKpUDOx542or+Hnn5hQFat1UgD5iry3xuc5zyBxNF5IfNToDMormpHTcOtJS0+xb0E7R8kq/AOSGwMYqzMy5/OTLBS9OM/4ajQjDw37CdyC+RaIrV9i4qPudBA+6/y+C2igHgjJq7DSPZV0Ne6Mjfhmn3MYfwREBffLwgWO2UjRAlRp3+AxndaIiSp926ALrj2jT+CI3ruhXVAFeRXgIFSTM8R1DqzHbjmEJun/Wdkl1H7g/DPMUYJZZkCwJ8T3EjVZKmwpnw/dGc1E37pCnRe4sUPASdAvpzld5qzArnNgN0kg3BKgrzPCy5OXc6/WGnOKmey4/KqpQ5XlzdaMWOGmGgnHLSk/RUYtC1SP1hxphvb5yWu08wYUJ6HcfkeU7bFW8tauF5XeJvfCEW8TWYQzn+badk1AYqDl5se69K696bKzt8CMrRzlPGo/4k4XDDItQuzNMN1ORffURgjY+zzFNaWsc740n2KxmDPnMx7lZz4fgMgT4VEFr8I3TrbKyspdnRS/Ua0nOeqQYkPqYX4cflqgTp2kRcT31GO3GVsQtjIBGtyngYq9r4J83pWUgBjyKmAxPYreAv7QpylmIfl1JS+eLtNQ5Y7rSoX08osbb+2lLxiF9DuMOmJ4J6db9bZE74ODUfD+km4SO2lTb0dK4lNALbsoB7Ak0nLbv3t0cSUIOV8GoPcCF+ccK007O5iVRWdR1sVJqega2Wm/P8v3ATgBIezWvlcgCuuigRzF07Hglbp4gWbXoJUWe8J18olmRvBE61PQbmXGl4d1P2hz+sdtcVZDVSOOHlzToNVsDZ+wYQ5MRZlsxowtpQBPNxp2KZ/JqAbOXZqBFjZV1ilFGxIceEX65E/dBAQCR8=","layer_level":2},{"id":"071ef93d-b914-433a-b69c-a4ec42c36381","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单表单管理","description":"api-order-form","prompt":"创建订单表单管理API的详细文档,涵盖订单创建、更新、查询和删除等操作。详细说明POST /api/v1/order/form/create、PUT /api/v1/order/form/update、GET /api/v1/order/form/list和DELETE /api/v1/order/form/delete等端点的HTTP方法、请求参数、响应格式和认证机制。文档应包括订单表单的数据结构定义、字段验证规则、业务逻辑约束和状态转换规则。提供实际使用示例,展示如何通过API创建和管理订单表单,包括成功和失败场景的处理。解释订单表单与订单日志、订单汇总之间的关系,以及在订单生命周期中的作用。提供错误处理策略、安全考虑和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","progress_status":"completed","dependent_files":"api/order/v1/form.go,internal/controller/order/order_v1_order_form_create.go,internal/controller/order/order_v1_order_form_update.go,internal/controller/order/order_v1_order_form_list.go,internal/controller/order/order_v1_order_form_delete.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:39:17+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDKeQ1ofxi7BpK4t1qblkOmeHP5ICQmtKx25CPhfRyI6JBsxUD0cDPTYePaevb5jRJ4N5UfH52R/A0sCoeHgOffI/Z2bCUnX8HfPni76+JvZ/5KiEMF1BtsucVmvnNrZKG/vXeChD7yIQ/Hynx08nWaix6LoUNDGCNtoC7Rvcq5pwBvmvijbB/9dvXWAZCeFb8Zgsh4yS7eXAvzcCJ5kO9KlEIK1mhTS1QbKrJSnnGF07DnKNP9o44QFrJabu6m7z20nwoBIDlsOYN5bnOIonGMyvnhu4o7c6GaQ9SXfZl02ppfoNmPkB5cSaFVL/gT4uF3P3XgrBxqQCng5uzkw9XsWiQgcyHG7uTOnIojcNVTxrEvt9TPvYxEh6F1vSsPpcyiJrfUBKObZ+zdhrA0TTTmd2dtYbNiZ9eg9eNkQbMpa3XgW7WJ2NeBn8xfwpYJnMpByua+fvAFz5wFGUr2+ppDZMWfo7K/+rf7Eb4vDWzdRM2C905l9WJcyVUCkBDRPvNLt//IJf1k1+IjoFeep3o0OH1ElX4hPdp1i8ioU9H4KpWV24bkd6yUFrPGtFZ0b23WjrmH5fA+FVZVzBaV144BT25wE5k4Jfz0nEHDq5GhHw7uT5brs7J70OV+v3fwspfsS/Zn4nB78JFGQOWSi2oDYb6DYJ1X8PRg6nY98WDaXSBTBrk9hUdEn+2KovS0bWZ+HAB0zEK4A3etAUTqne6EGvhXvFiXydju3sCL3OWPTP5udHh6/+DoQxZRtmmbKrPOtfYLLr0kWB+3UD98nG1gi+wu2wMcZPTbafai8kRxOOdMr6zucXJ84ZmHOjecLFMQB1WVRbM1B3jqP3lIcbVYEUpKCVXORnxy4Z0QV6/CeVV3NN5Vk8/TVtXtU/34Z8fLJ8qBu28N/14F/fyGhNV3BSWCXnquZ1IbrRG0fjWzt+02vsa5kN+HI/a9PPqmccUWAfNrJwKdLw1IQrVCIShp/nU/VGFMZQ3yn9yYioS3W+2Nvl3VT06cfIFBEtotJNDZ7ZUZXyr8RATD97frEqc4Y3kxYXLgunvq3o07n2n1OAOb/SIJrdVOdDoP1aFbDb2F/62u0bDND+KP0Ck+T5utpVO6bafk1XckldVoWH3cn9/mXEe2huF4bk+HxPhAdawxi9xH6oLO1EI0gFoLqnLi37c4a6pUs68fciZtR71WPU/dlwhLOd3ix589lgp9vk+tMoijKY8QiAdFLArqL2queZabhWTfmz0FaDJaoReG/RwKphYYsYV1JopUf+LM/Zp8p7DqptZ+Rz/tt6LCV9DQi33goXexrkNjFpAP3XQlgdozNaqWiFvLcf+7ulDXaXa8n7kH0gZrBNCBVJ3sw2C/0ACuvN9ZARnGEJqrpkYD5egpAPB6t+Em5yekNgxAnU2O9e6UT4loHNgE804ky4vA22ysES5j8aqp4BrAh/6u6/x8lE525ri0j3A91C5mwWkYd81t/pOF4o+0YAoBKN0LG5y+/Hi3dIqa0L/erx254GlfIckX3kcIHw3x2mpqvSiGQfghtS4Jgi09lIhF9heuUa01Esc0oxypx1SvuJa/9UZaCflaxLJhrHefnDrzln4Dklv/WOYxn9kCcvpGu+OhHstudVrTU3EnZZrtGfHso3TN10ucyBC1zHgyo121lQjg==","layer_level":2},{"id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密管理API","description":"api-card-info-apple","prompt":"创建Apple卡密管理API的详细文档,涵盖账户管理、充值处理、订单回调等接口。详细说明账户创建、状态管理、充值提交、历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量导入卡密、充值状态查询、重复卡密处理等场景。解释Apple卡密特有的iTunes回调机制和防刷单规则,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注Apple平台的特殊要求和限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","progress_status":"completed","dependent_files":"api/card_info_apple/v1/account_info.go,api/card_info_apple/v1/order.go,api/card_info_apple/v1/config.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_callback.go,internal/logic/card_apple_account/account.go,internal/logic/card_apple_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:41:41+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBn7TEZqfgCsLA703mVGMZArD3ybeGVU9mamcCr0oAS6JoQI7AUsc5kkDVupPir3EyB0ASCWYKnCf1ywH8t5TiWXMOBEd2IXYke6xZIuMmkfI4vQ8pmtl6ZGzsEW+v8ATGdgc/gC3dxkOgZfYL6i3bx5NnZFHluGgQQq+VPTVQLx/gNtmTw8QGU3n/7XhmqQtUhi4VDDzZwONwskeuDx7RVD1h5iepp0jdpixdWIwY/lXlDCPaH0x1lRdgUIk9ujJuZXn9N61WiU0ivAduNinSq8AqHNQ0DrV1Fggqy2kJ543LiR3eU9ditGTLgtpUd2WnA+SMPDbtGFXA7plzUkubPHUayfbLtiF9SaLCjeeQzLLxXaCZFDjbhJP3rEKfUvSfveLTP8MZbpXUiaOwo0iBBAunWuR67P4xi3HyGaj6Wc7Rbpjo5r80O4u4OyiEZ4l9JRg1TBGkLaaSDr/C7TOndwfVJUE8KK2WgQTY6HpJR1RjQas+5wJ6MSkXgBW6xLVoYx/NcBQpDjW7cl8eAlmjThgTVP5RbmLb5HduIypeeuzocGiH4QqnegPVM1giGUeGy58Cb7ODGKt3PTp1wYeiL0SQtwU/JYbXD/S6cUgIhmHxr2kS2FrG1uvfJBjNXcHpCTSknFdohWl/an9YEyvLFgTQVAnFyqcrRVB0lr3kWnyMy2vCNEsY0pGa/Gu009rPvzfEeQbo4m0Hm4ekIL1gjxe/mkewU5ZJXWuDLGiNFlD3I6ouGP4HaSy149sY5nvQFx7J2V2eQ1tV1JxK8gyshzOmvH8Ip9wtihX7hUWzIvF0kaEZ0n3xn55iRl89Vd/Z1kH15/3fgrTtqp4BF4xxly1/pYOQvurwZCRYsQq7Piupu/LXEM5kCzUmnccmTgF5Lnho/8rmOW1yZxvUsftjUd09bZY+MYqkEXmFOybIKyhkzB1vY02SVb3/3aF2kADPdqeVT6MbzSI9TX64uA+obPM0ERfdnXHOzw7lrRirpf0LqxnFGo7NLUx4y+iNe+g0In3o+teUHrkwmPnHfI2iwWJaqL+btH9vtcoiJWbN2oGBK1Ykf6h/cMumzlt6PYMf0LO/PNTm5DN8QwloR4FVz2qKHpBQPDu71WA3+8pjnuUcQEcDyCcWfK4z/OEC5ma1t3IE5oseRPRZhwdawXv+NMniOpXnTs2XOPjCrHiGzQ4PSlZTnKnpU0DOnAGPq95KbuoxdtrQKN7Ba+NcdmGcsmbRo99VpueYJ3lKEi3RhvnFksot6i4ysbd1l4lGJiuM48OCXuTChlxsOT7o/hXc+KIvfqwmEORUZrG0SWAOg+ayZ51XbYJgRHGxQK4ccueaog5sku+qfoJ+79mEeRIEzhu+bqmBpEm+SdnYlS8i1snB5K66BnrTTkxQsbnzJ8MkRrQW/VrMGN4f9PrtRsUvXacr374SH8Rx031NkQ3V0fj8cpfed0Iz6BtwsDkLfEUNUtgnKLw7FMQ89wJuK8CMq2sp4hGMNTf74OEae+4Hw3BfIbWNXwtxpAsoTZ/iOtstJPqEC2jvsjDSUm7tc3qp5qoZki4dqnVm4XhW9HzQ2uUd9sgf9x/5wRA+QwWAVu4CbxLtI88+J3tf7PSfJLaEZ6ydbvJfyVwgd9vWt9gEmXMeJG3CIwOtIQBoKIHS6cLMw==","layer_level":2},{"id":"8d814eba-e2eb-46c2-a59f-00ad5b8d5de2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户配置管理","description":"api-merchant-config","prompt":"创建商户配置管理API的详细文档。详细说明商户配置的增删改查接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖商户配置的创建(merchant_v1_merchant_config_add)、查询列表(merchant_v1_merchant_config_list)、更新(merchant_v1_merchant_config_update)、状态管理(merchant_v1_merchant_config_status)和详情获取(merchant_v1_merchant_config_detail)等端点。提供实际使用示例,展示如何通过API进行商户配置操作。解释配置数据的结构和字段含义,包括商户名称、支付方式、费率等关键配置项。说明权限控制机制,确保只有授权用户可以修改商户配置。包含错误处理策略,如配置冲突、参数验证失败等情况的响应码和错误信息。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","progress_status":"completed","dependent_files":"api/merchant/v1/config.go,internal/controller/merchant/merchant_v1_merchant_config_add.go,internal/controller/merchant/merchant_v1_merchant_config_list.go,internal/controller/merchant/merchant_v1_merchant_config_update.go,internal/controller/merchant/merchant_v1_merchant_config_status.go,internal/controller/merchant/merchant_v1_merchant_config_detail.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:40:25+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPyUjsvllLhwi+whN+Y9/3c+n/MVnEm0gAKHUg16cqvzionAovu8HBvB65t8ZUZvp9GL6L6zCIgNolbfADOkYlFi0gLvCLW5GthKYW2OyFJkv+Wiy7IiIM5FBogfrnd8MPC3qDKEc9BRAwUrXXQ4eg1xLyTqeZAjcseBpq5uxnn2YnSKlLmr/9TYRbRLpfhCVmx2v3bsvpmzS3l88cNrXihzeGgZAe0u0XMjJg23lUNRQUAPGQpmFzpr8YNcCmmwQXEegXQa5wn7x+1fqAaOCWNv6QR8KK7YqeaJiH+4ZFQSJUSRQKLHI4+f2fywPi1r9vL+zbfXVGb+JmeOYkYPMpk3JWw53qKeDKJu9BcFspV5hdyjO/RKu/pxkh98zrCD17B0yDQ/8nTkrY7MLN6/uTk9WTegMCcYSzUTAMB54bITpM4PEPkHuGqH5+zi/3DuNETFmz92DlGFLDTa9yb7d9ygFUdnwO4fxsxCFX3RTRv2WCGmeu1cKMPbP9Z3C16Tnds/NEMqOcQJ5+uNcMoAqUFM37FJxbKS56qe+HdN41oTCVMPDe/koxk93uew2qTfbhMQcrbB22hbLuhZiZL/Nz/JGozyLuJFVgazwKbyS9tegQtAdeAAiH6YRqBzRGq12UGPKk/wA7XRe6NArMYtQndqbs3e9utAzpj06PYElnikFszLfsPv+6S8TDavLjizN0MG8kAv8DXbmq0lW8aVpaFOMDwwIak3/SNffLEjn2aHURX8fkWDAQYr9GL2IQhgcR5xIqajU/6TRHu0HMQXHyufxJDIV8KNXziRgb4mOM4oKoOuo6rYg82rziDkeuLkZpOUAae3n+UOyMEAxJxAb7hUcddACeoukrdVCs52zciHdLr2KOCzF5PrVTTbJ2JDqYi9CZPcpA5yiBLOf0nqTU06YPZRv0G3UPLNiPcG4fEMhRlXjKSbLwXpiqcwGwaEH+lwST8np1svFMozhb6kfLqrQs3JsP08vqL6396nqX/+UFLg5J18pGPa3n5RbTmDLLzHrA5gNAhKzgJvjVCCC5z+uzOZTraeJi8Ya/toYfXIoKBKk0tAtx6UObQLivccbjURb+Mb7HpUVsxXrVw8+wbRwbSXudsT9jkak1wV1p5sAtiGhwT8qmMwNWrDAlp9Q8Deyl5cFpDl3+VwUGP+q2hnetVvVV4l5wPQVkew6qaLYIiq5+jHZ9wP3Ew6VfNIgXpTNbZkaRF2jwXkq9lBrp+u1Wx81GKLGVHe1ZMutCqRNoNEQePJOMWKYJwH5AaLJ1DfcZK+ODkaAACpGGGSOrG5tnLhahBZ94j+xZ7Ozp81lpw/7giOl6dXVjNuFBXb0GKEa0rhK8dV5bYa6h9pqNe626ZbtT0JR6XBPMYDTNOnHZC7qJwZ0q3Tyexl8uCCRgqFpmkI24FPT8ZMBoO4Uo/EXuzWkOCulRgQVQmDJT3UByD0YG2N71EX3kWCB6aTa9CArXptCKvrzECHqM9vKq1kpiulPz26R009tvbu/pyigkeU9T/h2lZJbH6wrdzI1umscSVrgehz4nXP+6UwSCHWPg/b2T/GtznN3JaRqcekDMb1AnnOWzcTqHOSkGiaS/fRyrTcZxaZsMhlnvVmiwlYv+Jx65gvRdpmd+rMAun6AVE8b6fnwu6FHtjEuJ6J/9vhGrxnhGieWSehYq61C7kjT6Ld5BKHNNVU36Oc68Bm8sNfWCSpVfq4jvEpEsPMUtkEkK5DUC39Ncdi7mGAReSEbJGLScqHDn81+03RdC7BgqYBJ1QLV6HB0oqonigLRLtTMZIlgIhateavfY1ZB9hDQji3mD2BcbDfAHUNte8iMkOPPt58lODAeor2Nuku3tXw==","layer_level":2},{"id":"162500a5-7167-4984-9744-2802fb00bd08","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"钱包管理","description":"api-fund-wallet","prompt":"创建钱包管理API的详细文档,涵盖钱包的创建、更新、查询和删除等操作。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括钱包余额管理、状态控制和权限验证等接口,提供实际使用示例、错误处理策略和安全考虑。解释钱包管理的实现细节,包括余额计算逻辑、事务处理机制和并发控制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","progress_status":"completed","dependent_files":"api/fund/v1/wallet.go,internal/controller/fund/fund_v1_wallet_create.go,internal/controller/fund/fund_v1_wallet_update.go,internal/controller/fund/fund_v1_wallet_list.go,internal/controller/fund/fund_v1_wallet_delete.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:40:13+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdanSkYpF//vxeQ9sn3ZD2PSyqLrfcO12FxqvLFH7clPHKW5YbGibCYaowMn6lbHZzM2+D/+NQ8EbPTwbM2ItDeyWUppEH7xgv3AiH9Krc9f1tqqg/yEF2noAjpujnYGl/yc39DfocKeu4byCrycqWZtsKn7z8BfZWXm3BD5g+RuIDLJ7BrdFO3Lz0d4Qhb2UkZL2yJUgQQm+HpJBhHU4Bmcbg6XT7s6tR3ET0S79uQO79Eq+SseXl02Wjd5m4p++/UduQxW+uK+z90QWkNkcFX9+8cePFOiyvGnukbAut/1ISM30v/p/lHnF/fIsFm5+ZUCgwcnq6sUv/yZlN9vCPkhwP1v2gy2BhiVMLGyrMQj3KsbOGKJCuZuz9JvheVxe69JXkYwMpRWHy8ffEvlGLRyUmflEPC36DEc2rHEFh1ROikU98jAMdCcJuoWGB5pm8IIWKHpLJpqGbo7S6BcK3DFk9e7onzo41kTNHIWwuBeKs8Rj+dCteOq+qceIxmpeFxpJD5EBwPZAy0eMsh7VVXW6OKHkzsvp0xNzC9pXZS3T81NxuB0ltRpTB/PoJz9lutQ+jcoVHAVnRMNihCMf8drxVHu52P9371cIB7Wgj74vzYuthQxTQhZmEquJx+tv4qj+AUz2RdORnaTbixlnW/1B8783+OdO+dK3NTDjIC/NvN2iSh3tk5Ti7enHir2YmUDZLkpDGMAkEtCnlawu1IOej8Py4J/2iK2WSVraS8OGJzGrqye4GN+6veQo/wHHC0ls5H4dlBnFtQXkJReTDtQWyohRywpYK+nIDNtor3AS4ApdK92Nvud/ZeZ6ketkMnxbB6NEFQo/cwE2uk2OYUOw06tjYaq/5v7/hYJk6KcUqvbpjGE1xvCvans71HuUtWQEdCmNHOYfapQ3L3Zw+i7jp5FS4/2d0CUhKYxE45RYDXn76YmXAT3TWFq/vVB3H0PTmGTPzSdbZgTnpmkE8zlJgiaa28zUEve8vSj4LIlGRB5HqxAnURcdAL07y8JDXJkVU4+Ii0w3VRO9nR3G8fpBDRKLbtUR/wJVumFHBKPsIrMATgUK/0umDVUJhWA4A/y1Ks3Bi8rbfU1x5aQB/3mkqp3ZEIb7OAUvA6D5JksuqsTwNp/TDXAOV2h3aaQABECpmAMxmqSsVRsBZFL9xzR5J0W1zmlSDm3X9+9dYckFsOrKMC181gx1iGjKSninZZjLEbgIciVnmdcOPH1j+e41YfRLXnkGc7v8lRoUsNbZCp1SueQKES4eEXRc3Z7ByBGWSDIY49n5W7ASOensJsE=","layer_level":2},{"id":"bb872064-72df-45eb-ab34-4003a0fe8e62","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制API","description":"api-restriction-ip","prompt":"创建IP限制API的详细文档,重点描述IP访问控制功能。详细说明restraint_v1_check_ip_allowed端点的HTTP方法、URL模式、请求参数和响应结构,包括认证机制和权限控制。提供实际代码示例展示如何检查IP是否被允许访问系统,解释IP黑名单/白名单的实现机制。文档应涵盖IP匹配算法、缓存策略(如Redis缓存IP状态)、性能优化方案和错误处理策略。说明该功能与其他风控组件的集成关系,提供客户端调用示例和常见问题解决方案。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","progress_status":"completed","dependent_files":"api/restriction/v1/collection.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:41:29+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg9UgvWUQwsNKohKsInf5hSs0QQfDn2veT4X+kRCmlL8V7Pq4z7dhmmPz1VcC+RU2Qf7Fnc9kRUMA5sZH2EG69D6PojpUGyAFozLrrMGPL4e7QVaF+PBD1M5l0d7XTmfQnOiPxZyOiSH/wKOSfnTn1RtDReXqbnwGJZWe8EKWbTrMWS7cwn11oOcdQPBrjFO4aveFCFRDyklv80p/CDPEsUtQUocJ8WY6AIqmB8RkosQemHvb6jmoDYTQV6VYYiXtbw486CzKDfatNuMU/Woe2sp78Bhdi+40HqSeohFwnEaTpOmByLU78A89tk/zqDyLN3kVt5AmUX2hGwri6AzzbRbj2DQXG9SNcjpra2J8QQgp8lp+4KJqjQiKeifKyRO1VzaszauCuZQW2Gbq/o/Jw0/7tdDCRpOSbUsaKgNEFKz9MrmhuwIu0hYM5JZIHZ8RzXyOStuolXALCpxMKwfT+OG3QA1OjzrD7pN1K5RtBfyHP+L43u6j4oi0CSv2lwnAtntFYrunnZr5B4l59wIBfLoN0swodz+gpArcDimzwrGT7SxLxA83Ijn8577jyI+VvSMplyH2+X/pGUYfK/jrYAuRDpuFEshvwlEAatbMm3hFmcdA1KLVg99qPEmzBGxGfzK1HWiGhanPJy8LAfqab5m/m5tk2JidZQIC7LXJegWDhatyzlxXmbzmWQ43U+TMpWsw5ul9sN8hEizZnvEZwxZTBFbRhlvIT5WUNILc80Y1XLcq29DmmQMtiuL/pbI1VP92gPW24t8zwuBmx8SV8ohNv4xrdYWkxreJ4hHa9VrCS5l2c67bPkuUocN/HtWEQtN5RFaQVITEps9MKJwQxclSl3LobGjmC46snYtG5sfFiglxxdNuLjgVz2MByxzX/OWXTZryfkJlJLA6kCvsrbLoIiq6gC4ajqsjBL8j8UCWGzzOjkkpdeXmfA3nLfMUhym8Uz60JfjHAc/y0apBiN9iUqIZCopKb823J9GeDx+YSnwZquVQhUVaxV0MJrBCE5/dNNgT+Yl5QI6AcJQi4ZKiu+Cvx8mInSdnZJvbChNYe04+73yQIMw7x0iqFMEqxKQSuXxfslbn/cNYoGfAUpv4xAvw6BbUOoqtWe2CrXg6nYp36yXVG3aFtfIazxPDGQ==","layer_level":2},{"id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Dockerfile详解","description":"dockerfile","prompt":"创建kami_backend的Dockerfile详细文档。逐层解析Dockerfile中的构建指令,包括多阶段构建策略、基础镜像选择(golang:alpine)、依赖安装、代码编译、最终镜像构建等。详细说明每个指令的作用和最佳实践,如WORKDIR设置、环境变量配置、端口暴露等。解释如何通过.dockerignore文件优化构建过程。提供Dockerfile安全加固建议,包括最小化镜像、非root用户运行、漏洞扫描等。包含性能优化技巧,如层缓存利用、依赖预下载等。","parent_id":"3c6ca985-3423-453c-9f11-d9030f798abe","progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:19:36+08:00","gmt_modified":"2025-10-08T18:41:44+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kCSkV9pkP4w42aezSpM8tSnz9DM8PXCI3plj22r54nyHKillw//OdJftbMVj1iHO7i3EACtEoQsA71iwCJ5DlnOvTxQjZAf4O7v713BlkcrCcnWhGA+8tG/wMGITGEvZUu6BRwqZhUXr9xxPIbRR3jEc5tarJ4sMs86NWoRvprRsZhmvuAmFTGimqQ7Na/92ZYiHHNAkQGH886Q+g6gmd5o00jhdtxSGHkOMb2NYcrDYYaoREGCEeyMD9y8wqQVgR4FXlLFSSQuCnNePrDkxqTFT2Mu1NaAmZI+ruDl4TBJBZdcd+jKMaAZt/44HA0t1/8if902Z+o4jMReQfwh0jYxpkJJJi+44WtAVk/xX/Ou6dfzD1O/CC7zgfrJH4eQHVnLNMy6PHSg07dueN5p9KQeG27NEWOTFua4VeWM85/I/n13D4iFgzR0Wra08nfNSpks+F5Vl6gBVUjmxqLbdhHI6Jn/LkX1PD6NbvTakGv0KIqdtqy7uhgJIG1bUIc9q9g6v/nzeh0/j6iI18pSOji3l2W+8XfiF5hcdbG36JaNdfSWreg0ucQn37Dwj6ykOvvxvo982hkKcsIHcRDIYaukC+SGHbChag4WlrTmFEdqliI4bUzqlx4v/uhMDSvrB1pQ92u9Wh2ecvq1BePVHNTT0SN15dwCaHY4XDmsLk4fytUw0Ff4A312ofSMlKEIDVXqdzOTeB3jENRRi9uXPBrQKtGbN2N2O+rqtBxVrM4F5zcIn4e+WZP6Pmbhshgg9xygQjQf2mvxNRDX9KOfIfoTgqONts+uVJykYo+npT0tL6Ih2lFbadsNVjMVDYHfufrSlTPIV0eBMD1UfEeUBCX9+N0wusLPcyUdSwgEBRATtvyeMoAr421D+XqSccif3R6FvgWiFpJrGcGql6SDxeI1wf76ZdFeKSEDEV0/mGJY06DohEo+6NhCZtghVhp2U/IqYtszt4KAFddk8dFtxjx3zAFuaOY1rRz387jPu5wnr0S8mZbuxRxKwh3cFJ1H6VNlO2FWbbZ7UYOv7mmU7Bv4=","layer_level":2},{"id":"27a44e9c-003b-4f06-9b87-2882cf3c1e08","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Makefile自动化构建","description":"makefile","prompt":"创建kami_backend的Makefile自动化构建文档。详细解析Makefile中定义的各个目标(target),包括build、run、deploy、test等命令的实现逻辑和使用方法。解释每个目标的依赖关系和执行流程,说明环境变量的配置方式。提供常用命令的使用示例,如make build进行编译,make run启动服务等。分析Makefile与项目目录结构的集成方式,说明如何通过Makefile简化开发和部署流程。包含自定义Makefile目标的开发指南和最佳实践。","parent_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","progress_status":"completed","dependent_files":"Makefile","gmt_create":"2025-10-08T18:19:37+08:00","gmt_modified":"2025-10-08T18:42:23+08:00","raw_data":"WikiEncrypted:Xz6OVSa8P8xcLcBGQtqZT+Dxn1zjJpWxEV24N6Fu+jinDqPyZqB3u0Luse3ArC1hNmGPMdGO8PFnUOI4dBiXnRprrnrFLNHKqkXdqFAjH6egtx19TUYt9uswGPNuEndVx2EB+iEjV8LbEPzVXN8rNtI4vCMRjbc0Kz6u/M2ZPdFq5RkhkqIAXABX3TXjsGKi7FAEdJYJukF1yxjLLxmRA4fbfh+KLotOtlU1immC1ELsE3u1ihg0K0ss8PDw3gQgmSNE9e6eU6f9DYLRj9W7CBqpQG0eNqJQoLNH5jk47SG22f7kwsvHVOdJMxQyhIsTA6fd6yWAx4fBIaE5XkRoymRNhhwFWPM1aNTCKitdXh67VS3bovSmZamRIIvOFk4NYx8yY650VNEwaQL8/6agTN4uqs3YRFSX4raNv5gy0jLwASjC4oYTbDbCyBPTc98w43OxYz9k5ovTEY3P33P5W85oNfFnvFdr433BCY/jhHJF0mdYulXe6uqR7UIqlVwo6qZgeBVUjuSR2Cr3dP/ta3qv0kv+uPYChbs0KuoldD3+YUJkgtfS4hn72+3Hn0Z8qQFMu9ggbh/7kmUM8Vt2qOVbQxJGgfjpXxFMlFKzyDSGBxSSby/EfKBTm/QIV96E9ItWWGO5taPQnHfedvNFPHEQHGLRRhaiX0r/Sr65eLmku3+pcC3R3X4OzUqh+UvWGQ8EpGc7yf6eaMmW5H4ys5tOpDWFkZLzvhLmtsmk+NKDebuNejLXjsgR9AaC4KV6kKzWiXncWjn+34Ds1m5/Dzq8n8dl8nmP2M3eW4UmpzoPQcjXgup5LTVMLW3WYwfjaTHv0DZipmA5PiZ/67oKJAkCWZtikN2eH8aqazUJZw5xmOn8kDvMUeffjTQKVtoZXgLJJOJ65a3DAptO1kurzv5QOOgY3FGjgqpwJLURtxudQgR+58qc3fXJHs1wETY9M1nKBoNDT0Zik/L5sc4aas4pAdnOAyfcQOWQ6YcRQQesZMeVIwkrITWh/fqX+e0u","layer_level":2},{"id":"de16dd4b-ba68-49bb-97c7-cc34f0ebba00","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密账户管理","description":"apple-account-management","prompt":"创建Apple卡密账户管理的详细文档。深入阐述Apple卡密账户的创建、更新、删除和状态管理流程,包括账户信息、钱包余额、状态同步的实现细节。详细说明账户生命周期管理,涵盖账户激活、暂停、恢复等状态转换逻辑。解释账户与商户、订单系统的集成关系。提供具体的代码示例,展示关键业务方法如账户创建、状态更新的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","progress_status":"completed","dependent_files":"internal/logic/card_apple_account/account.go,internal/logic/card_apple_account/status.go,internal/service/card_apple_account.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_update.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_delete.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T18:53:45+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoBWmlVTe9rZaX5hosPNAApW0T1uT6n4zjorEkdqGh56+GZE8RPLSrxCBo7Kg1h12kViRt58Aj3n8+FzdDFp7bvwEBscr6hd0N2fuTcwkJL/ex9qIUrnqZYabutinVv60QecvClj2U9jtJxZpAIgdWaLYvnx4JLGxZ1PaIXSJjxhYeffI+Kt6CpElT/s2ToVoJGivcoigObBr0HJ6d097ae2TV63ruyGno7Xko2G6uivsCIGmeDtR0XpdXNxf1hEoY0YbiUk5inhvQlOAofkrUtJHVgJwiAr78gvhUxe/KBv3jt5AkQAwkxyewfayfAjclkxbeMw+qvW3fuX8pHO657HYTRXporhQJLtrYLVBTAK0lj0AfcPcWsj6ZOHWNcdF9QWJnSHe0fKcBYkL/IJJ1LQRt6Dc23++VcquH1UWlRbjyWi0Tj7FXwoPEXjYNnrNh32Y6Q4aZRmvqO6O4dObEOt92p2LNInowxSFhBIJJN37zsTlOrZ0r4tGkxNLZa3YuFWxohcNzKsWkEQ4j9KJJrqTS2AElZlozyZnCJGDdJEyfFF3fNih1FjGGnWHdyiuEAiTm1ufl1pWp0t/J9rL7OhDgWJjQlPLnUmXR9dE/paLqsw46h9KN2dEuFCuZrqfHFcaNtcE1z8XySTT10aNAUVmN8dgmhNrsWBQ8hTFODlWyEnhwjx0MW8WxkeKH5fMheaastOl6UyOnUXirhnItmocSOejN1XMRc6teTYo+cYMQM88aOz0x/Y+6l+SSx1uYEeBUK3dLQC0iPepSXmtMfR/Z0fSWrX5xVtSyKDCsbCjtVeJshAmlY48DfmpRHKz05xkFNDtwbUI+NXQvIEfAOZoGlG13w9aW5vot3TtODeWAPEvz9NR61orto0a5NwrAv284Nb8ZClaChbu3xAIpVJeBrIFAZ753X8DIZ7XfSat69myvxi8yo6Nhlsx17XWf/I2ZmMFMFLHvdwBJK+Iw/IFGLrwoQq1idTC3J2exp5DFuhql1iYPVvRD5rCpz4VPjnrHiqWvMlhzUk4SP0sNyWmoNsRuQOL6jnUZdu5GfLGLk5vqYqjeZyDlUZey4Rw71OqsfL5l+61osSWlrIBnvumRk0sDwNCSIQXwo+1ekK1pua1sLGDIxDSLBMw0ddS9onSVCafMFiM5buKXGRYfrl9UccI65ZgqkLvK+a3fe9BK9X5sJDxkHQk8hpOWEdr61SZBOZdiEL/HZwT8uCvfbLlbuX8RMhkL479RpjSvJFcHatHHrpxDMRQqUB0AHYw187wmavHy7MfYzFFfxwm34pTRvyn2XF843RR4v0Bz35dYLhxuHgiW3olg8Fjw6oDGUaNri894hp29rdsiMCOqF+EbAbfKIKlxHJXYvyCQaplyJ40lBaKxgWlvP9mPspmz3IrzW9hg5DAZFDA9g5cIqXzcTSE8rxyHh7QD2/iOzjfPT6VvXFlDgfolfHimzmSnbJ2bD6znvOpONP+k1A5Q4PRlzNieGHn5eF/GPbOcpoaJe+NGlmhSUvLxLjpHG5AVuJ5PW8rpObrPHpi18GSZJqRmN2SqbB6hyL91mLDfw+o","layer_level":3},{"id":"d47fa6fc-1893-43bf-906f-c9ed0db47dd9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密账户管理","description":"jd-card-account-management","prompt":"创建京东卡密账户管理的详细文档。深入阐述账户的创建、更新、删除和状态管理流程,包括账户信息的数据结构、验证规则和持久化机制。详细说明账户状态机设计,涵盖正常、暂停、禁用等状态的转换逻辑。解释账户与商户、支付渠道的关联关系。提供具体的代码示例,展示关键业务方法如账户创建、状态更新的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_account/operation.go,internal/service/card_redeem_account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_update.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_delete.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T18:53:38+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rTBhpacpL3B3JqOjeV0quJhHeY4JvPnciyP+by1YUNeRemQYuM9NFpdXQryPPslPNYiO7OHybuYaJ6BeXEVnWJNP0Hc6AjitH4ckNyCULFHcp+wSQDZz3ViqsdkiH37hAt/G2U9cMSN10npfdksX3t1kqoeyoCjWC8sUn2y/fOrRhgnJ6d1t+w98D9NFg2l3cfEHSCXaXgrFriUYu7M+nrGAPmV/OXa85AyUQ31H6gAFdZ8QapoUP1Byhy4E9sncB8Av7VOX2TPrCwbB4mzEvOj90ggRC828l865qy6LiH6/HiDDlMBl0F5+VmCgYxW0aQRsdBIrAhkA0+6UFDN31Q0fqBAcE+hvxEZnRYipyhEsK5bBdZ2nLgpA0ALmhMJjNWfoDM0aWOozPSY4IVWi5TIMYPxishFPlguSqANCgmyBWG3I1YabrAQzocipsrdleiIa6O8HvuzA0ZfWf/7uLmSkChlMZ6FfaRYmceZDERpoTEFPinHyZfk07tccxdgO/hUPq1oPzoeVQsbp+QGcDu6CQc7IQY9YFXuaOG+1TZwyMteoCtTK4xccjt7cXiaoqNDbFL40nPJH7fuyO/J3Raqbuzci4SzR1qCy4yH9bbiWibo/iMcF1YqWu23Qw5ArcNuBMeozKrGbrckDeXNB7QF9JqJq+EyTTUv4IKBMa1HYXOtSiAJ0FMzeJi6MbohECkSQf8r9D7L47E7HzDIiI365SVV8nzIPJb6ykmMBSW7zQlCpXPD06wp8vzxg1IozlrJaqqSLeA9NjLgvlEQkbvEoFDmGMKyohLar5g8i3JLTUNwCX5TOaBsM9Hq1O7/gEHgdleefbNDK/7gpWiTIn9CZSUguGxIGI3Wc9OSZG9X8ZIYb7bP+cCZTSc0OV2QqXGnMX2wf9mPu+0IDffVayfJ4OI/sB07G3ci0wCPf3wWtARBjTwvjOslIBNhWKZXlPb+UGnPp8kT860OmcSXIUI1JfDVgvmc9+D9uboS7zY+H1ELmZdbllSSxlV4wfX8m7X28vSU81NfA97rP5019U1pAVmjMDJ8Kx4DR9GNXpSzzPJfFQcg3Chkc2G+uQBuQscayCwlD9Vm7QVirmJO1M6MjjszA4gN8T47CtZxV+KP+S+n7iGRnfkmmDt/7EQPr0Q7rtsGiWQUzf3AVzdECSSAfN4t34WUDTFH35rmIQ43R3l3g8pxVaVCKgHXCPhijxJKNnJPpRdYXhHtJL3yQn5K/OXDTCC0bSk8nsIKVxM4bdZizcgdI91YwDir88H3gVJ+sjFf0QB2K3r+v1pvNvd8C/m+FGVi+C/wRi08R7rqHqYzLf9eNnovxDHg1o5nwO0Glxf94Xp8qP+ds1jMO2GQz0el/tpnFC2KQJ75bQ2qR5YuLAw4NIN6OU2HFBHFPdmsoUrskT6RQ+A00Yig8aZGrJY7JWnC/SAX8scf+RVqo8NiuOWfBmhtX8hO3ZNKQR22wtZZCoV2SNBxXhAkYzITd6ZV+0EDDriu1m3yEzEQntxYZOUmlOl9wXta6bz2UuSV4yDHyqaZhbOPF3vfcfTE=","layer_level":3},{"id":"3ab7071c-90ec-4de1-8d64-d414460e61e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密账户管理","description":"tmall-account-management","prompt":"创建天猫卡密账户管理的详细文档。深入阐述账户的创建、更新、删除和查询流程,包括账户授权、状态切换、认证状态检测等核心功能。详细说明账户与工作空间、订单系统的集成关系。提供具体的代码示例,展示关键业务方法如账户创建、授权回调处理的实现细节。记录账户管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如账户授权失败、状态同步异常等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","progress_status":"completed","dependent_files":"internal/logic/card_t_mall_account/account.go,internal/service/card_t_mall_account.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_update.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_delete.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_list.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:54:12+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRUnUfuYU1Ccs6mvDPLPEkeDmJDEzqB+bbxCn9nEKGkJ+ngcQ18ukCSPcWXZUH42B8jgpl4li2lM2GNQoVVNwDi4YlZbrIo4XPZlxyuqNSDhmbbBTv1ynEvzJYd/R2NElCmE25B+pY0lx89xG/fuOSBmrDiwXIyurbfrkKNIX4AlZcVOuBCVCAHKCQKlIKkZILWzUMa67oSxBs9GHdxiQv2QwEYo2X0jeitURbHY15W7uucFvRv4IJjm0SB6xlHOvkJ+HeEXh/txt4PR5gq0EexNxOmVHZ42SJoItonwbQvI+mgSFQeafd4MG9GEYwSwR7aOC8SxbRrWeMGJIpAWjXw0CXiYHmvsxomZ+vMeLOfFGHKLxhI0r6Ly71ZkL/LxWb3Nsm+cdPcANDgnA+vChTAjV+VjsjPVNjzwgEh2HxejBVOb/wJHMdPhM2TDRLBP40uh6QVX1XDYe7TI2cCkecUcda9gquJVLa91TAdNJNQ18zxiiFPdIG0wy3SjhwRvHiGJwDVLO74gxzh2uEWdQ07b3hW5QEZTuF/Ifpi/s6QyLdK2+GSUD58yy7K4Gvtgap3JNBtN7l+GYd6hkuPb+OqYWBcGPt7zQvXKrR+GmKf4j2FnVVWuOQrvyvtT5xlxm8dW1lPqyFM3V6f6nQItxL4VTN3P39hfKuO5QjC2tDXDxngUxHow4LA+Y7Q57RXR/liAToZiNZdy3HoFusvNFjwRYtG4D1+qFr7nGnTKm/pckOGgTC4LsugHBPweDv+5rjBB4IU6hbgyWTzj0HEVdPZDmTJNJqrYHR3Tk7qHSx5y8J7/tnyLmscLH7Z19CxLBL5Dy8xv9ZDzhtKIESbuuTtwvODZ7v02zCfQnzsCDUJBVZWiP7KpcUmziCLYaKmDdW/KKxlQz2UMf0x2FHau0H4Pje5JYHEO1nIrqjSD10W66aUHXAbZzIgJFetCFDSSWidErGEGRQ/XZdhpLC5NDppfST7FkSlbjZOX4yZ7qAiaewMPlXaQM19x1LSAX9p1oT9CSA+LcMUEhrnG0p7KkAnQ4XZY1zE2QCYSNUKOSugZnlflfJdQ/dxKEkYblIFCAC2C029FP2kP1VbqlwFk/mzy3E+YZNHt6GW7RCNU1VsplMW4iXdJr8Lt1TKqK3fOL2UnegurKuUTJWXJffluzXMYH+C1R9UH6ebXluAjEolk71pgux92vB7xj1LeyY9uCFDuCPDT2SS1C19IEIiJ+VwZCWFNt4BJ+fWwUmRJE2YmYIPDzd+FwEF1chxEyYAnm27ls6O/L9DHmbbrNc4gjRlRvSHFhhyUwVClc7a3WQQr4GTjOomLo6c91N7r44ugrSArlkTDz4c4xV4WrIedPsmgAVQqBZy/NHxSK7uUXiOoL91RDCxbCoNCisgkbSOfR7hDoQc9FCBcPa7nuLODnBa06Yj/LtFfB9px5X9kkBpBYMRsg4aF5Ztvld5slD/ZdrCtECopJ0QQFtnh+DfxpZKxIDs5muAcHLwLzQRmj3BTxRidg9IwQvQJNyyt/pJ3EgK/aLgV54jfGrcKCPzytribUgu6HvWM0ZMC4WKEZzTdRsqdRdsQvwUpWo1dwaUAlESHSTahkPl3I4I8AEZTMw/rYMsajYlspOKm+oY75ZkdD65k4XRAdToahanZWubFhuB0PniX1tyhx5mivAkv6X+M=","layer_level":3},{"id":"8b0278d7-2786-4c72-ae74-b9dd35efed2c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP记录管理","description":"ip-record-management","prompt":"创建kami_backend IP记录管理的详细文档。深入阐述IP记录的数据结构设计,包括IP地址、访问次数、最后访问时间、封禁状态等字段的定义和用途。详细说明IP记录的创建、更新、查询和删除操作的实现逻辑,以及如何通过Redis缓存提高读写性能。解释IP记录与用户行为的关联机制,如何通过IP记录追踪异常访问模式。提供IP记录管理的最佳实践,包括数据清理策略、存储优化和性能监控方法。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/dao/v_1_restrict_ip_record.go,internal/model/entity/v_1_restrict_ip_record.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:54:37+08:00","raw_data":"WikiEncrypted:B0ODZirtzWbsF3w9bcSOlHc1dv0P5n03vALNC28DzA/g/OMiv/MAU4WTtzGe+VPqGMG8BJoBvLTAf9atqzKx7iO7sAtYjJzKyHysTAjh6GlN9xrWaHjlXsZfgHEv+81WvJZb5pYsVC8QWPqJVnNT8ZibsnLhkYB7ItAExxnC/n9eJSChUPIuUTXph/2RBUm4TmQ2rlWqFBgHwTBasnwLhHA9JA2rBmoWCSr/mleYr85AvGyKj1Nwj9LmM7seg884PUu6ssOdfBhhstMzCkFYvEZCwGb2hfNGMOXHWYIEdGnmXU+I0e1s5FsLDR7PBwweX9pBVibAZ19zNP6rL/gerTzeXHI18lue++YWXgPyDDJ2hRZ/MPBnW9i/HkpDh4mpc5mWUqmW0zT18UuMaQzNIiP/k2hhcfrrjUZtVFahLteOLFzxA77owqtwGtqziWMDCCx+zQZWO0NcJDlPfX1yXeKuWCjCp9axM8SmGkSuSq0F1Cg40Xurvg6ACvweBhdwkf7+K+nb7hHj4BfH/C4L5Ph614a7EtOIliYURO+uwYp5PNYhsyuXef5OqLMd6ShcgmIdFu3VDhjMZYbDz3yCh5v6/D1Obpanvvok361KfEwGyIqRbz3a0n5jmaVklS4xmje6DyE+tgy2K0Dt+q2mQzMnDZwriFhC5rkNgl0SMdme6DQ3N1cDq9GxUayJWudley42v1V4IKOOQSVLBjKuk5WF0py21M1dFeT5B9zqWVZBNgTdI3Hx+ZbdKzatVUs/9IFagZvvmIdpXqculjOjP57wIMGASkQfp+XpXnd1WxlvVewQADTlC+lSykhlxstBO0CTd6rO6PnBDii2MGVEvDIZ13aoG7+MSqJfRl/71mj4nGifA2wzACoCY7DMV/FJiKNgHSu5pPzhmpaerh/esoC6pRkMYcbC69OW/5grJtVcxYVYFee4WFstY+agTZdGTcGWgYkkI10JrjJYU31Bfgd1/n+Q/ib8prOIaaxUzWu1vZB7jnLnvZT4zp1guLIfbI+DFBkPob9sZUAXTFG2DmYZ9ynkqiYgzTM6aeBfX+tlQKmFBZp9a5oWUiMjr+Bca8UmrhPYfnm5f/6dNqx+Tn2WK4CUg+HY439kyeKlQm8lJjIYpPi+tXROL9uTMfN9AiJft8OIlsH4rhfV9Ujfew==","layer_level":3},{"id":"5624e47a-917e-43a1-bb5f-41c0c061836f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID采集机制","description":"device-id-collection","prompt":"创建kami_backend设备ID采集机制的详细文档。深入阐述客户端设备信息的采集方式,包括HTTP请求头、设备指纹、浏览器特征等数据的收集方法。详细说明采集接口的实现原理、数据传输格式和安全保护措施。解释采集到的设备信息如何进行标准化处理和特征提取。提供采集过程中的隐私合规考虑和数据最小化原则的实现方式。包含异常情况处理和采集失败的降级策略。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","progress_status":"completed","dependent_files":"internal/controller/restriction/restriction_v1_user_info_collection.go,internal/logic/restriction/device_id_record.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T18:54:43+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvGKD8gVb9Hj3G7coH2L3SktvZYebOv8vkgpgSinmPuMCQSSDTEyxoWVWnS3XVxi0V1aDgH75tdCCQdkWCOilOBlur/tpdCGLmSg6Cthot0SIXRwj5zLvF/P4pmwc1GnREbivew89a+d6cB5njXEYLYUADqYDwzY/Ou6iFNaGPLY8XiRbuSbHg2890pkV0H6/Ed1QVe/b0Hm4Hyq6pLG7Fma9/xEn0GsXHIoSZ5MOnPkEM+vDPu53i1GeDtM57mMs4oTZ6k/K2hK+GJc55OT3sBC4wSFG1HCf0h5Kea9EAac/g//SNmqLTzBGxf9N61bfIQlAUB1+y4PEuzyo5XUzhaIODKYUXgboosnmMogvqeAB37Qg6dLbM1Y+eS4Smcerl7nJOTRT8OE5BrDvckmSJ4Rk6ROJMVj7CQolYyjdqZryZhsH5M1XhfvcwQzSLgWIDfAP00oG+H7Ss/zQPO2hxA1ndtfBOpAQXuX1DcBugX+tDztR7+xAbzLkFXW7m0T3yDLSqTbEHRrh3QHg8XOyofIWqJp71gnr4o+rhhj3v0TfMgxhfa0T8GCJe0nT9I/332nEOaacni1oDZ3id/eqonMwiO6yNGb9w56rACC2YEWmbjUOSZJ0FespuJa2wpOyjWUPjjuT2fe3f+DKhFncqnEehTQyTEc2eN4CAEMMc0/AerzjZjYew7rQCVCbZcHbruNwTTdVgn+ay/sjnG8kMd7J88PojEF0sPTeur622fNz8+ANGme7CuqBLvIkDdYEu45gQfZo//zDfco4SxkUWzjyIt9oQ68tOYVogVS4oQW3El5gDaZzMqxcj9cdx4rd8WMPN3j4/eYAT8z1Oh/D3ZKzVkYo3paB8QueZ8YKZ6JafYOQxOSGnFy5/KPoawuo50CZ/S14eN2PNilYroHnGB53OcA25V5pvYAhwikXMzOhmntG1dVwjjfL6i1quWiUH1pW3lHH5A/5KhnEsew3oOwpKkUfzYRxCoeaY24Q+ZtoPp8j+WsEqwl6+WOhOA841qPw15A3tdKAAaa+nVOXzAVZ07Fy334ScRwaiwK1R+29eIn6GQeh2TIPmSReE9FfWu+850DM5Qe6ellMIzoKnnA=","layer_level":3},{"id":"f54d30d0-d3a6-47ba-bdfd-e7da45674e38","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"登录认证","description":"login-authentication","prompt":"创建kami_backend登录认证的详细文档。深入解析用户登录接口的实现流程,包括用户名密码验证、密码加密存储机制(AES-ECB、MD5)和认证失败处理策略。说明登录请求的参数验证、安全校验和错误响应码设计。阐述认证过程中使用的加密算法和安全防护措施,包括防止暴力破解的限流机制。提供登录接口的使用示例和集成指南,以及常见登录问题的诊断方法。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","progress_status":"completed","dependent_files":"internal/controller/sys_user_login/sys_user_login_v1_user_login.go,internal/service/sys_user.go,internal/logic/sys_user/sys_user.go,utility/verify/aes_ecb.go,utility/verify/md5.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T18:55:08+08:00","raw_data":"WikiEncrypted:gVtFIob7WtU/DhLIhhPauKCJymbo4SzVIw0dvv8aC91DNIWhYiwoZmiSp4c2j67hTleejgcuK0+CSov54UgtfevCah8zEa72kD707FT+ocaKIb10nnDfMiUQUGRO8xrC+Q5IXfwDlTtZ1hFf7OdjNFipFuV/SWniGGnHvFnrpgd2jrlgRhnjDEiI3ZvaT4VaczqEfXHod3jH6Iw6tDgt+ybjFShDQlsOQcYJlXBzfedK3qJMYS/c5klQtwPKE9RjNLVjkzZd8n+JU1H1jE7t4esDxJbGwNSRuZLPHX6hwYiov0aQrJlKvkx2O6wRZ/tLkumz1z0G675Xd8fhVg/BKxMucUkGxXvh3i0CZBVZUlgRS9US2DyreXpodaZOnZycnH9Nf0sYq6LppUacl+vgm8v4GtZFX9yFBqGkx0qHpD9m8yt7POIePPUeTNFn2bGixwcm17xF8kibibU/h1OY8KSA1Syout1lVMG+3sZc/O7gyfNEUMWNIVWtunvH3Gz3O/f+T608ya8cf/4ElpoWkrK1IAFQNWVeqEZbIqKvWolN3UWTXhTa0c57LRQOgFXlo6X1E8kZGvOahqKk9FZcmgfXkFWAaOYAWMMax7Lkf3VRgAmcy2W699mf8z75UdANIMSfww+BIM46EwAwkB5oi03EJimkiKwrvhOk6jMD9ZH50OVC+NrYoKN7yK3smK7NyRCqdnPpdQY/AKAweFsf7NOcL2OwuoE6MBRsG3TYBSGEU8AkGOJ8xeDZbiNOqw7KOxpJk7XJgP/dwsBy5bfmkAsJvHQ/VflOI1KtQjRTfZPhNQjPvnVDRNnifIjsXpeXQEK5NpBLh8V74+UZnCgbbj0/s0q+sEB/vH9HZ5/YIkjcAs9/WtUGfNE1Fgy73Q3806nH/pa3O64odg24s83QhudpiMFC3RoDl/zjRNJmiF/BoS26rntv7fA3DV7/1yw3SJ7ZR8AXRd7MEnMzwymFLRaF5NUfKf1VWyBPMUUXkjWK2uVI6qi6RprUhVFZZ4/wewWlQOe1WlQwtWRg5mcMZMTB8+AODgUWyqYxJ92NymII8QUCFHSA0YRfqMeIPGK25zlo3fHNcnAmF66rXYfLL4VQg6G6uTLdvhCtIiyFAHkNtaIo8SMFBZ0prTyersI4ypvk0FTVEfCOUOZL5s6cmooEb6dtaQxabxKhChlawsw=","layer_level":3},{"id":"708d0f68-64e4-4da7-a329-e73234ebb6d3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限规则定义","description":"permission-definition","prompt":"创建kami_backend权限规则定义的详细文档。深入阐述权限规则的数据模型设计,包括规则ID、规则类型、规则值等字段的含义和约束。详细说明权限规则的创建、更新和删除接口实现,包括请求参数验证、数据持久化和缓存更新机制。解释权限规则与角色、菜单的关联关系,以及多层级权限继承的实现方式。提供权限规则配置的最佳实践,包括权限编码规范、权限分类和权限粒度控制。包含权限规则冲突检测和解决策略,以及权限规则版本管理建议。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","progress_status":"completed","dependent_files":"internal/model/sys_auth_rule.go,internal/dao/v_1_sys_auth_rule.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_add.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_update.go,internal/logic/sys_auth_rule/sysAuthRule.go","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T18:55:45+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoOwAbbQLRVPzcd1k2dHh6xPvO1CNIfigRke0ryDobBaSaoichs64p/z82TtWhKzqnfRtn7zC+YhNzCLUaL0A8JDFeUnDrWvFTxw3yuhcszbDwuzk6BRxe0gs4kFOhYEsPA1/Y04lfi8YegVHolvgHLKvZ17SLaOS9bYJHWMoCZP/kJKsxOLnZ93rvkHuIdm2WtiK1iK81bJHe7F23huXgOc7upPu5i3nNZGnaDM7hEKQ/cB7MI5QoDzHuYcqDHqt08ohmzryRB5mJMQqu8CAyUV9/tVRMN1G1BE9CaETWpePEVcW49WXO5v7uFv5o3y2jRbtlgE60ZooiLyUeZ60VHLn6j65ihl5jqjtzHB7qcpCXaVoHZLSotaBSSFs7pAllss6TsBzc6KCDVomzHoQf+PqfKcSv8n/2dwqquYg6HQCEbZYvLCeChJgFbNoovY5zY/BY9jxgXrml3zqVFBKPIkFeBE6uVHZRMpeJTkpbst/AcgaHeDFmFWefIv5Xn1MgKoVgCSbClhDpGbwXJH1rUnNzDax/BkYCyFGmqxFKsNCP32oro+e1BpIiPMdmtiXy2jHJC0PEzlnS4pWf4p4OWZl+mdDIK6iRnyKAINgvfuTT4UsdAu0vxqRAlgd91oo3ABq8ucgniM/oaBKagxXEVv+qYbaeERcv3UTVL6J5MYrIeu0TJXQyDfXJif7Cb0d9tjPohxCZfYCvrQuF/JgsaKV/2OuKffcTQjEXF94v5xcbYVzroBwMsExqvXFtzDHXDUcKmmWL1onKTlDa5nFeHCEwhZDoXVxkWLFI+8+ZaWqKFLDXQ2LQ1Z5aURTBybZlPMQmdjIqszTv0JAAu4uz8yTcW+65emFBT+4SDQ4GaIbp52eQAyFATg6uQQ71IoEFejxBAOcuOnWzagWT/skQVj7x2nXlvyk7g/BrObLtKf8zLaXFB2y4A/OZ2//7oMvEBgtuuNymm/EKEOlKhkNQ5ETZ2o4x7VWwpuj+USDjl/u9uGdszpNTGiE6FZp0k2taXInlD8gg6CR6ddA1QRGiDs8R/GpRoDPFKxbE5J/bZHZP8+7z/PuLcrU5xhyQFN2YdINzxPPXdRS/6vVIfsjXuSsr8q5cG7USJJwm+1NmJxoEX90zJq4wCEDV1TAPupW5nPGpBlm8OnBwh/VQDgk3kS8lga0md5rVm6fbMHzXSH/aJj7JzZ+Q6Di3qFN6VDP965doUC2ELSJO0wDwPs2joO8xBelicPq8EBjbN4EvH2/jLznrdmOoM2eN0ST9uti88fJEpJE4l06+cYAFj6gq5alSOxos+JJfvskuQc6Kq616nxSzwDrgSzwo/qb3FqWiZ02TsWW/GkjHTvzetTd8JVfaojrsVOQajT22gaz491mWxOhtNkhzgKvXeoTLcqI9kJ+UKQ90eII5zAT16DLpFESFp96xfx2BoRzb0vVgS3LwfsXFmpLF7Tl+neDBmgLvYACwCCIlajnZFDnm9PH8pM=","layer_level":3},{"id":"60a234ee-1d45-4e80-b8bf-a0ba60aaf7ee","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密账户管理","description":"api-card-info-apple-account","prompt":"创建Apple卡密账户管理API的详细文档。详细说明账户创建、查询、更新、删除等端点的HTTP方法、URL模式、请求/响应模式和认证机制。涵盖账户状态管理(启用/暂停)、批量导入模板下载、账户信息批量添加等接口。提供实际使用示例,包括从xlsx文件批量导入卡密账户、查询账户列表及详细信息、更新账户状态等场景。解释账户信息的数据模型和验证规则,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注大规模账户管理时的性能考量。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","progress_status":"completed","dependent_files":"api/card_info_apple/v1/account_info.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_create.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_list.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_update.go,internal/controller/card_info_apple/card_info_apple_v1_card_info_delete.go,internal/logic/card_apple_account/account.go,internal/model/entity/v_1_card_apple_account_info.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T18:55:43+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBkqinpLacl6fnfehKCwaw8pRy3qKwc6VXfk2vqy+NLa0lTwYJdBlXq8e5vF75MfWxXT29fu2HyUk6opUbjF2W2ADBD29AvaFIeX8frTdSVTfs5URJaHPfXsFQvvLJ3Rg8oZjBSUpqXPio9c3Ip9gtm+KdfHWts4AubnWlvECu5q0fwdcbvrPr5W8ZbVxwPjN2waGFJ9n1Xo2pDgwgKxLWA+VTiMVZ6txaIzQakEIC4/T6Bf+XF6+OTKqRF9kjUeT0tl3gSaJypvozT0cAjxEdYKhcTzwkZFQPSDY5zxgap0epbmOmRmg3VyKwf0MxfTo9DbeQ6XakT7KUm9U7rKxaKSMgDri/6DFmQkzd3Dv1KFK3xYlrD4B8LvshcpIlFZR0tdXF7L+h7vUcuu5qnTeiji2cNkwDpRSpbchRtEHfn2PL8cxdJkb++Li+o33XuI8HueScdK7hb4nMtT24utEQ+r3gZ4srVcZ77JPWWIAkfdo051LXGr5fujnXpbcizZP61qh3YRPKMWKxEQ7o+mwqCvQQzR9+mrc6PxNYz5eDMjfun825w5xTUNiedy6JntfmvTKRO+z+cxEcTJjsy4uT7bB4rBM2TXlKvVHPpzMsXKMgjd/Oa7idl8vBFlxNtD+4LBPRnvLxdafLIS3u4wnQc3bophhVaqHm+hXLUzzuP4jm8EnaQqzjo/BfuNsiNi+wm7gCZhLPJX8hDUrjmb3ToPk+El4qSq9OYDP+OozLq9Lqves6v8r3lAut5Ii2EPL2Vi0KbzgGhb8vk2HgVfMZ3qifEuaipcaNwlxwr7+wSrDuEtfZsZWJdIr/XlNK1d+2VcQ7QKYJ6izbgB/Zu/zFl+YfBcIrTaMF4/e0O3Y7hpMNOxDqi8KQDSoZk+bQyU1ezKM1HU+KtLHiVO+IO6QshTgYUaTG0gIQCpbDRWdf6PIJ1WQgpq5SwD7Zj182JC1lj4H3/DUkpmymWLJOospbguIbIXlzB+k6WGw9g+wXA84a5M6xZzdjFaSwVGxTC55j0kYwpiCaco2vfpcw7jjSUCVRUVnlHWznxAaXl6E13rZFN1wBI0Ik9Sn6rdnD+CS2aLjvahLJGpb7jaUbq7L/ZLI9BA8fRDCwoGIfwFRPdAYGlqYdJoqBL/cnqeFeN9ga87M46Kyz0puLquoQ2Ew0MAXIuc9fxbYACVx9RMiH1Vhi1lDhZOJAvI37u/G0JEXtPJopiSUMYsFY+RUA3A/Qku8kQQwax2XUYTgCR2AQiGnDCdkI+6LMtPPlmSx/QlITlWkkQCy/1ItMjEw1o/PPSftkUZ1JKqn9Jh6mGud8uAgPqxecS9Vamw5jbv6TYMNXzcek9YJJudtf7iHdpX9xRKf7lnwmouqdLT2UM/VGvOhSeDkpDYPpADoBsTjMHE0SbraXDUthLt++TF0E2eHFiPgPoIjgUCGCaA/yY9v4THxQNIZqUjHKD4diMLvaB2giWr3OiFkajHbLz9oGsc3SxrKuCUeQrH6jUtEaCz+BiLMUDkqRvnUvVqHoK/LQrLiYtXJSRvB+yOmQhj69kcR3oBrLBjnSMHKZcITOeAhn7zHSIHxOpfehSXwCJZf00ZWrb35OoqyXGo9DBOARSQ7BnLHiSzObDeoXHrZ7TQQBy+NwX+LyXZRMrgdmjDy0EIChgOQqhxAb5KemwNomIuu709tXJRhytOOiKfPJY/ws9vZ3eIVfgTsar6nXoY0HAQlRmit3zcnQLlA/xCwAxgLx6mv/itLgom07Us0IZv/BOLu","layer_level":3},{"id":"5a0f3a66-d169-4a34-95ca-e173a89429e2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密账户管理","description":"api-card-info-jd-account","prompt":"创建京东卡密账户管理API的详细文档。详细说明账户创建、更新、删除和查询接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述批量添加京东账户Cookie的实现方式,包括Cookie验证机制、状态检测和刷新策略。提供实际使用示例,如批量导入账户、账户状态监控、Cookie有效性验证等场景。解释账户与京东平台的交互机制,包括登录状态管理、反爬虫策略应对和请求频率控制。文档应包含错误处理策略、安全考虑和性能优化建议。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","progress_status":"completed","dependent_files":"api/card_info_jd/v1/account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_list.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_update.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_delete.go,internal/logic/card_redeem_account/query.go,internal/model/entity/v_1_card_redeem_account_info.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T18:56:14+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBgUl2d6Scta4RQBMUlv4P6FBG2to7BFRHZXhg9BHwNCBD381RHw8dSROjY0CP5l2V+vaH2abBiwvnIbxE31IKQRVIdO4Ewz8JwWbtt5tmL8f9cJo6ahniikYwoT8OeUbMRpDl8DxdG2s35ojn5Pkz4O4fSeqtH8+hJ6Xr0rIZlEh8/8f46c+F1LGoWRtLxfdiyKp8oOyO4Is1/w7sEFWzmO9twKFnkqW3HkTjlSQrWAnN6fUR5GuyOSRYijYJ/gyTzY/wl4XKJastvxcCcsA474y8VkOy90tdpJIQznu5Ben1hu0/p3ZpOXPYd+bhjyI9/krzqdGVVWifczIEhoZCu7/XfP4tO2yASiJImRuOR+CO/zjsUDy5+KRNJLBq5HSzEmQ9GfgwNCPc809XcZzrk6IuwtZjLPMperxN1uZKxRCjmAcRaETzkhLDAHCJEDnmwqIO2UEe0ehJr/xSTPfabX0L0c90e78TfEvMdTvI35MS+rQyOO6drdfP7sxQX7pI7i4wWJpfZKsKZVSy8YG5AbSSgdMkWeizoGdLf6dJE/Xjq0NS958wC7/1QHFe4VwtfXX3rqcPRhg2LoX9SPcvmRIGkLtxYws8a/KRMRf146tiCLscWjNMFTNQC+Zw1Y6QzodUwxGpLnafM7L+I3dmnuPv6cu972lxTYVmNlpc/u8h/+WLeodNhWaEzMn2mkZO+zYqIvJwSNYDSEKapP1cM4mjRa1KhV2FdAWcSIa62p6muCsoT+Bj7AVCIUdJF4+s/4Rhc38zcceMRTyOcwK9wWZYajHgdaqZnxNoWFIRYkpRBs7Mq2fCdHMK8vnUAskW0pWnNxJpOwaNA7OlBugvIYZz8PjeHAKIYEYFSul1oVwVprSmg4le5igOxkugrYcLTfOsMnirLxhyI0dzZ95fJSPt2yyQbUDUxb4p8XDiTNSPHwoR1FFtHUGrY6zjZJK0W4n3tw0G+0x+exh1pjVO+oDKcaOtgUOolzOvngO5tfGocxnDVNnj2Dylx+zxkltJVZ67wf9cj+qPLcEDPnN/0bVQD/aHPjbUzdVtCDvBHsGU2KqOvOQRo5lhoBj4biXkQCgARq6rgc8rTMW/7a6Um93POR01838YeN2EE5ameiQV+PjkLrcr/MfY2yche9hwHpEgEtYzi+J7nmOnQKPW2/KR5oXhVL5SLh9xTYFzs+yDcpB5FFd3cZ3oKwJ00X8FXbFWdbanzH5JZDyJsz0uiYkXAdXvU7HYDSeY0kJY6Zh4D7KzYnMLEo+FYkM1UM2WA6sAtPbs0NseDRjhuklugEvOSBsLdXaJY/2ZIIQvy1G8Jy5C++r97NdT5tli77firZyLt+tpnnNj5D/kFmAxI6mLVx2LLTPhvloz4dHP7zHuB9ADxwonQQJxrJ2yL8u9Bya0C29eRCNRpYC5WCPNdjXkR/JVbdjF+Eex0DkjpnMUgwoboTAKNCCt/LsDPsHnfxo6m8X9t5CvOqsU/n1XOplLXPhFlJNOt0w3GuvscLiyFP7I7Vojk0CZ5YfYxTVzdjSrPv0huwDag6PMes8+oU8A2+pBDki3YPnKURMTwxlfjF7oSZjierV3JnlqBQjwAICUDFqCnYvgTbjj3sJGH+ikMk9VFatoxbpZpZN8SzKhZ8kA0IXMBVed4vAuNZetQ==","layer_level":3},{"id":"6a7b8a19-18bb-4222-8c43-45f6c25ea130","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密账户管理","description":"api-card-info-tmall-account","prompt":"创建天猫卡密账户管理API的详细文档,涵盖账户创建、OAuth授权、状态管理等接口。详细说明账户创建、授权回调、状态查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括天猫游戏账户创建、OAuth2.0授权流程、账户状态检测等场景。解释天猫平台特有的OAuth授权流程和access token管理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注天猫平台的OAuth2.0认证流程和API调用配额限制。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/account.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_authorize_callback.go,internal/logic/card_t_mall_account/account.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T18:56:38+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBoR0UyAkbkceqMyhpWku8RVMxI14JrT0WuZAKIquaumc/fyWO7e6sPSexwLceo6/MRNBnGOl41j7jMKXHDp2IJIYtqDgbDCxUwOhOQ8OIuqHJLuTFiEYbTEv9b6wcKKc8EAUOn0Mq8/AHAI14ujJMZ4NX5giXQ1UYTmQPJBU74L+ax7JIOqoeJSCJzn+FNpqHnPZfjB29On4hQ3wkOJvMbEuzSQ+r+Gru2HnMF3kaogVcbE+IytKZo4iVifeIEzWZup7nmaYSY5JPaZtHfY8dLwFZBNsNkKfQO+EFSfoqA8csAJhIyoi2JkXmJgskA2IwVlc7ATUE+4hMEK2SjDNM190H1+u0MFNBrjbwN/nn4rW9P7RynuaB4g36TWvUa6jZFBFwgACpm9x0rUwQJMVL6audS5N0KytY4HsnTtcC0OtHf1Jyr8xeK9Chg3ROKePyBHvA/xmz6AOAZ5E/EDfyZrrPQ8ctqP08gcW0FVVtMK/nQantyuXSlF2prvPTpbRUvukHLA2/M1ZncThXExGhO0PxBSqV/CbOKaSMHZNG6ij3Vr/YN0hlrXtx7tM13kN4u+eudBT5HkmEO2f4gRhmurkgUikBdoqamLraJQUKr+TwS1qSKTYyv6+FzDg0WPvBMVRN00zU4slmhMGSA3VgFKNL7L7y62KwNVqsED+7p9MXnudASGPDkFOuYbtil+LJFDuUiFiIv4PfhL5jmrUApuQAe3EB0AzQujJIrRh2sVrQeSGZMH4vAtvPL2qypV9F9lo9/XYybT+F7i/3Qt5dslxHl3y4xS5M8DKi4qdKHLzWXTHhX/pLeiRiaS/nDIHBu97n5HSUQEtLuY585nkaoMVfgmyg+6ULtg0tU6MdWqkr4b4ANKqvMkZHVrmfXqvIe94uefgBR9xYl10GJS+kFAPy53hJ/rPlIv/8ERnBSm1jSCCgo/bgU+ELVwq8R6blJdx3AxQI5BS65muiIBl09wf5MrrbYoVTl42wXImijcLuEU97bGyUH06LRBHDjkMtClfAzQSUAjHQRmdPTHMuVBhOQhmCjSTtH3Fkj+/4ODYAVa6Begbs/GUe3s2TzX/GE2XkHZCzUpIiiuq+08HgN6x7+Dl9RwoI/vf1IsfKnuhPrI0tkMINyS7v2XW6TgOL2RhNFE/VE6el85W4R7lldv+b9XekZX9s0g+WzI16nFSczoA60cIKhnWcGN77Tuyokf8dLEGr7mSrGwuXJW1iXGk6J5BfaotNOd3Peib6RgN+cGjK8X+K1FpzJ80yoy5U03Tkm42yLi38jXb9tMwu3bn5A9zTQgbvzeTwBhSqU9b2HiCITl0jMEseWoqRPz5p4PLomOL4eatGjoTOYt0i7ndNdRXQvlOknlHER4JJF2TYnFosnqu/pI4V3sEH7jljQRlw8nuyWxoJGh+662U1BS6wKEvY33aQFXQTnIap10xeDGh53y83Im1qI9NfhuqVPqC3iLrnnoH+g/ujcZvV6Zbcbu61QNwo9P5OPk3YDMl","layer_level":3},{"id":"f1ed70ff-aea4-4289-8223-fecd0ffd2cad","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"构建阶段详解","description":"dockerfile-build","prompt":"详细解析Dockerfile中的构建阶段,包括基础镜像golang:alpine的选择理由、依赖安装过程、代码编译步骤。说明多阶段构建中构建阶段的具体指令,如go mod download预下载依赖、代码编译命令、编译参数优化等。解释如何利用构建缓存提高效率,以及构建阶段的最佳实践,如使用.dockerignore避免不必要的文件传输、设置合适的环境变量GO111MODULE=on等。提供构建过程中常见问题的解决方案。","parent_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T18:56:29+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kAC4I1igMIbmJdop4VG0ZbJjFypRxn4xUly2HIQaD6E7Ulk8/xSnFXX+kBsK+YCiAFpBZQaJXx1K6xD8fgHOhJlmWyvZ/fW+LtZKayd0FV0jlHO2AcIFL1eWHd/6OafkRW0RQ3lAEZ3RRU0iA7UKykKoL2lHBTNrjnDDxz4sLu6jLgCdadAE7a1NJYx8QQjdEaCcrMMyW4INTvYDbVmBGbjUfeYUMV8qhxpfBbCR/tGRxLtGS2TyPsJGGPPDNDhbPpwJ0yJPkaNCFT9eMLfbVXwMNLEEHZ36uelrbeySFxF3laONoF3Ina+ld1a1rCYzeBOBrisG3LOcDOgAu84dsk3bqzePE61QcMUimqePrk0tV/VYhMyphCghL+28J/zngBOlSqkLapTPn02rzSuLBtwuWDsm7IdjT0g7vWZR9cQnR6vmGanUjlgOtzEPCxZniXz6wkdcKMs/oSI8NTK4hN0cPQ0XppJQsFzBrlOiE9Fgc+zz/XgEM1isY7Dk7z++54qnPnGLZyatfZnozoDnYQ2xwsF35q9a5kfjP3EkT1RxyPWaqS/sy2HWH77doAWKcDkMiO9iiYPVmUu4SexyxGTnn0W6JUTDqEr6EiDfR/4CwAy0bvzdLNqff9xqVwhukHFvh+EGtngOJKx4iEREqkW8TGhMHdQq8T4UFKDCbBMt20a7wyhGKuDFcdTxOphnRIdgGNXng50y/dMm8RpaQW+kZ4teEXmlsP9HmqtCdqh73KgHhKA5m6k3TGbcusQX8RpxS5xkNYxKSRwKjH/XRgx9kPmPjZjHWS4eWzdmDb92hKVy/lGAJ0qG73t+Y4Vqrvj/g2TN5aGhhyKd/H5QXz/Fz7p9xsHidqQ3uWc/dkTOfSb8BEeINpHlU2KCiK4hTKElQwpYs7burcNRRdw7WiSp8IrMFex61TrKTAZIioHCeOGKRfWNoYHCpQ4eCQEFmw==","layer_level":3},{"id":"18a1847d-4be2-4c61-af2e-3f527f5f3d1c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密账户管理","description":"api-card-info-walmart-account","prompt":"创建沃尔玛卡密账户管理API的详细文档,涵盖账户创建、Cookie批量验证、状态检测、信息更新等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量添加账户Cookie、检测账户状态、更新账户信息等场景。解释沃尔玛卡密特有的账户状态检测机制,包括状态检测频率、异常状态处理流程和账户负载均衡策略。文档应包含客户端实现指南和性能优化建议,特别关注批量操作的并发控制和状态检测的轮询间隔设置。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","progress_status":"completed","dependent_files":"api/card_info_walmart/v1/account.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_create.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_cookie_batch_check.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_status_detect.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_account/status.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T18:57:15+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgknjA9Zzn+5hUWkkdnMISC5CYpQ3ick0SR5Mn60NwWCjSgyn9tJBmohQBrkR7351QihXLt4C3w7EHveHmwZ+0uOjcajq8e2trIg/7vL2Cme4X2Hb6qG1dBHe+QewzwbrR+s2ivL2ZBUVHbNTYqOVu/LtKXASVn8WzizsJy8M3YALdi9aGYPVxe3tG0uR6SypskX10rHVKv6iqyP9PqKLMrWLgbgNLidMynnIfiYaJkjwFVWDArm+GRfL9iSztYoDG4zmt01VMPYfJ4U+YAbeI67jlZkH++gOaL0jeABDZUNYnSSh2362J418uUm+NX3U8yQkYuEksmbZ3PjdFtpI6gA88wbWuMTr9NGz6NAw7Y14rcuHcbTWKBcKlkCMLdQk1OCRYSLQK2hgYvzRvoSOyoO54u8EB50zw1p0hZB2ziVMFXXBWMnk6DiBcu09+vJcEBlefqkHYCOGQ9u8GnDPIGE+h8C6mwZXSUbzHspfZBFmwo2rx1jG+GUhuE9Nv2SpsUBbNGCZ1N60lr/D+4tiJ9Bm4TfBLoKnWszoMAOYSmiqG5xFfVrgjVNX1gHz5Fvz1OKyIPfeC7STYl78rHHydJldofyMXxmM6RmJpm9SAf1UBxBPPeDk2u8IxyBX/M3t8Ani8Vr/Br737nCo7r4t3hUuEVe+hV6PTmC9aeTWvT47WbYT4q0T5Td/zg83FeLZXeHo0v7qDJIEu/U1AFstcvhF1cYnrqfdRaQPLC+NvwBVCg61aQaJfyM0akp/oUh2pl2bXudoa5pIPlxiaM4gDpMv6iURLOr7Gors1oSPojgBM5fNUwjbvvmgJztf8PUnnMcHxBgO0EyUfy7dmLxkJDaMNRR8YDGYHK8XHqsiCJtlFDZCknu847jNfR3RE7ND9JehCRm5zReFaIw5d2jd6rtFp9Lgt1kj1+7sK+eHx7U+pXZjlu9q0Bk7DXhc5YZy0R1xu+Z2yMgeb67CVtosr5abLqsIyubLzBTt5gRJd8zm5iNz5U2NDq8QUprf5k4DXMoMSmj3gOwW/yIoVhgQgHPMjGtVelXb7RSYNV7nBJJ2rbyg6eCwxag7sV3584VAbJq2tx1wmkyjLFefQlBayViTVvYDngeZLFo6TM118hTXZCg3V/kVBesEixvchCkdoAjDQcpeNlFNimtfN/j30H/yC9aV/84QqCSzu4XOzK3toJvQ8NHW2Pha4Uepet/xAGYVbM5VY14haqlRwmNCbXmYthr/FewzGxoaZ4ZLdIRHRI9HrN/2dfK8N4cI5wLvZboQMNIKByVy2LfrH5YBgI9F86RllWtvEeWx5gVeV1sLOxB2ljfTHX5co0CG4zoLe+9AU8Bqu+kBtF1m6BaKKkqTV9kLPLMZNmWTMAfVxnfMaj9xjeXLPh8hTT12/qFhJ+pv0/XhCPl0V289QdlchT2ySBXL4i1KrY7iNonoSAyXenxsE5Cf+9d8+UDdMk1whs5qlT9kAkNwrFEuqb0tXhAh19cBqSLOBy90MTvZ3rzZnCVJ4RcABvwgo0m0IzV1PcVynixzVh6/WilxuJ/t2w5UXlw0xDPfv6Oc2QT6g5TP8vmGn0kC+fvw3M+3pNKZnvkH/kXHiZR6ZoOYDFY3/0sslzc5+MG0ppPasXSkTbMgljd2rhy18zfdmin/UDAHeg=","layer_level":3},{"id":"9b95c229-e3f1-4960-a0be-1b88f001b0bd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"主服务配置","description":"docker_compose_main_service","prompt":"创建kami_backend主服务的Docker Compose配置文档。详细分析docker-compose.yml中kami_backend服务的image、container_name、ports、environment、volumes、depends_on等配置项。解释不同环境下的配置差异,包括开发环境使用的本地构建镜像与生产环境使用的预构建镜像。说明健康检查配置、重启策略、日志驱动等运维相关设置。提供环境变量注入的最佳实践,包括数据库连接、Redis配置、OpenTelemetry设置等。展示如何通过Docker Compose扩展配置来定制化部署。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T18:57:12+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kFDscd1aC5KxtjHTjiiSU1zE7PzaGOYJ+Yho6nUmFlncjDqgU9yqAJXFLLWnMcFSFK8U5OwApMqyMqONb3fv45XCiLTzIfBgkcLgFzQ0y4EDdwKWpKprWy1eNnWMb/m2QMKgCPpqHbSqreXniX/AZXrW6HlWRG2TNMz7NyP2IpJraWJHLgyIvbm2z4pNhVvr6Ysj0rsW0R0l7TgkNgMcdDXwNDP135bsvlW0+lcDDQfzIzm9Se5SVnrZ3kvNyrjTxohlXcHT0Ee5t50msXzCmzd9vRkgosb5s/JjS8W1C4KS7fPVWMKJtBj+SJ4qkA/GWprywN3UVx926ASw9p3qweqHyMPrHtT2qcclvbbBYPMVHur4ZV5C4e79F3Llv/1dbpOeaRcRU8zKUWRQfCtEHhYCBqSZQA4SlWIIuXWWK1LkG9KdjiOhuG55EwE7ackhRP909avT9YUaIlA7OWePgUtKquVu8ebZEe5PCcd0CejuDRe+mWjXZijZvzJv9kX0QY+B+WHA41bMELlafHdiYHa1xBVHWf53LBDVVLVSGbUbCl98dWA7QLSVQ/iTxI8yVxOzJpMjaJ58jM8DXTTKb51XFVeyxTNu2T69KFbcV8Z5J79/rMnF0TCDXjB34H7SAKMb8PpNrYkj3vA52bZ4z3U810dt/tXDdsMGTAPdoNrr6pOsdSEKdZcSDfH5wstFaa63KfgXL9CkRoO2Mi3OmTSzKzhMiyOHynZAa0E/H0RoEGk2zT/70+WbcMa0PpsIybvh+2dYANMQAMo/tqstywpcVcMt3nq3k6dxgdbS3HMluNx97m2eqJVvbiJaoUpnONIBK/bMbVjSwca8ccwYH+u7YdVXWGbfAv8iMhLv+y/lVquNH6u0rG0oXjZDPHp3ibfOaUiGjJM0lqvh3Z+iov6WtnLb7NJL4V1DkXa5Oy8NskWxr44tcsnJdgrGjRx1hQx6FYgUdCKdzNyAmQbmilpgi5f5Z55fReLK5Xy2knIQngXGcJjgfcdMZmz72Z1/6I5D61elD4qNhGxWqL+Phq9JmnBpbdxnrP6W2RRdJQa66FDJQqRLKxq2Vwgc6m/4KdNpbCYRO0BpEnJn8mzVlVcj4rNJxhqWLN1qsi7imv+mUoFzDC0/5o1SQqz1/+RXbp0oXPJig+1ci26QKjkvcLg=","layer_level":3},{"id":"529d0827-5291-40f8-8e40-3b0ec55570bc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东Cookie管理模块重构设计","description":"jd-cookie-refactor-design","prompt":"创建 comprehensive documentation for 京东Cookie管理模块重构设计。Document its 架构设计与业务场景, 数据库表结构与索引设计, API接口规范, 业务逻辑包括Cookie轮询、状态管理及订单复用机制, 支付链接管理与失效处理流程, 并发控制策略和变更记录机制, 缓存策略与性能优化方案, 监控告警体系, 数据安全与接口安全措施, 以及测试策略。Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"JD_COOKIE_REFACTOR_REPORT.md,.qoder/quests/module-rewrite.md","gmt_create":"2025-10-11T17:28:55+08:00","gmt_modified":"2025-10-11T17:31:20+08:00","raw_data":"WikiEncrypted:gc3Nobv341FwplqquUMhwpYHBkEN0ku+TLqWXEIgxy0UQLWUWDgkuyFblxk1o56sdti5kYjZlI5e/9//aiJFKBkDd78ybG3xHnXz0MTn8F69iINGQzKGK4TqQpSWY2ZQliezKr2UdZnjwzqLICppoznHXbakAm2QyzUOWVQZbOirkpdpxjk7gmRurOxW1dMAsYiikka43y/oi1n1ojbcfSat4n8/ICGXklUwNR6EIMRUBcixqY2VLabXYVwweAXZdUzH5oD6pFklkfGtN/s3/LOD9cTaeFUHa84FgptLBUOyIflisdZGn33exnrB4Vvey0eohFtP7epUdZsKJ7FlyzF8Y2AvvYgifJrXQWNiovqWmkgQZLL7NAbAwQChoCI8r1KXETsKbVJVllvmuj+k/sgRGnAtlQVThz8GA/JlF4jbTtPyU7z56ETFApMJ0CQFBwwWDKzCytID2NVdaDKxTPDdFaP9qdVILmb9ZL89PeFHJlkSQu6KCrgM1JD3scBJIiDTU4o290c6OwxO9RPGVXtLKu6zqWfoliffwmMrz9LwYx4mrXjSBweS5oCWWKEsqJQvTcB7HnC4CTEWZ+Lx646SzI55kyZAZljFEgFzdxOcNKzfykfKulyPdSzGnzYSRI12aX5zbGppVi5sSRL+UmBujUksoEaSC0bfXzKx+FVgV31WU9Ktg6rL6HZUnbAn+57xNKAgM5Wj5dAZAQSJe2T1GaEKHUmgSRU3sk/yrw9Jo9qKrfWXnqlEVn6RW4XaAZlFmTrAOU5s21XBPSI7XJ1q2YlDuGzz4E5AL0XlQmreUmEJxuLFbRDfh03Fb8+ylZ7Ahkn5ErmQKQgk1Wat0cEoX1WiIKkWJBsHaZvn4F0VvzF5QA4nrpU4Zk6cIvKS/EYNQtUtJW1HBIWr3QK5aJfqYu4KExKwS8W3ntRDiRHZZrhmcwhpMDmKUOOtD115"},{"id":"9f851a40-0195-456e-b877-f1610bee0ca0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东订单导出功能","description":"jd_cookie_order_export","prompt":"Create comprehensive documentation for 京东订单导出功能. Document its purpose, implementation details, API interfaces, and integration patterns. Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"internal/controller/jd_cookie/jd_cookie_v1_export_jd_order.go,internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:08:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00","raw_data":"WikiEncrypted:gc3Nobv341FwplqquUMhwjlgKxBeFfGk8njr/gp7X4kXK9AjWAttEPG3zkYm+jNLq5Sst/T2neRmqO1ycA2iXqQsv07j54mz8rBDiQhxkUwINaMt+UrT+XKMrUvjEX7Nuqhz9vM5qGWKe4wNp8o9wUlfzV4Kjt2OJFupCAoXMm+EISO3vHjWMnho5Zy1i62p85KLxgMVsPh2km6waDCup0YdCAZPwWmti/gczT82Oi6uoLPSEzS9J7Upfpnxl1+P7z91hyLShzP7rzMUEKBy96xQ46YjekjHIp4AYC0xW8GyqN8FQIss12gVy+so8xEOJtDjyaKhkDXyLFY4+UzHSxZkLX1t8+ubCSD2WMb046Jfdb/9GGF1RkzU2e7WaFLci05oVxImePB9S0qNfjLniymSwnQDptD+gDESq7PQ4SixPFdOxr2bqyJgnc3al54EvbXPbGnHgOOql/8jeB4cS+RzKv35Le+6meo1Ou1kNrLrRYXhnm0kQEfmuTda/C1jig59+ckPZ/QwIT+/OufBfAdfh2AkTfLixe6NpUq7mp/4OcfkdijUpltmXMqJxqyDZsCxbS2e2Kibch+bsFnEkGlS8qkHUVH9ds9EpNUuvfo="},{"id":"816e73fd-ddde-4333-9ddc-b0bed7d5d9e0","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单回调功能","description":"jd_cookie_callback","prompt":"Create comprehensive documentation for 订单回调功能. Document its purpose, implementation details, API interfaces, and integration patterns. Include practical examples and troubleshooting guidance.","progress_status":"completed","dependent_files":"internal/logic/jd_cookie/order_jd.go","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:10:35+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI7/wfxTRVBfX0PW5QbxIGkOuWo6CGgQ7+OLX/BVj5fw36u/LmvuB2hEnZUvUgtng38VCnBwGT6hQhX601zUkA49s2aWZtGIFyW78W3BcydQz+h5mSrci+pR0i6nNzI+toidJ/QAfyngC/sRCwZc5Tm8f88JkgS05ROIW70m3Bm+LhVtCbCKe7JYldXcUgUH89D5bfSUel7ZcQ6pdw03fmXcDAlMxXA1jkTLyviLsbM4bsE4ekbFR6dtbn5NwbnrnrQCFvgzAeFa+3PYCsiwwMFXj8BdcvB5BPH3awtJ2W3ufgOrvaaMiHlZWt2qEwUlHkMHp5rSU2LLWkm5NJRqEAcqUjVFtSl1b+tFMXR2LaSl0MowZ+79OsRdjr9D3WkoOrTQ56LwCp1MzS6p2WkxdLz2V5JH/BgB2B3u0btDgslyWU6wII2AUBbtbFAI1LNhcfDeYEfD7aU9TFb0ufVh8/VZPBabw6lLb5Ap1/2xIq6ow"},{"id":"802f0a8e-251b-4bdc-9194-bfdc2122b3bf","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"技术栈与依赖","description":"technology-stack","prompt":"创建关于kami_backend技术栈的全面内容。详细说明项目使用的核心技术,包括Go语言、GoFrame框架、MySQL数据库和Redis缓存。解释OpenTelemetry在系统可观测性中的集成和作用,以及Casbin在RBAC权限控制中的实现。描述RESTful API的设计原则和实现方式。为每个技术组件提供实施细节、配置选项和使用模式。包括实际代码示例,展示这些技术如何在项目中协同工作。解释技术选型的决策原因、权衡取舍和约束条件。为初学者提供概念性概述,同时为经验丰富的开发者提供足够的技术深度。","order":1,"progress_status":"completed","dependent_files":"main.go,go.mod,internal/middleware/auth.go,utility/otel/config.go,manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:21:57+08:00","raw_data":"WikiEncrypted:w0CkdCdnXCcvlN5xOpiEhEX3U68GI0Ngj6azFMJo9xQD0Nwsj9XajeArLn33w436LuYJWl4xP0dT9zLNODhOpJWtrSnsTOFdbU6xnVdYH2WhlC46KME7gjNRiRMPuUpA7dVEI+NP5zwBpvDMRHvIrAb68HCkCmtSyGQKZSrTNYL2NxP6WPImEyXoT9RMGl6UVv4yJYYr2tmXUjqrJgnZFvSGQtZm2LCPWlIAAFHHC4Q7BPX22tszuLBPhoiVxcSCqHIJiooavJWuc9VeQvWXs2fCKn1YDu2U2lNO5216USYVnr3Ut7tqWoVNIJ1CpoCkZS4SeZ0CLrx5YeUFItmKKJq7XiPSfKRFGs1zfEOKcvdyL+RkR9+1SKIWpGzGcTLwP6CtuQ2Y71Lwv2eE2+xopuoSOmPUTGRVBglkPMwm3/EJuszEoTr0cKi57UrMxc1NcOcd5mXvE/AzIQBMbRyOCWtrzO/qpYlJATnhh1i5L3NpdMDU1vvxj3LFPSHPylc5OvLVkiNtifBGe0YzzJMgyhtKNTjc+BRy/nugT+hlJtBU8+sAxmddiQv2tRcUALDh27u9r/VslWIqKZBy4imfsEo4Hg39v/uoP1SVMfbXOa/A42Ogvfe98jByFSvFdw5Q7mJwq49USkBzCKL8ax2Oe3f5FWNRwkGPWr5eVK84Ho4igv3W/eA+2IytxBe60Zdl/w71ClZaknfiSLFsncBZrdNHC02tPvqStcReEZKC0fwXKU2+zIR+gN35Dae/0/QSY59okC53Yoy0/7pXvl/UJNajz4gJlBvI8m1eC1yLFB6FDzvCPnNR3tlb1IN9JPYf3aI4yc0QddV+sRB/h5jcS1wpB5EwJhrwmmf7E83hHD8zxcy1YAC9LgvSjW9ib+JxZniOiwBRdKPE7mt69R2mqktSW4IQKnoYx4KJpsoltWC7XGPanW9wUXCkEYyhMDwEnSBGtwlYEg7lWpsl9b/CBzw/9z5cnbQBei4HDy/DDmqVxAit1VDg8oIAnAw+fReuWS5W+teFhuCkPvq4pRdb7NiWyV2LuCH7ixYAlIBm3YI4/2Td0Hd0GCZdpoepj4SCzQSUr8RKrse1IlTyID2icWpeks4xJ/cQnH1xw7sL5u52nipyQ+T82gQ+hbkM2i5iC899sK23Rdb7Ug+hKDlaxVoxcsaoIfPvqnmnLRXHxsSMsJcAEuzAd8adU9H0AFTMftLv+1oNmYj2ZhWDZZqohcUOT01qCqx1pr5WkYbE2VXp6Pqpa08OeoyK4z8XPOX0"},{"id":"5ffd09f4-939b-4b8b-a254-494937471526","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单处理逻辑","description":"order-processing-logic","prompt":"创建kami_backend订单处理业务逻辑的详细文档。全面描述卡密充值订单、兑换订单的创建、查询、回调处理和状态变更流程。详细说明订单与卡密账户、支付渠道的关联机制。解释订单历史记录、订单统计和订单汇总的实现方式。阐述订单处理中的幂等性保证、事务管理策略和错误重试机制。提供订单状态机的完整描述,包括各状态的转换条件和触发事件。包含实际代码示例和性能优化建议。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_apple_order/,internal/logic/card_redeem_order/,internal/logic/card_t_mall_order/,internal/service/card_apple_order.go,internal/service/card_redeem_order.go,internal/service/card_t_mall_order.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-11T17:28:54+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI+WUf3/2c54GyQsd262eumPCPfeIDLF4ZKJTKT3R5YZNkPz3T8xv/2u1DVwEwDzhtyS35ARhwhlFbL3eDQbUoFzXUP1TcBAEZa9pBoZu0QVk5rpIzwDTJRkSX5j8Oe+1eCdRpNuB8tCuTkIcj3PG1Xj9BkXLyBhcB+mdqhpetnuBg1VR+tkxZRofLH3u7Ua4YdpFim9HwivjZIisiG1NCu8NKhUXgBbPOO6e10f4AFLROv7zvd6WgTEydkP/qIA9ZePQdf3Q50Ll7Sf7167Y2NH6zwpj1apKAiXhXKg2FqkNr7AVzQn2vEbrGlCdmuCqGEtXX3FfsdL8uqUiOIbwqoV9oLAMEdlpD2v5X/yFQZw8lzc1kg/Sj2jIcckJaiLWI2ADsMQnCdJgU5RTmbC0JS+sYbiHL//AlRVxdKU489qRB0aUGFdZ0LyvJwpez3SRSke8Fj3xmQePxeQHqOolg/q3mthumyNoUf0Kb/3u2ssO5KEMc8jBNQsJp8xSGSEJjwgXbc6GYNe2GmuP7uJsQb015AM+o6ITmrfB8JFKUt4DjcbXlzSTowFqEpoW2IUUXfsvG6eVPTu438PLXJa6NI7dd3InE2u0YLV4QLXcXOOtlNGl+VFAiPRA6pxCR/MYAjxYAsoASAUQXMHZwKSRZOhFo+b8NVhrrMMswoGJuv+OyGq5DiFihJY7crKZREtylnXj/KzS00wRfQPTQCjHTh5rQZJlKIcjFZdXvSgD5P55k+UtX4HzUfOmHWiN0fnunOY/YnMO2un3U1nHGnIFoKgKcABdN6t2D2LI/RC+VgTJcsJXT4QYBlharDcrYW2xmpl6Wf9kKRaNc0yLZK1MGuLzcsiv11kceSNGvjijk8f1u/Emuaqq/fcCJqaD/sGyexZ7Kgi/WTc445yqv75vuVm9ya3E3OZJys7E2gtTwhmmzfL4IZ/6xHddbR5+653cePDH8FLYsxoz0yDd8eEUd7Q1Grl8uJjUDhpog1BMhzoE3jM2gfqXCecpzv/t/R3OElbIBovAWlN8W3betCMgzNeFjmIP3yRdLS5vzdrH3i0NhAQWjxu2v0LXC35ft0sn2QzDB533G178KMtJoFJfVnvFdk+gBJzD4oofWysVxP68zSYSBhqvrMWI22nBMDn8/sUDhxyzcFDcC9i4+Bsf+KPDUFMCYZ4wBwMK/OF1Lz1Annys0TP5AVZ7zpy3T5+y03y0ZqbKhStizhiiBAi4gD8fcP+OGi4Bzx8vOj4wspmBHfTPfJ12Riv5ijeju1inZNV4U84QlFXDzUUvdaSb1TFpcaJV9yDF5HvWOV57diArwR8Z+bT1R+p8Zz9bb4dpsw==","layer_level":1},{"id":"4bf77667-f501-43ff-8e67-ed1fa1562255","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单数据模型","description":"order-data-model","prompt":"创建kami_backend订单数据模型的全面文档。详细说明v_1_order_info实体的所有字段定义、数据类型和业务含义,包括订单号、金额、状态、时间戳等关键属性。解释主键id、唯一索引order_no的定义,以及与用户、商品、支付等实体的外键关系。阐述订单数据的验证规则和业务规则,如状态流转、金额校验等。提供订单数据表的模式图和典型订单数据示例。记录订单数据的访问模式(如按用户查询、按时间范围查询)、缓存策略和性能考虑因素(如分库分表策略)。说明订单数据生命周期、保留策略和归档规则。详细描述GoFrame ORM框架如何将订单数据模型映射到Go结构体,以及DAO层如何实现订单数据的复杂查询操作。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":1,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_order_info.go,internal/model/do/v_1_order_info.go,internal/dao/v_1_order_info.go,internal/model/order_info.go,internal/model/entity/v_1_order_profit_info.go,internal/model/entity/v_1_order_settle_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:28:50+08:00","raw_data":"WikiEncrypted:1TcXmWRnDAgI41cGfWTUk1R7Ob0dlO4iS5md97HGy1IUcNsLG/EGmFW+BE7FWuw6SWfHaCr+3MFY0MgqSzOl1OL2ZM9TRbeL8AfQEc0ln3MMKbJQCyDbnjZyYdY/LJJEcsEHhprJAw8tIkRHq/yYKI/FQE4+YkVB7Cxhfi+vNWM8okozNI1ndjoiweeS+IlD3Yfyxq+htkYw/Fyfy5PwyH8qf1tY9ToWSgBkaGm0nl1J7yTZobw3ISf4Dr6L+VaMy5i9Wt1e4xnz1cKzeamnSMuW/ntuDaTXGzqypeuvRNCLYSWE3IzNMuJlr9KIZbOWsrhy+YY045ObSUF67N/A6BUP+0iSk38A1T/E5+pI5JhlkIld8iyW411EvFzoVzyciwB7Oc6uFqVG6VPv1UNit7STXIBiGJjGQSE8aUoqOUP2f5RqWcUjidoH7+Gjj1TlBryTcdmu27PLhhzofQYQqR3KKsKQg/fTkpRlzObdnqTkINMqBINpscAMsO68JlXBQ87nMRHflBa+KzfPIo9+M+agfc/jCH3//VzBWsObHCqSQDK7L70o0bIVQSrdVd+Hcr2jRepyyVTEbh5JlyXjSjad75lkuTZPIO+JSToIqj7FspqO4XxAN6syEKlOxVJgXDkwys+2F+avcGxsj4eCMnlBzckPEWQh4JFOY7D7Br9rINJtG5LMVZbbbIxKAVbgYUFH6PnVTGtkZBxyoI6tRX7SLvBJRLztV0lVk0JTcnUM2z4poezd3nmEHAWf9OMGY4nImos2OuYgEXFJh4eg9hbcZfUcJzY7tjgfkaX0moVwltRVq8E+Nx4+aHaPlP7k3Zsfk5uNA3Hy0f1Nd0Zl7bdqfpymAG0krtNjxarmim3QtliP6m+TdinGDRRk5qWRUlvl6rzFALN8H5IVMvYU7Kx/X3nTO9Q/VWg96lS/O4OKkO7ZILzgR4og8ulXKnlyT2DSistUkyBi5oHlhvzX1AxQvFcB7tbuiJEcnbDITKxOZbEiZhn+Hn3RHNo7p317l2W3jSbBUB8CsITZxd9AVDmEAkqGyljFIeDeahooiZ4TexZR/g5OcHWhj9oPkevPKLubVVYLNOFsTYyhW/JqjRBQUvdBhXchp3dGk+J7ShGwPd8QpYEyya0Qp+oEwSKHatFjL7CCd9XVcISq/eGmQPGzIIFQUzatZKGZMhHWrfD+8ZiaXsXdxKmL6n0ch83LPdUXeLKvH8xH+TFsRTx6tnNoLT5srj96a/fvEoiULLNhwd/XklSwmBC6E10Y+H+ypV+pBstWfpyChTgc9jSiJ69+jPs4vs49ypcBttV6yQtBjmQrlN+pk5pfjuaW0MBmkoE0MAoyLn+NLEPlMdU8NudCbRyh1lpIUyPOYdTVFzzdkPENvQY7KrzMhlP2vMvDS0VjDFFxLYP+CKh3KnvYVfn/AbDOXKYyPnK+ReyMlw8sjOlW6FCeVmd3C/6mosV+fOfQSy/jUiFHe+7WaTs5TCyPZWPnx05rHh+qTi6A4JQcWUyc1CXLWHc+1r2Uujt/3JMOGBxu3qSFz3ZQuU+34En5cNwe2W1lvJCdHcErhmhYPIXOzEPJYem6PmeNC3Yu6jjLiAVqN1ymNC72laPCeVZIq0h4BRRQh0Yl5XefaCvS2gTeuFS3wcNJAjGam9X/mEAU4ZJ59+7IcdoCS0V/W+QYTcDCpAQ0Yg78TnDcDlBquQyfldjKTpjv8ThpZN1RKcB17BDr8xAwX1FBjuNUZ6EW1Rr8ip9RLZHUp7fylWm2TVFy3nXmxuWxre7PALO6","layer_level":1},{"id":"e047b856-1a8e-4ead-bda6-66d7c3ab4651","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"授权机制","description":"authorization","prompt":"创建kami_backend基于Casbin的RBAC授权系统的详细文档。全面解释角色-权限-资源的访问控制模型,分析rbac_model.conf中的策略规则定义。描述权限检查的实现机制,包括如何在控制器和服务层进行权限验证。说明角色和权限的管理接口,如创建、更新和删除权限规则。提供权限策略的配置示例和最佳实践。解释权限缓存机制和性能优化策略。为开发者提供自定义权限策略的指导和调试技巧。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":1,"progress_status":"completed","dependent_files":"resource/casbin/rbac_model.conf,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_add.go,internal/service/sys_casbin.go,internal/logic/sys_casbin/sysCasbin.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:29:44+08:00","raw_data":"WikiEncrypted:Jgq9fCpm/NkqSNIWYhs+n3LeaG07NGCrNcYdQEJMIJmIZ1iPjkNZvT2RpQnX8LDCXRavNA0RTry59fMEhV2iRgG0UidHVojrlOr9wca5f5TTnM0+7u2hJkLOvCJh02e4OasOcajoQDCJYRPEvGMwroqJeEBFOqPeNbEFr8YSlHBQ4kQac5MP3ErY7i2RdzXjaISKkyQnXsz6CHZLCe6Jc9k/Bc35KEHacgylbsyoaIq+IjchEulTpgxDXhJ9hyzb2PtqtWrpOi8q4lEI5zSD7keA0XHr1fkHeO9Wqp2WxVJu3GV+9i1p4F4UOKC5oigUZpN5oC89zXMMJycG+KWpDBLV1uVnFM0QvCe+Sods2wcyBwh4u9Os0xCsB+LnuOvsHvJ/nlbg1SP4r+lNcFgH9aHkcDuglfuq/uqbP953Dwciyb31t/GI0MDEZ4oa6QRxRuhEd4wqwXiaEhtZWf8OCnYwhff/Jep1puFl4BCxqPFZEEpeMlC2m926O/zUP0rQC9Ufhl/N46tVJ16zr0hwRoSETnCsyudAIqE0no789R/p2ySv5Oy/JXDGVORLTWdh1hWxJmnn3FGmIBoG8qaO99VPNz9f19v+cIGrBliOGIj0NkMQRs4vri24/lOx20ZfTwi4zYK0M9zC2I5iGUUxh0dR0AKrwzEw7la1qprAEVtuxf/q0GL7+oMH6cz+jXitSlWAdLRdQXHcjTwodPKh3Lx0favJ8wr7Em4q6/BOGw7RRrpajvmwvwBJQ9Df6j2T+BWCILgA+HjG+iHy7z0CPQI45ZnqzsAvkvVc3SLpGbuMDaRkk66OYbpJOgUB0/Vwer5o8ujRZuJbN93gOm/FfHAL2hNPil/xW5IPXii50A8rAeRSW5lopgO+AoBNtoAIbEahpFUdQwE0Goq1KE6VNwFYbMDd0RJh9zx3hWvfHC5ZWxdNw1d6XvEDdDoXQ4y0YtnTRKUQ815+gd6i8hDS54YTp9p9Y1Z9ivaIOYljCZuQFAs7WYiXGWYeg8OudG7GRsOlTk9annGxH1Ag/n/g638OMH/Ky8R6f2ZsyQADvPNcJuOX9iMWAYs5b/RtyY/WPtzSNTSB8bBZKM4cz/pYxQlmQTR28p+cSnX7IfeEYAgLk+8pCEirf+woRHrYGxC/YviB14bPrDSrv+v5TARuzFxKS8KQ2hKVdF0/ajde7J87lNs+7BsY7rUbb6UMsliP","layer_level":1},{"id":"3885dee9-9a55-4da0-8506-1a84306cae21","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"监控系统集成","description":"monitoring-integration","prompt":"创建kami_backend监控系统集成的全面文档。详细说明OpenTelemetry的集成实现,包括追踪(Tracing)、指标(Metrics)和日志(Logging)的收集与导出机制。解释otel包的配置结构,如何设置采样率、导出器(Exporter)、资源属性和传播格式。提供代码示例,展示如何在控制器、服务层和业务逻辑中创建和使用Span。文档应包含监控数据的上下文传递、错误追踪、性能瓶颈分析等高级功能的使用方法。解释监控集成的技术决策,如为何选择特定的后端存储(如Jaeger、Prometheus)、数据采样策略和性能开销控制。提供监控系统常见问题的故障排除指南,如数据丢失、延迟高、资源消耗过大等问题的解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":1,"progress_status":"completed","dependent_files":"utility/otel/,internal/cmd/cmd.go,utility/monitor/","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:29:59+08:00","raw_data":"WikiEncrypted:HL3VqGjXq8A3aGeLxAjVPrAH/UrhOB11piGSWoyOV2dHVr0n3Bn0Swd0H0gYOAdbVNKbTmRhvw1HJM5/Q01+URHbU/Y2+Djgj9uGcxhMk5cHiAB2TiFj5tg4C/UkYPXIrWDwTdHLdRRcp2V6mOpIyQ1VYlBfNYtuG2wRp42Z+/3bBEIcC+3qsYn8OaFjpKSIAb7FdpUFBciL6M/Cz3oKEQ1x+wRDtToegQWuLK+PutUEfU4fTY5RmVLo6obONP7Z86RTzzERt1QaKURZmZz+C3dlis7l7IYwuic0fiH0WlYGqP3ZHUwurg0vj2eoYkhGSDg2PGUyjOgvO5hIkFEmRWgntr/LrMW5xU17+bnpZAlHWqRP12yvw4Unhvv6C7hw8bk4RWkI4WxEtEMeGEfOAgqIFnXYX/kXT7aanjvdFBbdj61A3GcyOVE9+ELXUY2XHAN4dh1k4NNzNS+z7uX7w8npZUVIzJMb9O0pZPVSJ5ynjrZX8w1k8CpU8c6M2orol/fUttKuMCEh3K/7YZwnuqssxlrM1Em1LqeaImn8QKWwUvv0ymyQc8HzlXCVqkyYKt5lkr9LSTQ4P9BeXrqXGW0AqC3ZUT6GFmG7IL4dNpjZVbbdZ63c+bVqJFrc3VDYaHNR71iLMhckXKIqy1DGe4c9rQ7A1ohCi+U8v3sV9PaXPKI4EOXyPI9tw2OooH0DBXzUMUB4Q4ZnXv4IedHG130GqLFaL66h5kI3ytLXWeDFEX3IJGUaZXPLHb2FnnNyOqJam8OyIbKwxKZnC/9DZTLG67MZ3x0h3Bql5sTCKKDd6s31eRagURn8oamaCZhRGiXfNVE+syT8rpCXCvRUS+ZG3PLPexlIO2vsW4svMqFbHRE8JAMx+CAo2ijQsNfSk+8T8yS51i1ZrADladfIEkm6Sle2Q7O/UiQU1T144p0x9B/j2gmzyFUhi2AQqc2sJBc8RPEOIiUZIzmG4A/OxYLboQ4d0dNWsBVIgryijVdKMsdhu7r9EY5Y04rOE0oGPhpQbRRxgn3lqp/ar3dVNJEwsGvJkTOXYB+YdN279sC8BMPv2FIpOG6eo9aS0S35wZifJMcsUxdAwMF0+6zfRRhtmZbIO4jaev9day1xzb7z+riYh7PGZmEBIlcAVAZijgCXDRaGAfl3UozNebRaMPpkgSNoC1PAsLZ9iI2bH6O7LjO78LGzXh2CxdITkkbN7tWe1d4FArATCWLjMeJ2YdRpWhVS7CGwFOY9h77wSLiIzp5AxuHQvzQQib0YOpn+pF4x6n6JuvUO2OfEX4p0JEi0bqVC4QC375wgrU3+1SjgBgNk9PGdm6a5Ya2vEFTmlXFdHkAsB8bmXE15lm4E0sT18xxsQMJpyizPwXOPCfqbbyKhdiawTzJUl9aA7j+SeEZY2sT/Q44UXLmZm1uqB3wjwH/qcmPv9my8fFKC00IQpNmmskyEPcp8qBrrPOAe","layer_level":1},{"id":"3c6ca985-3423-453c-9f11-d9030f798abe","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"容器化部署","description":"containerization","prompt":"创建kami_backend容器化部署的完整文档。详细解析Dockerfile的每一层构建指令,包括基础镜像选择、依赖安装、代码复制、环境变量设置等。深入分析docker-compose.yml文件中的服务编排配置,包括kami_backend服务、数据库、Redis等组件的定义和网络配置。解释不同docker-compose文件(如docker-compose-local.yaml)的用途差异。提供容器化部署的完整流程,包括镜像构建、服务启动、日志查看和容器管理。包含性能优化建议和安全加固措施。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":1,"progress_status":"completed","dependent_files":"manifest/docker/Dockerfile,manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml,manifest/docker/install.sh,manifest/docker/install-test.sh","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:30:37+08:00","raw_data":"WikiEncrypted:OYVOcFWO8QG2KTNzD99v4xxMusUyWhQxf3J/07wObNtFIyC4CbcNIuFY4V1ewVc8ZQcA3boon6xnUDfRpiaK2BRUAhlH1+fbuKhTMeIFLZYAHWpeiuXeHFl6FjFS/Cz8hv30Yi+prZq5Jfywa+60mlYxpaLuPZRvQ9V2zJsOxq1B15dUxEuRufn+MrL0Neq+z5sRR1Li6Gbk2vOpCMwAS4vt5etXp8EZqcZVW7KSxQ3bgZ1Pb990BioH3X/Tz0KQrflb+UBdIuknD2HkRxU5RnOoGPbu2nkZ0C0hTPDypRuyqKytb+l2q0Dkn8T7Qo6ynR+rsTuCWaGZkc6VZ1GRE7tqWLwW9OaS41EEsLeWYYpxpKvxrHirUd+44TdZdrQ9oUJK2nb0N0NiUkw32CvxFFbPc5W4QyrL7iXhaG6Gj6061EFeHrICyE5KcKpAf9B1eRQYVz9iiPfJURNgeZ+A1xXjACHfHcxHGOybBmMNqd6tzwXUuSnr7aZLcIWgX8Kh7nqL6JYFEg4xUjGLwqR5xCb8oJoQW88R6ziIRJX3RBOgw1cDcItN3SWIf8LXr/ZEheooWu0UecaT5Tt+OarwjqrvR+VKCn9LybaKKxZ/UVF0CB6q69JqoS8T8j6arNZY1b2rh79QCFJzZCBBRgRXmyOZ0cVZMUjEh1ZLGyRccqettD01YdFu08Mmtoo4dbvPVQ5mvzf8pPL78wGjmH/+KH0HIUU099OhBPMJVIwnTlJpGnck+z4RgezxjodsRlMsKqNbB/Xy0oLHreagPvqmPY/jcsorcTDDSTALmdq6waozV2NC+WpiFT/4qtF0fy5PlWRq/3KjHXPdCikpQhfAeZWdNO42wtMH+Qaj1/WI+hU3iXHQwhTDIHySs4Dj1/2TXRiSvvWiFSKNrR6LmE/n5lF0f9aRKlL6xFpbXgehEN7k87Sm8UsEHEB81vAn/2grydMlOYXMvKZBk1djbqUTsexUoAo4hrL6jD7hQDX+TX5UVamMcz76YDh6+nSw+3++gOtJ7x5OgqmzxSaGtgM5I6xiQ6mDrHzeYx6JxJp4C75j/C60IpN3S5/rOUcPQUNXVzK6SgprGfIESnUQLqnvyJ/C1GSIjeMgnRJsJ6NW3wQ5w3yDIBQIBxTAcL1a3h6HARnuuWjmTh20uv9ySipFsJpA1MXbCiUUMO7J0Oo9N+lIGB2Jn1z3oBrgqUDA6uVIFMwtLdhGRvcdGEtx/RPV8Z+cJCV2iezxt2xj2rfx4T7LVYqsI9sU88RdNwT6Kc9S","layer_level":1},{"id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密管理逻辑","description":"jd-card-logic","prompt":"创建京东卡密管理业务逻辑的详细文档。深入阐述京东卡密账户的创建、更新、删除和状态管理流程,包括账户分组、扣款规则、历史记录的管理。详细说明京东卡密兑换逻辑,涵盖兑换订单创建、状态管理、历史查询等核心功能。解释京东卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户创建、兑换处理的实现细节。记录京东卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/,internal/service/card_redeem_account.go,internal/controller/card_info_jd/,internal/controller/card_redeem_jd/","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:43:18+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rUaSoXsxiGw9O3wpAWVX5Hw9Zn+t5brSy6DKjiADvUn5zD80pLs7e6Rkb+ZAlcoR/eE9ccXFudltqMag2wVsQePcUFo+mDT2nXjsqLT5mA40/IJ49Ru5LCBQbhNci8QbxMRFvluUXdUvuenc+LVNm3AQOYOQb89aMmsZsVDljYVNe+DYDHhn1OdSnbB1AKBs++zJFjWL+nFebpJ9CY+McwdmT3zg3RknR0qEqbWPo4s6NUSNZPhPF+SlzrdZ3j4cu77xkyDstaH9mreAGyhHuXVsdFzJmURaJUlHUm8hYUdE4O7w4bBKxgWZFJbLgMVTl6UZUWPwrNr4CcSCZgiY3Y72c2iEwwNk9aqysdXjbO+p7Ec8ZYpv6rEkhDmF3uuk24EZEjwXvp5I8djNFI5LRvdtG3Ai10AO86bBZMAi7onQQatHdN+CiLQ+Ur4i0gEAexVwE0OZiX4RzpbmVoT36NSPmddO3GgUxsjod1vqalZqy3gIt1Hs8V7HawKDtH7IzhQEvYgJrG23vzUi4V2QXeHD3fF4vkPByfMCRbNyGcv6o6/hW4eb4yPWX1LwPg8iEX9imx3TxqA/8qsHTMfJrmtP70NNzXeuMnQ7MvIjlq55Nx8wejsRWuEFaen8j2bbwCN4WaQHXEaMigx+saSsuifW9y3CpctQdISZv6ap1+3urMk/me1OIuSuaI0EJQAWsx3J7j6ecoA70728mZR6G6nih5Ggl96zSMJ1jN6r1WOXuJtMff+thBaktZMtVZfeMrxkSFR8TDMkRk51Lr9sWx3h70qF3rtMHB7rlV/brkmCohMKLNZW64EldtqyXQJI4tIrzKSMtXGp60yMJXulcx6L/jmYF9VK71omKqV2EP1N714L9AxSKjz6iNubOjoHgA4Px9MPP+1YqNczN+33A+DCiqaXK3Vm5REcp8Qx9nXK6tY7rJ5/Fs8/2sdX6zOZ6AeMkD/MPatdnA0yFdNeOZSOC8xbUq1b6YKXG4bVHx9lEsR5O0o0tjqONmSgxLUVWjluuHRdwACQNFlDW9U7SoAr6veu4VYcUSmsrhzx8KQeozPeBcsnqqU2ydBXJzZHYQBc3J+YWJSYH14RGEMaFrv6/Nr6VHLMBw+f8RjY05OnCeLDNe5B65tFrMVSCYcV9rWfdRQd6wsvz8GDwm9S25YgjhWvZ8VsDMa51+d7I9sg9vzz/zDQoS9HhBLYVfkX39aSxM0fxN7tkMUyCmaihme6RTMwIQaCAd4wGYLxckiUS35HK6qEUGKKUQNloHn9b1hbVmMMrsNNoCaswodPc73C9xNhGEp+j3oduB0O4cF5cOKqcivuxvAbgm/gTTig4wjmXa5BtANQsXfwfOs9b8cxzitekmHWMcpSlMFrSW/6Ku+53nGXPrRe9SXxaowk7Q==","layer_level":2},{"id":"fa42c78e-0f93-45a1-8ee8-9cf8cfac869e","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"地域限制机制","description":"geographical-restriction","prompt":"创建kami_backend地域限制机制的详细文档。深入阐述基于地理位置的访问控制实现原理,包括省份限制规则的配置与管理。详细说明地域限制的查询接口、数据结构和生效流程。解释如何通过IP地址解析获取地理位置信息,并与限制规则进行匹配。提供地域限制配置的最佳实践和典型应用场景,如区域化服务控制、合规性要求满足等。包含地域限制与其他风控措施的协同工作机制。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/restriction.go,internal/controller/restriction/restriction_v1_query_all_province.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:43:32+08:00","raw_data":"WikiEncrypted:P3NkKI9iTG8m0x1wQHusvRv9W28aLZc7fU8yLGlEjox9OneM+QWZz8mD/lxQGkCXhSKurHn9FyuzwAEvgDByqBZ7wI7cF4nt3mVvixHgQ68puv7ji8/e+4o3WVDe4+8vsAtEyK9fl7kY2GmlYHgX0y8CvGKG6niBx5OhF5+v8XLH5YnRx9SxDy4oOvJlowOdBp03CrXgMsnH0VMGn2e4/QNq3zorUijFq6hhThfi8h8K478JvG4nI1rPm9vMqxW+hL6U7RkzvqGkz9JOueW0yldQCsHXDBvL+C5xJEze5E7wVO3Ii37LfN2vZHs8Cqc0hzx5hSWDbwjyqH50a9fr+JtvqeNiM0KaHYkBcDULqYe6L2L/o2nIPOEYnkp6iJEAcjpYE9Uil3xkjX9KLwpxAl942K6hi0dsmT04Y4g5ZEFA/sVUuCDQweNW4jNCnt6tYNFaNmX9Cl0DvquC6gdsdTY175dRS5x+0mJHayZQeLg8CY2C/Rrztu4qJL5gQjgMwN8ecUts0GQfqTBCxI0VNfEkQEy3MGNQTABdpNS9m0jiCnfRitMZoG8ap6PV0AmhyH6VQlPd8pJa7KCdN9lkv1rqGdx5G6zaF/MZPfaPJFpdJiWhukBzzxdCNzmccBJO8ylIedjYCNdh+rN30rCGcg3gf3szYxyxxodXhMcXDflzinnHCi2kZpQvpZX7u5c/7MlSVjj6tqjWsOjaZZPomhTaaLW2R6K0oCYyAyy4XxIUUTpRo2Vpeq3YROKE4BsXmz9v8sH9g6FWvAP7Bwn/AuYT0wh4JsGAgA+NBe/PdIf7zm6nADsvilJy42+JjIQTsnlFqclbGQs3yLqQApYF1FENA4b7GX+G8Gduf/8IVRXywollxZevSM+WHtGM9LtCGcUjAJdQNPBQs/ql6UwlgkK5yjLQqDWnFyHm3VI9LWUUIQmzNtqqtYBlLuxxfpQQygRbNIg+Ys+aHYHCVG7z6UDeJaNJur9jH6MVvUUbooHkZq8h90d3ogGd4tLH3ybQxWv5e2eW8CASlRvdCBfiztC6UKnv7akCXv1yBspBgGcpoKYxsW4OIn3+3ZqgS7KpQ/eB0oNS0QVFPXu8Jh11AcLQSuMJQrNqXMQRDKxVl61YCpSVl2XH872xJkI3upUWdrpkcfTy5QD16RHGL/Q55fVpHpTf4FPJIxxf5vbC4u0=","layer_level":2},{"id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户认证管理","description":"user-authentication","prompt":"创建kami_backend用户认证管理的详细文档。全面描述用户登录、登出和会话管理的实现机制。详细说明TOTP双因素认证的集成方式、安全机制和用户配置流程。解释用户身份验证令牌的生成、验证和刷新过程。阐述用户登录日志记录和安全审计的实现细节。提供用户认证最佳实践,包括密码策略、会话超时设置和安全防护措施。包含常见认证问题的排查方法和解决方案。","parent_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","order":1,"progress_status":"completed","dependent_files":"internal/logic/sys_user/sys_user.go,internal/logic/sys_user/totp.go,internal/service/sys_user.go,internal/controller/sysUser/,internal/controller/sys_user_login/,utility/mfa/mfa.go,utility/token/user_token.go","gmt_create":"2025-10-08T18:19:01+08:00","gmt_modified":"2025-10-08T18:44:56+08:00","raw_data":"WikiEncrypted:SmmNTSq96N8aZksVSKE+83PC+cNK/DfBO+OUzl7+L2l2e/CIGqmnuvQf7qkuacMmnoLkipFhcdM+cLbUip31pYXUt+XyL88CjpCGtcV6WgiA3HqAdxPgiOexv3ElMAo/PDxaz+XbGSJxoPBZtHoB6NNUkOCuJ5XBXj0Hr1xrVx8wlNClVHsfL4T+uVK3j2jS0QhXXuyonPfAcspk5vveTDxeOyjeihNnTC1MJFgsMMw3+Jti190Cck3TrSyDb3h6qh/PZb0gRGz6yWJTQ6zKuk4lc9rCqAA7hMx6cwfzrOQeYbg0Wzho8paOlKE98Xb2vm5la+D4bEKvc77rc664fi3jCE4zVr6swviQ3BnlML0N7UWXhrLdZSkj3jGWtYLsbFvpPkOPcpvDF6vrU5F85Bhn5oHjYsy1jzwn2DFnnj+vLu0FYGhT4aQO2iSMJwoYrw1PdPNiIELqGSJVUBci7KJjmxgarnzumXVxGySE/Rs9TWGfzC/tqF0JY9GzD2MoA47uKrT7ly2om4B9eb0Aw9/qA1DR4GTdLMMCVieDKH/H4FXJbUzHK5Vhw7/GR6LEbAgPENPEoDpQwYt1WxhqwfT0pMsf9raNag9Ba6R6Ye/M6cBwFT+ctK55NH70iSAiWcfv/WAVthOatk1Ej3qtlzVdQJbKvK6IGsF80wrW1B1QRbGCnnBQXgKEx/sOF/Xhd92NBToz/uyjvtJpFyiNDR6KFRVPs4z7iRX1FnfdqlkwtNJsr7y2hlIJ2feB69kesP3qPXVR3YxgO8G4jFYVRQ9ij2jjvdEJa7jytAJ36PtgxFxZDW2Tbi/U5ZIpUX/Y7hl9P6o+slKpObwP1amRzF4dabn1EbpDkwg90yU5AoC4112sIEG5+mmJG6l3g/mAfVPRDRzWI0zPScgvH4Ha3wmdXidew2+BuF6gyMXwwl+v3nsOJBkLfqWMKaT7/OaKBmz3QlY0c0QmlG7SOwc1Zz9VRyOhho+85vphYELa/gNUecRlWEO2c8JPDeLyFqsOklUKP1e0RYUjyvfypAJPLyUyQBZVr22zeU+ueeTMHLYPp3auXRYqCD4P7v3fw1UGPsEpQyBPq07IXGwUPfBp2vO6YaYc7k4yzt0417aLPUkrZJbJ/W+EW5T1EaxrNllcpSmgMYd3LwO+rEoUUokYfErQgeCtv7ycv7HbJF1IbFIa+uJvGJanYHRAE6VjAfb0qscRKWPws0eM+3OgiU4nvKX0v+yTCOR9LKbd8VAwBTnqM6EofjNR71Hsy+p4dYbW/fldN+bH9YlMrNnIDk31gXIxHLPCTNRBcl73r/i++9Q=","layer_level":2},{"id":"1ee1a6e7-8394-4ff7-88af-afda35cd1775","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"角色管理API","description":"api-auth-role","prompt":"创建角色管理API的详细文档,涵盖角色的增删改查操作。详细说明创建角色、更新角色、删除角色和获取角色列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括角色权限分配、角色继承配置和角色状态管理。解释角色在RBAC权限控制模型中的核心作用,以及如何通过角色实现细粒度的访问控制。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","order":1,"progress_status":"completed","dependent_files":"api/authority/v1/role.go,internal/controller/authority/authority_v1_role_create.go,internal/controller/authority/authority_v1_role_update.go,internal/controller/authority/authority_v1_role_delete.go,internal/controller/authority/authority_v1_role_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:44:25+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L6+rRbE7IygCTc7CtI4cT8O+zD59F1CL4IfdomTUY+ERjrw/C1sgRZPKjMd/qJd0JK1XynjC5j+ttuY7rxQ3NcMYL4gDLmIj60E0t7iT9EEmLacTiGIEqbqD75xu2P0W8HqTa+6+qc0rXfaxxNXqRIidThrwEfqDd+8GuJWX3FDwbUQ4E6veSUnxgr2Z4FGGHUaKakZAA8tw1Jhr+KHZKSE6MRz9Ent00d2XRIl+nNuUHSwyIayOE+31pjmtBYrUGvgZRJQ89Qd91L/06KO/Vy5OLU4e+YNvpxr7IohsR038eD8jjw1ThQWu6RaUCbDDuFe31sXtXisnhtQIomlucN6fjfrCF+Mw/k65a3JkM/cN94wotQh4vyUz0nKhjF5z0YVta+xU2veibFLulf1veHajhsfJEu3boSmNsh65tx2mblFbm7aw91yNO6saoexuqpDG/7tNWtDTtC5z4oGGlvkBJ67JDoptTwX+i35PtNzPa1mDBl6ab70c0CfShx3q/vk96XMdYjcP5W7HGJ3P3O6YXDEggum7/XyhGg+xT7SSemnnmsoJxLhzVAZCYOkdstHPdP0Ad6Lv799KPUznczFzSEfmcGikpjBEQGXd28vffmGl8euio5vBybeVmfvYB06JMt+CgXslLBnKUJstgJlJYuNHLyRdvmzmtmhhCtmfsNl+DNJvsGvDt11mFWSc8+kKE4wWZW84sB4J8N6EUg4jSm1AN32SRiQLsW0hLRogJ++RBcT91MH3Be4iTYPn7aJC61taQjeJVzSUCJHezetuWA4juKiMlMcvtdAaucOnpfUn1t6CWhb8uQVPXLkWFGmQ1l1RZwHUrXKka5FW7ZbJeOTllkZZDqsiOoPkQssL7UlrdCzI0EhPD4NDeHvSeYeH1jQ0qHQXufPTq9Mzz5PSfNMLm91nr5raDKA8nufucxAilGRbrc2PDR4zAeIRj+Yp320b8o3mLzkgQU8j1locC21AUeGd240sfyo0QGF3trS3wYEAY3/CmWtFAqU6vQR+15tvVSKbbqc5sb85nTKtHIjMszWB5pIlPCqPWJ+CdOKPbWhAIYxKk5r03JCuskliHuZjtwe7pItkgOOUJciW/oqY7dHknLDZfkJhC7lD1OW2KZ6RVwr0vBNrGExBTVocTT63hR6goEi1xYxhrbhDzzZzWZDTgLOY4RGPmo36vL4QGdRldZQJi2Hr1BdbLepk3eE1FbzM6AYlxss5sIaDPslwaLPuNFVNy/SJkKmEh95cIvJrveeAlEBNcTWtWD9jbxK6tWzeZBd6UgSuRoAlaKwMXCsvtXK3kSzc/zdKoHZYdc1nO13T/yWyV6Z25x7lqc9+3a1n5+kNrSn0pJI91rOTde7eIvfegV872hXtu","layer_level":2},{"id":"91befb50-6592-4b74-82da-7510ab876eff","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单日志管理","description":"api-order-log","prompt":"创建订单日志管理API的详细文档,涵盖订单日志的查询和删除功能。详细说明GET /api/v1/order/log/list和DELETE /api/v1/order/log/delete端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单日志的数据结构、查询过滤条件、分页机制和删除策略。提供实际使用示例,展示如何通过API获取特定订单的日志记录,以及如何清理过期或无效的日志数据。解释订单日志在系统审计、问题排查和业务分析中的作用,以及与其他订单组件的集成方式。提供性能优化建议,如合理设置查询时间范围和分页大小,避免对数据库造成过大压力。同时说明日志保留策略和安全访问控制机制。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","order":1,"progress_status":"completed","dependent_files":"api/order/v1/log.go,internal/controller/order/order_v1_order_log_list.go,internal/controller/order/order_v1_order_log_delete.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:45:08+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDMz1KoRQEV75M4mACux9a19OV4ctaPk31IV5hcbtR/46QuarpgfjVEZ8jQDp8PT83SSZ5sjIba6R38nAWF81guWsZFOr8miHF8AOBbRBKlXQMX9qA9/8xyHTHhcnCOVaxCxPYMfBxEefEJifj/adPFe/8wtcWawGJPTZpd7DNy9QpIaS5iU/ARujr8LnXiTEKGnjlunB578POzKxX4UXdmbcVTNSytHSri9S9J6BggfcrJGkVPKDDcot5vaHhUcEVKq0pEmS4yex98PunfcUWXuwsdZIrKalMB5OrO8GRvSrlWdZxCJj/k++ohzpqHN192cAG1pU/wyNroxArGW5X0gwOQcaElNeGnogN2TFFJGvqyqWBwO19YUgDpesqT6gDuJ2pkgvqS8RZUblyJHq//vtWwPAcIm2Q+qLtyLn+M5/z92+wkU6qRgQ4H6/MR6/g+HKKHZUJKPqQEakWetb/LtskzLRkc4dae4st9/vZaLVBveBisOMNeAuIHLFbYQ6G/Jc3pzpCF3yr/Mn4q5lkmvBfZBPKPml75e3dh6NHfTHwrkoGAtQjvOyOr7RGjYWKFIsEz/ydqbgqDLy3CTZKlINfdDmK7gSLJnutOGLiTitJkIm6m67+97hgwaAXgS1odKB9OjQrBlW9LiZmw5fPcoQ+X9vPR+6qIe1Z5b6qofLe8VEizZR00qjZvjE+nT8osWYNzgb45vnED0BpC5WU5ESzSu0HgxuY710ywYZX3dRsrFkqlqGE0DzjhtFUOi81RUh0QfjmhjL5RRxKpJgRZXsiz4uW2DFhaADL3xSvrwM9I+nKE5ZBauh0UZGpEVcaUHVwnC2QzngOgpZxgv6I3Er2QYJ/N6h6c588dN80jkaCKN7GvS7AV6KGOL6YVQkH7R64CExcOYPStomFg0iVEguaJRqdlzupGlaZMx4JsIVGHWPZLSV1n67sEpUPpQeFllrZ7xBHS9dOud5Vg+odh3kErONG+sVTRKqpnn00/QiCP3yqa/7mckxadgTpgRwbKQgTG6T1csQcJ/smy055YozHVVOgCC9OOF4HHhXmYkBTqkjcXHpOFolJYc4FZaiZ4NVOItx1/wIEpSRQCreHriDMIVS4GgDLr+dQ4sHsXDzD6vT2SfE6xV+fvIygSbbl4Cw78zQTiMbMn6E/DtK+pd5fFvXf2JZBwoGxwWk0G2y5XO1DiSsOEb6SdJ6V6zQBh9xha5QfaqVBLpZcVeYeCupe5REbYW2O/DLiIzSaClUEnwjK6hc04LtFKm7g7WWoxibweIrzo6w9+VGUN6G4aRNZYrzv6Q8gb/IFwPz6xIj9mvW7LKQxi52eWK6u6oKbMjIT7Nn9rdvvVLVE7zOwVmJIgen6MBiY4tMXm7aBgHg4n/BGWlcru47by8GF5bs8U3+SN1wApsyDWRGW+SiIx0ErkWSaWIbSbkEF5CdMZBVn8PM6nnjsfglN9Y1ObDoHU8MUzJ6zi83cnmLi4qyQk0=","layer_level":2},{"id":"288b9b5a-64ba-4e93-885d-499412ad90fc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密管理API","description":"api-card-info-jd","prompt":"创建京东卡密管理API的详细文档,涵盖账户管理、充值处理、订单回调等接口。详细说明账户创建、Cookie管理、充值提交、订单历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括批量添加京东账户Cookie、充值订单提交、订单状态同步等场景。解释京东卡密特有的账户Cookie验证机制和风控策略,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注京东平台的反爬虫机制和请求频率限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":1,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/account.go,api/card_info_jd/v1/order.go,api/card_info_jd/v1/order_summary.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_create.go,internal/controller/card_info_jd/card_info_jd_v1_submit.go,internal/controller/card_info_jd/card_info_jd_v1_order_callback.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:46:02+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBkzZCXcBOHF+FU6wKtFwu90n8FV1byN/6qXgm2Qb9b2hMmA3oufYwccgA02hX880Lv8YtqGVaSdnY3kqkQ7D0lncxopWCP3yTvZllrVraULiC4X6Vv8n39VgoeEkDashdygPT6mPEo5kbP1lV6d2ucc1hVv67KUZugwcSrLRK3B+PQZ9VYvsJpwDZewlCbQsFhobt+eW2yuWVd9RIvYzVbBXpTSEjNXMu9gG317OVvQXaCp/EaNkim3txSiiIMVcr0VYiLlzUjMUknrCRbZ88LPCSkCYdN6vwgd3KU24W2zVIqRm1UTgj7l/GazbLHOElYIL5QLNFJNT2qq5ALN+bUE6Uw/ZCDwDrMjGTpP0xh1/oOtQazPknXxqng7eafCWnLouo5JTYZ7avPjEfhgi2mV08rJ5YK1TA2ecTkN7jIHJzWIyqgGzFQn9dHh2Y4KdBA8s2dr+2yPtYLOYj9XJ3BDwXZNT0J3C5TxL3t9gpTeUbsvyEjDP66j2zMZF3ctVz9a/GTgzXkUST0XMuf9Qj60lGAkNIAbJ16+z26hjV30EBAMnp9iKOlOYpGo2lFApxDLfIXOvdLqn+TL0u8epsrExG+wEAKpmyy3NggvYd3yOEzgYVrgTzOt1TliP2s/rG3mev56dhYLbkGcKybuAbATwu/htr0Wazr2gtRyG3qCC4L/yGEZ4OfdjSvvhYSQBD2m7fDhr1u7X6F+Io5BL7mzGmeGAvzCJL8UViQsa2WSRw7F56Kc0e1BZUt5hTruQ/Hr2pnrC/EpdP8IaXYmNETmxupt+44gv+9uuEjWj4Z3zC7WojZzHuVRTDwhzwiXoP7usTBkpZRwM4WtMXqI7xNaKv+AAFqU51fdVhaDayzzd+EjSAqEInjs7ukZ3qjGIU9JLDhA3Nv32zLOwJ6hPeKt1zZVroaKbf22NEDrG/NCgj8ftLm7F3UtvWBKCRNWycvwuI7ZvZq1KfiMOlcPSBlrHN93XJhL0Z/dulb2rdFPIBkOOuAxEcOKG3SOT5LPOArj23wKaeyHtuRXlW5grO8PLN8BR0qmIhing4Tl/YCQezgOz1+8WPzV9z8xKj5DdxYMJ/cSETmgVlrAuIFZkUPHWIAm0ody17ZyQewLxidzeRYufOa1jceRU3DrqMAl6xseIt/b6jHCbWbnUCE+kE15BfJywZa/yA/O68dVryDjd+LUeRl61IvA1TpataICWFyQUspx5gb1xIUfmIg5dUYONhtRCfIMWSDNREDCnDYbmZlGSa9CLT6l7Nf9N2LBRODpTvQYxRppD+P1cfgFQKilRQeN2OXASBs13pYImwDrUF7EVP0TaMqO/qXSJ/+Fflv44kjXjtIMI4Q61JH1tI6a5apoZsoR9dV6oO+QHulXm2rWGzupXfAHDkur6Sxap6VECVqOGv0qGDMqzBKpek8aX5CfQTleRHuByIeSf4HgYucRpzMQyIejcQ70yUT6kNCl5YQM3h4l/ePO6VfOzj7wkiREzWtfOJv99rfjLWA68t9qfkHgfNZlBrPNLwlhZSgoZQbcY3SSofJKOEJjMMDWAmz6K5bV0NxYGXCluIAXfJgeyd2RfUvzGKiIJ3W8+R6EZp7zU/HzgtioQlbbH7GaZiYeCToNIhY9F/zZt9X+KA5i8+WJ1P7VFX5/zUp/oKA==","layer_level":2},{"id":"3738ad5b-aca0-4c87-9e86-9551d689f889","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户部署管理","description":"api-merchant-deploy","prompt":"创建商户部署管理API的详细文档。详细说明商户部署信息的管理接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖商户部署的创建(merchant_v1_merchant_deploy_add)、查询列表(merchant_v1_merchant_deploy_list)、更新(merchant_v1_merchant_deploy_update)、删除(merchant_v1_merchant_deploy_delete)和详情获取(merchant_v1_merchant_deploy_get_detail)等端点。提供实际使用示例,展示如何通过API进行商户部署操作。解释部署数据的结构和字段含义,包括部署环境、服务器配置、API密钥等关键信息。说明部署信息与商户配置的关系和继承机制。包含权限验证和安全考虑,确保部署信息的安全性。提供错误处理策略,如部署冲突、参数验证失败等情况的响应码和错误信息。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","order":1,"progress_status":"completed","dependent_files":"api/merchant/v1/deploy.go,internal/controller/merchant/merchant_v1_merchant_deploy_add.go,internal/controller/merchant/merchant_v1_merchant_deploy_list.go,internal/controller/merchant/merchant_v1_merchant_deploy_update.go,internal/controller/merchant/merchant_v1_merchant_deploy_delete.go,internal/controller/merchant/merchant_v1_merchant_deploy_get_detail.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:45:48+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPyS1oEBfi2AVR56kbRNYu7vwIO+DHFV69S00Cn9VWMkMaxe1C9oIY3Fq7/E2iPGjEOWLuHnpH/Y3i5x5MeS7pdEua/Xmsn3jSgq97JVn4WmFs+i0qFORtaoDVDhsfdANByM3haKpjsykMQbzBjz/AGlh6GFpbuJFVgb8PakAlvFVMMrnfLDVe781PBTGKjZX5cNj9NyCDvYFqpvf8dGl4Eyrme4koWNiLXCaFHzJmzQuJaMryaqUP1GZCqe2hNocsirvz7vpOLLy+C9/tvNacelJ/PPvVaySV5PvfufSSnWflVxy5lYoOguix9DOaCQlCspj6knTDHJTUKkzXNRgu7kE1uNo6hA9C6bZupPxWXqh/WtXoHtoxH4lr1oCT6O1y11QsWsnJ/7fzFR22ixnyeOY94dUztPBFYF23vFw9NWRAwnFGJuWWnffxzjtNaTxcWu4fMwxrdMtddeVJ8I9rYgQbtNCk1A+gl3qSS23N6M/oLZiOJSBLXHEHJ9KOpPi+THSSBjm3vNiDNAe9nQlzY6w3qgi45586Wm+s+OjJ3pKiIFWCPVdYlBDfEp5x+E/rli6xtXrg4H05DlZMMfEaet6Ylh4xcKYzFHXSSAzgP9P02lfxauvCKRSBlKk4ghhEWe4SgnFDc6/Dp2zVdc9zaBhRrMGPgp+kWS6D58e1Ho7BRAgNQ0eI0FuequP7NvUPxXrgef/k+yf6YYV+MtQEEKlG7kSkoNEIUp5jadkG/OEgfpTLT2vPPK3mZcWPYKJAM/tZhzpBWgKL3JUIh6eLEEEwDVb2X3Lu9IJD6gB8HA+C7gsVW16AJTsjjtLAGVCdQsj+lud1Ppg6g9GJNJeEJx4Djdj9cZCnOwNRprRhXy2CkduLwhjTK2oVU93+XcLTH3CLz5Cx5g7umi3cPadEB26x5+F3G4GLhdSHHOb1dxTlI2kNwc2oN4RhCfwXGOKRmSfVZA4YOihgvwUUGUisWTnap3HiweNrJabbS7EzoQqEjyO5q0EY8sXN7oG7lYZRDCffvkLPe1jWWQwRo5vDjsyCZs/Gb1gywv6M17Xlul4LewLk75OyGzh0M70SjvLzJ9Bx8Bv+utnKT3til4k1br3jXch2Gl8wdB4E38Yv4LKW4EEwZg+auRxbDKbek+aYei9UeiNxUguTyXaPvxlI+7MymT0VYf+P4vYS+45qewtlJdmrtZD3AOXpP4+2V08cdJcxFmOKlziCHqhAb7T4aFEDQu660P/1JR/xCSJYtVcF0fvaH/6zEkzwyPXOblsyboTRnmJ44qqpi71Ue+pLszEoBqH9B9Dz6fiGUmw9fAdArnsa1QMK5I5MAWXHf5TuDl8voTH5BBMNyAu3eCFAENlyxqclkhsa4lEY+daBdYn7d69JRiTN0s2pWKfMdsPHLdFOExvi3DX1n5rTvVOPkFR96ULg+Lz1rMcllNEp96RSOFYsApdCMxSWLI6/weKsE0F7HptwTC/A7Ed9uHtl89JAtxmnNoZ8v7RHeYm3Rgl9CpJa2kIcJ0dHDr54cFdZ8lj8Y0xml3QqRWSiZKESxpGH6/DyTiF89SVYFBhsoE+FOZ5jYAkSiFN+pSTT6uGXK1S24qnF404TeJi0oC7QLG2ignQ3a5/X82JqNoMGgU54GCvm4t/sA/0V+fIE7M48InVffczgysFmxej41P4GJtHiVCv8o7to1G2czXP/xj9B/lvRjKdUE1RF66lcEEl5vjwYnqSqHOm0DxpIoTQO0grYuW+/ZpJ8ZslSJByyvB0HGEhgnknkqZBCCCOjWtt9DaJZy29EaruPeoedC2oeZ7ZfD4mKAqt5zjpU3ylWJtYNR7zOpAp3sADXBD4anBD96Hhfij33UuDUH7Kvsnwy1HMhpsflXZIrIB6auN13Ly+jtDu+vizRqlv7BxQVojuYeA==","layer_level":2},{"id":"3cd0ff7f-89a0-4ba5-89c6-d092ac39981d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"资金流水","description":"api-fund-wallet-log","prompt":"创建资金流水API的详细文档,涵盖资金流水记录的创建、查询、更新和删除等操作。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括流水记录的类型、金额、时间戳和关联交易等字段,提供实际使用示例、错误处理策略和安全考虑。解释资金流水的实现细节,包括流水号生成规则、对账机制和数据一致性保障。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","order":1,"progress_status":"completed","dependent_files":"api/fund/v1/wallet_log.go,internal/controller/fund/fund_v1_menu_log_create.go,internal/controller/fund/fund_v1_menu_log_update.go,internal/controller/fund/fund_v1_menu_log_list.go,internal/controller/fund/fund_v1_menu_log_delete.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:46:06+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdVeNIsI7Rn4dw5X6ZL0mhD1BBBIaJJZW2YjOW+ugimYSG9xA3ZUS6OH8+spiwyeUa2dff3Wg3ZoM3OcF6w1SfIUfWmDL1hLvqFGU/n3l0n5WI5Vsx37b9ZMGqW8T5L9fgTo78EUg4QNL4PRhdW9rf+S2C647GMaU++K2tAlKnr/6Uj8FHsdx17K4KU9iZcNTz44B5lqAjKpw7804zOfD3xTGwiANwhF6eXUn8DHvxHXqTiIdqQiZMNtFg+QWjwQXDukWbfTj3YdRw8vUeR5450/GxUZ82p/6u7YWmBZhukwnZ1quMwModlIJ/tZwDc0eWXVm2y7Y8RVn4g3f1MCJLpLKeqhO64H9s6zBz+t/TDaiD4OwJBnW3MTJoaxbkrllk3myZFBshVPORjS8llqHemg2nyaw4Fs1B03mpXDA+s9ZHfGqOSbgWCCVQ6c1xoBTxx+hBUIpLWOannuTOjWs9AZI8eeEMMDH+39eDKYBx6DlFXmXE2Pw6i+VtroNV0EeEmjWQzH2n9LYui/MFZHAyVmGkzpNGwK6N3hjcoRrxZ0CfyyEPsXWMouwJnXgWwo9ZKQRR8aOabqnkrqm5uF/hWiQL+OVK792xeEZQJf3nwr2C9leCdvZteDTfVdNgWw3Ni5+5tQbURM66mYvX67DWI1CI1vcoJkGfd1cE/9li3sd/+Z5Bt0zfotW5Lg7X6U6ADHq8Hw30xt70n9+AQw68Un2azk4p6Xre1GeFNpawuqltGB3v9Cmh0Yx3oBXD2epYLpBIGf1hZ+m2H/mA8ygEtI/HrRLV+thguWDEsnMsdbtn9OH+lQK3fDH3Vq0aPSwMNdzzZGe/dArFtwDUGUXy2lhRW2H/kKo2XqQtKhzFaY9/XWJ0FqLCmVGqLld6vwXqPqyeaCJ1FtoMbmSKZh8uAw6dbiMayiI12Cv3A5QDeM1gpOFHtm7OxfDoGHqt99yz0TLs8lAh/ci5nkyAr3ZIwE5tFw8tM9usoBFqYcMSW++ta2agBL+dAPLww+z78U9sUVZ8RES+DpgCfm+jImJrxnVYeZJYYD8HNDxEwkpfdPjkKX6uGq47cbaCVZAZnMHx80FIkFVRhojXSWAureFgdRzvaPYvLk3CCMTeKsqITOZoSvwYyTUMr1h/EEo9TrPkgsSgyZwRPGG6142LhfusshjuKyjHNt65vK0eiZL225idaiePPwRd3TxoOzM1B226MG/KvMMGS5I7JKYSG1h/5lwvScTo/FJNCNgo1p3dprug2xLb0NQP2rd06Z+ZNo34iwpVIY0CbQ1mnprmUmlr5zEQVwLzcyMBrcd/Uv6c1VCIq5uKMbypvwrgVS/4BzBMvej7bQW0RELbmm9g/mckKI=","layer_level":2},{"id":"2c2db8d8-8ed8-4ef7-85e5-9d42615aba0a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"地域限制API","description":"api-restriction-region","prompt":"开发地域限制API的详细文档,重点介绍省份查询和地域控制功能。详细说明restriction_v1_query_all_province端点的实现细节,包括HTTP方法、请求响应模式和数据格式。解释如何通过省份信息实施地域限制策略,提供获取所有支持省份列表的使用示例。文档应包含地域数据模型、查询性能优化(如缓存机制)、与IP地理位置服务的集成方式。说明该功能在订单拦截和访问控制中的应用场景,提供实际代码片段和错误处理指南。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","order":1,"progress_status":"completed","dependent_files":"api/restriction/v1/province.go,internal/controller/restriction/restriction_v1_query_all_province.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:46:54+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg6REtxJOhfHapmWv4MsZLlMnVHv8m19RbsDccvca7VOfBHC1jyhvaYbgCJtCr8OFnOXgJd1hgEp8tXWWmNRgzcoiWSPnrtMLbKSNeE/EO5Hsi07kCCTP+q+z0DCEdHjRUoEfVRDUia29axnKySIKf2jdx5h0sg7eXKNqleoXzcRdslyd/E/l2ATKUKwlpRc3Mwi90+KzXlHyVhbun/g5+WDzzDn6j5xICgb772TnbCLFVhJMVG2NK3Nv2T3ld3ONvk+2Ki1GULEIOE3KleevYffTucrxKqfligT01pptyaUOwccqtGqgaKJie1hSM3JrpMnEr3ufNGb1Vir8ePLosnWkuMuMR0xaqbsT/bzFDYdOYfJz3a9gj1sA2NxYBZ32S0oZd7bf+F2DQHMNDuA5PfzcU4NxOra2bK+8uwUe8tFgti0TD4d5IWd4TrYIPH4wqekOJ/ESKj/5Finl8ay2xrjc4gUULV0VUS8o7PSdiGExRCtKTd37sEuYVHxnnrTi4dQefnTa+FmgvBhIJol+i9Eb/iDVchVtSSnNRWzW2KTj2srCgsLRIrvIUAcfJpcoskQgnMYu+IhYpAsbuOqIDdKOxbknqImvsmKUmnYtPpV8l8LJJnIOOxp9/Oa4lMfcOEqGHs+nF1KvuSqVrQ+zJ7+mXSJP9jy99PvTiCoGiWW9QYDBE1mMtKVyoY8IMm0TSHj5lk4XukB1iM5zLUz9K7XWTaWUB3OMrLTT1CT04K4fCvQg4Y/iLv2a5SN2kRlU6rA/2rj4hHujJmkPlAYCEoxfnsRXJAf7nUsPF7a9XQHUOi7NFmYPsdFOelJ+hHjcijXHZf2qT3qY44S/GCGk1pajnWu1k9LhqNO72a8587Qa80ZJzHUjg9HgB9x4tFQB+vJSxQIfNijHYhck7Xb4FuXKyJ1b3kr1N/S2l48Ui35vosb/1OTj6mZKVU2bhIITGIqx9jaEc4TdC0wxzDvx/AM0OLwUtlm6KP45PX+foZ8/9a3tNHVZxOkd5pkXnH/FiGwswP5hgRtHn8BaH1dRA/u/89v9nnK3OF3AasvZbVWVjqoumStKJ4DTye55BGI08akuwQfxtbMSMawQDWLBhxI6UaOa4OdZEUiyTB9X9ieCD/+dcSIkCI3TRMs50o/vBqut5haFnGkCKvHN2pL9Jas=","layer_level":2},{"id":"58118687-a7d8-4b0d-b788-36481cba182d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Docker Compose编排","description":"docker_compose","prompt":"创建kami_backend的Docker Compose编排文档。深入分析docker-compose.yml文件中的服务定义,包括kami_backend主服务、MySQL数据库、Redis缓存等组件的配置。详细说明服务间的依赖关系、网络配置、卷挂载、环境变量注入等。对比docker-compose.yml和docker-compose-local.yaml的差异及其适用场景。解释install.sh和install-test.sh脚本如何自动化部署流程。提供多环境部署策略,包括开发、测试和生产环境的配置管理。","parent_id":"3c6ca985-3423-453c-9f11-d9030f798abe","order":1,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/docker/docker-compose-local.yaml,manifest/docker/install.sh,manifest/docker/install-test.sh","gmt_create":"2025-10-08T18:19:36+08:00","gmt_modified":"2025-10-08T18:46:51+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kJ8Pt9hFXqPwDEYqTB7J4Z1DpkLMhPMThA20z3p55TN/dbOQvkYqmvPeeZcdT9k8AGiciG93m8eaAYTkXuIB/l4DAim0NYlZ6X87KxK+sMjwpnxmr6pP7RLOBo6UxRplPh70Fbp+ZCyPNE79wMWIsvkF1xqcQIlTyyFRlpmj3TkENxirLFnxTb7D0dGKaC+L4w/Qv2xsaUjLvDxtuk8oqZ71V4Qwcrv2vF2g+FcC4W1y03/EsII4j8QwbYtAmcJgT2klbExZya7oBnsaCapLj7rXm/66r/or1p/c3CBpnRExtlMeW9HJ1N6rJuH9KXgMMUPadAST4plZVIbYOxu2ntmvBhxzre/Cn6cwL8J7x2GZmTOKdvWnemjYF0cHDSy9S/UVwjisOK0dC8TsMQBsg1Vtd4huntjKgTfo8Rv+pyZU5xELyZirMaIL8nw/QLCJyjR2j1DHcq5RpSOpG/2SrKNVU4RFxwv1KbUpPSWZihT5z0JZ+h+R85XbIQ6c8cPrIUNiF9rPJ+LbMgD+GEZf44CSdKVymvGJyLv2aFAnapp6ZnuUPIUw9wmFW0sE//ZPhfGimLyQPXiLLLOx4si9S202RsCHAlNGZXnIkFWQYwlm6Myenb17d4x5DQNtAvL1w3YQA17Z51sicIC8UdcvGSzJL9x4Wm9crIB1WFa9yTbcliqBVqUibPD6sPRZvWYkKlSOM/WeGeZLCOgRBK0ziTl0YSjPlcgHTvyxJQYl3lltxnZ7EpjHVOOYQho6g3Own6kONLcRabI4vN4a1lnuMRb/0jGXo+sbRIR89a480+XJolbxc5+Lt8YJcqkViLNTL2HfcKyaK0u2McIyj9T7cRlNpLFJzIoPLrn/gmzG857hSVZndqZ2S0pOvCsnGjC8KoAz3JYfKGpsSwwjgpcVVda/5cB6X09jBp5PpHGtkWv0M73vV4dhGu/AVMIFcm0oy5iBQ1IoYpYILbmr3eZ3nsK6y/gaOEoYfmQ9guCiGEv1k5mwCsDL2N4GMd4NrphuAZFqa+u2iMGiNkSIGUHaTP7hfEWmFPz3Uypup4T8PtEB2Z1DM4PZMvWRSjab4e97uHlJND2QvS9B7Z5aB7HePoY3Sbz3pqd0MzMYYmBSsP5bdKIr9pzDIm+bo7eHcApmAq2dqSRHg4wr872D6+dpqYmQh2bdUNxT2jnhNJJWdENk","layer_level":2},{"id":"7fce1289-c2cc-4640-9fe2-2049d025cbb3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Shell脚本自动化","description":"shell_scripts","prompt":"创建kami_backend的Shell脚本自动化文档。深入分析install-one.sh和install-simple.sh等自动化安装脚本的工作流程、参数配置和执行逻辑,说明它们在不同部署场景下的使用方法。详细解释wait-for-it.sh脚本在服务依赖等待中的作用机制和实现原理。提供这些脚本的调用示例和常见问题解决方案。包含基于这些Shell脚本的CI/CD集成方案和自定义自动化脚本的开发指南。","parent_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","order":1,"progress_status":"completed","dependent_files":"manifest/docker/install-one.sh,manifest/docker/install-simple.sh,manifest/docker/wait-for-it.sh","gmt_create":"2025-10-08T18:19:37+08:00","gmt_modified":"2025-10-08T18:47:04+08:00","raw_data":"WikiEncrypted:mglmhPyPH3dtFcYRgfroE6r5iIRURsCQLCsCRil02AKAdkWTWXqM5uSIN+acuboTL9lryyEx+kLcd9u/TwuNVTMqaBnEh6CfwrIc77h929CPwdDlT2sE/wWdeWpMkgXVKaGFpTqZtXX//6qhmPDLsHmlnX9gniSevlGs1btfNRHUTRd+FXSh6upD4A4csE8U/XkCo3Vs/o6jjV9gl8fR5IzGI3jONT+pZtXQhSnyg1Oab5dEMJjss9NoZibHZACN4VrCM0o8EioaFPpzibdymj9B9Z4jlW47U0vFFP4b7Vd55YM1jGCF+DjKkIgFPn7i2Wu6L8zPQZjttr7x1ncnG88x1Y5QCVTaxwGUuk8stW7GZiXJVYo+3WALOzz3WwkLISr1DpR+fT7u+Ye9hR+6FquP/p6wgT2qAflGBJ3Ut+PZHUEbE4ejlChLvL20NViWPFY7lixxQjEPrGuJn6VU+TTuPh+4qcPotgMftVXQZCJ25EEOWx8E/5d3cb0RuzmdUSEfr12aqkhv9KwzReY0oDrby6MzpC6MyNkvbtMLY1DJv7M1iFOSJ/IRNleuU1KKBjccItC0xjEDBJXdTlrE4osyiamLCi9WBsTh6T/WYuVYMuE/heHPbq9PAlBPRHl+pjbFVlwO3iBtlQw1ovk6Ef1fSWk5O1L2BYaVN+0wEpslestMrEgxlb0JOZUrvBn+zKzLTJnjx7XCG2frKaDh3VlUYRXX1bQcZu1S+COiIMh0pDFRxlWgWmlz1d40lr3dWgvByBwPY8gWT0rsFXDnoUYzV0F57eXG+G1KrUoZLmST5KDcfjMaK+jQMYlC3oZr6uKfPFT2B8h8IL/ejXjQ2Cvrr0ffSZ4UN4DejfMIcDU8aug7wV9pWi6xgTu25yq8ZXxSNVvsVT+Qn8deffoWvHEcd3XYRAsDP3ck1Qs24QbqvEjBs/kPn3+3kaHIdN5RFq6IosXbzGgFJEdyo2U3tPBYl4il9k5Atd8cfmJlcuVzx37L8EsGAb+8bkHQI2Ck6/3JlyBdaJ6ow7Z4+jS0fgN1dUioC0dfA5Emceck1YIEimTsDBiBjnOFi/1hUmuzn+zRW5ch87jRmVhrp5+TAVS5eN5cLsH77X3Ka9w0IIg=","layer_level":2},{"id":"4ed6b7ca-ace0-4389-81b1-f1e35781d27c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫平台集成","description":"tmall-integration","prompt":"创建天猫平台集成的详细文档。重点说明kami_backend如何通过tmall包集成天猫API,包括天猫游戏卡密充值、账户授权、订单处理等功能的实现机制。详细解释天猫客户端的OAuth认证流程、TOP API调用模式、消息队列处理和错误恢复机制。提供具体的代码示例,展示如何调用天猫的账户授权、订单创建、状态同步等核心功能。文档应包含天猫API的配置参数说明(如AppKey、AppSecret)、请求/响应数据结构、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何采用TOP SDK、消息确认机制和数据同步策略。提供常见集成问题的故障排除指南,如OAuth令牌过期、消息重复消费、订单状态不一致等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":1,"progress_status":"completed","dependent_files":"utility/integration/tmall/api/api.go,utility/integration/tmall/api/oauth.go,utility/integration/tmall/api/trade.go,utility/integration/tmall/models/models.go,utility/integration/tmall/topsdk/,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:47:59+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRUKDbNdP/de0lI/DTackQjt1dXPuSXceIWbMl+vvXLEu1sxXD8WKbhjK3n2/UhdphhaFjQmpEob6TVfcLAEh+k9/ktbVlygCt2t+GwBc3MuUV855x485AalJt0qEkSZAh/ijrFM6JjhTyO0u4jE+gxHIW7BJBRu191WyfTaM9rLj5jdJ7/ATwDjEj6YrggjBlpGVa5HdOID6Z1Ow5f2HWriYkRwBzOiz57SPk+bEWzk+1jtGGbDJrDlsCw5t6dwgu5iC8Gz9fwV6nIkfT3SV2xKmn13dOZmhkh8Psq0dNVRhzi/vb8v8kGuSt/TqcDAZBZIlD4TLJXaHZlqhBSiXZjGYYJogonk1XJtIauXfyDvnZnIcxzFyB153pduPjANIcZwLhf6W3mLm3WZS0gAAZJHcb7mup8Fv6zDUsbTSeQ4pCUCZHBGavulqwK2QgCjJ+UYZDCc4p11qGL0mEqSNYweHwY1gGnEFok0Qywzmq1lSev4814qgIHEdXbjAVq+JlhrprmItEfKQfD0aGhTQv7cfy2f1ku5zPMxcEiqiLS6OR7xgf/wovpJUdLovk4/7GrhnmBOEeJGY0dtPbzoVpDfYoOf0RB6duGZnvknwhR0U96f/uwJJKuqiEGK5hKQd3Qd6fndnXpthkMVClEMw1kd9qvEXCBi3WPETboeXxwXtyPIBySwEi2nWLytULmaHZjY4RKScOjiJH2f/yQDql5d3MmvsLLPZzPvbmjZndmImsFm0PYq+d+3K/sD7Qgl8DHRFd/3Owo7lNJiafzF2oDS8ElVpFYdoLt1Zr1kyaWfkhPuRdO8P/sjJYqdzyenB7V3HTsPrDrpQjIgKbJGCLuXY+7ppltFI5d2BOuQWOVE12zqBmQ7fAIDohuUaE/RemA3/AXDLrUgIK6jv+3ELcuWdFXIcGsA/7EB2qstDoXlUmfQ9/Vohf+ICPfSI/BJN7MNWamVbZwU0E6xd/Ps4TbJlzhokLaNQM4AcLDTF2DJKHscozedlDZvq39T9mOuUl1IQeYrzUpeU/iPW8QrLS/TRmZlyGyD75c4Iz6RB+xp6FY7X2dkToZ9AJWN6uxeOE/aI8dVJYduVmGVqWEQoUUKFMutIP7XgbRYUwBVzVlGrA2qVeh7N+rENqCzTGfjWCSi8MbxKgu4hK3EkiUvvfD06vBI/pZD4a7UeqBsOeXCnAAWpRMJbpGTtlh3WaKk9jp9BEALl4YwtAj3zajfthxfInITjYSfE4p0ZiOsCUAAAagfxaXxcm3wO1jMojEgsLiuZd45YY2dmgLKUSG6cWZvhW/V1Cii/QAokiEduwUHAUbMsla4gK6ntp1viTaha4xkOqXEEP4B+pe2bf0+/GtXc1VHTLHlzzzZVHYIzr+kmk0MawuPIOzVl/pA5HTmzGU3pdyR0/2Ir5sVu1943OaEWhoe8TB9yU+6lSqzUZK+dze1nglXy5q32yYQwNHC6fvgpf7fFnqKsKJeYFPW+B2NFEtOb8Rejh6j+frPjuf9EEumVtZfe0A3TuSDPqRml2PdhEezeDG/CAaUi9X+5va5FHf8AJ6QdJEy2shfCgFd3q+GvdBXHQNxnGzYtjgXYihGtQpDtkVVjBhA+JOsbmlUqCXcYYjFB/ZRC32YxQznIDa2B+ToI+QNUWt7ojUx2xVUsbyJF64FY3noOwm6c615SQUmCpLXI7IPjea8mJ5+/","layer_level":2},{"id":"745be06d-31ed-45f2-9822-e6cf41730cae","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密充值处理","description":"apple-recharge-processing","prompt":"创建Apple卡密充值处理的详细文档。深入阐述Apple卡密充值的完整流程,包括充值订单提交、iTunes回调处理、充值状态同步、重复卡密检测与处理等核心功能。详细说明充值订单的状态机管理、异步处理机制和错误重试策略。解释充值处理与支付系统、风控系统的集成模式。提供具体的代码示例,展示关键业务方法如充值提交、回调处理的实现细节。记录充值处理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/callback.go,internal/service/card_apple_order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_itunes_callback.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_order_reset_status.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T18:57:37+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoJjLFzanDnCUEKH88S7Dvv1X32wPzyDcbjDs6v94J5yROMxgiwKYF1A8NRbu9hnKYFd9aVfkxEfnFwMuDDLlEty7cKSzzMoRz1UzygV8UVvWVW2+IKCBpUW7rWmlmShhwmfprYHt8x6A1O5e7zUArn56dPNYVFegZk+uMVhOmNE6BCX3GjnAD9Bdepxi38Zg3amPwrd5qz9YlDIlZ+JLZjO0DCGiPzkc53UOe749lpTDYnXcbOmjL/B4/19XJNglt7bPpof8OPyqPkjobNzOhVi2DH16GYb9jeyTvBGEquy4zdw1Id+hEx+E8ZKvMAnN0cmKRO+cUF5qqHTRAEJIP1CcyWTMt/p93p+2Z2WXCqJWCUyaWa7PvttrVrMvWWCDoB1TabwTslRtLBBomgUHCdUeoBVZuFyKiWf1v/Eyo/p3w9gyaFDOLXfhy4lcaDGHGmxGyRTBhPaVm3ne10bHji0kVz5VDCYXDzb09tusRHuZXnTPg7o2nintITuqnqCz3cO0rAgo6Qng7F3AfhU9+GjrZpOCnNDjGe6WDeuSmdA0MBs9DLVhcOnKE9HkZHUG+la5VO163Yxbyt0llDofyW61fc6yZYNjKD/ruQxr8aNAEQxs5jnuv+i68P1yLp3rfh8GH/XXcS0nWxrGkP3hafjBNFfATe9UeaR/kJSxcJj3r5ASmUf8Ishf1O9F708uiYh0RV6FJUfkaOXdC7JiOFUOOO2ctzJV3KX8nE9n4Erjg7bCtQ60hX/iR+4Jx9hjtHyKTvXuRpAlMGqXny+q3j0Le1LqcvYuwAykSDOuEPzb7Bpj2mX2aOV/q3GAsA4tHvb67PvBeG/F0wEOR+m9z9RU1F6PLCaj8kPBT54MInl5DxB3WnsfQttQzNmPkccznjfBnus+yYiA9ppvEtkmT/Nq+MVcc3i+yI0jACs+KZwrxp2SaLes/0xJClCjIDBcjMXu9/mJUAiOJg09jQOXzWWeURrtqckus6fMlxecMnp7D71Rli9ELDvDzDeIyE3foA+tlSKW44UdTG0vanco5guTAvX/wwp73jmg2Ypvun0l4wGhpR0+Hbs+J2uVFzwC/CPuiaeygsukFtbXtPs8FCdPKeq8GvyUOEJJzB2dShtjkwHKfNUPbyNd7UzTmsIkvssK19oGYsUMFqrlE1kHe2mzUtSnS2dRWoPQR+ORrOyi0iuR+++7JY0mkKbD0MIxSNny2f3316CKlZwKdkouOqM4tTeqIj8YyLn/Qr6Pbi9q2h3IlETzwZS+aHrUFKNp0x8oPJ35iZQujDc36ez6Z/Aq/E/72JMTOiEHLl22DQ2Onh1osqSleTnR5s182CPNLuTEB05p9g2u0OaKaFjHkEFFqFd3ouYznfA4XFpg3+bzZU62ATY6c+U/GRXWjBPufmMbVaboCEXU6O5E7mwuGm1XfP1lj7+L8TExV5keV8MqxDFBtsQgGn+9t8WQrKmNPFo1eA2GRzQWURAPytBlaiktWpvPU+IMkNEKg52ZrOBaa4sgtomzjP5N+IwBiwMMxK5i+fDu1A2HuGxen4HRE/CWTADfotXqp20oIiJHYDdDX2DOcXnrRyOEVkO5t5zwmmlDWZvyfN9lUM6f2slRNX8=","layer_level":3},{"id":"230cd5da-15c7-41e8-9ed4-a0cc2496bd71","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密兑换处理","description":"jd-card-redeem-processing","prompt":"创建京东卡密兑换处理的详细文档。深入阐述兑换订单的创建、状态管理、历史查询等核心功能,包括订单生命周期、状态转换规则和持久化机制。详细说明兑换请求的处理流程,涵盖参数验证、库存检查、交易执行等环节。解释订单与账户、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如兑换下单、状态更新的实现细节。记录兑换处理中的异常处理策略、幂等性保障和数据一致性机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_order/order.go,internal/logic/card_redeem_order/process.go,internal/service/card_redeem_order.go,internal/controller/card_redeem_jd/card_redeem_jd_v1_place_order.go,internal/controller/card_redeem_jd/card_redeem_jd_v1_order_list.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T18:58:15+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rRBWcbr4pdze3j1+4HY3S26IQAEz137MI5Yq00cndqaSFSHvFpKgMtWBeU2MocuooTtw+/vbdByTDIm2m6QMlj0YgBjJy7FRIg1NzkZOZo2dBnr4+843dekwRNc4rXV1/WyzTZ0P2PJ6D48QSP3sVRTCYimL8zahcpjhhu5wJ1DCpzXMKRS0S6yE9zk1KbVmaWvcLpDRF5pNuSGch9VhkhRuTvbl3lv3Aa1eGagTfmrN/9ffgkBo8tkME/0k02T1D656W0Ey7cRJDduSIJoBeaM6mA3yT3j9hlXmvG2pJeCfTduDONk24NThZwtsCcaveg+0Svklv73B8N2ZPTlaUuCFlYgBqK9a8qJxVkZpte9lpaZk8G1+8aHCmztrC91WE7QW8jspEMPh5MiQKtzO8H54B9hM7gQ2HLEBWpyoExPTckpsZThAHCwBfdU3astLS3HriwtJRJOmcKSw3aATZ1THHYlUNPwq8jZVBgb04vkosL9/XvlcswEFYBOE06eTvTkWFXiFHvM8cqUTy9fQRorp8OEZgZ+wn2FHM5j+8P9a24346+ldVPhrCwoY2DU+2W0MTdj084H/vRELAsIUVreoAvkRlpj9kxvUjxuhgH45vY6nNk0eU6dfokSMEdFCvTGNvn9WUw7EtE3h2YFWTMMaFcIF0e6AwmgJpPegB6708mBCiJPB+N3DqGM+V7AjS35iT75lpIiBhrNfqRbUehN2vjksWooLFwCKeIzqUpRIG959i85z85YiPBiF1O3LaV93FxMHyB7pVjf955m6am1ebASO3H4uQt55/R1QAgr3wvNxka44+C3DoJQG41xxJzOUi2ixmhUEksYQY9ksSiYxei43GN8bYaqVRC2jTNj0JdHKdjFl2fv4vw6TCLWDQFttUu/sQwvXL87uvnQCaODbvv9pyc0PGQyTjxX3RYIOM4KZWT6MO6EOPPRB0YLtMlXgIkgFguCDMvuTqaPeZKVM0zamwLGMwC/sa/+DixtY3eXPCtzT+J+J7UgQsey9VuF+j8qATagSRTUC2MOUG8Be6N7YHvFzlMSZCgu9OnEkpsZQbCw0HggfkretmqElYXaLWBui210TeE7wM7yrw0FIV1qEiENbbv5N3QZjYve/YAzuufUscM9Mvmg2IA/FvVN8/XMQ1p/WuXPOs1gkqDClgxkPcf4Uac8QieEVlBjotTPYR/RCOtF0edLj5PMOpgj0TF40CorM/HImZcHpCKIHfrTVBYdYJlHTAYmIEzD8Qhoa8VYSaikimVZ1siU+vSUOWK6Vep+GpKvIogddbdc/9xXxkdUtbzxGHQPJ2DDUwhr2Xm1sv3Oh+u70TQfuhhfp4tKWjMmEwqaZtqX9LFM0C4dGaAxI1JlZg2knCT07wjY/e+UzMJrNfJZ7vTj5l3lU1PVHSWgLEZ4gIYRUoOVVl6z9s3/GMH5oM5GGIBC4Nj5QuY/aLZRIMhPbZUa+sQ==","layer_level":3},{"id":"58030d31-a0a0-4431-abd1-4065b0200dfc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密订单处理","description":"tmall-order-processing","prompt":"创建天猫卡密订单处理的详细文档。深入阐述订单的提交、查询、状态修改和回调处理流程,包括订单分类查询、状态同步、成功状态修改等核心功能。详细说明订单与支付系统、AGISO系统的集成模式。提供具体的代码示例,展示关键业务方法如订单提交、回调处理的实现细节。记录订单处理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如订单状态不一致、回调处理失败等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","order":1,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/order.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_modify_status_succeed.go,internal/logic/card_t_mall_order/callback.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:58:16+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRa3WSApkXAR5Fc40tYehasW3oRRWjQgzTzde7LY3UZtxAiPwPZh6umD0hIu1ZxyamO/jzuB0ChImt4fwd/3TrlMI6CTgIwqXZdyi2uZcXeOqr+cxbAih167U94oPG7vP0ynlhZnr9bMec0kuqh/WRLpLnF4vcuws0pDRdrGjPIWvns865FMXNTmBRkZwBD12AI9v5HeuFC/mBSB7bwujiigRKcsIYWzISVjTI9xMTb+wXQOEoH7u5DiAEzaXINxIoGXKPjS1HYunIfG9J+tX/3zCnRIlSG/ZgYGoFEf/KqAWxXGTTDidEywoAaEtsoyEkH/p+fvz49MlshRjhJh82Am0zOO06lkbnHx3CXtY/AmOBkalN40SQNVLLrVhC+nnZOxAQjfbcsLzVpn0k0fBRHw1D7Rgl47TL9Nip8ZGr9tt7vEb6kxG3mGscOumxo5DDzcPHciw2oZmjLLoVfH1wm6WcXKvd5TF/+YePJazkJ/fYq7cseFLu+q0Mrf+5Szk0Img02WDiiJv3/USpD3fIC5SCv9l1fFfzh6haJH+YVntv6VHQzdSfVO8w19NNy9REF5skh6wZLnkuAb35GthbyTT+RrzE+0gfqsnmTO2RlcsGo4M/SNtnF7tyuzSI1Ikc4dbzHRfvBbTuL77Mes48EsZNzKFDP2z6B1SL2WRa03heiT/OwKzZbdJg2v4WQyF9KJUgAjXkxpd21w+XOOeQVnZXBy6iX72BdqeDUHRxOMW8Rft3KoD2rAx4VMSEYlm8yZf05HwnJfgIeQ7FPhDFFtjAyXj206M6cvbKLs8ucEafTjsGGMPcNNposqicSxfBaYJO2LIos4WDfJ8a6ch3fofGBRJYoOlPfMm/E7KdGY11PnkVEYveJsSGG96OY3FZ+skie2zb5Y2GrwfJF5WpDb7Zv4GRWDYj0d8K53mi3k+cg0XmlFnOmLPD1qKIAQg1mwRR4KSO+KVX7aJstFweV5e/0Um5q4VqYLMxQmbVdxe2aseE/XJZY7EZUAEDUh42qi2xQ4/Czer572EPp9ov2yc8RKWtDViOVM7V8mt1E1s2D0abzLj1P2cW3iI1n8zFG47vrU7mddUMpkzCNpAgUtpanjN26fgJuYxkV1Rnoc+A97qS97rBsY5Mw/ijcDep7DSKcn4oE5GNTCekRawF8nmbwXAeEqNZxESHg6HnPDG2TRAa0mU82CUvP8PfHLGFg6+zPW4n3ravMQ9k7JlGW8L+dUBhcLuryFG05xTa6XoW3nUncn4OoYxG+SRzUrSKeunw5OsHzov/HjCDev2WSPerrC5bkCz5m9K+M0ts9Pzl12+9TZimZx0YHqBrlCDaxPdoIB9AecRZkLy3Pj/EKWn5Vua0HBll5c/AXxCj40GCA9q7Axa7wo1DDYzbPs47lwr6Zqfv/cvP91kOFmt/Zsp8D5XtbY/Sy+zFiGnw5WXZp8RwhWdjn87K00yYzlSoX2QkL9rl8PCoJhnEehnRMP3UfhRZufDeXU6lnSHwENNHcARGFOLwKVayg7nvgYOiCRO1XdeX60yUGNNnf8byqMYZhLQBWG+B9ksEfEgBbT3XKQTMv9pm+66dxKzfFssS5kJRXynKAx4Z1ZLChf2TXj2p6fvGgUKiIHk0Qivsc+q","layer_level":3},{"id":"321018b9-e7f9-4101-968c-1818559aeb32","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP查询优化","description":"ip-query-optimization","prompt":"创建kami_backend IP查询优化机制的详细文档。深入阐述IP查询的性能优化策略,包括Redis缓存的使用、布隆过滤器的应用以及索引优化技术。详细说明IP检查接口的实现流程,如何快速判断IP是否在黑名单中,以及如何处理缓存穿透和缓存雪崩问题。解释查询性能的监控指标和优化方法,提供在高并发场景下的查询性能调优建议和实际案例。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/ip_record.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go,utility/cache/cache.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T18:58:38+08:00","raw_data":"WikiEncrypted:HDzk6pDBQ9qxx18eHV4+ms+O2E4ojmm00kWAnKbnb/AMRZB70jeLhKW0WT2jX3fFE0/z7i/lrUCoyD02Qok5lj27e+0TrLp1DnybseY20m2kdsNivDERjyOZh+dwK+03eYbVnW2mgK85IDoNg/stwG/jio1goT9EpZceMcP6kLCBHj6lJvkGJPsl3X3BxGzqrf7U411Gl/8beFyrNtNNbzQcG6MYI5yxfJ6O4giFhnDV4DRaO+9HeZFouNqCnt/MMtPpIRYj5PceoqK2PISi1/BZ3l5wacazP43IMC2XIlaRim0Xy33sGhYw3ggrstwNyc4a2hil3MZeROD4DpV1pcQN5d2qWP+IYERqgfXMNkb5F8cxf1u95Vwwk+DNWLuhWz9zQY4xuiGR9/Uchn45pMRNGEO6Y0FrkfhxyC36f2DL7zAUy+YGw5DzQr8na4naH4ETSD1t+9GIZ2TwCWwbGRU084daz7FFkZNrfGFOmZVmNWmxhab/s4pAqWhP3kjG2uX4Kdv5mxuKTCaUtPtOFZIMK0njiqH4FihPMsX/T+630oVnDA6Kqu/51IyudKWdHaHQhufXjy1WBxMe2Zjc29pd9XGvrONQNP2ER1s50vZSC96ja/S+swTAQu8To1kg84aWGohPl6vMVePDmsrmee7+/zWLen14DcRbvmgp7lDn1yMb5pi/o/uEp1nZrzmAImKHZHfOfc7QSm1k3R1lgYKM60ZSBnTUD3aXc9q752eLLbJ3WUcHPEe3gqA8P+W4+TuUC/MQ5ViyYmDCc8QP4IOWkrn3IJIPUMY5PFS9DISELmYgVsHgatalwV8vdTqOKPSHsd3QzBX0zePRYfi9+0OHLgvEJHxl8H6z3iTI4C6uWP/l7kyfn9weaLbP/2dZLEhWWEjjs6/wFjxsxjzVBP4kuLVRzMu8n70NFPaY6fXdoco/JeRvY8vKs+Vf69EZS6uyWx+tuK0852DXpLZyEtPcltnSx0g94yM0hvBHd6J/gZNaWWkcMHA9u3CFgfIjI5/R756QqfRcn9ThLtOXea6Q4dtoZoRSao4i69ZV/rOO2vJns+9tMTgfJRekfGHMI2b/m3uigX3F/hMBrhvBNQ==","layer_level":3},{"id":"c66c0c6a-c5ba-4081-a359-7bb0a47ca417","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID存储策略","description":"device-id-storage","prompt":"创建kami_backend设备ID存储策略的详细文档。深入阐述设备ID记录的数据库表结构设计,包括字段定义、索引策略和存储周期。详细说明设备ID与用户、IP地址等其他限制条件的关联关系。解释数据存储的性能优化措施,如分表策略、缓存机制和数据归档方案。提供存储容量规划和数据清理策略。包含数据安全性和访问控制的实现方式。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":1,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/dao/v_1_restrict_client_access_record.go,internal/model/entity/v_1_restrict_client_access_record.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T18:59:13+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvLbiAthlqnrmydQ6GyJMt94jIqmJP/dizOgivC+50j5F77ll+XT0xbiFFnwmAAdXa5XvJRzqEwFtbYSi4IM7h+azyRc3StUlklnZwVbQ77701gi4uGbBtEtg/gwIuuWVoJ/Ql6uDqLfY8Vf+scSGf7xoM5+A0A0qrQGyf0N5X6CXcw6qPAb3aD9GL5li97zQy91r5bcdBA6OgWxbLohUbk6fzHA+KBsJYJLi5nq1NoDl4rYr8yem47bNIHTQCenlywS2bPPI20HJHWtv+XzDTy5qSXbkTUW+xdnJrkE9QGss3xQD6Vz0Kf7bAReh+9IWnYlbSqrv/Z5Blw6Yb/z8Z9v3ENw8gNqqPyxVwaX/6RMFwZspFbHSFIpdwdr7lRp27btPj5zbd00TdC8eDm4I7Jt+3ptA4eKdPvDUe2MBDtZxy5H19EubCwPk+uw1Yzt7Qb7vJPFrny6Z9r/mQLftGThKr5nNGEtB5EFwVD1I17ZUtYUgOBsL8dQ0fksaOQWuzVK/tUBdiY9BbY6JpcM2wVwhWknYGQhYww/8dYZS79NtnzJcGdK1j5We324ymLwiaipOT2vopHzYlyJQD/0SRL+ly6bevCllY0M/hIqaJazHTjZTRfxwPQAateLjZveU+KBAenloB0u/zTrIHRVoZtGEm1tYZWnd1qzE83mjUqdyBu5OEyhZ06C7sSxpo6NHaZc4uaAM2Maizf3q6YaT//XaqRD4YcBKcgiRqAIOKqdyTR0iNUHgDjSTytTvE3NFN0cdr3xewzbrbSy4IKYkrhYy4twaz+qi3+j5UvlS9czprctGPSXn92s7g9Anu9JfzkYdgWktkLzQ0bfr38cS0raw8TbM1CXN2CMs0ShCm5DP/8kbh5Pl2LjCJ7iPGr3kr40FN83D+1N4rOqQe/385wyJ3Oo/XI79QZfYFXqPiEviwI2jQmaOhV5NzuUfN5D6cupyMPBJZYMOte49njoqpTXlZ6cS9CcKSqbKEx3UZIsaYJgRPPr0AfPeA4OSP8fbWpZIfs5Nxy5N7mJqEHvD+OKr9hEpcIW82eFNT/ovIzu7/HxbtF1ZSXvLKBIkxvIaAAJIWh1boy9iNT8+4bmfiuM=","layer_level":3},{"id":"beeabbca-9f86-4566-98b3-6bbce10c5df2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"双因素认证","description":"two-factor-auth","prompt":"创建kami_backend双因素认证的详细文档。全面描述TOTP(基于时间的一次性密码)认证的实现机制,包括TOTP密钥生成、二维码展示、验证码验证流程。说明用户启用和禁用双因素认证的接口实现和安全考虑。解释MFA工具类的功能和集成方式,以及TOTP验证过程中的时间同步和容错处理。提供双因素认证的安全最佳实践和用户操作指南。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","order":1,"progress_status":"completed","dependent_files":"internal/controller/sysUser/sysUser_v1_totp_set.go,internal/controller/sysUser/sysUser_v1_totp_image_get.go,internal/logic/sys_user/totp.go,utility/mfa/mfa.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T18:59:05+08:00","raw_data":"WikiEncrypted:vY6Su0EQyZ4UawjR6GSslrl8TerMMRiC2vAH1D9LsXlgGlhSVt6X4lc0ZcGM0XjdwUyEG7Z65qRzodxrMLLnPnQdajFR5qdWB7OnHuwnK4nxF5WDbrYVWRgzofrWcIPnTm/3ITBkBoKIcdEEGsY9hB+Nof8DN9JZkRzJJfJbfma96VCDDGRtCeS1yEhWA8GYgQgJAkAspt3/dBRiFREKOruVTI+4YpbiGQbcefs2j2qQZauMp2PZDvYE2My0v9fpY6iZa+cNzD2Y4SVyFRAzChxQBfL4WdUAp3vuq1o+AtQRIF0VKf9Pn14H6j+fXSXXpl779AEYyMBSJ8FBrARnQLn0vcBAdZPICQlMYP05F+LBaYH+qdPxUexSkF5+BhnHbOUDhuKeUXx/1AQXxaDhBgQl0r91Kcat9Fo5GnKmMxkz3jTDyX0eZa0wDQearidX2HEfS6yLhNNlJ/g1IMZ9UyqjsQI/nJNuCMN5hyHZe8A18hef3KSAUcZSN1zxM7o/42dwzBZyszq7sYbh4fAWpCoNVlGI6dUwVMKFZYuwOdd7wY2zp85IqJyYL6zGVyZlcA870+SniyzCc8XjHAdESUR5tC7zcDoN9pdvmX+kShg6eLaB8ogC877RbyElNpqTigH8jBuscxW+ZNhKZ1nbSxhmrSp+R/HZUIja+E3bX4c+aS9+Lzch2Cy1whBO5sBZ4tBOdTG3Dj7fBgQElnp3R05nZGc+8bK2Gabr/E8aMr8Wtg3gUbbuWjXUWUoIpxNjLY0SwMVRmwq5eT+0a+spmaxaiibH0siDFrh1lE4OVfvAz7GHkz1XtBShCRIZJJwD5ul5Su6sEcVRjcKOfee9bAzW0W/wJa2NA3cttTl3YlsYgmjVGItM/7qifqDJmTEHX442NXZFo3tIy0BKzbzrTeizDbhg4K3i+2WlvsxFduyfdbBQffsvRuHuhMIyT3SSM2+HbWwtv0K97jq5GeEsIlw9BoT9VLKSB4PE0AXcQ7k+qRkYCi/bSGN4Vd1Oil53HvXe/oGlWyJsMKj+kfsbVDnC9v/h3G11nHF9ZnztCHwHIL7LI3T9vV3wuvZn3Ryn8e3I+a60Hw5X4LRr64YpJ3YaCy/9g2yyY+VoFh18p24=","layer_level":3},{"id":"3acdd907-8a5f-4d42-9ff1-61bd6e8cabee","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限验证机制","description":"permission-validation","prompt":"创建kami_backend权限验证机制的详细文档。深入阐述基于Casbin的权限验证中间件实现,包括请求拦截、用户身份识别和权限检查流程。详细说明RBAC模型配置文件的结构和策略规则定义,以及权限检查的执行过程和性能优化策略。解释权限缓存机制的实现,包括缓存更新策略和缓存失效处理。提供权限验证的调试方法和日志记录建议,以及在高并发场景下的性能调优方案。包含自定义权限验证逻辑的扩展方法和安全加固措施。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","order":1,"progress_status":"completed","dependent_files":"internal/middleware/auth.go,internal/logic/sys_auth/sysAuth.go,internal/service/sys_auth.go,internal/controller/sysUser/sysUser_v1_user_menus.go,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T18:59:43+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoFf/RGWFtEoRnhdJx6YcaSt2yvz7R2ny27ALK5reW+2v6HBYXkYVp42DaRmQlw6wk5BpsbZJASnN66QvlIxTtX1GJ9/oYF/PBg2wVhmXSI4E4863QHWaMcIRmAVuem99t+HgIXr/Sj/hAls5rJnzaFEWpGVJiEhXzsspWqm/Ek6IyM+UKLwHHfdJ6YRuB3pVTAMrOjKad8gYWgfp0Q60qez80Z6KPcdV9hSUQHs/NNICNd7XzK7msiKl8l6T0U0osNiFKzIa9RdcE+IEr2E3AdSUJIwTrPsXB/eEOjW4OFIDPmMUekW1Nm6Qd5IQrQwvurEGevh7WiWIB3+Zx+e/kwhAR2w1woh2BkKP7zGZYjslYlVBCipomiH0A0qQJP6riQbewrd7b0l8BG6a+/GETYz+XZvViXDCKr4I9iEPSQK9WeOiOlBQJzkvpQjTJzfotSvl6XgazWIuXiyZioPJ5rHqFg/X3PbNBt+N34h+qOmu/4aOJIm0eKJzMVtA3tzOTUCpcKpr7Y3bWvcEXLU/eCW+bKfgwF6I1I3xLJ+fcHhZWuxY8S7Qlk2bfrAyvYU0NhteTi/cOJN0xKilr0yVDDC3Xc+zff5nNN8qBTG8oDj6fNNkQPQcVFf96skiAvJthx/JEn4t0nzjhzRsBhWvJQOZX5dBCyPaqV0kQFlM6m+fQWUwxgAEPly0awuh1di07X4l+BpYEevW8tF2BEIxQIYcLvyuIQ9neH9yNG22mT5w7/ZrwbMxtbUQq2cL8+sYFU4fvda8QGA/C9OJnG6yakaSO0b1CjCyA//By2BZI37d+0laL8Q5epqq32Tqyzg4P/QAQSRdE9g9RZJLfHw4JS/9jCntJruBscq9BVeVifX+yCE/e/LDByJ/BFEJzenEin8wG+/cL1mWQWPHGDolqCnQMfnJQNj8TRaT0F06CPsLK7cbzqYdUxR62plYNbL62Thd1buqu/C7XyVJWdyY424+uPDQSbEo1EMnhSYIUWfCeDrxRNBPcdF3v8RY2Wzrpk+e7TI7dqWVD+23ONlthzIXaYs+njKH6PrggA859ITkjojfKe6AWL3ThoYfmJ9rtpTWBhxfqUVQqhpuIZXdv3jXUiiUnIfAyRYkpClCGrPsvz4AsHPnuuSpGouQzOfACbgdJvGOg6wG4lwH6uhmnxzyiZGOZ2aNpWaZlBTOnbjdHW/rIyB7MbFTqMMRl5qFhO3gZVnS+R+dEwn4dWKVL2VzZP5S/nYKG1o7moc8cbcG4f9rqsNmidFBTCPRzrm1SDdCxZ25mdVF4MMjMCRaq1wEJgRvF7uG1s3lK3uUCOep1q2IRAa79NfyJfLCk2BwQlee+NemPHNHAL50qhGbqt8=","layer_level":3},{"id":"f8a44d0b-b413-4926-a059-e1ac7b32cd45","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密充值处理","description":"api-card-info-apple-recharge","prompt":"创建Apple卡密充值处理API的详细文档。详细说明充值提交、回调处理、历史查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述iTunes充值回调机制的工作流程、数据验证和状态同步。提供实际使用示例,包括提交充值订单、处理Apple服务器回调、查询充值历史记录等场景。解释充值订单的状态机和生命周期,提供重复卡密处理策略和防刷单机制的实现细节。文档应包含错误处理策略、安全考虑和性能优化建议,特别关注高并发充值场景下的系统稳定性。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","order":1,"progress_status":"completed","dependent_files":"api/card_info_apple/v1/order.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_submit.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_callback.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_history_list.go,internal/logic/card_apple_order/order.go,internal/logic/card_apple_order/callback.go,internal/model/entity/v_1_card_apple_recharge_info.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T19:00:01+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBuQ8gXhRT0hzB3h0Nbh1xIc8vbGqXNlySwlsHA687otrBmRJVS6BPY7gJac8PZeXAsAUuL36qjwvumcmqfC0mO4vzJPpld0yLwP9nKUzByZeABboPKxsN72AHYuimc2vbj6BjRkMxey2MWjbd7zKWCmcBhGvX7aGJZgvRitjV0NbfinDarbhhJnXy2JG8fWQMPVL5MT6As93QDKtWRspAh7McoJm4482mM5530X0q2+/5pquJsvX5TVtIhdaZ9YQ0NVMUw9rRtpicvoJekjYlNOxWZuLmWwLUsj2FGo0lWqQQN0I2qCrLsueyHWEsTrUIE1tcNEGP1SesE9z2GVA2RQzh6Bk5fA+FHSE4yhsvMI/RDblLcl2APujp9eWneAvKuZYvDAULZ8W3jbtM43qVgX8X59wSHDnxfe/iLTGHxobpo2ZY3emYDBUtPdz4aw6Y6djarI1Tug04e0myHz/gBAUvWFuXuzSxrnnWVro4dXM9G93q7dgZjxDgBMUIlBt+0pK3FNWTKt8ypLZ7hcyOZ7qZXEk0SFm6DCxzSadEmnB1/cHvPxgeGky8QtSpttAVJ7QfzJHd1NWP+A85H8VwzZZ1buhNjamJ0FOSidOrszQ9x4j2xPOLXqYpOuF17xM9K3o+F4DxQ7ScG1u2vAmaGOzNgDIdKMVUtGuaVeyOTQmLTObX8XrV6lOE+uEWLHBALC9jMYu9m5mPN4M3HoJtJ4uz0Sth4gVJYSzdXMJgIxDQGRP4vcseqIBD5Vzx/i1Omho2/PT3t46P58JUF1ei3ACBNMgMueW4vpvsIken9QSyshW8MkozNRNpSHaGNgLsZ+Hv0mxz4HZkqm49Iw1BHpKC51pgk3Uks0BUjt6xsKnxDEbbAoh+IFl3Tx5SQfPLU9MdmfgAEUNVUydcdV4RBta8VKRmhQlEpd7u4L2YLOdC3pAz9XvQceBvxc6a9JpFCPbzl7invyujj7Z9Ujz5A4GcukIVtaMKSCBlt53l2LJHofYx2OHrdr/AP+7uZjkZFLBmelj2LX0G7dTMcLILju4QdmFQawqmYJ9HJO15WdO2uz9C/nyK1sN9LbjgMOgVc8eFmO/A4kTYd6D2bIF9TdfzKIhLRdHiiy6ZvlmAMzpcczRB4xN1Hq4Nyw0EAC9Nkf9Hi8AAfxGvABIiNBwWDyXahE9tGdXpB4eMKHZn/5Qt1Z6veg/JG96rpMs35nn4/qtuT5eXQRy+UZdcDC9qyWnyXNKH3N/DnxL2NDRHTcCUtBJhgopB4kQz0fzTh1bZWtylP46ilFo7HswGp1xQScG8DpABULiI3Q50m9CTfBvf42TmKO03cTOn7IxkCEQLmqyOKwNsI4THODt5J5H8ENehAgRz3GhacvV7tATmIbcNLo82ROYYQRADUqdnbB0YbPOZdglgpaoIBJhCym6cpUV3sjLeq+UFO39JT+JDUXVfVmOE8isa7tj+vb3PKn7c/utuSJLcyIGNQ/+Pm4r+w/KjNATozPcmc/buYl0Y4XiHU2xWY6Lptym/XT/1iO2Juge1mI/Il//TytNRDLz1Bs/yqMYiT860ERThWkBlRaRmIVNf5R63uU86tmNaSFV9JXW1nwzRwZJvwPk/lVFlmek7UPPp2dfj6DCmxrtoPqOWCLupaLjEzzAIUhB/fZSGqDo3n6gVa/6Q0kfRoLGGD4NLRVCFj9R6nA54crtmC/F","layer_level":3},{"id":"a255fcc8-4b84-415f-bd11-dc26fa62d0b9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密订单处理","description":"api-card-info-jd-order","prompt":"创建京东卡密订单处理API的详细文档。详细说明充值订单提交、订单状态回调、订单历史查询等接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述订单提交流程,包括订单创建、支付处理、状态同步等环节。提供实际使用示例,如充值订单提交、订单状态同步、异常订单处理等场景。解释订单回调机制的实现方式,包括数据验证、状态更新和错误重试策略。文档应包含客户端实现指南、错误处理策略和性能优化建议,特别关注订单状态一致性保障机制。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","order":1,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/order.go,internal/controller/card_info_jd/card_info_jd_v1_submit.go,internal/controller/card_info_jd/card_info_jd_v1_order_callback.go,internal/logic/card_redeem_order/order.go,internal/logic/card_redeem_order/process.go,internal/model/entity/v_1_card_redeem_order_info.go,internal/model/entity/v_1_card_redeem_order_history.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T19:00:03+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBnAun8ymWT50xr+zQMrdfh+JzQlOWLJm4o1ZqCukrC50DHCusAN/0zL1uDXc/vrzQH6s+pvprxcKT/XPElwdmz6dQ8Qjdb+NTvCbf0d60ZSVdNZn1cZCzjaTkxXDwkUwKfBZAaty3DDkJ97arJJM2XeNGKWOSpcw29gbMfkx2sBWTqtT5Jjotdmd2tVIDWkonvnJ1vA8RzTeDXpB7Mk8YjkTFg+waI+PfPGf/y98gHCNEO/fF1qpBN8vkz+MAs4xkbYJBl92K411F/oX54qyaDCDGt+RDEIYE0GV+kNJ/xmVu9eFvwp/Fkylf4S2X4rMKixtRzRwuyUgcBZjFx+scr0QzVdTWHxpb+4VdAlnyNe8YCn1R35zcM7apkH1DzgEwVPqpz/PUoFISxYyEEPM2ryaCwOAoNe/M8XeXHSIk68dlpJ15NNaMBOuFCVHgCCBweWGWF2Tw38NclAQKtEGfiuvQeetCLRff+NDEEc/XziANOey/NI4PnkQDjMLsDtS5y1pEFGlkzevaULxwOv4Pu62/IFuRRCES4+MjPas6eGbwTm2ahAq7MOwNvUxl1E+oYl9GyVYcqXH2UnD9dWQZYJnbiiIfXAoxhJf8vUQJFV8YpzF7LxPE0zUffUNeX2RjJwq6DOBlH8uBKEnbg/r7MDIJs2IM9MZnpMWulUa2tmbK4aWl2uUpJcyjK/gDjn17XoHysheQllRQalXEkwAbufDf0kDNFzx/K7aMwRd/nKjVOyaKQ2OjwfY/cC6NxPDCvOpuPeglR2C74aHUjHsDkAga817aSC/9ETfHC3IjWSHlcH1ap82au/gJs41NsbO20aGZ6+qarkWDKW0sdmEFqAlJdd0XsS8N1fzyj1unkjosiHLoaV8yzQnLx2oCMX9Yi0TqDAwxq0ZHWcGDgaIDXFb7SxrWW0brOCV3k3ubVAObIM7XAz+pwrcfX/TiXoTbLg6kKMCaw3d+LiAo/Fs1jqVB7L1bdNQsfBbrKPNQMFh/2DdScuVrAAf33hR1rL+DRfddlbIztmuxqyllhL/V1bwR7kD4EakY1sDLkM4aaohE7HaWaGENwI14Ar1oMcjYpBkl2r9iEJFH6e69N6O6Q2IxN2JVXHdDMxCOYytu3uwdmEDwuMVmsKYoLFaEptwJi/v9s88n7rr0LXZaIyYE+FU4/EgMXtVwudLi1aV7e3IU+JKatpMjbLhRpaNLkfNUs5zHCLJx96/VTjaZqogjbqyAdcyaXgw2UWbhpu8AhtS+hk52pXvCwMAUDRyshNvlH1TkgYVttNZN9u+pDO0IEF5kPTA6riGhmt5v0qMfrMETY8Jk0EE3q5mU25xqGe0Dm2M5HIgBFYCzcV0dvCJCZsgZ2dcM7lrHKB5u8wjUN3ceH7aAA7XhZMr6fmA0Cp62hAXM2JvAm7hjxO8XGH6VlduHCeUZODN3M0wVwjqI74BCmeMvxWFpqQBe/uvAnq+TWGM9fRJuqEpwgjZ5OXuBd2HDVRd7OoD44cEFCNykckz0OzFP4UhsTqZZno9bK1TM6Kz93JnP8ZqJtiNF7ArUFxAJQ62924u2nrUOev0NpOqoyUsp5lHb7zh3oiQiLmMy/0jj6/ZbtktpyeOFbHKcth/nPhAuZyD+oKr4m9443SH","layer_level":3},{"id":"c156f2b2-d455-46fd-8a01-d316c8e27336","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密订单处理","description":"api-card-info-tmall-order","prompt":"创建天猫卡密订单处理API的详细文档,涵盖订单提交、状态查询、历史记录等接口。详细说明订单创建、状态查询、历史获取等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括卡密订单提交、订单状态轮询、订单历史查询等场景。解释天猫卡密订单的特殊处理流程和状态机,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注订单幂等性处理和状态同步机制。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":1,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:00:59+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBpwp7PBBej0a/DwKAcLvKuicf6vl49763nJQ4T7oW1SwmmHr2nQhTOzIckcABWKSlUJgeuYKu9aMTw/ksiYmKpWoOVkcuA29AjNMeJLCYrxELEHX/RtDnCSymIrpWrpYBEVNL2JhzkgxKtjJv2P3PIQhoddo5srmVnjOAfj6WX8abAtLQIuib2C3CUsO3Jy0caMGiAhbuPgcILgCNYwKb2LoWo1aDROBNXLQiv0h/5rlxBDhiHp6yHTLcozUcyr+nmvqv0xlQJCRm7PF+qS74uQESL0xA70oGIsY7BGSPSPnggle7XjqUQU++v8gvqoIXLYynp8DzRWxUQBEYDmCgIWSWlWALARmKONm3zkvburdzD7ijliod8N1i6eyqo078f1TofTk5QYiq74NexQNcpLTc/SlKN3x9Sj/ZbYEady2ObHD++RpsV+H94r2br1FWPuZZrQUHafAz5nP/3TIwMEVQ04PQUGYbDbi67wBchEuqQLOBk0hyVb5rt/APRH2aMiGColxHHYv2QIQnfsBOJX1IoQLYg1FJkhFuL75dAg27UIigniKpZrgcL8tB6WU8XvTmX6VRxhoE7zzIsuRWp7tLHqnYVb4K0qfRltEj8Wk+Onp3ReryA9nsxefJwSxa8PpMiEQ4ZmPTda1SyM9MR9ylD3gLtk4rJAjKLmBfCcYoBNgByN6s4iUPY3UlojvhzNM/rvQpxaeuqwykhAj3UTYEiTlQP62+tf/XNvc/4xHAL3h29WOWsPwRYXqYDUrMUkm50C8Rsi0jPVYjKHN6b86sEvCaJtwhRF6MjWaML852XBJv4ccMrBtlKmYfTl0L5+cUZKiv+QNN9mNdBH98POVpcStwSEfUMv7A6w71JdToOKRutsTS/b0U581GtgzvMGd6cwWMRghrk0XbBF0xP85DoMxbzfiL9AFigDz3gkWtIUIHlZ/24+dJKVKSP109IGmzIpMNP6te2vMkbeyv/Oeocdu0hsq4muGsW1UD8vdU9P8UDgiNui04pNnKilDvotpgPvE2nyGzlRIX1fKmO/Jtl1L4YShMr3JuNv8kYu+1tLQ9xiJ9yU/OYalmvBsr20bW6MbKmkE1xSqDpo5D+N8O6/cN82D3AmrmUw3tRxadOxo0dPmrk7lpot813u6vAhi5zNSdK7keFZHGJrULsqvepmKT+ImO6D4Fc/zeNLd/Cx7gc9nU23VRea3HspNOj/is0O4OzIiShq/de4xRBFldanayA34KGEQppWM/6JK4jNiRYjk0o1yI+uoY70npaC/BfcVLxtNs1kyLs20fnJ3JdABUqlTffbNbD8YdkxTAk8jtaLHvJpRjY6q3uqCjf4Z2n7Z+bCt+46Fa+8TegVOr9ulqNoqGprIh59PGkpQ1XvZNSXgGyeplvS1Eo5+HBUosyFzDi6uA5NPwKaH56mBsj6IAdlArnOaLbzM7jPM","layer_level":3},{"id":"754a8225-3d82-4760-bc4f-280e0c19eb86","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"运行阶段详解","description":"dockerfile-runtime","prompt":"详细解析Dockerfile中的运行阶段,包括最终镜像的基础镜像选择(如alpine)、二进制文件复制、运行用户配置、端口暴露、工作目录设置等。说明如何实现最小化镜像,包括只包含运行时必需的文件和库。解释安全最佳实践,如使用非root用户运行应用、设置适当的文件权限、减少攻击面等。提供运行时性能优化建议,如资源限制配置、健康检查设置等。","parent_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","order":1,"progress_status":"completed","dependent_files":"manifest/docker/Dockerfile","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:01:19+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kCJ8o09p2tGI8awkVmrWyL2InK1RBcwm2+B6aKZI15nZpgKrnqicGdFRDxe41FImLhKK2ZOgsu721pHM3qhtLp+lD9TBo3B8GW4CdNXlVCXttj52FagEQnWjR7Ok8z2qIK7CUp951G7NrzOiF4BuUSyA232hodj/ra0uTSWpWoKgWjEyiZU/YVzEwJHVhlsCBJ76yhX8TTK64mT7WFwWu7azM7pUoD0M1C7mjaxj7mPfUq2iRCCrYACWhaH+T5zrbk2Gbd4O+M4PEs/ywQdHgjvyZMuFF862ueWawUZiDA8Fy2QFwzQ6LHFk4GXX+Qb35PvW6Hl54tucEP1Rw/o7HTnmoONOXu3go6/dL9+WRA0/RoRyUC/+ak1iXB+N5gZ5zlcLfxPIuOf2i3ptDWkDCCS42di4p7JFiJNjzMaiVwpHefr7fPReZmLQJdjI/O0g5WjDycruA2NO/IYw+vJJR0GyaIcF9E8UCtUx95EB8WRcjwwIHGfTMhRbSi9QSHq6409vNdPU9D+wT6kgmYR5HNCkzdc+8Hvgog2HQlg6Rtb3nQ8imzt8pVXlGQl7T3uDyT0Q4JSqfxwO8Q5QtpBXFkwpNoW6W2APxPoaWn8DDEJB0KXRILGnl+hW9I1uCDVCYA59OdsXnYx9D0Osjl6ixMzT/j7EF/kWmwaya+Mazf+wHMHguXqY8Md7TgEFz2Plqd1BX89eRzcKjzNFywC7AXOw0o34TuNLexpxm5AH56vBRwxt4aEj9ZkU0N1kDkqkyxwAIw2uqGevmMFS6EVrx2anEMh7jlzhUxYY+J0hfbl4/FlW5BSppLyk9HZbImH6ooAeAoIZKrgpmBRSivNGx3vzCRjICr6SbMJV35BXkdzhW8NB9AJjRWevAS6q2Rofw2P/mi1byfyZErtt4gYypYM=","layer_level":3},{"id":"694e73a1-0845-4ebf-a2f6-990acde1e379","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密订单处理","description":"api-card-info-walmart-order","prompt":"创建沃尔玛卡密订单处理API的详细文档,涵盖订单提交、回调处理、状态重置等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括订单提交流程、第三方回调处理、订单状态异常恢复等场景。解释沃尔玛卡密订单特有的处理流程,包括订单状态机转换规则、回调验证机制和状态重置的安全限制。文档应包含客户端实现指南和性能优化建议,特别关注高并发订单提交的限流策略和回调接口的安全验证。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","order":1,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/order.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_callback.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_status_reset.go,internal/logic/card_redeem_order/process.go,internal/logic/card_redeem_order/status.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T19:01:13+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgmiZp2o9E+nyWzfq4lRGV5l/tcyFnfkBw9B2/mAMxcM35H6yqYgB3970FKC4oT7YPUYYXIhgNKAWkEUnOk1wxl1biDCVdJzQe2eGwQ9rvmvJLFNNIjY9hB0yA6l9NQkvO/eHqs8iynDUlTpqQxm8nwJfpqDwtjgx0bVz7s/AyOVlPg/pBbtDoClx6HKqM0Q74Rp6MKklmdTj3fVSjBx46aTV10dC8GUmk5SWn3kHKLi0ITX1W/1Yra+NNYNaX5g6HPkQxEXX0SsmtLSIBgPYrK0RDXHDvEeziKFi6k0k+zADnz7V7rd+HY90sOadfVfycJuU0b3CcwqHfT0BYGLUbeRt37Cyk4Af9+mwZqcPsx/yEs7VqF0r8rI68qZpTZFRmlgXwMH6qXci+7CzYs/B6yADK+tQ///GPG15XMO714UDfFgzCjnyreeQ4mwpFW7/IDYlrw2nFO49TfwnRoSmcDGNn2o3o1uAoxRa4HwxqtaXHhK2ke1SCZYjONhha7b94kF+u96x4V75vff6GUqdz2t19Qqsn3KHGGo5WNDt06J/ASkZxTxfBCidTP02xEHgsTMDeOrecgJHS/HHPkdLHQZx0wFJTvSSZXM7J2qKwUzJvmHpgp/84E7UQGffMrIpyp0hdt5CDbGdadVCkTJpRqNOKClurVmSH6LDgySUCmaPogMpXr4wdzo0tJRvPRe0wult0AoHd+4zBHVMO5jJ52YfsRZlO3ZxCeafrFPPOYqpLVvRhExaSR8ckTGL+9sYBPo4Gcjqj1Nng/Rg6dWx5O8pIguOgqRJEC1tDxx0ANIZ81A0lx+YJRLA96evM8m+RR7uh17E8l6fGyX94wr77DU4XSpms3GShy1wsXg4Bm3cjLCQJA2Xck4E1Na0j/Yjz3QOLLPeFz0OXqXF2KCNoGgLWOOQFGdrhtxPqncvCNTlsBxDZoMsbXAJ3KH8aJwx/v2PcDDpoQQjh8zInOUpA2lrwzBXM8P6hnE0yyjaRKjLQ97PhTXOq2gDXKHOdD9Ax5jQc6q/jkYb4W9klpQDXJrNaGCOJz3gf0S90niEy/epd1wfolAArqiCh78gA7FftUAcGgKKKPB/gipbw1OJbP+WvEdvKgtJPbu7bbZq2POT7CcjrMYeiRXOeSgBQs5kPkQt9ErYwHTl7weK4RHm3v2IIIso8wKEXnAWZP1J5RJDyiRL5CQWtUjc9+WAxt7P1y3NXLxZKh4a9S3341YEXjKKNrPaSp3pMBDNHtzYlsn3KvWPDXyF7i6fJkadXtc6aCmX/Fy5pMdua0TFCJLL1z38QkEns4+F1sucDGZ3Ir/917cVVys3GHyVdXaZX3EDm5FDaCbBMjqwn0F/IjYZ5MdojWwrbLrZS1HOm4g/Q8WOHCCv17831vexItO8+xhMnwxOlst49F4LQOl+Eod8VXxy85Wy2T5M8skMw4Sm4altwFeVskh3EiHQPkcB1ATyXv397DP3D2AUJCaGxmPJ/AyQ4sxk9FeIYXsKOW3zSlD4J1uE3TF2GQwbSlBPeuHd7ufO3jI2FvuBiWpgxxWhkRj/CEfSdwdP9R1Yo2JCOYbmPX0vomc5VI4DRgO5ZtOyHU=","layer_level":3},{"id":"350fc114-3308-4a56-87eb-6916d2c2e278","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据库配置","description":"docker_compose_database","prompt":"创建MySQL数据库服务的Docker Compose配置文档。深入分析docker-compose.yml中mysql服务的image版本选择、root密码、数据库名称、端口映射、数据卷持久化配置。说明数据库初始化脚本的执行机制,包括字符集和排序规则的设置。解释数据库与kami_backend应用服务之间的连接配置,以及如何通过环境变量传递数据库连接信息。提供数据库备份和恢复的Docker Compose集成方案,以及性能调优建议。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":1,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,manifest/config/config.yaml","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:01:54+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kDbH6uJdYYCT2pc08C2KEwMf5Wl8AN8aSXt7ibeyk8vJfbJakXE0fYaiRSmXHov8N6HxKWIlNdIrovG28EnpX4lr0UA6D4aN/Jr1Dw76RdHebznqhp3C8/j+LlS6Kd6rR9GwW/vWIiXiRsELkjk+KMU3pP9ndmdEuLGFQ4uAWPTqevVaLNpxh/cPBeylyu1hIyRorIghw3DHdQgQbx8D4bUmDCf2AZm+xRJxmakYugRwU1t9VT/TTelfjldfNZrjBMWWKaLWFBoAu1UP68mIeriPuYhVhUp7TbCwFH9dfq731iRttNcit6/wULnty89Wqv23LCCh1GxGYgvFscEAI/a5pQW+4FC8OrqRnF0t8aeh11XU4FyDHA4lavLB3g9FdMh3wSkPTIMs5QC6M9YNlOeROdjd4+yHrEWD4kGWMebzgOrb9CJfohrmExlyyxSmnM/6CXtjTFMZOXW6uQZ6E4ZjbWkMeSt9JXGg4DGAulvTRg2IXMjb0ajkRwH7fbt6YQ4P6kr3Xy2Suft9bjfNTEJu5bzOn8eMK4iFSzJ8j5DhciebwLZPNHwJs9DP/OEFq6vl9oWKWZjxP4qfAACJmVn7+CJmevXfcqc+A9D1GfOSNWASKo/EudAN2/T0FD3CzWHDq7qdkhjrS4m4SvzxPS4+VO1zBYO3gRH4lJez77fsMVpCt1CmlWlzv63AG6H1wsn+mrSZb3Yv/4OPHi4XNckxlkhlhqlmeJO1Vvy2EG2D0zs+/OWIt95lxuKksLver02gy6PAEFN3EK6LzE9qRcDjVsKmqtzEvC4ju6cnmqAA7DhP5+T6mhnh5R3zUuypkJ+sAcffjT+Ns5tkH662R8pXpyZmARzeDVsLkrtE+lRYtgxYF2m+vkRW2NNLesQXuGqKY+8v8N1+5LaxFvcwrAMTcby9wDcKaehfSrYCTgWhBymjwMrboclLoRFkQwYMOTxdH6hF73USe9gHMYlZjcxTczTkUeREQvL8EoYdzcOYTt50qUpwQwSkFBeMjs1DExIPTh3dPbh17g8fRGQ7gxewkAXgw0yhrisFa0KsCrpHswWBkuydMB0YUycjioFxUBvq0WQ8wlHkI/xYDSUUAsCWc6Ud7z2i0llFzpxl4o7G","layer_level":3},{"id":"684c6e3a-714a-4c56-ac79-76dd3bf8b711","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Otel Recovery Mechanism","description":"otel-recovery-mechanism","parent_id":"56f928f7-77bb-40cd-b1ba-80079defed47","order":1,"progress_status":"completed","gmt_create":"2025-11-18T17:20:52.893648+08:00","gmt_modified":"2025-11-18T17:22:20.656142+08:00","raw_data":"WikiEncrypted:kpl2Frorcc9QXQtOSOzWnVs7WAE3r4at1wn/LqYwnjPCnEXSgaQenOo3z2jcV7iLrvKmyGCg1XYawC7hc8GGANuoEkG1Ow/QrVqA+KOkOZCOXd7T/0ValOhDS/c4chT6XLa80juyJA4xQbhiB9QLmuLCwyh3wQojB+wHgpc0R48zVg7sKaFA95SV3UvdfU4W","layer_level":1},{"id":"a848c21a-fe0e-4e1a-b189-d3aa8b219443","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Jd Cookie Validation","description":"jd-cookie-validation","parent_id":"529d0827-5291-40f8-8e40-3b0ec55570bc","order":1,"progress_status":"completed","gmt_create":"2025-11-18T17:25:02.631623+08:00","gmt_modified":"2025-11-18T17:26:02.170973+08:00","raw_data":"WikiEncrypted:jJ3A1HAYaXic61c1+7F1NXGutK+G50spZzNeNtP6/hWiAAXCc7jA0i05HcpLYawndCMzMD5dpZO1UclYJU/k5Qb95gR+xUNrp4+LypsdOLVUkHyZm3KDPlevqFWV7HgpfeauptLwX0it4RjSavFblERc7VSFsu/ZKpiUR1UGN9r1rvRe//I3hJiba8nV101v","layer_level":1},{"id":"a2acb678-1a44-494a-b250-4fcb5dbf9ee5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Order Management","description":"camel-oil-order-management","parent_id":"camel-oil-account-management","order":1,"progress_status":"completed","gmt_create":"2025-11-21T00:54:11.226748+08:00","gmt_modified":"2025-11-21T00:54:56.997509+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilM9lt+oVmKB/VOSYLW4QTmBkiKlE9AVvVp3kVw9NdwySfXfDvBF3P/azBey02PARpnouf3CtN/Ivb0KYiU5HhV5HbUrSqRbYTrSx5An6rCxc8K/c7DSNdoHnEuSGVHKn6vbNnmlSwolRrYekZcYtKWavxHwaPaPtw5kJOKWKOKd34Y3KqcLmJll6yLfvv362M8g=="},{"id":"d75fa3b8-6b32-432d-a003-2102085786e2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Cron Jobs","description":"camel-oil-cron-jobs","parent_id":"camel-oil-account-management","order":1,"progress_status":"completed","gmt_create":"2025-11-21T00:54:57.058079+08:00","gmt_modified":"2025-11-21T00:55:59.168849+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilMx6SKPbLZorD1S1N34/Y0JDEUI5jU5kJNHA1y0SbWcEE6sLtOQgOeU05O0myrD8vRCEBnR7LViQIOqu7QAV9WGJf4nR9IKNPQ8OHXeIJW5ZEQts+IU0pYoP3wTMqtbiLmIZaJlD/J2eg3vBGGwb7Jmv4VebzNP2g2KIREoL+PWam"},{"id":"e1602b6a-2680-43ef-96a7-63c65276f5b3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Api Endpoints","description":"camel-oil-api-endpoints","parent_id":"camel-oil-account-management","order":1,"progress_status":"completed","gmt_create":"2025-11-21T00:57:04.051951+08:00","gmt_modified":"2025-11-21T00:57:54.509795+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilMwL+jwEXvRVFNRPmxNu3b/hOYAjgATbvuC+GM2N0rHvDsbe/I8boA/hgmIm/44RBUlbja54372aZNM1MqtFJ/H0BXdnhK+jkzxjT63s6MsP8lBx+hJTYH1VPnXZ+NXw7QaCxI4GCcWs04aqNee5FSAaZhE05R0LkkuRvvHUMyS3/"},{"id":"64cac37f-2358-49fc-8711-5b10dd56755a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Graceful Shutdown Fix","description":"graceful-shutdown-fix","parent_id":"8292f51b-85c1-41d5-a58a-50585ba999d1","order":1,"progress_status":"completed","gmt_create":"2025-11-21T00:59:15.838675+08:00","gmt_modified":"2025-11-21T01:00:12.452127+08:00","raw_data":"WikiEncrypted:KH9myblNkp9je6ldXepllaEfukIPAlfVUpjwoeqSMoSuiNHN8eeYn3STA+mH5qJnvnAljiJUiJMMODubF204BaSDkpGI3k2nfOqls0CL6m7izm6I26gO5XZc4MRpT7dUrrSBdY511Ewuwiuz6kFHgw4yUEDxKyLga+XohdYJnedT7gPf5dWffVnxPikN5yLF","layer_level":1},{"id":"aaf3daf4-4a28-4e81-8d88-4453361c2ac6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户管理逻辑","description":"merchant-management-logic","prompt":"创建kami_backend商户管理业务逻辑的详细文档。详细说明商户配置管理、商户部署信息维护和商户样本管理的功能实现。阐述商户与卡密通道、支付方式的关联关系。解释商户配置的增删改查操作流程和权限控制机制。描述商户部署信息的同步策略和状态管理。提供商户管理API的使用示例和最佳实践。包括商户数据隔离策略和多租户支持的实现细节。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":2,"progress_status":"completed","dependent_files":"internal/logic/merchant/,internal/logic/merchant_deploy_info/,internal/service/merchant.go,internal/service/merchant_deploy_info.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:31:02+08:00","raw_data":"WikiEncrypted:3KjeyWIVLPDcIZ9hw3jQxyih1hcV0MJ4WqB9XePVqO5uSk87HoZVMGLCJS/ddafnUeIJQvZXh8CiqeZCsOzZ7WWApgQWliHRHf7qJtC8WdA8vY8+vPG1IchuNQxYCmY726D+QWa21h41Q3fVwQ/EbkZ5I5PeqL7fxALsHkjR7bBIGQOIdSoi28zn6pIjvYcJtnoUtCuvAIjXx4lggeR3EdyOcuTum8hNpHtQIHe94pnVGtGcsTmo4ctQw1pIrWvLoU7Mau/SNz9G1PPgih7WOyVW8Ikgmj0cg0hr8q+tzGSk1f0XuA90bYVJoHuVlzYOxgYv2gYUY3QapeKCICUn1agTLEmg7N5M7J5gxYS5Fcvn0PeeH4pP/EVszrTglRxS3bCNec9qgXJGdu2lNpJysa1pHLO02WqstgyamSPXp3McUvZ2iAukpl37D7J8xXX9ObEoHE6BqctgfhJilK5+D9CeM37NMY2xHIv1AvIz7eJgssb4j1tw46j2zytfPPuHjkbhVD9MAgReDPJi6nDlnYLy4TMisNA6AMWQvZ+QgSa8Vcs6rSg1wYsymZ3Jb+Sp0gRTQJ4w+LqN9lQSEZaZAfaN/UY0vagzo/nN9u8qsucFikMgtnrOn0chKR4cdJM5abvOonr7yFX9n2LVA+tLio3/LOOx+lbSMHV6s55bwhoqRLznUUg82dibsXpDMLfa9Z/VNObrrZDhQdrKtRBhhpSWhAiW+wgqMwVxIfoG663sQVvSSn7InNOHftnlVRJNL3PtprkW/ShZqbUoKbMa2CwBC6eYqRQ5GW/XRcObjsjdZ5iC+0/MsNFpt+WhMSWBxEiX+2WDT0VKjxoO4UxDct5AfSeG6orDnF5nYNe5AmUVRtwRzCSqriHvZI+6zcni/Zi9e4iZatOYfyn0dWqCNgh/tp1h1ijz4fjWm5JD0r2iDnLgsdK1vHpeCi8Vek/TmPythReG4WqRW3Hj0WxgJIBsDppKaoGu6DkbCLa20FyVOxMfxPi+X+bYZoHAuwWDw123uRUGPqUw2NsCDDuVLfnAyuaO/angWaDh+r+Boi1QdjLgELbognD8lGncTpHASDOQL0RrGx7E3zuXU05pvtTv/pJXtxz/S5StHSs8DCw=","layer_level":1},{"id":"8d18de48-44df-4825-825a-d6d8797a330b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"卡密数据模型","description":"card-data-model","prompt":"创建kami_backend卡密数据模型的全面文档。详细说明v_1_card_apple_recharge_info等卡密相关实体的所有字段定义、数据类型和业务含义,包括卡号、密码、面值、状态等关键属性。解释主键id、唯一索引card_no的定义,以及与订单、账户等实体的外键关系。阐述卡密数据的验证规则和业务规则,如卡密格式校验、状态流转规则等。提供卡密数据表的模式图和示例数据。记录卡密数据的访问模式、缓存策略和性能考虑因素(如高频查询优化)。说明卡密数据生命周期、从生成到核销的完整流程、保留策略和归档规则。详细描述GoFrame ORM框架如何将卡密数据模型映射到Go结构体,以及DAO层如何实现卡密数据的批量操作和状态更新。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":2,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_card_apple_recharge_info.go,internal/model/do/v_1_card_apple_recharge_info.go,internal/dao/v_1_card_apple_recharge_info.go,internal/model/card_apple_order.go,internal/model/entity/v_1_card_redeem_order_info.go,internal/model/entity/v_1_card_redeem_account_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:31:25+08:00","raw_data":"WikiEncrypted:UimKryUcsn+gf9HzsspIt0TIkSnTFPxTB2lIcaUYUvTTahsE+f36dmyiYIpjkYfey8DDMQ+BmZ0SzhbP+eCmQhymH25gVp+YgCt1JureApmE5TkiTk2RbLINgqw81oYuaqjVHxuOFT/LJWr7ImO//6hBzRf6kT5rwrtfnbMhZpcgnzdnhvYrshMgYQLG7GmInjya61EcyoSK2g8xCVgq/es4rCHLSk26D0FRMNCM/aTu6Q3HkZhiSsFiNSpsDO93NxTXrDwiqxYZzO8fmCK2WscZ5yz+LCT63AalI2AORs17e5T1px/vEgCNthvL2qcPurZA6nR//CvFRQKkqrDs6Ny8uhNezNQ2muQ366rNdjUkb6Mck+pqB1BihHrYaLbdiNCSdtvmlkQ4o7Jc2YtEQeQp2SB0JqCpI0BapgVIrbHa/ap3At+XPgvjOrM0DkjaBYY1BbaZm/Yo2xaVSipEvZwsJ6Nu1gLeZ/94zGFYd9myhj7tfTOhyDumOITEIVuhb4x4EgjjZNwjrodAm+zNVjYMeJsZl3yDiAwhcqIaqSg0bOBUAb8EZsvjpy0LlWs3lLma6BG7nJl9Ua9mLk89NF4sMmVMwbH2tMv0d2vIYNMdFjiFO1lsXgCM+tDKPwKi27KIN51Yogw1HV+R2LF4uKhdROhEtgQuo0nk7oRAFQ/ebNcn9qFxFbKcmWvj5mPu1yScF0VycTjOs96BwIX5Fb5uEkg9bINW5wxy+Z4yti7erx7Z+GKy5BsrohlZVVudfWC+/EMAGFvoup0d4tXEIA+NliyxBBXa3wLVPX03VyF6ocX3U2xm6R61Jp1oRHUL1QxDFlFyCfDIGr6dQAynjLEmAQfOMqjMj5FZFK99lem8ReSO00U+Jo7neI4Ick0TPlzfxVyVe7Jf9C0GuMlv1tFTa1iygAfB7k0rMYMTqw9ocWd8ZHy1j4CS5wnCJeBfLF4ikXQUG7NY+PbAa/iljAsABhdK9C0DOu7VLa7TC0oAFQBVATzj+4t6DePtbstSXbWzULRqoNA7xplI8vGKRlpySO90g6eEOhvCL03mZCkgEtljL8+NaqrC1zHqsX5RGUr7ecb6V6aTT5wMW5IwgyFlVRgQA66J3hyiayQIUE4Swenep9r7rTady0HC8KKCT8wqYfp3L8WW0Uy8adLSVwKmcQTN98eGDNFyOdDhlPTMslwOldgJwy5XUPKPfzQQaf78PG4780necxhMz/RGNnE2VPyEFdT7FSZOesi+6wjJ0MufPgY2OAVOsadys1egKHEh7N10G37T+ZlBGQSZGclJpwfJjUeTLDwYUrNTPMUKeWYwKF/smI+L4/qIVAUoxOAicOh9NZ04H8RC6zUqnnZQF5sG+LPyx6JwBcpmp0wSmt9umA/Jo3bHMUQkFkjvcIOD2qAkf5+xSUY7rsIY2K4qDZyGPKd0iDHaUGN2XEOkz+gfUmIccB5pQ8y7GEPEoTxl123ZIYHUCPTNnv9IZJ06iJ0UTnw9eWBcuhSS0QPiR5XNrDWa8R7YdXOwSQ2put9iSem2kYb/LJhH1WmdyTUgwzr3A59bH3Yd9j8l3EbofRK/20pz3s8ULT3GxL/JdC0+xhY61uZLj0oas8y1IPHuCbJV6Prqz5MZuDXVYwcD18Duh1HM4sc33SddGmKVEGehJrh+T8l6XuRocVYVr9blG/xIvssdZrx2z0SBclryXwYwIK6NR4X6TAuXiKsldFwNTx91+s7yPlV17QOkWkBkmOrXrORn8puHWpLHabtqPY9IeRaxx05d6b2H6L9WbszqYQqWkFe/6FTXqIJ1o2BNzeNvrmGQA8hej3Nc5OcqsJWsSw+Pj2LOBNsd/1zxr/AipDuF14x05COYbFhqrlO4gth0CYzK+eU4Q/18Lnk=","layer_level":1},{"id":"079920b2-aa64-48aa-a92d-8decf24623b1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单管理API","description":"api-order","prompt":"创建订单管理API的详细文档,涵盖订单创建、查询、历史记录和汇总统计等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单表单管理、订单日志、订单汇总等接口,提供实际使用示例、错误处理策略和安全考虑。解释订单状态机的实现细节,包括订单生命周期、状态转换规则和异常处理流程。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":2,"progress_status":"completed","dependent_files":"api/order/,internal/controller/order/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-11T17:27:33+08:00","raw_data":"WikiEncrypted:C1x/54IbJKQH/5Vl+vgwI0JvoWx6zPUhTb4HRqSX2wblxy5DfJxLRPGgKRoPkdsCB6p2I5EUE7AQk+39L8I0VQviyQZaImfNEZOtggFwNploSYaTE7l4RjjXzGKiRU8Gj1Mq1SO9gaAVmB4P81rh5y5BtUVjn4cO7JrpGMdRZa8HyHzfD6e8LAA7s81daxDM8gFr/3d4RXXGj+Iiu7EZEJ+rYllow/hMLyPoAwsdrEhhOfP7khzPU1XtnlyynSx/ZQFaYJL+7OCAyGbz+VVHJIh8O2rEcBBJouwdhAb4O5VROn1tu6fgGN7gSqMA4AJ2g6yoqRraOTtGBR19Vmj4uqPhkmqlOy7GriXeI+V30vEPN7H65tR6D2MK6kdTLXiQHx+yLB5YmRpdyKNvSbBoZ0QlfS8KNfwA4xRuEUQ+QmM5aNlReXy1gl3jcyzEQe5/nVZoBuVKrf0Tuno5tcJE4PzNO7EaESiIAd+xHFBi9l/v3zYIoJuzwSaslB3h2BbTY6pLKN4AqTRKAq7HcMHvvdqhBOivNvSdoQnVmvoaRB8Ocv6zt3kjOws92P3iut51az5bZkHZ+pz2Ppr5whoAMP4w4hou1XeipwKey/AxMqw8iZc8ZTCsDFwfkiDobOn6n5BnncbIVfVmgb7Rii9oucNmFYag1K2veaUCqIM5MkPKOQkx3QpKBh/BIaRedPnJMMBcAhmekD4BNjHHLA+0RNpn1j1MGHmRjs9rageXcMrqcMLlY7+inQw1pZO4AC/QVnnxMEXpkwObn3fBPJtE6oNhFJP6MEJGW9BF1mdPmYxl+bqdVsBSuNjadkPokD4Zc8c/HH+cAPqLGdy8Sd2o3+Zz1Sqgc6CVEbE8izb4VlT5yrpnfLEmLTDtMdMdW9YTXAk4rBTdK+/OaNCwlbHqW8ug9CdXbBbJWnDjNRFPFvpk8+P3PbddLua7aWmwSy8vAmyL1C+Xe4NTR9Dk5iDEFEb7LF+TcjuhjT7kalnpzzzmKffJeNbX/H1Bn658W9P8wMDyKzxbFW0TLsP99Bd/vdfOxj3Q2gXLRQo3uTwzZlzrVAC5xicKaq17c1hhvt+KwIMQuY5RQnqaJmDoliEXtS/RcZdZTmIY36OuL7pjBpc=","layer_level":1},{"id":"8b232595-64ae-41b7-95c2-1ae6428857e3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据安全","description":"data_security","prompt":"创建kami_backend数据安全机制的详细文档。深入解释数据加密和哈希处理的实现,包括AES ECB模式加密和MD5哈希算法的应用场景。描述敏感数据(如用户密码)的存储策略和保护机制。分析加密模块的API接口、使用方法和安全限制。说明数据完整性验证的实现方式和防篡改措施。提供加密配置的最佳实践,包括密钥管理、算法选择和性能考量。为开发者提供数据安全编码指南和潜在风险的防范措施。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":2,"progress_status":"completed","dependent_files":"utility/verify/aes_ecb.go,utility/verify/md5.go,internal/model/do/v_1_sys_user.go,internal/dao/v_1_sys_user.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-11T17:28:55+08:00","raw_data":"WikiEncrypted:Zb5TNaG1u/mRrgPr+sDyCughdwXy7VcKngnPrhXBk9mq+8vTqaApkxGNWz8AzfwPDXM3ewLU9f0u8hwciM00IIlZnIcBll6gl8LBLw7BrvO7VDkNrXtSqyXynWajifUYWfxTGnS36tIu4vil/lsQgR4NTt2CZbcOOlZNzJklHW9HzG00HlUwW61cPpRnyoG5q46hWubwOdhCsZT11eNLdbtwMzACYDb6Oym3NHyJxO5ic/6p2oxj45ZAFe0BORfKTTnDtzmLSLVFZ3m+sva00QGegW0HNuZAOb2NaNAq4RHjQczuV39bZ/WP71GHIiBwRt4t05OOjMfAmYX5/Lq55FG8nurl+AponX+vuO/tRQHuiftCVW1pslI7cRIAGaFhm4lzAdyBPQKmgPXsUQ1lZXO6cc4Dvfgmkmm0Yfw8t3Bm+7KVug6gjArizaio4ZU5Wp8UWc+Kl1IfExy3QIjPxr24KezusWbuRxdbSnfigcdz1mksH46rUG/vm2/+9/ho3f+JjrvFocW3CMcH3HUyGfRpdvQWJdnoXWWiqzIyis8pK28c8JR6hhZni+kh8KWr2xomIRXsfNWjSHku+FcT7LOZtr9uv984hom8xnOlkOKBgaifiHwYiW4PeCRv1/UTNggx0lDH/I2uBABfYGhY9M02KDvJQ5vTKUuSs9U2R0tcp59s5BLL2PwVYbub5sYAZyBMjHcXTdbgrA5Al9qKpz8KIBmaFRTdWAUZq0La3fXsrwgVfcdZG9VFaiBF7CNGigiuT5nFFr7b3KDEr/PecHM7bN3QZpZz4WaHeuz5kddJNmvn7TrAZgP16Qgz9Wls50CTic3p5I5NFHIfLMGuxnyCQNh7/CXGujC/fNWvo6+CB8MUn5UXbd0KGMPLOF5Jfs+D5E+PNQO6LhHqtBNdQSX9Cw4HowKiws4vxN4fMwE5E8Ii1qZH/Vn58z7OKshSbnSMGhmbbX1NTUnnS234uZqi8rZ1kzzoSf4XSRSsxQpwhNN3suvIP6TzSS7fzkBUZKJktVDjqqu5kMBo8LOcNp0ecHrco7IlRgj4cz+tlbBp24/gP0NBl/cqVY1oIAw9LtlWOpi1P59XVnrCZjJAqetTfEKw303o+T/ceC3YniYtqloJFHJOswLmwkemAdMk","layer_level":1},{"id":"f5f182bf-a48c-41f1-86f7-12c882b3775a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限系统集成","description":"permission-integration","prompt":"创建kami_backend权限系统集成的详细文档。重点说明基于Casbin的RBAC(基于角色的访问控制)模型的实现和配置。详细解释rbac_model.conf文件的结构和语法规则,包括[request_definition]、[policy_definition]、[role_definition]、[policy_effect]和[matchers]各部分的作用。提供实际示例,展示如何定义用户、角色、权限规则和资源访问策略。文档应包含权限验证的实现机制,如何在API请求中进行权限检查,以及动态更新权限策略的方法。解释权限系统的技术决策,如为何选择Casbin而非其他权限框架、性能优化策略和安全性考虑。提供权限配置常见问题的故障排除指南,如权限不生效、角色继承错误、策略冲突等问题的解决方案。","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":2,"progress_status":"completed","dependent_files":"resource/casbin/rbac_model.conf,internal/controller/sys_auth_rule.go,internal/logic/sys_casbin/sysCasbin.go,internal/model/sys_auth_rule.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:32:32+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoOi+YxZ4wb4fbUs7AyKQkZTfv8mRogDaYSFnyXY1kIyaElUfcfdUV9J0wBG/P2Ehs2OyadwRiht4khd2EsVa63C+MnyAVI7YW8jvLO3v3yE+fhVnyBpR/iyNON5eMBSephXFulXENFk0jgIADmhaOBPZXWUgx1LwKHP+payrBVQL/u4CBFeLuzPWSLwZ99ChGf1b26H4avhLUUrXklEWuQ/I2MlcxALqQ91VYa6i9PgzA5A3yllSOB33AlMEKosbjHeb8t+mG88biL6xtusYRFz8mc5QUUUEVyhQxwXC6Ov+EWJPswoPe/iMp7ktb35Ao8TLjxFECClVRorfUdJKEjsSdmeM5Xz67w75bH3C3vjmEZMjy5yw0iFMm0IuU3CTKUBFsK8BM2CpFSHlP1w3EeJUQghY0ta0cfQNKZmcmR2Uj8+P0TAsPwPs7IXfQOMOXsyc0wtZCTxafeOzFt1DPAud7N2bMpcOMhuG470bKCRlPP9YeA/FYdynNY3VZTp57hwKVE8PIrL0W0x/uSrF3o2FHDAyygDIVoupDbwpwZlFV+niyGek3RIsP9zJ1wDhxjS1fmBugWR5hCi43OrrSzhaTBHOadF/oIcf9W6aqfEx0obSFNLQ06bc5FGQO7F218i211bWCsi+WAl8wSxxc63RT3NmBTYT/DFpBVuhkHKB3OTf/bxn65be8H+uLtdOXZNMg1nsFVhwqBH/g6vYy/gCOx7D2bDciAe+xDImRkryiSWKnnMzKOsTNUL04LYwrYXSxSwVUeZdI9dHH9wNFZD7o/Is1PovEvaqpGaI0xfloNr7lhJePlu9msKkv6KJiw0tWIOWg/2LojMv2lXx6wWsDH+0bLFmHV23uw8OxnawdO1lPX6vsM5FIbqUd8tjtowZOjYi37Ol14RMicd1oxm8I0CNAae0Ipg7vtEK4D+hvMoVIVG5oTjS6GCxBomrPUa8YhNrc2FqFd/65QbxOKgYMEtpawK/rrJSRL9adxUHecNKWUKeiAELdITDeCvgZqfybBlLmdkv/m3hOEn/FLhJiZfABYaGKBYk2QdoGyPuN2WvUyv0NA7eYCjrjbw8RCdRyohv7lltFfQFe6SZFgiKLRAMD1i7RAsxQXqLpfrHjB3O3kbOEkS8O4y9ZqmUoDv7CRCiYwhZ70PdX0vUJDpmEpB4aQpevmh5qdm1Gqb2ybxvpCPuepoQnEilBjtLk3TV39FTFXVDsWx74f4SKvJ5nT0AxuOgyoS25l5HYPK27KyUrIv+xPp8ok7VwIcfmcNOPhrIJ1G28YycZgC4ybvDYW+Biw5qw20wRekJt/7fB0k+ic1k0kyaoAXk/nEUkcSoPCwzTh74LG63uAOEH3oe5n6wl7gSJznpIA6R/wmJJQAYxfrD/nCG3vEuHWvkspZzZdd6fTjp74FMStyZWdn5LrgN+UrrgaGiP4QTJjRwXfITXpEofiNhJBEHOcLoF1GfWSz6Ri4azdyiw8pZRhddUfTXWIctgjHwWiOEUdEDkWUBMOv9a/fBAWjO81e+51yRKQ1w5mpiZmsRVgZz2J2O9V22PtYzw8uughfSOTzm","layer_level":1},{"id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"自动化部署","description":"automation","prompt":"创建kami_backend自动化部署的详细文档。全面解析Makefile中的各个目标(target),包括build、run、deploy等命令的实现逻辑和使用方法。分析install-one.sh和install-simple.sh等自动化安装脚本的工作流程和参数配置。解释wait-for-it.sh脚本在服务依赖等待中的作用机制。提供基于这些自动化工具的CI/CD集成方案。包含自定义自动化脚本的开发指南和最佳实践。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":2,"progress_status":"completed","dependent_files":"Makefile,manifest/docker/install-one.sh,manifest/docker/install-simple.sh,manifest/docker/wait-for-it.sh","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:32:49+08:00","raw_data":"WikiEncrypted:ZCORAne7l5wn5JMRd1ey/o7bkWmPStXjff5imJQAXqphxnBeBXJmPZwisJmizM8eIz7HNdoMBW49/rBkf4pKo2wfKYjANvYUoy1RHJoMcvkl+T7a9UY2qj91JzD+P6W/sfk59RExJfaIeqfZgZ+rQMaLxSQtUuIhyt4mzgGsQPVmLF4IdAyCS/kkIRC78yEzoqoLgwDjrOVxaFsGFSf7guGOTNbeW5qj3HRXzfsOrMBXdHOWUcUTrzZIRl++C3/w0f90Zohr5H3LUM3FkB6I1o36YQji3P6+2m0Y5QYDHgr03cgDVX80/bDeIc+fOZbtm7bWqYWwx5pWiteMMRJS3nQ76LLrfGALYkb1EN1a4sdf6CUQm2zUztLdc85KE6aIdVaq8EbJKv/QBpMkoYe1JR4uu1eA64eotBXkHU4VYwx0SXapkbV8jtT3HkMgMIBXEAT6arg1WSQtm5yHtud9Cs6JE92XEUSUsoLc008qqHqjMXXiClyFKZ5osDVgZw1/8+yK/1z2t7P+lDkkFV3hBFiUhEKvArFdRSqb7/w9pEM6ukPkJZrHTibtKpPd+CSJTzMX00Eh6xjcx4IW0zwNi1M+k09Q2cuwejMkxbMgrBhBMYxxRpSIipS/RfkMVO+6EmpZiYf2i0nDGahSxa+Defz2Xne9m8Ir2tHn5IFauNwMbCjxCoC8PF2pA8yaT74wSHjUpnWPmfm8rxH26mqJoPJyabanEvaSTF6cvil/bczeSjH1c5Jf8K2sPWSbFzE0vwdsPB16RmufM24QhLouxabstQEFXIue4VE4KLXD6V5+ygIL+g06agNyVu9KE/gBs1ynlyxZjKdS0rnNNSF00GwDi8BJjAnNabziMhbftQLSGwEgxkeXLJm/JkjLhVtfSKMaCgryekc9mhDaBaiqRRGgWlsbBmBTldJc3zN0eIzM8jVM4aXYpod/X2oguQnp8nynv37iVKuNG7KgEPWDSAM9Dy3Z9bEHFf0BPHdIbCGl7H6D/i76r097eaXCZFmJah1GoZ/NTkW+WZqQlV5PX1Ot7FhP7m0ag5WO5+SqeHc=","layer_level":1},{"id":"8137c301-f13b-4054-992f-c556767d7c45","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密管理逻辑","description":"tmall-card-logic","prompt":"创建天猫卡密管理业务逻辑的详细文档。深入阐述天猫卡密账户的创建、更新、删除和状态管理流程,包括账户授权、工作空间管理、店铺订单管理。详细说明天猫卡密订单逻辑,涵盖订单提交、AGISO回调处理、订单状态同步、日常汇总等核心功能。解释天猫卡密账户与订单系统、支付系统的集成模式。提供具体的代码示例,展示关键业务方法如账户授权、订单处理的实现细节。记录天猫卡密管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_account/,internal/logic/card_t_mall_order/,internal/service/card_t_mall_account.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/","gmt_create":"2025-10-08T18:18:47+08:00","gmt_modified":"2025-10-08T18:49:06+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRYQ6tdackApaOqk+2UiPey5Uympesdb3pMU/7s+Qp6tO6oPzMXaUwJg4minT6Xnk6sePRl2JWkJUs+0eVIxY0BG9pcqjbf7cWuLX8od0+v34lp0Zxn9XDzSh8RTI15SkYOSghIua2OYZxaRm/Mu4hX5l6kQTTVTfSSKyPKClM4KvavuPVwUtPmj3jmzkp6+OxGfvyOHHxi45tlQ7sJSA+9hPXVBJv0Bs5vgyXxnNgX79q6xkLTpWKwHh3G9HbmAbT+aM/YMoDKTlpBQatIoveO7Fj4b5lrfF4mq//5hqz7inZBGo9qXDxTG+bHBvV8Gy2QtMZlsNHM+P93RPmaRnLfbs1sgKR/Owrqd3c5hAfU3Gdn/V6HhVnIBe+PUsSaBZO3dOQyqHd0vGnaweozy2yNfkf+KTky4lg0pCrlrz2Dxn+qqOiiLRPGGSHcfUtctCi1L3cd9njdgA45LEi25H+KhWw9n8da4OvHAQxlH5HQKjIUnRZshILDmupCmj4ugHgAqew99Lswzv5acdEtL73iUh7AUvGNXLMbpj5SCo8meYSA9PblqFZ6h1nexkoA4LLO5BlZpHP8aKjFkIa50INM7W7ULapiqxAsnV/qkR29Z5Nuc/zpa5WAaDESeKwbZzWoPc3wJ5wPlFwvjfSehVeLAMwxVGy9W6uMXoL73LOUb3kYjjrycjhDxwDA70gdBAZ3qJvU955H6z9f0/QWRrs7ihikQdHyQNj6ForyX7LpUYS7yieOoPNSNtECIWQZFyeLEQ6ZgP05r1cO9gPDVxR+LyuNGoCdtBTlo/MQScFbyuCjrRoDENX2MXyU5vC/+VhOM1PE5EJMjt75Sd4AEqDgM9w092/WXwdzvR01LAHBXQvPqQrK/E2cj6fXzxOATYgKkQvtYGT4WXSVPfGE37oaMmCQpARSRiPViVe308ZV9avQPCm4WX+RmrXITc9ABnvpRAXtlCyHKEvVENtFfEdJl7we04YVsFP2xnZPc0ewH5p5qkB0247fnAXiYzp3Uakf5FfnJYrJ0192eDLmFxY7WxmYlw3s3X3ZcRFSN7NQOKLEf5cTZpBGiZ74vcH/IAJxjsbqiYQ/Bgrflft4ARYAFHJxbe1XOiGSbManH1eo3ti1puLFxSJ+JtNQEgyR+uwTdaEplerXLbkft/HM6BbUCi/D5PQjeuF8V+PjvoyM1WmRpHAPwArIQl7v0r4P+DI1ncJAo55u7CpPXQgG6AprMnaT8eF18vn9QqQpM4AeUEZAMA3iFMnvnehJD1EvkSdEGUTtiiRIzyM43FK65ZZ2R6Q2hDVoi9Awv79id1D9RtBYT/gthzgG8N89GhEVJif8iojiJclglG7j7zh3AxyOr+uBr+itr5ferH2t9LJgzDq8XfBkqScWuzotO2AfXPAA6aXLT1n2qvWNrgQEAbTokiHNZ3FV2UiG0aclDHvK3RA3uTnWnM+Cn/z6kngnpasYO/Be3ah+v1QIV/ucnyEuzCe/1jnHjL9+fOFe59HMdN","layer_level":2},{"id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID限制机制","description":"device-id-restriction","prompt":"创建kami_backend设备ID限制机制的详细文档。深入阐述基于设备标识的访问控制实现原理,包括设备ID记录的采集、存储和匹配机制。详细说明设备限制规则的配置方法、查询接口和生效流程。解释设备ID的生成策略、隐私保护措施以及如何防止设备伪装。提供设备ID限制的最佳实践和典型应用场景,如防止多开、设备级访问控制等。包含设备ID限制与用户认证系统的集成方式。","parent_id":"93bada60-b20a-4977-b82c-eca224ca34f6","order":2,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/controller/restriction/restriction_v1_user_info_collection.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:52+08:00","gmt_modified":"2025-10-08T18:48:47+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvN6YBAqoBx6vmhNXnYNUbJ7vAEccQfsRXUvrcsUd5Ica1hLwUQWXp/Pckc1X4JzDNoA66D2onB6YIWzByv/B4nSRfbjaSB7sM5WkmHD/fJHdteFTnfZ1b2QAGESqdRvnKyy28PscM42NmgyL9aY8cmYTSe4nohnfq0HoW7tpvppy3BF4ebSEgq5qwXh3mJGqFINPrVHftbrjrPgAd0+c2XTCEyqkld8j5v+0XPQ0dOQ4Mb7yJQvZEAY52bW8BuCR/kWAdOxtP1hJrMmyy2WU97hyLm3Irg5YI85Qy/lDkTxotVPWosAoA9yaV8tIyv8EaMg335NRDnF2rtrX5P446NAbwzZCcmjCJ/t1UYVtCQDt+CrDK105I29wT9bhylEcqnM0u+H+STpsOG6tTb09D+JiGAlDrhGWXzJiPr5ZE8qt0i5NiuCynzQW5r9lC2BGBCQ8mwKUsVXSA4k5B0fVgJtsxAJJ3ocg30aelFEq1ZlXlC7E5tufuh0PNI0CfXakfDay8V6UAGZwZGyKo8Bz8p+zP0qoUCIr120fndCuiZpmbCJagp1x1Pv02SPxoPv8XC3F36isbCU03ygDPhF52wuPtfA8n9l7jvTOpLF2giltwoZLWYD1MPEKjXIZpaAXtrDMxLCr20ycqoM9jG5agOvfVU5lgaPDXpm7p3+xt4XfPj48zWHh2pn4IyeYeYN5HcDzyjOBhf7mJDG+Mn4fh5w2r8fwvtZfEzKA2PXfAIRFmD1e38y1ArMbS5+bmG0cuh5xaFsogjA6T8HLopwiAqfDct8ZyBw/lOUacbWqasTEWh4ACx85OfTJD1hBDJkfN/14QrqHojfgE1azQMRgUnNX3DM8ww2IMfRybwOrwq6+y4wvgQNmKwq8aSsNHiUePPtyTSS/jArDa4aGK+AiOpNYmGSHmH4C+95/Tn4Rrwjl6xt7o69UNsNEUlQBD6ESNR5ckzlMhfbKzf+GNWd8R6PmCfy5btoM93AAP/c+l1QJR3Lda5DNt8PqRC8Z//dIYxhdR7BxxXnXVWnKPJ4nqJoOn1D5j0O6c2PBae44z3wu1c3UhOTGiAatqctKYk1ivn5TU0tOWY6i4YIbCN9xe/klx+RTqPdqjCS2ZFepErm5ECBfxEP4jMo2I+5veVsOVQCJzd7OkOehSPJ7clSquxotKDzc+PDyIqnIM02mLj9J93ZjgPjzTffw6zaHsCSVbVEaqB30+YiJ9Huj23cERqg=","layer_level":2},{"id":"15255e1e-df14-473a-8e50-b20da5e10eec","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫订单处理","description":"tmall-order-processing","prompt":"创建天猫卡密订单处理的详细文档。深入解析天猫游戏卡密订单的创建、店铺订单处理、工作区管理、回调处理和状态变更流程。详细说明订单与天猫店铺的关联机制、订单同步逻辑以及Agiso回调处理。阐述订单状态机的转换规则和订单处理中的事务管理策略。解释订单工作区的概念和使用场景。提供订单处理性能优化建议和常见问题解决方案,包括订单同步延迟、回调验证失败等场景。","parent_id":"5ffd09f4-939b-4b8b-a254-494937471526","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/callback.go,internal/logic/card_t_mall_order/order.go,internal/logic/card_t_mall_order/shop.go,internal/logic/card_t_mall_order/workspace.go,internal/service/card_t_mall_order.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_query_order.go","gmt_create":"2025-10-08T18:18:55+08:00","gmt_modified":"2025-10-08T18:49:02+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwRa3WSApkXAR5Fc40tYehasW3oRRWjQgzTzde7LY3UZtxxDt9YCxNFsXtULH5ojzuVd9vnuTQsUsGlwPeby53UoJRaMP+2TVlBnpawHqqLyQZmsIaCEBa0KDS6Vqvn+W5/fkhVXVX9ZWv35eZ2nDZVxRX9N06OvWXNmnlgFwDtZrtnykRQYxEsdH87S0WS6nkRGy88H5gvafKUFjtLpWMOF6taMNbNenHgJfYss3RB7DnTw5MIT6wHuS+ZaU4JjMkQrG+5wFdEAdZUD1PSue0jzfaEh15NxpLX1QVkytkWFWRjQT1rS2FovSJu01DE0SX11tKcURB5NvNm4ZGvmOg7fehl8mrIhDcaoIXabkCxF4QnAodr8aJRQgsU3+D0pGKgDs2bNBK0cfAIZkrodMbBqU6PFOGHE50ld4+ikmQr5KmGbQHsuKVUOtfUwt9mk8rJB7IhJyZYhAtWHZ8xk3SRyTzG1S1h8bNcK8J3Utm1HQthqzBOvkipvWIkP4YeVA708Di7n0XMyI7DG6OXY1KkL//Af6gFaLG4/m57mx9WpCFPnRMEKsYbLQ3VeI0H+Elm6Pc4XG58wC+p+Vl3AwSZNm9XmPvgXDd9/I6nt97XKMk4QrQrguiSDFxawF1kWGkf+9Fq110k31gZVuJuJH1LBg3qac1ymngVP1P3Jb92QJz2KbUMgJFFn4CetxV8jxUPO5HHW3G+VhTynwYKx4otPsZQMUlQ6ZengsKFQp0zjnBWF6/+P/WtjkyD655aF4YYaKYBKZQayVIzFTsElEckA9VMM4P0g1dJaMUNfTzM8uw9h+ovl7gYigVnxgmEsrppjOG0GOuWraQJ89qKWGj4jWP7th5aHRtjLYU/lwo2yeGpIlhtQLy4Az7RisMFacI08umgWXM/NSZYjkd9kbUtA43t/ZiUHSUgCIPQ7x2w5ECTQHShtOWKhjBtifMTmudS1EvQHRfw/dHf+892fVxOWAXMlZnneciAcEEEWVmHC/0j96byVrqztM/MjygFKB8+ziEAMTgCGG7GH3GyoLYY0qeB0Q61VzaRPJbzbFPP0wemK3vPaiISKryQx6THbGQ+mFRq/yuUZ6ikHx80C5rj75zXIUOVDjzljDedQmmMucRlgPFyFIfyqFfLk2eD+Leo4z0T7bwSAWOE6jMe5XxvbFFpjQL1MXj4G2nA8WOBMNsjkXE6ExDG62CSDBmNTkPlLSUKYhIbDAl5+Kp42/e5auXARWcD1XZELs43fbGxn2FREszMT9n+Cx9UxEAiP5FdJ+P2Amoaa055YfhtdY7oTThxWYbqE4e1zwx/WQeSXEiNyUS+giHH4RCxyNGDb8BMRvEmjCTBJCBYsZ17AcitHKWsDmiB2ryVyOXYQBw0zda8RiMtG1c9VPyOHjJWS4CPUSSoETLnSzrMmeeB4o0q00xAxuwr2NtlrjOuoYTYhTvLTHdXahJS1yWobZNrOzFC+PoibaT0m55GndT/ry9xDczzuws8NwZZywyAGrouKanzoFiGbLPdBXSt8KGcS+/X10E+U981sSx867gYDQ+foo=","layer_level":2},{"id":"ed66dce5-4de8-4993-bc89-a466abb74f43","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"租户管理API","description":"api-auth-tenant","prompt":"创建租户管理API的详细文档,涵盖租户的增删改查操作。详细说明创建租户、更新租户、删除租户和获取租户列表等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括租户配置、租户状态管理和租户权限设置。解释租户隔离机制在多租户架构中的实现方式,以及如何通过租户管理实现不同客户或组织的资源隔离。文档应包含错误处理策略、安全考虑和性能优化建议,确保与代码库中的实际实现完全一致。","parent_id":"681cb8e8-add7-42cb-8297-72df3436bc74","order":2,"progress_status":"completed","dependent_files":"api/authority/v1/tenant.go,internal/controller/authority/authority_v1_tenant_create.go,internal/controller/authority/authority_v1_tenant_update.go,internal/controller/authority/authority_v1_tenant_delete.go,internal/controller/authority/authority_v1_tenant_list.go","gmt_create":"2025-10-08T18:19:07+08:00","gmt_modified":"2025-10-08T18:49:45+08:00","raw_data":"WikiEncrypted:7ZB9yjzZwc/JkOb5fG5L68aHWPaH9F5LGpC42+E2cka9EswWMfNQznGCsOCwDohduHxVlwwNiPebu27Gv+tzlD2DJk2+e2CXbX4dfJxKGN6iUbX3rXiwgFJEI3tC+P9BDa6tkVW6SDvFBRodPlpM5SfO9sa2tIGmYdoiIQaCCSyrzuMZ3cVpNcUA30mpGuwh0hcBAyezdqNf+XF6K5W2OBNNssVE0ZWipueAut2AP3gQ5pargmXYfZIrw7bxHPayUU/63u9oOqj164zIv9snb3CtKhR+5XTNVjKB3XKD3sYGBWt0Fsf/RNB0iKQHCOuMcvKFNJ8GMg1QXel8Weay2egAt0rFmmvy3H5Xh4AwjRI8Qpbj/voCcmRv+oQiMvc7z9aUOWlU0TEQooi6X7kClFfXBaSD8/rzGXK7nDDrt244bvSAV2nA3DMYPTsSpFk3VFK4KmyQBwrsAkK0rv14GdrZf0wbcT/4gpqfXdUI/1p2BP+qG4Ozb981mOeaRNKSglZAqVqtHjrwvbUEgNRm2OkKKyjzzi1Zy3YacNPZp7w2FDDvGtnMzGaDCVep6iGIIzGbvuJl4hDkp26j2XQgzDbGnoywuxfaKD5CMEx2jRS94b5pT0RJXPBKbKcfRJR23SWk95iuXVyL0Aa0rTjWOA2pqtWbna/sep84jJcYr+0HUsLErLraLR6XakY07pPga+qdyVRckjsyT20Bp7lFmDQ9AF2ptKF3ZIj6powFEPpm2RDmh2PRoUtOG2katpZspF7kypixlrNTRVu+xUQ8KbaI094k0j9A47l2ejku9ih7Tr/F71Ro2HvQGYR3WWE+Q4jjoin2j02mkT4ekHmA8iQ4JTt4G2ovfm6FnJiVQ3xpdayjZm74nE/7Vp36luCg0ufDKLWrfzn16uX8iNbTDcUYbLSxKcPIYCZnq8/xV3msRVkPB8Wx98Ex/uOBqkcWSLYUGN8h2FFXzZrID0OpYrEXXw4s2ctIKTPG1W8O+t4k6WmZNz8/OoPRIRt08L3+XJICLTyu8/yYO37lMxNdK+TPNzHxfxk8D/8DBGaK6g4wKAVaujejzovOMx8N+pLQDh/i/AAgjuZUejUE923/FR6sQAHBxnXdRhE/ckdUPbFc5zFKSy3Wuf2nepPcCkDNYrW7pH8x/wKhaN1hbOI6j4A8tA3ByFN0/KCrCmSkcb0QRqouTNt9VYuEGpia3uAx9l7cZEZKo4nCUTVidhSE8o01GX63uFoWubwxz8vrIeDSDuif29gImVfOxDXRaMCmeUP7Ex2ZjvU/LX+ocYkP88H39YM5YlXhIeroyuo/HE5XUT9DpKEMeRXK7l6dTiYeA+9oQ/KDnGslDc3C0f+ujJFOmr5HCWofJ5haZzePeM6oBR9vh9LcSlHI1Zjl79pkvhYq1a4ZoPMuhxAg1Bvb857PlDJLE6F0D3lp9LdjIK4=","layer_level":2},{"id":"1b7f1c36-8377-4ab0-91c2-52017bc8c76d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"订单汇总统计","description":"api-order-summary","prompt":"创建订单汇总统计API的详细文档,涵盖订单汇总数据的查询功能。详细说明GET /api/v1/order/summary/get/list和GET /api/v1/order/summary/daily/get/list端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括订单汇总的数据结构、统计维度(如按日、按状态等)、查询条件和返回格式。提供实际使用示例,展示如何通过API获取订单的总体统计信息和每日统计趋势,用于业务分析和报表生成。解释汇总数据的计算逻辑、更新频率和数据一致性保证机制。提供性能优化建议,如合理使用缓存、避免高频查询等。同时说明该接口在监控系统健康状况和业务运营情况中的重要作用。","parent_id":"079920b2-aa64-48aa-a92d-8decf24623b1","order":2,"progress_status":"completed","dependent_files":"api/order/v1/order_summary.go,internal/controller/order/order_v1_order_summary_get_list.go,internal/controller/order/order_v1_order_summary_daily_get_list.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:51:11+08:00","raw_data":"WikiEncrypted:9qHpiFX/XrbQzm4K3sHnDG2/5vEWeLFokdGXmwHMfnNK62dfNT/UxNqYsUKg4IQXr9Ziy+qK6wcqxCPYSkXSBZ0Cu4Zbo3RmnZoSYolWzgof99Xi3JgdE7ix8h4MkQ781jRhI+eruRoMp257F/SEC7HsTSYYhA7lKgnr48YMoeXisC8c5v16L12us0oUm0RmANUS5LKkMUc1hWm3Ig3y/TJsLtY0m0Etg0vKodqG0jzEzt3hYCwo8lmabkQ1RXOehBSOV4bXZ87/bKnsvWzhq3Mce36iq8EhqPTdUOiDtQD6/UWYi57FkpDqNNtqGQg7iEKgetSw6T8tpKay7FpwMUKjEENFU1aC0aCoeeO+fhicusalJNWwkRCG05SqepMUai5Za+i/EY1pvEUsZ8sUGCazB+077/m4Cy2Suck7wnLWIt7HqcUtBisSZpHQCJa0K9esOcNPCBV7RYrZKFMlstxIgHaEekG9ZOw4q1GdblhjpAtfvknRGVYM4Sm9LoLGwkDpGliMpLHAzyTS/U04L3Rs9gyhHGMN2to30SPbcUYf20HcWE0U2f0yQb2hXCjZb4rTXrGGIzVDn2CLiJGkIV2LL9P7q3CFc34F7nqNpICm5qezQljeUT/ebs5hLcHYfudzI5gx4cf5QFGGj17ozZUxbuMBfPSQ8mnfWxO2BktJj4Z1kvMAeImmPMYb/1h4a27qGGH/UuhkQi/QmQFw99CUkPn0ogsRRx1do6KjhNOF0NGrQV9wo3yqrD/4C6UuHEYkGIjzBMnb/h9BhkeEiIAnbtlBubeBjuyH/BXIOGAhHWR1sAWbxOpctru5MhJ/MO5wBcRPWeAsIuidmRL6NjbHFVucDMxadZc/SoUurRVN2aopGy+F+xtws7AKxcHnuXDJVfVkTNyv00yg5UwELk23xwSe+RTmVSma/Do9ntHx8/r5f6bsrSleb8X6GF47ZdA/ChJjBqJZZFs50dq6kohWG2rqDhoaqILhIhPECc9PZaiUhvr50hwwi63uAWfNmFlZh56WjIZFNIFOLIsT2QSIfd3pnSN9al2Xomrpj7P/GiNdxFbsYMZnPNcRdMMRKNXNFLaBXLQM0RmJE3rRpd+lJr0YoCGuADbH2zGedbowpr9VZsHZ08SMLTXTg5FtkItK5Q5021PBS2uEnv+X3Q5M3SLKvNVJWrYVFB7y91p/v0mIdISQr9e3x8dCl31EFUIZ3MGH1v5WIqC5AZAYAgjaMFFEaPrRrCP7lXUADvh8T6x0VcTg6pHTbw9A1HkvanKGEQlqdkb+rpQctfnMhoNMANZLTnDAPzeqjC58w3H1itGrxqpCfeXGCPePp12vtYWbIt64YArky4APRKa5JOzlDqlofYj+wFOoq52kube7QqnpFuzLqmvS7t6LNbqhxss1+e2s/H0aHFtagsYbPDN+zqhTH+8SxRCBhGQbDEyOAx4lvRWlzdMkeTIK+SyoYxr2AfcTckRZP/Vy68YFo59hzeDRj5uqFzXUozrkn9brVnp+eMXH/sMmxEombcpY","layer_level":2},{"id":"c32a3e21-0961-4618-a256-ee1396eca8c2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密管理API","description":"api-card-info-tmall","prompt":"创建天猫卡密管理API的详细文档,涵盖账户授权、订单处理、店铺管理等接口。详细说明账户创建、OAuth授权、订单提交、店铺信息同步等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括天猫游戏账户授权、订单状态查询、店铺商品同步等场景。解释天猫卡密特有的Agiso回调机制和workspace管理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注天猫平台的OAuth2.0认证流程和API调用配额限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":2,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/account.go,api/card_info_t_mall_game/v1/order.go,api/card_info_t_mall_game/v1/shop.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_account_create.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_agiso_callback.go,internal/logic/card_t_mall_account/account.go,internal/logic/card_t_mall_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:50:18+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBhDOfi1XULNq8w0FtjpadAUvV+ceSF9+Fz49FHc4BI/wHY1vMagnUmaQBpv8QvE77IhbXlWaabmCE2ntgHj2iMG2xn6ujYVBOVW2WcwN+kfsWyXc7LZw0jyz4gDVPMYNps5QyZVLLCWx9ZXoE5MCdw3yTVPhueAv+StWiFapxus+h78kDi3FaIPsR9Nn6SFMJ5OKTJsTSn5+vf0kwylPNuc/+Kpj4+S4rjyiHkJ6/AkHMKS+z+fyQQ0fjp32p98HtaISDQovw4/NwSSOIBGOOKvGwuLE9TcqkFbnrUP69eyaOju/vnY6PHNO3ceg9Yyn/1HLZ1/I4WGAcmKA4DS4/iTGZc2gs56D3HGebg96AKT8PNFnLMQJiamx5915UQWdh60OOzrVDfJv+QYu1BILz+Owzs68mGQwCajmmc8pFuUoFCwb0/TK/J7fM+53LDucBYx/r89clLpo/qaQw8QMGYsmmnej1ejEOHaAjABPIVLNhdU1hO0oDm93rT9aY3aUpCcz/Vti4anzEkdGsMtsYwcF7r8v3ue4rIHzgny4bDynfCCeog5tMziIesbErutBiY1DfNxO+dE9FusuhVvbSPigcOPcYXpYzqZdhzaqTMExjvXifhIsnSFio/uCxYhMyhwhNVAjVfJqTuSHcsZq4SsMJdenQ9PfoP5Q1ynfDf8oPhJs9SgOqyUC27Cei/bxKvqdqXjyYb1sP2AvuVz2IRvgt52TP8qo3gB+lwZJ4XbIjNSZgTDKUwWcdMzpPHZky+2IIwX+UosDNia64SYUbXA9oYZRrf1o539Pce880X3uv0jL49t7e0QPbrp2LEo7TWXF+qqEQ2qBeZ6TohEr62fapuOoiPBs0bylJaNcp8mg2ueegHm0Y3I044rIew1itqX8NSaRaqlt5fhSrOuGCjX9+HoBCUnOlMuFudHJVF48VibHUycpS03gHGJ94xyqm77K+5+zKPCaVUIrmkx1uju5P/eZS+sO015HYD+2O6h/tF0aJywJ2j/26CQ77i6BZx0kc8j9kEG784h6ghQJNmuLVOBrVIzAgYDx+3IFcZzPayWAWK+y7Zc9MOxkAolM6D7trEmVVbWabNyWFLUUr2ck0tAT5OFGF7ufaJZ7Vhmi2HMvSSWYN7vUwiHODD08eaLEnixCTMpfvgNsloZMsHLRjrjO6dGzl0OAf/NZoT9B16KghJf3jgKSr51FSI1H7j+aw8+U6pdmxWadCTS51urAV7jMnWULfylBcom/XNu9Fpnm4hm/HlGrcIEuD7jN5U95w9n/QWwsE14ddxPlVjLBEa3o1o8Y7GyogxfuHQitt8CLvUNGciIsADU0B9z/WEfmMA32Nz/B2cq+w1uuI9JXRi5WFOEnVrQQGiji/rELtk5/XGvlMH6/QnjYshVbOcaHTIo/Vb/X8nYiQibC4lFYhVW3pa+jrtI72e7MvUCYZ8AbQ2dFGE0KkGOtDjvk8nwMu+OCcqZvBs8W7g4RQmBtHkFxwcUL6lEw0it0RE9V5kLxyIncbh07rZxArIKwsF9SdtPgSqWSd07iRXzJpSpbKWBM6KJ2A/YjmBpj/X+rPp6Y+Jfd85tLwAixDLf5JWHEks9n9zDTD/YEBKg3HUchj5rqyt8TgXus4BbxX7HzKyLhZGtisgeXWKxKTu9wkbWXhSvyP7lrdt2I77Y4JHiZaZaNS5KQdEt336RGvmtv4bLgdu99zuEdp4OERMA6J/2rl8ReXKrbV60uO355I7fadmUGx4XdJFRD8j8onK1P7DhkLE++PPiFP0j9AHSrftMC4T1Hw6rgr9DXJLkabPs=","layer_level":2},{"id":"c98a021c-f5a3-4847-b8a2-445d4b79ffe9","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"盗单处理管理","description":"api-merchant-steal","prompt":"创建盗单处理管理API的详细文档。详细说明盗单规则的管理接口,包括HTTP方法、URL路径、请求参数和响应格式。文档应涵盖盗单规则的创建(merchant_v1_steal_create)、查询列表(merchant_v1_steal_list)、更新(merchant_v1_steal_update)、删除(merchant_v1_steal_delete)、状态查询(merchant_v1_steal_status_get)、状态设置(merchant_v1_steal_status_set)、统计信息(merchant_v1_steal_stats)和记录查询(merchant_v1_steal_record_list)等端点。提供实际使用示例,展示如何通过API进行盗单规则配置和管理。解释盗单规则的数据结构和匹配逻辑,包括触发条件、处理策略等关键配置项。说明盗单处理与订单流程的集成方式和执行时机。包含权限控制机制,确保只有授权用户可以修改盗单规则。提供错误处理策略和监控建议,帮助用户有效管理盗单风险。","parent_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","order":2,"progress_status":"completed","dependent_files":"api/merchant/v1/steal.go,internal/controller/merchant/merchant_v1_steal_create.go,internal/controller/merchant/merchant_v1_steal_list.go,internal/controller/merchant/merchant_v1_steal_update.go,internal/controller/merchant/merchant_v1_steal_delete.go,internal/controller/merchant/merchant_v1_steal_status_get.go,internal/controller/merchant/merchant_v1_steal_status_set.go,internal/controller/merchant/merchant_v1_steal_stats.go,internal/controller/merchant/merchant_v1_steal_record_list.go","gmt_create":"2025-10-08T18:19:28+08:00","gmt_modified":"2025-10-08T18:50:34+08:00","raw_data":"WikiEncrypted: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","layer_level":2},{"id":"87378996-7b26-4ef7-81e5-3e2c73c13d78","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"用户信息收集API","description":"api-restriction-user-info","prompt":"创建用户信息收集API的详细文档,重点描述用户行为数据采集功能。详细说明restraint_v1_user_info_collection端点的技术实现,包括HTTP方法、请求参数结构、数据验证规则和响应模式。解释该接口如何收集用户设备信息、访问行为等数据用于风控决策,提供实际请求示例和测试用例参考。文档应涵盖数据隐私保护措施、信息加密传输、存储安全策略以及与风控规则引擎的集成方式。说明该功能在反欺诈和异常行为检测中的应用,并提供性能优化建议。","parent_id":"71487087-d57a-431c-af0f-f9ce8536c80b","order":2,"progress_status":"completed","dependent_files":"api/restriction/v1/collection.go,internal/controller/restriction/restriction_v1_user_info_collection.go,internal/controller/restriction/restriction_v1_user_info_collection_test.go","gmt_create":"2025-10-08T18:19:31+08:00","gmt_modified":"2025-10-08T18:51:10+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg9Hm0SYOCvN6Palim0MtUus3FRNUjP5X2DCKGq6+ITrvgt+4sqxszJWV8CNot6oQWekgcQS8eVsvLJhdJdSqYK1/4eLLujPOisKkWSSyE0MbrNLnRLCyhUOTiL8xLNUE+kiF3Wn/RyPl6myAP2CJGriWPhItOWgUSC38Gt4OwaYhJnX90WR1tujcn/wfm0biK6DZGNjYY62gbT8J/3/q0KB91C0sGiJcSPpO+s0i40b172wZpabVN6RrvRIdzLaZaA214I46pvfMwW+XyrBZFsBS7A9f+FT87iV026cSHEM/dv2hDmNwqB8x24otSAcPa9TNagF1DXZ8+1yrQ/9wEAU4B10UJtJvlfR2qttVWVI+sI8ofW2cud+igJZpDKZsngjgh0PudRtiMr18IvHigwdTKWumLLlvQJN2B1HS07YSGF28BeBw/J6P7PPhPebxYs+Nh953dxH3QFrV62BuIXEkHaRVqujfh54QZ+e3hl60SSHCNBuagg9V9Sg3fKXC/Gq/stqK7Ux4zMi7NrKQyDGjxacTeuU1XhFz126uL0OQgz9d8b11sZ9HtssERoHAMlccKzPTB63sv+aHrs3/0AOOE2tWwlNGf7PHdUzbM9tBv3Y7uGMVUMNhZVL/hqHNsqShbPGS2MpFTWlaXiAeUw+rUP3/OxhZOmXYnJNL0BWjZGqrpT4KHDQWdbCyA+P3P2F9j63WiE908Ut5YcozUHGpRejdfp3ynbgOw8n25xEOvteYn2m9r/q6fW3TqhvBzB/GsBIgHqR9w18yIVBxJS+3J2XCbVaQQgq3QerI9Eg4EcvkHhU9YwzRymfHWJZ6S8+mnkmv0/75ztt/+oi3P1XYhxJSn4OsQeAzbRUpclq5+VGNITuCW0QxUPOPVYveBzyuS3RhuBwIkJNRgijrUGv+e+hdmftbRl0r/3xfpzbUvyDitwfN5jobAs3znVH3GbOa3N8odfniMbqoy5Cz9V3kTXZtNJCnZdNrY9yWCGPctBl/RpwIA8mQMhf32EE5zi/7bQCF3gALwp+lSxNBsulPvREC3hm9Wxfm6gPygOmwK2JlX/WSbX4bbeN6tabdSKome/uXenGYsklPX/1Q56wW9cqV5IURChlK6JOSQ6yByrDCgbVt17oAEh85Ek88wpSlBqgO101409FnYgaooyKmO2kTogWu86DCBAjsiAlQtv/7QVPsgliddIiIsxxDUtgKRJ3lRpVIaCx6/tX5YXZtfAx7sVSCTvbfpbZjvhA0P4PlGuwjY1NlRrJlDZF9J7X8QhGULeMnEPHVsNXhWVYBBqDkcqxS+V/DxpNznCV2a5PWF/mi1HLmSC+zWJEjAw==","layer_level":2},{"id":"e0f89cbb-9392-48f7-987d-45771ccb89fc","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Ctrip平台集成","description":"ctrip-integration","prompt":"创建Ctrip平台集成的详细文档。重点说明kami_backend如何通过redeem/ctrip包集成Ctrip API,包括Ctrip账户管理、卡密兑换、订单回调等功能的实现机制。详细解释Ctrip客户端的认证方式、API调用模式、异步回调处理和错误处理策略。提供具体的代码示例,展示如何调用Ctrip的账户创建、卡密兑换、订单状态更新等核心功能。文档应包含Ctrip API的配置参数说明、请求/响应数据结构、回调接口设计、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何选择特定的加密方式、回调验证机制和数据一致性保障。提供常见集成问题的故障排除指南,如回调验证失败、账户状态同步延迟、兑换结果不明确等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":2,"progress_status":"completed","dependent_files":"utility/integration/redeem/ctrip/api.go,utility/integration/redeem/ctrip/service.go,utility/integration/redeem/ctrip/models.go,internal/logic/card_redeem_account/query.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_submit.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:51:44+08:00","raw_data":"WikiEncrypted:UPowAVLR47I9KpaM27BQNY25Tcm9u6r8CQlUx42Oyv9SIsPI+sjq9zcQuAYq4Aj7ZFcqK4G4tONeGwS9wfInT0HqqrC5TLc9yn2T648Jr2XMAcJAFSztYq2GfpdIKgaqAKZJd7Ibv5l0QHPYxLKWD6b/RiKQOPvl1NWejLjqk6eYCh2BIMNn1EAmLMQSRH5NK+lXqUuafTH4mz1+5o1R1cj2GrZrKn4m0UsHuEwOfAbwpMwegFDBf5NxtokIPoJEm04TDmVh81ZS1kv2O4EFdN2SWkS0vMGwv8qd41IRIbkXCagkrPCaVcyRdrDlt9RK44kx3quJbVEYFs7JkwG4ebNg5WVU8H+Uld7emgNxHnfP911t1cv+hdyj2+3LcQe6vENgxrjqjzDUfn5uVH7ewZWuYu689uCA16PorSm2rUgdK3K6dDCwz/gEgYO2P6EErI3QPU3YCbMvCsAb2M2l/mpnCsFXwYJlsdRqbZuOT3sH56M8+aCZ2bpij4hIvGfBpmhBGBwNnsfkDwdCg2g3Zw7HYj++Zoh0/H/0K2y5LSWkpx5quqS45yl+nItz3OOIxxtjHXEDjsYGce+XkStLOHO88p2BDo0BeW1FDEQdtH8pKsfG2lwVFfWlpHEz0uAs8xS4qh8+zKOBbaQvgdxrzoTlcOsSGGlOGZXH6wOkzGUNKBLgenHRrbUC+z00BvJztlFAQaS/qnWgoMudHgz41eHD+3UsuiEB6vvXv/OcBD063rR0DQFjWQwluwtgxDnhf12uEolZoCw5cICUELwvGdqGUc1H3DlRx6YfoBdWDOHCh8zmhb+o5jLh0iduFYGhPXGiu1axWTM6dUQ6KMCTwFw3ej9KyK6amObtogSWVceSBkUHgL8VfsxbbxO113RlhcNQ8yDpJ8dPIzHz1U7+iFGugpjAHnFonBMmvyIrEzHtAOR9DNJL9Cf9lMuZL/GjU6u+rq4bMfTSEyqvOPlKH62kJ7piM/Q7id3t5J531i1IyhM7SkAJ52vm0OyfEOt1DW7R5LmaQgH1k6PALdm0ol6Bk5rRhuEdkid3Q+luOpFlMLHz/dNphKl2HaUazUiVFo9e49hjQB9co77K2v/f+3VW7x8NPNIpMF/3mEVBBV8QtjBzKB3c/rKlhDinvChS++aIzG1n9xBmNpX+QJd2oVxqOCCFx/QmpfKhwtI266i6QO66OkJFRd9zDJuybzmAKsPptIXlKEjXxalWmIAxY8evvpHZ0EnReyuMzjxArkP7gKSWJgc66m9FU+DDR3EPP9R5xJU3ZjYn1kOXPJTgG9SGLaZ8Cp9xnMYmy85oyyi6puprdI7HkLc+/JZs1pyQU4g+0Ho5RWVkXcSS2rDcXGO7LIE0PFRTHxlO22ZyGbWYNGC8xqj1Wy86DnJqzStOLs5ESPa+2qp2VmQ7hCyUvU0vwvtvDCR8sMfftH3WiQB2HbemqRqOvEr6sSLfc+sgGEiu89eDpWBazdQznquG6ZiMAFEtUtilu5CxPwZS1RDkP97rX2DRxOtL+Cw8Lr6yZCSyfp8kZqBQ5KiCeIM4vW344ofIZC4r7T/qTvIsPcThZZuRY421zZ+KKVCP2Ttn/5v9cm2t6HwOTYYzxtq8KVoNaVbMrjkEwG7gED7pw7We/Hm/08jV6xadGySJA0K5XZ+zO7DD79pvYr4VjSRrX4JPsmElCY3/vFRnh99Si31w5MjXHXmN3XEin2Ig7x6Y","layer_level":2},{"id":"677ff050-ffe6-4e0c-93e6-5aa4da717ad6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密历史记录管理","description":"apple-history-management","prompt":"创建Apple卡密历史记录管理的详细文档。深入阐述Apple卡密账户历史记录和充值历史记录的管理机制,包括历史数据的存储、查询、导出等功能。详细说明历史记录的数据结构设计、索引优化策略和数据归档方案。解释历史记录与审计、对账系统的集成关系。提供具体的代码示例,展示关键业务方法如历史记录查询、数据导出的实现细节。记录历史记录管理中的性能优化策略和数据一致性保障机制。包括大数据量下的查询优化建议和常见问题解决方案。","parent_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_apple_account/history.go,internal/logic/card_apple_order/recharge_history.go,internal/controller/card_info_apple/card_info_apple_v1_card_history_info_list.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_history_list.go,internal/controller/card_info_apple/card_info_apple_v1_recharge_list_download.go","gmt_create":"2025-10-08T18:19:46+08:00","gmt_modified":"2025-10-08T19:02:08+08:00","raw_data":"WikiEncrypted:ngLqLViTt5zzUmJHZ62DoB3OA1rtdKXDOkAhm5sOWqzA3/WA09WLFVJkUHDwV4FMWdJdNF197MEgGU6up5YiGZBWV78aiz6bb/GDIkJYs2Pu0ofn68MM1Mqb0uAGEtzLsF3qvS+hvKv0PuTIvCeA0x/JV+fiNz0Giz0mdwV2l3/qNo6PlALMi1OK7rUowVitawMfPVyVvcKnMYzN5jQhSmqnw1AJgZm+UAdHSZmgawysFiQw9+tzIa+qP/5eXEHMNeuqM003rn2XwXHb+mviK57f7p29cVF70XFlRDaj2xWLOHACh49c7k0DUE3U2fan0s8F33ONXFfgbMyAEp0ZZIudDmF25zN/eREW8lksgg02E9qMTrXLAdqiiD3W2QUCfsynROPM1gje61P7tUkNX6XAX8fFKhEGYGlPc1aXAeH+fU699Jf/oPNsvmFddpE8D3OayJrFlah49ygdlq8gcWyzA8whPM55OCtD2re41YEo3MhoSOnPtw366i3OYSVqa7fwGfvhkRp9O4m5tmfakSg/tGgwrav0DRZPVRU4n2YGVpuKnoKuCQIlxicONfb5rC38GH5pBcL7NJmF4qsbV+CKQtUMcUfqY/4e4STvEkim8FBjLGn+khlvp5A9w48MOkg9R1TiqshykBp7PuMtkBBI98J1Gx/oRFAuQ/cZ0MAEYnNBEGDdEDXlgzbHfK1l8WUfuxVn6dcpETYRaQqwSQgxz+mQzh4EAtoFXf0AiJ9aXtSV8sJ+teI9QH6mjOKaxbI5+x0+HL9Hke6YorWpVzaybslQ2C5K3tvn54l5Sg29A2rK7VT9CpoH0wrezZY1qo7XG6K6IhVEdrf9gRIfKKIIPUe5opGayOEqyBoADMI9R2AE0jZ8PvzYi6F7cC4pCyR+HfmfBHRRE1xgHf8Wv/Xq2sNpzSBxsmyUZd85zTbPsd6EsLJXR9n4WqADET9xM3N9BsaPSdd4sE5vi9LutNoKZv+eY5wVodnm+kcV0QXPC3CfUHznHcBGvfpAWsbGYZnQTlAUhNXHjiDVp9J2oqBFK51Orc2NQLa0HwMZaHqwrkwvRqprjQ4WLbwWZEcd4a93FkWC4od1B15lHx09KGQQEhZgyXAtyFmrD9L80bkyMpbCaOKVb/6ZZUSvgAjdZygPvWyyMcD4/ish4NYBKRU+URklOOT83ZlTSxpE2ZQA1HyqP/rw8iwW4xbIWMz0TM7hFcy3Lp2LhLELuzpeAIV1EpP3uH9RU8C7ZplVsqrdE+lPlOxBRjY6BMPM5dAd2nXqlnu6TKvcBQl5tQmCOG+yu6Kf06MsYYVQHq++FoO+7lxcuv3y3sj/wZsif1PNc5uQkzUCT9hJEHHw5uuBB2HRmb5ZK2HaDKxufHfRP4H4Kpnayrfwfna5AB2hYhDzFD1zceyLISggD1R011K1/F8UrJ88TsG8jM2A6aTQCgFdORo+q0z8WR5m7sWWhId7DNIGmL3SK6u18f+ii5W24QQtOY9i/4wHHDmFr/YX0bGM+4VhygDVSVkfpDMf9aZHJa6GlFJmqESruc+VgwUKVj07wKE0Tt47Q+gEkEAZeibwg7zKPGVPxnQjCjE9Gjy0SAbXV706+wE4UUTSuHnmcg==","layer_level":3},{"id":"b86eeb37-caa6-4edb-807b-036800419a82","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密分组管理","description":"jd-card-group-management","prompt":"创建京东卡密分组管理的详细文档。深入阐述账户分组的创建、更新、删除和统计功能,包括分组的数据结构、成员管理规则和统计计算机制。详细说明分组与账户的关联关系,以及分组级别的操作权限控制。解释分组统计信息的计算逻辑和更新策略。提供具体的代码示例,展示关键业务方法如分组创建、成员添加、统计查询的实现细节。记录分组管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案。","parent_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_redeem_account/group.go,internal/logic/card_redeem_account/group_stats.go,internal/service/card_redeem_account.go,internal/controller/card_info_jd/card_info_jd_v1_jd_account_wallet_list.go","gmt_create":"2025-10-08T18:19:49+08:00","gmt_modified":"2025-10-08T19:02:13+08:00","raw_data":"WikiEncrypted:2Tw4z8NsJjOlKl4tOUQ4rdLCKJ6he4t2YUuBiX+duHKsu0bSY6j5XtmWtlRDFLesp7B9t2FDeCzDhF4tjVQoWGbvNToSiArfvZgRhQhttoLMtONWLHnMjRQenEBAi3gU3uKMbVAVeFljYBll520xQvoXqZ0NtQx/im3wRUib4Li+8S/od1LJN/Z0mq+kG1GYo+Lu4o27Ap4u3GzHiKooY3As4LhjGAKZhtIJMx3NNFhT+ADz7+kJheEtwsTDIiyoneYQWowtLsktNUwONgXs7hEK1S+UT+Y6mJ+Wp4zENLPLuvm8sFO5/AR5+OzUIPhZQFbfAlIRTx25QByM6Wu/VKsvfiI6pZkx+cRRnle3NwKKP6f4h9rsJYL4mmBU1YAjDPiBnHrhKbMvys8sElQ93S+XvWbYDBHuAo8qJoO4s2540VnNWryZQAPUBejfvdoxXEv4qW1+TaNSw1CgAP1xgnwkJ4pjZF/Dzi9Jp0Lr5h9dtedNzyWAcbg92U5BE3awlNd5SLwapVjVCyAEjhW6BRi5KEbVamWkcv8r1lM7K+FxjpH2JwcjIE12ss08VsgcJY63zbbmkb6nzHyqmJopJA/QRCFqgbdNos7S+wmTEB6iFBQHlB6kUdTjLc9AsewksLuq3mSISM99nyCEwyv67e+KycKuwx2Y5dbPlSKCBXMAoewC4/gRTUu52365kvtXC10uSkaQIxviZ3tIQzU+Lp9ToWWiCDu0PyHzVBiNciBP/eEZol/E8ccCxge+8FLQnSOuS/a04xUSuw+eElgAGwETH7LuRG9W9rbn/GEZqNyjk3bGDqpsHg8qTxXGXYtx22CGktjyQeWM6MuSIbxCx/MltO61rs/Zsw6wLbCdwOtlhDkxTUvYeBVGJONk/7WcC18hYYsqbYoaW0VI8fzwHD9Q/ghhYbrWFLJSIVYLpfj0FuFwtZDD0Eo/qipCouBkT7EuIppujAlRk6htn1EXnjfHPxLPQeAboeM+JXLTkPKREgiWh9au9YXfsIfhHYiDDHnrXGtaFXEnGCjntosgeWJJFO2klzMfb1HLy4Lz8anm1zJhhCXR6tP0QOIhSd1jbprd4/ZPEgOaS3emoPD1wGvg5wwg1SFQR52NkRkSfesQL2p/t5DoqhNARduABqIXJNMK5SzMb3K0+80tADmqpcEkpwlossbWevFqR/me0i1HEJptn5x2TjaJvmgCxj0UHt61ChLkOFUeHbMkYZuxtRvVsXj5Mlh0sr5Dr5OhwxDOwdGY6MiLmWooApabtnqiddw74+cz/1pWQY61rKOprsDDKeGBQlbZWWHJeyUFq5xKVCxfv83FzL6yVJzhSthvpiFuRyvr4trnvFlfUqSd9Z8fThOOHV2mUDU8vLMI4WH0Qnp4JYQf1Vo49qf4+62N","layer_level":3},{"id":"9267865e-7ecd-4a9f-9bdc-66f3c47cdd00","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密工作空间管理","description":"tmall-workspace-management","prompt":"创建天猫卡密工作空间管理的详细文档。深入阐述工作空间的数据同步、统计分析、日常订单汇总等核心功能。详细说明工作空间与账户系统、订单系统的数据流转关系。提供具体的代码示例,展示关键业务方法如数据同步、统计计算的实现细节。记录工作空间管理中的异常处理策略和数据一致性保障机制。包括性能优化建议和常见问题解决方案,如数据同步延迟、统计结果不准确等。","parent_id":"8137c301-f13b-4054-992f-c556767d7c45","order":2,"progress_status":"completed","dependent_files":"internal/logic/card_t_mall_order/workspace.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_data_sync.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_stats.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_daily_order_summary.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T19:03:01+08:00","raw_data":"WikiEncrypted:pmN7H1JF4+HQF9n9w8KwReDTM6Mx2U4SoX+wR3uMBnmUaLdaRPubDduH+iqcINL2F1uVz5fih8PpiymWyOsPjzO3Qey8yIXLoDGg/WTheetMHYoKhIvyZu6pbbaNAyK61SCxJNNwF/EHyoZFQPylLOta3kgaHFuEH7RGJE835QK8BRaPwrSAAzB+ZiFMTk04e8iWcaKdykmjCtO+9EdIARCuLs+JEVcc/GCxm5irW39IU9Sq9o21tO3Gc9lE8pXm5S7QQmQJlNeHsJUvwKT/rcb36wYlQA4H294Y2fKMcYWPnY19lKjJOlS54A5YpkwIDVrBf2JAnvHy3dKfCmCltaweNs5W1nPhB99CID0yC6RRwKclk599rzEPP9uQcMho+ncsqATPxffkpDN0ZSRz6xYJeoNBkP0i+h027xzaM1LTNShoiL6rjaZKyhmGlwvB+p4NqZthrp4zSR9vzdf9E1Z1lQfJ+1kDHKaBNyk8N7YbphhcsK1T4YGoOZ8kUj7JTTDlhNOK/ulyhDY/6RfKqXyYOKfDyJxDoTFM6PHl27fqCuaQDefSjzVOcK34HOi917aWeTxrLhCKUOHI2o/RiOtcMeSDHLDrrs+FK1ZgABoIR+Ba//CmGoZIuBo3WyrpunFHTDMw5QiMlc1GwbmwFz1bu1ST66DuvuFhnqy6TH97FEW5llBk5OkMjOO7359IKCkqXCchGhXFFVGAhatkBD6If6cXhJnux5uF5xD/yiGt9JdSV9FZkLpF+8OUWxrlE2rdiM/vF18w4PrGqRENA+XZQDyuxTIEXCuHfermrLGleSD2cLNANrx/6IOfIgjSiD7Hgz9uzPYvHeqQDM9TGjPItqR5e63PZKxIXaGfkkIj8hZSOR0IvlljXIdKULszbxi33SVWUMSyqMo0di5toQDQVI9+HKTYkS55Bj4OA9iIerZvVKl9/x2DdJkXksNL5LocFKFeAuGhmigZj1Jqpjaf3OiZSPXi3B/qoor3Ea3woUmI9b7OW3RmJQxYjShTEIy2Gh7KfAXc/afdHm6sD1Mskv1AUWlDwR6pGtzWwY809btuYtkA4XxaU+fDLtLYuUbc7glBGylDcndTjgRXxcS9kNWC4NaxQqK/nXjG7qxLiRyBL/aALnch5eb+TI1tjd48lbUQnWX085G90STcsymVAS9See5WUxEIWawYlgAhbHVBjGaTuVEBTEDXv65DipF9LCzobfTRsu+iyh4YL3xl+NipnjZSKiqCL++PtLK7cTpEg+sGO/sxMoiN3xpnYW+a+d1crOwLBIAIqZSSaJrRra0p4NKxFwKYiYhvl0fxKU4Ms7rElsigkjVy0K2v+iO21FBG2InZvMAPpC449SbG9nBEem7L5U8oKJGEYkNlbRlzZeQRXsedB5eoQlyhjZK0Ugtql/Pf8euHHPa+RkiuBR/YR264eXgsA2C8x5KBdnKv/m5adEZC6AEZ2WdXHXUqs+SVr9BUJ11V2x5gxA==","layer_level":3},{"id":"4de9e641-e754-4df4-be5c-96bd78e98da8","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"IP限制策略","description":"ip-restriction-strategy","prompt":"创建kami_backend IP限制策略的详细文档。深入阐述IP限制策略的配置机制,包括黑白名单的定义、封禁时长设置、例外规则配置等。详细说明策略的生效流程和优先级规则,如何与其他安全策略(如地域限制)协同工作。解释动态策略调整的实现方式,如何根据系统负载或安全事件自动调整IP限制策略。提供不同业务场景下的策略配置示例和最佳实践指南。","parent_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","order":2,"progress_status":"completed","dependent_files":"internal/consts/restriction.go,internal/logic/restriction/restriction.go,internal/controller/restriction/restriction_v1_check_ip_allowed.go","gmt_create":"2025-10-08T18:19:56+08:00","gmt_modified":"2025-10-08T19:03:06+08:00","raw_data":"WikiEncrypted:6hVxnL7axMQmHgJLo0JNgXroZS4XfIcI9txs//qPFg+UgB1QVZpinkI/9oxfW9tPotJf/5BTyF8XCfAyLA7+o10wprGeKJwF1KwCWge7URyS6iBsJc1lQYVLzkprQ1jUE8cO5rpOjgyC1AA20f6UT11yA1zxFozgy/g0LWVZqwOTRcGh+5yXvLGbTIxDRKp8p7pt/JuDSzO5qTu5ypX7rWkkH/Ups0tZBzzh8KCM7WGq88jgY1gbBfHMqDQyCgAqZNcIcUwmlLKjk4PgKB0qkQ9cmZIfkS+fHSj6RMDGc03sD1qanuKGk9ESxwY21oWzpc/3wI+n/p+cdeMFNTalWE8KhkaGlEid4ydyq6Q3KBCtTFLn2chxi6nNbNbhR/oFhb6UBipCLFW0jjQKQ/jUYHiYU3tx2uj7sLliYtY19p18ER6Q0eeBzTY9x6nJ5BHpy/cDqFEPbiO9W5r+DPrP6vYT5cEPKpIowqt4W5NGOjvKSzqfvwE8nIWzMdP4bsrSwJtJwfsSEHBZdExKEtWcW/tbdT2dRxkYWfQmhI7cY/K1wKL764SlWVFpDVN+LSHez15/UO730AgIR2e6oqt2ubbB0A71eBp6Qu1o7smfperkg7P67OyP6tINwOIIAIT/xNd+7CrePcaWmIzDfUWMrQxspxyNaWctU0QgSR/sPFkIhxzsg7LIShBmrEH8tfw15U5yDFSTvuMUgYw31xprPAGUtKSR0uXZhTwuMmfaKTu6u3Frny5Ci+SIa+CQ7eLxurjMgXLzc1ZZkzt0xg4POwjzU9cbPVRqDBYeI51W/Jd60XoQOpn3PaYJH+5URyIzfWw119cEIMboj5KPdyxdd9RbkyB8rcUn8jIb0aiGVpcpbXpFMap7ZvfLCNKd/75/0k1IoUeZ4MQxILjkca8+WBgoq9iAkOcm33IneMzc7ySgTBgxAlw+q0ecVEmBEU2N8pVhCnBwtT/ubPGSftmicQOKOw0Y2f32sVWMOx927CIe8Ia+lc/UDbep8rsQTvc05NQYljd6ImHHvXErpYqND6Rn/VIbHHLmN3pdHLvgfX6BmeTBIAJTuADvXyxsroxWyc9xMTd8URXX7qi32k3LtA==","layer_level":3},{"id":"1072ba9e-1fcc-4ea4-9598-564f965be8fd","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID匹配算法","description":"device-id-matching","prompt":"创建kami_backend设备ID匹配算法的详细文档。深入阐述设备ID匹配的实现逻辑,包括精确匹配、模糊匹配和相似度计算等算法。详细说明匹配过程中的性能优化策略,如布隆过滤器、哈希索引等技术的应用。解释匹配结果的判定规则和置信度评估机制。提供匹配失败的处理流程和异常情况的应对策略。包含算法准确率和误判率的评估方法。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":2,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T19:02:59+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvGbxql1VxGvXj8wXXJoD2jUkzw2IGr4vc8v4wXpMfAxM2i8Pu8fZQDbDACIjUvIa2PVuqqdtSsLu4AJ9u0PM176QBtkhz5xzzYCLIycke55A/EUOP2wz2ZNWE/Bho5s1esCxg86joQ+AEbPAnr9y4UUwrK5FmZpNj+5GIwqmWtRjK35+74RSPESBv1ntHb/v2a2wcfXK251Ny6Dp7MPayMWlDG9yeyKHWz+gvgg83t0mNRySmYr+wYO7EOi5jEUt5xOpBXzx163xE7VSEVoLhMc8lwsJ2znxTW9Ol5h3jHAQHyDf3PAwJHBvY7VTIonMDSRTcTtHoN/ZQ/vHjZcKvGxzN5NWQzci9mKua3WKZxVZrzeXbLs2uP7EjHKBCKdSn+klV6TqxAbX9IupDuZZnlTIG7uOpMmBFxrNYucDVnE3E1DI5K/pgGpCovf9M1KvV1S88adX34wxLsK9cVPO3H5vGBQvx7wI2iH6iQwtkhHGGEQcUC3m4f6M+IH0iqiLhYc+zS3jSdXy+/BGTg0wV+KX9Kygmetric0/m/F7hMm51IjieiNNc1axMYaij3qP3bgmWwj/6ktVEE0PpDUs2GGZo6r8vDnhobdxZRBzSddT7YPfnCF5ddjO/F3cP3fLrAT3Rtd6Mg3tyCdAT/aDqAx3L9DwuVuw1tS0HnsqVvMftCwo802muaLJgn/FC+hiUl0Umk2nwNzL2AWXUYxGof5X1fHBYcg/zwnkUD8dJegR7x9y2el9apjSKOScDn5eIL0qF8eu5XasmUbk2oCnZxefc1BHrCudzZbO3DAZw2HM1/Wo3vXNZS8hnvPAquMJu8ehFcPVakBQEDC9/pM4sdhD15dX1jl1K/KT3Cdr5tF/mYSlJSHSi3Z6i2nLiV03DGx8L5rt6QQjlUEXIHY3jvDFgIwqg09zDDSZUZrucbEpXbmt4t84YgDNLAMSKZBsyVhzkleMWbVLt6K6WSlKDE8CrUFYDQV2wKmy+T0lnUpu","layer_level":3},{"id":"282f094b-3780-49d1-b057-75345b1de3c1","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"会话管理","description":"session-management","prompt":"创建kami_backend会话管理的详细文档。详细说明用户身份验证令牌(JWT或自定义token)的生成、签发、验证和刷新机制。描述用户登出功能的实现,包括令牌失效处理和会话清理。解释认证中间件如何拦截请求、验证令牌有效性并提取用户信息。阐述令牌的安全存储策略、过期时间设置和防止令牌劫持的防护措施。提供会话管理相关的性能优化建议和安全加固方案。","parent_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","order":2,"progress_status":"completed","dependent_files":"internal/controller/sysUser/sysUser_v1_user_login_out.go,utility/token/user_token.go,internal/logic/sys_user/sys_user.go,internal/middleware/auth.go","gmt_create":"2025-10-08T18:20:06+08:00","gmt_modified":"2025-10-08T19:03:57+08:00","raw_data":"WikiEncrypted:0Uk4p/ZIoJw1paXZ+Fb51ur9+BiJ0NP0cT7pD4QVBe+7MMhlz5M7a/p3drxSwSHvY8dFGDqDL1NRl4IgWhD1zXBn1GX2bUFf+oTxEhJhkYDUEYNU4nAACLzPI6gYMpw5QuZ1FZd5Bfv9+JPo8JUI4/Wsnw12tivlRmPEWuUj2hS/gIdfFzjw33l92TOweftqv2Or+uu92XSaClg+hTtpkPfRQ63ISdketIPowsTblGDxkEJW9DQoG01H810yoQkh97osF7oShLX7rTAqICvr393BB2UQO9dczlsDlAONcq9XmHogAGNsXSc6ee5PXC4RedEYh2856MODoJZdInm2s/IPVcAxgetGlgi7JwOCSuyGfDoisLCkTrycX7msEXgR6G1Ya/cFKC64K9k7b9c+hZKvWQLqDEm1LtVtUdng7zKto7hDWCexiw7A62sSPiJCMM4AjsTj+d/6qUCNOPIpMJeHiTzUumQGyjuX13AX7KVx8X7jU5gzlLv8OxgyBstD91uvBqMkfrY4LTJrSMdXwObD0CyWGCa5dXWtLx2tWvBd7lbCjZtvKzDOK9UaOg8/xCORlP0hX4sRMwNjUMAH1jFyEUxO12zItHHTYuqU4bJyCsYj0Yxrbh8xg/oKxLH67+JkwTqKnXOG1JXHpavpa9iMp6IM1SM8PMYaYIucJ8+FeJP+I0od6rjxON8kaZ6Nto1dA6oQl3JVHSCUhVPriTHXURowCQsAVK0zHULWLVRzwBjFj2bM2CuunGe8q/wzVflGRZzu6mmD7aW6pB7y1+XVyx31rdwZ0vznb/YlgpS+/eCh55SCgUynS/chV0HlZBfhoISANahRO7FJW0ei9/Jov7tdIIt1K86McWKL0QDBGmMqjLLtRuqYdxK3H5tmyBWuB2k+BR6VVJvTUsfElTXCpzsqWIGrvpPRvutDudUGla9WwmG+hzOe4zFEW+y/6yY6qzurPLhfxcuvt7Q/MAV+wyQ/UPVTlmKJlXxn0N699jJrNZTLNWjqlgOILkpNlBMG3Ic8iKMNCRujrINna7YGVF5yHCPXMy2zZA+Rg2kc9PwDJRSRiOMhp7aHalBcM8w1Jq6fAIx29mUAqkVhrSu43W2H+UF60gQHvVwAb7cSlL9JIhIMm+FLRQ30H9E818+NAlUrdM4h9jOZY9G1Fe075L8z9cVHAzmqSnnrItr/U6ULv3pAMm/cP2oxeCAV","layer_level":3},{"id":"0406e349-1ce0-4ec4-9c86-6c842ad5b1d2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"权限策略管理","description":"permission-policy-management","prompt":"创建kami_backend权限策略管理的详细文档。深入阐述权限策略的动态管理机制,包括策略的加载、更新和同步流程。详细说明权限策略的查询接口实现,包括分页查询、条件过滤和结果排序功能。解释权限策略的持久化存储方案和分布式环境下的策略一致性保障。提供权限策略的备份恢复方案和迁移指南,以及权限策略变更的审计日志记录方法。包含权限策略性能监控指标和异常告警配置建议。","parent_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","order":2,"progress_status":"completed","dependent_files":"internal/service/sys_casbin.go,internal/logic/sys_casbin/sysCasbin.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_search.go,internal/controller/sys_auth_rule/sys_auth_rule_v1_rule_info.go","gmt_create":"2025-10-08T18:20:07+08:00","gmt_modified":"2025-10-08T19:03:58+08:00","raw_data":"WikiEncrypted:arCjhUL6OOP3tq0tMlrtoLDUXcFN5JXkHFkoIAmNJ1/s1y5qg9P3LBm2T8ID5ZgmWBKUZ3Dbc60bKc98HGzCgFy3CL6WPzz+X5mP2XoNn8E846x/EhAJdQZ02CvSPcKWPjLrj9WB8eoyVAuvgRl8qvRfFLq1eqvUPCEblXl7axcaXWZj0WVsktrtxjeP/8QhdCub63OC8xdv5YBIqFSFE0oLTHE5odO61XXDE3a+d3HsN53R9hJ+10EH/5OdJhONztMy8eQQaZfon0pv1NWLPRZnis8kO+9Z9WH1i6QrY2zlOkpNdkdFeCle0QOSVdh9sGbtL5aL92/dC8NlHB1ObwAUA8FXzrtEoUSOfuDMKZBr9vKSMJKjOtv3BkSDfVryd1MScwzyjMLbWW2LJSOTsFwnUPs6gU5Oi1YWEkIfJw4jNvAtLwjPSYIcy/FLIwjc4HYzUTMo/7SEue6uUy2nDRL6KKcv9ct7EghLzVG0vkdGSZOIHjhw+7+yGiWt+W2nJX5hqcTUhN5+Ts0vQKmgDI722zqHvkU8EugwGYrYtXVx721cK2w4UnJUu4EhaojW4NCIjr2EUsOYHQufzp2o2PH6xB56dIfdT55XaRGx9LkNO4wwDfy+82V+8xZpk/jkuTb3TGmiXJutwYEp9GKfv8iR1GvwGL6gD/GWgCFGmL2QrbD7pUAMye+/xftFOYjEWIA+U4Jsz41MGPcaqDUz5H4R4vMvPmqmNPN4oa+1SgSKTPox4GxqWLVB7zpYFECaTCYa7jDT93G++8fj+ylqpmowUhayRFsamEpavdXx85/5MTQ+rC+BhHRWd/N40oojTXddOFBSKH4Y3V2+jrDTxrzy869oxTgbkOHWzNsCM6ogDa3eFzH1oyVBAG27NWT38UsHvnsTDOO87YgjDXblTftC2lgQrc4JrcG77dHDTDp+symmhHngwOpzmCTwkkcUVCo8aoCNWHSBxxwtEWx6tYhZqR2N5JHuJHuBaLU1ipUc4OhJsxvZ8bRdU/UqA11Yly3oVljYGG5C4fzweb3yB0/Z4RqWP/jeQu3Q8NS5CcYttqraoI956pNJzJPnkk7TGBG6pbhYSfLP+86O3pRo9XIpqTxPYPbxTiBp1B4iCcWbZ5PpPeUurauBX9B0scUjl4Ct3C0W/arnRx5JKF9Lp1l8QajNBGdXXmWMm4V9m4k5qNJxVAv799478EZFGRN6UB/aKkW8rr7emXxhCreCL0HbB/UPg14brYONlQ3CHPhZ3Ix1nPJ+zeKVGWhn2GHxCuk/hGvb4sI0IFpRyQYTbSaE4zRaDYzMR0mxPeT+qOlyX1eGZfjLwsZKtkl6F9WcR8EoepjX6l/vvh2R0Wid7Q==","layer_level":3},{"id":"6d3c9aea-cd8a-4031-b3a4-7491202249b6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple卡密配置管理","description":"api-card-info-apple-config","prompt":"创建Apple卡密配置管理API的详细文档。详细说明配置获取、设置等端点的HTTP方法、URL模式、请求/响应模式和认证机制。涵盖Apple卡密服务的各项可配置参数,包括充值超时时间、回调重试策略、防刷单规则阈值等。提供实际使用示例,包括获取当前配置、更新服务参数等场景。解释配置项的数据结构和有效值范围,提供配置变更的生效机制和验证方法。文档应包含最佳实践建议、安全考虑和故障排查指南,特别关注配置变更对现有服务的影响评估。","parent_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","order":2,"progress_status":"completed","dependent_files":"api/card_info_apple/v1/config.go,internal/controller/card_info_apple/card_info_apple_v1_config_get.go,internal/controller/card_info_apple/card_info_apple_v1_config_set.go,internal/consts/card_apple.go,utility/config/models.go","gmt_create":"2025-10-08T18:20:13+08:00","gmt_modified":"2025-10-08T19:04:12+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBuUbm3n/HylwaNIVUMKnhGi/Hgcopm/oQ4lcWfRCIkkHsiiTeu/ue9QAKwdbXpDBVY/P3Qigua05nKAQFPAwVn3WVT6n8PyrbxbmWxlX/Dr9E8oxhzTn5RaBjXjsaww+IOXyA37lEwC4a5tWnw59MOF2aurMPzaSawPSQ34tIgQmu6Qn8ETjIv1cwEItfDy7Ibtlk/RELXp791EI0CwKOC5X7yQcy/Qgwcm5Nr18sS3bULKQ/1RM1j5/Q6iPNSTKWyEAHUgcC+hnoha/jhBaiiBFLTW31hjoUkzVARhihUKc8bjyzsobI2sDWbda7c+fh3gK6rUfQevMI98h/QP43OZl7Ve8M7Cu+Jlj0vxZgA1WeGa69Rsv4nAcbWfTor8uO1utjzDpJauE5fRbsS4/FlayjbskXg/O+QtyiBEqB9equauoZoQ+ZhoxvaujE1dZOJgB0N7hleHBoPYV3LNI57UtJs7BBHTtdU4F/DgWAYMf6AP86/SGiGRIoaSBAiuXF4D+MuNmfIDZjvIL7N7tboGmG4HN6ngBGx0kfwGOKeKq1ZEoOKgLlZXQ51o0O+K873agX0cfYx6P2sXT55QpyKyv/EoPF30/aM0z7crEtLJrs4tBHLKQIuiKfjA2Z13sChBPIFHKYCsO9M9ly/Eiezx9jmuntNp47cSCZM0f6uRGaaI1/aYeftBkRAV5/hhCAfq5fUiE7aDNHLx0fpwpi+qMkpl6gqwLIcL4ZMPN8yPPL6RL/mdDxq3I72ZsDGUYMOfRlDFZKExEHZDRy7Ic89Wk+mEjZhTnZec/hEsoMan6t+8CIpBHoRk5axvE2mgzY68TEDb+UykPBvKFbNdCAi5+buFYqIR/So7EEbRfJiZY4crBbwR5YmbmWMvK8KIPYsC1cXhhMNKP9LTFDi9kmdvQWq3woH0ZFxMNM/WG+071k2ZKFVVwzTzR/TRNNAFEqwJyA56J0cQ17TwzZp7VKxeGBLI6+esXEhJScPryxNVN8hl79PFX3pj4uD/a1Mze05MVVYU2K+a8qCd4h1ZpaJJR9RomPHIhXxi1XUupB6xur+PugZWExABg91LfdnS2CoCERGkHpDjSlBJMc3o4Fz2J7iyH3O/HjdqBDXhnY7o7GvYBFzBfr1UOLcyH6l9VQ6JHLlI7OA+yAbyB/TtX3LDqesUMzusgP/8tMhcoOrnQ1F5Xc8Z8sDKcs10PNvZeuWCkyxASCirD+bBHG9wWdxod8BKgkWhFwO3I7IOzpuGIFLmOCGOkt2YA8BrJ0KxCi4RQmgR35kPYVQlHIv58VVFFjrhPN4KESeTWyOq+ZgghpDU/ZBW7CVifbND8fzZguEpprUzAognHKAX4uV8z+4We2CYI5M3jfAWm5U4OAgE2hBFAcoNsP+YdC8f7Il8PgulhjJCUtgodbkbJWqEwCG4=","layer_level":3},{"id":"45710fa8-25aa-4217-ae14-a73410f49c30","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"京东卡密数据汇总","description":"api-card-info-jd-summary","prompt":"创建京东卡密数据汇总API的详细文档。详细说明订单汇总、账户统计、交易分析等接口的HTTP方法、URL模式、请求/响应模式和认证机制。重点描述数据汇总的计算逻辑、时间范围选择和数据精度控制。提供实际使用示例,如日/月交易量统计、账户余额汇总、充值成功率分析等场景。解释数据缓存策略、查询性能优化和大数据量处理机制。文档应包含数据一致性保证、错误处理策略和性能优化建议,特别关注高并发查询场景下的响应时间优化。","parent_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","order":2,"progress_status":"completed","dependent_files":"api/card_info_jd/v1/order_summary.go,internal/controller/card_info_jd/card_info_jd_v1_order_summary_list.go,internal/logic/card_redeem_order/summary.go,internal/model/entity/v_1_card_redeem_account_summary.go","gmt_create":"2025-10-08T18:20:18+08:00","gmt_modified":"2025-10-08T19:04:46+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBqF/AgjQv6sM0ab/eWm9Zc2i7CrUWQErn5CVnJDUSAmvbhzvUotPoOifzRMm9owTgiZzFXf8qg/H7WNy+vMKY21byd2lSmn06NgdDtFEAjS3aLRCCk8nGUvX0YWM5O+3y0Jwn9eDcKvfVG1xTNvbumyL67Azpb1QcAI8x8ReYD3s4A205HtSKca8tiqyCsl/ceYDq6Xg4nSvm0ZT21L4vjiYz2RsI6zQf1WkOQtKqEFSoeqKNcNxP/Pmht9nPJkbUtb6OguOmXiRwz8CP7BR7HUjcUKXPUujoT/Fba2zEWZMa/q2Odh/tDg+JUiWSXdZTZPwpURaAjsO4d+yn7JWxeJtGpvl5Y1+oQr3+pxgvYExfD7Pktk/0uLIXbUL29o+h5ui6SzhyNDIfNrvyy+IKj9F8IfYCq9+hJtpzO2tmTz2hS46eqoX66HxcC081e08XNsrjLF09CdmHXEwSUjZZ9gvLocabptJ/DhoKo5vFfAM7tV9T1CgDpD3K2gAusHRUOg5GLVBCjcRVippewoSb6q6JyF0Qr9aV+ktSvuiEhVc8MR27ywdDm92JG00+A4AJItDSFPYfJM2J1knKG+Vj2Jqbhlm1z0IDJ7oEy+b0y1EkpMnG2y3/+DSggZSiZbIQvO/uYG/Cab/zFkbELifNrSVrdOr4Z25EJz55VOhYjcq9fxEC0hFGLowZmWUQZV6q7yGFcj5qQcBPKz/UVyFQFTAhNIpxL0sDR+ClaiHFGwotrSeqUyPF+TtoN8UyXQTSjbdDfA904H/il3JIqltti3+FI4On7WWHgNNuWL4+GrMrqVZuR5ore24S0OcJz8OaZkAnl6ISaC1LZ/0S+Ng3lqTOxvVlzOvs+TMuWK80FBcY6ixKthxI3BzeOx6KuBhdjI6PS0gpqtxEzvXxWff2NUB9YuWymP0o3NMFlXBvJZRR7Lds9P9WfTxe5SK12GEVdWuYoWWX3HxVfOvJRIv4nsl10xQru1mMxf8f8UnT/idBs1cNJ0v4f3eiEUvrwspVYzYjbsDza7h40I9QIItp2EUVVyChbWb+wXkNF1LvS6SdAU5V9UD+sYu/GSjhxNAHNpmAKXmgbEAjDJyEH+4/WBv9KCvpujORaZcdTQoNq0U39t864GLh+4pW9SVMehu5nNNMoOJ0iG9TiwueE+kqJm2Kk9P+A1pOyGlmbPIA1BJoKKhxLe12AnelH9hPoUj5ZzQwR5mYjqsghmq428peD75K78JtJKIXtMN/Y75i1w10UusM5jOQfQ8gc72zC7MC8CmkER8HCT9017AdwDZWnRdl1Pa2g1hgaDZ+pVe1nRwcoZB3ev7N+XmRnJhAlbt2SudhELdmp9mq1/8f2A/JtkEJTMdybogDqanF1yg1S6FHRUvbjjslN/dQXeqw0LeUA==","layer_level":3},{"id":"1bb36bef-7cd2-4cfe-895a-726588a9a89b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密店铺管理","description":"api-card-info-tmall-shop","prompt":"创建天猫卡密店铺管理API的详细文档,涵盖商品查询、订单同步、库存管理等接口。详细说明商品列表获取、订单详情查询、库存同步等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括店铺商品同步、订单获取、库存状态更新等场景。解释天猫店铺与卡密系统的数据同步机制,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注数据同步的实时性和一致性保证。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":2,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/shop.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_shop_order_list.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_shop_order_get_one.go,internal/logic/card_t_mall_order/shop.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:05:04+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBtDWVCx1PqAct37L9oLDN6sZVjNa9Ch3OShCJn/kzhZeficIBnIrtnenIuXfUtVRu54GfaWNfbXdZe6evvtyGUfLvBB9ZYagGxmI0e7fGNTwVebDYlI3vfj2gZZT+8AlmtTVcgmrN1XVtiBaxzwhpwmuOalDR0NLwHMiyHwbWWetbQf5t6OWMtxhbw8uR5sdShhBQ69i8kMs7gasHO3L9ef8JiQuzmZab4jt2/xrfjl4dZ0a33GiWO3s3sRpWIvHNJRIOrV6hf5IffMdcZ+R7hrSNZZScyPUg65QcCziiCn0h1g+lw9ryli/75CUEtdbQOfsVaDyth80KMQE5da5xEO5cCTXJMWgpOUz2FphlHtIWaRc4KLjTeDDHJEcsT3KcTB+HLPmJ9Bffm6bu9KYEZOiYE54St8xhGgQ5aFx3DuxS47eI5mm2c5dl70QwWPN7feFwV8k699umCHjkpBK9VJyP9Nx9y79++Lfib9iA7DeaelrZrsy5A94TSKWBeyRHyIUy//kyJR0yTxXJMl2PzYCmzhe1y6kVeZBj4CEnsou77ZBf6Wv5QiomP7c3NEtjyWLFhj6DNu0aHK7UT5xwpuTlIrquQkJKImYvh/iwUbhs2+D9R1TjMpMw5YVCJQ5q+rLJfT95TApJ0NtQ/gK23lM2fHt/tolP9xWLnZDlSWYSV6iFsNWRKoAqf9BHDgJ9le3vZ1FPEl9EgjncBN3bbnJDq9mcz5yz68bnS1Jll6eqr93nSxeRfsT2THN+ocDILhi2/m/iQ3eiE64QQD9sdieF20QrUhBPas/aA+9yyaLtKOioBS2R/6QPfXfHzrZxEFiXBgFwsq/bLVcuTePzmiJkWAQNlshCdn08Gpl6ofPGXLcaV3vjJpAzxmysSPJxfN/9ubB7na7J+oZsrX1qknTBfOmSJR5kZVH7IMJ0xvrvvjt1BHLjbLI3AVVCRFLrcA72WPH1h7pwhBLZMk3p2mL1wcOjUJbnEPniayx+ShuePbZ+pPKcF5PNMLRmoi4beEULlRKyfD9izQo73oKV33Lhn1wmk/Cie5kwEUxD3VS6F4iaXoi+GluVFSmgFF2drwnDjMqCLRfzUWAp1pnrJjRiv6TjdEfzWl8hpMkfaRrkKtAcZTN7KylwN39fXVoFc8N6mvNTPmoQSdFV7eXp0ervzriGjtKZI+kuCXrzl2ZizKg7iir7yyK96aM/gVWH9FdYboTNOtqshAL1Huz2zB+NiQn6Rs/haQcNkTjF2wimOwOXKWLFHWUPnv3KMpLZDS5eXL/T3sNHKkkwqj1ZTQN71hh7utbZNZESsx66lxlah5v6nJCuPRXBaFw5Mr7PRN2A/mN/fXNv+K2m8nSvRUZzG32wf46zNfQOM8lMSfhh5fucX+IPUbJgoZ0jy/nLoTCVmbnlI3gfTZawah36s9OLG1zOW8nU1+9wvKzzfpB","layer_level":3},{"id":"25942f43-183a-4e00-be2e-c61ae84373a3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密分组管理","description":"api-card-info-walmart-group","prompt":"创建沃尔玛卡密分组管理API的详细文档,涵盖分组创建、列表查询、统计分析等接口。详细说明各端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括创建账户分组、查询分组列表、获取分组统计信息等场景。解释沃尔玛卡密分组特有的统计功能,包括分组内账户状态分布、订单成功率统计和性能指标监控。文档应包含客户端实现指南和性能优化建议,特别关注大规模分组查询的分页策略和统计计算的性能优化。","parent_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","order":2,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/group.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_add.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_list.go,internal/controller/card_info_walmart/card_info_walmart_v1_group_stat.go,internal/logic/card_redeem_account/group.go,internal/logic/card_redeem_account/group_stats.go","gmt_create":"2025-10-08T18:20:24+08:00","gmt_modified":"2025-10-08T19:05:31+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBl7AFS+0V9EBoppO4IsIlgmsc7A0SALqjbDeilIpHRL6DsPwTdRjUHYClnmKJSuNfACUdp3TkWYbmYMcAGm9QFylogt4mb2yDTK0EN/YLlt/RBQR5SZ5V/KHZILmc/y1KU6XVB6sUYTM82cUmNQnYJGXhawqUhz9I9sjWCuKFxN92r6Ts+uEomIRqNu/nLp1DP/fXR/mOoM/aL/nRdvof1psvVPnHuOq3PwEE0c0Hl0GJz5ZjOE1tuhqSyLAbG5/z2gx3mdUK1vPHi2QuksMlMBPg/06zzpUyFvktulAD2TJpcvz49m6i6FPJti6DITE/BvLQkCwmynKNFHOlZwhdmK7peCkOww6N9EbHudcCRtU/FFyiqSV7pudlOxijj7dyrPR0WaptsYxGjWxXYg70vzVBWXg4baAVjJOv7cO9T5WNxxDhRhnd7/VHAyAcxadzPC/kpSV0f5HZzQbjuiCCG4igGvWZnvD/DXSZDQVz/fXO4DLHglL0OiIqBsp63nrnxLcIl0cTYFEByRa0MWtRBTHqAumz9SkyMtqCZCHtEduLIvSCEKn7tdDNyt0eSpjQjkdflGkrzxmBEQPlZUfmVUJ2leNHBhkTHKOT8yDQzMEdxuFPInwNF+Jl7eLrZjAZPqhfEm/t4WEWxqOsqPa/E1/kiJ5Pk7YrmdqE9+mWG87PWLlh9ex0u0lKQ655K2BOzxxvnrSiMeT8pdZRtI7hK0SxAvC3ARDNt+eFmV9sH5hFs6KNNKmeU21CxBOja+DiP7gkwaFHRJJuTPYBWogRYgUzm180wMZq1N2/UvoPNu3Fu1Kyqpr0vsPi0BdEaclfsJuru6qg6bV16dOiYW41Fy5HO64a+GwP69rp+vdj44Q1TZO7e9JhPhTNH3T6o5fORtAqUlC2Zs4rBQOlhYbhl5fooN+4HfqjQBPYnU4lMQrbR3dbhX+mm2c8pjcOWODEF9nNmovrmY8sLff7qYbdHpgsBkWZ9D7LKlPEANGF0psXr6ouYyHA/+a3HceDZCJ6yXv2XKSgfni5u9x99WpRFCth/GcKvlzJou4D8ukkFuR0lFo5W738+St2i+O3SXhiGn5FagE/jO6SMOy8g8QnxJpxRrku66rc2kbCu4I3RSW1dXWk1L+Bexw2BUqUhsMjWjFkLVIl72YEac2I2n77kuEa+sUa+OscA2Uih6FeWBvnH/CkPR9cMPk1g/EW50Tll683aCYkQEqeyW6XgHf6EW3s/bCLbnFX9Zdzn3wfuRdomyBLf/sNKrWMHW4+KJNeYPvhhlXK4S5Lz8aGlfgGxrsuh2Vhy5bC367+Lvk695IsAYLi1b5PVIk+UTBVEsGflVvZfaNIvLDZns4z+i22NR6V4AXyry57N0EGLATzIKiiIbKUHtr2pwj06mnJoCJ8y+8DtdT2VZN9by5vIfsmkiOF1Z7irKQgVA4Y56qa1nuKZhMlKFY3IEXNhUIzFo83qfMw6w+3dzuELr5iXCHZOB7Hq4y9t1oKmw/UIGOw2qXtxKAJonahaTg40BEdOGB/ghKpe3uvjVtoGtCTjlgYP276fVmezwd7jeAQOHteUPQDcilw51riNjd9VUdCaD01w==","layer_level":3},{"id":"f9c16741-f716-4147-9f51-cd748e8960a5","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"缓存配置","description":"docker_compose_cache","prompt":"创建Redis缓存服务的Docker Compose配置文档。详细说明docker-compose.yml中redis服务的配置,包括镜像版本、端口映射、数据持久化策略、内存限制等。解释Redis在kami_backend中的使用场景,如会话存储、限流器、缓存数据等。说明Redis配置的优化建议,包括最大内存设置、淘汰策略、持久化模式选择。提供Redis集群模式的Docker Compose部署方案,以及监控和维护的最佳实践。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":2,"progress_status":"completed","dependent_files":"manifest/docker/docker-compose.yml,utility/config/database.go","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:05:35+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kAZDiR5uyhkNoy9DDL9YABhaEGF21FDK2lTOHOfPDhj7T/FDn1Ku8tga0alrgEkw/RnLRX29SXM2cScpouF3wTSEeO65NpPQ3qqRkvoVmI7/Eeg0bM/cK2Jd8E6G+CfBMqrXmpBoSlfnKbzufPSADPQZvbEn9P/riWA9fe9D7wnl7nDDdOyAETPdiUlfUJm0zdfQTXnm9zI+xF+HDJLOPRbiCrOtd3kCj0kpsHPy1dyDK0LhX53PpQrvYy7mVOznIiAMdEi0sxVdvdoX/hJ2mG8QALG9fBdajYUdDJJofEnYoEn+pBMge8BFflGFtG+8KDidpc+Z5MbIcyZ35zpuG/L6+UnzjQqYYmL0hY8Ii+zFjMDtyqWBW4QQBWME7ad1l2KdOSYL9T39EG/6ETY7nKYnrToEXLMH8diq8/LiZ8wLQ+DzXv6eTXG+kmCbkgICkwSRrJ/bPyeOe79Rz9MUJSUA7VflvcUO8U+LlJxpWGMQGGSSkqTs0yFP1zBHKLLJZQEJLrwPnacqmqi6JipdZRnDub9T/812Wb3XrCrmTaya1QcyE6gxdHBdL3c7it5mfTFia24pNkk6uot8k2m5242PnN4Fqdp0YtnhZResM4sFUc7qlNTfjzfUxafk5AJgP6lzaFJsnJf2I71o7DbODP6h5yhF0V5h5euEKDwfCic9MGwS2uVK251XZrmCLrZveGK6yKr/yZMKPOfF2xj0Ybp2FaLOlFw/ufSP8i/eNEvSs+p1uLteKwhCuM1ka3iRjtq+BboN+u/1EthGBUXo9c96Rh838yBDN9cxDVWypm4OazaaN0+SPOzlW6Fe2+7tOxj3fylS3oyDM0KC2YkRchVp8ouMtW0P3dXAXWNFx+dEel7qOuLgfcRdOdkrQhfAsbwSUcjOuksYygd1j4gPTTxYmV/Coj4nzMfaOKq0seHLa9x4VDssXqM4XspnrDeaUVYziL0OeyBOfdlWTA7T9aR8+aCSAnHbBkQpqj26MU/V4A7qmIX6I8hjA6yAtuZS3GvtdbIM6Pr2+6b9N71D40Y=","layer_level":3},{"id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"数据模型与ORM映射","description":"data-model","prompt":"创建kami_backend数据模型的全面文档。详细说明所有实体关系、字段定义和数据类型,包括v_1_account_info、v_1_order_info、v_1_card_apple_recharge_info等核心数据表。解释主键/外键、索引和约束的定义。阐述数据验证规则和业务规则。提供数据库模式图和示例数据。记录数据访问模式、缓存策略和性能考虑因素。说明数据生命周期、保留策略和归档规则。包括数据迁移路径和版本管理策略。详细描述GoFrame ORM框架如何将这些数据模型映射到Go结构体,以及DAO层如何实现数据访问操作。","order":3,"progress_status":"completed","dependent_files":"internal/model/,internal/dao/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:08:05+08:00","raw_data":"WikiEncrypted:Zb5TNaG1u/mRrgPr+sDyCrIPJ1Zxavjbt9nmnu5AenzUzYPN5uc5C6wzIS8/PeNcv6LLiygnuF5xUDWa8XqJE7IjIV6eXd69l/JtvP6o1P1jy+3cnXGgKfnOxR4u4Q1TA3D/7OQWsDjnaDKwT716Jt0VRpxvRuCniy/osjCX/ffnYvfk9AAIeI7UGuqdi/a/Q0ZNu1ehBfpjlzXvUksWttBcvkkogdMbgQM+B43YQPtYWBrjQ3pwYVOsigQGO4N4gyWkvlt2wL2okMZNmY7VOjMavyD60JAJ/ZKp+VwsJ1qEdZcOqWZRrpeZ2wQKv1saav1NxwksIJpuCEtUQJYLDelN0JnDXA3SBXf7v7weR09c0STFwo2g23KEApdXKD/PRFJepZ72hdodaaVfJCuRdnjC4sGCpX1re073+5Vrkyw3Xom/qjbKTAN3qbH34xa9LnE8/iCyqvJaqZDwuX9tMjlRMhPrQPB+ouFqkb/MzKN9QNbEvTkmEwcWFupDNtIGPRxUoXN4tnwrvfljbgLk6y53vb/a/K+uXmb0u/boOg2Bj7bOb4lzKppPvHOyfuSpPVb3FO8sPJqBd3Tj/Lty0azBKxr/wnC4Dx5suaOY6QrA63paR2w5oEKyxmilj4gu9D37dIez1SA7yVdWcFoRP+JIwIGqiGbAFJl00aOaMPelGtOdwYBlVDp3fTUf2Nw15essR1LYfzzmoS0v9+gJsw/vqR4Fu96KwBr69F4q+4ut2b/gEdMtyGK5nuYTKPKmo3zcjudH/jr7dSyTaC32/Hze8omvIei4x+zrCZHvqUgkgMwD4MtGeC8uMU52QxNoyNs74Xi+flRNtOXAnLJMyP1cZG1Cj9NTnL2jtufAuvPxQK0n1Y+C+jT+l8npdzsFmuI0ScA1PxwuKEbTTTTXih9+pWvY4f/dRtzHEiLKmKEqNjho4x9Eb59qaK4cXiDaalTAZqVh4Dhp7Mj2L6UhsZEDW5njhNwA3f0oWolJ6kChm49sIwpWcOZsh19LRSYe42TuHcQUa0tRr2ueRqlBercZSw4CF/5VXd3LkOziPF8aCmtNIyYTbGpIG8Qi1SN1KQdDpGBFOLe77qCuRe1cDay3STIZhUDzGX/J3YraqBu1EAxAHbnjBJtPyPsJ7Wpt8H7OqqWEkFcK+dWqP29W9etK1hnqDuLCIwJjGiKerIDItCmJb6IWwuaj07jWyKgNpKVYoLPfw+8ouy5op44yeqEACM0hftf4+jpviiOqtoPCOE2mYjCr1CoPwvteOWj95x80op60xi7UPRjRqsCWeg=="},{"id":"93bada60-b20a-4977-b82c-eca224ca34f6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"风控限制逻辑","description":"restriction-logic","prompt":"创建kami_backend风控限制业务逻辑的详细文档。深入阐述IP访问限制、地域限制和设备ID限制的实现机制。详细说明限制规则的配置、查询和生效流程。解释限制记录的存储结构和查询优化策略。描述限制检查的性能优化方案,包括缓存机制和快速查询算法。提供限制规则配置的最佳实践和常见使用场景示例。包含限制逻辑与其他安全机制的集成方式。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":3,"progress_status":"completed","dependent_files":"internal/logic/restriction/,internal/service/restriction.go,internal/consts/restriction.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:33:33+08:00","raw_data":"WikiEncrypted:rmn9+OO+cFYNLeMVIfracfb63BkhhjJRyqXSuaq50u8NkbHHDfDUH3Ca5Nzi7BICsqkkjM6/JbGxGiDJum6puODFwc0XVrFGf1U+T3ppY+/l7ubsf7Cq0hWzVGfofjO8CwBujarPvK9ExMiTDu025Rwb7jUN83Lb/JtpO102m/RriiKTWdi9aNMMkkp3W1AiSykNwum7Y0nIkZrCVumEqNV/igPyvwAD93jEa4oNpXCarHJ8DcdrJwfPvG1U3r65KvfI6jQostXVwoJJylWNL+CJOyoYXBZqwbZZ4UomSfq0cn02py2oooaRW0XhIus1SDN2j65f333RgJCZjNPkF2JNAMF4diAzD6A3QZHj9M245QSoYy0/jB5M/CWJ/bvbf20OMhNV8ksFDKZqZ8vNXERLVA1Ji6qNFmyoBuojPd+ojKjfbXkFmHvKRYQSEsK1CrJ/o03kvEDiCyCWjWqGg1B5/kSYC+eUhE9akwTemjnQPmiPwDPyBhW9GVqAgZpk7/W3gEJz8sIba4wStaHry9+Wcvq4oZGOcxL3eccP6Cw6xTpstRyPkn7bQuS/B1+CghM9X5qDMhZcsFLAVmXBmkMnUckcRmK6BFd6AZADu3Pn9lqRed2eOoOkjCT87iJCw47E58Rm5AJh9+zo6JSiCHhS/C3C13ZX9LGMgTyrisHtz+73RbcV30J61OtJbpAu4GtbyWNDhSc1k4uanUxHKDQvgligLfogEbLuOB4nJB6ziKC6Ho+xkMdnsk5xDHr5+RWwDLHGQ3NLvIKl3eBRjKOM0zu9DYtTytEQVHLkAwDQUlaRz1w9FZR732JXjtbwR1x7DZGiSUNNiltyTZNlpvBQ2iCPqbTZ2hOAdetVTrlCqYfOBPpeOQ2W62vYDXNzO5dn+RvQU8N4Ullm2QwmoAA+0GnWE2JrnmMXwmjcHCvQCWRFuPtD6FAl05M6Bj4+4HTrCsgpDtULVpdsgilGafLN+ARsqMvPjZRZnEc0fJM5jOhW4w23RWJLz0r84z9x0m4Q/ko1yBSoLphHozReNnKcjztw+ayMsmwD9pUW+AIzVxamjFjXV2B9cGKmIo/h","layer_level":1},{"id":"f5173a3f-1bbf-4ffd-aefb-fedf3a92a65e","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"账户数据模型","description":"account-data-model","prompt":"创建kami_backend账户数据模型的全面文档。详细说明v_1_account_info实体的所有字段定义、数据类型和业务含义,包括账户标识、平台类型、状态、余额等关键属性。解释主键id、唯一索引account_id+platform_type复合索引的定义,以及与用户、订单等实体的外键关系。阐述账户数据的验证规则和业务规则,如账户状态管理、余额变更规则等。提供账户数据表的模式图和示例数据。记录账户数据的访问模式、缓存策略(如账户余额缓存)和性能考虑因素。说明账户数据生命周期、从创建到注销的完整流程、保留策略和归档规则。详细描述GoFrame ORM框架如何将账户数据模型映射到Go结构体,以及DAO层如何实现账户数据的并发安全操作。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":3,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_account_info.go,internal/model/do/v_1_account_info.go,internal/dao/v_1_account_info.go,internal/model/card_apple_account.go,internal/model/entity/v_1_account_history_info.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:33:34+08:00","raw_data":"WikiEncrypted:3dIsHCE5EGeVKP2C6D6lOCkvNeCOXjZSxEjRTy1S7+/QWb+uLuqEj23E3Do63zz/VSQitRzz21hs9T6IKnBpbmFXXMfSvZCOf+XeR2xuRYb1wH/WgEYG1zwq6ZO9CTp5cMDe6P1T/h6F0mbTsnvCrSvEKO1R4fPO1j5lneD1/OwacDkV0fCoAoDz+bX0fIwhOjm/TH6hjDIgEJxqPJX+FgDC/cj748gYlAdIVVehBDfiZ2A0qRNeJ7QLMjxkgtpMDnB2iX4uTRow/hXyREEEK/kCS3G95VWuqp71XOAZ1Ez6C63OQ3cIF8KqI5pxvkeO/Xv0KaIrRRsj7AE+MB2EYoh55cH1jek5Iwn7tP6HRyYfnHa/nnO1xK/+17wlcLkf29pTGgu5PLrzj0+uJirjORrc3SJflFtiR4BSzSrSEdT7PNVcMhc3fViku3v3GUuD+56BPacBo7+KZLI6nJV+0qHbPv4ENuxHLu3TxQCqgjwJtscQ0GjsZFx4wm5+jOx20DHHQaOFsUymNgjT03Si9OtMZPnSIJSz5L0ypcgifxGHSh5D4PuO0cxVgWA+xSyOLnx2WRIIHEFgXRdGmwzvx3gE5/4EVh1ezImJ+4JhY0/lOuvWaIWFANAQvxBbcUAPiPnzlwcMWHEk1kPqmQ/LEIJRBQY1N8JxaqtCxaAUK+Bp1a1Ufr4cDO1lMI4Jjk0Q6bP6gpuSkETykx0rxYSvhzQg4ZwdG536wrJqFg0GaMMMfXJlSIeBh0r53JKdO6+6/km6NM1JYA8jFgychcjGcay6DvFDDgNCfSTJClp3sZybNIbWNT692xtrfAL/tLvkmM+WPGdIHIaLLD0OU5jacGmK0GKQwUetfgUG0KHrQkLe5OjN7j71O+VP0EokXMXnF7UkvBFEuXvjFT2ceyGAmuG7NSdtryzFM+oJxhzvS8ybJd8MA/cyDsij0uHnD4dLoQvc4E7Ree3BW5QEAIj0zfp2+dZSpkG1ynDuLVc70jV+eJX3znkvFeTx1nAzEFzeyiKaD3CsU0LZihc2TxaPMKtslWoGKelrGN1cPJsfwpuxRemP2rVcLyldPD8PH0XCT62SmfejaULlVU+zpO2za4huGsByfK8xYeU+tKUJ03leKqFSC0ql/ggakUhbQ+gaID+PI3Smt1AkdzBD/rRQHaNGS1XSAeXLOo4xclv0Bg+6VFm0EStFrMc4K9uSlfje37HPvFh1IOZK6y2vsZE0kr1FgcFl7F1F4WKJeOm6LsfaPWfjvwpcxt+Kd1JoFy+c1ixuqNFpT9K+4fsxp48ww3R7+FSY/7n/vVJFByuMerlKpU0S3Ad3DcoRg8SUs61sHHrIiyCd2LOZjvw4cTQwm00dYZW/M+1BNHluKGWH7bH9tMOmV2EZbRGkdB4kMfRAiZqgR7+E/fa1IWyBA+UROUr2Py4e4ao6WMhqJMwG+s3mMH4FkDfCuckeqje5zrUAlB81rWBIA7rlXui9i2eAIe/jQRlse1kP7mCieLhwFHXD4tGmzjXMdL3TaFP6a/ZlJw3rS70yZnloNcsJx5ABM2vD3qKVomGE6SJ9405a93VNO+tSxIQE0VwP5baf8Vv+9WzExpT4NhHCYs3htDB+2RtiPJXFL8GuS6UhD8Df3D7fzUYcVVU2vjc6avg+ekXV9k15VzJRY4fkOwo16GBMhz18wToI2o4TQ0HMlFOBU/6UBCh2D+2bxy4F9YqYSZvDNE5jhg7gA8yngafc90aA7w==","layer_level":1},{"id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"商户管理API","description":"api-merchant","prompt":"创建商户管理API的详细文档,涵盖商户配置、部署管理和盗单处理等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括商户配置管理、部署信息、盗单规则等接口,提供实际使用示例、错误处理策略和安全考虑。解释商户多租户架构的实现细节,包括商户隔离、配置继承和权限控制策略。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":3,"progress_status":"completed","dependent_files":"api/merchant/,internal/controller/merchant/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:34:16+08:00","raw_data":"WikiEncrypted:BG3lFnKLVTvBR2vGYwCPybGcuuvxRs2CfAl0PFcG7KpCNLgP8WOvFGabZLnsy2GsEox7gQAXhOjRTiMKQFzbYy/K9GotmGX2DI90LPZsAe9sSXhANcWDT9nqO0uGP02OTRTaU91z8NAKkJzcQCy8lC1wHEYEHYcWf2Lx8YWDaX7dmfJr9Py6QmhKrP7IiXXndM58ObteVahcfVS9RkUFhR2ip7tsNTVUDpwvtYtKD1jquWDRzjcmvWx3hCMXwiHOKKnvVJKzJ57Eiv5h6yBL6MA1AVQ8cz4wASjv8ELaAah8GB2VFp7+UuNl0h1Om0WF1CkUQDZ+C1+4LU6Mv5Hj7rRrGCz0Zopyo8fAF+VJBGLijJ+uszi1hpN92Sbtam8Qd5uzNQalK55BPCCDCb281/lA73rAZVZZQbe7RlLv4Zi4xEw+OgQjuu2I1SzSq0+vu5JOZfep9xjXL9ULwBdna1tswOf3w1mpQo19IRcjaROAJHtbKF+hbDSCi7vS038aD100gLwN+uG7ZQfgMRVr1QFURn9cVHuyb26Z9NLxTwGHUHj4tDhqXPa6uUDZBbTMGF9R+Um8Hj5ARPqearUCzBD3vJig5KF1yeLYcrGh+WBpXpyGD2wlqNWsxcppyRjKz88diapNRnTa21zs9oQpSSOsTfAGUTQLpQvsSaV3kLIDV07sCC4k4fKapYgoCCMeJmpNqAPP/6M7D0raWnNf2DOKMQdyWzbfn/upcYP+lX9+X5uEzBZv6YzEBQYfsK1Ah9FjHGValRvXCKHFFSgmxjcfUEHF8vxOHPG4ODKAcjLz0VHQo3Ec/EJE67BXpVP1rEz306Io1vwGLsQc3YF1qdDimMKJCcxgUSnYjJyhtHOHNG17PNQfNwOOf6lLJsEXjn2jR0mO1/3hgpgxXMlv3tQHcv8aFQ5lyjjuXFjies/ZQOnLQ5OWGOYUN2WtrxyMf0OA35tMf9WUgzkIY4uYeqNskZqV7jQcaqB9OTOUmVPO979hfZZemNaew+jBfMu9Ib3NsGds5XeAp+ep4qMyU+NErQiZShZaLfokmfng9Pb/OYBWHCwMOwvb1TVpcoZKxBQKCNSo/8y2YUOQiUrlng==","layer_level":1},{"id":"f6a6925e-fe4d-4480-858a-b25ee0c9c478","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"双因素认证","description":"mfa","prompt":"创建kami_backend双因素认证(MFA)系统的详细文档。全面解释TOTP(基于时间的一次性密码)的实现机制,包括密钥生成、二维码展示和验证码验证流程。描述MFA的启用、禁用和重置功能的实现细节。说明MFA与用户登录流程的集成方式,以及如何在关键操作中强制要求二次验证。提供MFA配置选项和安全策略,包括时间窗口、尝试次数限制和恢复机制。为开发者提供MFA集成指南和用户体验优化建议。","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":3,"progress_status":"completed","dependent_files":"utility/mfa/mfa.go,internal/controller/sysUser/sysUser_v1_totp_set.go,internal/controller/sysUser/sysUser_v1_totp_image_get.go,internal/logic/sys_user/totp.go","gmt_create":"2025-10-08T18:18:35+08:00","gmt_modified":"2025-10-08T18:34:59+08:00","raw_data":"WikiEncrypted:1mQkBhU7zMZB1o4VXQ0tIfCPNGelihAe1OHsrdClRIeqyrooM3s/X6t2e/65cFvRA3wivlmlEYtSHLhr6beRpNTaPYgjZfzEefiNa064drVQuuctg/mfwIsGR35APO/VDcX9ZFkziinBYT5GRdGH5ocOSmcRtk4JQHpWdkRRlQrMDfe7USm4d6Oy1bKF+J5efS6sSNrAkUe893l9uLmJNJNDuX8NQhkyhtfomjEQPi9Tq2PcSrOcevwppvH6NtuSalX5ypD1YIkUl7ZaEU/1zObuuUwph64pUX1VrHBDvkoVgczCFtDgixQzLQFkh/XRJfx8ifGiRBITvz03ll9cPtj4NlDkM/IAiuYfHRgnRQ248qf9Z/zug9sf8V/9kxC5a2c0uDkwN5ZEz9hBXultyzCfA/PLYJioazACT+wyP3ijM01HLzgMCnj7tORPOujRUXAtsibTde5zPgI4Oy3+oHYfDt2DvdaiaYXnnX9yTTFjKiI57aPg/ib/mTwwclY8DJAwdLBeyYDMceMfL8lm+jNCEGmKZ9CIckBZtPvoe6kBU7NwRYKWs7g+u9s8eBXs7AP9tG5j4RzOAWlrCHlKdfGxmluqwa64nimel0aXHugmUxB0Ge7ZclnFH0eP7+8p2tm+kmoMeRTeSJKeipKT2+Hxgjax3jvErOcMx8nV7srzcSx1hEyOVaJdzmiKetumFY7oJmRlw3d7iMbAX5ucyYDBLaKt37QwdApq5oN29uQqZk0j03vcas/2T2gV2G1Ob2jEU+U3MgQhM0ZjcESR6TfqVO5FjNVF10M+EGHnIsbiMD75Vl5inoVYX8CdrQL5r2Tj43GB4IfYDl9xD4dC7AvdBocGwVGsNe/N7DKKbNAiqb2DBsy8fVoqBBR0GfiPID3yImKzC/4ojNba7ZDhr188T7grgn6L0Wq5UF0OWcE3jZliEtTXueK0BaoSomqRtELn4g2fivTK5YW/cJf7OyfQTG5FwHXSIbeUrQlAjkwVcIg3JQ1+kdSylLxeYK6r5TALd0O+JvdCBPqyRIbQ+d6db5NS3SjCVlQJPnqrx5g08XCdGkU4pDyMtxAcCGAXpMG+5zmqMOMTdqJQ3S0myMT9yM3z6eG8PMg9FVk/jA1OcL4EEcHrU+sdjY8TrRM79veEkppNqBl7WquDxxhnybGGchFvshdWwZQjHVlZOvDxCQkBww0RzyvWA5HI/jCd","layer_level":1},{"id":"e7731430-b57c-48b6-b326-56a4297fa5b6","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Kustomize配置管理","description":"kustomize","prompt":"创建kami_backend使用Kustomize进行配置管理的详细文档。深入解析base目录下的基础配置文件,包括kustomization.yaml、deployment.yaml和service.yaml的结构和内容。解释overlays/develop目录下开发环境特定配置的定制化方法。详细说明Kustomize的资源合并、补丁应用和变量替换机制。提供基于Kustomize的多环境(开发、测试、生产)配置管理最佳实践。包含Kustomize与其他部署工具的集成方案。","parent_id":"519aff94-32db-4783-85f1-071d6c314ff3","order":3,"progress_status":"completed","dependent_files":"manifest/deploy\\kustomize/base/kustomization.yaml,manifest/deploy\\kustomize/overlays\\develop/kustomization.yaml,manifest/deploy\\kustomize/base/deployment.yaml,manifest/deploy\\kustomize/base/service.yaml","gmt_create":"2025-10-08T18:18:36+08:00","gmt_modified":"2025-10-08T18:34:17+08:00","raw_data":"WikiEncrypted:WN+mr5UPYRkQAIvPkaSGEMgGA/r6qHO++eNCqp1GOm5Famwo2gREIdrRZbFYAcnVfzuhWGEYNkfqjO12Wdtn6OVY8JsLHupd9bhIih9tudckvDpIpZj4Ki88PM2Oi9v72mz4Hdd04K+K1QMYq4IH9xDjfo8RW242uY5KblUHeNf44iajTypg96u4nFfW7x4bKOUcMWVXoDEDC7J3vi6mGwl5XP1ojo5qwTFE+q/LU4euWP/RJuYV3y7VXwgXNWLnS7DyzXbbgmWexxK1a0cO49xAF+IgBzPUSRwJQDm1x/p2IaVPaKkVxEe7bgdLGaLrjO/d2UAmGlQXxJzTZafLJljR72QxsZvQPDpuTDgtPEClhtk55C76kYSlCtBZO04L5ciAnhrlH7Du0N88puX1lGxLJ4THQP5l8sQt4hvEcMQnbnfC9j9kGpCJKdcoyzPlJ+nbHvge1aEXA1UR/kkti8qNaYRau90WS5hn2y/bMqBKoww0+uG81JNWK3QSHXf8nZ9TOtkial1F6sqRgNNa08N4YuUtrf1Ktjyqb7kyQBzi/dQMasCJsb5lYySDv4eXApg/Kwhpal9B1omiTGg2GVo8lhpxGmUl8BnlWZDBVu0OnjjY0Jh6mlpqomtXjDlRfX49va7iImq4tmiZ12r7EWgsV8W6Pd8aLL0nC3jZOS/5hIcZ+vCU9ihoiQor074hyDtzDUFPRmHzXg1Oht8DYmiaWH5MCHj/kmpJDZrFw66nLe4IU3//RdL+HP3+1UUx2AkW24TKb1iPzflOWY9pvdIpA37B6IjcFJE8Gv+90T20Htw1nkFFQlG0QsNClNVbmhK+Ra9EPzOl3giD2IAzvx+S4oHbefenQqz3KSBNsV8IVoRbi6af9sQKjSjXOuqrmMefgdKvg7F9LJGWIvhxre7RilxpYZR5WGAwAKoa2G4qy1DUwj4OzkD8eH0r5TvowvEuCHHcYUC7gc8Vf0rqX8ZbFO6bUy3pjzRsgeX4YboNgQ/83LYdF/+YQ0Kpno6C6od0MbxPWfWz3pswD1Y8cSOuDHGDkx3pTdA02QFKnupx1wUtTzwTjy4n6B+/kpKURZSdaZf3N3YL9vLaiXkJWC21spdhL0UQyo1qnNih+AkOsbQmT0n3VkQtxOekCvPPAUkvmvi0J9ES87PKNzsU0GQKPyjv6SO2Q8Mgr+6KAeoim/7T7OH+x+1qLz9+T99A04ltlDvuEdmlMIABxVmhTPZXvbQOxruqW838L6JrHQZVE6i2iBOd2BXuFiSoSxNN","layer_level":1},{"id":"7171317b-83f6-4146-8818-b00d88d2b2b2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛卡密管理API","description":"api-card-info-walmart","prompt":"创建沃尔玛卡密管理API的详细文档,涵盖账户管理、订单处理、分组管理等接口。详细说明账户创建、状态检测、订单提交、分组管理等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括沃尔玛账户Cookie批量验证、订单状态重置、账户分组管理等场景。解释沃尔玛卡密特有的账户状态检测机制和分组统计功能,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注沃尔玛平台的账户状态同步频率和API调用限制。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":3,"progress_status":"completed","dependent_files":"api/card_info_walmart/v1/account.go,api/card_info_walmart/v1/order.go,api/card_info_walmart/v1/group.go,internal/controller/card_info_walmart/card_info_walmart_v1_account_create.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go,internal/controller/card_info_walmart/card_info_walmart_v1_order_callback.go,internal/logic/card_redeem_account/operation.go,internal/logic/card_redeem_order/process.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:52:33+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBp9VMQPniJjC7MmBrb6ZdbLGBmfEuxNN9Ju89NloKGS7u9sYWjyr3dXMhm3kDUSOZPZC9/KLRjcFlQhIuYfLO7R3L1hFLamXrba3/G+Nzuj/bA/n0ZCcGJ9Dvu+Nuxym5NVi5sleNwjnsroBcq0g0gN7jqYlqXUpRU78rBE12fWrFZ1r1SGkcQ5G3XsL2baLn0N28+pjVfzwy+BupbPPYcsQJiZ4WhRuSzumI2qBhiQuJwD158bGgEdHMOXShVwCItaG3UMtNncIIQ2xZfu4QBG5haVlAYHLXLodz2eXh2KTAH+LDtNmL+lnjDSC+PcuOs4m0eNaH40XLWCr8wm/2xoHW8syTo8k71o9BL5tjPbkAWBdEqGUX+MSvYAqSImwkr8zV+bwlZB3Nn8u34UNS2r7G9nWjj0PAJDbIFdI75aDMbE7PL4k9rbqrUMnYsE+Zkv3t5kw4SgVl7kpaBujJTYYMAPSDwxci+a5k+bOzCBigKeT6/833XPzDZUhubutA+gAzsbuzfe0Bp717p/RGgii242yhpRT7FP9KBT55tplJfmyjrA36i2xNCzHUhmmJ7YrjcW+8X1Xub8JqcOtwch7kUcBA+lcela+Lp2fvDYA8C5OtkULqkus+CLNSvQiOmPuwb/FoxBv9zNyqoM/1hUAmKArkIGgcApFbz9NXzgpztrL8N3/vqTfZUCBIPXc+xNcKfucg5073b2evauSihZKEYGedMWHOplNMgmA6HU/ft01XhjNFzf/PDpj5rZBlSHF0eLx+QtVif7X0NuMVUpZlBm/Sc7z4eAM6s3LMQHu7plPbUmPvo/32b3UJwYbmE4dbfO1lDrfcHub8DtESVk7Hhcf3faojPEucgecblz3VioJ5WZJUE4qMNmKn3zIDTZ46pg985NGUdnntnViNlkLBz6ygGygmeKaevxHa2Oa4/85hNG913mc4XOv1RdZ2AcmqUy8DXYPv80lSkaYr6BjFW+VBDH5xqmUI77J12dlCHzfHYq0kDDUj/JXk5CKaUg2bvQGs2Dz+26gCfJb/4i7Ypi8lM1MScG0Fwezl99C/DaxBJ4zZ/xxTn5giHLPHJdqqs64z5gnRs1rGd9d8KDE2GYy5Rymp7U6khgtMMdspybPgYuSu9aU3nPBFpk0WFm/V+6UOWdxyBqncJvDQGvJ0SoKZo0FcV6lvtsrMfF/FuiGEYor4goIcRNvFgBiOcW6z4dhjdUYfrOrDWA/GV+uhvca+HPt7kOg4kWyHlgPDfxLqotFw1cImhvx2+yfYg7c8WiQ7UXMA/3zQuTvWgM0su3coR5fVgIQ/nLjbMO1htzBmHY5bB+3qCo7cfXmQeG4VKLx9nS1x6FEn9cd3vF1fYkftJ1yDINMXmFYM6hcXTo3F74IcLBnZ4RSUrYHIus31uTllKogCJuHbm3vBsJqXxYmc9qQSWxgojRPXyY1HOh4vcM2KyvBPM7cIPXxuM+peTUEFxq4kSCDM6fz0s91MLxiRy9O0jnVhHe09SQ6ZA1T0pl0m45y8bx8FHJWBG8XHsi3LgE3aojHYr4yOfFjLUCbogu3SrQwuQB3ec1+2lRtFrjXKZR+KJDHFbtSg8z0ZeMzLY8HIXtvDLETZeN+n7LU6tuRkCoSgVSoaDsWzBxg4cRcsesVzLbUVZ3mOCO6LKk5UHN9VwA4NuPM0GMImGM0JbzDddtEIp5AWn82LWho1gNrTmRb5j4VdNb++5JXh2fs4dHPY4VifkewjiM=","layer_level":2},{"id":"6c7962c8-8824-47d8-b89c-e12e2ab0e54c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"沃尔玛平台集成","description":"walmart-integration","prompt":"创建沃尔玛平台集成的详细文档。重点说明kami_backend如何通过redeem/walmart包集成沃尔玛API,包括沃尔玛账户管理、卡密兑换、订单处理等功能的实现机制。详细解释沃尔玛客户端的认证方式、API调用模式、分组管理策略和错误处理机制。提供具体的代码示例,展示如何调用沃尔玛的账户创建、卡密兑换、订单查询等核心功能。文档应包含沃尔玛API的配置参数说明、请求/响应数据结构、分组管理接口、状态码含义和性能优化建议。解释集成过程中的技术决策,如为何采用分组策略、批量处理机制和状态轮询方案。提供常见集成问题的故障排除指南,如分组管理冲突、账户状态不一致、兑换速率限制等解决方案。","parent_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","order":3,"progress_status":"completed","dependent_files":"utility/integration/redeem/walmart/api.go,utility/integration/redeem/walmart/service.go,utility/integration/redeem/walmart/models.go,internal/logic/card_redeem_account/strategy.go,internal/controller/card_info_walmart/card_info_walmart_v1_submit.go","gmt_create":"2025-10-08T18:19:44+08:00","gmt_modified":"2025-10-08T18:52:19+08:00","raw_data":"WikiEncrypted:OzcNx2L0Mri06+ni3EZYPtfJLNsyrYI82HyHl2Uze3V6HVRrHnrR/zAu9X4/MF8+wiRjtDmvfbBQUsMyVrZLoVe07Fw2ndFvLNrct2Aj6eGECUBCYp7R61S3B4Y+hvV9Q4JWZJ9VXmj7S7AzIdGyDwtgTPN12QeXWddNScmrLGJR+i4xUkmJYb0gH1tqkMMgIJOkBgS0kp4W35of8tYiqPg1AEsY7UQtWisafG/Tcf3nKIksjzWfa8IFwbzk7ONbiFYEsuL2DuEdi6Qb8Dj6elJkBs8UohFPMZ6P6GhL/xD6qPXAjKccW5g6PGPbGuAQeDUk/KDWsreIMp517iRJ6KwG9uWo4w9Pv1JQAbXz1VO61jK7xLF1g0yuqwfGKNSXgu7RspOz/GzOJJJyim3elcYnwPxeEalrwg7MHpLI9axAT0Rpw3ucJGe162x49x8UpXh3dMwbv5onPNGZMJGSlkA1r0Zxt0squJVI1DcRvThVo8LqWfb/DpT/cnMS9o5etN2aGljW4pcst8YmHMz26NixB4J1qCcujBX5zq3gO3j4LdVwUft/TY0UUgk8+GWPT7ScRIscW2fQ4ZqkPD7b+8scY3Jyj8zj5cwxsuPj+CoApFOM7E+2vMEqJMgk5FOiR3ifpe1Wi5tUY9Oxi5gO8BZkY2kBDf4Wsi+O0LO8FMwRYX+mRC+vurUDehJS/ZE9oF0D9LN7EbFP1DT3H9meuOfxLgweGLEyEAvl1YOP+Wmx0bI3tS03IG00iub+slBIkaIw/icokP8iscEhH8R7yJIypFs6JABPer7FyFe5ReA+NgjpOMO4i9uU0ikaHPTnrx3hweE9+73c+fEMNYtmAWXQTnVtKoD3GNFIbFbrTEasYnt7LHcUTeQ8+pE3nNcLpnYgtAKF2GPMZxji121Otiuo3NNhn0xuPYl0exIBH0/BHf9SrM/Fl1K1MvjWefGpuG+u+kwYx8Ln4tJGFjlovXNBue04DRpSSSweVDkyRZ09evR1UdPNbw0eUXqMBE6WR1LR+xI7AdjMhQNlEIfsGUQkTAKIl7OdqiXWko+aOzb0NwMXmZWW45HrNvKqKCqAD9vf1rGQCR62IgIlRXHNv8hJvYELm5qMX0dQgNe/QMhPAE9eRF27Vf2rgFRXeF/lrWrU4/uCUQnWCWxot2ByhBqsbzkGDCtU8mbw6ZJafAgaUvTjJO9PlWtRMwmbQvDCrMdu0zfX3Jstvo7M5qQh5szfZHOmWYdhfBLhCgt+ES9SM8KCT+W38tpypaFDsyvVYGb+kW5Chaka+quKwil7m9+U/Vm3hd7IrZ6zSFk36cCDg1h9i1QXf1RVWZoI5ou4Uqc4NJUy9I+EknWCnKtwc/qZonk59yISaTk5RWZx/PMu2RgllCz6dpufR4Wd154rdJiCw0aKbSdvG6o2gpnFaL4RF2YiEZChOg9NLuFgImpiYt0c7ND4vj8MxGflwX09pWKJnVHxNX7eCbdkC9rUX82bD90fgosEcQ+lEYtUY2/QVbGyDpNHAFUPUT2RYVjWysoqM8BKAawuBKw44ADOeZMgQ7SbsUKPzMet0Anyai0PUBDKB0JfXPnAxjIaQN6CDIc8Cg/ZHQySooABrL5cf8O35gqIdYMvBd9q4dgmSBwITyTOxQyrin2MVbfSKYSrerIPUP+PtOBz4uk7ccLtZcwAyhsJPqvMNVW4z0Dpy2t6idwrzuY+4+wKe+iLAaJ4OM3yubgDwvO2CT7+33DAzKqCrRQY8HsA00Qmdu3bM6k=","layer_level":2},{"id":"f7e484b5-92f1-43b5-8bf5-9cd33a035658","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"设备ID隐私保护","description":"device-id-privacy","prompt":"创建kami_backend设备ID隐私保护的详细文档。深入阐述设备ID的加密存储方案,包括AES-ECB、MD5等加密算法的应用场景和实现方式。详细说明设备ID的脱敏处理、匿名化技术和数据最小化原则的实施方法。解释隐私数据的访问控制策略和审计日志机制。提供符合GDPR等隐私法规的合规性实现方案。包含数据泄露的应急响应预案。","parent_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","order":3,"progress_status":"completed","dependent_files":"internal/logic/restriction/device_id_record.go,utility/verify/aes_ecb.go,utility/verify/md5.go","gmt_create":"2025-10-08T18:20:00+08:00","gmt_modified":"2025-10-08T19:05:48+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvI31XMJ25/L+57ZIBwtcM5REl4fdp7GotkDn/eZBYuqu0ocnWyJMPttEZL2wffxtzrGN4Ui+cCTKiBWUAo/YRtlwF0BHrV178pSyDk02tHmtG5z0OE3VwCYiJAdRPQan4N5o+RFMluEyZnSqhiMHlih/kRM+hUbdobEMOB8KEMOuGBsv1+stUGRqQp/R+OuGBcQ6wh0+z+YLolv1UKhmH6UC3FEZhPTSTvLxcpYf6/vCfUJS0zOrHyITk4yG07g/Y3QV6o+STvgQTbZ/4zfY3fQbayuef67C4oGqkMILUajosDtVQmhIM9zAaG5H7BVxzBKU8EVyco3rHWCjrHJhCGAqVuz0eu/PIrTAwib9TMNCzC6WAsIZ83KJancA5x1IL3mpFzYPs14z8bghK+/yXtTc4jVGUTsmUvRgt/Yy49S+PjswW2fOlG9BsQV6ztPfjhifouB3UQkAwx6efk3f425Rv8cntFg6hJ9DyVXcYEbQVixu8LBhSoqvm0DCJPPffQ7ZDVbA9jAtVYbvgUUP3SvX4nVW4KfZeLG9YZ7Zd8IYYGYL1FxlTYFSA6m1377dSYaNf0aQA6fziWmKxi8r3iAAEg61ULS3H1pURSRFOBwyDfEvLG16/ztt3NqiMxJwgBv0POoSVRSQ4M0kUivWxi9Jq0VHWdQ/ZKqwev4OcVPqFnDL6O8i01Phw3IqdbK5q1LnCsi5Qgxm+t9H/wmEi6TcUJcXx7r8lP6KY5LLA7qeq2jb351tTLZ3vdwNOauB0hobuExwq0nlPfrSlZxWwl5rhX4iRD+kFFZK4iYXK+Sdqi2wUxIZDDrtbK1HEau3mmrvVrso1VXwZIe+w0Xj1y1iPqAr1Xq/8v6/WejcGriMp7ciotcoeHcOy3ffTSoV6lnAlTlZQ8EGETczBAGi96ReFFLjbsaxqqvtOmuYR1WV2ohPO6DkUKh3GhGUNNpuIqUpN09dkl32ETskx1sUbTF9VkP0fvDido0h1Me/EgC2","layer_level":3},{"id":"e5c8c7c7-0135-416c-a55a-80655940b9c4","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密回调机制","description":"api-card-info-tmall-callback","prompt":"创建天猫卡密回调机制的详细文档,涵盖Agiso回调、订单状态回调等接口。详细说明回调接收、验证、处理等端点的HTTP方法、URL模式、请求/响应模式和安全机制。提供实际使用示例,包括Agiso回调处理、订单状态更新、错误重试等场景。解释天猫平台特有的Agiso回调协议和安全验证机制,提供错误处理策略和安全考虑。文档应包含服务端实现指南和性能优化建议,特别关注回调的幂等性处理和安全性验证。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":3,"progress_status":"completed","dependent_files":"internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_agiso_callback.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_call_back_order_manual.go,internal/logic/card_t_mall_order/callback.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:06:43+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBoebvwpaHfPwY96ZsYHNOSB7YbW4lEnnUYmwTTOYlPJ4vFdOgmYHRlja5WAsIIMSiChhgejNqh98FydD01AfqU7fcD4S8JSlDh3f2l6XDHMsJkUVy1hXRwgZQCn0Ezt9vkeKjs/e6IC3CYyZvT02aI21wgkPUt83TpGKLP187ArVUlAK/TznGcJjC4y7KFkDTVLOGxzn5fvyuCOQecg8p3kMIUh/K5A/GFm+jA+bb6+jwwUhHWS5JnpXJypGX2mX2+YEhLShHZ+qSgJTL++AkYqlCO7jAqme0get6lTfiYjoGBTpCAF26VECJDm0bdEVpHHk2zaeUoIUKBAWL9r0zq0B3tv9iWLODIzmCL4Ewosw+ZhpaZgDNpXxD5/vlbOTtBMz3d8Cdz26chtvCpU+X4Cl4FPDhiJ/t8zHDKjsoWGQd6yWmTAujUeQT2VHEGO0CLznXRmj6phog/bLztxYbcwoknZzQ7YRe1BXgU977CAMyaLJoyYYniWcI889Ml4GWFIwmPvDPSnSU13PRpHgJ6nYWr6LEbFRMzR4N36PLzyTIEbSOLhLXhB6DTi1f5oC6bWAFp+S7bXi4EzOePVFaa1sF3xwhEDpbl3LCUoXb3eYJrfFEmw9ON8TQrRfO0dD0pMCsJslU4/kymto9cNk3wF1AnlZKVdPhgKjA5nISWn4y3qEd0QYqHlkn9x3Tj9p3gQw1T5eK3cjxz73UkeKzhaA7rm47nu5162jt63UFPieRudaKG6Ru74Slq8kWgiOhZeNlkdbJiMcjXRc2sZmDgzerXou+3Obqykaka2KjnItdiGnhETAK+R7XYjpgNZs4xh8JG4buz4qA3o33fFpkJ4X21y22PfMdINjUWhM7lKlDHNGWGTKN2Fo11R6gBqmNKHuV2dwb29TQvh7rM1MbVaCQfRUx4kCXIagpJuumDlgQJD3Q0Qjrja8QDN37QrwzFObq/UkW2YRIJQvgN0CVJQziPS9kkK1qZ/wKy89VuCrrZ7vOb8Cu9P+vXdXkZHbWCmpEDxNj8/6H5LMKhjjbs6rfF/sI7wQpscsl58UgmG6dNNd0z9JClD/IK7T1tnQYcI0AxI+TiUiA5omRw2OAxAiT9vVATsG/o7mh1tRzHFX+mve+Eaubn12x4txqcvHN8fTp5qf7dUlhox9Fu+9C1d/Y+7ua7/KC8xdSRT1WLy1JCBXEDrCeNt7QcKc/V99jFxEmybhld5sQrweYYjqNBqGNuFW1KMzjLSzkCvs7qunv5akWJgCnq5vRPqVo9YXdPH8Olxatyx3T+IR4SHo2QHov7891HAm9HqPoPQIeCmPJLkaWQAK1LrAHKeV6DrsTccJatqOd479X+bmA3H0lf4=","layer_level":3},{"id":"f72acdfa-67dd-4c2f-8c3f-17f119b4be62","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"部署自动化","description":"docker_compose_deployment_automation","prompt":"创建Docker Compose部署自动化脚本文档。深入分析install.sh、install-test.sh和install-one.sh脚本的功能和执行流程。解释这些脚本如何自动化执行docker-compose up命令,处理前置条件检查、环境准备、服务启动和状态验证。对比不同安装脚本的适用场景,包括完整部署、测试环境部署和单节点部署。提供脚本参数说明、错误处理机制和日志输出格式。展示如何扩展这些脚本以支持自定义部署需求。","parent_id":"58118687-a7d8-4b0d-b788-36481cba182d","order":3,"progress_status":"completed","dependent_files":"manifest/docker/install.sh,manifest/docker/install-test.sh,manifest/docker/install-one.sh","gmt_create":"2025-10-08T18:20:37+08:00","gmt_modified":"2025-10-08T19:06:32+08:00","raw_data":"WikiEncrypted:h7ADvj4WLJHyulzCl+z7kJNHi1rj8bPlcMDc2oqYiBBB9d9qOfkyH8LrF6EG2Q+eM1G861Cke2aeXMWBKIHmIfk8qnnXIkNGF44BMoK2xo8tqhB2Q3qwmlBoetUgkgwa2T78PgfgYO/dn1F/QxZfSL6FtNPIV3kx00w1lLb8+ZJL7vsA4eLT2ieTW/24xeDu805exuttMjC7Yw6NbHRb/Yj5XmzzXj5utTiAt1HG5pZszLt4xGVf6C6H6T6gXZ/9gpTCrrqOWsc+GsQFZnb1yAb7xXQPbLZf+uGGBOO3NLzB9uhH7uce9XgxyYawq2zqct6U4uNmE1fvKT8a/tvt/mllajWpBJ8Kum3N94MSOq7kNwzorrV+uUC21z4LFx4Dy8KPQPJU70I3IxfnXBX5Z4/0XpDkmU7+GjswBDAb0nDk5mveoEDxbJGWH8A24htH7LnKqRBGuX+0pVWDGQd5kP7TC2dIJ86FgVI6HI2PzrWPSg3OiW7XbV7wCVGxxXr7jgK3i/BSZZCU7B86R+eBemj+GkGqBBirtEslxAchSPxOlLCMmZfKn3xpMyPRGk+qyvqBYuteJKtgsMbn6vISowhit3nU8hRVbpfmBAaaOIewKafx5OOEr450ugNwsizm2IGHshwcf3UDHN8DlBkz4rBjHWifKKKHzwejgZaLIEdWJJMMSWB6FNeorJ1Uc43uwvthBQOiOzAyqdtVs9OJMydzNMDXCyQr2fEtrJttKfXRM4scFCvf4ph78vqqzZ7zsLq+ZSwi9pcudBdRTpJToQRHDOqVq06TBNHJ47wYvo89b1vcWoGSLtwgomkrT3QuYlwpaSRU0mQ//N5E01Lq/AI5MKJMgEhcY4A7mpOaT1Zob60pyt62uYewFQZzmSjptDaOjZplIb37U7FQbHDSzLSqwfV+4PZ0CTq+yzraNK/CBfr4zDdSYxbRUAtOhoHPFRPeZE1qKrPrn/Dn4D+1aAUODb4ov+GlHyHLjnfH5V6Kj0StrTEbu6fIqXO7U8zJvtxpjo5vv7B/IfS3Yy6G46CLLtq5wTCA673BvZNc3fgbs8olWBDFQkWS7TZgjy2gz132pzOB/SpvY1pJq5RMon/iRS7G84tDq7nSwtrSuyFMMjYohF+4CyvFj1AQCwLo1bbore1aDHq51xbJqAG0EX/1ybieglEHKrOho6z9VQo=","layer_level":3},{"id":"8e78cb1a-5de9-4638-b6af-8323a944817a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Integration","description":"camel-oil-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:22:20.705906+08:00","gmt_modified":"2025-11-18T17:23:20.217108+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilM3prdohIxGvfldrt0m5l9buFyY1Rgv31PdU12Df4Cva5YIhwinL4+uMn/5s8W+pu2KSMZWdfqLqPu2pBvwAAAz5bwov+d7FqDg4ybmM1onn4HYQ6h2MGa0qg4gLrj5sWzmV3XKBLK0JABtavvWMRiLxNMmrXNs2RdtxZRHovtSWW","layer_level":1},{"id":"07cb49ec-6a3b-473f-9fbc-7470be3dd4c7","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Apple Integration","description":"apple-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:23:20.269615+08:00","gmt_modified":"2025-11-18T17:25:02.580331+08:00","raw_data":"WikiEncrypted:2nRH8ssstMtuaP1BkPwTuVk71Q0j1Vw/t5lTPcPUhYm1q7rgKKHxVUzzZRLKddLpzWjtHbbURUd6Jun/6a7FBUS95iIDSC/fLdtirjleV+6YnVbw8WvCGtFd2C0G1esVg3NZpyZwCC5R3wXvsMqQtyVAlYtCoG6QnKvBM5mIbcmXTJ1WsUVyystxegEv+CZf","layer_level":1},{"id":"7db12e70-0f35-4efa-924d-3161cf2cfd56","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Kami Gateway Integration","description":"kami-gateway-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":3,"progress_status":"completed","gmt_create":"2025-11-18T17:26:02.221997+08:00","gmt_modified":"2025-11-18T17:27:31.264796+08:00","raw_data":"WikiEncrypted:t2ShZv2+RRvxKlpejZjnQzTBw5KAsf0cRLo4WHIzQSon91nwusS/iDRsBUiIPo+pkB00FCV0TF5bJqUMWhVVZEJIkmnYxurzCaKVPtrGlUu3iVChaQfcihrMsym8kyCfcVzlhRHmD7+yGs6O0NAx58Re0vBViFkjFbmgmkxmF0gKajrTw67uPeK5CfHPyxh9","layer_level":1},{"id":"201b5004-c469-41f6-a407-c98892822b49","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"业务逻辑层架构","description":"business-logic","prompt":"创建kami_backend业务逻辑层的架构文档。描述高阶设计、架构模式和系统边界。详细说明controller、service和logic各层的职责划分和交互模式。解释核心业务流程,如卡密充值流程、订单处理流程和账户管理流程。记录组件间的交互、数据流和集成模式。阐述关键的技术决策、权衡取舍和约束条件。包括基础设施要求、可扩展性考虑和部署拓扑。提供系统上下文图和组件分解图。解决安全性、监控和灾难恢复等横切关注点。详细说明技术栈、第三方依赖及其版本兼容性。","order":4,"progress_status":"completed","dependent_files":"internal/logic/,internal/service/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:30+08:00","raw_data":"WikiEncrypted:nTJcmZGR4n7nsIYUWzxCEBy0i487lDHI27zzkO8s4GsVEQVKXcBFabpKr2XQ6XJKtlHqbrE9PVqIMhgcfiOvMabk8TbZAsCaWeJzv2ccsAsgyCftb/dB0tmYzG+Xik0ZhR3UW+81zieL8Swo8dtHFHP/c9V/DChKEHqlNLt/LR+LdHQVeMJt8/4tYX7Iko0b2FfNPdbFFEDYQMdQ0vqLHb4uA6e5pDDVP/pbzgI7v4vovEwZVCBhgJwUhQNqhzrKC713fo+znzpLhb0QOOU+J6KBBVBHdePw5GXI4Glzq0YMFNDk0/s9wM7hOrtqrm0NAAWfXUBwxUBhSEMV6PGimLxIkDpIHcwWR7VIdiWxU2TUdPt+tMYL5Qw+ko0xAWAvsaWJG/clR3TJuaNaxMPMaJjVkyTsWdJF3Uf44Br8oAmuaOUtHrFXFNTHnCFVnhLjX52H48ibArhi11KOqoMywYi0Um1gSvxkRkyRfskLrif2l+C6XzmPgGCONPIBhnoMenfw4JEkcUCPK4V8MzAs6kHdEPjhXO0eP7NTViSG2iLZjmxvySpPhXUnXo5sNgosJv7jjZHrN6ZSRcESQlbAR/lVpZdARFMnJeqGSZ6/BX+dwok6Ys+Ac+E8PVVgBJ6EBLHL/i/8LmhYYfgQebhhrQUTbWb5LpQ6IVHVvL9uPVfO3hq1iUqvZJamUbr1zwky/9gOtOKXEn0uQia6fPE6Dt3Vf/oeECSJgJGtBL3vovteGRYsVpL0gD1HzN1ONJ6+kOmb/3xP8QPIX2xqLNWWDznrjiFMfEzrYtwGir+o9YtwnrHAyrJcLWnD7az7h8rqzeKjNkA4f+8NykxjDPBfoJExkS8VBhcLdSaayXqTzY/H9fp2zSc0Xm3wOMgTezgq+0TRkNGw66dr3zlEzYvcITtn/eTfqBI+PtHsUTPKgBT1uoEE4p3thhe8YY0Ip0WXduO/Aa5HSeM65Lj4jBV0GWwUgMHW10C/FsXZH8NKkOBiEdiyGeA23AiqtBSzAxZBPrD+CPYoH7wuzHuTQL8BjhTsz1pgHQA877ThZ9Sdcras/xe9VywZEdJcihcSeWFXCRQvdJjdO9V2ZAOAiu+jsvI3F6yiASgTYm8Q1riiEHCIisg96Ex+YV4Iw13sHLmgcuWi4fNpQxBVhg5uCV0zstSpB8oEgaTlLyzS3LynZyBV8O399OT0NyXUVz5pl6OS/fUlYY2BUIeBGbW/eRetlPdDxGf365lVgQIY5qTHGetY8bpSVzHcBYg44JuR5u6c"},{"id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统认证逻辑","description":"system-auth-logic","prompt":"创建kami_backend系统认证业务逻辑的详细文档。全面描述基于Casbin的RBAC权限控制系统的实现。详细说明用户角色、权限规则和菜单权限的管理流程。阐述TOTP双因素认证的集成方式和安全机制。解释用户登录、登出和会话管理的实现细节。提供权限验证中间件的工作原理和使用方法。包含权限配置的最佳实践和安全审计建议。","parent_id":"201b5004-c469-41f6-a407-c98892822b49","order":4,"progress_status":"completed","dependent_files":"internal/logic/sys_auth/,internal/logic/sys_user/,internal/service/sys_auth.go,internal/service/sys_user.go","gmt_create":"2025-10-08T18:18:19+08:00","gmt_modified":"2025-10-08T18:35:57+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjJxill0Dm7pr1ti6WpojZlBntM5mCZ3svI9SgZ2utFjCFZC5Z+FEI6aOz5Gj4A3aFbuhD2XPZL1bwaqLneqa1L4WLh4KTENL19+xdVNs4RhZjD6ZJ7n1M9pktzRYdEXoPx+WtK62h4BKAZ0CxmcKe+iDWgkzPAQdKVBpjhDesmHLcMHBH7+qeVJ7Z2lQF9Tg9AnP2CTNteWT27HOIOr0I3SaYM6k65n3Z0vySmltobX5INahUuaU18V7hzjdbCpc9e5UHoC79ydglrCuB6262LMQvfH/HvilWFq4jVC5YJbDO8PJk1Gfq54roM0WSjUbhYxrGp/UbDq6+C5hqExt5Y061mJXxmclsJBxX6zoO1P8x1PcEQiNH5J9mCgXblQrg3YrhaFIyyjoVfVVRHz+uT2SeSswzwmEIOZ86/OdiSf5Ng+xT7V/fkPevbgJVr3RkKckk2n5GJwGVJ2uBXK6ZMZor8iMBjD7CDIrTCGT4m/YSesNCfTYm/qJSandEHXkNe5yNg70qSJ2+S5+V4yIIxQPG2D5dIt6cKC0ppsF0YpybkQ3ONoINWaT4cov9e/FZssbGYOztwGx2gb0RNdxoMWQx2d6tt8NEgRvP+bidzO/SDBouGelKXOmdJM1cQ84ofFHTLPNxb4HbzIgPPLAOlNQyG7wXIrR+qRJWn8+b3laIVEpguIhUuWU7jM+tD3vuePgZnnuJV+d/zI4U0Ot3Z6Qa7t8993FQxzdKPU33UYh5JLxnLI7JwzMkncaT8Y4yLk2QLb3GqxdlUfxuk4byEiRjK8QdgorcuF99pGDvJ/VCV7m3Yc51cF87OMVYx3/fpuwfTPdnTOKP7hAdcvghET4DdWsBchrPEE+3FNLBfpemPgvq6xcqnVujyE8zRwP9JFlEuBg7aZggJMXhGx4HI4xlKTKIMStOyBJa3O9u1VsMRFpdsj0ubLd3wJx4cgxon8lCNOZeQ5YTQGBbkl9/AfzC7Y6b4mOf3P7otMfSeyaDLBHqJJGNHZ63/k3NmTSk0YPvPM+bFukpsWqU1417uUFwYSb20epfNpwYYt6O+svxIDRurYoRkjNu9OsbUIP6Q==","layer_level":1},{"id":"c31af7ce-10ef-44f2-9bb6-b8772f1bc957","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统配置数据模型","description":"system-data-model","prompt":"创建kami_backend系统配置数据模型的全面文档。详细说明v_1_sys_config_dict实体的所有字段定义、数据类型和业务含义,包括配置键、值、类型、描述等关键属性。解释主键id、唯一索引config_key的定义。阐述系统配置数据的验证规则和业务规则,如配置项分类、权限控制等。提供系统配置数据表的模式图和典型配置示例。记录系统配置数据的访问模式、缓存策略(如全量配置缓存)和性能考虑因素。说明配置数据生命周期、动态更新机制、保留策略和版本管理。详细描述GoFrame ORM框架如何将系统配置数据模型映射到Go结构体,以及DAO层如何实现配置数据的高效读取和原子更新操作。同时涵盖权限规则、角色等系统管理相关数据模型。","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":4,"progress_status":"completed","dependent_files":"internal/model/entity/v_1_sys_config_dict.go,internal/model/do/v_1_sys_config_dict.go,internal/dao/v_1_sys_config_dict.go,internal/model/entity/v_1_sys_auth_rule.go,internal/model/entity/v_1_sys_role.go,internal/model/sys_config_dict.go,internal/model/sys_auth_rule.go,internal/model/sys_role.go","gmt_create":"2025-10-08T18:18:21+08:00","gmt_modified":"2025-10-08T18:35:37+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjHo3Cfllvrq9dj+VS2LjLU+XipU5iS8bjftNtXgNkjAUuhoBjsDPl9BjrKUtcrFkS+Ysf07QELqCRkUaE9W1TE2R7c8Pd1omOAa/LrhdmLcUIIP96HDPywGNUVLCkClEpXPVZjr5yV4lRUGn6Vd4AT2Kz1qx9Z60YINVebiHZjal1ZSSIEFUhg9ahC91CkdhbkfPsFPYo7zMmbdYpPuVWMr6ap0pycHPC2HK/qMDmiRrncLGuHUk1wvb1uo+ICF2w4nK1LEbdLGMdBnwT4IJT1/VKtcxo2/pYRnXc03fs9K/Ygz4/XEi/NkXdxC/VqdAyv4d1CfzIzJSvNlEQ7q29GzcswCh1BY0PcFBwO8cpevtwMseZAGbVXoYQm4DvJWiuPzb08JC731Ube7hPRcijJDUEI6FzXVqcu7qngW0DX7qWoZkFKtveIpW9OxNAeMloxr/k1e3Q2+eIsAF5AUw2OGwbpBtaGsu3uOQreqGvzlwo++/8n8bml/QCk5HQT2Y5qhWAOEY2IvCK1OMB1ckrWn32rwWkPhSQn0+oWqtWFkj1D+Y2FNRZcZCijgId6mwgVLXOClH97C7v4Hm/CWvUvxwcreNuYjJKSlQ0GFwWBBvXhrlRSHF5zBKqux7NwYZsipPHjNF08UAhCOLm18HxVfpYB+awS2Axa3d3fK79m/oZfPUfyNc82Y8bPFwNUP5/hMSr/4qU+EqzK6RHaQ8tbdTzzfDXEwUCUK/BwE4Mjl9vdTP1mfkfjvfb3SokJ+zqi63WemXEQnH7NGSRFNxNdGMFRNKzDmmrApwYZXjztqqdDxgssTXGg/rhy1dSGYaS6H+ToTGp8c9/MH6lKhx8ZNdTBMTdbG8CibYcK9suxALPynvOq1UqP6oqOXPpfxfgOce1FzA4Rrzq9nTHIQMnw4QCdV9/126aBKVxCPa3jLY8mBAIOH0B4YZhqyBo83RfL/4vY8G3VkWs5Zo2NJu20B/7M5Qdyw2ZtirWKJHPE8v0rDmPA6/9DKI4Lv3enLKeIhMIAqZebPwwk4Zh2wA6oHlk2esnHqVw2Z/5BadsNJFgBakyMMnkrUxaesU/frMcRJ1jLsN8YHKOATLE4F/RDg0ZwxOSu6zy1LLm2k6wpQWgegMovr8kg0Riq+YHAdz5ge2gTtD2DOGpTfbHWVQlwXDER72hgcmSJSy81lE/TLcsT4ONAPXTLkDAXTTJOv3gVnQeYvISQ8Cvg/eqncCsIKeDVWC0QSg6cUAK0GzhCSXJw5GVzKMgyzelmKtqiI/jX/Q7V3CVMGP5V56R4wC4eVlP4Au2POc5fEZ7FY0l0x6nrL0H80Sk4o2reootBU5tBzcE+u5f7MhAfetwZjOAzh36C9gdNBv/Ifrz4QMZRDaVmNunuMpHmL1QXPGLjflQ3YHGIWlc19NJ+isI17zfse6YSGGbkSmo7ZZjYkvhWzpUIqTxaqRNav/ebsmWVlxtpJZiplO2HMkHY6acUOBnYJY6HbyUv0FGySPMvwY4nPGH07tRkC1AZV3qw8LLsbJn8DVFeJrKAwJctcsn5xqfaET5PF/NPt72tuGx/6k/RrpkxcR4lelfXNeV9htOdisaPesSw4Pr7lvTDzSMpA0ed6iRgFptBW51AhCUXUP+bK9e+gHK+a48LCXouUt4FBb8gMCDgozFYPIcEQto55NRVPlyQg64fORyVH190r4M8KpnxUqe4GDrywDZsH+6MkikYbcwibrb04bdsPHvRd6xSN0OZuGzEo1TA9sL7Se0hxVHB6yvpgFJmFisuwHEqIvZkoKgCgNlAkkYri0hOJVS3DyuQ2PKQV/hIHswEOBdcoCwbrq4wjJqa0LN3BrqrSB/9Yutb/OS2vIuHtpzhQxowpYZTlb9L5YATj9+RTo21L5H/qdRyYYhWd2Zk0WStnU8b1MUKbLHRG8qxd9PMi21Ro=","layer_level":1},{"id":"71487087-d57a-431c-af0f-f9ce8536c80b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"风控限制API","description":"api-restriction","prompt":"创建风控限制API的详细文档,涵盖IP限制、地域限制和用户信息收集等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括IP访问控制、省份查询、用户信息收集等接口,提供实际使用示例、错误处理策略和安全考虑。解释风控规则引擎的实现细节,包括规则匹配算法、缓存策略和性能优化方案。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":4,"progress_status":"completed","dependent_files":"api/restriction/,internal/controller/restriction/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:35:55+08:00","raw_data":"WikiEncrypted:C34GewOyK1SlumqKiPsSg/Aj/+xQhog6A4luCmyduH9mLQCMR1txLqnqXtH07QvTvFpjblyIOlgLn8a8ai3D7Ewm7QQOAJqH2lPNcwyVaNI0R5AYYnLv/ppJRFtq4rzXS7bs6R9WuJre+34kpQbKpXoIpVWgwRPZYMpoRIFHyVDRhlKppZX2lYuhs5kJJ8K16v1qjWj9EPaec6JuobLvqnJqXTaspOxb6DYL6t/m3ee8njSnivlA5TBb37QHmL++obh/Kk5h+4xIJSe21L4nnMWNpRdMi7z9OddGgJdQ7cqjcP7zr5ABy4IHsnW3EFVdvfC4nm4/R+qMzBqawYOBP36gHMj/TSuwnGCS8ksNGcXZEP8EyUKFQlgl+jB+M3GefG6k7XcYpWqRoluloNsAXEVElsPfuwmTgyYh5u9u8bX3tLoQ34dZsr+GxKBIlEJ+63G0NlMMECxLCro1+wlTlTWYgRk3mTd6Q/IpJs/8ulLW5Wp37GDVOTkmUAOcljgtKaPqx9SaC3n20GBxh4ADqnjaElyzJQDD0fotl50FyTouwJhWwA7R/eIRnGvLV2TcfAzUFza6PHYAf93AqvaZ42N1PVZ8xCqnUrKUMm0nSk1kszj0ZOdIDaTB2K5Oqdft+dEKlNql3mqK5Me3nm2U9LT1LiR0/nYzGTyPc5i0+rAQH8IuTDjCweeT/XzOOos5gzbbNI2cNK5+zPr5FFweiGme/ZpOI5xUrO6GaApl+nLg1RNWcO/9CLtQ5MhinBOcPcs5EtOSUEf7B46NuVQVA0Ng3iG6lgMtZ/iVfcyuMJrScMVv2LLyTdeKGRtlCn5Nh434nWxxoWacpf0Lp/+ohXJzuadHvVjKZWmqJt6TlrP/AlI3qMbKvISLZKY8b3UCdwJmfGCB1eCKS1rQCLNGKIeRuEhYqXm+8ENWPskUauLGtiafNJrxP3/OUVrYJ+ZnpCC/CmxXAjYKn2517/REXJbpMv49iNGGkvnOfo6tN7DcJVykM1JV4vwRALkz/d3c86mJq4sRWuACN/FXwolQ/jzh/NEYtylpIQFu6vihdAyH4nmm78l9BMlWQqqJ7dPRvqlHFA9pmbti/d7oWwTJHcehGaRHk2wcBAQoibim2Zw=","layer_level":1},{"id":"4a2f1ccb-e858-46e2-b051-4b553c1e2f48","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Ctrip卡密管理API","description":"api-card-info-ctrip","prompt":"创建Ctrip卡密管理API的详细文档,涵盖账户管理、订单处理等接口。详细说明账户创建、充值配置、订单提交等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括Ctrip账户Cookie管理、充值订单提交、订单历史查询等场景。解释Ctrip卡密特有的兑换配置机制和回调处理,提供错误处理策略和安全考虑。文档应包含客户端实现指南和性能优化建议,特别关注Ctrip平台的API调用频率限制和数据加密要求。","parent_id":"0d28da6e-d972-4227-9fc4-ecf26d5c6b2d","order":4,"progress_status":"completed","dependent_files":"api/card_info_c_trip/v1/account.go,api/card_info_c_trip/v1/order.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_account_create.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_submit.go,internal/controller/card_info_c_trip/card_info_c_trip_v1_order_callback.go,internal/logic/card_redeem_account/query.go,internal/logic/card_redeem_order/order.go","gmt_create":"2025-10-08T18:19:17+08:00","gmt_modified":"2025-10-08T18:52:54+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBsi+sn5XqP8JBkcaC5gJFHJK50Ht+k6VsfsVf9W/46ar2nyfG9aPfFuj3OqAvsQ2zOP7QpzVJoUCtwLglIP1GqQDfx2qCBmv9YLB3RMP78a9O9+gzXuyc6BxhwnZvmIessag0UDmHRNFDHWh/c+FW5GBTkZyHeFnwgXxp51yK06aXkjMzyn5eA4CvzR4McCvvmNyaoVacg1P7xKnbquq9Ia9uZgXZeU3u/ggK6JRkZkCVh1Zumh1AkkQGrdlfCed38c0P9WvhTtkOtaTUUgqVgV4kPOHQE7eMtvhRDXeWefnUTHsLeLBkhUnsPQh57JVtL9penKtwtZMS3ZdxKC7mBE3nQcCUFLJYE/e35/lJQB9x5nfbWUa7jPIsOajHYZdkiCN21fYL0V/Q6EPksqkB4+mB69hkPbaNChKgjBxEXViBKw0mCVrIPIm6A/3XUaOmVerm9BMmuw3TjuBiNmedKD7KGcoTVWpcKr3JD4Re10b1RuYSXVFtF3QNJf42tGl4STBHVWLQxdDzzUSzZ9a5V6O8L2nlcWzwNo8t5ea8aypotVTvuXGPCGdOfAj0oMWRzyv3UkWfkvVdqjQGiq/Awvpzm1ehEGWAdHK7Ybq2QiH9KFjzZE/zHCQblXhwJIeHrIxd42fJnxmgtzKtKkKKNLwubmC0ACReXOzkEeq5yqyl+k4DFST4612/ohoShJdbmS515Ktd/p872+kvMkvRdFL1nZyX90FSeEW+NHE2msG57PUE35eBr2HDzOeZ0aKZG8hN1kM5bx216br0hSytYUwrBk1+zBfBAxtFpFOwo9mCX5lR9ZIm3wEDL3IXMIThBbX/zEgayD4CyED7uNP7HETLzga7E2YIbK613r7V+Oo54uFxQeMZY59omb87gcgVD24gyqVYjuQdHbkY3PyT7FWdCZJgHNetaXc441gHpJadv/HvApPekkTG1aALw+qVPjAxTw0WkWMAtkqHmzCchMN6pr2UxFzp0CutbgFkzckVkztczx/MtG62+q82XL5gCUx27bTj2k/pXL7ptnIvS09Kvo4u2HGl2yTmwOX/mk3z74LDJrli3RhwLbTLZLt+9oLIyKYFJGSYgUTt4PZPAfbOt31mm2iaC9zx4TivF45d7eBwjwAxXRGJDA/0FabI+UODLt2C6Yq6FMYgT/PiDqyGnByH1VFg2sflHRsjcBjn1bEhQN8BuPrQczskgR7TIVEfyKuvuJ8D5A77vM0jeNN4ItGIwpekB/dEYYCz3ImYgXEpjtckpM8q9eCIXdL+/sNzWUMVwYXZBRYRly/8cs1ikZzbpYJT/174qCZJz/wVZTCXo1WXL+WdLu4wbkwMe0xX5kysB3MglJt2NEXqQ9PDSXap41Br/jR6Qx/2WX2+yXerLvNXS8uz6duY4F6EgJlTzzzJ0MatuhpTNRKWushr7zk55Lhuk0GQ9V+hIoTgnmGHMfVJr3sMv8H1ugeKslOpRJkKU08CEUoi4C91/YLLqEodWJ0uu2U4CG0qf6xofEmBZFmte09BxNSghJqqhCoITeAbctcbJajy4hgq24=","layer_level":2},{"id":"fd83f8e3-9940-400c-9e6d-de5f5af056a4","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"天猫卡密工作区管理","description":"api-card-info-tmall-workspace","prompt":"创建天猫卡密工作区管理API的详细文档,涵盖数据同步、配置管理、状态监控等接口。详细说明工作区创建、数据同步、状态查询等端点的HTTP方法、URL模式、请求/响应模式和认证机制。提供实际使用示例,包括工作区数据同步、配置更新、状态监控等场景。解释天猫卡密工作区的架构设计和数据隔离机制,提供错误处理策略和安全考虑。文档应包含管理端实现指南和性能优化建议,特别关注大规模数据同步的效率和可靠性。","parent_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","order":4,"progress_status":"completed","dependent_files":"api/card_info_t_mall_game/v1/workspace.go,internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_data_sync.go,internal/logic/card_t_mall_order/workspace.go","gmt_create":"2025-10-08T18:20:23+08:00","gmt_modified":"2025-10-08T19:06:55+08:00","raw_data":"WikiEncrypted:ba9bhCMVYOW3qcsCaDrTBsdm8AkKOxMEeYHksr3yo/imcaxTypW54rkWuc8ok+kKMbSlF2H953r2+WhakNMZcjsjyyB7rKnqmSG2mxBDLCJWe9iaXwfbHFUvq9GbhvS4IjS4kTKCcbQ+sCUikK+7FfwbN1kjwSJYZyajiuvyySsnUbdPIeDE1F3uAgmGyh2uecVNUaDzxxoZQQCTVYlsQu3uXE9x6nf3mJm7bRTUzODojt4smYpecVIV23Xo530zZC4lJoFvu3VihPgS1mBaAyeC0wUq19w2gQv6Yl+IRv0BewRn2X0XuXoQAA/bEQkxyvI/ZnEq7Z3Ht1XjYaVwMYfnrqx3zDJngO9dGCIvutLPeWc26nTjlF9AHVe9CstGMfDsbYz2EYxAgd4TpcoxRbY94++BUXFFXjvkJVwOe4LUP1/dFcNQdJeO4+n04TlG4kCOXbKE9zdsoPSEitnEnB/ZZDfT8EDeJXv76RwkZfFLIPJKLLjbAygECbOMUx388ePp7KJlA9S2mvSAYo3fDT3UMJG4jvW9UObR+sQ0xVOvlYsc1klhStSELVLxScBsf3bT/a4J1aQu+0r7ADJBd0LJF+KDYyddEbPVOq8asO5MCI2xKVFQTSvitDVgEE0j2fUm4VYuzkx+dtP0STq5UsqNoZWJgH9QCcOWMD8OH3e8EZ401QbDJ8DQ4aXuANeMw1FSrJfj1kfo3MSfn+NlO6sq6G2Y25BdnK+4OHQCjGi9l1vEA8sb5coNTeMZMnV255/WW5jxJALdfWfT4cw50URsj1dji1e8B5YKS5tiNF8xsXSMqA1nFFPvaRs853/38eTxl3Bbb2k+wIL0uAegEpzLYl/MIFwWZYD9fv1AaAzvKWLGXoWoiTPlpdvImM5NwgHaGiP8lEt+mTkJ3TRjRInKp22n2TQcx1Mmo5R1ZaD4XEyCJqbQmy0/3Hwa3o1wshqcNGwaeaQVwHZVkij1DzaCIk3gRcxtfka0AJQvPZWEycGiLVBBNQd0ipwSLh/QeQU5Q/GEen5grBuQ9mJzDoPrNqozcgxHSW4NSCeIhkV9ZsykURjNvAnTdgq/4g914hp7dJ3gANT+uBjblNLhqJEhEBT5cmIUSHG9wA9d12q9CUdVLM6KKSs6OCmIr7uJEMtFqt7S/LyYZ3kDmcY70Z1ooUjaXBWPnjpHMMH6jPUl9Rm2ET+HD2jYR2+qCEkZYi+mIkXmagYULy9jBW3toNuMoZu8NCiwo9FwDDom9HYBHWY+WBxPd+c7QCAAHuy1siswdIkMes1uZXen9UsL4ve5wv4IuEY4ExInxqiQCcJ6r9wLjgfv+ZA5D2MqV/rtdKT5gs3J7qSM38Tb1X/s4w==","layer_level":3},{"id":"2b9019cd-02f4-470d-8202-7f5c7bfda871","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Aes Encryption System","description":"aes-encryption-system","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":4,"progress_status":"completed","gmt_create":"2025-11-18T17:19:29.124745+08:00","gmt_modified":"2025-11-18T17:20:52.838599+08:00","raw_data":"WikiEncrypted:y4L1edmh4sBJH82Eb07yqfDm0kK6zW/SjwpLhGndZ67tAT3IOewYTnTbHMTrrP/bLhuVeGLRTpK0Xw5ODtEMgoBxVplNk3afStLdHtqon3CxkIpIx2Q8cgue0Dw0TJmW1Oyj3E4wGfrzAiRkPnvBJjWFAAtMdmIKXKWxPnPs0g75FaMZH3tWWRbloIcygogv","layer_level":1},{"id":"0f5bd67b-d698-4271-8a8b-f64cf051c127","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"User Login Log","description":"user-login-log","parent_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","order":4,"progress_status":"completed","gmt_create":"2025-11-18T17:27:31.321098+08:00","gmt_modified":"2025-11-18T17:28:41.457273+08:00","raw_data":"WikiEncrypted:BOX6ZnW3+L5giC9SFYUX4g4pOcwkiJohFTUkq60ecmgkzh82aE+halo7bpUe8CtZawC4HfH6QaIUwQ+8ENEEKUF+K68XR97yY19107V5i4kJR5Fb17odYgSMi+TVmiCUzRktK5sLl/z6mXk4RNMqqw8RkvlIpcxTG2eg9eFnX2s=","layer_level":1},{"id":"65fcee59-e0a9-4fc4-8532-8b01f7ebb168","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Account Management","description":"camel-oil-account-management","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":4,"progress_status":"completed","gmt_create":"2025-11-21T00:53:14.016938+08:00","gmt_modified":"2025-11-21T00:54:11.176432+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilM5T2yWSlXBKb9/OvNrmJ/4UNNKP6Odc6dx49atwjk2Mny/Ge2ZkdLgtKQXLIQf2jXlhS9pUxLOqtjNct/JEzDjlC6kDP0Z6rOJrmNg83kG3j26PUTWEg6rt3nPFul8BfznX1q8HSEMiIoxIQX0i61ETQmVtLaIZ4zKbm97SOF3cnr2awU6X23QhUNzDDGACNeQ==","layer_level":1},{"id":"684c2c69-b4ae-4c95-ba20-8f4ca733975e","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Pig Integration","description":"pig-integration","parent_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","order":4,"progress_status":"completed","gmt_create":"2025-11-21T00:57:54.574077+08:00","gmt_modified":"2025-11-21T00:59:15.774678+08:00","raw_data":"WikiEncrypted:wwMNR5iUtAU0t5wsYfZnRoMigb0IotVkRAWOCLlGWr0ng6IbLh8Xg6d5EJWublseHCAZsHQ4O/C7r8y3P9MTGwmNpzhXaLKqIrTmqWDc3o7+cuJNiDC3PSWHMFDiMcaq//HuGo7T3wFcZcjsw1yLkPkUNrJDpSZz3uAOALMEE14=","layer_level":1},{"id":"e71856cb-fd63-47f5-8f0b-2dd3d29fba10","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"中间件与拦截器","description":"middleware","prompt":"创建kami_backend中间件和拦截器的详细文档。描述认证中间件(auth.go)如何实现用户身份验证和授权检查,以及错误处理中间件(error_handler.go)如何统一处理和格式化API响应。解释这些中间件在整个请求处理流程中的位置和作用。详细说明中间件的实现细节、配置选项和使用模式。提供实际代码示例,展示中间件如何与控制器层集成。解释中间件如何影响系统安全性和可靠性。为开发者提供创建自定义中间件的指南和最佳实践。","order":5,"progress_status":"completed","dependent_files":"internal/middleware/auth.go,internal/middleware/error_handler.go,internal/controller/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:40+08:00","raw_data":"WikiEncrypted:AqpSPShNE36Xgo6VuqdMl5aF+VgV8aILolR6tO6geQOv4rIik8VRwkyDUsnMruLqtWT2tLSI/ajurej/9aj1sBkNS0BQYdSIE30Piw6rw6EVyMRGtX0LS4U/g7sUZEJ0LUxms93QTwszPabEL85pQnWEkV9dobHUpmkwNdecI63kSSncdIdLjByZ/fGShR44SyDBdhI3Od/uInGR8eDkqB0x+jUKVaOqNzKOBnSG9U6dcEuC+k4ImYV1zLCcDu+BT8QIViHujr1Yv8t31woNkKhqDSfW71jYe4zEIc6GoP1p/wIhUtXRHGklEe0rUln7DnB6uIC7vWx3dbxtLat96jV6WdhhtG4J7WrYvdY8KDXNLmR6+apdp58sz2k7pobYXU4Z3K71AcAEEB3sFXu09lDbNDD9AqcCqAtbaCBlfMtxQp3qSTkne+HFzKvuBSu9SoryUHSdRNcxpf9RgVhICQhxcClfeKyrwHv6Tra9UTD9ICSsV67UNBa7GtowO9ggtQFr3NckIKBDrDrJQkxMnHRGt+EytXt682wzMLLAaWBuJRpF49XyLbpNGyAMBewSNTFnbvaoDkdEO3xYyyqBGs1SxQdvTF/uqHDwQTqplVOZSl3ZEm7A2BnwOl/s5fpPykdy2yllDvjckxI3QCY2cDZGoLv4+pcAb5qq46Rp/Q17ja8msX3bucmtjP8xpK6MakQeUU+HxzdCfZLjMZKUquBjEx4vlJsxQFf9MrtNoPHeAKKUM2jb058WRpc2Djm8JPSo4DUqSpG43b5XWQPNwAPQVSSJ6f/ozjuCFjZoW6y6oXA1w7bSoxdQ+olL6pymruYakChFtivBdpom3lmVC0n0nNsNOMOk6YJtbZJUSS/3Z8/AYig/O2OujPVzCqIRsV7qZpT3QmZJuCHsKnQwl9V+EKR/k9q2ndmn5fwH3wRT7MwXGrFSJqOCsm9WlNhRZwV2d6BoOnAV7MioIsYpb2PpT/nEqPueKEsBc2KX643vuMaLCTkqD7kdtz4aAoRuyNbMeKCS1hArb8WTVRbBMMSMeIGSogxm9p4Ey5HAHYVSTCFgwdkAH3jQi+b6lJzRlH0x7/oIUhS570RCBmdROsIbhJtzKt9kNPbAbibfQhcx+ReAOS3Osr4gqD8sHtjVTHcjyqptb3EIuOFeIzcDew0wFcvYt526+LLQUqS3HGM="},{"id":"d7caf3d0-b00a-4bf4-8045-ea54b457c2a2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"系统监控API","description":"api-monitor","prompt":"创建系统监控API的详细文档,涵盖健康检查和系统状态监控等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括健康检查接口,提供实际使用示例、错误处理策略和安全考虑。解释系统监控的实现细节,包括健康检查指标、响应时间监控和故障检测机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":5,"progress_status":"completed","dependent_files":"api/monitor/,internal/controller/monitor/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:36:45+08:00","raw_data":"WikiEncrypted:/pxnfuZ7db/sgP748CYPEnnajIZ9eAOE7G8r6j42pVkNAjXGu0NMqCu4ydfGAfQ4GCItYufWEEmQ59/IYRNbh4TeLwCIq0wIYZR+tuutkroBmNLFE5voLalJsBHhYaFnQaIIcLYC0slAZsS9oHRLvxN81DhPdygvrXE/yMXvqwipS2laucJTknMAy6yPY72cC2uNaeLCUccXQ3+7TZiCyurymQFvMJUHg8rSJXfJoIQFZYpFpU3y/Wc0h1ncH+gv2NmpFz78Z+3zMmwDouKYevCRVsVcsYKlXyMsfuzm8QPyt6042xhOVfpXWsvcNPXcKAzofi2NhJLVNH4gyXY9dOMCyz0CHeSCdHZVJoHXKQx3r5gcEptf489enTsk3rhQIsv8aNO6Mf7YbqBik7Z+TipJEsfI/66sMRt4PeLANnfc6+A0bdAR3YTSIYXSf+EYmzy0UjkNy8u3X0Wa0z1ySvPq0dHmFhm8ZMM+zYSees1DL3E5EeOOW0tNbwLlf4VLPqsDSYdqhiF1sxUVTknZSQB4ENiBo6tN73myIn6Y5/Uce2xyeMbu7HxqGCXNtmtvGaQgT1JX1C+wE6j9UzZVFxCvtxa//B1R2r8XnccZrYESFrZ+I5/t4NNolLDcBtp+Ti2SpW5KMMbhl5ubN8n9diodZSJNprv1UPJHilQQqFiYvt8zQG0vqN4MWJPF8s4xuMTpyq01/rQ3AKddpKiYTsqG13TxIYLmzGzO14Nl7v1rd0fvJ3e0QCOUyUITbeGEVofJ0AsRKyxs7SzsaMHmnLa+MjOuG9dWlU92ibQsNfTs9pCvHQhcEq7oRkzH9bm1VPCDNUlxxRcPrNeL42ETGlrzl/3gfK6JiyPsYpspcC04xNu+AfT8lPmMKXNIuUKGIS/yd2ghbla/zUIYhEiOmQC2EM6CUv7YCOa5jSVT4/f/HbkHVOwcMz+rrCh72QDmLrMFnejLqMZ3NVp5/3OisLhAp5eEP+79XK2/iRn+H6Y0a1hsoe0p00fiqzmsCLI+","layer_level":1},{"id":"8a8b0b57-a86e-4808-ab09-364c89440bf7","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"Camel Oil Database Schema","description":"camel-oil-database-schema","parent_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","order":5,"progress_status":"completed","gmt_create":"2025-11-21T00:55:59.22915+08:00","gmt_modified":"2025-11-21T00:57:03.987143+08:00","raw_data":"WikiEncrypted:HqkjEWn0d7XFiXKMZWilM1QmzAdH2Ew/qjcWZlypnC4ttqx11HIsOEVsfdClxdx3+/2iUFDXeqsTgtiwONp7pKTw5Y/FkyF6l47zdfiKNMc7jMUa4xZAZbGwX+0tsv65kPqeygQgHMUJi0It+ydsNCKjPYbuxxEGtLolZLEO9Y/rjNY0b+4QcYmYQDfFAqD5EiulKOhQte59PapV2EsKzQ==","layer_level":1},{"id":"050aabef-4c8c-4892-849c-74a2e3feb22b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"外部集成","description":"external-integration","prompt":"创建kami_backend外部集成的全面文档。详细说明如何通过integration包集成第三方服务,包括京东、天猫、Ctrip和沃尔玛等电商平台的API集成。解释OpenTelemetry集成的实现方式,包括追踪、指标和日志的收集与导出。描述Casbin权限系统的集成和RBAC模型配置。为每个集成点提供实施细节、配置选项和使用模式。包括实际代码示例,展示集成的实现方式。解释集成的技术决策、权衡取舍和约束条件。提供故障排除指南和常见问题解决方案。","order":6,"progress_status":"completed","dependent_files":"utility/integration/,utility/otel/,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:04:37+08:00","raw_data":"WikiEncrypted:6V5sbJNGDAyDYhOBZelaU1rOxrf0dOOzAFdTG/qUxgWgnhYSEslMfkL1CRLZ3CQgEd93QD8haush522llnu67Doh76s5Ca+S41WwnEUyjrWkASiLiIoPvV1u9Tr5MJ8CbF84fStM1LCuyPWlPs/mlFNUTr24LC9t++Zu3Ik83S/sRYZu5Anrldz8wW8HccvYj9Rn20vd6tmEZliHCEV08zHOt86iCSIOrMiTn3nOoMbWtj74US6SnxRTIiAe0dSpWl5EUXR31FT/6dDmipJ2YFay1qoavAYP/UI4jtl2HDQtzbgWt8XIeqGtiUD1OXkwvdMhfnxiz+5clANNAbdXNngBv0jyDyUgSA9AoYTTEl9w41yu5vhE7F4cl0TeyL8LTuCgyZCS7XSwh3QLhuyD3zSZdwOWs9L/SqYpPsBVN5WrgIqpnqoHaXRqj6bAzpEvOx0cq5p3fgjQBhnGa1m42Zel3U9snM1riGCPy0zkuCcUW++pBwIoqkd1S3D2Oy6iVMV4dE6NKtDjYOXbUS1UnEVVTPH1LwTTG6CYwpx+U0NAXMbfEiF8k9UghE5GfLBvN/fhUbAzxt+HDEwSEVzJllfYXSasLi6ObdHeqm2wGnlMWsXcqE0P2ZjaQeF8KiEFm31p3vIPsvj4FVziPgkYK9QPT1pFAJJgDsrb3PpvJimsenaXhodnFODVOxoas6Qnk4A5W01t7n5qhzeb30qazovqIRMCVukoZnPDmKjWUxk43YyyZLeD43BkZ3pYiiRGjFIo3HX3wx99iA/MFheSEchJa8AWgWO3M6T2VdBDAl70B1Z2cgJrt9/ONw6ITr5LGb0J4twEwfxPZOAXS9FJNKbezsfTDWTR01YN9cemazmggbV0FiMr/httwX01Z2H5Nx+2po6zExOQdREJRSDXK9+Bcd5Ub3lKXGEAwtU5JDEihamP5bNx4DYkd2m0t2dCdAxTUJp/sDS7XZnB12PSeqnSf9EGC1mTHn1X5SoZbZ3eR2dbwxF0tyRs7rL2k8nHsjg6iXNNAn5DcbVik91lhrpLbY969BE0J3LsFJ9bQVSqJ+Zind7Rw1jU89i9lGjaGVfkHsad3NQWM3QF6yFQX2LuS+qeD6uCFpGb/kl/cPaT3+qrGM/vB7USeBgspgQksjgq39blrrRR7g/1bx4A4GN+S/EmOC/oJVQPIF+YfyWzor2o4iEZiervnUHnorgNjJJ07WRZb//KgtlGhzGKhmkNL73Hsp0WxOecTkIZFrKtt4Cv2RopxRvI66mJ9SRt"},{"id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"资金管理API","description":"api-fund","prompt":"创建资金管理API的详细文档,涵盖钱包管理和资金流水等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括钱包创建、更新、查询和资金流水记录等接口,提供实际使用示例、错误处理策略和安全考虑。解释资金管理的实现细节,包括余额计算、事务处理和对账机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":6,"progress_status":"completed","dependent_files":"api/fund/,internal/controller/fund/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:37:11+08:00","raw_data":"WikiEncrypted:gLdwQ0KTVfy2nZNoG+5bdYizgJv16EHz36uF4KpBUPfyYMj4B2ukzPWea1pyWCEUGSSgvWMYpbGE/0eXLXpahXj+nH+hAZ1T5Uqw7u/veqBEMSd4ZN7RlGn3vv+9NmDgmZapIP+6vYH/S8FvnohYJDgPfroVhJsbTNWdc1r+OYfmMZXDkw4Jvi7EcW3p27E8UxGvqCpcW6V29NgKjhDHhujat8O0d/dG3yCMgFrKlXmYD/sAna9JiXICSNZtLhKAzQjQejQFVNebLsV6hDSvj8vWJpev4t3C+5MnzV/vyME3m8vPse/JGNVtfWlZblxEkyHM9EHKkl+y9lSwinSmrwBYqNjMhccJXHxBYeKEhXxsMf7UVNNhTvRyAPCllxzdsrFsI1PSrUJbjkLuBPtIQ5KWGZXO5ZklIoCP/MxvcrujKsi8ynEpCQ71VYFkV79LlyKKiP1Z2NznMXVrjFt2j9WJci28BcKND8fPSzZ1cVOGDBpxa08RAtE5D2qjOJ9L8BpEDo0TFtv9RuupBJDmBuSGWRxYRBa9c+8QbUSg269A1zt5mytOIlHm3CBHza7MKw1rh28mCwGi3B9XOEq+fJBpjqGDI0CaiMRc331/7foVEqTo+gAVYvRdTGzgcN5sVI+qy6GqKdvyFKDlJGmLgeby15Org+vgyff6iO6z7Ympy8xZepxmie7rEJrVoBjJaSCtXM9THYYSuw2CdW2BJbTHDfSdGsNL1+AwmOqVIbU9QLKC/9FF42HwnHgWAtZ6q9+pV8HUmaEmhcrxzlGiKCtoBtu7CMYTcXwvN1ZeH4fwcwuCFoaPzrJabjIurTs05pIKP/tlzP1kG1dD2e73NKcnx5KeHH8zdGTq5csTIUvezoWg0TshToj4yd2Ce6fIuy5dOEDxbc6JQYy/WNVAqnV2oFH4DtDKJGQNSjzMlDqPzs1VIFTw8JHLozliPH6PFqzilC9fLI1bp9d9fpwGnSrPjjZldPtYKbpMwJjW41KYKt4BXZnjpp3XiVZnBh2ACAyRKfdLeznjk6c/YhLEKg==","layer_level":1},{"id":"56f928f7-77bb-40cd-b1ba-80079defed47","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"日志与监控","description":"monitoring","prompt":"创建kami_backend日志与监控系统的详细文档。描述系统如何通过OpenTelemetry实现分布式追踪、指标收集和日志聚合。解释monitor.go中实现的监控功能和cmd.go中的命令行监控选项。详细说明日志级别、格式和存储策略。记录关键性能指标(KPI)和系统健康检查机制。提供监控数据的可视化和告警配置指南。包括系统性能监控、错误率跟踪和请求延迟分析的最佳实践。为运维人员提供系统健康状况评估和问题诊断的实用指南。","order":7,"progress_status":"completed","dependent_files":"utility/monitor/monitor.go,internal/cmd/cmd.go,utility/otel/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:05:41+08:00","raw_data":"WikiEncrypted:fO6ZyTV/+zFGGiGBj2YmQFZZh2B/tCl8VpzMyKHwoVG2Igcp9ko+l59aB87pRBKmPklfl7BSGuvixmNrfwMmWQxMzVwUymNIandfPCI58hlbQlqRgIi+ICKMQENuEKEjR2ions3uCUq+qhKarJTToHVOXp0nVAS7juzle/+W9nwF4i3U5NGByOXHzYUuevprmr9bxS7i34AZJvFVOKhlXuO+73P1N/dmmcX1dxZWaLyaN8jVFmOJXbH9BXydVPxvKBodJucsjbTDXfg4pQa6cESHukFR98S1csG57kcGSkscV9ykKWRF9ggYTyXhIoqF0RWirI+cLlab2WJHgM1WPBzqnhew0OV1IbRM6AE2yThwUxCdyiuG1HITVzftfn8khF4yGN0b4IcHZULP/+mXssMACE8xF5GxreYjrvSYd16wUbdUn7m5MiQnIxbfU+pmw8P+RYRHNynBdJMP67qIk1Fgd77rHmdlaWeTepcng36Ed5y2oE9PQ3JWD3+PCk4QrP5j9boLfUw6Dyn7w8gfF/cSksocnCuKZ6GCOq0CUqWc89UJHmMZD4za7f4Pr/6TDq90fOfuzZwu3Bh9gsev4fPGz459XO2bMxZn+5ZT4IgnEiRkQlHZvxMIx6NtunvKPU0WZZQB6SA3tPMcnezD7f7cE4Ez2Gwk9MbtoXxRmAEeTyQYh6u2gSq81FE/u/giUC0TTJfchjFNz/rSf3KNlMmLLLrGtCsVFgZzo8RHnzIJ/rnol/eqs+K8vBS/ZHcD1GHVxj916N4mq69Xw3ImDRk5S6W1wPzpG3GgEw1bwmYcj6IVQolRBF6VOEf0iGlQHjrvL2YdcuNQ20fksmhOBWbYmXl7W4h0oBc/KiKTKag44ttfl02IZy4t1jUthgoAFfIDXgEikUJgaZj00PfTRfMwXbAfJYWiVn9hEjEf5WBO6FjabSGR8P/jx+ZHZ32k/bcoRofPswULCXBQzqVJQxHCZsI66mig1Q8LJIPjJfSORL1/NvUl/tzxjfB2e4+rmsH8Zhs8R8W7tLBZEqjMkqZNNHsMdHOe/SGQxQNaZIepV/YRvoXjZGeNZTVaAfIzjC9hELFZb/wUNaDSlF4vgdtB3ia1lmrcTbKcHccGd+o="},{"id":"5309a75d-a6b1-41af-83ab-5dcaa399435f","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"渠道管理API","description":"api-channel","prompt":"创建渠道管理API的详细文档,涵盖入口管理和渠道配置等功能。详细说明每个端点的HTTP方法、URL模式、请求/响应模式和认证机制。文档应包括入口创建、更新、删除和查询等接口,提供实际使用示例、错误处理策略和安全考虑。解释渠道管理的实现细节,包括渠道路由、流量分配和性能监控机制。提供客户端实现指南和性能优化建议,确保文档与代码库中的实际实现完全一致。","parent_id":"693df6d5-abb1-4b0e-b0ee-fa0cfcf10ec3","order":7,"progress_status":"completed","dependent_files":"api/channel/,internal/controller/channel/","gmt_create":"2025-10-08T18:18:22+08:00","gmt_modified":"2025-10-08T18:37:07+08:00","raw_data":"WikiEncrypted:iIHnz7p+SPRw5X8B3MUgFa3SWR2/Ac9jwMRHn97q5TAg/jMwINtcbL5tYBTv90hQTNAlft0onNagd77WQYgFAUbr/hurYRZ+mt/lb3o1rOqpBK12mmTfxKl2ybT5ohYhbercVyHXiabficTisH8KWoyrZ566Ui1H9pqtQF/GrrtIi+Td4U8o0gtHAdEZCfaPNmO7CrqJgSjnDgjRbziLAtZ0EmCF6fqGQS0izR81eUDwq59erHoiKZ7u7VAVGSBS67EUL2KHYHgcApNpFCWBLPOI5UCp+Iiwnp9iUlxZv/E8E6X73U2BJk4SI9y4vzh3Ttn07qyu8hKusTgTgyXSYyn6L+PrdPwPsnWR+zcRttRRAeKkPzNaZxkTmcR3w2aIb/lbQ9jGcfXPO+C4n6MNW00ROPColagBltNS2+YthHqmXHlzMxDHZKwQ44RXfgyM5SpvkQWRdYLNgqtokMd4LJ3iS11Gbo3Bf68UPu5UBcpJsri++zY1OTRgIM4j0JI4fVLwqMHieHVZ7RInKj3EKm/W4TI1SZbKSUxA7yAqw0nM3z4sLmQXCXzWEDVzFfgZaofr6DzZlfJ8LOBxJ7AGuz7+agPVtR0DMvmeqiS5f/liW+5TninqNXkLBTGZGhdm75y5syHJucfgCS9DsZXMJW0XKL8bPZZS/ji1Rda4BjQZtmJ5Z+aPGt6YkCmo27N1t+wzAE1+t37Euom91RpXDFxtKv83XKgym9d7m0yvAIn3dUp+QM8FV414mAOppnUG+8J1H90QPv24YVIF12YMnhoZR93pUSYidhAZhxSrEcZvLH/d16z+AgVlTdUH3svOmwikAh6cZbqYfOzfG+uwWxlzCZ1CDmq9XYLntOR42UsvOivTwQWg7+sUaFbCO5CAV7mF5XiDmNJ4L8YMTvziX7RrGD3FWX32UKCL0VYEhK8w2YQf800Qw9IK/NSekK678tB/FLKNQXH9KTFL3I5dxPpc43UL4thkeVlcnSAvGVeyh54KklcwIR/SkVNT73El","layer_level":1},{"id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"安全考虑","description":"security","prompt":"创建kami_backend安全架构的全面文档。详细说明系统的多层安全机制,包括基于JWT的认证、基于Casbin的RBAC授权、TOTP双因素认证(MFA)和数据加密(verify包中的AES ECB和MD5)。解释每个安全组件的实现细节、配置选项和使用模式。描述身份验证流程、权限检查机制和会话管理。提供安全最佳实践指南,包括密码策略、令牌管理和安全头配置。记录常见的安全威胁和相应的缓解措施。为开发者提供安全编码实践和漏洞防范指南。","order":8,"progress_status":"completed","dependent_files":"utility/verify/,utility/mfa/,internal/middleware/auth.go,resource/casbin/rbac_model.conf","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-11T17:27:31+08:00","raw_data":"WikiEncrypted:6g8iffgXzed698CsRven+TxLJxsKi89Zg4cHxSgvhEzr/4bcgtkHOokh3q1+kVqE1tnaxONz31UFJtXDgUZL+vdV+t+IhM/TRGE1OlPebhRkyHA+yPymEcTKks0vO/fj2fQLtFRk00DPWThrLdA8vUwRH77Q32mgd7eyHBog20mYf1lRn8KKFeWdqwWZPEdRMkGMmgHUA96Im9yLeyuGqrdya5JJEeiLyLj9rUFhkQZoxl+sR6NIPeauGuYWoh3MshU8jdmI9vT1WOHPjjdWggrf6SJc6KPKy6kIUrPujJYq48yOinbDA8mCKOghP3tgraLBN2/rm7uOoYPavRuwXYjfuS4Bu2RuHPHuVJ+soIPrb1J9X13DW8irgPPZcjjukzL1cqVpmZ5mzEnN/DY2/wCMQ3L5AgH8R3B7G/bcv5ji31sZjxLyyMF6xoqNVAl9E9XXzHWM3bPCcJxXRVmw37qJZyR2BN8gEoFc471qQueIdf95b4JT9EwJEDW6uRKG2/qfrlU/qVwBCg3wCVtz7yyQdzeHYPg7MW8doys0/4JYBTCitk8wySH4SRXbLJIc+j7b3cVKwq+ltIUZze8Jei22pClgQRU6A9FT4X6EHZKld7DIqkyAvU0P/1C8eIJ5hTkTO7ck3+W+h6Vf0R5s+0uh/sOcCTavFP/OgZ46O7RBw+YOv/dTEwm5scteo56AdTeSVYvhUDPG/w0HE0p6xt8fhbEQhbXZi21FfTZZrKhac7VTS30km9dLm7ycPvCHxPWo93OkMz7eL72nmQBWtKH7+61Z5Fbl2JQG4+AG8SjWsCGcJufBFYhDiLqk+u7JXMCq8qTDjB3+xhcHXKJhPkDvsin5rL0yTupa2h6tJJAA6IIGLbrYHzpMVoyx6bytf9Hyi5xjwoylMYScUywttZM9qp0oWKY54LHcLuz1RmE+5O7oXjhEeP7B73DLfCzpSVz7gckEkgbAdFtp2QbuYlN8Lcb2f79lDOUcJsvg8Y6BYR0DkXYVVBNbvWCBcvU+kPyO9/KZjWJNmoLsOTq8Uyar0nfOYe+dzsJzJkQypSgeOayQVjAKMaISOo1Fu/6NLFkM9+crrDivnAhwkoOT8RzcDegEkI336FxALNQGyHY73GjEvTkUtfn9rTapDUVFLo0ZGPHBxYYfBVKUNByKmry0NFiWjJ/o0YUp3001PQDNDSNf/mIet6apQlXgK7Kd"},{"id":"519aff94-32db-4783-85f1-071d6c314ff3","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"部署配置","description":"deployment","prompt":"创建kami_backend部署配置的详细文档。解释如何使用manifest目录下的配置文件进行系统配置,包括config.yaml中的各项参数含义和配置方法。描述Docker容器化部署的实现,包括Dockerfile的构建过程和docker-compose.yml的编排配置。提供基于Makefile的自动化部署脚本使用指南。详细说明不同环境(开发、测试、生产)的配置差异和部署流程。包括Kustomize配置管理的使用方法。为运维人员提供完整的部署检查清单和最佳实践。","order":9,"progress_status":"completed","dependent_files":"manifest/config/config.yaml,manifest/docker/,docker-compose.yml,Makefile","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-18T22:04:18+08:00","raw_data":"WikiEncrypted:XJiAh4Py4zdOGBbpygpFvNM5YJoFCwLwhMBuV/C58fOZOPUaHJKo94aolWSN1qNGMLxoon4t+emUd9D/p7gwzvwJ/vluqP9Sp8eGHboCI3LEJz6ISr3JAXRSRsIB38jMipXGleUHXpvneh7Dexhh5G6wPFr+pJBIK1yptWrPI+5nX+N6cthMlivGNb/bkD/ENhls+X3raWhzLlghho8cBf5b9Cp4sLtgs41hEaoHShLHGB3K+ZBFDTaRYea4IYLaevBYUmvh7N5BWtZd8IiOmmNPIhX+phk8GrnHPghYSxo6FoezuPyRzqXx1Mz6X+JWIFl24DUHMReqHFmPzqMoy8lJLapDUJ3YhbzAss+zUx805+7AbMFh2N/ZyoaeH4g4gqxkdJ4iJFlULcFvzPP4Fj3ZETJziR32P9Cx0++Ju0tEsFPpBdexYujrFcKqdVqtmk7CarLxxWFlN8rTm4476jRU2Skjx6SkoAvWlxxE4eCLzoBKjdqxXis7jqd2KUE2cYuBfXG4tNrvIosBNEDaMMExaAe5YGibc7FbQddTx3zFAYwpgp7MyodjHbnySgPv1Z4v7gF4Hzaqgzp7ygutrGTwUnKrVWNNQrQ3CdFfv1UIufMAoih8UTVMyyrNr7CQjir08GtwgYKQPiQ4f570FqBGD/4foRJA/GMKvUokAj2umlI6qhbTCZB8uBZBmFA1YBJdI7QnG9gKxrcB+Yb6JwGNp34XI+fvjiuyfPF7uYbkDc5aS6iemGf/iVurb+RPwca1kXG8u3JpuMZUxy/cBTq4gA20iuVPxTliB9B7/pbct7oxb6gXkAH5TKfw3Gdu9fS1y7XIRVt8zjWOuYvaH7lQwPlQKCH8muApkvPle9Fv6cpWkRt0jFGcb7NlJVwc9hIfh729ZR53EBTSLkfyiC9PD4c2ADkVhtccp/7MBh6FrMLYxkcTw7PF9ezWJxDq3PrnRry1CAlh4P3zfl/n2l89eRffw/aG7W0Q4qblGl4jLDOqyXxtiMvY4Te4PFd1RFVOA80IW6xtjxOcr1cVmjbmTsUhE5aNZcRkB8Dxf49CFS7PS/kYcM2PJLaGU7+pWk6/cTcr/Dg8tDs6sne/WXbfhSyOKFJRfGl7piVyxksvp/srp/Mr0y2oGL9WyKbHxDh3DyYxaukyUCPmXZbN8g=="},{"id":"6c6c6963-ea94-43ef-8abd-97ab6817a48b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"测试策略","description":"testing","prompt":"创建kami_backend测试策略的全面文档。描述项目的整体测试方法论,包括单元测试、集成测试和端到端测试的覆盖范围。解释如何为业务逻辑层、服务层和控制器层编写有效的测试用例。提供使用Go测试框架的实际代码示例。说明测试数据的准备和清理策略。记录代码覆盖率目标和测量方法。包括性能测试和压力测试的指南。为开发者提供测试驱动开发(TDD)的最佳实践和常见测试模式。","order":10,"progress_status":"completed","dependent_files":"internal/logic/,internal/service/,internal/controller/","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-11T17:26:03+08:00","raw_data":"WikiEncrypted:Xd2Zu8BM8p49theGlFJHkHqkA5ycuMpwkltd7rjxfkZm5u2F/OCOa2rxC3NxLrZDZf5D15q4Vh8tHCK9cPrOS4+Ys3urQt//f060Y4iIHh0l1A28UoBx4zw0WH3M31LfLAxkTXkOcrkF5ptnw52Idh6trbx5eJS2Qv+BcIzGv/Iw3x2pAWTgHakxyzRAqrc1k7BDI4v7XRmjHtE2IpxaQQ1aRofarEJM4MyjQfoDXHYSW8+3BB/rIqmowV+wDhA0o9b5SkR3FDUW6zx/cusIqFWZk/E8ssygQCH92MhSu1TDh7dMd3oLVFHt8qweO2CeDQeBoVaqprQtzFydOqViXVvUbxt3J49Uu/XsYzuy2y9gkwK3BwWK432ZYLCE+TWL6kcU1LvWM5MNSnWuGzOcPYn5QXe0o7M7Jw0uSo6luSgbk0g5PqKn/lvl79JWmtgOZZgyHAL/2hOegzUFr9e5VmFSCTJMrD9W2HXeCpQr1IJuo0bEdoBQVOimVUmnn+dAiarIRzwyeOYNBkLQFRAX8l/FyKQWEE4ApGtZc5ATGdj/1nx0+aQ8IFVjwlqm0n+vM+Osh8OLVPDt9uXwJwrz0I3jphsV4Ml2A+7g2pu8CEw24LB9nnY8bQszP2CCoZNFm4qFdWxelglVd7EsL+ai2vTQtsW0M1FnJHcQoaNzKrBNXZ36aZzUrIkVOUzOPDNGBQqANaVf31s6bnJPy9hbTv88NsQu0FbvNSue+JJlY9wzKRLof/eMacip+HUjo5ETmUhP2ocTHL1IyYpaDEHbn3tfw7h7q7gWngIdXTg/cWpTfnqaYWLuhBdLSpUoUSgbr/mIAASCKNBmH9FvjcV9FADEFcl9P93PTrkoo009k2XSR7sGLDMS6KnwDvoM65t19TQDgLj5s2bKPAwe41GpH6RsJYk6UZ98moX0xtBpsWAKDYiyTxNLLDYYuNoL9UBg0EhXm9uLrMC28S8rd70zT767Mf+MbJEx4/GyUt7uBSJcsWBtNgcuw8aVwd0QTuTj"},{"id":"35d30eb8-d12a-498a-a19c-c1b6ef95145b","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"快速入门","description":"getting-started","prompt":"创建kami_backend的快速入门指南。为新开发者提供清晰、逐步的设置说明,包括开发环境配置、依赖安装、数据库初始化和项目启动。使用Makefile中的命令作为主要操作入口,解释每个命令的作用。提供'Hello World'级别的简单示例,展示如何调用一个基本API端点。包括常见问题的故障排除指南。确保指南足够简单明了,让开发者能在15分钟内完成环境搭建并运行第一个请求。","order":11,"progress_status":"completed","dependent_files":"CLAUDE.md,Makefile,README.md,main.go","gmt_create":"2025-10-08T18:17:58+08:00","gmt_modified":"2025-10-08T18:26:09+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWjuiNN7p/9UiziFtG8VxSN3lDZPQFx0/QJ3DnzLYLtDRB4nGAaU70RZkhO+ON1gRN4x+OHmdrMLZxTrt1rT6pGA304dmEU5OCbFwPbamZhWwUiBN85RO9DSQy2tzy/P/lVYlefkzZMkpfKXb9Hr2X9EYwdxWad8uG+wdSo7mYQ6g2cGIh6DXj5RS83lPDobvMdSy2x/+meDkNsdZVrtgqWSPSfZB7kbAgbAwqL66wuPprOWkltTYURGRfQIKB6OhS+r9VX3YXOm+gQXKVeTKrOzf4NXqlD25+zhbtCJ3+4IzXOpl8s5skN6wQcclYhNU2fZ0+dhVr2zUOJv/Swtb2ppsHzKz/H2CZ9U9jz+M19LpXEq65esOK1cJDloyR0A/LEuZREMHX/itrpygGEXG1NhnJdnffjF9snrEFtX4to8GEHJTSUJ7xAbIWr1Eceb93J0pKYLGy9eNXaKuEU2A9HyZHdkI5409eQvTnIABD7JVK8EZlcp12EI0LtM1fFMI6/cvAOk826mSlFvoy6J2JdN0zN2mhqlQ43bWoyVFPq29j8ZmAVA/rf+wSQoXZS7UKmeuGosnjq6MMZOZ/KILspUla3seZ7O5+Os1gd71bHfOuCkQPJUQWWtPeSbhF08+pwWOkmbEM2+yo9JwnDh5GdRaqRT4BMZgREKFdqIUVvo4XY9GCyXJJGce0AKXrI70YRhapEjIV1rF7jRZ52QQcEBvRl6JsFcZEMkKnGyOHEZCVtmvAW4gI1yJ1XmCM7RzER77Q0l9IzJlSNp6SVCHz3Tqy1gDWAlPNHwCCsEn/7GZikekXguvT5jfZBNNtrpFH78RmRIXRV9qCLNZaBnnZmOQbzPjFNBy9v0ZQHFqYW6HPYyMlMFVZtZibhPe1UDOm22OOmnwEzdlDtUQZpU/ZIeftMXuXgPoP64qn7ytqc6gPu59MXlUVl8D3G4+labxbVg="}],"wiki_items":[{"catalog_id":"802f0a8e-251b-4bdc-9194-bfdc2122b3bf","title":"技术栈与依赖","description":"technology-stack","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2d252858-5e54-46c7-8333-19753b85e57a","gmt_create":"2025-10-08T18:21:57+08:00","gmt_modified":"2025-10-08T18:21:57+08:00"},{"catalog_id":"8292f51b-85c1-41d5-a58a-50585ba999d1","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ed77f21d-2b02-47a9-b2cb-1f1d36e06b8d","gmt_create":"2025-10-08T18:22:33+08:00","gmt_modified":"2025-10-08T18:22:33+08:00"},{"catalog_id":"e71856cb-fd63-47f5-8f0b-2dd3d29fba10","title":"中间件与拦截器","description":"middleware","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6d5ebff3-909f-4c98-92c8-8c0d636415bc","gmt_create":"2025-10-08T18:23:25+08:00","gmt_modified":"2025-10-18T22:05:40+08:00"},{"catalog_id":"b8ba5dc4-8d15-4b61-86e8-07a963bd3fa8","title":"数据模型与ORM映射","description":"data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5ff3fb8f-241e-4d7b-a9f7-3f265eda053f","gmt_create":"2025-10-08T18:23:37+08:00","gmt_modified":"2025-10-18T22:08:05+08:00"},{"catalog_id":"201b5004-c469-41f6-a407-c98892822b49","title":"业务逻辑层架构","description":"business-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"caeb482b-4671-4692-98b5-948f768bcf2d","gmt_create":"2025-10-08T18:24:00+08:00","gmt_modified":"2025-10-18T22:05:30+08:00"},{"catalog_id":"050aabef-4c8c-4892-849c-74a2e3feb22b","title":"外部集成","description":"external-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"32329179-a4a2-47e2-83dd-1a93c046af96","gmt_create":"2025-10-08T18:24:17+08:00","gmt_modified":"2025-10-18T22:04:37+08:00"},{"catalog_id":"56f928f7-77bb-40cd-b1ba-80079defed47","title":"日志与监控","description":"monitoring","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"7af63f20-e74f-4c92-af2f-3124616b0dfc","gmt_create":"2025-10-08T18:24:50+08:00","gmt_modified":"2025-10-18T22:05:41+08:00"},{"catalog_id":"ad94de09-b7fe-48cd-9a8a-bcfa78565c2a","title":"安全考虑","description":"security","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8987b1d6-99e5-4387-8d3c-60e739a30e20","gmt_create":"2025-10-08T18:25:14+08:00","gmt_modified":"2025-10-11T17:27:31+08:00"},{"catalog_id":"519aff94-32db-4783-85f1-071d6c314ff3","title":"部署配置","description":"deployment","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"056cda49-d96e-49a5-831c-7def9872435e","gmt_create":"2025-10-08T18:25:27+08:00","gmt_modified":"2025-10-18T22:04:18+08:00"},{"catalog_id":"6c6c6963-ea94-43ef-8abd-97ab6817a48b","title":"测试策略","description":"testing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"26c0da0b-10e1-46fd-ae3c-e0e7b23135ba","gmt_create":"2025-10-08T18:25:41+08:00","gmt_modified":"2025-10-11T17:26:03+08:00"},{"catalog_id":"35d30eb8-d12a-498a-a19c-c1b6ef95145b","title":"快速入门","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8148be9a-75be-4ed8-acba-f6008757d0e0","gmt_create":"2025-10-08T18:26:09+08:00","gmt_modified":"2025-10-08T18:26:09+08:00"},{"catalog_id":"0acd557b-c455-4420-956e-96a4a67cd7e0","title":"用户数据模型","description":"user-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e4fe353d-cefc-4899-9e57-39fc9f112127","gmt_create":"2025-10-08T18:26:32+08:00","gmt_modified":"2025-10-08T18:26:32+08:00"},{"catalog_id":"eaa525f4-7640-4d4e-84ae-7624f8b5c790","title":"卡密管理逻辑","description":"card-management-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"33150d2c-ac78-4784-a31b-e9d342cc880c","gmt_create":"2025-10-08T18:26:44+08:00","gmt_modified":"2025-10-08T18:26:44+08:00"},{"catalog_id":"681cb8e8-add7-42cb-8297-72df3436bc74","title":"权限管理API","description":"api-auth","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"050adf51-c0b8-417b-8e31-5502c8d7ebcc","gmt_create":"2025-10-08T18:27:26+08:00","gmt_modified":"2025-10-08T18:27:26+08:00"},{"catalog_id":"d49ad99c-afba-4362-af4e-ff689d5d94cd","title":"电商平台集成","description":"e-commerce-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b64a6df1-5797-4877-8b53-29fc0fdad59d","gmt_create":"2025-10-08T18:27:39+08:00","gmt_modified":"2025-10-11T17:28:30+08:00"},{"catalog_id":"965a1a48-9a08-4f01-9b4f-1f1a51c82165","title":"认证机制","description":"authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"bb84a187-9957-4c61-82b0-b8997f3b306a","gmt_create":"2025-10-08T18:27:42+08:00","gmt_modified":"2025-10-08T18:27:44+08:00"},{"catalog_id":"dfd2209f-82b2-4b3c-84b4-8fa7f91207e5","title":"配置管理","description":"config_management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d2e0d8f8-6a5a-4d1d-aa94-30a022535241","gmt_create":"2025-10-08T18:28:10+08:00","gmt_modified":"2025-10-08T18:28:10+08:00"},{"catalog_id":"5ffd09f4-939b-4b8b-a254-494937471526","title":"订单处理逻辑","description":"order-processing-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2ab1acd9-0488-4f69-a292-63359e8a485a","gmt_create":"2025-10-08T18:28:45+08:00","gmt_modified":"2025-10-11T17:28:54+08:00"},{"catalog_id":"4bf77667-f501-43ff-8e67-ed1fa1562255","title":"订单数据模型","description":"order-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f42a4fa0-61ee-471d-b8f0-9dfa22159b7c","gmt_create":"2025-10-08T18:28:50+08:00","gmt_modified":"2025-10-08T18:28:50+08:00"},{"catalog_id":"e047b856-1a8e-4ead-bda6-66d7c3ab4651","title":"授权机制","description":"authorization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b52b76ee-90db-4464-bb9d-431b10755e6e","gmt_create":"2025-10-08T18:29:44+08:00","gmt_modified":"2025-10-08T18:29:44+08:00"},{"catalog_id":"3885dee9-9a55-4da0-8506-1a84306cae21","title":"监控系统集成","description":"monitoring-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f071af41-6de4-4751-8a76-5e5d5d0c02df","gmt_create":"2025-10-08T18:29:59+08:00","gmt_modified":"2025-10-08T18:29:59+08:00"},{"catalog_id":"3c6ca985-3423-453c-9f11-d9030f798abe","title":"容器化部署","description":"containerization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"33c05b7f-e793-4a3f-bb87-9c6ea22d7e63","gmt_create":"2025-10-08T18:30:37+08:00","gmt_modified":"2025-10-08T18:30:37+08:00"},{"catalog_id":"aaf3daf4-4a28-4e81-8d88-4453361c2ac6","title":"商户管理逻辑","description":"merchant-management-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c46f3f6b-d36e-48a1-84b7-1e14cb598119","gmt_create":"2025-10-08T18:31:02+08:00","gmt_modified":"2025-10-08T18:31:02+08:00"},{"catalog_id":"8d18de48-44df-4825-825a-d6d8797a330b","title":"卡密数据模型","description":"card-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"06c4893c-d2e9-4b61-a99e-f66a1d2cdfc9","gmt_create":"2025-10-08T18:31:25+08:00","gmt_modified":"2025-10-08T18:31:25+08:00"},{"catalog_id":"079920b2-aa64-48aa-a92d-8decf24623b1","title":"订单管理API","description":"api-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ba1c4880-8600-4564-afa6-175208ea101b","gmt_create":"2025-10-08T18:31:48+08:00","gmt_modified":"2025-10-11T17:27:33+08:00"},{"catalog_id":"8b232595-64ae-41b7-95c2-1ae6428857e3","title":"数据安全","description":"data_security","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"9fed567c-4708-4ae0-88b5-a49c8b5f0a4b","gmt_create":"2025-10-08T18:32:10+08:00","gmt_modified":"2025-10-11T17:28:55+08:00"},{"catalog_id":"f5f182bf-a48c-41f1-86f7-12c882b3775a","title":"权限系统集成","description":"permission-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d5e98815-ab00-4c12-8402-2fbc852d8dbd","gmt_create":"2025-10-08T18:32:32+08:00","gmt_modified":"2025-10-08T18:32:32+08:00"},{"catalog_id":"2b16f9fb-3e48-4abf-a52c-5fcaeb1467f5","title":"自动化部署","description":"automation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c2fef000-7272-4553-b8e9-650afd08aef6","gmt_create":"2025-10-08T18:32:49+08:00","gmt_modified":"2025-10-08T18:32:49+08:00"},{"catalog_id":"93bada60-b20a-4977-b82c-eca224ca34f6","title":"风控限制逻辑","description":"restriction-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"077abc2a-81e5-4e9c-9a72-757f4765021c","gmt_create":"2025-10-08T18:33:33+08:00","gmt_modified":"2025-10-08T18:33:33+08:00"},{"catalog_id":"f5173a3f-1bbf-4ffd-aefb-fedf3a92a65e","title":"账户数据模型","description":"account-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"399f12e9-6620-446c-9e02-808c39c61bba","gmt_create":"2025-10-08T18:33:34+08:00","gmt_modified":"2025-10-08T18:33:34+08:00"},{"catalog_id":"c423075a-af3a-4aa8-aeb1-eca97be6acbf","title":"商户管理API","description":"api-merchant","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e55523f2-f9d0-4297-b67d-dc4fcbee269b","gmt_create":"2025-10-08T18:34:16+08:00","gmt_modified":"2025-10-08T18:34:16+08:00"},{"catalog_id":"e7731430-b57c-48b6-b326-56a4297fa5b6","title":"Kustomize配置管理","description":"kustomize","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4708f37c-6c92-4fa9-aba1-fa843c3863f2","gmt_create":"2025-10-08T18:34:17+08:00","gmt_modified":"2025-10-08T18:34:17+08:00"},{"catalog_id":"f6a6925e-fe4d-4480-858a-b25ee0c9c478","title":"双因素认证","description":"mfa","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d15e79da-d03f-46a7-9939-d486c82bdd9e","gmt_create":"2025-10-08T18:34:59+08:00","gmt_modified":"2025-10-08T18:34:59+08:00"},{"catalog_id":"c31af7ce-10ef-44f2-9bb6-b8772f1bc957","title":"系统配置数据模型","description":"system-data-model","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d106423b-19ad-4e22-8a4a-567e2ff27e36","gmt_create":"2025-10-08T18:35:37+08:00","gmt_modified":"2025-10-08T18:35:37+08:00"},{"catalog_id":"71487087-d57a-431c-af0f-f9ce8536c80b","title":"风控限制API","description":"api-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e65b9b9b-d210-44c8-8f0c-85e0422070d9","gmt_create":"2025-10-08T18:35:55+08:00","gmt_modified":"2025-10-08T18:35:55+08:00"},{"catalog_id":"495d1fcb-e69f-41b5-b893-4efb8ffae28c","title":"系统认证逻辑","description":"system-auth-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ab420b44-4f24-4bc3-a44c-bc68b0868ab8","gmt_create":"2025-10-08T18:35:57+08:00","gmt_modified":"2025-10-08T18:35:57+08:00"},{"catalog_id":"d7caf3d0-b00a-4bf4-8045-ea54b457c2a2","title":"系统监控API","description":"api-monitor","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8e29abbf-237b-418a-b169-69594db3a3e6","gmt_create":"2025-10-08T18:36:45+08:00","gmt_modified":"2025-10-08T18:36:45+08:00"},{"catalog_id":"5309a75d-a6b1-41af-83ab-5dcaa399435f","title":"渠道管理API","description":"api-channel","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f5a8ad7a-5455-4dda-8fa1-28c34b83dfb0","gmt_create":"2025-10-08T18:37:07+08:00","gmt_modified":"2025-10-08T18:37:07+08:00"},{"catalog_id":"b24f3c8c-5f2c-435c-99e6-6ee42c47a46d","title":"资金管理API","description":"api-fund","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"51819175-b0b6-4391-899e-6d9466cf804b","gmt_create":"2025-10-08T18:37:11+08:00","gmt_modified":"2025-10-08T18:37:11+08:00"},{"catalog_id":"f7bc4c8d-64a0-4c2c-a17e-cd38987a94ef","title":"Apple卡密管理逻辑","description":"apple-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4cc7d7ec-1470-45ec-8b91-d43b0285ff1e","gmt_create":"2025-10-08T18:37:52+08:00","gmt_modified":"2025-10-08T18:37:52+08:00"},{"catalog_id":"cae0b323-5cd0-47e9-a902-06ceae30545f","title":"Apple订单处理","description":"apple-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"753b0096-e6c4-42d1-aba0-93c8df17fdc9","gmt_create":"2025-10-08T18:38:12+08:00","gmt_modified":"2025-10-08T18:38:12+08:00"},{"catalog_id":"6810876b-78f1-4c9d-a2e4-a82d03615272","title":"IP限制机制","description":"ip-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0f130c1f-7f7b-4517-97a1-2d3646bbd246","gmt_create":"2025-10-08T18:38:32+08:00","gmt_modified":"2025-10-08T18:38:32+08:00"},{"catalog_id":"b5d20329-a5b6-4db0-8325-2b83ee9a2c52","title":"权限规则管理","description":"permission-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8b580d72-5612-4fa0-b850-b3a7d72c1e19","gmt_create":"2025-10-08T18:39:14+08:00","gmt_modified":"2025-10-08T18:39:14+08:00"},{"catalog_id":"071ef93d-b914-433a-b69c-a4ec42c36381","title":"订单表单管理","description":"api-order-form","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"61e64814-3402-4560-ac80-de2897628585","gmt_create":"2025-10-08T18:39:17+08:00","gmt_modified":"2025-10-08T18:39:17+08:00"},{"catalog_id":"cc12ac77-8ff2-43e0-b014-8cbffbaa022d","title":"菜单管理API","description":"api-auth-menu","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"738f052a-42a0-4959-bafb-657eb467d57d","gmt_create":"2025-10-08T18:39:22+08:00","gmt_modified":"2025-10-08T18:39:22+08:00"},{"catalog_id":"162500a5-7167-4984-9744-2802fb00bd08","title":"钱包管理","description":"api-fund-wallet","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0aafdca3-5383-41f6-95ae-95c4f6eb2f32","gmt_create":"2025-10-08T18:40:13+08:00","gmt_modified":"2025-10-08T18:40:13+08:00"},{"catalog_id":"8d814eba-e2eb-46c2-a59f-00ad5b8d5de2","title":"商户配置管理","description":"api-merchant-config","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"df46fe53-92ca-4da6-826a-b33df0bd242b","gmt_create":"2025-10-08T18:40:25+08:00","gmt_modified":"2025-10-08T18:40:25+08:00"},{"catalog_id":"bb872064-72df-45eb-ab34-4003a0fe8e62","title":"IP限制API","description":"api-restriction-ip","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c008ded-8f0f-4fae-a0a5-0cfb74c610ea","gmt_create":"2025-10-08T18:41:29+08:00","gmt_modified":"2025-10-08T18:41:29+08:00"},{"catalog_id":"04d0a6d4-e8a9-4e8c-a8f2-bee9fd409e56","title":"Apple卡密管理API","description":"api-card-info-apple","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6e73ea9a-6384-4196-b8f0-c31e83783450","gmt_create":"2025-10-08T18:41:41+08:00","gmt_modified":"2025-10-08T18:41:41+08:00"},{"catalog_id":"0e3e4dfa-8842-4108-bd6d-6cde149b8707","title":"Dockerfile详解","description":"dockerfile","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"b2dccb33-ffec-4b07-8759-f7ce71472ecb","gmt_create":"2025-10-08T18:41:44+08:00","gmt_modified":"2025-10-08T18:41:44+08:00"},{"catalog_id":"27a44e9c-003b-4f06-9b87-2882cf3c1e08","title":"Makefile自动化构建","description":"makefile","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5d780517-9a6d-4c42-ba58-f5b8ec8393ce","gmt_create":"2025-10-08T18:42:23+08:00","gmt_modified":"2025-10-08T18:42:23+08:00"},{"catalog_id":"d56eb845-7c0e-4be8-bf3a-239e3c0eb5e3","title":"京东卡密管理逻辑","description":"jd-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1efc56f9-e901-4ce4-b98e-e1c793ab2bda","gmt_create":"2025-10-08T18:43:18+08:00","gmt_modified":"2025-10-08T18:43:18+08:00"},{"catalog_id":"fa42c78e-0f93-45a1-8ee8-9cf8cfac869e","title":"地域限制机制","description":"geographical-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6f8ee399-7380-4fee-a2e4-728f269611b1","gmt_create":"2025-10-08T18:43:32+08:00","gmt_modified":"2025-10-08T18:43:32+08:00"},{"catalog_id":"1ee1a6e7-8394-4ff7-88af-afda35cd1775","title":"角色管理API","description":"api-auth-role","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f10ee956-3c2d-488f-a83d-d998dc2c2bd1","gmt_create":"2025-10-08T18:44:25+08:00","gmt_modified":"2025-10-08T18:44:26+08:00"},{"catalog_id":"0e1b4f85-8e7d-463d-b8db-4ee330d61a7f","title":"用户认证管理","description":"user-authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"62cc6fce-b7b6-4a5b-8833-1751d5f0ba4e","gmt_create":"2025-10-08T18:44:56+08:00","gmt_modified":"2025-10-08T18:44:56+08:00"},{"catalog_id":"91befb50-6592-4b74-82da-7510ab876eff","title":"订单日志管理","description":"api-order-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"353ff7c7-0ce0-4cc3-a0aa-1d724d7c2190","gmt_create":"2025-10-08T18:45:08+08:00","gmt_modified":"2025-10-08T18:45:08+08:00"},{"catalog_id":"3738ad5b-aca0-4c87-9e86-9551d689f889","title":"商户部署管理","description":"api-merchant-deploy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"c7dcc000-3176-454a-a9df-1ecd2131cc5b","gmt_create":"2025-10-08T18:45:48+08:00","gmt_modified":"2025-10-08T18:45:48+08:00"},{"catalog_id":"288b9b5a-64ba-4e93-885d-499412ad90fc","title":"京东卡密管理API","description":"api-card-info-jd","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a4cd3134-13ac-4d33-a867-4d225a7f89c3","gmt_create":"2025-10-08T18:46:02+08:00","gmt_modified":"2025-10-08T18:46:02+08:00"},{"catalog_id":"3cd0ff7f-89a0-4ba5-89c6-d092ac39981d","title":"资金流水","description":"api-fund-wallet-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"692c0d1b-79e2-466b-bd94-9c041d9bda6b","gmt_create":"2025-10-08T18:46:06+08:00","gmt_modified":"2025-10-08T18:46:06+08:00"},{"catalog_id":"58118687-a7d8-4b0d-b788-36481cba182d","title":"Docker Compose编排","description":"docker_compose","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"99d1a050-0313-4c24-90a9-0db3ac835b2c","gmt_create":"2025-10-08T18:46:51+08:00","gmt_modified":"2025-10-08T18:46:51+08:00"},{"catalog_id":"2c2db8d8-8ed8-4ef7-85e5-9d42615aba0a","title":"地域限制API","description":"api-restriction-region","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"17fd343c-4fd0-4124-a801-902c9ecd72ea","gmt_create":"2025-10-08T18:46:54+08:00","gmt_modified":"2025-10-08T18:46:54+08:00"},{"catalog_id":"7fce1289-c2cc-4640-9fe2-2049d025cbb3","title":"Shell脚本自动化","description":"shell_scripts","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eb1ee078-c356-49ad-827a-9313420c484d","gmt_create":"2025-10-08T18:47:04+08:00","gmt_modified":"2025-10-08T18:47:04+08:00"},{"catalog_id":"4ed6b7ca-ace0-4389-81b1-f1e35781d27c","title":"天猫平台集成","description":"tmall-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"477c9fd9-139a-43fe-87ae-8d64529bbf2c","gmt_create":"2025-10-08T18:47:59+08:00","gmt_modified":"2025-10-08T18:47:59+08:00"},{"catalog_id":"e130f1c6-f0c7-4f2b-8467-d00341dffec6","title":"设备ID限制机制","description":"device-id-restriction","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c270c41-0c72-45b9-be8d-a5605ca16e32","gmt_create":"2025-10-08T18:48:47+08:00","gmt_modified":"2025-10-08T18:48:47+08:00"},{"catalog_id":"15255e1e-df14-473a-8e50-b20da5e10eec","title":"天猫订单处理","description":"tmall-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"080fba3c-3cca-40b8-b913-c5cf213a36f9","gmt_create":"2025-10-08T18:49:02+08:00","gmt_modified":"2025-10-08T18:49:02+08:00"},{"catalog_id":"8137c301-f13b-4054-992f-c556767d7c45","title":"天猫卡密管理逻辑","description":"tmall-card-logic","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1d7ddcb1-d8df-40ae-8bcf-ca2bedc292d3","gmt_create":"2025-10-08T18:49:06+08:00","gmt_modified":"2025-10-08T18:49:06+08:00"},{"catalog_id":"ed66dce5-4de8-4993-bc89-a466abb74f43","title":"租户管理API","description":"api-auth-tenant","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"29857cbd-6dcb-4ee9-b121-6312d5a523c9","gmt_create":"2025-10-08T18:49:45+08:00","gmt_modified":"2025-10-08T18:49:45+08:00"},{"catalog_id":"c32a3e21-0961-4618-a256-ee1396eca8c2","title":"天猫卡密管理API","description":"api-card-info-tmall","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ae7b131d-110f-4347-a2db-f9ee1bb2568a","gmt_create":"2025-10-08T18:50:18+08:00","gmt_modified":"2025-10-08T18:50:18+08:00"},{"catalog_id":"c98a021c-f5a3-4847-b8a2-445d4b79ffe9","title":"盗单处理管理","description":"api-merchant-steal","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"824c49c6-ab20-4552-b22a-86d1e9351317","gmt_create":"2025-10-08T18:50:34+08:00","gmt_modified":"2025-10-08T18:50:34+08:00"},{"catalog_id":"87378996-7b26-4ef7-81e5-3e2c73c13d78","title":"用户信息收集API","description":"api-restriction-user-info","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e81e6998-8633-4c13-ae1f-6eb9820aaa79","gmt_create":"2025-10-08T18:51:10+08:00","gmt_modified":"2025-10-08T18:51:10+08:00"},{"catalog_id":"1b7f1c36-8377-4ab0-91c2-52017bc8c76d","title":"订单汇总统计","description":"api-order-summary","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"04861c55-7eb4-4fb8-9367-ea7653e898c2","gmt_create":"2025-10-08T18:51:11+08:00","gmt_modified":"2025-10-08T18:51:11+08:00"},{"catalog_id":"e0f89cbb-9392-48f7-987d-45771ccb89fc","title":"Ctrip平台集成","description":"ctrip-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4c9682c6-1065-4e84-8b74-f2fdd80c62f4","gmt_create":"2025-10-08T18:51:42+08:00","gmt_modified":"2025-10-08T18:51:44+08:00"},{"catalog_id":"6c7962c8-8824-47d8-b89c-e12e2ab0e54c","title":"沃尔玛平台集成","description":"walmart-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a6a1a0f2-4a40-46ed-a2fa-abeaf60eea55","gmt_create":"2025-10-08T18:52:19+08:00","gmt_modified":"2025-10-08T18:52:19+08:00"},{"catalog_id":"7171317b-83f6-4146-8818-b00d88d2b2b2","title":"沃尔玛卡密管理API","description":"api-card-info-walmart","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"817fc86a-b662-454b-83ed-09be950b1bdc","gmt_create":"2025-10-08T18:52:33+08:00","gmt_modified":"2025-10-08T18:52:33+08:00"},{"catalog_id":"4a2f1ccb-e858-46e2-b051-4b553c1e2f48","title":"Ctrip卡密管理API","description":"api-card-info-ctrip","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f8adb15a-410b-4784-bbd6-402691aacab2","gmt_create":"2025-10-08T18:52:54+08:00","gmt_modified":"2025-10-08T18:52:54+08:00"},{"catalog_id":"d47fa6fc-1893-43bf-906f-c9ed0db47dd9","title":"京东卡密账户管理","description":"jd-card-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e200c8f1-c37b-41e9-bac1-057445ecb066","gmt_create":"2025-10-08T18:53:38+08:00","gmt_modified":"2025-10-08T18:53:38+08:00"},{"catalog_id":"de16dd4b-ba68-49bb-97c7-cc34f0ebba00","title":"Apple卡密账户管理","description":"apple-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5fdf0a72-330a-4ef9-b6f2-56fc3b96a82f","gmt_create":"2025-10-08T18:53:45+08:00","gmt_modified":"2025-10-08T18:53:45+08:00"},{"catalog_id":"3ab7071c-90ec-4de1-8d64-d414460e61e3","title":"天猫卡密账户管理","description":"tmall-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"fc236117-4117-4af0-8d3d-0c3fbecab71a","gmt_create":"2025-10-08T18:54:12+08:00","gmt_modified":"2025-10-08T18:54:12+08:00"},{"catalog_id":"8b0278d7-2786-4c72-ae74-b9dd35efed2c","title":"IP记录管理","description":"ip-record-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"56080685-56e4-4a91-ba5c-6a25de62ccdf","gmt_create":"2025-10-08T18:54:37+08:00","gmt_modified":"2025-10-08T18:54:37+08:00"},{"catalog_id":"5624e47a-917e-43a1-bb5f-41c0c061836f","title":"设备ID采集机制","description":"device-id-collection","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"cfbdb9d5-b4d5-420d-9ee1-c9570f5c31f9","gmt_create":"2025-10-08T18:54:43+08:00","gmt_modified":"2025-10-08T18:54:43+08:00"},{"catalog_id":"f54d30d0-d3a6-47ba-bdfd-e7da45674e38","title":"登录认证","description":"login-authentication","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0eb7033e-6cb9-4e9c-8641-e80f88d0203c","gmt_create":"2025-10-08T18:55:08+08:00","gmt_modified":"2025-10-08T18:55:08+08:00"},{"catalog_id":"60a234ee-1d45-4e80-b8bf-a0ba60aaf7ee","title":"Apple卡密账户管理","description":"api-card-info-apple-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"06a8f4cd-585e-43e5-992a-156951ca77b1","gmt_create":"2025-10-08T18:55:43+08:00","gmt_modified":"2025-10-08T18:55:43+08:00"},{"catalog_id":"708d0f68-64e4-4da7-a329-e73234ebb6d3","title":"权限规则定义","description":"permission-definition","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f63d9ee2-939e-4112-8422-b76013d0c37b","gmt_create":"2025-10-08T18:55:45+08:00","gmt_modified":"2025-10-08T18:55:45+08:00"},{"catalog_id":"5a0f3a66-d169-4a34-95ca-e173a89429e2","title":"京东卡密账户管理","description":"api-card-info-jd-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0eb68661-00bd-4d95-809e-54d87927a654","gmt_create":"2025-10-08T18:56:14+08:00","gmt_modified":"2025-10-08T18:56:14+08:00"},{"catalog_id":"f1ed70ff-aea4-4289-8223-fecd0ffd2cad","title":"构建阶段详解","description":"dockerfile-build","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4c36e3bc-fa82-4d1b-a78d-e0832adf415b","gmt_create":"2025-10-08T18:56:29+08:00","gmt_modified":"2025-10-08T18:56:29+08:00"},{"catalog_id":"6a7b8a19-18bb-4222-8c43-45f6c25ea130","title":"天猫卡密账户管理","description":"api-card-info-tmall-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a75ff292-fb3f-42ba-84d8-189105b57626","gmt_create":"2025-10-08T18:56:38+08:00","gmt_modified":"2025-10-08T18:56:38+08:00"},{"catalog_id":"9b95c229-e3f1-4960-a0be-1b88f001b0bd","title":"主服务配置","description":"docker_compose_main_service","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3aade0ca-f25c-404f-a8ac-3b3d5d3619c1","gmt_create":"2025-10-08T18:57:12+08:00","gmt_modified":"2025-10-08T18:57:12+08:00"},{"catalog_id":"18a1847d-4be2-4c61-af2e-3f527f5f3d1c","title":"沃尔玛卡密账户管理","description":"api-card-info-walmart-account","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"d7798344-7bd7-4d4b-b7af-12e478898534","gmt_create":"2025-10-08T18:57:15+08:00","gmt_modified":"2025-10-08T18:57:15+08:00"},{"catalog_id":"745be06d-31ed-45f2-9822-e6cf41730cae","title":"Apple卡密充值处理","description":"apple-recharge-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1acfa79b-62c0-4874-99e4-6ae09004acc4","gmt_create":"2025-10-08T18:57:37+08:00","gmt_modified":"2025-10-08T18:57:37+08:00"},{"catalog_id":"230cd5da-15c7-41e8-9ed4-a0cc2496bd71","title":"京东卡密兑换处理","description":"jd-card-redeem-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6e962549-b111-4d8e-b263-89eafba99a84","gmt_create":"2025-10-08T18:58:15+08:00","gmt_modified":"2025-10-08T18:58:15+08:00"},{"catalog_id":"58030d31-a0a0-4431-abd1-4065b0200dfc","title":"天猫卡密订单处理","description":"tmall-order-processing","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4d1ec235-b735-4351-abdb-3721a223dd51","gmt_create":"2025-10-08T18:58:16+08:00","gmt_modified":"2025-10-08T18:58:16+08:00"},{"catalog_id":"321018b9-e7f9-4101-968c-1818559aeb32","title":"IP查询优化","description":"ip-query-optimization","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"bd721dc3-a854-4ab4-af6f-1c1a24c2e660","gmt_create":"2025-10-08T18:58:38+08:00","gmt_modified":"2025-10-08T18:58:38+08:00"},{"catalog_id":"beeabbca-9f86-4566-98b3-6bbce10c5df2","title":"双因素认证","description":"two-factor-auth","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"838ae7a4-15cd-489b-b25d-f4af8946b45b","gmt_create":"2025-10-08T18:59:05+08:00","gmt_modified":"2025-10-08T18:59:05+08:00"},{"catalog_id":"c66c0c6a-c5ba-4081-a359-7bb0a47ca417","title":"设备ID存储策略","description":"device-id-storage","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"53947e3e-89de-416d-857e-54a84330a7ae","gmt_create":"2025-10-08T18:59:13+08:00","gmt_modified":"2025-10-08T18:59:13+08:00"},{"catalog_id":"3acdd907-8a5f-4d42-9ff1-61bd6e8cabee","title":"权限验证机制","description":"permission-validation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"5512c349-309d-4bd7-9e7e-ec7df28c6d32","gmt_create":"2025-10-08T18:59:43+08:00","gmt_modified":"2025-10-08T18:59:43+08:00"},{"catalog_id":"f8a44d0b-b413-4926-a059-e1ac7b32cd45","title":"Apple卡密充值处理","description":"api-card-info-apple-recharge","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e146bc47-a61b-4bec-bc1a-37faa13b372c","gmt_create":"2025-10-08T19:00:01+08:00","gmt_modified":"2025-10-08T19:00:01+08:00"},{"catalog_id":"a255fcc8-4b84-415f-bd11-dc26fa62d0b9","title":"京东卡密订单处理","description":"api-card-info-jd-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8a159a71-a6ed-4138-93a9-e7c1be49368b","gmt_create":"2025-10-08T19:00:03+08:00","gmt_modified":"2025-10-08T19:00:03+08:00"},{"catalog_id":"c156f2b2-d455-46fd-8a01-d316c8e27336","title":"天猫卡密订单处理","description":"api-card-info-tmall-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e8e1b906-cdb1-41b2-a03b-8450dfec49e1","gmt_create":"2025-10-08T19:00:59+08:00","gmt_modified":"2025-10-08T19:00:59+08:00"},{"catalog_id":"694e73a1-0845-4ebf-a2f6-990acde1e379","title":"沃尔玛卡密订单处理","description":"api-card-info-walmart-order","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f696338b-1dae-45bc-b4e4-f7aab1a66b0d","gmt_create":"2025-10-08T19:01:13+08:00","gmt_modified":"2025-10-08T19:01:13+08:00"},{"catalog_id":"754a8225-3d82-4760-bc4f-280e0c19eb86","title":"运行阶段详解","description":"dockerfile-runtime","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e05b2dc7-2335-4c8b-b24c-48a1f98f5361","gmt_create":"2025-10-08T19:01:19+08:00","gmt_modified":"2025-10-08T19:01:19+08:00"},{"catalog_id":"350fc114-3308-4a56-87eb-6916d2c2e278","title":"数据库配置","description":"docker_compose_database","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"34d853c3-140d-40d8-80fa-e7f32e322305","gmt_create":"2025-10-08T19:01:54+08:00","gmt_modified":"2025-10-08T19:01:54+08:00"},{"catalog_id":"677ff050-ffe6-4e0c-93e6-5aa4da717ad6","title":"Apple卡密历史记录管理","description":"apple-history-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2c96823f-d6db-46ca-a33c-dbfdc28756a1","gmt_create":"2025-10-08T19:02:08+08:00","gmt_modified":"2025-10-08T19:02:08+08:00"},{"catalog_id":"b86eeb37-caa6-4edb-807b-036800419a82","title":"京东卡密分组管理","description":"jd-card-group-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3a97712d-0f09-4a0a-b365-60d2af7a7fe2","gmt_create":"2025-10-08T19:02:13+08:00","gmt_modified":"2025-10-08T19:02:13+08:00"},{"catalog_id":"1072ba9e-1fcc-4ea4-9598-564f965be8fd","title":"设备ID匹配算法","description":"device-id-matching","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"17fa72bc-2bc8-478c-9b6a-9d6cae53f588","gmt_create":"2025-10-08T19:02:59+08:00","gmt_modified":"2025-10-08T19:02:59+08:00"},{"catalog_id":"9267865e-7ecd-4a9f-9bdc-66f3c47cdd00","title":"天猫卡密工作空间管理","description":"tmall-workspace-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"7aca7e2a-1e25-4628-a4ba-3f97fdeb9279","gmt_create":"2025-10-08T19:03:01+08:00","gmt_modified":"2025-10-08T19:03:01+08:00"},{"catalog_id":"4de9e641-e754-4df4-be5c-96bd78e98da8","title":"IP限制策略","description":"ip-restriction-strategy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"ff38a877-a28e-47d8-b5c9-939b865c97a3","gmt_create":"2025-10-08T19:03:06+08:00","gmt_modified":"2025-10-08T19:03:06+08:00"},{"catalog_id":"282f094b-3780-49d1-b057-75345b1de3c1","title":"会话管理","description":"session-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"6d1d4be2-a13f-4897-bcc9-362da9158d9b","gmt_create":"2025-10-08T19:03:57+08:00","gmt_modified":"2025-10-08T19:03:57+08:00"},{"catalog_id":"0406e349-1ce0-4ec4-9c86-6c842ad5b1d2","title":"权限策略管理","description":"permission-policy-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4a89e30e-d877-427e-98c3-0d58a4fba7a8","gmt_create":"2025-10-08T19:03:58+08:00","gmt_modified":"2025-10-08T19:03:58+08:00"},{"catalog_id":"6d3c9aea-cd8a-4031-b3a4-7491202249b6","title":"Apple卡密配置管理","description":"api-card-info-apple-config","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0ae6bf62-bc86-44bf-b631-7329d2a379ca","gmt_create":"2025-10-08T19:04:12+08:00","gmt_modified":"2025-10-08T19:04:12+08:00"},{"catalog_id":"45710fa8-25aa-4217-ae14-a73410f49c30","title":"京东卡密数据汇总","description":"api-card-info-jd-summary","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"4bf6885a-1224-4cca-8789-3f3def1f0343","gmt_create":"2025-10-08T19:04:46+08:00","gmt_modified":"2025-10-08T19:04:46+08:00"},{"catalog_id":"1bb36bef-7cd2-4cfe-895a-726588a9a89b","title":"天猫卡密店铺管理","description":"api-card-info-tmall-shop","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"0cfb0e8f-47c2-4030-a2e1-3993fb770b8d","gmt_create":"2025-10-08T19:05:04+08:00","gmt_modified":"2025-10-08T19:05:04+08:00"},{"catalog_id":"25942f43-183a-4e00-be2e-c61ae84373a3","title":"沃尔玛卡密分组管理","description":"api-card-info-walmart-group","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1d532660-5e04-421b-a2b4-3e542c48a890","gmt_create":"2025-10-08T19:05:31+08:00","gmt_modified":"2025-10-08T19:05:31+08:00"},{"catalog_id":"f9c16741-f716-4147-9f51-cd748e8960a5","title":"缓存配置","description":"docker_compose_cache","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"30b6ff79-67a8-4a39-9112-e0af3e9e7f7d","gmt_create":"2025-10-08T19:05:35+08:00","gmt_modified":"2025-10-08T19:05:35+08:00"},{"catalog_id":"f7e484b5-92f1-43b5-8bf5-9cd33a035658","title":"设备ID隐私保护","description":"device-id-privacy","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"a3c9a66f-dcd6-40fb-89b8-abb130e7744a","gmt_create":"2025-10-08T19:05:48+08:00","gmt_modified":"2025-10-08T19:05:48+08:00"},{"catalog_id":"f72acdfa-67dd-4c2f-8c3f-17f119b4be62","title":"部署自动化","description":"docker_compose_deployment_automation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"324bc16b-185c-4af1-8202-3d9b7a9e6e6f","gmt_create":"2025-10-08T19:06:32+08:00","gmt_modified":"2025-10-08T19:06:32+08:00"},{"catalog_id":"e5c8c7c7-0135-416c-a55a-80655940b9c4","title":"天猫卡密回调机制","description":"api-card-info-tmall-callback","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"24431815-8687-4b29-b798-214916920f7f","gmt_create":"2025-10-08T19:06:42+08:00","gmt_modified":"2025-10-08T19:06:43+08:00"},{"catalog_id":"fd83f8e3-9940-400c-9e6d-de5f5af056a4","title":"天猫卡密工作区管理","description":"api-card-info-tmall-workspace","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eee4b669-1eb7-45b9-a835-ffebfee1f682","gmt_create":"2025-10-08T19:06:55+08:00","gmt_modified":"2025-10-08T19:06:55+08:00"},{"catalog_id":"529d0827-5291-40f8-8e40-3b0ec55570bc","title":"京东Cookie管理模块重构设计","description":"jd-cookie-refactor-design","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"743dffa6-cd2e-413c-8747-415bb3c039fc","gmt_create":"2025-10-11T17:31:20+08:00","gmt_modified":"2025-10-11T17:31:20+08:00"},{"catalog_id":"9f851a40-0195-456e-b877-f1610bee0ca0","title":"京东订单导出功能","description":"jd_cookie_order_export","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"cecd7414-54a1-46db-acb9-ef5c2ce5baa9","gmt_create":"2025-10-18T22:09:05+08:00","gmt_modified":"2025-10-18T22:09:05+08:00"},{"catalog_id":"816e73fd-ddde-4333-9ddc-b0bed7d5d9e0","title":"订单回调功能","description":"jd_cookie_callback","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"27f11a59-20e5-47ab-b0a7-8f66f2b87a3e","gmt_create":"2025-10-18T22:10:35+08:00","gmt_modified":"2025-10-18T22:10:35+08:00"},{"catalog_id":"2b9019cd-02f4-470d-8202-7f5c7bfda871","title":"Aes Encryption System","description":"aes-encryption-system","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"56220162-83a7-4515-961e-ead90b488a0f","gmt_create":"2025-11-18T17:20:52.83714+08:00","gmt_modified":"2025-11-18T17:20:52.838687+08:00"},{"catalog_id":"684c6e3a-714a-4c56-ac79-76dd3bf8b711","title":"Otel Recovery Mechanism","description":"otel-recovery-mechanism","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"37f505f3-bc0f-4e17-9e68-01ee420781be","gmt_create":"2025-11-18T17:22:20.655605+08:00","gmt_modified":"2025-11-18T17:22:20.656167+08:00"},{"catalog_id":"8e78cb1a-5de9-4638-b6af-8323a944817a","title":"Camel Oil Integration","description":"camel-oil-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"95e1342a-0e12-4512-98c2-4949a5826e9e","gmt_create":"2025-11-18T17:23:20.215395+08:00","gmt_modified":"2025-11-18T17:23:20.21801+08:00"},{"catalog_id":"07cb49ec-6a3b-473f-9fbc-7470be3dd4c7","title":"Apple Integration","description":"apple-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"eaaecd0d-f07e-4e5b-8963-4c7502751370","gmt_create":"2025-11-18T17:25:02.574506+08:00","gmt_modified":"2025-11-18T17:25:02.580364+08:00"},{"catalog_id":"a848c21a-fe0e-4e1a-b189-d3aa8b219443","title":"Jd Cookie Validation","description":"jd-cookie-validation","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"2fb4f893-35e3-4c02-9030-cbf1a5311cb1","gmt_create":"2025-11-18T17:26:02.169904+08:00","gmt_modified":"2025-11-18T17:26:02.171049+08:00"},{"catalog_id":"7db12e70-0f35-4efa-924d-3161cf2cfd56","title":"Kami Gateway Integration","description":"kami-gateway-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"3669c1b3-c4d8-48b6-a48a-a1d8d4d3d0d7","gmt_create":"2025-11-18T17:27:31.263507+08:00","gmt_modified":"2025-11-18T17:27:31.264876+08:00"},{"catalog_id":"0f5bd67b-d698-4271-8a8b-f64cf051c127","title":"User Login Log","description":"user-login-log","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"af7baacb-f954-45ab-bdd0-1781066d8db2","gmt_create":"2025-11-18T17:28:41.456205+08:00","gmt_modified":"2025-11-18T17:28:41.457343+08:00"},{"catalog_id":"65fcee59-e0a9-4fc4-8532-8b01f7ebb168","title":"Camel Oil Account Management","description":"camel-oil-account-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"e00311d3-8a99-4aeb-8a73-3e2051477971","gmt_create":"2025-11-21T00:54:11.175892+08:00","gmt_modified":"2025-11-21T00:54:11.176472+08:00"},{"catalog_id":"a2acb678-1a44-494a-b250-4fcb5dbf9ee5","title":"Camel Oil Order Management","description":"camel-oil-order-management","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"8ba82ef1-8aa4-40a6-93a9-21d779a6ed57","gmt_create":"2025-11-21T00:54:56.996619+08:00","gmt_modified":"2025-11-21T00:54:56.997567+08:00"},{"catalog_id":"d75fa3b8-6b32-432d-a003-2102085786e2","title":"Camel Oil Cron Jobs","description":"camel-oil-cron-jobs","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"124cd8d1-7b11-4504-b173-00b616be4217","gmt_create":"2025-11-21T00:55:59.16767+08:00","gmt_modified":"2025-11-21T00:55:59.168958+08:00"},{"catalog_id":"8a8b0b57-a86e-4808-ab09-364c89440bf7","title":"Camel Oil Database Schema","description":"camel-oil-database-schema","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"f305e0c7-f9b7-4ea4-8a2f-ce0c4b0f7962","gmt_create":"2025-11-21T00:57:03.985634+08:00","gmt_modified":"2025-11-21T00:57:03.98722+08:00"},{"catalog_id":"e1602b6a-2680-43ef-96a7-63c65276f5b3","title":"Camel Oil Api Endpoints","description":"camel-oil-api-endpoints","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"7356b972-c69a-47c3-94b6-5a2bb0aaa297","gmt_create":"2025-11-21T00:57:54.508794+08:00","gmt_modified":"2025-11-21T00:57:54.509866+08:00"},{"catalog_id":"684c2c69-b4ae-4c95-ba20-8f4ca733975e","title":"Pig Integration","description":"pig-integration","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"1a6141a1-1580-4e97-ad9c-ce8b32e22063","gmt_create":"2025-11-21T00:59:15.773246+08:00","gmt_modified":"2025-11-21T00:59:15.774846+08:00"},{"catalog_id":"64cac37f-2358-49fc-8711-5b10dd56755a","title":"Graceful Shutdown Fix","description":"graceful-shutdown-fix","extend":"{}","progress_status":"completed","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740","id":"62ac605d-6709-41e3-b6ff-8e8558c68d66","gmt_create":"2025-11-21T01:00:12.450993+08:00","gmt_modified":"2025-11-21T01:00:12.452238+08:00"}],"wiki_overview":{"content":"\u003cblog\u003e\n# kami_backend 项目综合分析报告\n\n## 1. 项目介绍\n\n### 项目目的\nkami_backend 是一个基于 GoFrame 框架构建的后端服务系统,主要功能是为各类电商平台(如京东、天猫、沃尔玛、Ctrip 等)的卡密信息管理、订单处理、账户管理提供统一的 API 接口支持。系统集成了权限控制、支付管理、商户管理、风控限制等模块,形成了完整的后台管理系统。\n\n### 核心目标\n- 提供统一的电商平台卡密充值与兑换接口\n- 实现多平台账户信息集中管理\n- 支持灵活的权限控制与角色管理\n- 构建可扩展的微服务架构基础\n- 集成可观测性系统(OpenTelemetry)\n\n### 目标用户\n- 平台运营管理人员\n- 第三方商户接入方\n- 系统维护与开发人员\n- 安全审计人员\n\n## 2. 技术架构\n\n### 组件分解\n项目采用典型的分层架构设计,包含以下核心组件:\n\n- **API 层**:位于 `api/` 目录,定义了所有对外暴露的 RESTful 接口\n- **Controller 层**:位于 `internal/controller/`,处理请求转发与参数校验\n- **Service 层**:位于 `internal/service/`,实现核心业务逻辑\n- **Logic 层**:位于 `internal/logic/`,封装具体业务规则\n- **DAO 层**:位于 `internal/dao/`,负责数据访问操作\n- **Model 层**:位于 `internal/model/`,定义数据结构与实体\n- **Utility 工具层**:位于 `utility/`,提供通用工具函数\n\n### 设计模式\n系统采用了多种设计模式:\n- **MVC 模式**:清晰分离关注点\n- **依赖注入**:通过 GoFrame 的 DI 机制实现\n- **中间件模式**:用于认证、日志、错误处理\n- **策略模式**:不同电商平台的处理逻辑分离\n\n### 系统关系与数据流\n\n```mermaid\nflowchart TD\n A[客户端] --\u003e B[API Gateway]\n B --\u003e C[Middlewares]\n C --\u003e D[Controller]\n D --\u003e E[Service]\n E --\u003e F[Logic]\n F --\u003e G[DAO]\n G --\u003e H[(MySQL)]\n G --\u003e I[(Redis)]\n J[OpenTelemetry] \u003c--\u003e K[日志/监控/追踪]\n style A fill:#f9f,stroke:#333\n style H fill:#ccf,stroke:#333\n style I fill:#ccf,stroke:#333\n```\n\n## 3. 关键实现\n\n### 主要入口点\n- **main.go**:应用启动入口,负责初始化 OTel 和运行主服务\n- **cmd.go**:命令行处理逻辑\n- **boot_enums.go**:系统启动时自动加载的枚举配置\n\nSources:\n- [main.go](main.go)\n- [cmd.go](internal/cmd/cmd.go)\n- [boot_enums.go](internal/boot/boot_enums.go)\n\n### 核心模块\n- **权限管理模块** (`api/authority`):基于 Casbin 的 RBAC 权限控制\n- **卡密信息管理模块** (`api/card_info_*`):支持多个电商平台\n- **订单管理模块** (`api/order`):统一订单处理流程\n- **商户管理模块** (`api/merchant`):商户接入与配置管理\n- **风控限制模块** (`api/restriction`):IP 限制、访问控制等\n\nSources:\n- [authority.go](api/authority/authority.go)\n- [order.go](api/order/order.go)\n- [merchant.go](api/merchant/merchant.go)\n- [restriction.go](api/restriction/restriction.go)\n\n### 配置方法\n系统使用 YAML 配置文件进行管理,主要配置文件包括:\n\n- `manifest/config/config.yaml`:主配置文件,包含数据库、Redis、服务端口等\n- `hack/config.yaml`:gfcli 工具配置,用于代码生成\n- `resource/casbin/rbac_model.conf`:权限模型配置\n\n配置通过 GoFrame 的 gcfg 组件加载,支持环境变量覆盖。\n\nSources:\n- [config.yaml](manifest/config/config.yaml)\n- [rbac_model.conf](resource/casbin/rbac_model.conf)\n\n### 外部依赖\n```mermaid\ngraph TD\n A[kami_backend] --\u003e B[MySQL]\n A --\u003e C[Redis]\n A --\u003e D[OpenTelemetry Collector]\n A --\u003e E[Taobao API]\n A --\u003e F[Jingdong Service]\n A --\u003e G[Ctrip API]\n A --\u003e H[Walmart API]\n A --\u003e I[Agiso Platform]\n style A fill:#f96,stroke:#333\n```\n\n### 集成点\n- **OAuth2 集成**:天猫游戏平台 OAuth 接入\n- **第三方支付通知**:飞书 Webhook 通知\n- **外部服务调用**:京东卡密服务、Ctrip 接口等\n- **可观测性集成**:OpenTelemetry 全链路追踪\n\nSources:\n- [config.yaml](manifest/config/config.yaml#L80-L95)\n\n## 4. 关键特性\n\n### 功能概览\n- 多平台卡密充值与兑换\n- 完善的权限与角色管理体系\n- 商户接入与配置管理\n- 订单全生命周期管理\n- 风控与访问限制机制\n- 可视化监控与日志系统\n\n### 实现亮点\n- **模块化设计**:每个电商平台独立模块,易于扩展\n- **自动化代码生成**:通过 gfcli 自动生成 DAO、Service 等代码\n- **安全机制完善**:包含 MFA、Token 加密、AES/MD5 验证等\n- **可观测性强**:集成 OpenTelemetry 实现监控、追踪、日志一体化\n\n### 特性架构图\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e 初始化\n 初始化 --\u003e 配置加载: 读取YAML\n 配置加载 --\u003e 数据库连接: MySQL/Redis\n 数据库连接 --\u003e 服务注册: API路由\n 服务注册 --\u003e 权限初始化: Casbin\n 权限初始化 --\u003e 运行中: 接收请求\n 运行中 --\u003e 异常处理: Middleware\n 异常处理 --\u003e 运行中\n 运行中 --\u003e 日志记录: OTel\n```\n\nSources:\n- [main.go](main.go#L1-L49)\n- [config.go](utility/config/config.go)\n- [otel](utility/otel)\n\u003c/blog\u003e","gmt_create":"2025-10-08T18:16:44+08:00","gmt_modified":"2025-10-08T18:16:44+08:00","id":"2a3bb0d1-da41-428d-be41-2df43f097c60","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740"},"wiki_readme":{"content":"### docker deploy token\r\n\r\n579f3fab0f179949b1b8a509ba4f2dff0c8dcdd5","gmt_create":"2025-10-08T17:56:14+08:00","gmt_modified":"2025-10-08T17:56:14+08:00","id":"f3ffe0e6-9115-4f61-b2cb-742ee58f26e2","repo_id":"151903b3-bd50-409c-b5b5-1928c28ec740"},"wiki_repo":{"id":"151903b3-bd50-409c-b5b5-1928c28ec740","name":"kami_backend","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── api\\n│ ├── authority\\n│ │ ├── v1\\n│ │ │ ├── menu.go\\n│ │ │ ├── model.go\\n│ │ │ ├── role.go\\n│ │ │ └── tenant.go\\n│ │ └── authority.go\\n│ ├── card_info_apple\\n│ │ ├── v1\\n│ │ │ ├── account_history.go\\n│ │ │ ├── account_info.go\\n│ │ │ ├── config.go\\n│ │ │ ├── model.go\\n│ │ │ ├── order.go\\n│ │ │ ├── order_history.go\\n│ │ │ └── order_steal.go\\n│ │ └── card_info_apple.go\\n│ ├── card_info_c_trip\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ └── order.go\\n│ │ └── card_info_c_trip.go\\n│ ├── card_info_jd\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ ├── order.go\\n│ │ │ └── order_summary.go\\n│ │ └── card_info_jd.go\\n│ ├── card_info_original_jd\\n│ │ ├── v1\\n│ │ │ └── account.go\\n│ │ └── card_info_original_jd.go\\n│ ├── card_info_t_mall_game\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── callback.go\\n│ │ │ ├── fake.go\\n│ │ │ ├── order.go\\n│ │ │ ├── shop.go\\n│ │ │ ├── sync.go\\n│ │ │ └── workspace.go\\n│ │ └── card_info_t_mall_game.go\\n│ ├── card_info_walmart\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ ├── config.go\\n│ │ │ ├── group.go\\n│ │ │ ├── order.go\\n│ │ │ ├── order_summary.go\\n│ │ │ └── stats.go\\n│ │ └── card_info_walmart.go\\n│ ├── card_redeem_jd\\n│ │ ├── v1\\n│ │ │ ├── account.go\\n│ │ │ └── order.go\\n│ │ └── card_redeem_jd.go\\n│ ├── channel\\n│ │ ├── v2\\n│ │ │ ├── entrance.go\\n│ │ │ └── model.go\\n│ │ └── channel.go\\n│ ├── commonApi\\n│ │ └── common.go\\n│ ├── fund\\n│ │ ├── v1\\n│ │ │ ├── wallet.go\\n│ │ │ └── wallet_log.go\\n│ │ └── fund.go\\n│ ├── merchant\\n│ │ ├── v1\\n│ │ │ ├── config.go\\n│ │ │ ├── deploy.go\\n│ │ │ ├── model.go\\n│ │ │ ├── order.go\\n│ │ │ └── steal.go\\n│ │ └── merchant.go\\n│ ├── monitor\\n│ │ ├── v1\\n│ │ │ └── heathcheck.go\\n│ │ └── monitor.go\\n│ ├── order\\n│ │ ├── v1\\n│ │ │ ├── form.go\\n│ │ │ ├── log.go\\n│ │ │ └── order_summary.go\\n│ │ └── order.go\\n│ ├── restriction\\n│ │ ├── v1\\n│ │ │ ├── collection.go\\n│ │ │ └── province.go\\n│ │ └── restriction.go\\n│ ├── road\\n│ │ ├── v1\\n│ │ │ └── road.go\\n│ │ └── road.go\\n│ ├── road_pool\\n│ │ ├── v1\\n│ │ │ └── road_pool.go\\n│ │ └── road_pool.go\\n│ ├── sysUser\\n│ │ ├── v1\\n│ │ │ ├── logout.go\\n│ │ │ ├── model.go\\n│ │ │ ├── payment.go\\n│ │ │ ├── sysUser.go\\n│ │ │ └── totp.go\\n│ │ └── sysUser.go\\n│ ├── sys_auth_rule\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_auth_rule.go\\n│ │ └── sys_auth_rule.go\\n│ ├── sys_payment\\n│ │ ├── v1\\n│ │ │ ├── statistic.go\\n│ │ │ └── sys_payment.go\\n│ │ └── sys_payment.go\\n│ ├── sys_role\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_role.go\\n│ │ └── sys_role.go\\n│ ├── sys_user_login\\n│ │ ├── v1\\n│ │ │ ├── model.go\\n│ │ │ └── sys_user_login.go\\n│ │ └── sys_user_login.go\\n│ ├── user_center\\n│ │ ├── v1\\n│ │ │ └── info.go\\n│ │ └── user_center.go\\n│ └── validation\\n│ ├── v1\\n│ │ └── captcha.go\\n│ └── validation.go\\n├── hack\\n│ └── config.yaml\\n├── internal\\n│ ├── boot\\n│ │ └── boot_enums.go\\n│ ├── cmd\\n│ │ └── cmd.go\\n│ ├── consts\\n│ │ ├── asigo.go\\n│ │ ├── cache.go\\n│ │ ├── card_apple.go\\n│ │ ├── card_excharge.go\\n│ │ ├── card_jd.go\\n│ │ ├── card_recharge_t_mall.go\\n│ │ ├── card_redeem.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── common.go\\n│ │ ├── consts.go\\n│ │ ├── entrance.go\\n│ │ ├── login_status.go\\n│ │ ├── restriction.go\\n│ │ ├── road.go\\n│ │ ├── sysUser.go\\n│ │ ├── sys_config_dict.go\\n│ │ ├── sys_user_channel_config.go\\n│ │ ├── sys_user_deductions.go\\n│ │ └── sys_user_payment_record.go\\n│ ├── controller\\n│ │ ├── authority\\n│ │ │ ├── authority.go\\n│ │ │ ├── authority_new.go\\n│ │ │ ├── authority_v1_menu_create.go\\n│ │ │ ├── authority_v1_menu_delete.go\\n│ │ │ ├── authority_v1_menu_list.go\\n│ │ │ ├── authority_v1_menu_update.go\\n│ │ │ ├── authority_v1_role_create.go\\n│ │ │ ├── authority_v1_role_delete.go\\n│ │ │ ├── authority_v1_role_list.go\\n│ │ │ ├── authority_v1_role_update.go\\n│ │ │ ├── authority_v1_tenant_create.go\\n│ │ │ ├── authority_v1_tenant_delete.go\\n│ │ │ ├── authority_v1_tenant_list.go\\n│ │ │ └── authority_v1_tenant_update.go\\n│ │ ├── card_info_apple\\n│ │ │ ├── apple_card_info_v1_recharge_list_download_test.go\\n│ │ │ ├── card_info_apple.go\\n│ │ │ ├── card_info_apple_new.go\\n│ │ │ ├── card_info_apple_v1_call_back_order_manual.go\\n│ │ │ ├── card_info_apple_v1_card_history_info_list.go\\n│ │ │ ├── card_info_apple_v1_card_info_batch_add_from_xlsx.go\\n│ │ │ ├── card_info_apple_v1_card_info_create.go\\n│ │ │ ├── card_info_apple_v1_card_info_delete.go\\n│ │ │ ├── card_info_apple_v1_card_info_download_template.go\\n│ │ │ ├── card_info_apple_v1_card_info_list.go\\n│ │ │ ├── card_info_apple_v1_card_info_suspend_or_continue.go\\n│ │ │ ├── card_info_apple_v1_card_info_update.go\\n│ │ │ ├── card_info_apple_v1_card_info_update_status.go\\n│ │ │ ├── card_info_apple_v1_config_get.go\\n│ │ │ ├── card_info_apple_v1_config_set.go\\n│ │ │ ├── card_info_apple_v1_recharge_duplicated_card_pass.go\\n│ │ │ ├── card_info_apple_v1_recharge_handler.go\\n│ │ │ ├── card_info_apple_v1_recharge_history_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_itunes_callback.go\\n│ │ │ ├── card_info_apple_v1_recharge_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_list_download.go\\n│ │ │ ├── card_info_apple_v1_recharge_order_modify_actual_amount.go\\n│ │ │ ├── card_info_apple_v1_recharge_order_reset_status.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_add.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_delete.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_list.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_status_update.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_rule_update.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_setting.go\\n│ │ │ ├── card_info_apple_v1_recharge_steal_setting_get.go\\n│ │ │ ├── card_info_apple_v1_recharge_submit.go\\n│ │ │ └── card_info_apple_v1_recharge_submit_query.go\\n│ │ ├── card_info_c_trip\\n│ │ │ ├── card_info_c_trip.go\\n│ │ │ ├── card_info_c_trip_new.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_batch_add.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_batch_check.go\\n│ │ │ ├── card_info_c_trip_v1_account_cookie_check.go\\n│ │ │ ├── card_info_c_trip_v1_account_create.go\\n│ │ │ ├── card_info_c_trip_v1_account_delete.go\\n│ │ │ ├── card_info_c_trip_v1_account_list.go\\n│ │ │ ├── card_info_c_trip_v1_account_refresh_status.go\\n│ │ │ ├── card_info_c_trip_v1_account_update.go\\n│ │ │ ├── card_info_c_trip_v1_account_update_status.go\\n│ │ │ ├── card_info_c_trip_v1_account_wallet_list.go\\n│ │ │ ├── card_info_c_trip_v1_download.go\\n│ │ │ ├── card_info_c_trip_v1_download_template.go\\n│ │ │ ├── card_info_c_trip_v1_list.go\\n│ │ │ ├── card_info_c_trip_v1_order_callback.go\\n│ │ │ ├── card_info_c_trip_v1_order_history.go\\n│ │ │ ├── card_info_c_trip_v1_redeem_config_get.go\\n│ │ │ ├── card_info_c_trip_v1_redeem_config_set.go\\n│ │ │ └── card_info_c_trip_v1_submit.go\\n│ │ ├── card_info_jd\\n│ │ │ ├── card_info_jd.go\\n│ │ │ ├── card_info_jd_new.go\\n│ │ │ ├── card_info_jd_v1_download.go\\n│ │ │ ├── card_info_jd_v1_download_template.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_batch_add.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_batch_check.go\\n│ │ │ ├── card_info_jd_v1_jd_account_cookie_check.go\\n│ │ │ ├── card_info_jd_v1_jd_account_create.go\\n│ │ │ ├── card_info_jd_v1_jd_account_delete.go\\n│ │ │ ├── card_info_jd_v1_jd_account_list.go\\n│ │ │ ├── card_info_jd_v1_jd_account_refresh_status.go\\n│ │ │ ├── card_info_jd_v1_jd_account_update.go\\n│ │ │ ├── card_info_jd_v1_jd_account_update_status.go\\n│ │ │ ├── card_info_jd_v1_jd_account_wallet_list.go\\n│ │ │ ├── card_info_jd_v1_jd_config_get.go\\n│ │ │ ├── card_info_jd_v1_jd_config_set.go\\n│ │ │ ├── card_info_jd_v1_list.go\\n│ │ │ ├── card_info_jd_v1_order_callback.go\\n│ │ │ ├── card_info_jd_v1_order_history.go\\n│ │ │ ├── card_info_jd_v1_order_summary_list.go\\n│ │ │ └── card_info_jd_v1_submit.go\\n│ │ ├── card_info_original_jd\\n│ │ │ ├── card_info_original_jd.go\\n│ │ │ ├── card_info_original_jd_new.go\\n│ │ │ ├── card_info_original_jd_v1_original_download.go\\n│ │ │ ├── card_info_original_jd_v1_original_download_template.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_batch_add.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_batch_check.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_cookie_check.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_create.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_delete.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_list.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_refresh_status.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_update.go\\n│ │ │ ├── card_info_original_jd_v1_original_jd_account_update_status.go\\n│ │ │ └── card_info_original_jd_v1_original_jd_account_wallet_list.go\\n│ │ ├── card_info_t_mall_game\\n│ │ │ ├── card_info_t_mall_game.go\\n│ │ │ ├── card_info_t_mall_game_new.go\\n│ │ │ ├── card_info_t_mall_game_v1_call_back_order_manual.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_authorize_callback.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_authorize_get_key.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_create.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_delete.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_get_one_random.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_t_mall_auth_status.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_account_toggle.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_agiso_callback.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_agiso_callback_test.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_daily_order_summary.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_data_sync.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_modify_status_succeed.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_query_category.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_query_order.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_order_submit.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_get_one.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_history.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_list.go\\n│ │ │ ├── card_info_t_mall_game_v1_t_mall_game_shop_order_t_mall_history.go\\n│ │ │ └── card_info_t_mall_game_v1_t_mall_game_stats.go\\n│ │ ├── card_info_walmart\\n│ │ │ ├── card_info_walmart.go\\n│ │ │ ├── card_info_walmart_new.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_batch_add.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_batch_check.go\\n│ │ │ ├── card_info_walmart_v1_account_cookie_check.go\\n│ │ │ ├── card_info_walmart_v1_account_create.go\\n│ │ │ ├── card_info_walmart_v1_account_daily_summary.go\\n│ │ │ ├── card_info_walmart_v1_account_delete.go\\n│ │ │ ├── card_info_walmart_v1_account_list.go\\n│ │ │ ├── card_info_walmart_v1_account_load.go\\n│ │ │ ├── card_info_walmart_v1_account_refresh_status.go\\n│ │ │ ├── card_info_walmart_v1_account_status_detect.go\\n│ │ │ ├── card_info_walmart_v1_account_summary_download.go\\n│ │ │ ├── card_info_walmart_v1_account_update.go\\n│ │ │ ├── card_info_walmart_v1_account_update_status.go\\n│ │ │ ├── card_info_walmart_v1_account_wallet_list.go\\n│ │ │ ├── card_info_walmart_v1_download.go\\n│ │ │ ├── card_info_walmart_v1_download_template.go\\n│ │ │ ├── card_info_walmart_v1_group_add.go\\n│ │ │ ├── card_info_walmart_v1_group_all_list.go\\n│ │ │ ├── card_info_walmart_v1_group_delete.go\\n│ │ │ ├── card_info_walmart_v1_group_export.go\\n│ │ │ ├── card_info_walmart_v1_group_list.go\\n│ │ │ ├── card_info_walmart_v1_group_stat.go\\n│ │ │ ├── card_info_walmart_v1_group_update.go\\n│ │ │ ├── card_info_walmart_v1_list.go\\n│ │ │ ├── card_info_walmart_v1_order_callback.go\\n│ │ │ ├── card_info_walmart_v1_order_export.go\\n│ │ │ ├── card_info_walmart_v1_order_history.go\\n│ │ │ ├── card_info_walmart_v1_order_status_reset.go\\n│ │ │ ├── card_info_walmart_v1_order_summary_list.go\\n│ │ │ ├── card_info_walmart_v1_redeem_config_get.go\\n│ │ │ ├── card_info_walmart_v1_redeem_config_set.go\\n│ │ │ ├── card_info_walmart_v1_stats_overview.go\\n│ │ │ ├── card_info_walmart_v1_stats_overview_download.go\\n│ │ │ └── card_info_walmart_v1_submit.go\\n│ │ ├── card_redeem_jd\\n│ │ │ ├── card_redeem_jd.go\\n│ │ │ ├── card_redeem_jd_new.go\\n│ │ │ ├── card_redeem_jd_v1_account_add.go\\n│ │ │ ├── card_redeem_jd_v1_account_delete.go\\n│ │ │ ├── card_redeem_jd_v1_account_get.go\\n│ │ │ ├── card_redeem_jd_v1_account_list.go\\n│ │ │ ├── card_redeem_jd_v1_account_status.go\\n│ │ │ ├── card_redeem_jd_v1_account_update.go\\n│ │ │ ├── card_redeem_jd_v1_order_list.go\\n│ │ │ └── card_redeem_jd_v1_place_order.go\\n│ │ ├── channel\\n│ │ │ ├── channel.go\\n│ │ │ ├── channel_new.go\\n│ │ │ ├── channel_v2_entrance_create.go\\n│ │ │ ├── channel_v2_entrance_delete.go\\n│ │ │ ├── channel_v2_entrance_list.go\\n│ │ │ └── channel_v2_entrance_update.go\\n│ │ ├── fund\\n│ │ │ ├── fund.go\\n│ │ │ ├── fund_new.go\\n│ │ │ ├── fund_v1_menu_log_create.go\\n│ │ │ ├── fund_v1_menu_log_delete.go\\n│ │ │ ├── fund_v1_menu_log_list.go\\n│ │ │ ├── fund_v1_menu_log_update.go\\n│ │ │ ├── fund_v1_wallet_create.go\\n│ │ │ ├── fund_v1_wallet_delete.go\\n│ │ │ ├── fund_v1_wallet_list.go\\n│ │ │ └── fund_v1_wallet_update.go\\n│ │ ├── merchant\\n│ │ │ ├── merchant.go\\n│ │ │ ├── merchant_new.go\\n│ │ │ ├── merchant_v1_merchant_all_list.go\\n│ │ │ ├── merchant_v1_merchant_config_add.go\\n│ │ │ ├── merchant_v1_merchant_config_detail.go\\n│ │ │ ├── merchant_v1_merchant_config_list.go\\n│ │ │ ├── merchant_v1_merchant_config_status.go\\n│ │ │ ├── merchant_v1_merchant_config_update.go\\n│ │ │ ├── merchant_v1_merchant_deploy_add.go\\n│ │ │ ├── merchant_v1_merchant_deploy_delete.go\\n│ │ │ ├── merchant_v1_merchant_deploy_get_detail.go\\n│ │ │ ├── merchant_v1_merchant_deploy_list.go\\n│ │ │ ├── merchant_v1_merchant_deploy_update.go\\n│ │ │ ├── merchant_v1_merchant_sample_all_list.go\\n│ │ │ ├── merchant_v1_order_query.go\\n│ │ │ ├── merchant_v1_steal_create.go\\n│ │ │ ├── merchant_v1_steal_delete.go\\n│ │ │ ├── merchant_v1_steal_list.go\\n│ │ │ ├── merchant_v1_steal_record_list.go\\n│ │ │ ├── merchant_v1_steal_stats.go\\n│ │ │ ├── merchant_v1_steal_status_get.go\\n│ │ │ ├── merchant_v1_steal_status_set.go\\n│ │ │ ├── merchant_v1_steal_update.go\\n│ │ │ └── merchant_v1_steal_update_status.go\\n│ │ ├── monitor\\n│ │ │ ├── monitor.go\\n│ │ │ ├── monitor_new.go\\n│ │ │ └── monitor_v1_health_check.go\\n│ │ ├── order\\n│ │ │ ├── order.go\\n│ │ │ ├── order_new.go\\n│ │ │ ├── order_v1_order_form_create.go\\n│ │ │ ├── order_v1_order_form_delete.go\\n│ │ │ ├── order_v1_order_form_list.go\\n│ │ │ ├── order_v1_order_form_update.go\\n│ │ │ ├── order_v1_order_log_delete.go\\n│ │ │ ├── order_v1_order_log_list.go\\n│ │ │ ├── order_v1_order_summary_daily_get_list.go\\n│ │ │ └── order_v1_order_summary_get_list.go\\n│ │ ├── restriction\\n│ │ │ ├── restriction.go\\n│ │ │ ├── restriction_new.go\\n│ │ │ ├── restriction_v1_block_order.go\\n│ │ │ ├── restriction_v1_check_ip_allowed.go\\n│ │ │ ├── restriction_v1_query_all_province.go\\n│ │ │ ├── restriction_v1_user_info_collection.go\\n│ │ │ └── restriction_v1_user_info_collection_test.go\\n│ │ ├── road\\n│ │ │ ├── road.go\\n│ │ │ ├── road_new.go\\n│ │ │ └── road_v1_simple_all_get_road.go\\n│ │ ├── road_pool\\n│ │ │ ├── road_pool.go\\n│ │ │ ├── road_pool_new.go\\n│ │ │ └── road_pool_v1_simple_all_get_road.go\\n│ │ ├── sysUser\\n│ │ │ ├── sysUser.go\\n│ │ │ ├── sysUser_new.go\\n│ │ │ ├── sysUser_v1_totp_image_get.go\\n│ │ │ ├── sysUser_v1_totp_reset.go\\n│ │ │ ├── sysUser_v1_totp_set.go\\n│ │ │ ├── sysUser_v1_totp_status_get.go\\n│ │ │ ├── sysUser_v1_user_add.go\\n│ │ │ ├── sysUser_v1_user_change_pwd.go\\n│ │ │ ├── sysUser_v1_user_delete.go\\n│ │ │ ├── sysUser_v1_user_edit.go\\n│ │ │ ├── sysUser_v1_user_forbidden_by_id.go\\n│ │ │ ├── sysUser_v1_user_get_all_user.go\\n│ │ │ ├── sysUser_v1_user_get_by_ids.go\\n│ │ │ ├── sysUser_v1_user_get_edit.go\\n│ │ │ ├── sysUser_v1_user_get_params.go\\n│ │ │ ├── sysUser_v1_user_login_out.go\\n│ │ │ ├── sysUser_v1_user_menus.go\\n│ │ │ ├── sysUser_v1_user_search.go\\n│ │ │ ├── sysUser_v1_user_status.go\\n│ │ │ └── sysUser_v1_user_suspend_or_continue.go\\n│ │ ├── sys_auth_rule\\n│ │ │ ├── sys_auth_rule.go\\n│ │ │ ├── sys_auth_rule_new.go\\n│ │ │ ├── sys_auth_rule_v1_rule_add.go\\n│ │ │ ├── sys_auth_rule_v1_rule_delete.go\\n│ │ │ ├── sys_auth_rule_v1_rule_get_params.go\\n│ │ │ ├── sys_auth_rule_v1_rule_info.go\\n│ │ │ ├── sys_auth_rule_v1_rule_search.go\\n│ │ │ └── sys_auth_rule_v1_rule_update.go\\n│ │ ├── sys_payment\\n│ │ │ ├── sys_payment.go\\n│ │ │ ├── sys_payment_new.go\\n│ │ │ ├── sys_payment_v1_payment_summary_list.go\\n│ │ │ ├── sys_payment_v1_sys_payment_add.go\\n│ │ │ ├── sys_payment_v1_sys_payment_get.go\\n│ │ │ ├── sys_payment_v1_sys_payment_get_one.go\\n│ │ │ ├── sys_payment_v1_sys_payment_records_get.go\\n│ │ │ └── sys_payment_v1_sys_payment_records_get_statistics.go\\n│ │ ├── sys_role\\n│ │ │ ├── sys_role.go\\n│ │ │ ├── sys_role_new.go\\n│ │ │ ├── sys_role_v1_role_add.go\\n│ │ │ ├── sys_role_v1_role_delete.go\\n│ │ │ ├── sys_role_v1_role_edit.go\\n│ │ │ ├── sys_role_v1_role_get.go\\n│ │ │ ├── sys_role_v1_role_get_params.go\\n│ │ │ └── sys_role_v1_role_list.go\\n│ │ ├── sys_user_login\\n│ │ │ ├── sys_user_login.go\\n│ │ │ ├── sys_user_login_new.go\\n│ │ │ └── sys_user_login_v1_user_login.go\\n│ │ ├── user_center\\n│ │ │ ├── user_center.go\\n│ │ │ ├── user_center_new.go\\n│ │ │ └── user_center_v1_get_user_info.go\\n│ │ └── validation\\n│ │ ├── validation.go\\n│ │ ├── validation_new.go\\n│ │ └── validation_v1_get_captcha.go\\n│ ├── dao\\n│ │ ├── internal\\n│ │ │ ├── v_1_account_history_info.go\\n│ │ │ ├── v_1_account_info.go\\n│ │ │ ├── v_1_agent_info.go\\n│ │ │ ├── v_1_bank_card_info.go\\n│ │ │ ├── v_1_card_apple_account_info.go\\n│ │ │ ├── v_1_card_apple_account_info_history.go\\n│ │ │ ├── v_1_card_apple_hidden_settings.go\\n│ │ │ ├── v_1_card_apple_hidden_settings_recharge_info.go\\n│ │ │ ├── v_1_card_apple_history_info.go\\n│ │ │ ├── v_1_card_apple_recharge_info.go\\n│ │ │ ├── v_1_card_redeem_account_deduction.go\\n│ │ │ ├── v_1_card_redeem_account_group.go\\n│ │ │ ├── v_1_card_redeem_account_history.go\\n│ │ │ ├── v_1_card_redeem_account_info.go\\n│ │ │ ├── v_1_card_redeem_account_summary.go\\n│ │ │ ├── v_1_card_redeem_cookie_info.go\\n│ │ │ ├── v_1_card_redeem_cookie_order.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_history.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_jd.go\\n│ │ │ ├── v_1_card_redeem_cookie_order_jd_history.go\\n│ │ │ ├── v_1_card_redeem_order_history.go\\n│ │ │ ├── v_1_card_redeem_order_info.go\\n│ │ │ ├── v_1_legend_any_money.go\\n│ │ │ ├── v_1_legend_area.go\\n│ │ │ ├── v_1_legend_fix_money.go\\n│ │ │ ├── v_1_legend_fix_present.go\\n│ │ │ ├── v_1_legend_group.go\\n│ │ │ ├── v_1_legend_scale_present.go\\n│ │ │ ├── v_1_legend_scale_template.go\\n│ │ │ ├── v_1_menu_info.go\\n│ │ │ ├── v_1_merchant_deploy_info.go\\n│ │ │ ├── v_1_merchant_hidden_config.go\\n│ │ │ ├── v_1_merchant_hidden_record.go\\n│ │ │ ├── v_1_merchant_info.go\\n│ │ │ ├── v_1_merchant_load_info.go\\n│ │ │ ├── v_1_migrations.go\\n│ │ │ ├── v_1_notify_info.go\\n│ │ │ ├── v_1_order_info.go\\n│ │ │ ├── v_1_order_profit_info.go\\n│ │ │ ├── v_1_order_settle_info.go\\n│ │ │ ├── v_1_payfor_info.go\\n│ │ │ ├── v_1_power_info.go\\n│ │ │ ├── v_1_recharge_t_mall_account.go\\n│ │ │ ├── v_1_recharge_t_mall_order.go\\n│ │ │ ├── v_1_recharge_t_mall_order_fake.go\\n│ │ │ ├── v_1_recharge_t_mall_order_history.go\\n│ │ │ ├── v_1_recharge_t_mall_shop.go\\n│ │ │ ├── v_1_recharge_t_mall_shop_history.go\\n│ │ │ ├── v_1_restrict_client_access_ip_relation.go\\n│ │ │ ├── v_1_restrict_client_access_record.go\\n│ │ │ ├── v_1_restrict_ip_order_access.go\\n│ │ │ ├── v_1_restrict_ip_record.go\\n│ │ │ ├── v_1_road_info.go\\n│ │ │ ├── v_1_road_pool_info.go\\n│ │ │ ├── v_1_role_info.go\\n│ │ │ ├── v_1_schema_migrations.go\\n│ │ │ ├── v_1_second_menu_info.go\\n│ │ │ ├── v_1_sys_auth_rule.go\\n│ │ │ ├── v_1_sys_casbin_rule.go\\n│ │ │ ├── v_1_sys_config_dict.go\\n│ │ │ ├── v_1_sys_role.go\\n│ │ │ ├── v_1_sys_user.go\\n│ │ │ ├── v_1_sys_user_config_channel.go\\n│ │ │ ├── v_1_sys_user_deductions.go\\n│ │ │ ├── v_1_sys_user_login_log.go\\n│ │ │ ├── v_1_sys_user_payment.go\\n│ │ │ ├── v_1_sys_user_payment_records.go\\n│ │ │ ├── v_1_task_order_fake.go\\n│ │ │ └── v_1_user_info.go\\n│ │ ├── v_1_account_history_info.go\\n│ │ ├── v_1_account_info.go\\n│ │ ├── v_1_agent_info.go\\n│ │ ├── v_1_bank_card_info.go\\n│ │ ├── v_1_card_apple_account_info.go\\n│ │ ├── v_1_card_apple_account_info_history.go\\n│ │ ├── v_1_card_apple_hidden_settings.go\\n│ │ ├── v_1_card_apple_hidden_settings_recharge_info.go\\n│ │ ├── v_1_card_apple_history_info.go\\n│ │ ├── v_1_card_apple_recharge_info.go\\n│ │ ├── v_1_card_redeem_account_deduction.go\\n│ │ ├── v_1_card_redeem_account_group.go\\n│ │ ├── v_1_card_redeem_account_history.go\\n│ │ ├── v_1_card_redeem_account_info.go\\n│ │ ├── v_1_card_redeem_account_summary.go\\n│ │ ├── v_1_card_redeem_cookie_info.go\\n│ │ ├── v_1_card_redeem_cookie_order.go\\n│ │ ├── v_1_card_redeem_cookie_order_history.go\\n│ │ ├── v_1_card_redeem_cookie_order_jd.go\\n│ │ ├── v_1_card_redeem_cookie_order_jd_history.go\\n│ │ ├── v_1_card_redeem_order_history.go\\n│ │ ├── v_1_card_redeem_order_info.go\\n│ │ ├── v_1_legend_any_money.go\\n│ │ ├── v_1_legend_area.go\\n│ │ ├── v_1_legend_fix_money.go\\n│ │ ├── v_1_legend_fix_present.go\\n│ │ ├── v_1_legend_group.go\\n│ │ ├── v_1_legend_scale_present.go\\n│ │ ├── v_1_legend_scale_template.go\\n│ │ ├── v_1_menu_info.go\\n│ │ ├── v_1_merchant_deploy_info.go\\n│ │ ├── v_1_merchant_hidden_config.go\\n│ │ ├── v_1_merchant_hidden_record.go\\n│ │ ├── v_1_merchant_info.go\\n│ │ ├── v_1_merchant_load_info.go\\n│ │ ├── v_1_migrations.go\\n│ │ ├── v_1_notify_info.go\\n│ │ ├── v_1_order_info.go\\n│ │ ├── v_1_order_profit_info.go\\n│ │ ├── v_1_order_settle_info.go\\n│ │ ├── v_1_payfor_info.go\\n│ │ ├── v_1_power_info.go\\n│ │ ├── v_1_recharge_t_mall_account.go\\n│ │ ├── v_1_recharge_t_mall_order.go\\n│ │ ├── v_1_recharge_t_mall_order_fake.go\\n│ │ ├── v_1_recharge_t_mall_order_history.go\\n│ │ ├── v_1_recharge_t_mall_shop.go\\n│ │ ├── v_1_recharge_t_mall_shop_history.go\\n│ │ ├── v_1_restrict_client_access_ip_relation.go\\n│ │ ├── v_1_restrict_client_access_record.go\\n│ │ ├── v_1_restrict_ip_order_access.go\\n│ │ ├── v_1_restrict_ip_record.go\\n│ │ ├── v_1_road_info.go\\n│ │ ├── v_1_road_pool_info.go\\n│ │ ├── v_1_role_info.go\\n│ │ ├── v_1_schema_migrations.go\\n│ │ ├── v_1_second_menu_info.go\\n│ │ ├── v_1_sys_auth_rule.go\\n│ │ ├── v_1_sys_casbin_rule.go\\n│ │ ├── v_1_sys_config_dict.go\\n│ │ ├── v_1_sys_role.go\\n│ │ ├── v_1_sys_user.go\\n│ │ ├── v_1_sys_user_config_channel.go\\n│ │ ├── v_1_sys_user_deductions.go\\n│ │ ├── v_1_sys_user_login_log.go\\n│ │ ├── v_1_sys_user_payment.go\\n│ │ ├── v_1_sys_user_payment_records.go\\n│ │ ├── v_1_task_order_fake.go\\n│ │ └── v_1_user_info.go\\n│ ├── errHandler\\n│ │ ├── code.go\\n│ │ └── handler.go\\n│ ├── logic\\n│ │ ├── account\\n│ │ │ └── account.go\\n│ │ ├── base_user_info\\n│ │ │ └── user_info.go\\n│ │ ├── captcha\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── card_apple_account\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_apple_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_redeem_account\\n│ │ │ └── ... 15 files, 0 dirs not shown\\n│ │ ├── card_redeem_cookie\\n│ │ │ └── ... 7 files, 0 dirs not shown\\n│ │ ├── card_redeem_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── card_t_mall_account\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── card_t_mall_order\\n│ │ │ └── ... 9 files, 0 dirs not shown\\n│ │ ├── limiter\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── merchant\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── merchant_deploy_info\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── merchant_order\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── pay_type\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── restriction\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── steal_rule\\n│ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ ├── sys_auth\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_auth_rule\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_casbin\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_config_dict\\n│ │ │ └── ... 2 files, 0 dirs not shown\\n│ │ ├── sys_login_log\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_role\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_user\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ ├── sys_user_channel_config\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── sys_user_payment\\n│ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ ├── v1_road\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ ├── v1_road_pool\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── logic.go\\n│ ├── middleware\\n│ │ ├── auth.go\\n│ │ └── error_handler.go\\n│ ├── model\\n│ │ ├── do\\n│ │ │ └── ... 69 files, 0 dirs not shown\\n│ │ ├── entity\\n│ │ │ └── ... 69 files, 0 dirs not shown\\n│ │ ├── agiso.go\\n│ │ ├── card_apple_account.go\\n│ │ ├── card_apple_order.go\\n│ │ ├── card_redeem.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── card_t_mall_game_account.go\\n│ │ ├── card_t_mall_game_order.go\\n│ │ ├── card_t_mall_game_work_space.go\\n│ │ ├── entrance.go\\n│ │ ├── merchant.go\\n│ │ ├── merchant_deploy.go\\n│ │ ├── order_info.go\\n│ │ ├── restriction.go\\n│ │ ├── road.go\\n│ │ ├── road_pool.go\\n│ │ ├── steal_rule.go\\n│ │ ├── sys_auth_rule.go\\n│ │ ├── sys_role.go\\n│ │ ├── sys_rule.go\\n│ │ ├── sys_user.go\\n│ │ ├── sys_user_config.go\\n│ │ ├── sys_user_deductions.go\\n│ │ ├── sys_user_login.go\\n│ │ ├── sys_user_payment_record.go\\n│ │ └── user_info.go\\n│ ├── packed\\n│ │ └── packed.go\\n│ ├── service\\n│ │ ├── account.go\\n│ │ ├── base_user_info.go\\n│ │ ├── captcha.go\\n│ │ ├── card_apple_account.go\\n│ │ ├── card_apple_order.go\\n│ │ ├── card_redeem_account.go\\n│ │ ├── card_redeem_cookie.go\\n│ │ ├── card_redeem_order.go\\n│ │ ├── card_t_mall_account.go\\n│ │ ├── card_t_mall_order.go\\n│ │ ├── limiter.go\\n│ │ ├── merchant.go\\n│ │ ├── merchant_deploy_info.go\\n│ │ ├── merchant_order.go\\n│ │ ├── pay_type.go\\n│ │ ├── restriction.go\\n│ │ ├── steal_rule.go\\n│ │ ├── sys_auth.go\\n│ │ ├── sys_auth_rule.go\\n│ │ ├── sys_casbin.go\\n│ │ ├── sys_config_dict.go\\n│ │ ├── sys_login_log.go\\n│ │ ├── sys_role.go\\n│ │ ├── sys_user.go\\n│ │ ├── sys_user_channel_config.go\\n│ │ ├── sys_user_payment.go\\n│ │ ├── v_1_road.go\\n│ │ └── v_1_road_pool.go\\n│ └── systemV2\\n│ ├── dao\\n│ │ └── ... 14 files, 1 dirs not shown\\n│ ├── logic\\n│ │ └── ... 1 files, 3 dirs not shown\\n│ ├── model\\n│ │ └── ... 0 files, 2 dirs not shown\\n│ └── service\\n│ └── ... 3 files, 0 dirs not shown\\n├── manifest\\n│ ├── config\\n│ │ └── config.yaml\\n│ ├── deploy\\\\kustomize\\n│ │ ├── base\\n│ │ │ └── ... 3 files, 0 dirs not shown\\n│ │ └── overlays\\\\develop\\n│ │ └── ... 3 files, 0 dirs not shown\\n│ └── docker\\n│ ├── Dockerfile\\n│ ├── docker-compose-local.yaml\\n│ ├── docker-compose.yml\\n│ ├── install-one.sh\\n│ ├── install-simple.sh\\n│ ├── install-test.sh\\n│ ├── install.sh\\n│ └── wait-for-it.sh\\n├── resource\\\\casbin\\n│ └── rbac_model.conf\\n├── utility\\n│ ├── cache\\n│ │ ├── cache.go\\n│ │ └── consts.go\\n│ ├── config\\n│ │ ├── config.go\\n│ │ ├── database.go\\n│ │ └── models.go\\n│ ├── cron\\n│ │ ├── cron.go\\n│ │ ├── t_mall_game_data_sync.go\\n│ │ └── t_mall_game_data_sync_test.go\\n│ ├── integration\\n│ │ ├── agiso\\n│ │ │ └── ... 4 files, 0 dirs not shown\\n│ │ ├── originalJd\\n│ │ │ └── ... 5 files, 0 dirs not shown\\n│ │ ├── redeem\\n│ │ │ └── ... 2 files, 5 dirs not shown\\n│ │ ├── restriction\\n│ │ │ └── ... 6 files, 0 dirs not shown\\n│ │ └── tmall\\n│ │ └── ... 5 files, 3 dirs not shown\\n│ ├── lib\\n│ │ ├── libErr\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── libResponse\\n│ │ └── ... 1 files, 0 dirs not shown\\n│ ├── limiter\\n│ │ ├── rate.go\\n│ │ └── redis.go\\n│ ├── mfa\\n│ │ └── mfa.go\\n│ ├── monitor\\n│ │ └── monitor.go\\n│ ├── notify\\n│ │ ├── impl\\n│ │ │ └── ... 1 files, 0 dirs not shown\\n│ │ └── notify.go\\n│ ├── otel\\n│ │ ├── config.go\\n│ │ ├── errors.go\\n│ │ ├── handler.go\\n│ │ ├── manager.go\\n│ │ └── utils.go\\n│ ├── pool\\n│ │ └── pool.go\\n│ ├── token\\n│ │ ├── user_token.go\\n│ │ ├── user_token_test.go\\n│ │ └── utils.go\\n│ ├── utils\\n│ │ ├── charset.go\\n│ │ ├── orm.go\\n│ │ ├── tools.go\\n│ │ ├── tools_test.go\\n│ │ └── utils.go\\n│ └── verify\\n│ ├── aes_ecb.go\\n│ └── md5.go\\n├── CLAUDE.md\\n├── CODEBUDDY.md\\n├── Makefile\\n├── README.md\\n├── docker-compose.yml\\n└── main.go\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"f83fabde5ca5e81f904b6a693080634bdb0cb87f","last_commit_update":"2025-11-21T00:50:04+08:00","gmt_create":"2025-10-08T17:56:14+08:00","gmt_modified":"2025-11-21T01:00:12.540156+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"develop\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"0.2.15\"}"}} \ No newline at end of file diff --git a/internal/logic/card_apple_order/push_redeem.go b/internal/logic/card_apple_order/push_redeem.go index ad32e596..86bad582 100644 --- a/internal/logic/card_apple_order/push_redeem.go +++ b/internal/logic/card_apple_order/push_redeem.go @@ -3,11 +3,6 @@ package card_apple_order import ( "context" "fmt" - "github.com/duke-git/lancet/v2/slice" - "github.com/gogf/gf/v2/database/gdb" - "github.com/gogf/gf/v2/errors/gcode" - "github.com/gogf/gf/v2/os/glog" - "github.com/shopspring/decimal" "kami/internal/consts" "kami/internal/errHandler" "kami/internal/model" @@ -18,9 +13,17 @@ import ( "kami/utility/integration/apple" "kami/utility/pool" "time" + + "github.com/duke-git/lancet/v2/slice" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gcode" + "github.com/gogf/gf/v2/os/gcron" + "github.com/gogf/gf/v2/os/gctx" + "github.com/gogf/gf/v2/os/glog" + "github.com/shopspring/decimal" ) -// HandleRedeemResult 处理核销结果,根据不同的状态进行相应的业务操作 +// handleRedeemResult 处理核销结果,根据状态码分类进行对应处理 func (h *sAppleOrder) handleRedeemResult(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo) error { // 调用 Apple 服务进行核销(同步等待) redeemClient := apple.NewClient() @@ -31,12 +34,41 @@ func (h *sAppleOrder) handleRedeemResult(ctx context.Context, orderEntity *entit OrderId: orderEntity.OrderNo, RedemptionCode: orderEntity.CardPass, } - _, _ = redeemClient.Redeem(ctx, redeemReq) - return nil + resp, err := redeemClient.Redeem(ctx, redeemReq) + if err != nil { + return err + } + + // 根据状态码分类处理 + switch { + // 1. 成功状态(CodeSuccess = 0) + case resp.Code == apple.CodeSuccess: + return h.handleRedeemSuccess(ctx, orderEntity, accountInfo, resp.Data.Amount, resp.Data.BalanceBefore, resp.Data.BalanceAfter) + + // 2. 网络请求或系统资源错误(5000-5999) + case resp.Code >= 5000 && resp.Code < 6000: + return h.handleSystemError(ctx, orderEntity, accountInfo, resp.Code, resp.Message) + + // 3. 苹果账户原因错误(8001-8005) + case resp.Code >= 8001 && resp.Code <= 8005: + return h.handleAccountError(ctx, orderEntity, accountInfo, resp.Code, resp.Message) + + // 4. 充值限制错误(8010-8012) + case resp.Code >= 8010 && resp.Code <= 8012: + return h.handleRedeemLimitError(ctx, orderEntity, accountInfo, resp.Code, resp.Message) + + // 5. 卡密错误(8013-8014) + case resp.Code >= 8013 && resp.Code <= 8014: + return h.handleCardCodeError(ctx, orderEntity, accountInfo, resp.Code, resp.Message) + + // 未知错误 + default: + return h.handleRedeemFailed(ctx, orderEntity, accountInfo, resp.Message) + } } // handleRedeemSuccess 处理核销成功的情况 -func (h *sAppleOrder) handleRedeemSuccess(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, balanceBefore, balanceAfter float64) error { +func (h *sAppleOrder) handleRedeemSuccess(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, amount, balanceBefore, balanceAfter float64) error { // 将返回的金额字符串转换为 float64(假数据处理) actualAmount := orderEntity.CardAmount // 使用卡密面额作为默认金额 @@ -135,6 +167,178 @@ func (h *sAppleOrder) handleAccountInvalid(ctx context.Context, orderEntity *ent return nil } +// handleSystemError 处理系统资源错误(5000-5999) +// 订单退回待处理,等待系统重新调度重试 +func (h *sAppleOrder) handleSystemError(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, code apple.Code, message string) error { + // 订单退回待处理状态 + err := h.ModifyOrderStatus(ctx, orderEntity.OrderNo, consts.AppleRechargeOrderWaiting, fmt.Sprintf("系统错误:%s", message), nil) + if err != nil { + glog.Error(ctx, fmt.Sprintf("更新订单状态失败 - 订单号: %s, 错误: %v", orderEntity.OrderNo, err)) + return err + } + + // 减少分配计数 + _ = h.DecrementDistributionCount(ctx, orderEntity.OrderNo) + + // 添加历史记录 + _ = h.AddHistory(ctx, &model.AppleCardRechargeHistoryInput{ + AccountID: accountInfo.Id, + OrderNo: orderEntity.OrderNo, + RechargeId: int(orderEntity.Id), + AccountName: accountInfo.Account, + Operation: consts.AppleRechargeOperationItunesFail, + Remark: fmt.Sprintf("系统错误(状态码: %d):%s", code, message), + }, nil) + + glog.Warning(ctx, fmt.Sprintf("系统错误,订单已退回待处理 - 订单号: %s, 状态码: %d", orderEntity.OrderNo, code)) + return nil +} + +// handleAccountError 处理苹果账户原因错误(8001-8005) +// 标记账户失效,订单退回待处理,等待重新分配其他有效账户 +func (h *sAppleOrder) handleAccountError(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, code apple.Code, message string) error { + // 根据错误码标记不同的账户失效状态 + var accountStatus consts.AppleAccountStatus + switch code { + case apple.CodeApplePasswordError, apple.CodeApplePasswordExpired: + accountStatus = consts.AppleAccountWrongPassword // 账号密码错误 + case apple.CodeAppleAccountForbidden: + accountStatus = consts.AppleAccountForbidden // 账号被禁用 + case apple.CodeAppleAccountLocked: + accountStatus = consts.AppleAccountLimited // 账号被封锁(作为受限处理) + case apple.CodeAppleStatusUnknown: + accountStatus = consts.AppleAccountNormal // 状态未知,保持正常以便后续重试 + default: + accountStatus = consts.AppleAccountWrongPassword + } + + // 标记账户为失效状态 + _ = service.AppleAccount().ModifyStatus(ctx, accountInfo.Id, accountStatus, nil) + + // 订单重新设为待调度状态 + err := h.ModifyOrderStatus(ctx, orderEntity.OrderNo, consts.AppleRechargeOrderWaiting, "苹果账户原因导致失效,待重新分配", nil) + if err != nil { + glog.Error(ctx, fmt.Sprintf("更新订单状态失败 - 订单号: %s, 错误: %v", orderEntity.OrderNo, err)) + return err + } + + // 减少分配计数,允许重新分配 + _ = h.DecrementDistributionCount(ctx, orderEntity.OrderNo) + + // 添加历史记录 + _ = h.AddHistory(ctx, &model.AppleCardRechargeHistoryInput{ + AccountID: accountInfo.Id, + OrderNo: orderEntity.OrderNo, + RechargeId: int(orderEntity.Id), + AccountName: accountInfo.Account, + Operation: consts.AppleRechargeOperationWrongPassword, + Remark: fmt.Sprintf("苹果账户错误(状态码: %d):%s", code, message), + }, nil) + + glog.Warning(ctx, fmt.Sprintf("苹果账户原因导致失效,订单已退回待重新分配 - 订单号: %s, 账号: %s, 状态码: %d", orderEntity.OrderNo, accountInfo.Account, code)) + return nil +} + +// handleRedeemLimitError 处理充值限制错误(8010-8012) +// 根据限制类型标记账户,订单根据业务规则决定重试或失败 +func (h *sAppleOrder) handleRedeemLimitError(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, code apple.Code, message string) error { + // 根据限制类型标记账户状态 + var accountStatus consts.AppleAccountStatus + var accountRemark string + + switch code { + case apple.CodeAppleRedeemLimitExceeded: + // 充值次数限制 - 永久受限 + accountStatus = consts.AppleAccountForbiddenByTooManyRecharge + accountRemark = "苹果账户充值次数限制(永久)" + case apple.CodeAppleRedeemLimitExceededTemporarily: + // 临时限制 - 标记为临时冻结,暂停兑换 + accountStatus = consts.AppleAccountTmpStoppedByTooManyRequest + _, _ = gcron.AddOnce(gctx.GetInitCtx(), "@every 2m", func(ctx2 context.Context) { + // 获取追踪能力 + _ = service.AppleAccount().ModifyStatus(ctx2, orderEntity.AccountId, consts.AppleAccountNormal, nil) + }) + accountRemark = "苹果账户临时充值限制(2分钟后恢复)" + case apple.CodeAppleRedeemLimitExceededPerMinute: + // 一分钟限制 - 标记为临时冻结 + _, _ = gcron.AddOnce(gctx.GetInitCtx(), "@every 1m", func(ctx2 context.Context) { + // 获取追踪能力 + _ = service.AppleAccount().ModifyStatus(ctx2, orderEntity.AccountId, consts.AppleAccountNormal, nil) + }) + accountStatus = consts.AppleAccountTmpLimited + accountRemark = "苹果账户一分钟充值限制(1分钟后恢复)" + default: + accountStatus = consts.AppleAccountLimited + accountRemark = fmt.Sprintf("苹果账户充值限制(状态码: %d)", code) + } + + // 标记账户限制状态 + _ = service.AppleAccount().ModifyStatus(ctx, accountInfo.Id, accountStatus, nil) + + // 订单退回待处理,后续可根据限制类型进行重试或转移到其他账户 + err := h.ModifyOrderStatus(ctx, orderEntity.OrderNo, consts.AppleRechargeOrderWaiting, fmt.Sprintf("账户受限:%s", message), nil) + if err != nil { + glog.Error(ctx, fmt.Sprintf("更新订单状态失败 - 订单号: %s, 错误: %v", orderEntity.OrderNo, err)) + return err + } + + // 减少分配计数 + _ = h.DecrementDistributionCount(ctx, orderEntity.OrderNo) + + // 添加历史记录 + _ = h.AddHistory(ctx, &model.AppleCardRechargeHistoryInput{ + AccountID: accountInfo.Id, + OrderNo: orderEntity.OrderNo, + RechargeId: int(orderEntity.Id), + AccountName: accountInfo.Account, + Operation: consts.AppleRechargeOperationItunesFail, + Remark: fmt.Sprintf("%s - %s", accountRemark, message), + }, nil) + + glog.Warning(ctx, fmt.Sprintf("账户充值限制,订单已退回待处理 - 订单号: %s, 账号: %s, 限制类型: %d", orderEntity.OrderNo, accountInfo.Account, code)) + return nil +} + +// handleCardCodeError 处理卡密错误(8013-8014) +// 直接按订单失败处理,更新订单状态为失败 +func (h *sAppleOrder) handleCardCodeError(ctx context.Context, orderEntity *entity.V1CardAppleRechargeInfo, accountInfo *entity.V1CardAppleAccountInfo, code apple.Code, message string) error { + // 根据卡密错误类型确定订单失败状态 + var orderStatus consts.AppleRechargeOrderStatus = consts.AppleRechargeOrderFail + var operationRemark string + + switch code { + case apple.CodeAppleRedeemAlreadyClaimed: + operationRemark = "卡密已被兑换" + case apple.CodeAppleRedeemNotFound: + operationRemark = "卡密不存在" + default: + operationRemark = fmt.Sprintf("卡密错误(状态码: %d)", code) + } + + // 更新订单为失败状态 + err := h.ModifyOrderStatus(ctx, orderEntity.OrderNo, orderStatus, operationRemark, nil) + if err != nil { + glog.Error(ctx, fmt.Sprintf("更新订单失败状态失败 - 订单号: %s, 错误: %v", orderEntity.OrderNo, err)) + return err + } + + // 减少分配计数(卡密错误不再重试) + _ = h.DecrementDistributionCount(ctx, orderEntity.OrderNo) + + // 添加历史记录 + _ = h.AddHistory(ctx, &model.AppleCardRechargeHistoryInput{ + AccountID: accountInfo.Id, + OrderNo: orderEntity.OrderNo, + RechargeId: int(orderEntity.Id), + AccountName: accountInfo.Account, + Operation: consts.AppleRechargeOperationItunesFail, + Remark: fmt.Sprintf("卡密错误 - %s", message), + }, nil) + + glog.Warning(ctx, fmt.Sprintf("卡密错误,订单已失败 - 订单号: %s, 账号: %s, 错误: %s", orderEntity.OrderNo, accountInfo.Account, operationRemark)) + return nil +} + // ProcessOrderWithPush 处理订单:根据订单类型判断是立即进行核销处理还是创建定时任务异步处理 // 参数说明: // - orderEntity: 待处理的订单信息 @@ -174,6 +378,7 @@ func (h *sAppleOrder) processOrderWithAccount(ctx context.Context, orderInfo *en if err == nil && !cacheVar.IsNil() { glog.Warning(ctx, "账户正在处理中", accountInfo.Account) } + //3分钟超时 _ = cache.NewCache().Set(ctx, cache.PrefixAppleAccount.Key(accountInfo.Id), 1, time.Minute*3) defer func() { _, _ = cache.NewCache().Remove(ctx, cache.PrefixAppleAccount.Key(accountInfo.Id)) @@ -198,8 +403,7 @@ func (h *sAppleOrder) processOrderWithAccount(ctx context.Context, orderInfo *en return err }) if err != nil { - glog.Error(ctx, "修改订单状态失败", err) + return err } - _ = h.handleRedeemResult(ctx, orderInfo, accountInfo) - return + return h.handleRedeemResult(ctx, orderInfo, accountInfo) } diff --git a/utility/integration/apple/consts.go b/utility/integration/apple/consts.go new file mode 100644 index 00000000..dc18932e --- /dev/null +++ b/utility/integration/apple/consts.go @@ -0,0 +1,158 @@ +package apple + +// ==================== API 错误码枚举 ==================== +// 统一的REST API错误码,包含标准错误码和Apple特定错误码 + +type Code int + +const ( + // ==================== 成功 (0) ==================== + CodeSuccess Code = 0 // 成功 + + // ==================== 认证与授权错误 (1000-1999) ==================== + CodeLoginFailed Code = 1001 // 登录失败 + CodeTokenExpired Code = 1002 // token过期 + CodeInsufficientPermissions Code = 1003 // 权限不足 + CodeInvalidToken Code = 1004 // token无效 + + // ==================== 业务逻辑错误 (2000-2999) ==================== + CodeOrderCreationFailed Code = 2001 // 订单创建失败 + CodePaymentFailed Code = 2002 // 支付失败 + CodeInsufficientBalance Code = 2003 // 余额不足 + CodeOperationNotAllowed Code = 2004 // 操作不允许 + + // ==================== 验证错误 (3000-3999) ==================== + CodeInvalidInput Code = 3001 // 输入无效 + CodeMissingRequiredField Code = 3002 // 缺失必填字段 + CodeInvalidFormat Code = 3003 // 格式无效 + CodeValidationError Code = 3004 // 验证错误 + + // ==================== 资源错误 (4000-4999) ==================== + CodeResourceNotFound Code = 4001 // 资源不存在 + CodeResourceAlreadyExists Code = 4002 // 资源已存在 + CodeResourceConflict Code = 4003 // 资源冲突 + + // ==================== 系统错误 (5000-5999) ==================== + CodeDatabaseError Code = 5001 // 数据库错误 + CodeExternalServiceError Code = 5002 // 外部服务错误 + CodeCacheError Code = 5003 // 缓存错误 + CodeInternalError Code = 5004 // 内部系统错误 + CodeNotImplemented Code = 5005 // 功能未实现 + + // ==================== Apple 特定错误 (8000-8099) ==================== + // Apple 账户错误 (8001-8005) + CodeAppleAccountForbidden Code = 8001 // 苹果账户被禁用 + CodeAppleAccountLocked Code = 8002 // 苹果账户被封锁 + CodeApplePasswordError Code = 8003 // 苹果账号密码错误 + CodeAppleStatusUnknown Code = 8004 // 苹果核销状态未知 + CodeApplePasswordExpired Code = 8005 // 苹果账号密码失效,需要重新登录 + + // Apple 充值限制错误 (8010-8012) + CodeAppleRedeemLimitExceeded Code = 8010 // 充值次数限制 + CodeAppleRedeemLimitExceededTemporarily Code = 8011 // 充值次数临时限制 + CodeAppleRedeemLimitExceededPerMinute Code = 8012 // 充值次数一分钟限制 + + // Apple 卡密错误 (8013-8014) + CodeAppleRedeemAlreadyClaimed Code = 8013 // 卡密已经被兑换 + CodeAppleRedeemNotFound Code = 8014 // 卡密不存在 + + // ==================== 未知错误 (9000-9999) ==================== + CodeUnknownError Code = 9000 // 未知错误 +) + +// String 返回错误码的文字描述 +func (c Code) String() string { + switch c { + case CodeSuccess: + return "成功" + case CodeLoginFailed: + return "登录失败" + case CodeTokenExpired: + return "token过期" + case CodeInsufficientPermissions: + return "权限不足" + case CodeInvalidToken: + return "token无效" + case CodeOrderCreationFailed: + return "订单创建失败" + case CodePaymentFailed: + return "支付失败" + case CodeInsufficientBalance: + return "余额不足" + case CodeOperationNotAllowed: + return "操作不允许" + case CodeInvalidInput: + return "输入无效" + case CodeMissingRequiredField: + return "缺失必填字段" + case CodeInvalidFormat: + return "格式无效" + case CodeValidationError: + return "验证错误" + case CodeResourceNotFound: + return "资源不存在" + case CodeResourceAlreadyExists: + return "资源已存在" + case CodeResourceConflict: + return "资源冲突" + case CodeDatabaseError: + return "数据库错误" + case CodeExternalServiceError: + return "外部服务错误" + case CodeCacheError: + return "缓存错误" + case CodeInternalError: + return "内部系统错误" + case CodeNotImplemented: + return "功能未实现" + case CodeAppleAccountForbidden: + return "苹果账户被禁用" + case CodeAppleAccountLocked: + return "苹果账户被封锁" + case CodeApplePasswordError: + return "苹果账号密码错误" + case CodeAppleStatusUnknown: + return "苹果核销状态未知" + case CodeApplePasswordExpired: + return "苹果账号密码失效,需要重新登录" + case CodeAppleRedeemLimitExceeded: + return "充值次数限制" + case CodeAppleRedeemLimitExceededTemporarily: + return "充值次数临时限制" + case CodeAppleRedeemLimitExceededPerMinute: + return "充值次数一分钟限制" + case CodeAppleRedeemAlreadyClaimed: + return "卡密已经被兑换" + case CodeAppleRedeemNotFound: + return "卡密不存在" + case CodeUnknownError: + return "未知错误" + default: + return "未知错误" + } +} + +// IsSuccess 判断是否成功 +func (c Code) IsSuccess() bool { + return c == CodeSuccess +} + +// IsAppleAccountError 判断是否是苹果账户相关错误 +func (c Code) IsAppleAccountError() bool { + return c >= 8001 && c <= 8005 +} + +// IsAppleRedeemLimitError 判断是否是苹果充值限制错误 +func (c Code) IsAppleRedeemLimitError() bool { + return c >= 8010 && c <= 8012 +} + +// IsAppleCardError 判断是否是苹果卡密相关错误 +func (c Code) IsAppleCardError() bool { + return c >= 8013 && c <= 8014 +} + +// IsAppleError 判断是否是苹果特定错误 +func (c Code) IsAppleError() bool { + return c >= 8001 && c <= 8099 +} \ No newline at end of file diff --git a/utility/integration/apple/models.go b/utility/integration/apple/models.go index 086df09c..a6031dbd 100644 --- a/utility/integration/apple/models.go +++ b/utility/integration/apple/models.go @@ -8,11 +8,10 @@ type RedeemReq struct { } type RedeemResp struct { - StatusDescription string `json:"status_description" description:"状态描述"` - BalanceBefore string `json:"balance_before" description:"兑换前账户余额"` - BalanceAfter string `json:"balance_after" description:"兑换后账户余额"` - Amount string `json:"amount" description:"本次兑换金额"` - OrderId string `json:"order_id" description:"订单ID"` + BalanceBefore float64 `json:"balance_before" description:"兑换前账户余额"` + BalanceAfter float64 `json:"balance_after" description:"兑换后账户余额"` + Amount float64 `json:"amount" description:"本次兑换金额"` + OrderId string `json:"order_id" description:"订单ID"` } type QueryBalanceReq struct { @@ -22,10 +21,9 @@ type QueryBalanceReq struct { } type QueryBalanceResp struct { - Status int `json:"status" description:"查询状态:0成功,其他"` - StatusDescription string `json:"status_description" description:"状态描述"` - Balance string `json:"balance" description:"当前账户余额"` - OrderId string `json:"order_id" description:"订单ID"` + Status int `json:"status" description:"查询状态:0成功,其他"` + Balance string `json:"balance" description:"当前账户余额"` + OrderId string `json:"order_id" description:"订单ID"` } type HeartBeatReq = QueryBalanceReq @@ -35,8 +33,8 @@ type HeartBeatResp struct { } type Resp[T any] struct { - Data *T `json:"data"` - Code int `json:"code"` + Data *T `json:"data,omitempty"` + Code Code `json:"code"` Message string `json:"message"` TraceId string `json:"trace_id"` }