本次更新为PrimiHub平台添加了联邦求差和联邦求并两个新功能,包括完整的日志记录和导出能力。
- 文件:
TaskTypeEnum.java - 新增:
DIFFERENCE(6,"求差")和UNION(7,"求并")
创建了以下实体类:
DataDifference.java- 联邦求差主实体DataDifferenceTask.java- 联邦求差任务实体DataUnion.java- 联邦求并主实体DataUnionTask.java- 联邦求并任务实体
DataDifferenceReq.java- 联邦求差请求参数DataUnionReq.java- 联邦求并请求参数
创建了完整的REST API接口:
DifferenceController(联邦求差控制器):
POST /difference/saveDataDifference- 创建并运行求差任务GET /difference/getDifferenceTaskList- 查询任务列表GET /difference/getDifferenceTaskDetails- 查询任务详情GET /difference/downloadDifferenceTask- 下载结果文件GET /difference/delDifferenceTask- 删除任务GET /difference/cancelDifferenceTask- 取消任务
UnionController(联邦求并控制器):
POST /union/saveDataUnion- 创建并运行求并任务GET /union/getUnionTaskList- 查询任务列表GET /union/getUnionTaskDetails- 查询任务详情GET /union/downloadUnionTask- 下载结果文件GET /union/delUnionTask- 删除任务GET /union/cancelUnionTask- 取消任务
创建了Service框架实现:
DataDifferenceService.java- 联邦求差服务DataUnionService.java- 联邦求并服务
已实现功能:
- ✅ 日志记录功能(自动记录到计算日志表)
- ✅ 基础框架和接口定义
- ✅ 异常处理和日志输出
src/api/difference.js- 联邦求差APIsrc/api/union.js- 联邦求并API
包含的功能:
- 任务创建和执行
- 任务列表查询
- 任务详情查询
- 结果文件下载
- 任务删除和取消
- 日志导出功能 ✅
更新了computeLog.vue,在计算类型筛选中新增:
- 联邦求差
- 联邦求并
已创建完整的数据库建表SQL:database_schema_difference_union.sql
包含4张表:
data_difference- 联邦求差主表data_difference_task- 联邦求差任务表data_union- 联邦求并主表data_union_task- 联邦求并任务表
- 所有求差和求并任务自动记录到计算日志表
- 日志类型标识:
- 求差:
COMPUTE_DIFFERENCE/联邦求差 - 求并:
COMPUTE_UNION/联邦求并
- 求差:
- 在"日志管理 > 计算日志"页面,可以按类型筛选并导出
- 前端API已包含专用导出接口:
exportDifferenceLog()- 导出求差日志exportUnionLog()- 导出求并日志
# 执行建表SQL
mysql -u用户名 -p数据库名 < database_schema_difference_union.sql需要创建以下Repository接口和实现:
DataDifferenceRepository.javaDataDifferenceTaskRepository.javaDataUnionRepository.javaDataUnionTaskRepository.java
参考现有的PSI实现:
DataPsiRepository.javaDataPsiPrRepository.java
需要在Service中补充实现(已标注TODO):
DataDifferenceService.java:
// TODO: 1. 保存求差任务到数据库
// TODO: 2. 调用隐私计算引擎执行求差任务
// TODO: 3. 从数据库查询任务列表
// TODO: 4. 从数据库查询任务详情
// TODO: 5. 下载结果文件
// TODO: 6. 删除任务
// TODO: 7. 取消正在运行的任务DataUnionService.java:
// TODO: 1. 保存求并任务到数据库
// TODO: 2. 调用隐私计算引擎执行求并任务
// TODO: 3. 从数据库查询任务列表
// TODO: 4. 从数据库查询任务详情
// TODO: 5. 下载结果文件
// TODO: 6. 删除任务
// TODO: 7. 取消正在运行的任务建议参考PSI页面创建:
src/views/Difference/list.vue- 求差任务列表src/views/Difference/task.vue- 创建求差任务src/views/Difference/detail.vue- 求差任务详情src/views/Union/list.vue- 求并任务列表src/views/Union/task.vue- 创建求并任务src/views/Union/detail.vue- 求并任务详情
可以直接复制PSI的页面并修改:
cp -r src/views/PSI src/views/Difference
cp -r src/views/PSI src/views/Union
# 然后修改API调用和相关字段需要在路由配置中添加新页面的路由。
需要在权限系统中添加:
- 联邦求差相关权限
- 联邦求并相关权限
需要对接隐私计算引擎,实现:
- 集合求差算法
- 集合求并算法
- 支持ECDH、KKRT、TEE三种实现方式
- 完整的API设计 - 参考PSI实现,接口规范统一
- 日志记录自动化 - 所有任务自动记录到计算日志
- 日志导出支持 - 可按类型筛选并导出Excel
- 灵活的求差方向 - 支持A-B和B-A两种方向
- 多种实现方式 - 支持ECDH、KKRT、TEE
- 完善的异常处理 - 所有接口都有异常捕获和日志记录
mysql -uroot -p < database_schema_difference_union.sqlcd primihub-service
mvn clean install# 创建求差任务
curl -X POST http://localhost:8080/data/difference/saveDataDifference \
-H "Content-Type: application/json" \
-H "userId: 1" \
-d '{
"ownOrganId": "org1",
"ownResourceId": "res1",
"ownKeyword": "id",
"otherOrganId": "org2",
"otherResourceId": "res2",
"otherKeyword": "id",
"resultName": "test_difference",
"resultOrganIds": "org1",
"tag": 0,
"differenceDirection": 0
}'访问"日志管理 > 计算日志"页面,选择"联邦求差"或"联邦求并"类型查看。
- 后端:Spring Boot + MyBatis
- 前端:Vue 2 + Element UI
- 数据库:MySQL
- 隐私计算:PrimiHub引擎
primihub-service/
├── biz/src/main/java/com/primihub/biz/
│ ├── entity/data/
│ │ ├── po/
│ │ │ ├── DataDifference.java
│ │ │ ├── DataDifferenceTask.java
│ │ │ ├── DataUnion.java
│ │ │ └── DataUnionTask.java
│ │ ├── req/
│ │ │ ├── DataDifferenceReq.java
│ │ │ └── DataUnionReq.java
│ │ └── dataenum/
│ │ └── TaskTypeEnum.java (已更新)
│ └── service/data/
│ ├── DataDifferenceService.java
│ └── DataUnionService.java
└── application/src/main/java/com/primihub/application/controller/data/
├── DifferenceController.java
└── UnionController.java
primihub-webconsole/
├── src/
│ ├── api/
│ │ ├── difference.js
│ │ └── union.js
│ └── views/logManagement/
│ └── computeLog.vue (已更新)
database_schema_difference_union.sql
- 批量操作 - 支持批量创建和删除任务
- 任务模板 - 保存常用任务配置为模板
- 结果对比 - 支持多次任务结果对比
- 可视化 - 添加集合运算的可视化展示
- 性能监控 - 添加任务执行性能监控
- 告警通知 - 任务完成/失败时发送通知
如有问题,请联系开发团队或查看PrimiHub官方文档。
版本: v1.0.0 日期: 2026-01-14 作者: Claude Code