Files
craftlabs-authorization-sdk/docs/superpowers/plans/2026-05-25-remaining-gaps-wbs.md
T

8.4 KiB
Raw Blame History

剩余缺口 WBS 任务拆解与排期计划

基于:PRD vs 代码实现状态完整审计(2026-05-25) 范围:全部 ⚠️ 部分实现 + 未实现 功能点 涉及:平台后端/前端 + 客户端 SDK


迭代路线图

迭代 周期 聚焦 任务数 估计工时
I14 T0+1W P0 缺口修复 + 审计修复 7 12h
I15 T0+2W P1 增强(M2/M3/M4 6 14h
I16 T0+3W P1 增强(M5/M6/M8/M11 8 16h
I17 T0+4W SDK JNI 桥接 + 单元测试 3 16h
V2.1 T0+6W P2 功能 + 其他语言封装 8 20h

迭代 I14P0 缺口修复(12h

I14-T1: M1-F06 项目干系人(2h

文件:

  • Create: services/.../db/migration/V17__project_stakeholder.sql
  • Create: services/.../persistence/project/PlatformProjectStakeholder.java
  • Create: services/.../persistence/project/PlatformProjectStakeholderMapper.java
  • Create: services/.../web/dto/StakeholderRequest.java
  • Create: services/.../web/dto/StakeholderResponse.java
  • Modify: services/.../project/ProjectController.java
  • Modify: services/.../service/ProjectService.java
  • Create: web/.../views/ProjectStakeholderDialog.vue
  • Modify: web/.../views/ProjectsView.vue

DB:

CREATE TABLE platform_project_stakeholder (
    id BIGSERIAL PRIMARY KEY,
    project_id BIGINT NOT NULL REFERENCES platform_project(id),
    contact_name VARCHAR(128) NOT NULL,
    contact_role VARCHAR(64),
    phone VARCHAR(32),
    email VARCHAR(128),
    is_internal BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

工作量: 后端 2h + 前端 1h


I14-T2: M2-F01 合同日期字段(1h

文件:

  • Create: services/.../db/migration/V18__contract_date_fields.sql
  • Modify: services/.../persistence/contract/PlatformContract.java
  • Modify: services/.../web/dto/ContractCreateRequest.java
  • Modify: services/.../web/dto/ContractUpdateRequest.java
  • Modify: services/.../web/dto/ContractResponse.java
  • Modify: services/.../service/ContractService.java
  • Modify: services/.../contracts/ContractController.java
  • Modify: web/.../views/ContractWizardView.vue

DB:

ALTER TABLE platform_contract
  ADD COLUMN signing_date DATE,
  ADD COLUMN effective_date DATE,
  ADD COLUMN end_date DATE;

I14-T3: M2-F04 行项 amount 字段 UI 补全(0.5h

文件:

  • Modify: web/.../views/ContractDetailView.vue(添加 amount字段到行项对话框)
  • Modify: web/.../views/ContractWizardView.vue(添加 amount到行项表)

I14-T4: M4-F05 激活原因码分类(1.5h

文件:

  • Modify: services/.../api/web/dto/LicenseSnStatusPatchRequest.java
  • Modify: services/.../api/service/LicenseSnService.java
  • Modify: web/.../views/LicenseSnDetailView.vue

在状态变更对话框中增加「原因码」下拉字段:ACTIVATION_SUCCESS / ACTIVATION_FAILED / MANUAL_CHANGE / EXPIRED


I14-T5: M10-F02 审计 userId 筛选(1h

文件:

  • Modify: services/.../api/service/AuditService.javasearchAuditEvents加userId参数)
  • Modify: services/.../api/audit/AuditController.java

I14-T6: M11-F05 登录锁定逻辑接入(2h)

文件:

  • Modify: services/.../api/auth/AuthController.java

AuthController.login() 中,硬编码用户校验之前插入:

  1. 查询 platform_login_attempt 表统计最近15分钟内该用户的失败次数
  2. 如果 >= 5 次,返回 429 "账户已临时锁定"
  3. 登录成功后清除失败记录

I14-T7: M11-F16 v-permission 扩展到全部页面(4h

文件:

  • Modify: 所有 20+ 个 Vue 页面的 CRUD 操作按钮

为每个页面的 新建/编辑/删除 按钮添加 v-permission 指令,权限码按模块命名:

  • customer:rw / customer:delete
  • project:rw / project:delete
  • contract:rw
  • delivery:rw
  • license:sn:rw / license:sn:batch-import
  • callback:process
  • integration:config:rw
  • device:rw
  • todo:process
  • report:view / report:export
  • audit:search / audit:export

迭代 I15P1 增强(M2/M3/M4)(14h

I15-T1: M2-F06 合同与订单关联(2h

文件:

  • Create: services/.../db/migration/V19__order_linking.sql
  • Modify: services/.../persistence/contract/PlatformContract.java
  • Modify: web/.../views/ContractDetailView.vue

I15-T2: M2-F08 SKU 规则映射(3h

文件:

  • Create: services/.../db/migration/V20__sku_mapping.sql
  • Create: services/.../api/persistence/integration/PlatformSkuMapping.java
  • Modify: services/.../api/service/IntegrationCatalogService.java
  • Create: web/.../views/IntegrationSkuMappingView.vue

I15-T3: M3-F06 现场环境信息(1.5h

文件:

  • Create: V21 migration for field_env_info on platform_delivery_batch
  • Modify: DeliveryBatchDetailView.vue 增加字段

I15-T4: M3-F07 交付-SN 门禁逻辑(2h

文件:

  • Modify: services/.../service/LicenseSnService.java
  • SN 创建/绑定时,校验 platform_delivery_batch.status = DELIVERED

I15-T5: M4-F06 比特控制台链接(1.5h

文件:

  • Modify: web/.../views/LicenseSnDetailView.vue
  • platform_integration_environment.bitanswer_base_url 构建控制台链接

I15-T6: M4-F07/F08/F09 批量操作/需求单/标签(4h)

文件:

  • 批量绑定额外对话框
  • 授权需求单视图
  • SN 标签字段

迭代 I16P1 增强(M5/M6/M8/M11)(16h

I16-T1: M5-F06 失败原因标注(1.5h

I16-T2: M5-F07 批量重试(2h

I16-T3: M6-F04 特征映射管理(3h

I16-T4: M8-F03/F04 邮件/企微通知 + 模板(3h)

I16-T5: M11-F08/F11/F12 密码重置/并发会话/强制下线(4h)

I16-T6: M11-F18/F20/F21 数据属主/系统参数/敏感操作审计(2.5h)


迭代 I17SDK JNI 桥接(16h

I17-T1: Rust JNI bridge.cpp 实现(8h

关键修复: NativeBridge.java 引用的 JNI 函数在 Rust 侧无对应实现。需要:

  1. native/craft-core/ 中新增 JNI 桥接模块
  2. 实现 Java_cn_craftlabs_auth_internal_NativeBridge_nativeInitialize 等 8 个 JNI 函数
  3. 每个 JNI 函数调用 Rust C ABI 对应的 craft_* 函数

I17-T2: Java SDK 单元测试(4h

为 BitAnswerProvider 和 SelfHostedAuthProvider 编写集成测试:

  • 配置解析测试
  • Provider 初始化/激活/校验测试(Mock 模式)

I17-T3: 端到端集成测试(4h

  • Rust 核心库编译 + Java SDK 调用验证
  • 完整激活 → 校验 → 心跳链路

V2.1:P2 功能 + 多语言封装(20h)

任务 工时 说明
M1-F07 客户/项目冻结 1.5h
M1-F08 客户合并 2h
M1-F09 CRM 同步 3h 外部依赖
M5-F10 模拟投递 1.5h 仅测试环境
M6-F08/F09 版本矩阵/影响分析 3h
M9-F06 订阅报表 2h
M10-F04 留存策略 1h
M11-F09/F10 SSO/MFA 4h 外部依赖
C#/Python SDK 封装(选1个) 8h 视需求

依赖关系图

flowchart LR
    subgraph I14["I14: P0修复"]
        T1[I14-T1: 项目干系人]
        T2[I14-T2: 合同日期]
        T3[I14-T3: amount UI]
        T4[I14-T4: 激活原因码]
        T5[I14-T5: 审计筛选]
        T6[I14-T6: 登录锁定]
        T7[I14-T7: v-permission扩展]
    end
    subgraph I15["I15: P1增强"]
        T8[I15-T1: 订单关联]
        T9[I15-T2: SKU映射]
        T10[I15-T3: 环境信息]
        T11[I15-T4: 交付门禁]
        T12[I15-T5: 比特链接]
        T13[I15-T6: 批量操作]
    end
    subgraph I16["I16: P1增强"]
        T14[I16-T1~T6]
    end
    subgraph I17["I17: SDK JNI"]
        T15[I17-T1: JNI bridge]
        T16[I17-T2: 单元测试]
        T17[I17-T3: 端到端测试]
    end
    subgraph V21["V2.1: P2+封装"]
        T18[V2.1: P2/封装]
    end
    I14 --> I15 --> I16
    I17 -.->|可并行| I16
    I15 --> V21
    I16 --> V21

工作量汇总

迭代 聚焦 任务数 工时 交付物
I14 P0 缺口修复 7 12h 干系人/合同日期/登录锁定/v-permission
I15 M2/M3/M4 P1 增强 6 14h 订单/SKU/环境/门禁/批量
I16 M5/M6/M8/M11 P1 增强 6 16h 通知/特征映射/通知/安全
I17 SDK JNI 桥接 3 16h JNI bridge/测试
V2.1 P2 + 多语言封装 8 20h 冻结/合并/SSO/封装
总计 30 78h