anxin-ruoyi/.kiro/specs/user-enterprise-identity-verification/tasks.md

17 KiB
Raw Blame History

Implementation Plan: 用户企业认证、身份认证和员工CA二维码认证

Overview

本实现计划将用户企业认证、身份认证和员工CA二维码认证功能分解为可执行的开发任务。实现将采用增量开发方式优先实现核心功能然后逐步添加高级特性。

Tasks

  • 1. 数据库表结构和权限初始化

    • 创建用户企业认证表、用户身份认证表、认证审核日志表包含operator_roles字段
    • 创建员工实名认证二维码表、CA服务配置表
    • 初始化CA服务配置数据
    • 创建认证审核员和认证管理员角色
    • 创建认证管理相关菜单和权限
    • 为角色分配相应的权限
    • Requirements: 所有需求的数据基础, 10.1, 10.2, 10.3
  • 2. 通用工具类和权限常量实现

    • 2.1 创建权限常量类 (VerificationPermissions)

      • 定义所有认证相关的权限常量
      • Requirements: 10.4
    • 2.2 创建角色常量类 (VerificationRoles)

      • 定义认证审核员角色常量
      • 定义认证管理员角色常量
      • Requirements: 10.1
    • 2.3 实现身份证号验证工具类 (IdCardValidator)

      • 实现GB 11643-1999标准的身份证号格式验证
      • 实现身份证号校验位验证
      • Requirements: 2.3
    • * 2.4 编写身份证号验证的属性测试

      • Property 6: 身份证号格式验证
      • Validates: Requirements 2.3
    • 2.5 实现加密工具类 (EncryptionUtil)

      • 实现AES-256-GCM加密方法
      • 实现AES-256-GCM解密方法
      • 实现RSA签名和验证方法
      • Requirements: 8.1, 8.4, 8.5
    • * 2.6 编写加密工具的属性测试

      • Property 7: 身份证号加密存储 (round-trip)
      • Validates: Requirements 2.5, 8.1
    • 2.7 实现二维码生成工具类 (QRCodeGenerator)

      • 使用ZXing库生成二维码图片
      • 支持自定义二维码尺寸
      • Requirements: 4.1, 4.2
    • * 2.8 编写二维码生成的单元测试

      • 测试二维码生成功能
      • 测试不同尺寸的二维码生成
      • Requirements: 4.1, 4.2
  • 3. CA服务接口适配层实现

    • 3.1 创建CA服务适配器接口和数据模型

      • 定义CAServiceAdapter接口
      • 定义IdentityVerificationRequest/Response
      • Requirements: 4.1, 4.2
    • 3.2 实现CA服务配置类 (CAServiceConfig)

      • 从数据库读取CA服务配置
      • 支持配置热更新
      • Requirements: 4.2
    • 3.3 实现Mock CA服务适配器 (MockCAServiceAdapter)

      • 实现身份认证Mock逻辑
      • Requirements: 4.5
    • * 3.4 编写CA服务适配器的单元测试

      • 测试Mock适配器的各个方法
      • 测试配置读取功能
      • Requirements: 4.2, 4.5
    • 3.5 实现CA服务调用的错误处理和超时控制

      • 实现30秒超时机制
      • 实现错误日志记录
      • 实现友好的错误信息返回
      • Requirements: 4.3, 4.6, 4.7
    • * 3.6 编写CA服务错误处理的属性测试

      • Property 17: CA服务错误处理
      • Property 18: CA服务超时处理
      • Property 19: CA服务调用日志
      • Validates: Requirements 4.3, 4.6, 4.7
  • 4. Checkpoint - 确保基础工具和CA适配层测试通过

    • 确保所有测试通过,如有问题请向用户询问
  • 5. 用户企业认证功能实现

    • 5.1 创建用户企业认证实体类和Mapper

      • 创建UserEnterpriseVerification实体类
      • 创建UserEnterpriseVerificationMapper接口
      • 创建Mapper XML文件
      • Requirements: 1.1, 1.2
    • 5.2 实现用户企业认证Service层

      • 实现提交企业认证申请方法
      • 实现查询企业认证状态方法
      • 实现管理员审核企业认证方法(添加@PreAuthorize权限注解
      • 实现企业认证列表查询方法(添加@PreAuthorize权限注解
      • 实现权限验证逻辑
      • Requirements: 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 10.4, 10.5
    • * 5.3 编写企业认证的属性测试

      • Property 1: 企业认证信息验证
      • Property 2: 企业认证状态转换
      • Property 3: 企业认证错误处理
      • Property 4: 企业认证审核记录
      • Property 5: 企业认证重新申请
      • Validates: Requirements 1.2, 1.3, 1.4, 1.6, 1.7
    • * 5.4 编写权限控制的单元测试

      • 测试具有权限的用户可以审核
      • 测试不具有权限的用户被拒绝
      • 测试超级管理员可以审核
      • Requirements: 1.6, 10.4, 10.5, 10.7
    • 5.5 实现用户企业认证Controller层

      • 实现提交企业认证申请接口
      • 实现查询企业认证状态接口
      • 实现管理员审核企业认证接口
      • 实现企业认证列表查询接口
      • 添加权限不足的异常处理
      • Requirements: 1.1, 1.2, 1.5, 10.5
    • * 5.6 编写企业认证Controller的集成测试

      • 使用MockMvc测试API接口
      • 测试请求参数验证
      • 测试响应格式
      • 测试权限控制
      • Requirements: 1.1, 1.2, 1.5, 10.4
  • 6. 用户身份认证功能实现

    • 6.1 创建用户身份认证实体类和Mapper

      • 创建UserIdentityVerification实体类
      • 创建UserIdentityVerificationMapper接口
      • 创建Mapper XML文件
      • Requirements: 2.1, 2.2
    • 6.2 实现用户身份认证Service层

      • 实现提交身份认证申请方法调用CA服务
      • 实现查询身份认证状态方法
      • 实现身份认证列表查询方法
      • 集成IdCardValidator进行身份证号验证
      • 集成EncryptionUtil进行身份证号加密
      • Requirements: 2.2, 2.3, 2.4, 2.5, 2.6
    • * 6.3 编写身份认证的属性测试

      • Property 8: CA服务身份认证调用
      • Property 9: CA身份认证成功处理
      • Property 10: CA身份认证失败处理
      • Validates: Requirements 2.5, 2.6, 2.7
    • 6.4 实现用户身份认证Controller层

      • 实现提交身份认证申请接口
      • 实现查询身份认证状态接口
      • 实现身份认证列表查询接口
      • Requirements: 2.1, 2.2
    • * 6.5 编写身份认证Controller的集成测试

      • 使用MockMvc测试API接口
      • 测试CA服务集成
      • Requirements: 2.1, 2.2, 2.5
  • 7. 认证审核日志功能实现

    • 7.1 创建认证审核日志实体类和Mapper

      • 创建VerificationAuditLog实体类包含operator_roles字段
      • 创建VerificationAuditLogMapper接口
      • 创建Mapper XML文件
      • Requirements: 1.7, 6.7, 10.6
    • 7.2 在认证Service中集成审核日志记录

      • 在企业认证审核时记录日志(包含操作人角色)
      • 在认证状态变更时记录日志
      • 获取当前用户的角色信息并记录
      • Requirements: 1.7, 6.7, 10.6
    • * 7.3 编写审核日志的单元测试

      • 测试日志记录功能
      • 测试日志查询功能
      • 测试角色信息记录
      • Requirements: 1.7, 6.7, 10.6
  • 8. Checkpoint - 确保用户认证功能测试通过

    • 确保所有测试通过,如有问题请向用户询问
  • 9. 员工实名认证二维码功能实现

    • 9.1 创建员工实名认证二维码实体类和Mapper

      • 创建EmployeeQRCode实体类包含员工ID、姓名、身份证号、时间戳
      • 创建EmployeeQRCodeMapper接口
      • 创建Mapper XML文件
      • Requirements: 3.1, 3.2
    • 9.2 实现员工实名认证二维码Service层

      • 实现生成二维码方法(包含员工身份信息)
      • 实现获取二维码图片方法
      • 实现验证二维码方法调用CA服务进行身份认证
      • 实现二维码过期检查逻辑
      • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
    • * 9.3 编写员工实名认证二维码的属性测试

      • Property 11: 二维码内容完整性
      • Property 12: 二维码CA认证调用
      • Property 13: 二维码认证成功处理
      • Property 14: 二维码认证失败处理
      • Property 15: 二维码过期验证
      • **Validates: Requirements 3.1, 3.3, 3.4, 3.5, 3.6_
    • 9.4 实现员工实名认证二维码Controller层

      • 实现生成二维码接口
      • 实现获取二维码图片接口
      • 实现验证二维码接口调用CA服务
      • Requirements: 3.2, 3.3, 3.4, 3.5
    • * 9.5 编写二维码Controller的集成测试

      • 使用MockMvc测试API接口
      • 测试二维码生成和CA认证流程
      • Requirements: 3.2, 3.3, 3.4
  • 10. Checkpoint - 确保员工实名认证二维码功能测试通过

    • 确保所有测试通过,如有问题请向用户询问
  • 11. 认证状态权限控制实现

    • 11.1 实现认证拦截器 (VerificationInterceptor)

      • 检查用户的企业认证和身份认证状态
      • 拦截未认证用户访问受限功能
      • 超级管理员例外处理
      • Requirements: 5.1, 5.3, 5.5, 5.8
    • 11.2 配置拦截器和受限路径

      • 在WebMvcConfig中注册拦截器
      • 配置需要认证的路径(如/credit/contract/**
      • 排除认证接口本身
      • Requirements: 5.3, 5.9
    • * 11.3 编写权限控制的属性测试

      • Property 20: 未认证用户访问拦截
      • Property 21: 双认证完成解除限制
      • Property 22: 超级管理员特殊权限
      • Property 23: 权限检查双认证状态
      • Property 24: 认证菜单配置化
      • Validates: Requirements 5.1, 5.3, 5.4, 5.5, 5.8, 5.9
    • 11.4 实现认证状态查询Service方法

      • 实现isUserFullyVerified方法
      • 实现getUserVerificationStatus方法
      • Requirements: 5.4, 5.8
    • * 11.5 编写权限控制的集成测试

      • 测试拦截器功能
      • 测试不同认证状态的访问权限
      • 测试超级管理员例外
      • Requirements: 5.1, 5.3, 5.4, 5.5
  • 12. 企业认证管理功能实现

    • 12.1 实现企业认证管理Service方法

      • 实现企业认证列表查询(支持筛选和搜索,添加@PreAuthorize权限注解
      • 实现企业认证详情查询(包含审核历史,添加@PreAuthorize权限注解
      • 实现批量审核企业认证方法(添加@PreAuthorize权限注解
      • 实现导出企业认证数据方法(添加@PreAuthorize权限注解
      • Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 10.4
    • 12.2 实现企业认证管理Controller层

      • 实现企业认证列表查询接口
      • 实现企业认证详情查询接口
      • 实现批量审核接口
      • 实现导出企业认证数据接口
      • 添加权限不足的异常处理
      • Requirements: 6.1, 6.2, 6.3, 6.4, 6.6, 10.5
    • * 12.3 编写企业认证管理的单元测试

      • 测试列表查询和筛选功能
      • 测试批量审核功能
      • 测试导出功能
      • 测试权限控制
      • Requirements: 6.1, 6.2, 6.4, 6.6, 10.4
  • 13. 通知机制实现

    • 13.1 集成现有的通知服务

      • 实现认证申请确认通知
      • 实现认证审核通过通知
      • 实现认证审核拒绝通知
      • 支持站内消息和邮件两种方式
      • Requirements: 8.1, 8.2, 8.3, 8.5
    • * 13.2 编写通知功能的单元测试

      • 测试各种通知场景
      • 测试通知内容格式
      • Requirements: 8.1, 8.2, 8.3
  • 14. Checkpoint - 确保后端所有功能测试通过

    • 确保所有测试通过,如有问题请向用户询问
  • 15. 前端Vue3界面实现 - 用户认证模块

    • 15.1 创建用户认证页面组件

      • 创建企业认证表单组件
      • 创建身份认证表单组件
      • 创建认证状态显示组件
      • Requirements: 9.1, 9.2, 9.3
    • 15.2 实现认证表单验证

      • 实现企业信息格式验证
      • 实现身份证号格式验证
      • 实现实时验证反馈
      • Requirements: 9.4
    • 15.3 集成认证API接口

      • 调用提交企业认证接口
      • 调用提交身份认证接口
      • 调用查询认证状态接口
      • Requirements: 9.1, 9.2
    • * 15.4 编写前端组件测试

      • 使用Vitest测试组件渲染
      • 测试表单验证逻辑
      • Requirements: 9.1, 9.2, 9.3, 9.4
  • 16. 前端Vue3界面实现 - 认证提示横幅

    • 16.1 创建认证提示横幅组件

      • 显示企业认证和身份认证状态
      • 提供快速认证入口链接
      • 支持关闭和最小化
      • Requirements: 5.1, 5.2, 5.6, 9.7
    • 16.2 实现路由守卫

      • 在Vue Router中添加beforeEach守卫
      • 检查用户认证状态
      • 显示认证提示横幅
      • 阻止未认证用户访问受限页面
      • Requirements: 5.1, 5.3, 5.6, 5.7
    • * 16.3 编写路由守卫测试

      • 测试不同认证状态的路由行为
      • 测试超级管理员例外
      • Requirements: 5.1, 5.3, 5.5
  • 17. 前端Vue3界面实现 - 员工实名认证二维码

    • 17.1 在员工管理页面添加"实名认证"按钮和二维码显示功能

      • 在员工操作列添加"实名认证"按钮
      • 点击按钮后显示员工实名认证二维码
      • 提供二维码下载功能
      • 提供二维码打印功能
      • 显示二维码有效期和认证状态
      • Requirements: 3.1, 3.2, 9.5
    • 17.2 集成员工实名认证二维码API接口

      • 调用生成员工实名认证二维码接口
      • 调用获取二维码图片接口
      • 调用验证二维码接口扫描后调用CA服务
      • Requirements: 3.2, 3.3, 9.5
    • * 17.3 编写员工实名认证二维码组件测试

      • 测试组件渲染
      • 测试API调用
      • 测试二维码显示和下载功能
      • Requirements: 3.2, 9.5
  • 18. 前端Vue3界面实现 - 企业认证管理页面

    • 18.1 创建企业认证管理页面

      • 创建企业认证列表组件
      • 创建认证筛选组件
      • 创建企业认证详情对话框(显示审核历史和审核人角色)
      • 创建批量审核对话框
      • Requirements: 6.1, 6.2, 6.3, 6.6, 9.6, 10.6
    • 18.2 实现企业认证管理功能

      • 实现企业认证列表查询和分页
      • 实现认证状态筛选
      • 实现企业认证搜索(按用户姓名、企业名称、企业代码)
      • 实现企业认证详情查看(包含审核人角色信息)
      • 实现批量审核企业认证
      • 实现导出企业认证数据
      • 实现权限控制(根据用户角色显示/隐藏功能)
      • Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 9.6, 10.3, 10.4
    • * 18.3 编写企业认证管理页面测试

      • 测试列表渲染
      • 测试筛选和搜索功能
      • 测试审核功能
      • 测试权限控制
      • Requirements: 6.1, 6.2, 6.3, 6.6, 9.6, 10.4
  • 19. Checkpoint - 确保前端所有功能正常

    • 确保所有前端功能正常,如有问题请向用户询问
  • 20. 数据安全和权限加固

    • 20.1 实现数据访问权限控制

      • 在Service层添加权限检查
      • 记录敏感数据访问日志
      • 验证用户只能访问自己的认证数据(管理员除外)
      • Requirements: 7.6, 10.4, 10.5
    • * 20.2 编写数据安全的属性测试

      • Property 25: 认证数据访问权限
      • Validates: Requirements 7.6
    • * 20.3 编写权限控制的集成测试

      • 测试不同角色的权限边界
      • 测试未授权访问被拒绝
      • 测试审核日志记录角色信息
      • Requirements: 10.4, 10.5, 10.6
    • 20.4 配置HTTPS和安全头

      • 配置HTTPS证书
      • 配置安全响应头HSTS, CSP等
      • Requirements: 7.2
  • 21. 性能优化

    • 21.1 实现认证状态缓存

      • 使用Redis缓存用户认证状态
      • 设置合理的缓存过期时间
      • 认证状态变更时清除缓存
    • 21.2 实现二维码图片缓存

      • 缓存生成的二维码图片
      • 设置合理的缓存过期时间
    • 21.3 优化数据库查询

      • 添加必要的索引
      • 优化复杂查询的SQL
  • 22. 文档和部署准备

    • 22.1 编写API文档

      • 使用Swagger生成API文档
      • 补充接口说明和示例
    • 22.2 编写部署文档

      • 数据库迁移脚本说明
      • 配置项说明
      • 部署步骤说明
    • 22.3 准备数据库迁移脚本

      • 创建Flyway或Liquibase迁移脚本
      • 测试迁移脚本
  • 23. 最终集成测试和验收

    • 23.1 执行完整的E2E测试

      • 测试用户企业认证完整流程
      • 测试用户身份认证完整流程
      • 测试员工实名认证二维码生成和验证流程
      • 测试权限控制流程
      • 测试认证管理流程
    • 23.2 性能测试

      • 测试并发认证申请
      • 测试CA服务调用性能
      • 测试二维码生成性能
    • 23.3 安全测试

      • 测试加密功能
      • 测试权限控制
      • 测试SQL注入防护
      • 测试XSS防护

Notes

  • 标记为 * 的任务是可选的测试任务,可以根据项目进度决定是否执行
  • 每个Checkpoint任务是重要的验证点确保在继续之前所有功能正常
  • CA服务适配器使用Mock实现进行开发和测试真实CA服务对接可以在后期进行
  • 前端开发可以与后端开发并行进行使用Mock数据进行开发
  • 属性测试使用jqwik框架每个测试至少运行100次迭代
  • 单元测试使用JUnit 5框架
  • 集成测试使用Spring Boot Test和MockMvc