## 问题分析 - 单个匹配:前端会先调用save_matching_result保存匹配结果,然后额外调用create_usage_records_from_matching_result创建素材使用记录 - 一键匹配:只调用了save_matching_result保存匹配结果,但没有创建素材使用记录,导致片段管理显示已使用0 ## 解决方案 在MaterialMatchingService的两个保存方法中添加创建素材使用记录的逻辑: ### 1. match_materials_and_save方法 - 在保存匹配结果成功后,自动创建素材使用记录 - 使用批量创建方法提高性能 - 失败时只记录警告,不阻断主流程 ### 2. match_materials_with_used_segments方法 - 在一键匹配保存结果后,自动创建素材使用记录 - 确保一键匹配和单个匹配的行为一致 ### 3. 使用记录内容 - 记录匹配分数、匹配原因、素材名称、模特名称等上下文信息 - 使用TemplateMatching类型标识使用场景 - 正确关联模板匹配结果ID ## 技术细节 - 使用create_usage_records_batch批量创建提高性能 - 在MaterialUsageRepository中自动更新素材片段的使用状态 - 保持事务一致性,确保数据完整性 - 添加详细日志便于调试和监控 ## 测试验证 - 一键匹配成功后,片段管理应正确显示已使用数量 - 素材片段的is_used状态应正确更新 - 使用记录应正确保存到material_usage_records表 |
||
|---|---|---|
| .. | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| src-tauri | ||
| test_data | ||
| .gitignore | ||
| CHANGELOG.md | ||
| DATABASE_OPTIMIZATION_GUIDE.md | ||
| README.md | ||
| TOOLS_FEATURE.md | ||
| index.html | ||
| package.json | ||
| postcss.config.js | ||
| tailwind.config.js | ||
| test_parallel_processing.md | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
README.md
@mixvideo/desktop
MixVideo 桌面应用 - 基于 Tauri + React + TypeScript 构建的跨平台桌面应用。
🚀 快速开始
开发环境要求
- Node.js 18+
- Rust 1.70+
- PNPM 8+
安装依赖
pnpm install
开发模式
pnpm dev
# 或
pnpm tauri:dev
构建应用
pnpm tauri:build
📁 项目结构
apps/desktop/
├── src/ # React 前端源码
│ ├── components/ # React 组件
│ ├── pages/ # 页面组件
│ ├── hooks/ # 自定义 Hooks
│ ├── services/ # API 服务
│ ├── types/ # TypeScript 类型
│ └── utils/ # 工具函数
├── src-tauri/ # Rust 后端源码
│ ├── src/ # Rust 源码
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── public/ # 静态资源
└── package.json # 前端依赖配置
🛠️ 技术栈
- 前端: React 18 + TypeScript + Vite
- 后端: Rust + Tauri 2.0
- UI: 待定 (可选择 Ant Design、Material-UI 等)
- 状态管理: 待定 (可选择 Zustand、Redux Toolkit 等)