feat: 完成 Tracker 项目与 Torrent 种子模块的前后端接口与页面开发

- 实现 Tracker 项目、任务、任务日志、项目用户关联等模块的接口封装与 ProTable 页面
- 实现 Torrent 种子主表、文件列表、Tracker 服务器、标签模块的前后端接口封装
- 支持新增、编辑、删除、详情查看等完整 CRUD 功能
- 页面基于 Ant Design Pro,支持分页、筛选、Drawer + Modal 表单展示

Change-Id: If8ead64a0bf6c177545f1c3c348ee09cad221a85
diff --git a/sql/torrentMenu.sql b/sql/torrentMenu.sql
new file mode 100644
index 0000000..9bcf460
--- /dev/null
+++ b/sql/torrentMenu.sql
@@ -0,0 +1,22 @@
+-- 菜单 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主', '3', '1', 'torrent', 'system/torrent/index', 1, 0, 'C', '0', '0', 'system:torrent:list', '#', 'admin', sysdate(), '', null, '种子主菜单');
+
+-- 按钮父菜单ID
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:torrent:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:torrent:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:torrent:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:torrent:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('种子主导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:torrent:export',       '#', 'admin', sysdate(), '', null, '');
\ No newline at end of file