前端和json优化
This commit is contained in:
@@ -400,6 +400,8 @@ class RmrbCrawler(BaseCrawler):
|
||||
src = str(src) # 转换为字符串
|
||||
if not src.startswith("http"):
|
||||
src = self.config.base_url + src
|
||||
if src=="http://www.people.com.cn/img/2020wbc/imgs/share.png": #分享图片跳过
|
||||
continue
|
||||
content = f"<img style='{p_style}' src='{src}' />"
|
||||
|
||||
elif p.find('video'):
|
||||
|
||||
@@ -31,7 +31,7 @@ INSERT INTO `tb_sys_config` (`id`, `config_key`, `config_name`, `config_value`,
|
||||
('46', 'email.timeout', '连接超时时间', '30000', 'integer', 'input', '邮件配置', '连接超时时间(毫秒)', '请输入超时时间', 'SMTP连接超时时间', NULL, 5000, 60000, '毫秒', NULL, 46, 1, '1', now()),
|
||||
|
||||
-- 短信配置
|
||||
('50', 'sms.provider', '短信服务商', 'aliyun', 'string', 'select', '短信配置', '短信服务提供商', NULL, '短信服务提供商类型', NULL, NULL, NULL, NULL, 'aliyun,tencent', 50, 1, '1', now()),
|
||||
('50', 'sms.provider', '短信服务商', 'aliyun', 'string', 'select', '短信配置', '短信服务提供商', NULL, '短信服务提供商类型', NULL, NULL, NULL, NULL, 'aliyun', 50, 1, '1', now()),
|
||||
('51', 'sms.accessKeyId', 'AccessKey ID', 'LTAI5t68do3qVXx5Rufugt3X', 'string', 'input', '短信配置', '短信服务AccessKey ID', '请输入AccessKey ID', '云服务商的AccessKey ID', NULL, NULL, NULL, NULL, NULL, 51, 1, '1', now()),
|
||||
('52', 'sms.accessKeySecret', 'AccessKey Secret', '2vD9ToIff49Vph4JQXsn0Cy8nXQfzA', 'string', 'password', '短信配置', '短信服务AccessKey Secret', '请输入AccessKey Secret', '云服务商的AccessKey Secret', NULL, NULL, NULL, NULL, NULL, 52, 1, '1', now()),
|
||||
('53', 'sms.signName', '短信签名', '星洋智慧', 'string', 'input', '短信配置', '短信签名', '请输入短信签名', '发送短信使用的签名', NULL, NULL, NULL, NULL, NULL, 53, 1, '1', now()),
|
||||
|
||||
@@ -45,75 +45,246 @@ INSERT INTO `tb_sys_module` (id, module_id, name, code, description, icon, order
|
||||
('9', 'module_sensitive', '敏感词管理', 'sensitive', '敏感词管理模块', 'el-icon-warning', 9, 1, '1', now());
|
||||
|
||||
-- 插入权限数据
|
||||
INSERT INTO `tb_sys_permission` (id,permission_id, name, code, description, module_id, creator, create_time) VALUES
|
||||
('0','perm_default', '默认权限', 'default', '默认权限', 'module_system', '1', now()),
|
||||
('1','perm_system_manage', '系统管理', 'system:manage', '系统管理权限', 'module_system', '1', now()),
|
||||
('2','perm_system_dept_manage', '系统部门查看', 'system:dept:manage', '系统部门查看权限', 'module_system', '1', now()),
|
||||
('3','perm_system_menu_manage', '系统菜单查看', 'system:menu:manage', '系统菜单查看权限', 'module_system', '1', now()),
|
||||
('4','perm_system_permission_manage', '系统权限查看', 'system:permission:manage', '系统权限查看权限', 'module_system', '1', now()),
|
||||
('5','perm_system_role_manage', '系统角色查看', 'system:role:manage', '系统角色查看权限', 'module_system', '1', now()),
|
||||
('6','perm_system_user_manage', '系统用户查看', 'system:user:manage', '系统用户查看权限', 'module_system', '1', now()),
|
||||
('7','perm_system_module_manage', '系统模块查看', 'system:module:manage', '系统模块查看权限', 'module_system', '1', now()),
|
||||
('8','perm_news_manage', '新闻管理', 'news:manage', '新闻管理权限', 'module_news', '1', now()),
|
||||
('9','perm_news_article_add', '文章添加', 'news:manage', '文章添加权限', 'module_news', '1', now()),
|
||||
('10','perm_study_manage', '学习管理', 'study:manage', '学习管理权限', 'module_study', '1', now()),
|
||||
('10.1','perm_achievement_manage', '成就管理', 'achievement:manage', '成就管理权限', 'module_study', '1', now()),
|
||||
('11','perm_ai_manage', 'AI管理', 'ai:manage', 'AI管理权限', 'module_ai', '1', now()),
|
||||
('12','perm_usercenter_manage', '用户中心管理', 'usercenter:manage', '用户中心管理权限', 'module_usercenter', '1', now()),
|
||||
('13','perm_file_manage', '文件管理', 'file:manage', '文件管理权限', 'module_file', '1', now()),
|
||||
('14','perm_crontab_manage', '定时任务管理', 'crontab:manage', '定时任务管理权限', 'module_crontab', '1', now()),
|
||||
('15','perm_crontab_execute', '定时任务执行', 'crontab:execute', '定时任务执行权限', 'module_crontab', '1', now()),
|
||||
('16','perm_message_manage', '消息管理', 'message:manage', '消息管理权限(管理端)', 'module_message', '1', now()),
|
||||
('17','perm_message_send', '消息发送', 'message:send', '消息发送权限', 'module_message', '1', now()),
|
||||
('18','perm_message_view', '消息查看', 'message:view', '消息查看权限(用户端)', 'module_message', '1', now()),
|
||||
('19','perm_sensitive_manage', '敏感词管理', 'sensitive:manage', '敏感词管理权限', 'module_sensitive', '1', now());
|
||||
-- ============================================
|
||||
-- 权限ID分配规则(每个模块预留100个ID):
|
||||
-- 9000-9999: 前端用户权限(默认权限)
|
||||
-- 100-999: 超级管理员专属权限
|
||||
-- 1000-8999: 普通管理员权限
|
||||
-- ============================================
|
||||
|
||||
INSERT INTO `tb_sys_permission` (id, permission_id, name, code, description, module_id, creator, create_time) VALUES
|
||||
-- ========== 前端用户权限 (9000-9999) ==========
|
||||
-- 9000-9099: 默认权限和基础视图
|
||||
('9000', 'perm_default', '默认权限', 'default', '所有登录用户的默认权限', 'module_system', '1', now()),
|
||||
('9001', 'perm_view_home', '首页访问', 'view:home', '访问首页视图权限', 'module_usercenter', '1', now()),
|
||||
('9002', 'perm_view_resource_hot', '热门资源访问', 'view:resource:hot', '访问热门资源视图权限', 'module_news', '1', now()),
|
||||
('9003', 'perm_view_resource_center', '资源中心访问', 'view:resource:center', '访问资源中心视图权限', 'module_news', '1', now()),
|
||||
('9004', 'perm_view_search', '搜索访问', 'view:search', '访问搜索视图权限', 'module_news', '1', now()),
|
||||
('9005', 'perm_view_article_show', '文章展示访问', 'view:article:show', '访问文章展示视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 9100-9199: 学习计划相关
|
||||
('9100', 'perm_view_study_tasks', '学习任务访问', 'view:study:tasks', '访问学习任务视图权限', 'module_study', '1', now()),
|
||||
('9101', 'perm_view_course_center', '课程中心访问', 'view:course:center', '访问课程中心视图权限', 'module_study', '1', now()),
|
||||
('9102', 'perm_view_task_detail', '任务详情访问', 'view:task:detail', '访问任务详情视图权限', 'module_study', '1', now()),
|
||||
('9103', 'perm_view_course_detail', '课程详情访问', 'view:course:detail', '访问课程详情视图权限', 'module_study', '1', now()),
|
||||
('9104', 'perm_view_course_study', '课程学习访问', 'view:course:study', '访问课程学习视图权限', 'module_study', '1', now()),
|
||||
|
||||
-- 9200-9299: 用户中心相关
|
||||
('9200', 'perm_view_learning_records', '学习记录访问', 'view:learning:records', '访问学习记录视图权限', 'module_usercenter', '1', now()),
|
||||
('9201', 'perm_view_my_favorites', '我的收藏访问', 'view:my:favorites', '访问我的收藏视图权限', 'module_usercenter', '1', now()),
|
||||
('9202', 'perm_view_my_achievements', '我的成就访问', 'view:my:achievements', '访问我的成就视图权限', 'module_usercenter', '1', now()),
|
||||
('9203', 'perm_view_personal_info', '个人信息访问', 'view:personal:info', '访问个人信息视图权限', 'module_usercenter', '1', now()),
|
||||
('9204', 'perm_view_account_settings', '账号设置访问', 'view:account:settings', '访问账号设置视图权限', 'module_usercenter', '1', now()),
|
||||
|
||||
-- 9300-9399: 文章和消息相关
|
||||
('9300', 'perm_view_article_add', '文章添加访问', 'view:article:add', '访问文章添加视图权限', 'module_news', '1', now()),
|
||||
('9301', 'perm_view_message_center', '消息中心访问', 'view:message:center', '访问消息中心视图权限', 'module_message', '1', now()),
|
||||
('9302', 'perm_view_message_detail', '消息详情访问', 'view:message:detail', '访问消息详情视图权限', 'module_message', '1', now()),
|
||||
|
||||
-- ========== 超级管理员专属权限 (100-999) ==========
|
||||
-- 100-199: 系统总览
|
||||
('100', 'perm_admin_overview', '系统总览', 'admin:overview', '访问系统总览视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 200-299: 用户管理
|
||||
('200', 'perm_admin_user_manage', '用户管理', 'admin:user:manage', '访问用户管理视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 300-399: 部门管理
|
||||
('300', 'perm_admin_dept_manage', '部门管理', 'admin:dept:manage', '访问部门管理视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 400-499: 角色管理
|
||||
('400', 'perm_admin_role_manage', '角色管理', 'admin:role:manage', '访问角色管理视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 500-599: 菜单管理
|
||||
('500', 'perm_admin_menu_manage', '菜单管理', 'admin:menu:manage', '访问菜单管理视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 600-699: 模块权限管理
|
||||
('600', 'perm_admin_module_permission_manage', '模块权限管理', 'admin:module:permission:manage', '访问模块权限管理视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 700-799: 系统日志
|
||||
('700', 'perm_admin_system_logs', '系统日志', 'admin:logs:system', '访问系统日志视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
('701', 'perm_admin_login_logs', '登录日志', 'admin:logs:login', '访问登录日志视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- 800-899: 系统配置
|
||||
('800', 'perm_admin_system_config', '系统配置', 'admin:system:config', '访问系统配置视图权限(超级管理员)', 'module_system', '1', now()),
|
||||
|
||||
-- ========== 普通管理员权限 (1000-8999) ==========
|
||||
-- 1000-1099: 资源管理
|
||||
('1000', 'perm_admin_resource_manage', '资源数据采集', 'admin:resource:manage', '访问资源数据采集视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 1100-1199: 文章管理
|
||||
('1100', 'perm_admin_article_manage', '文章管理', 'admin:article:manage', '访问文章管理视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 1200-1299: Banner管理
|
||||
('1200', 'perm_admin_banner_manage', 'Banner管理', 'admin:banner:manage', '访问Banner管理视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 1300-1399: 标签管理
|
||||
('1300', 'perm_admin_tag_manage', '标签管理', 'admin:tag:manage', '访问标签管理视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 1400-1499: 栏目管理
|
||||
('1400', 'perm_admin_column_manage', '栏目管理', 'admin:column:manage', '访问栏目管理视图权限', 'module_news', '1', now()),
|
||||
|
||||
-- 1500-1599: 敏感词管理
|
||||
('1500', 'perm_admin_sensitive_manage', '敏感词管理', 'admin:sensitive:manage', '访问敏感词管理视图权限', 'module_sensitive', '1', now()),
|
||||
|
||||
-- 2000-2099: 任务管理
|
||||
('2000', 'perm_admin_task_manage', '任务管理', 'admin:task:manage', '访问任务管理视图权限', 'module_study', '1', now()),
|
||||
|
||||
-- 2100-2199: 学习记录管理
|
||||
('2100', 'perm_admin_study_records', '学习记录管理', 'admin:study:records', '访问学习记录管理视图权限', 'module_study', '1', now()),
|
||||
|
||||
-- 2200-2299: 课程管理
|
||||
('2200', 'perm_admin_course_manage', '课程管理', 'admin:course:manage', '访问课程管理视图权限', 'module_study', '1', now()),
|
||||
|
||||
-- 2300-2399: 成就管理
|
||||
('2300', 'perm_admin_achievement_manage', '成就管理', 'admin:achievement:manage', '访问成就管理视图权限', 'module_study', '1', now()),
|
||||
|
||||
-- 3000-3099: AI配置
|
||||
('3000', 'perm_admin_ai_config', 'AI配置', 'admin:ai:config', '访问AI配置视图权限', 'module_ai', '1', now()),
|
||||
|
||||
-- 3100-3199: 知识库管理
|
||||
('3100', 'perm_admin_knowledge_manage', '知识库管理', 'admin:knowledge:manage', '访问知识库管理视图权限', 'module_ai', '1', now()),
|
||||
|
||||
-- 5000-5099: 邮件配置
|
||||
('5000', 'perm_admin_meta_email_default', '默认接收人配置', 'admin:meta:email:default', '访问默认接收人配置视图权限', 'module_crontab', '1', now()),
|
||||
|
||||
-- 5100-5199: 定时任务日志
|
||||
('5100', 'perm_admin_crontab_log', '定时任务执行日志', 'admin:crontab:log', '访问定时任务执行日志视图权限', 'module_crontab', '1', now()),
|
||||
|
||||
-- 5200-5299: 新闻爬虫配置
|
||||
('5200', 'perm_admin_news_crawler', '新闻爬虫配置', 'admin:news:crawler', '访问新闻爬虫配置视图权限', 'module_crontab', '1', now()),
|
||||
|
||||
-- 5300-5399: 系统定时任务
|
||||
('5300', 'perm_admin_system_task', '系统定时任务配置', 'admin:system:task', '访问系统定时任务配置视图权限', 'module_crontab', '1', now()),
|
||||
|
||||
-- 6000-6099: 消息管理
|
||||
('6000', 'perm_admin_message_manage', '消息管理', 'admin:message:manage', '访问消息管理视图权限', 'module_message', '1', now());
|
||||
|
||||
-- 插入角色-权限关联数据
|
||||
-- 超级管理员:拥有所有权限
|
||||
-- ============================================
|
||||
-- 超级管理员:拥有所有权限(前端用户 + 超级管理员 + 普通管理员)
|
||||
-- ============================================
|
||||
INSERT INTO `tb_sys_role_permission` (id, role_id, permission_id, creator, create_time) VALUES
|
||||
-- 前端用户权限 (9000-9999)
|
||||
('1', 'superadmin', 'perm_default', '1', now()),
|
||||
('2', 'superadmin', 'perm_system_manage', '1', now()),
|
||||
('3', 'superadmin', 'perm_system_dept_manage', '1', now()),
|
||||
('4', 'superadmin', 'perm_system_menu_manage', '1', now()),
|
||||
('5', 'superadmin', 'perm_system_permission_manage', '1', now()),
|
||||
('6', 'superadmin', 'perm_system_role_manage', '1', now()),
|
||||
('7', 'superadmin', 'perm_system_user_manage', '1', now()),
|
||||
('8', 'superadmin', 'perm_system_module_manage', '1', now()),
|
||||
('9', 'superadmin', 'perm_news_manage', '1', now()),
|
||||
('10', 'superadmin', 'perm_news_article_add', '1', now()),
|
||||
('11', 'superadmin', 'perm_study_manage', '1', now()),
|
||||
('12', 'superadmin', 'perm_achievement_manage', '1', now()),
|
||||
('13', 'superadmin', 'perm_ai_manage', '1', now()),
|
||||
('14', 'superadmin', 'perm_usercenter_manage', '1', now()),
|
||||
('15', 'superadmin', 'perm_file_manage', '1', now()),
|
||||
('16', 'superadmin', 'perm_crontab_manage', '1', now()),
|
||||
('17', 'superadmin', 'perm_crontab_execute', '1', now()),
|
||||
('18', 'superadmin', 'perm_message_manage', '1', now()),
|
||||
('19', 'superadmin', 'perm_message_send', '1', now()),
|
||||
('20', 'superadmin', 'perm_message_view', '1', now()),
|
||||
('21', 'superadmin', 'perm_sensitive_manage', '1', now()),
|
||||
('2', 'superadmin', 'perm_view_home', '1', now()),
|
||||
('3', 'superadmin', 'perm_view_resource_hot', '1', now()),
|
||||
('4', 'superadmin', 'perm_view_resource_center', '1', now()),
|
||||
('5', 'superadmin', 'perm_view_search', '1', now()),
|
||||
('6', 'superadmin', 'perm_view_article_show', '1', now()),
|
||||
('7', 'superadmin', 'perm_view_study_tasks', '1', now()),
|
||||
('8', 'superadmin', 'perm_view_course_center', '1', now()),
|
||||
('9', 'superadmin', 'perm_view_task_detail', '1', now()),
|
||||
('10', 'superadmin', 'perm_view_course_detail', '1', now()),
|
||||
('11', 'superadmin', 'perm_view_course_study', '1', now()),
|
||||
('12', 'superadmin', 'perm_view_learning_records', '1', now()),
|
||||
('13', 'superadmin', 'perm_view_my_favorites', '1', now()),
|
||||
('14', 'superadmin', 'perm_view_my_achievements', '1', now()),
|
||||
('15', 'superadmin', 'perm_view_personal_info', '1', now()),
|
||||
('16', 'superadmin', 'perm_view_account_settings', '1', now()),
|
||||
('17', 'superadmin', 'perm_view_article_add', '1', now()),
|
||||
('18', 'superadmin', 'perm_view_message_center', '1', now()),
|
||||
('19', 'superadmin', 'perm_view_message_detail', '1', now()),
|
||||
|
||||
-- 管理员:拥有业务管理权限,但没有系统日志等系统管理权限
|
||||
('22', 'admin', 'perm_default', '1', now()),
|
||||
('23', 'admin', 'perm_news_manage', '1', now()),
|
||||
('24', 'admin', 'perm_news_article_add', '1', now()),
|
||||
('25', 'admin', 'perm_study_manage', '1', now()),
|
||||
('26', 'admin', 'perm_achievement_manage', '1', now()),
|
||||
('27', 'admin', 'perm_ai_manage', '1', now()),
|
||||
('28', 'admin', 'perm_usercenter_manage', '1', now()),
|
||||
('29', 'admin', 'perm_file_manage', '1', now()),
|
||||
('30', 'admin', 'perm_message_manage', '1', now()),
|
||||
('31', 'admin', 'perm_message_send', '1', now()),
|
||||
('32', 'admin', 'perm_message_view', '1', now()),
|
||||
('33', 'admin', 'perm_sensitive_manage', '1', now()),
|
||||
-- 超级管理员专属权限 (100-999)
|
||||
('20', 'superadmin', 'perm_admin_overview', '1', now()),
|
||||
('21', 'superadmin', 'perm_admin_user_manage', '1', now()),
|
||||
('22', 'superadmin', 'perm_admin_dept_manage', '1', now()),
|
||||
('23', 'superadmin', 'perm_admin_role_manage', '1', now()),
|
||||
('24', 'superadmin', 'perm_admin_menu_manage', '1', now()),
|
||||
('25', 'superadmin', 'perm_admin_module_permission_manage', '1', now()),
|
||||
('26', 'superadmin', 'perm_admin_system_logs', '1', now()),
|
||||
('27', 'superadmin', 'perm_admin_login_logs', '1', now()),
|
||||
('28', 'superadmin', 'perm_admin_system_config', '1', now()),
|
||||
|
||||
-- 自由角色:拥有用户视图相关的所有权限(前台用户权限)
|
||||
('40', 'freedom', 'perm_default', '1', now()),
|
||||
('41', 'freedom', 'perm_news_article_add', '1', now()),
|
||||
('42', 'freedom', 'perm_ai_manage', '1', now()),
|
||||
('43', 'freedom', 'perm_usercenter_manage', '1', now()),
|
||||
('44', 'freedom', 'perm_file_manage', '1', now()),
|
||||
('45', 'freedom', 'perm_message_view', '1', now());
|
||||
-- 普通管理员权限 (1000-8999)
|
||||
('29', 'superadmin', 'perm_admin_resource_manage', '1', now()),
|
||||
('30', 'superadmin', 'perm_admin_article_manage', '1', now()),
|
||||
('31', 'superadmin', 'perm_admin_banner_manage', '1', now()),
|
||||
('32', 'superadmin', 'perm_admin_tag_manage', '1', now()),
|
||||
('33', 'superadmin', 'perm_admin_column_manage', '1', now()),
|
||||
('34', 'superadmin', 'perm_admin_sensitive_manage', '1', now()),
|
||||
('35', 'superadmin', 'perm_admin_task_manage', '1', now()),
|
||||
('36', 'superadmin', 'perm_admin_study_records', '1', now()),
|
||||
('37', 'superadmin', 'perm_admin_course_manage', '1', now()),
|
||||
('38', 'superadmin', 'perm_admin_achievement_manage', '1', now()),
|
||||
('39', 'superadmin', 'perm_admin_ai_config', '1', now()),
|
||||
('40', 'superadmin', 'perm_admin_knowledge_manage', '1', now()),
|
||||
('41', 'superadmin', 'perm_admin_meta_email_default', '1', now()),
|
||||
('42', 'superadmin', 'perm_admin_crontab_log', '1', now()),
|
||||
('43', 'superadmin', 'perm_admin_news_crawler', '1', now()),
|
||||
('44', 'superadmin', 'perm_admin_system_task', '1', now()),
|
||||
('45', 'superadmin', 'perm_admin_message_manage', '1', now()),
|
||||
|
||||
-- ============================================
|
||||
-- 管理员:拥有前端用户权限 + 普通管理员权限(没有超级管理员专属权限)
|
||||
-- ============================================
|
||||
-- 前端用户权限 (9000-9999)
|
||||
('100', 'admin', 'perm_default', '1', now()),
|
||||
('101', 'admin', 'perm_view_home', '1', now()),
|
||||
('102', 'admin', 'perm_view_resource_hot', '1', now()),
|
||||
('103', 'admin', 'perm_view_resource_center', '1', now()),
|
||||
('104', 'admin', 'perm_view_search', '1', now()),
|
||||
('105', 'admin', 'perm_view_article_show', '1', now()),
|
||||
('106', 'admin', 'perm_view_study_tasks', '1', now()),
|
||||
('107', 'admin', 'perm_view_course_center', '1', now()),
|
||||
('108', 'admin', 'perm_view_task_detail', '1', now()),
|
||||
('109', 'admin', 'perm_view_course_detail', '1', now()),
|
||||
('110', 'admin', 'perm_view_course_study', '1', now()),
|
||||
('111', 'admin', 'perm_view_learning_records', '1', now()),
|
||||
('112', 'admin', 'perm_view_my_favorites', '1', now()),
|
||||
('113', 'admin', 'perm_view_my_achievements', '1', now()),
|
||||
('114', 'admin', 'perm_view_personal_info', '1', now()),
|
||||
('115', 'admin', 'perm_view_account_settings', '1', now()),
|
||||
('116', 'admin', 'perm_view_article_add', '1', now()),
|
||||
('117', 'admin', 'perm_view_message_center', '1', now()),
|
||||
('118', 'admin', 'perm_view_message_detail', '1', now()),
|
||||
|
||||
-- 超级管理员权限中普通管理员也需要的部分
|
||||
('119', 'admin', 'perm_admin_user_manage', '1', now()),
|
||||
('120', 'admin', 'perm_admin_dept_manage', '1', now()),
|
||||
('121', 'admin', 'perm_admin_role_manage', '1', now()),
|
||||
|
||||
-- 普通管理员权限 (1000-8999)
|
||||
('122', 'admin', 'perm_admin_resource_manage', '1', now()),
|
||||
('123', 'admin', 'perm_admin_article_manage', '1', now()),
|
||||
('124', 'admin', 'perm_admin_banner_manage', '1', now()),
|
||||
('125', 'admin', 'perm_admin_tag_manage', '1', now()),
|
||||
('126', 'admin', 'perm_admin_column_manage', '1', now()),
|
||||
('127', 'admin', 'perm_admin_sensitive_manage', '1', now()),
|
||||
('128', 'admin', 'perm_admin_task_manage', '1', now()),
|
||||
('129', 'admin', 'perm_admin_study_records', '1', now()),
|
||||
('130', 'admin', 'perm_admin_course_manage', '1', now()),
|
||||
('131', 'admin', 'perm_admin_achievement_manage', '1', now()),
|
||||
('132', 'admin', 'perm_admin_ai_config', '1', now()),
|
||||
('133', 'admin', 'perm_admin_knowledge_manage', '1', now()),
|
||||
('134', 'admin', 'perm_admin_meta_email_default', '1', now()),
|
||||
('135', 'admin', 'perm_admin_crontab_log', '1', now()),
|
||||
('136', 'admin', 'perm_admin_news_crawler', '1', now()),
|
||||
('137', 'admin', 'perm_admin_system_task', '1', now()),
|
||||
('138', 'admin', 'perm_admin_message_manage', '1', now()),
|
||||
|
||||
-- ============================================
|
||||
-- 自由角色:仅拥有前端用户权限
|
||||
-- ============================================
|
||||
('200', 'freedom', 'perm_default', '1', now()),
|
||||
('201', 'freedom', 'perm_view_home', '1', now()),
|
||||
('202', 'freedom', 'perm_view_resource_hot', '1', now()),
|
||||
('203', 'freedom', 'perm_view_resource_center', '1', now()),
|
||||
('204', 'freedom', 'perm_view_search', '1', now()),
|
||||
('205', 'freedom', 'perm_view_article_show', '1', now()),
|
||||
('206', 'freedom', 'perm_view_study_tasks', '1', now()),
|
||||
('207', 'freedom', 'perm_view_course_center', '1', now()),
|
||||
('208', 'freedom', 'perm_view_task_detail', '1', now()),
|
||||
('209', 'freedom', 'perm_view_course_detail', '1', now()),
|
||||
('210', 'freedom', 'perm_view_course_study', '1', now()),
|
||||
('211', 'freedom', 'perm_view_learning_records', '1', now()),
|
||||
('212', 'freedom', 'perm_view_my_favorites', '1', now()),
|
||||
('213', 'freedom', 'perm_view_my_achievements', '1', now()),
|
||||
('214', 'freedom', 'perm_view_personal_info', '1', now()),
|
||||
('215', 'freedom', 'perm_view_account_settings', '1', now()),
|
||||
('216', 'freedom', 'perm_view_article_add', '1', now()),
|
||||
('217', 'freedom', 'perm_view_message_center', '1', now()),
|
||||
('218', 'freedom', 'perm_view_message_detail', '1', now());
|
||||
|
||||
-- 插入前端菜单数据
|
||||
-- 用户前端菜单 (100-699)
|
||||
@@ -178,72 +349,97 @@ INSERT INTO `tb_sys_menu` VALUES
|
||||
('651', 'menu_user_message_detail', '消息详情', 'menu_user_message_center', '/user/message/detail/:messageID', 'user/message/MyMessageDetailView', NULL, 1, 3, 'NavigationLayout', '1', NULL, '2025-11-13 10:00:00', '2025-11-13 10:00:00', NULL, 0);
|
||||
|
||||
-- 插入菜单权限关联数据
|
||||
-- 前端菜单权限关联
|
||||
-- ============================================
|
||||
-- 说明:每个有View的菜单对应一个权限
|
||||
-- 无View的菜单(如导航菜单)关联默认权限
|
||||
-- ============================================
|
||||
INSERT INTO `tb_sys_menu_permission` (id, permission_id, menu_id, creator, create_time) VALUES
|
||||
('100', 'perm_default', 'menu_home', '1', now()),
|
||||
('102', 'perm_default', 'menu_resource_hot', '1', now()),
|
||||
('101', 'perm_default', 'menu_resource_center', '1', now()),
|
||||
('108', 'perm_default', 'menu_study_plan', '1', now()),
|
||||
('109', 'perm_default', 'menu_study_tasks', '1', now()),
|
||||
('110', 'perm_default', 'menu_course_center', '1', now()),
|
||||
('111', 'perm_default', 'menu_user_center', '1', now()),
|
||||
('112', 'perm_default', 'menu_learning_records', '1', now()),
|
||||
('113', 'perm_default', 'menu_my_favorites', '1', now()),
|
||||
('114', 'perm_default', 'menu_my_achievements', '1', now()),
|
||||
('115', 'perm_default', 'menu_profile', '1', now()),
|
||||
('116', 'perm_default', 'menu_personal_info', '1', now()),
|
||||
('117', 'perm_default', 'menu_account_settings', '1', now()),
|
||||
('119', 'perm_default', 'menu_user_dropdown', '1', now()),
|
||||
('120', 'perm_news_article_add', 'menu_article_add', '1', now()),
|
||||
('121', 'perm_default', 'menu_task_detail', '1', now()),
|
||||
('122', 'perm_default', 'menu_course_detail', '1', now()),
|
||||
('123', 'perm_default', 'menu_course_study', '1', now()),
|
||||
('124', 'perm_default', 'menu_article_show', '1', now()),
|
||||
('125', 'perm_default', 'menu_search', '1', now()),
|
||||
|
||||
-- 后端管理菜单权限关联
|
||||
('200', 'perm_system_manage', 'menu_admin_overview', '1', now()),
|
||||
('201', 'perm_system_manage', 'menu_sys_manage', '1', now()),
|
||||
('203', 'perm_system_user_manage', 'menu_admin_user', '1', now()),
|
||||
('204', 'perm_system_dept_manage', 'menu_admin_dept', '1', now()),
|
||||
('205', 'perm_system_role_manage', 'menu_admin_role', '1', now()),
|
||||
('207', 'perm_system_menu_manage', 'menu_admin_menu', '1', now()),
|
||||
('208', 'perm_system_module_manage', 'menu_admin_module', '1', now()),
|
||||
('208.1', 'perm_system_permission_manage', 'menu_admin_module', '1', now()),
|
||||
('209', 'perm_news_manage', 'menu_admin_resource_manage', '1', now()),
|
||||
('210', 'perm_news_manage', 'menu_admin_resource', '1', now()),
|
||||
('211', 'perm_news_manage', 'menu_admin_article', '1', now()),
|
||||
('212', 'perm_news_manage', 'menu_admin_data_records', '1', now()),
|
||||
('213', 'perm_news_manage', 'menu_admin_content_manage', '1', now()),
|
||||
('214', 'perm_news_manage', 'menu_admin_banner', '1', now()),
|
||||
('215', 'perm_news_manage', 'menu_admin_tag', '1', now()),
|
||||
('216', 'perm_news_manage', 'menu_admin_column', '1', now()),
|
||||
('217', 'perm_sensitive_manage', 'menu_admin_sensitive', '1', now()),
|
||||
('218', 'perm_study_manage', 'menu_admin_study_manage', '1', now()),
|
||||
('220', 'perm_study_manage', 'menu_admin_task_manage', '1', now()),
|
||||
('221', 'perm_study_manage', 'menu_admin_study_records', '1', now()),
|
||||
('222', 'perm_study_manage', 'menu_admin_course_manage', '1', now()),
|
||||
('222.1', 'perm_achievement_manage', 'menu_admin_achievement_manage', '1', now()),
|
||||
('223', 'perm_ai_manage', 'menu_admin_ai_manage', '1', now()),
|
||||
('224', 'perm_ai_manage', 'menu_admin_ai', '1', now()),
|
||||
('225', 'perm_ai_manage', 'menu_admin_ai_config', '1', now()),
|
||||
('226', 'perm_ai_manage', 'menu_admin_knowledge', '1', now()),
|
||||
('227', 'perm_system_manage', 'menu_admin_logs_manage', '1', now()),
|
||||
('228', 'perm_system_manage', 'menu_admin_system_logs', '1', now()),
|
||||
('229', 'perm_system_manage', 'menu_admin_login_logs', '1', now()),
|
||||
('231', 'perm_system_manage', 'menu_admin_system_config', '1', now()),
|
||||
-- ========== 前端用户菜单权限关联 (9000-9999) ==========
|
||||
-- 基础视图
|
||||
('9001', 'perm_view_home', 'menu_home', '1', now()),
|
||||
('9002', 'perm_view_resource_hot', 'menu_resource_hot', '1', now()),
|
||||
('9003', 'perm_view_resource_center', 'menu_resource_center', '1', now()),
|
||||
('9004', 'perm_view_search', 'menu_search', '1', now()),
|
||||
('9005', 'perm_view_article_show', 'menu_article_show', '1', now()),
|
||||
|
||||
-- 定时任务管理菜单权限关联
|
||||
('232', 'perm_crontab_manage', 'menu_admin_crontab_manage', '1', now()),
|
||||
('236', 'perm_crontab_manage', 'menu_admin_meta_email_default', '1', now()),
|
||||
('233', 'perm_crontab_manage', 'menu_admin_crontab_task', '1', now()),
|
||||
('234', 'perm_crontab_manage', 'menu_admin_crontab_log', '1', now()),
|
||||
('235', 'perm_crontab_manage', 'menu_admin_news_crawler', '1', now()),
|
||||
('252', 'perm_crontab_manage', 'menu_admin_system_task', '1', now()),
|
||||
-- 学习计划相关
|
||||
('9006', 'perm_default', 'menu_study_plan', '1', now()), -- 无View的导航菜单
|
||||
('9100', 'perm_view_study_tasks', 'menu_study_tasks', '1', now()),
|
||||
('9101', 'perm_view_course_center', 'menu_course_center', '1', now()),
|
||||
('9102', 'perm_view_task_detail', 'menu_task_detail', '1', now()),
|
||||
('9103', 'perm_view_course_detail', 'menu_course_detail', '1', now()),
|
||||
('9104', 'perm_view_course_study', 'menu_course_study', '1', now()),
|
||||
|
||||
-- 消息通知管理菜单权限关联
|
||||
('240', 'perm_message_manage', 'menu_admin_message_manage', '1', now()),
|
||||
-- 用户端消息中心权限关联
|
||||
('250', 'perm_default', 'menu_user_message_center', '1', now()),
|
||||
('251', 'perm_default', 'menu_user_message_detail', '1', now());
|
||||
-- 用户中心相关
|
||||
('9007', 'perm_default', 'menu_user_dropdown', '1', now()), -- 无View的导航菜单
|
||||
('9008', 'perm_default', 'menu_user_center', '1', now()), -- Layout菜单
|
||||
('9200', 'perm_view_learning_records', 'menu_learning_records', '1', now()),
|
||||
('9201', 'perm_view_my_favorites', 'menu_my_favorites', '1', now()),
|
||||
('9202', 'perm_view_my_achievements', 'menu_my_achievements', '1', now()),
|
||||
|
||||
-- 个人信息相关
|
||||
('9009', 'perm_default', 'menu_profile', '1', now()), -- Layout菜单
|
||||
('9203', 'perm_view_personal_info', 'menu_personal_info', '1', now()),
|
||||
('9204', 'perm_view_account_settings', 'menu_account_settings', '1', now()),
|
||||
|
||||
-- 文章和消息
|
||||
('9300', 'perm_view_article_add', 'menu_article_add', '1', now()),
|
||||
('9301', 'perm_view_message_center', 'menu_user_message_center', '1', now()),
|
||||
('9302', 'perm_view_message_detail', 'menu_user_message_detail', '1', now()),
|
||||
|
||||
-- ========== 超级管理员菜单权限关联 (100-999) ==========
|
||||
-- 系统总览
|
||||
('100', 'perm_admin_overview', 'menu_admin_overview', '1', now()),
|
||||
|
||||
-- 系统管理
|
||||
('101', 'perm_default', 'menu_sys_manage', '1', now()), -- 无View的导航菜单
|
||||
('200', 'perm_admin_user_manage', 'menu_admin_user', '1', now()),
|
||||
('300', 'perm_admin_dept_manage', 'menu_admin_dept', '1', now()),
|
||||
('400', 'perm_admin_role_manage', 'menu_admin_role', '1', now()),
|
||||
('500', 'perm_admin_menu_manage', 'menu_admin_menu', '1', now()),
|
||||
('600', 'perm_admin_module_permission_manage', 'menu_admin_module', '1', now()),
|
||||
|
||||
-- 系统日志
|
||||
('102', 'perm_default', 'menu_admin_logs_manage', '1', now()), -- 无View的导航菜单
|
||||
('700', 'perm_admin_system_logs', 'menu_admin_system_logs', '1', now()),
|
||||
('701', 'perm_admin_login_logs', 'menu_admin_login_logs', '1', now()),
|
||||
|
||||
-- 系统配置
|
||||
('800', 'perm_admin_system_config', 'menu_admin_system_config', '1', now()),
|
||||
|
||||
-- ========== 普通管理员菜单权限关联 (1000-8999) ==========
|
||||
-- 资源管理
|
||||
('103', 'perm_default', 'menu_admin_resource_manage', '1', now()), -- 无View的导航菜单
|
||||
('1000', 'perm_admin_resource_manage', 'menu_admin_resource', '1', now()),
|
||||
('1100', 'perm_admin_article_manage', 'menu_admin_article', '1', now()),
|
||||
|
||||
-- 运营管理
|
||||
('104', 'perm_default', 'menu_admin_content_manage', '1', now()), -- 无View的导航菜单
|
||||
('1200', 'perm_admin_banner_manage', 'menu_admin_banner', '1', now()),
|
||||
('1300', 'perm_admin_tag_manage', 'menu_admin_tag', '1', now()),
|
||||
('1400', 'perm_admin_column_manage', 'menu_admin_column', '1', now()),
|
||||
('1500', 'perm_admin_sensitive_manage', 'menu_admin_sensitive', '1', now()),
|
||||
|
||||
-- 学习管理
|
||||
('105', 'perm_default', 'menu_admin_study_manage', '1', now()), -- 无View的导航菜单
|
||||
('2000', 'perm_admin_task_manage', 'menu_admin_task_manage', '1', now()),
|
||||
('2100', 'perm_admin_study_records', 'menu_admin_study_records', '1', now()),
|
||||
('2200', 'perm_admin_course_manage', 'menu_admin_course_manage', '1', now()),
|
||||
('2300', 'perm_admin_achievement_manage', 'menu_admin_achievement_manage', '1', now()),
|
||||
|
||||
-- AI管理
|
||||
('106', 'perm_default', 'menu_admin_ai_manage', '1', now()), -- 无View的导航菜单
|
||||
('3000', 'perm_admin_ai_config', 'menu_admin_ai_config', '1', now()),
|
||||
('3100', 'perm_admin_knowledge_manage', 'menu_admin_knowledge', '1', now()),
|
||||
|
||||
-- 定时任务管理
|
||||
('107', 'perm_default', 'menu_admin_crontab_manage', '1', now()), -- 无View的导航菜单
|
||||
('5000', 'perm_admin_meta_email_default', 'menu_admin_meta_email_default', '1', now()),
|
||||
('5100', 'perm_admin_crontab_log', 'menu_admin_crontab_log', '1', now()),
|
||||
('5200', 'perm_admin_news_crawler', 'menu_admin_news_crawler', '1', now()),
|
||||
('5300', 'perm_admin_system_task', 'menu_admin_system_task', '1', now()),
|
||||
|
||||
-- 消息管理
|
||||
('6000', 'perm_admin_message_manage', 'menu_admin_message_manage', '1', now());
|
||||
|
||||
|
||||
@@ -90,8 +90,8 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
if (achievement.getID() == null) {
|
||||
achievement.setID(IDUtils.generateID());
|
||||
if (achievement.getId() == null) {
|
||||
achievement.setId(IDUtils.generateID());
|
||||
}
|
||||
if (achievement.getAchievementID() == null) {
|
||||
achievement.setAchievementID(IDUtils.generateID());
|
||||
@@ -285,7 +285,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
return rd;
|
||||
}
|
||||
|
||||
String userID = user.getID();
|
||||
String userID = user.getId();
|
||||
// 仅查询等级类成就
|
||||
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
|
||||
List<AchievementVO> levels = achievementMapper.selectUserAchievementsWithProgress(
|
||||
@@ -371,7 +371,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
for (AchievementVO vo : voList) {
|
||||
if (Boolean.TRUE.equals(vo.getObtained())) {
|
||||
TbUserAchievement ua = new TbUserAchievement();
|
||||
ua.setID(vo.getUserAchievementID());
|
||||
ua.setId(vo.getUserAchievementID());
|
||||
ua.setUserID(userID);
|
||||
ua.setAchievementID(vo.getAchievementID());
|
||||
ua.setObtainTime(vo.getObtainTime());
|
||||
@@ -396,7 +396,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
resultDomain.fail("请先登录");
|
||||
return resultDomain;
|
||||
}
|
||||
return getUserAchievements(user.getID(), type);
|
||||
return getUserAchievements(user.getId(), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -410,7 +410,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
String userID = user.getID();
|
||||
String userID = user.getId();
|
||||
|
||||
// 使用联表查询一次性获取所有数据(包含成就、用户成就、进度信息及权限过滤)
|
||||
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
|
||||
@@ -474,7 +474,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
|
||||
// 创建用户成就记录
|
||||
TbUserAchievement userAchievement = new TbUserAchievement();
|
||||
userAchievement.setID(IDUtils.generateID());
|
||||
userAchievement.setId(IDUtils.generateID());
|
||||
userAchievement.setUserID(userID);
|
||||
userAchievement.setAchievementID(achievementID);
|
||||
userAchievement.setObtainTime(new Date());
|
||||
@@ -559,7 +559,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
resultDomain.fail("请先登录");
|
||||
return resultDomain;
|
||||
}
|
||||
return getUserAchievementProgress(user.getID(), achievementID);
|
||||
return getUserAchievementProgress(user.getId(), achievementID);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -812,7 +812,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
}
|
||||
|
||||
progress = new TbUserAchievementProgress();
|
||||
progress.setID(IDUtils.generateID());
|
||||
progress.setId(IDUtils.generateID());
|
||||
progress.setUserID(userID);
|
||||
progress.setAchievementID(achievementID);
|
||||
progress.setCurrentValue(0);
|
||||
@@ -845,7 +845,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
private TbUserAchievement grantAchievementInternal(String userID, TbAchievement achievement) {
|
||||
try {
|
||||
TbUserAchievement userAchievement = new TbUserAchievement();
|
||||
userAchievement.setID(IDUtils.generateID());
|
||||
userAchievement.setId(IDUtils.generateID());
|
||||
userAchievement.setUserID(userID);
|
||||
userAchievement.setAchievementID(achievement.getAchievementID());
|
||||
userAchievement.setObtainTime(new Date());
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.usercenter.TbAchievement">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="achievement_id" property="achievementID" />
|
||||
<result column="name" property="name" />
|
||||
<result column="description" property="description" />
|
||||
@@ -34,8 +34,8 @@
|
||||
<sql id="Base_Where_Clause">
|
||||
<where>
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.achievementID != null and filter.achievementID != ''">
|
||||
AND achievement_id = #{filter.achievementID}
|
||||
@@ -254,7 +254,7 @@
|
||||
) VALUES
|
||||
<foreach collection="achievementList" item="item" separator=",">
|
||||
(
|
||||
#{item.ID}, #{item.achievementID}, #{item.name}, #{item.description}, #{item.icon},
|
||||
#{item.id}, #{item.achievementID}, #{item.name}, #{item.description}, #{item.icon},
|
||||
#{item.type}, #{item.level}, #{item.conditionType}, #{item.conditionValue},
|
||||
#{item.points}, #{item.orderNum}, #{item.creator}, #{item.updater},
|
||||
#{item.createTime}, #{item.updateTime}, #{item.deleteTime}, #{item.deleted}
|
||||
@@ -327,7 +327,7 @@
|
||||
<!-- AchievementVO 结果映射(包含用户成就和进度信息) -->
|
||||
<resultMap id="AchievementVOResultMap" type="org.xyzh.common.vo.AchievementVO">
|
||||
<!-- 成就基本信息 -->
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="achievement_id" property="achievementID" />
|
||||
<result column="name" property="name" />
|
||||
<result column="description" property="description" />
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.usercenter.TbUserAchievement">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="user_id" property="userID" />
|
||||
<result column="achievement_id" property="achievementID" />
|
||||
<result column="obtain_time" property="obtainTime" />
|
||||
@@ -19,8 +19,8 @@
|
||||
<sql id="Base_Where_Clause">
|
||||
<where>
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND ua.id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND ua.id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.userID != null and filter.userID != ''">
|
||||
AND ua.user_id = #{filter.userID}
|
||||
@@ -158,7 +158,7 @@
|
||||
) VALUES
|
||||
<foreach collection="userAchievementList" item="item" separator=",">
|
||||
(
|
||||
#{item.ID}, #{item.userID}, #{item.achievementID}, #{item.obtainTime}
|
||||
#{item.id}, #{item.userID}, #{item.achievementID}, #{item.obtainTime}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.usercenter.TbUserAchievementProgress">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="user_id" property="userID" />
|
||||
<result column="achievement_id" property="achievementID" />
|
||||
<result column="current_value" property="currentValue" />
|
||||
@@ -112,7 +112,7 @@
|
||||
) VALUES
|
||||
<foreach collection="progressList" item="item" separator=",">
|
||||
(
|
||||
#{item.ID}, #{item.userID}, #{item.achievementID}, #{item.currentValue},
|
||||
#{item.id}, #{item.userID}, #{item.achievementID}, #{item.currentValue},
|
||||
#{item.targetValue}, #{item.progressPercentage}, #{item.completed},
|
||||
#{item.lastUpdateTime}, #{item.createTime}
|
||||
)
|
||||
|
||||
@@ -189,7 +189,7 @@ public class AiChatController {
|
||||
*/
|
||||
@PutMapping("/conversation")
|
||||
public ResultDomain<TbAiConversation> updateConversation(@RequestBody TbAiConversation conversation) {
|
||||
log.info("更新会话: id={}", conversation.getID());
|
||||
log.info("更新会话: id={}", conversation.getId());
|
||||
return chatService.updateConversation(conversation);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,9 +65,9 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
}
|
||||
|
||||
// 4. 设置默认值
|
||||
agentConfig.setID(UUID.randomUUID().toString());
|
||||
agentConfig.setCreator(currentUser.getID());
|
||||
agentConfig.setUpdater(currentUser.getID());
|
||||
agentConfig.setId(UUID.randomUUID().toString());
|
||||
agentConfig.setCreator(currentUser.getId());
|
||||
agentConfig.setUpdater(currentUser.getId());
|
||||
agentConfig.setCreateTime(new Date());
|
||||
agentConfig.setUpdateTime(new Date());
|
||||
agentConfig.setDeleted(false);
|
||||
@@ -79,7 +79,7 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
// 5. 插入数据库
|
||||
int rows = agentConfigMapper.insertAgentConfig(agentConfig);
|
||||
if (rows > 0) {
|
||||
log.info("创建智能体成功: {} - {}", agentConfig.getID(), agentConfig.getName());
|
||||
log.info("创建智能体成功: {} - {}", agentConfig.getId(), agentConfig.getName());
|
||||
resultDomain.success("创建智能体成功", agentConfig);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -101,13 +101,13 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
try {
|
||||
// 1. 参数验证
|
||||
if (!StringUtils.hasText(agentConfig.getID())) {
|
||||
if (!StringUtils.hasText(agentConfig.getId())) {
|
||||
resultDomain.fail("智能体ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 2. 检查是否存在
|
||||
TbAiAgentConfig existing = agentConfigMapper.selectAgentConfigById(agentConfig.getID());
|
||||
TbAiAgentConfig existing = agentConfigMapper.selectAgentConfigById(agentConfig.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("智能体不存在");
|
||||
return resultDomain;
|
||||
@@ -116,7 +116,7 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
// 3. 检查名称是否重复
|
||||
if (StringUtils.hasText(agentConfig.getName()) &&
|
||||
!agentConfig.getName().equals(existing.getName())) {
|
||||
ResultDomain<Boolean> checkResult = checkNameExists(agentConfig.getName(), agentConfig.getID());
|
||||
ResultDomain<Boolean> checkResult = checkNameExists(agentConfig.getName(), agentConfig.getId());
|
||||
if (checkResult.getData()) {
|
||||
resultDomain.fail("智能体名称已存在");
|
||||
return resultDomain;
|
||||
@@ -131,15 +131,15 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
}
|
||||
|
||||
// 5. 更新字段
|
||||
agentConfig.setUpdater(currentUser.getID());
|
||||
agentConfig.setUpdater(currentUser.getId());
|
||||
agentConfig.setUpdateTime(new Date());
|
||||
|
||||
// 6. 执行更新
|
||||
int rows = agentConfigMapper.updateAgentConfig(agentConfig);
|
||||
if (rows > 0) {
|
||||
// 重新查询最新数据
|
||||
TbAiAgentConfig updated = agentConfigMapper.selectAgentConfigById(agentConfig.getID());
|
||||
log.info("更新智能体成功: {} - {}", agentConfig.getID(), agentConfig.getName());
|
||||
TbAiAgentConfig updated = agentConfigMapper.selectAgentConfigById(agentConfig.getId());
|
||||
log.info("更新智能体成功: {} - {}", agentConfig.getId(), agentConfig.getName());
|
||||
resultDomain.success("更新智能体成功", updated);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -182,8 +182,8 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 4. 逻辑删除
|
||||
TbAiAgentConfig deleteEntity = new TbAiAgentConfig();
|
||||
deleteEntity.setID(agentId);
|
||||
deleteEntity.setUpdater(currentUser.getID());
|
||||
deleteEntity.setId(agentId);
|
||||
deleteEntity.setUpdater(currentUser.getId());
|
||||
|
||||
int rows = agentConfigMapper.deleteAgentConfig(deleteEntity);
|
||||
if (rows > 0) {
|
||||
@@ -310,13 +310,13 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 3. 更新状态
|
||||
TbAiAgentConfig update = new TbAiAgentConfig();
|
||||
update.setID(agentId);
|
||||
update.setId(agentId);
|
||||
update.setStatus(status);
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
int rows = agentConfigMapper.updateAgentConfig(update);
|
||||
@@ -370,14 +370,14 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 4. 更新Dify配置
|
||||
TbAiAgentConfig update = new TbAiAgentConfig();
|
||||
update.setID(agentId);
|
||||
update.setId(agentId);
|
||||
update.setDifyAppId(difyAppId);
|
||||
update.setDifyApiKey(difyApiKey);
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
int rows = agentConfigMapper.updateAgentConfig(update);
|
||||
|
||||
@@ -55,7 +55,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询数据
|
||||
List<TbAiConversation> conversations = conversationMapper.selectUserConversationsPage(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agentId,
|
||||
keyword,
|
||||
isFavorite,
|
||||
@@ -66,7 +66,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询总数
|
||||
long total = conversationMapper.countUserConversationsWithFilter(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agentId,
|
||||
keyword,
|
||||
isFavorite,
|
||||
@@ -105,14 +105,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 搜索会话
|
||||
List<TbAiConversation> conversations = conversationMapper.searchConversationsByKeyword(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
pageParam
|
||||
);
|
||||
|
||||
// 查询总数
|
||||
long total = conversationMapper.countSearchConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword
|
||||
);
|
||||
|
||||
@@ -147,7 +147,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 搜索消息
|
||||
List<TbAiMessage> messages = messageMapper.searchMessagesByContent(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
conversationId,
|
||||
pageParam
|
||||
@@ -155,7 +155,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询总数
|
||||
long total = messageMapper.countSearchMessages(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
conversationId
|
||||
);
|
||||
@@ -197,14 +197,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权操作此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 更新收藏状态
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setIsFavorite(isFavorite);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -240,14 +240,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权操作此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 更新置顶状态
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setIsPinned(isPinned);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -284,17 +284,17 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
int deleteCount = 0;
|
||||
for (String conversationId : conversationIds) {
|
||||
TbAiConversation conversation = conversationMapper.selectConversationById(conversationId);
|
||||
if (conversation != null && conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (conversation != null && conversation.getUserID().equals(currentUser.getId())) {
|
||||
// 逻辑删除会话
|
||||
TbAiConversation deleteEntity = new TbAiConversation();
|
||||
deleteEntity.setID(conversationId);
|
||||
deleteEntity.setId(conversationId);
|
||||
conversationMapper.deleteConversation(deleteEntity);
|
||||
|
||||
// 同时删除消息
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
String targetUserId = StringUtils.hasText(userId) ? userId : currentUser.getID();
|
||||
String targetUserId = StringUtils.hasText(userId) ? userId : currentUser.getId();
|
||||
|
||||
// 统计数据
|
||||
Map<String, Object> statistics = new HashMap<>();
|
||||
@@ -388,7 +388,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -455,7 +455,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -523,7 +523,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -631,7 +631,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询过期会话ID
|
||||
List<String> expiredIds = conversationMapper.selectExpiredConversationIds(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
beforeDate
|
||||
);
|
||||
|
||||
@@ -648,7 +648,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
}
|
||||
@@ -677,7 +677,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
int queryLimit = (limit != null && limit > 0) ? limit : 10;
|
||||
List<TbAiConversation> conversations = conversationMapper.selectRecentConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
queryLimit
|
||||
);
|
||||
|
||||
@@ -704,7 +704,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
int queryLimit = (limit != null && limit > 0) ? limit : 10;
|
||||
List<TbAiConversation> conversations = conversationMapper.selectPopularConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
queryLimit
|
||||
);
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
emitter.complete();
|
||||
return emitter;
|
||||
}
|
||||
if (!conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (!conversation.getUserID().equals(currentUser.getId())) {
|
||||
emitter.send(SseEmitter.event().name("error").data("无权访问此会话"));
|
||||
emitter.complete();
|
||||
return emitter;
|
||||
@@ -222,12 +222,12 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
conversation = createResult.getData();
|
||||
}
|
||||
|
||||
final String finalConversationId = conversation.getID();
|
||||
final String finalConversationId = conversation.getId();
|
||||
|
||||
// 5. 创建用户消息记录
|
||||
TbAiMessage userMessage = new TbAiMessage();
|
||||
String userMessageId = UUID.randomUUID().toString();
|
||||
userMessage.setID(userMessageId);
|
||||
userMessage.setId(userMessageId);
|
||||
userMessage.setConversationID(finalConversationId);
|
||||
userMessage.setAgentID(agentId);
|
||||
userMessage.setRole("user");
|
||||
@@ -235,7 +235,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
userMessage.setCreateTime(new Date());
|
||||
userMessage.setUpdateTime(new Date());
|
||||
userMessage.setDeleted(false);
|
||||
userMessage.setUserID(currentUser.getID());
|
||||
userMessage.setUserID(currentUser.getId());
|
||||
|
||||
// 处理文件关联(将文件ID列表转换为JSON数组保存)
|
||||
if (filesData != null && !filesData.isEmpty()) {
|
||||
@@ -261,7 +261,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 6. 保存文件关联记录到tb_ai_upload_file
|
||||
if (filesData != null && !filesData.isEmpty()) {
|
||||
saveMessageFileRecords(userMessageId, finalConversationId, currentUser.getID(), filesData);
|
||||
saveMessageFileRecords(userMessageId, finalConversationId, currentUser.getId(), filesData);
|
||||
}
|
||||
|
||||
// 注意:AI消息记录将在获取到Dify的task_id后创建
|
||||
@@ -272,7 +272,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 7. 构建Dify请求
|
||||
ChatRequest chatRequest = new ChatRequest();
|
||||
chatRequest.setQuery(query);
|
||||
chatRequest.setUser(currentUser.getID());
|
||||
chatRequest.setUser(currentUser.getId());
|
||||
|
||||
if (StringUtils.hasText(conversation.getDifyConversationId())) {
|
||||
chatRequest.setConversationId(conversation.getDifyConversationId());
|
||||
@@ -331,7 +331,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 更新AI消息内容(使用task_id作为消息ID)
|
||||
if (taskId.get() != null) {
|
||||
TbAiMessage updateMessage = new TbAiMessage();
|
||||
updateMessage.setID(taskId.get());
|
||||
updateMessage.setId(taskId.get());
|
||||
updateMessage.setContent(fullAnswer.toString());
|
||||
updateMessage.setDifyMessageId(difyMessageId.get());
|
||||
updateMessage.setUpdateTime(new Date());
|
||||
@@ -341,7 +341,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 更新会话的Dify会话ID
|
||||
if (StringUtils.hasText(difyConversationId.get())) {
|
||||
TbAiConversation updateConv = new TbAiConversation();
|
||||
updateConv.setID(finalConversationId);
|
||||
updateConv.setId(finalConversationId);
|
||||
updateConv.setDifyConversationId(difyConversationId.get());
|
||||
updateConv.setMessageCount((finalConversation.getMessageCount() != null ?
|
||||
finalConversation.getMessageCount() : 0) + 2);
|
||||
@@ -382,7 +382,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 使用task_id作为消息ID,创建AI消息记录
|
||||
TbAiMessage aiMessage = new TbAiMessage();
|
||||
aiMessage.setID(difyTaskId); // 使用Dify的task_id作为消息ID
|
||||
aiMessage.setId(difyTaskId); // 使用Dify的task_id作为消息ID
|
||||
aiMessage.setConversationID(finalConversationId);
|
||||
aiMessage.setAgentID(agentId);
|
||||
aiMessage.setRole("assistant");
|
||||
@@ -515,7 +515,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
TbAiConversation conversation;
|
||||
if (StringUtils.hasText(conversationId)) {
|
||||
conversation = conversationMapper.selectConversationById(conversationId);
|
||||
if (conversation == null || !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (conversation == null || !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("会话不存在或无权访问");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -526,12 +526,12 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
return resultDomain;
|
||||
}
|
||||
conversation = createResult.getData();
|
||||
conversationId = conversation.getID();
|
||||
conversationId = conversation.getId();
|
||||
}
|
||||
|
||||
// 创建用户消息
|
||||
TbAiMessage userMessage = new TbAiMessage();
|
||||
userMessage.setID(UUID.randomUUID().toString());
|
||||
userMessage.setId(UUID.randomUUID().toString());
|
||||
userMessage.setConversationID(conversationId);
|
||||
userMessage.setAgentID(agentId);
|
||||
userMessage.setRole("user");
|
||||
@@ -544,7 +544,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 构建Dify请求
|
||||
ChatRequest chatRequest = new ChatRequest();
|
||||
chatRequest.setQuery(query);
|
||||
chatRequest.setUser(currentUser.getID());
|
||||
chatRequest.setUser(currentUser.getId());
|
||||
|
||||
if (StringUtils.hasText(conversation.getDifyConversationId())) {
|
||||
chatRequest.setConversationId(conversation.getDifyConversationId());
|
||||
@@ -561,7 +561,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 创建AI回复消息
|
||||
TbAiMessage aiMessage = new TbAiMessage();
|
||||
aiMessage.setID(UUID.randomUUID().toString());
|
||||
aiMessage.setId(UUID.randomUUID().toString());
|
||||
aiMessage.setConversationID(conversationId);
|
||||
aiMessage.setAgentID(agentId);
|
||||
aiMessage.setRole("assistant");
|
||||
@@ -574,14 +574,14 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新会话
|
||||
TbAiConversation updateConv = new TbAiConversation();
|
||||
updateConv.setID(conversationId);
|
||||
updateConv.setId(conversationId);
|
||||
updateConv.setDifyConversationId(chatResponse.getConversationId());
|
||||
updateConv.setMessageCount((conversation.getMessageCount() != null ?
|
||||
conversation.getMessageCount() : 0) + 2);
|
||||
updateConv.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(updateConv);
|
||||
|
||||
log.info("阻塞式对话成功: {} - {}", conversationId, aiMessage.getID());
|
||||
log.info("阻塞式对话成功: {} - {}", conversationId, aiMessage.getId());
|
||||
resultDomain.success("对话成功", aiMessage);
|
||||
return resultDomain;
|
||||
|
||||
@@ -624,7 +624,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
try {
|
||||
difyApiClient.stopChatMessage(
|
||||
taskId,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agent.getDifyApiKey()
|
||||
);
|
||||
log.info("对话停止成功,task_id: {}", taskId);
|
||||
@@ -673,8 +673,8 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 创建会话
|
||||
TbAiConversation conversation = new TbAiConversation();
|
||||
conversation.setID(UUID.randomUUID().toString());
|
||||
conversation.setUserID(currentUser.getID());
|
||||
conversation.setId(UUID.randomUUID().toString());
|
||||
conversation.setUserID(currentUser.getId());
|
||||
conversation.setAgentID(agentId);
|
||||
conversation.setTitle(StringUtils.hasText(title) ? title : "新对话");
|
||||
conversation.setMessageCount(0);
|
||||
@@ -684,7 +684,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
conversationMapper.insertConversation(conversation);
|
||||
|
||||
log.info("创建会话成功: {} - {}", conversation.getID(), currentUser.getID());
|
||||
log.info("创建会话成功: {} - {}", conversation.getId(), currentUser.getId());
|
||||
resultDomain.success("创建会话成功", conversation);
|
||||
return resultDomain;
|
||||
|
||||
@@ -713,7 +713,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 验证所属权
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -734,20 +734,20 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
ResultDomain<TbAiConversation> resultDomain = new ResultDomain<>();
|
||||
|
||||
try {
|
||||
if (!StringUtils.hasText(conversation.getID())) {
|
||||
if (!StringUtils.hasText(conversation.getId())) {
|
||||
resultDomain.fail("会话ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 验证所属权
|
||||
TbAiConversation existing = conversationMapper.selectConversationById(conversation.getID());
|
||||
TbAiConversation existing = conversationMapper.selectConversationById(conversation.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("会话不存在");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权修改此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -757,7 +757,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
conversationMapper.updateConversation(conversation);
|
||||
|
||||
// 重新查询
|
||||
TbAiConversation updated = conversationMapper.selectConversationById(conversation.getID());
|
||||
TbAiConversation updated = conversationMapper.selectConversationById(conversation.getId());
|
||||
resultDomain.success("更新成功", updated);
|
||||
return resultDomain;
|
||||
|
||||
@@ -787,21 +787,21 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权删除此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 逻辑删除会话
|
||||
TbAiConversation deleteEntity = new TbAiConversation();
|
||||
deleteEntity.setID(conversationId);
|
||||
deleteEntity.setId(conversationId);
|
||||
conversationMapper.deleteConversation(deleteEntity);
|
||||
|
||||
// 同时逻辑删除该会话的所有消息
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
|
||||
@@ -828,7 +828,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
List<TbAiConversation> conversations = conversationMapper.selectConversationsByUserId(
|
||||
currentUser.getID(), agentId
|
||||
currentUser.getId(), agentId
|
||||
);
|
||||
|
||||
resultDomain.success("查询成功", conversations);
|
||||
@@ -859,7 +859,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -996,7 +996,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新会话摘要
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setSummary(summary);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -1066,7 +1066,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
difyApiClient.submitMessageFeedback(
|
||||
message.getDifyMessageId(),
|
||||
difyRating,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
feedback,
|
||||
agent.getDifyApiKey()
|
||||
);
|
||||
@@ -1079,7 +1079,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新本地评价
|
||||
TbAiMessage update = new TbAiMessage();
|
||||
update.setID(messageId);
|
||||
update.setId(messageId);
|
||||
update.setRating(rating);
|
||||
update.setFeedback(feedback);
|
||||
update.setUpdateTime(new Date());
|
||||
@@ -1110,7 +1110,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
for (DifyFileInfo fileInfo : filesData) {
|
||||
TbAiUploadFile uploadFile = new TbAiUploadFile();
|
||||
uploadFile.setID(UUID.randomUUID().toString());
|
||||
uploadFile.setId(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(userId);
|
||||
uploadFile.setConversationID(conversationId);
|
||||
uploadFile.setMessageID(messageId); // 绑定到消息
|
||||
@@ -1152,7 +1152,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 获取当前登录用户的完整信息(包含部门角色列表)
|
||||
LoginDomain loginDomain = LoginUtil.getCurrentLoginDomain();
|
||||
if (loginDomain == null || loginDomain.getRoles() == null || loginDomain.getRoles().isEmpty()) {
|
||||
log.warn("用户 {} 没有部门角色信息,返回空知识库列表", user.getID());
|
||||
log.warn("用户 {} 没有部门角色信息,返回空知识库列表", user.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1161,7 +1161,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
String deptPath = userRole.getDeptPath();
|
||||
|
||||
if (deptPath == null || deptPath.isEmpty()) {
|
||||
log.warn("用户 {} 的部门路径为空,返回空知识库列表", user.getID());
|
||||
log.warn("用户 {} 的部门路径为空,返回空知识库列表", user.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1169,15 +1169,15 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
List<String> knowledgeIds = ((AiKnowledgeRedisServiceImpl) knowledgeRedisService).getKnowledgeIdsByDeptPath(deptPath);
|
||||
|
||||
if (knowledgeIds == null || knowledgeIds.isEmpty()) {
|
||||
log.warn("用户 {} 所在部门路径 {} 没有关联的知识库", user.getID(), deptPath);
|
||||
log.warn("用户 {} 所在部门路径 {} 没有关联的知识库", user.getId(), deptPath);
|
||||
return null;
|
||||
}
|
||||
|
||||
log.info("用户 {} 从部门路径 {} 获取到 {} 个知识库", user.getID(), deptPath, knowledgeIds.size());
|
||||
log.info("用户 {} 从部门路径 {} 获取到 {} 个知识库", user.getId(), deptPath, knowledgeIds.size());
|
||||
return knowledgeIds;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("根据用户获取知识库ID失败: userId={}", user.getID(), e);
|
||||
log.error("根据用户获取知识库ID失败: userId={}", user.getId(), e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class AiKnowledgeRedisServiceImpl implements AiKnowledgeRedisService, Com
|
||||
|
||||
String deptId = knowledge.getCreatorDept();
|
||||
if (deptId == null || deptId.isEmpty()) {
|
||||
log.warn("知识库 {} 没有部门信息,跳过", knowledge.getID());
|
||||
log.warn("知识库 {} 没有部门信息,跳过", knowledge.getId());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
|
||||
// 4. 保存到本地数据库
|
||||
knowledge.setID(UUID.randomUUID().toString());
|
||||
knowledge.setId(UUID.randomUUID().toString());
|
||||
knowledge.setDifyDatasetId(difyDatasetId);
|
||||
knowledge.setDifyIndexingTechnique(indexingTechnique);
|
||||
knowledge.setEmbeddingModel(embeddingModel);
|
||||
@@ -198,9 +198,9 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
// 保存检索配置(从前端传入,已经在 knowledge 对象中)
|
||||
// retrievalTopK, retrievalScoreThreshold, rerankModel, rerankModelProvider 已设置
|
||||
knowledge.setCreator(currentUser.getID());
|
||||
knowledge.setCreator(currentUser.getId());
|
||||
knowledge.setCreatorDept(deptId);
|
||||
knowledge.setUpdater(currentUser.getID());
|
||||
knowledge.setUpdater(currentUser.getId());
|
||||
knowledge.setCreateTime(new Date());
|
||||
knowledge.setUpdateTime(new Date());
|
||||
knowledge.setDeleted(false);
|
||||
@@ -230,7 +230,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
// 5. 创建权限记录
|
||||
try {
|
||||
createKnowledgePermission(
|
||||
knowledge.getID(),
|
||||
knowledge.getId(),
|
||||
permissionType,
|
||||
deptIds,
|
||||
roleIds,
|
||||
@@ -250,7 +250,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
// 缓存更新失败不影响知识库创建,记录日志即可
|
||||
}
|
||||
|
||||
log.info("知识库创建成功: {} - {}", knowledge.getID(), knowledge.getTitle());
|
||||
log.info("知识库创建成功: {} - {}", knowledge.getId(), knowledge.getTitle());
|
||||
resultDomain.success("知识库创建成功", knowledge);
|
||||
return resultDomain;
|
||||
|
||||
@@ -268,20 +268,20 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
try {
|
||||
// 1. 参数验证
|
||||
if (!StringUtils.hasText(knowledge.getID())) {
|
||||
if (!StringUtils.hasText(knowledge.getId())) {
|
||||
resultDomain.fail("知识库ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 2. 检查是否存在
|
||||
TbAiKnowledge existing = knowledgeMapper.selectKnowledgeById(knowledge.getID());
|
||||
TbAiKnowledge existing = knowledgeMapper.selectKnowledgeById(knowledge.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("知识库不存在");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 3. 权限检查:只有创建者或有write权限的用户可以修改
|
||||
ResultDomain<Boolean> permissionCheck = checkKnowledgePermission(knowledge.getID(), "write");
|
||||
ResultDomain<Boolean> permissionCheck = checkKnowledgePermission(knowledge.getId(), "write");
|
||||
if (!permissionCheck.getData()) {
|
||||
resultDomain.fail("无权限修改此知识库");
|
||||
return resultDomain;
|
||||
@@ -319,7 +319,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
updateRequest.setIndexingTechnique(knowledge.getDifyIndexingTechnique());
|
||||
needUpdateDify = true;
|
||||
} else {
|
||||
log.warn("不允许从high_quality降级为economy: knowledgeId={}", knowledge.getID());
|
||||
log.warn("不允许从high_quality降级为economy: knowledgeId={}", knowledge.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,14 +425,14 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
|
||||
// 6. 更新本地数据
|
||||
knowledge.setUpdater(currentUser.getID());
|
||||
knowledge.setUpdater(currentUser.getId());
|
||||
knowledge.setUpdateTime(new Date());
|
||||
|
||||
int rows = knowledgeMapper.updateKnowledge(knowledge);
|
||||
if (rows > 0) {
|
||||
// 重新查询最新数据
|
||||
TbAiKnowledge updated = knowledgeMapper.selectKnowledgeById(knowledge.getID());
|
||||
log.info("知识库更新成功: {} - {}", knowledge.getID(), knowledge.getTitle());
|
||||
TbAiKnowledge updated = knowledgeMapper.selectKnowledgeById(knowledge.getId());
|
||||
log.info("知识库更新成功: {} - {}", knowledge.getId(), knowledge.getTitle());
|
||||
resultDomain.success("知识库更新成功", updated);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -473,7 +473,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (!existing.getCreator().equals(currentUser.getID())) {
|
||||
if (!existing.getCreator().equals(currentUser.getId())) {
|
||||
resultDomain.fail("只有创建者可以删除知识库");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -491,8 +491,8 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
// 5. 逻辑删除本地记录
|
||||
TbAiKnowledge deleteEntity = new TbAiKnowledge();
|
||||
deleteEntity.setID(knowledgeId);
|
||||
deleteEntity.setUpdater(currentUser.getID());
|
||||
deleteEntity.setId(knowledgeId);
|
||||
deleteEntity.setUpdater(currentUser.getId());
|
||||
|
||||
int rows = knowledgeMapper.deleteKnowledge(deleteEntity);
|
||||
if (rows > 0) {
|
||||
@@ -623,14 +623,14 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
// 3. 更新本地信息
|
||||
TbAiKnowledge update = new TbAiKnowledge();
|
||||
update.setID(knowledgeId);
|
||||
update.setId(knowledgeId);
|
||||
update.setDocumentCount(difyDetail.getDocumentCount());
|
||||
update.setTotalChunks(difyDetail.getWordCount()); // Dify的word_count对应我们的chunks
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
knowledgeMapper.updateKnowledge(update);
|
||||
@@ -679,7 +679,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (!knowledge.getCreator().equals(currentUser.getID())) {
|
||||
if (!knowledge.getCreator().equals(currentUser.getId())) {
|
||||
resultDomain.fail("只有创建者可以修改权限");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
file,
|
||||
"ai-agent", // 模块名
|
||||
agentId, // 业务ID(智能体ID)
|
||||
currentUser.getID() // 上传者
|
||||
currentUser.getId() // 上传者
|
||||
);
|
||||
|
||||
if (!uploadResult.isSuccess() || uploadResult.getData() == null) {
|
||||
@@ -123,7 +123,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
}
|
||||
|
||||
TbSysFile sysFile = (TbSysFile) uploadResult.getData();
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getID(), sysFile.getOriginalName());
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getId(), sysFile.getOriginalName());
|
||||
|
||||
// 6. 获取已保存文件的File对象,直接用于上传到Dify(不需要再保存临时文件)
|
||||
File fileToUpload = fileService.getFileByRelativePath(sysFile.getFilePath());
|
||||
@@ -133,13 +133,13 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
DifyFileInfo difyResponse = difyApiClient.uploadFileForChat(
|
||||
fileToUpload,
|
||||
originalFilename,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agent.getDifyApiKey());
|
||||
|
||||
// 9. 转换为前端需要的格式,包含系统文件ID和文件路径
|
||||
Map<String, Object> fileInfo = new HashMap<>();
|
||||
fileInfo.put("id", difyResponse.getId()); // Dify文件ID
|
||||
fileInfo.put("sys_file_id", sysFile.getID()); // 系统文件ID(重要:用于关联消息)
|
||||
fileInfo.put("sys_file_id", sysFile.getId()); // 系统文件ID(重要:用于关联消息)
|
||||
fileInfo.put("file_path", sysFile.getFilePath()); // 文件路径(重要:用于保存记录)
|
||||
fileInfo.put("name", difyResponse.getName());
|
||||
fileInfo.put("size", difyResponse.getSize());
|
||||
@@ -150,7 +150,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
fileInfo.put("upload_file_id", difyResponse.getId()); // Dify上传文件ID
|
||||
fileInfo.put("file_url", sysFile.getFileUrl()); // 文件访问URL
|
||||
|
||||
log.info("对话文件上传成功: sysFileId={}, difyFileId={}", sysFile.getID(), difyResponse.getId());
|
||||
log.info("对话文件上传成功: sysFileId={}, difyFileId={}", sysFile.getId(), difyResponse.getId());
|
||||
resultDomain.success("文件上传成功", fileInfo);
|
||||
return resultDomain;
|
||||
|
||||
@@ -228,7 +228,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
file,
|
||||
"ai-knowledge", // 模块名
|
||||
knowledgeId, // 业务ID(知识库ID)
|
||||
currentUser.getID() // 上传者
|
||||
currentUser.getId() // 上传者
|
||||
);
|
||||
|
||||
if (!uploadResult.isSuccess() || uploadResult.getData() == null) {
|
||||
@@ -237,7 +237,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
}
|
||||
|
||||
TbSysFile sysFile = (TbSysFile) uploadResult.getData();
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getID(), sysFile.getOriginalName());
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getId(), sysFile.getOriginalName());
|
||||
|
||||
// 6. 获取已保存文件的File对象,直接用于上传到Dify
|
||||
File fileToUpload = fileService.getFileByRelativePath(sysFile.getFilePath());
|
||||
@@ -259,10 +259,10 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 8. 保存到本地数据库
|
||||
TbAiUploadFile uploadFile = new TbAiUploadFile();
|
||||
uploadFile.setID(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(currentUser.getID());
|
||||
uploadFile.setId(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(currentUser.getId());
|
||||
uploadFile.setKnowledgeId(knowledgeId);
|
||||
uploadFile.setSysFileId(sysFile.getID()); // 关联系统文件ID
|
||||
uploadFile.setSysFileId(sysFile.getId()); // 关联系统文件ID
|
||||
uploadFile.setFileName(originalFilename);
|
||||
uploadFile.setFilePath(sysFile.getFilePath()); // 保存系统文件的相对路径
|
||||
uploadFile.setFileSize(file.getSize());
|
||||
@@ -282,10 +282,10 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
int knowledgeRows = knowledgeMapper.updateKnowledge(knowledge);
|
||||
if (rows > 0) {
|
||||
log.info("知识库文件上传成功: uploadFileId={}, sysFileId={}, fileName={}",
|
||||
uploadFile.getID(), sysFile.getID(), originalFilename);
|
||||
uploadFile.getId(), sysFile.getId(), originalFilename);
|
||||
|
||||
// 9. 异步更新向量化状态
|
||||
asyncUpdateVectorStatus(uploadFile.getID());
|
||||
asyncUpdateVectorStatus(uploadFile.getId());
|
||||
|
||||
resultDomain.success("文件上传成功", uploadFile);
|
||||
if (knowledgeRows <=0) {
|
||||
@@ -392,7 +392,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 4. 逻辑删除本地记录
|
||||
TbAiUploadFile deleteEntity = new TbAiUploadFile();
|
||||
deleteEntity.setID(fileId);
|
||||
deleteEntity.setId(fileId);
|
||||
|
||||
int rows = uploadFileMapper.deleteUploadFile(deleteEntity);
|
||||
knowledge.setDocumentCount(knowledge.getDocumentCount() - 1);
|
||||
@@ -522,7 +522,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 4. 更新本地状态
|
||||
TbAiUploadFile update = new TbAiUploadFile();
|
||||
update.setID(fileId);
|
||||
update.setId(fileId);
|
||||
|
||||
// 映射Dify状态到本地状态:completed=2, processing=1, error=3
|
||||
// DocumentStatusResponse返回的是文档列表,取第一个
|
||||
@@ -583,9 +583,9 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
List<CompletableFuture<Void>> futures = files.stream()
|
||||
.map(file -> CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
syncFileStatus(file.getID());
|
||||
syncFileStatus(file.getId());
|
||||
} catch (Exception e) {
|
||||
log.error("同步文件状态失败: {}", file.getID(), e);
|
||||
log.error("同步文件状态失败: {}", file.getId(), e);
|
||||
}
|
||||
}, executorService))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
) VALUES
|
||||
<foreach collection="files" item="file" separator=",">
|
||||
(
|
||||
#{file.ID}, #{file.userID}, #{file.knowledgeId}, #{file.conversationID}, #{file.messageID},
|
||||
#{file.id}, #{file.userID}, #{file.knowledgeId}, #{file.conversationID}, #{file.messageID},
|
||||
#{file.sysFileId}, #{file.fileName}, #{file.filePath}, #{file.fileSize},
|
||||
#{file.fileType}, #{file.mimeType}, #{file.difyDocumentId}, #{file.difyBatchId}, #{file.difyUploadFileId},
|
||||
#{file.chunkCount}, #{file.status}, #{file.enabled}, #{file.displayStatus}, #{file.createTime}, #{file.updateTime}, #{file.deleted}
|
||||
|
||||
@@ -255,7 +255,7 @@ const agentResult = await aiAgentConfigApi.createAgent({
|
||||
status: 1
|
||||
});
|
||||
|
||||
const agentId = agentResult.data?.ID;
|
||||
const agentId = agentResult.data?.id;
|
||||
|
||||
// 2. 流式对话
|
||||
await chatApi.streamChat(
|
||||
@@ -294,7 +294,7 @@ const knowledgeResult = await knowledgeApi.createKnowledge({
|
||||
embeddingModel: 'text-embedding-ada-002'
|
||||
});
|
||||
|
||||
const knowledgeId = knowledgeResult.data?.ID;
|
||||
const knowledgeId = knowledgeResult.data?.id;
|
||||
|
||||
// 2. 上传文件
|
||||
const files = document.querySelector('input[type="file"]').files;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class AiKnowledgeServiceImpl {
|
||||
String deptId = userDeptRoles.isEmpty() ? null : userDeptRoles.get(0).getDeptID();
|
||||
|
||||
// 2. 保存知识库
|
||||
knowledge.setCreator(currentUser.getID());
|
||||
knowledge.setCreator(currentUser.getId());
|
||||
knowledge.setCreatorDept(deptId);
|
||||
knowledgeMapper.insert(knowledge);
|
||||
|
||||
@@ -58,27 +58,27 @@ public class AiKnowledgeServiceImpl {
|
||||
switch (permissionType) {
|
||||
case PUBLIC:
|
||||
// 公开知识库:所有人可读
|
||||
createPublicPermission(knowledge.getID());
|
||||
createPublicPermission(knowledge.getId());
|
||||
break;
|
||||
|
||||
case DEPARTMENT:
|
||||
// 部门知识库:本部门所有人可读写
|
||||
createDepartmentPermission(knowledge.getID(), deptId);
|
||||
createDepartmentPermission(knowledge.getId(), deptId);
|
||||
break;
|
||||
|
||||
case DEPARTMENT_INHERIT:
|
||||
// 部门继承:本部门及子部门可读
|
||||
createDepartmentInheritPermission(knowledge.getID(), deptId);
|
||||
createDepartmentInheritPermission(knowledge.getId(), deptId);
|
||||
break;
|
||||
|
||||
case ROLE:
|
||||
// 角色知识库:特定角色可读(跨部门)
|
||||
createRolePermission(knowledge.getID(), roleIds);
|
||||
createRolePermission(knowledge.getId(), roleIds);
|
||||
break;
|
||||
|
||||
case PRIVATE:
|
||||
// 私有知识库:仅创建者所在部门的特定角色
|
||||
createPrivatePermission(knowledge.getID(), deptId, roleIds);
|
||||
createPrivatePermission(knowledge.getId(), deptId, roleIds);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ public class AiKnowledgeServiceImpl {
|
||||
// 创建公开权限
|
||||
private void createPublicPermission(String knowledgeId) {
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10); // AI_KNOWLEDGE
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(null); // NULL表示不限部门
|
||||
@@ -102,7 +102,7 @@ public class AiKnowledgeServiceImpl {
|
||||
// 创建部门权限
|
||||
private void createDepartmentPermission(String knowledgeId, String deptId) {
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10);
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(deptId); // 指定部门
|
||||
@@ -120,7 +120,7 @@ public class AiKnowledgeServiceImpl {
|
||||
|
||||
// 为本部门创建权限(已通过dept_path自动继承给子部门)
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10);
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(deptId);
|
||||
@@ -392,7 +392,7 @@ private String getCurrentUserCacheKey() {
|
||||
String roleIds = roles.stream()
|
||||
.map(r -> r.getDeptID() + ":" + r.getRoleID())
|
||||
.collect(Collectors.joining(","));
|
||||
return user.getID() + ":" + roleIds;
|
||||
return user.getId() + ":" + roleIds;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ public class UserPrincipal implements UserDetails {
|
||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||
// 角色权限
|
||||
List<GrantedAuthority> roleAuthorities = roles.stream()
|
||||
.map(role -> new SimpleGrantedAuthority("ROLE_" + role.getID()))
|
||||
.map(role -> new SimpleGrantedAuthority("ROLE_" + role.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 功能权限
|
||||
|
||||
@@ -242,7 +242,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
loginDomain.setIpAddress(ipAddress);
|
||||
// 用户信息
|
||||
try {
|
||||
ResultDomain<TbSysUserInfo> resultDomain = userService.getUserInfoById(user.getID());
|
||||
ResultDomain<TbSysUserInfo> resultDomain = userService.getUserInfoById(user.getId());
|
||||
if (resultDomain.isSuccess()) {
|
||||
loginDomain.setUserInfo(resultDomain.getData());
|
||||
}
|
||||
@@ -251,7 +251,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
}
|
||||
// 获取用户角色和权限(如果服务可用)
|
||||
try {
|
||||
ResultDomain<UserDeptRoleVO> resultDomain = roleService.getDeptRolesByUserId(user.getID());
|
||||
ResultDomain<UserDeptRoleVO> resultDomain = roleService.getDeptRolesByUserId(user.getId());
|
||||
if (resultDomain.isSuccess()) {
|
||||
List<UserDeptRoleVO> roles = resultDomain.getDataList();
|
||||
loginDomain.setRoles(roles);
|
||||
@@ -263,7 +263,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
}
|
||||
|
||||
try {
|
||||
ResultDomain<TbSysPermission> resultDomain = permissionService.getPermissionsByUserId(user.getID());
|
||||
ResultDomain<TbSysPermission> resultDomain = permissionService.getPermissionsByUserId(user.getId());
|
||||
if (resultDomain.isSuccess()) {
|
||||
List<TbSysPermission> permissions = resultDomain.getDataList();
|
||||
loginDomain.setPermissions(permissions);
|
||||
@@ -275,7 +275,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
}
|
||||
|
||||
try {
|
||||
ResultDomain<TbSysMenu> resultDomain = menuService.getMenusByUserId(user.getID());
|
||||
ResultDomain<TbSysMenu> resultDomain = menuService.getMenusByUserId(user.getId());
|
||||
if (resultDomain.isSuccess()) {
|
||||
List<TbSysMenu> menus = resultDomain.getDataList();
|
||||
loginDomain.setMenus(menus);
|
||||
@@ -302,10 +302,10 @@ public class LoginServiceImpl implements LoginService {
|
||||
TbSysLoginLog loginLog = new TbSysLoginLog();
|
||||
|
||||
// 使用IDUtils生成登录日志ID
|
||||
loginLog.setID(IDUtils.generateID());
|
||||
loginLog.setId(IDUtils.generateID());
|
||||
|
||||
if (user != null) {
|
||||
loginLog.setUserID(user.getID());
|
||||
loginLog.setUserID(user.getId());
|
||||
loginLog.setUsername(user.getUsername());
|
||||
}else{
|
||||
if (loginParam.getLoginType().equals("password")) {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class JwtTokenUtil {
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
TbSysUser user = loginDomain.getUser();
|
||||
|
||||
claims.put("userId", user.getID());
|
||||
claims.put("userId", user.getId());
|
||||
claims.put("username", user.getUsername());
|
||||
claims.put("email", user.getEmail());
|
||||
claims.put("loginType", loginDomain.getLoginType());
|
||||
@@ -52,7 +52,7 @@ public class JwtTokenUtil {
|
||||
|
||||
return Jwts.builder()
|
||||
.setClaims(claims)
|
||||
.setSubject(user.getID())
|
||||
.setSubject(user.getId())
|
||||
.setId(IDUtils.generateID()) // 使用IDUtils生成JWT ID
|
||||
.setIssuedAt(new Date())
|
||||
.setExpiration(generateExpirationDate())
|
||||
|
||||
@@ -30,5 +30,17 @@
|
||||
<artifactId>jjwt-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- FastJson2 - JSON序列化工具 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- FastJson2 Spring6 支持 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2-extension-spring6</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,50 @@
|
||||
package org.xyzh.common.config.properties;
|
||||
|
||||
import com.alibaba.fastjson2.support.config.FastJsonConfig;
|
||||
import com.alibaba.fastjson2.support.spring6.http.converter.FastJsonHttpMessageConverter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description FastJson配置类 - 统一处理日期时间格式序列化
|
||||
* @filename FastJsonConfig.java
|
||||
* @author yslg
|
||||
* @copyright xyzh
|
||||
* @since 2025-11-28
|
||||
*/
|
||||
@Configuration
|
||||
public class FastJsonConfiguration implements WebMvcConfigurer {
|
||||
|
||||
/**
|
||||
* 配置FastJson消息转换器
|
||||
*/
|
||||
@Override
|
||||
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
|
||||
|
||||
// FastJson配置
|
||||
FastJsonConfig config = new FastJsonConfig();
|
||||
|
||||
// 设置日期格式
|
||||
config.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
// 设置字符集
|
||||
converter.setDefaultCharset(StandardCharsets.UTF_8);
|
||||
|
||||
// 设置支持的MediaType
|
||||
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));
|
||||
|
||||
// 应用配置
|
||||
converter.setFastJsonConfig(config);
|
||||
|
||||
// 添加到转换器列表(添加到最前面,优先使用)
|
||||
converters.add(0, converter);
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,10 @@
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* @description BaseDTO.java文件描述
|
||||
@@ -20,6 +21,7 @@ public class BaseDTO implements Serializable{
|
||||
* @author yslg
|
||||
* @since 2025-09-10
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
@@ -100,7 +102,7 @@ public class BaseDTO implements Serializable{
|
||||
* @author yslg
|
||||
* @since 2025-09-10
|
||||
*/
|
||||
public String getID() {
|
||||
public String getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
@@ -110,7 +112,7 @@ public class BaseDTO implements Serializable{
|
||||
* @author yslg
|
||||
* @since 2025-09-10
|
||||
*/
|
||||
public void setID(String id) {
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ public class TbAiAgentConfig extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiAgentConfig{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", name='" + name + '\'' +
|
||||
", connectInternet=" + connectInternet +
|
||||
", difyAppId='" + difyAppId + '\'' +
|
||||
|
||||
@@ -160,7 +160,7 @@ public class TbAiConversation extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiConversation{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", status=" + status +
|
||||
|
||||
@@ -408,7 +408,7 @@ public class TbAiKnowledge extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiKnowledge{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", title='" + title + '\'' +
|
||||
", sourceType=" + sourceType +
|
||||
", category='" + category + '\'' +
|
||||
|
||||
@@ -169,7 +169,7 @@ public class TbAiMessage extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiMessage{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", conversationID='" + conversationID + '\'' +
|
||||
", userID='" + userID + '\'' +
|
||||
", role='" + role + '\'' +
|
||||
|
||||
@@ -262,7 +262,7 @@ public class TbAiUploadFile extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiUploadFile{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", conversationID='" + conversationID + '\'' +
|
||||
", fileName='" + fileName + '\'' +
|
||||
|
||||
@@ -121,7 +121,7 @@ public class TbAiUsageStatistics extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAiUsageStatistics{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", statDate=" + statDate +
|
||||
", conversationCount=" + conversationCount +
|
||||
|
||||
@@ -106,7 +106,7 @@ public class TbCrontabEmailDefault extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCrontabEmailDefault{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", defaultId='" + defaultId + '\'' +
|
||||
", metaId='" + metaId + '\'' +
|
||||
", userId='" + userId + '\'' +
|
||||
|
||||
@@ -107,7 +107,7 @@ public class TbCrontabEmailRecipient extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCrontabEmailRecipient{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", recipientId='" + recipientId + '\'' +
|
||||
", taskId='" + taskId + '\'' +
|
||||
", userId='" + userId + '\'' +
|
||||
|
||||
@@ -174,7 +174,7 @@ public class TbCrontabLog extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCrontabLog{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", taskId='" + taskId + '\'' +
|
||||
", taskName='" + taskName + '\'' +
|
||||
", taskGroup='" + taskGroup + '\'' +
|
||||
|
||||
@@ -237,7 +237,7 @@ public class TbCrontabTask extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCrontabTask{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", taskId='" + taskId + '\'' +
|
||||
", taskName='" + taskName + '\'' +
|
||||
", taskGroup='" + taskGroup + '\'' +
|
||||
|
||||
@@ -172,7 +172,7 @@ public class TbCrontabTaskMeta extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCrontabTaskMeta{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", metaId='" + metaId + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", category='" + category + '\'' +
|
||||
|
||||
@@ -121,7 +121,7 @@ public class TbSysDept extends BaseDTO{
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysDept{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", deptID='" + deptID + '\'' +
|
||||
", parentID='" + parentID + '\'' +
|
||||
", deptPath='" + deptPath + '\'' +
|
||||
|
||||
@@ -95,7 +95,7 @@ public class TbSysDeptRole extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysDeptRole{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", deptID='" + deptID + '\'' +
|
||||
", roleID='" + roleID + '\'' +
|
||||
", creator='" + creator + '\'' +
|
||||
|
||||
@@ -193,7 +193,7 @@ public class TbSysMenu extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysMenu{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", menuID='" + menuID + '\'' +
|
||||
", parentID='" + parentID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
|
||||
@@ -75,7 +75,7 @@ public class TbSysMenuPermission extends BaseDTO{
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysMenuPermission{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", menuID='" + menuID + '\'' +
|
||||
", permissionID='" + permissionID + '\'' +
|
||||
", creator='" + creator + '\'' +
|
||||
|
||||
@@ -133,7 +133,7 @@ public class TbResourcePermission extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbResourcePermission{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", resourceType=" + resourceType +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", deptID='" + deptID + '\'' +
|
||||
|
||||
@@ -120,7 +120,7 @@ public class TbSysPermission extends BaseDTO{
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysPermission{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", permissionID='" + permissionID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", description='" + description + '\'' +
|
||||
|
||||
@@ -143,7 +143,7 @@ public class TbBanner extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbBanner{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", bannerID='" + bannerID + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", imageUrl='" + imageUrl + '\'' +
|
||||
|
||||
@@ -266,7 +266,7 @@ public class TbResource extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbResource{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", tagID='" + tagID + '\'' +
|
||||
|
||||
@@ -94,7 +94,7 @@ public class TbResourceRecommend extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbResourceRecommend{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", recommendType=" + recommendType +
|
||||
", orderNum=" + orderNum +
|
||||
|
||||
@@ -55,7 +55,7 @@ public class TbResourceTag extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbResourceTag{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", resourceID='" + resourceID + '\'' +
|
||||
", tagID='" + tagID + '\'' +
|
||||
", createTime=" + getCreateTime() +
|
||||
|
||||
@@ -107,7 +107,7 @@ public class TbTag extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbTag{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", tagID='" + tagID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", color='" + color + '\'' +
|
||||
|
||||
@@ -90,7 +90,7 @@ public class TbSysRole extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysRole{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
",roleID='" + roleID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", description='" + description + '\'' +
|
||||
|
||||
@@ -74,7 +74,7 @@ public class TbSysRolePermission extends BaseDTO{
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysRolePermission{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", roleID='" + roleID + '\'' +
|
||||
", permissionID='" + permissionID + '\'' +
|
||||
", creator='" + creator + '\'' +
|
||||
|
||||
@@ -217,7 +217,7 @@ public class TbCourse extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCourse{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", courseID='" + courseID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", coverImage='" + coverImage + '\'' +
|
||||
|
||||
@@ -201,7 +201,7 @@ public class TbCourseChapter extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCourseChapter{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", chapterID='" + chapterID + '\'' +
|
||||
", courseID='" + courseID + '\'' +
|
||||
", parentID='" + parentID + '\'' +
|
||||
|
||||
@@ -212,7 +212,7 @@ public class TbCourseNode extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCourseNode{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", nodeID='" + nodeID + '\'' +
|
||||
", chapterID='" + chapterID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
|
||||
@@ -99,7 +99,7 @@ public class TbCourseTag extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbCourseTag{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", courseID='" + courseID + '\'' +
|
||||
", tagID='" + tagID + '\'' +
|
||||
", createTime=" + getCreateTime() +
|
||||
|
||||
@@ -226,7 +226,7 @@ public class TbLearningHistory extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningHistory{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", historyID='" + historyID + '\'' +
|
||||
", resourceType=" + resourceType +
|
||||
|
||||
@@ -228,7 +228,7 @@ public class TbLearningRecord extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningRecord{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", resourceType=" + resourceType +
|
||||
|
||||
@@ -166,7 +166,7 @@ public class TbLearningStatistics extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningStatistics{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", statDate=" + statDate +
|
||||
", totalDuration=" + totalDuration +
|
||||
|
||||
@@ -173,7 +173,7 @@ public class TbLearningStatisticsDetail extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningStatisticsDetail{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", statDate=" + statDate +
|
||||
", resourceType=" + resourceType +
|
||||
|
||||
@@ -154,7 +154,7 @@ public class TbLearningTask extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningTask{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", startTime=" + startTime +
|
||||
|
||||
@@ -54,7 +54,7 @@ public class TbLearningTaskTag extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbLearningTaskTag{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", tagID='" + tagID + '\'' +
|
||||
", creator='" + creator + '\'' +
|
||||
|
||||
@@ -111,7 +111,7 @@ public class TbTaskItem extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbTaskItem{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", itemType=" + itemType +
|
||||
", itemID='" + itemID + '\'' +
|
||||
|
||||
@@ -154,7 +154,7 @@ public class TbTaskUser extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbTaskUser{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", taskID='" + taskID + '\'' +
|
||||
", userID='" + userID + '\'' +
|
||||
", deptID='" + deptID + '\'' +
|
||||
|
||||
@@ -250,7 +250,7 @@ public class TbSysConfig extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysConfig{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", configKey='" + configKey + '\'' +
|
||||
", configName='" + configName + '\'' +
|
||||
", configValue='" + configValue + '\'' +
|
||||
|
||||
@@ -159,7 +159,7 @@ public class TbSysDictData extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysDictData{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", dictType='" + dictType + '\'' +
|
||||
", dictLabel='" + dictLabel + '\'' +
|
||||
", dictValue='" + dictValue + '\'' +
|
||||
|
||||
@@ -94,7 +94,7 @@ public class TbSysDictType extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysDictType{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", dictType='" + dictType + '\'' +
|
||||
", dictName='" + dictName + '\'' +
|
||||
", status=" + status +
|
||||
|
||||
@@ -181,7 +181,7 @@ public class TbSysLoginLog extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysLoginLog{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", userID='" + userID + '\'' +
|
||||
", username='" + username + '\'' +
|
||||
", ipAddress='" + ipAddress + '\'' +
|
||||
|
||||
@@ -133,7 +133,7 @@ public class TbSysModule extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysModule{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", moduleID='" + moduleID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", code='" + code + '\'' +
|
||||
|
||||
@@ -121,7 +121,7 @@ public class TbSysNotification extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysNotification{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", type=" + type +
|
||||
", title='" + title + '\'' +
|
||||
|
||||
@@ -224,7 +224,7 @@ public class TbSysOperationLog extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysOperationLog{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", username='" + username + '\'' +
|
||||
", module='" + module + '\'' +
|
||||
|
||||
@@ -108,7 +108,7 @@ public class TbSysVisitStatistics extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysVisitStatistics{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", statDate=" + statDate +
|
||||
", totalVisits=" + totalVisits +
|
||||
", uniqueVisitors=" + uniqueVisitors +
|
||||
|
||||
@@ -107,7 +107,7 @@ public class TbSysUser extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysUser{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", username='" + username + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", email='" + email + '\'' +
|
||||
|
||||
@@ -91,7 +91,7 @@ public class TbSysUserDeptRole extends BaseDTO{
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysUserDeptRole{" +
|
||||
"id='" + getID() + '\'' +
|
||||
"id='" + getId() + '\'' +
|
||||
", userID='" + userID + '\'' +
|
||||
", deptID='" + deptID + '\'' +
|
||||
", roleID='" + roleID + '\'' +
|
||||
|
||||
@@ -167,7 +167,7 @@ public class TbSysUserInfo extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbSysUserInfo{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", avatar='" + avatar + '\'' +
|
||||
", gender=" + gender +
|
||||
|
||||
@@ -172,7 +172,7 @@ public class TbAchievement extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbAchievement{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", achievementID='" + achievementID + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
", type=" + type +
|
||||
|
||||
@@ -94,7 +94,7 @@ public class TbPointsRecord extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbPointsRecord{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", points=" + points +
|
||||
", type=" + type +
|
||||
|
||||
@@ -56,7 +56,7 @@ public class TbUserAchievement extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserAchievement{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", achievementID='" + achievementID + '\'' +
|
||||
", obtainTime=" + obtainTime +
|
||||
|
||||
@@ -120,7 +120,7 @@ public class TbUserAchievementProgress extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserAchievementProgress{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", achievementID='" + achievementID + '\'' +
|
||||
", currentValue=" + currentValue +
|
||||
|
||||
@@ -82,7 +82,7 @@ public class TbUserBrowseRecord extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserBrowseRecord{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", browseType=" + browseType +
|
||||
", browseID='" + browseID + '\'' +
|
||||
|
||||
@@ -68,7 +68,7 @@ public class TbUserCollection extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserCollection{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", collectionType=" + collectionType +
|
||||
", collectionID='" + collectionID + '\'' +
|
||||
|
||||
@@ -68,7 +68,7 @@ public class TbUserPoints extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TbUserPoints{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", totalPoints=" + totalPoints +
|
||||
", currentPoints=" + currentPoints +
|
||||
|
||||
@@ -19,7 +19,7 @@ public class AchievementVO extends TbAchievement {
|
||||
// ==================== TbUserAchievement表的字段 ====================
|
||||
|
||||
/**
|
||||
* @description 用户成就记录ID(tb_user_achievement.ID)
|
||||
* @description 用户成就记录ID(tb_user_achievement.id)
|
||||
*/
|
||||
private String userAchievementID;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class AchievementVO extends TbAchievement {
|
||||
// ==================== TbUserAchievementProgress表的字段 ====================
|
||||
|
||||
/**
|
||||
* @description 进度记录ID(tb_user_achievement_progress.ID)
|
||||
* @description 进度记录ID(tb_user_achievement_progress.id)
|
||||
*/
|
||||
private String progressID;
|
||||
|
||||
|
||||
@@ -387,7 +387,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
*/
|
||||
public TbCourse toCourse() {
|
||||
TbCourse course = new TbCourse();
|
||||
course.setID(this.getID());
|
||||
course.setId(this.getId());
|
||||
course.setCourseID(this.courseID);
|
||||
course.setName(this.name);
|
||||
course.setCoverImage(this.coverImage);
|
||||
@@ -412,7 +412,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
}
|
||||
|
||||
CourseItemVO vo = new CourseItemVO();
|
||||
vo.setID(course.getID());
|
||||
vo.setId(course.getId());
|
||||
vo.setCourseID(course.getCourseID());
|
||||
vo.setName(course.getName());
|
||||
vo.setCoverImage(course.getCoverImage());
|
||||
@@ -434,7 +434,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
TbLearningRecord record = new TbLearningRecord();
|
||||
if (this.recordID != null) {
|
||||
// 如果有recordID,说明是从已有记录转换的,需要设置ID
|
||||
record.setID(this.recordID);
|
||||
record.setId(this.recordID);
|
||||
}
|
||||
record.setCourseID(this.courseID);
|
||||
record.setDuration(this.learningDuration);
|
||||
@@ -454,7 +454,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
return;
|
||||
}
|
||||
|
||||
this.recordID = record.getID();
|
||||
this.recordID = record.getId();
|
||||
this.progress = record.getProgress();
|
||||
this.isComplete = record.getIsComplete();
|
||||
this.learningDuration = record.getDuration();
|
||||
@@ -487,7 +487,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
}
|
||||
|
||||
CourseItemVO vo = new CourseItemVO();
|
||||
vo.setID(chapter.getID());
|
||||
vo.setId(chapter.getId());
|
||||
vo.setChapterID(chapter.getChapterID());
|
||||
vo.setCourseID(chapter.getCourseID());
|
||||
vo.setParentID(chapter.getParentID());
|
||||
@@ -513,7 +513,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
}
|
||||
|
||||
CourseItemVO vo = new CourseItemVO();
|
||||
vo.setID(node.getID());
|
||||
vo.setId(node.getId());
|
||||
vo.setNodeID(node.getNodeID());
|
||||
vo.setChapterID(node.getChapterID());
|
||||
vo.setName(node.getName());
|
||||
@@ -535,7 +535,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
*/
|
||||
public TbCourseChapter toChapter() {
|
||||
TbCourseChapter chapter = new TbCourseChapter();
|
||||
chapter.setID(this.getID());
|
||||
chapter.setId(this.getId());
|
||||
chapter.setChapterID(this.chapterID);
|
||||
chapter.setCourseID(this.courseID);
|
||||
chapter.setParentID(this.parentID);
|
||||
@@ -555,7 +555,7 @@ public class CourseItemVO extends BaseDTO {
|
||||
*/
|
||||
public TbCourseNode toNode() {
|
||||
TbCourseNode node = new TbCourseNode();
|
||||
node.setID(this.getID());
|
||||
node.setId(this.getId());
|
||||
node.setNodeID(this.nodeID);
|
||||
node.setChapterID(this.chapterID);
|
||||
node.setName(this.name);
|
||||
|
||||
@@ -98,7 +98,7 @@ public class ResourcePermissionVO extends TbResourcePermission {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ResourcePermissionVO{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", resourceType=" + getResourceType() +
|
||||
", resourceID='" + getResourceID() + '\'' +
|
||||
", resourceTitle='" + resourceTitle + '\'' +
|
||||
|
||||
@@ -81,7 +81,7 @@ public class TagVO extends BaseDTO {
|
||||
}
|
||||
public TbTag getTag() {
|
||||
TbTag tag = new TbTag();
|
||||
tag.setID(tagID);
|
||||
tag.setId(tagID);
|
||||
tag.setName(tagName);
|
||||
tag.setColor(tagColor);
|
||||
return tag;
|
||||
|
||||
@@ -67,7 +67,7 @@ public class TaskItemVO extends TbLearningTask {
|
||||
this.setTaskID(taskItem.getTaskID());
|
||||
this.orderNum = taskItem.getOrderNum();
|
||||
this.required = taskItem.getRequired();
|
||||
this.setID(taskItem.getID());
|
||||
this.setId(taskItem.getId());
|
||||
this.setCreateTime(taskItem.getCreateTime());
|
||||
this.setCreator(taskItem.getCreator());
|
||||
|
||||
@@ -140,7 +140,7 @@ public class TaskItemVO extends TbLearningTask {
|
||||
|
||||
public TbTaskItem toTaskItem() {
|
||||
TbTaskItem taskItem = new TbTaskItem();
|
||||
taskItem.setID(getID());
|
||||
taskItem.setId(getId());
|
||||
taskItem.setTaskID(getTaskID());
|
||||
taskItem.setItemType(itemType);
|
||||
taskItem.setRequired(required);
|
||||
|
||||
@@ -344,7 +344,7 @@ public class UserCollectionVO extends BaseDTO {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserCollectionVO{" +
|
||||
"id=" + getID() +
|
||||
"id=" + getId() +
|
||||
", userID='" + userID + '\'' +
|
||||
", collectionType=" + collectionType +
|
||||
", collectionID='" + collectionID + '\'' +
|
||||
|
||||
@@ -115,8 +115,8 @@ public class CrontabController {
|
||||
String metaId = request.getMetaId();
|
||||
|
||||
// 确保id字段正确传递(用于数据库更新)
|
||||
if (crontabItem.getTaskId() != null && crontabItem.getID() == null) {
|
||||
crontabItem.setID(crontabItem.getTaskId());
|
||||
if (crontabItem.getTaskId() != null && crontabItem.getId() == null) {
|
||||
crontabItem.setId(crontabItem.getTaskId());
|
||||
}
|
||||
|
||||
// 验证元数据ID
|
||||
@@ -141,7 +141,7 @@ public class CrontabController {
|
||||
crontabItem.setMetaId(metaId); // 保存metaId,执行时从数据库读取scriptPath
|
||||
|
||||
logger.info("更新任务 - id: {}, metaId: {}, name: {}, category: {}, defaultRecipient: {}",
|
||||
crontabItem.getID(), metaId, taskMeta.getName(), taskMeta.getCategory(),
|
||||
crontabItem.getId(), metaId, taskMeta.getName(), taskMeta.getCategory(),
|
||||
crontabItem.getDefaultRecipient());
|
||||
|
||||
// 调用带接收人更新的方法
|
||||
|
||||
@@ -46,7 +46,7 @@ public class SchedulerManager {
|
||||
*/
|
||||
public void scheduleTask(TbCrontabTask task) {
|
||||
try {
|
||||
String taskId = task.getID();
|
||||
String taskId = task.getId();
|
||||
|
||||
// 如果任务已经在调度中,先取消
|
||||
if (scheduledTasks.containsKey(taskId)) {
|
||||
@@ -79,7 +79,7 @@ public class SchedulerManager {
|
||||
*/
|
||||
public void unscheduleTask(TbCrontabTask task) {
|
||||
try {
|
||||
String taskId = task.getID();
|
||||
String taskId = task.getId();
|
||||
ScheduledFuture<?> future = scheduledTasks.get(taskId);
|
||||
|
||||
if (future != null) {
|
||||
|
||||
@@ -46,7 +46,7 @@ public class TaskExecutor {
|
||||
public void executeTask(TbCrontabTask task) {
|
||||
Date startTime = new Date();
|
||||
TbCrontabLog log = new TbCrontabLog();
|
||||
log.setID(IDUtils.generateID());
|
||||
log.setId(IDUtils.generateID());
|
||||
log.setTaskId(task.getTaskId());
|
||||
log.setTaskName(task.getTaskName());
|
||||
log.setTaskGroup(task.getTaskGroup());
|
||||
@@ -159,7 +159,7 @@ public class TaskExecutor {
|
||||
|
||||
// 注入taskId、logId和metaId
|
||||
params.put("taskId", task.getTaskId());
|
||||
params.put("logId", log.getID());
|
||||
params.put("logId", log.getId());
|
||||
if (task.getMetaId() != null) {
|
||||
params.put("metaId", task.getMetaId());
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ public class CrontabServiceImpl implements CrontabService {
|
||||
}
|
||||
|
||||
// 生成ID
|
||||
task.setID(IDUtils.generateID());
|
||||
task.setId(IDUtils.generateID());
|
||||
task.setTaskId(IDUtils.generateID());
|
||||
task.setCreateTime(new Date());
|
||||
task.setDeleted(false);
|
||||
@@ -134,7 +134,7 @@ public class CrontabServiceImpl implements CrontabService {
|
||||
try {
|
||||
TbCrontabTask task = request.getTask();
|
||||
TbSysUser user = LoginUtil.getCurrentUser();
|
||||
task.setCreator(user.getID());
|
||||
task.setCreator(user.getId());
|
||||
// 1. 创建任务
|
||||
ResultDomain<TbCrontabTask> createResult = createTask(task);
|
||||
if (!createResult.isSuccess()) {
|
||||
|
||||
@@ -68,7 +68,7 @@ public class DataCollectionItemServiceImpl implements DataCollectionItemService
|
||||
}
|
||||
|
||||
// 生成ID
|
||||
item.setID(IDUtils.generateID());
|
||||
item.setId(IDUtils.generateID());
|
||||
item.setCreateTime(new Date());
|
||||
item.setDeleted(false);
|
||||
|
||||
@@ -118,7 +118,7 @@ public class DataCollectionItemServiceImpl implements DataCollectionItemService
|
||||
}
|
||||
String logId = itemList.get(0).getLogId();
|
||||
TbCrontabLog log = new TbCrontabLog();
|
||||
log.setID(logId);
|
||||
log.setId(logId);
|
||||
log.setExecuteStatus(1);
|
||||
log.setExecuteMessage("爬取成功,共" + itemList.size() + "条,新增" + successCount + "条");
|
||||
int i = logMapper.updateLog(log);
|
||||
@@ -137,7 +137,7 @@ public class DataCollectionItemServiceImpl implements DataCollectionItemService
|
||||
public ResultDomain<TbDataCollectionItem> updateItem(TbDataCollectionItem item) {
|
||||
ResultDomain<TbDataCollectionItem> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
if (item.getID() == null) {
|
||||
if (item.getId() == null) {
|
||||
resultDomain.fail("采集项ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -146,7 +146,7 @@ public class DataCollectionItemServiceImpl implements DataCollectionItemService
|
||||
int result = itemMapper.updateById(item);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("更新采集项成功: {}", item.getID());
|
||||
logger.info("更新采集项成功: {}", item.getId());
|
||||
resultDomain.success("更新采集项成功", item);
|
||||
} else {
|
||||
resultDomain.fail("更新采集项失败");
|
||||
|
||||
@@ -36,7 +36,7 @@ public class EmailDefaultServiceImpl implements EmailDefaultService {
|
||||
try {
|
||||
|
||||
// 生成ID
|
||||
emailDefault.setID(IDUtils.generateID());
|
||||
emailDefault.setId(IDUtils.generateID());
|
||||
if (emailDefault.getDefaultId() == null || emailDefault.getDefaultId().isEmpty()) {
|
||||
emailDefault.setDefaultId(IDUtils.generateID());
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public class EmailRecipientServiceImpl implements EmailRecipientService {
|
||||
ResultDomain<TbCrontabEmailRecipient> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
// 生成ID
|
||||
recipient.setID(IDUtils.generateID());
|
||||
recipient.setId(IDUtils.generateID());
|
||||
if (recipient.getRecipientId() == null || recipient.getRecipientId().isEmpty()) {
|
||||
recipient.setRecipientId(IDUtils.generateID());
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class EmailRecipientServiceImpl implements EmailRecipientService {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
for (TbCrontabEmailRecipient recipient : recipients) {
|
||||
recipient.setID(IDUtils.generateID());
|
||||
recipient.setId(IDUtils.generateID());
|
||||
if (recipient.getRecipientId() == null || recipient.getRecipientId().isEmpty()) {
|
||||
recipient.setRecipientId(IDUtils.generateID());
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class TaskMetaServiceImpl implements TaskMetaService {
|
||||
}
|
||||
|
||||
// 生成ID
|
||||
taskMeta.setID(IDUtils.generateID());
|
||||
taskMeta.setId(IDUtils.generateID());
|
||||
taskMeta.setCreateTime(new Date());
|
||||
taskMeta.setDeleted(false);
|
||||
|
||||
|
||||
@@ -224,7 +224,7 @@ public class NewsCrawlerTask extends PythonCommandTask {
|
||||
TbDataCollectionItem item = new TbDataCollectionItem();
|
||||
|
||||
// 基本信息
|
||||
item.setID(IDUtils.generateID());
|
||||
item.setId(IDUtils.generateID());
|
||||
item.setTaskId(taskId);
|
||||
item.setLogId(logId);
|
||||
item.setTitle(news.getTitle());
|
||||
@@ -314,7 +314,7 @@ public class NewsCrawlerTask extends PythonCommandTask {
|
||||
}
|
||||
if(passList.isEmpty() && notPassList.isEmpty()){
|
||||
TbCrontabLog log = new TbCrontabLog();
|
||||
log.setID(logId);
|
||||
log.setId(logId);
|
||||
log.setExecuteStatus(1);
|
||||
log.setExecuteMessage("未爬取到数据");
|
||||
int i = logMapper.updateLog(log);
|
||||
@@ -535,7 +535,7 @@ public class NewsCrawlerTask extends PythonCommandTask {
|
||||
if(item.getContent().isEmpty()) continue;
|
||||
try {
|
||||
TbResource resource = new TbResource();
|
||||
resource.setID(IDUtils.generateID());
|
||||
resource.setId(IDUtils.generateID());
|
||||
resource.setResourceID(IDUtils.generateID());
|
||||
resource.setTitle(item.getTitle());
|
||||
// 创建者使用任务创建者
|
||||
@@ -614,7 +614,7 @@ public class NewsCrawlerTask extends PythonCommandTask {
|
||||
}
|
||||
|
||||
TbDataCollectionItem update = new TbDataCollectionItem();
|
||||
update.setID(itemVO.getId());
|
||||
update.setId(itemVO.getId());
|
||||
update.setStatus(1); // 已转换为资源
|
||||
update.setResourceId(resourceId);
|
||||
update.setProcessTime(now);
|
||||
|
||||
@@ -213,7 +213,7 @@ public class TopRecommendTask extends BaseTask {
|
||||
*/
|
||||
private TbResourceRecommend createRecommend(String resourceId, int orderNum) {
|
||||
TbResourceRecommend recommend = new TbResourceRecommend();
|
||||
recommend.setID(IDUtils.generateID());
|
||||
recommend.setId(IDUtils.generateID());
|
||||
recommend.setResourceID(resourceId);
|
||||
recommend.setRecommendType(1); // 1-热门资源推荐
|
||||
recommend.setOrderNum(orderNum);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabLog">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="task_id" property="taskId" />
|
||||
<result column="task_name" property="taskName" />
|
||||
<result column="task_group" property="taskGroup" />
|
||||
@@ -34,8 +34,8 @@
|
||||
<sql id="Base_Where_Clause">
|
||||
<where>
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.taskId != null and filter.taskId != ''">
|
||||
AND task_id = #{filter.taskId}
|
||||
@@ -63,7 +63,7 @@
|
||||
<insert id="insertLog">
|
||||
INSERT INTO tb_crontab_log
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="log.ID != null">id,</if>
|
||||
<if test="log.id != null">id,</if>
|
||||
<if test="log.taskId != null">task_id,</if>
|
||||
<if test="log.taskName != null">task_name,</if>
|
||||
<if test="log.taskGroup != null">task_group,</if>
|
||||
@@ -81,7 +81,7 @@
|
||||
</trim>
|
||||
VALUES
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="log.ID != null">#{log.ID},</if>
|
||||
<if test="log.id != null">#{log.id},</if>
|
||||
<if test="log.taskId != null">#{log.taskId},</if>
|
||||
<if test="log.taskName != null">#{log.taskName},</if>
|
||||
<if test="log.taskGroup != null">#{log.taskGroup},</if>
|
||||
@@ -110,7 +110,7 @@
|
||||
<if test="log.endTime != null">end_time = #{log.endTime},</if>
|
||||
<if test="log.executeDuration != null">execute_duration = #{log.executeDuration},</if>
|
||||
update_time = NOW()
|
||||
WHERE id = #{log.ID} AND deleted = 0
|
||||
WHERE id = #{log.id} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- 根据ID查询日志 -->
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabTask">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="task_id" property="taskId" />
|
||||
<result column="task_name" property="taskName" />
|
||||
<result column="task_group" property="taskGroup" />
|
||||
@@ -66,8 +66,8 @@
|
||||
<sql id="Filter_Where_Clause">
|
||||
<where>
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.taskId != null and filter.taskId != ''">
|
||||
AND task_id = #{filter.taskId}
|
||||
@@ -129,7 +129,7 @@
|
||||
<insert id="insertTask">
|
||||
INSERT INTO tb_crontab_task
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="task.ID != null">id,</if>
|
||||
<if test="task.id != null">id,</if>
|
||||
<if test="task.taskId != null">task_id,</if>
|
||||
<if test="task.taskName != null">task_name,</if>
|
||||
<if test="task.taskGroup != null">task_group,</if>
|
||||
@@ -149,7 +149,7 @@
|
||||
</trim>
|
||||
VALUES
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="task.ID != null">#{task.ID},</if>
|
||||
<if test="task.id != null">#{task.id},</if>
|
||||
<if test="task.taskId != null">#{task.taskId},</if>
|
||||
<if test="task.taskName != null">#{task.taskName},</if>
|
||||
<if test="task.taskGroup != null">#{task.taskGroup},</if>
|
||||
@@ -188,7 +188,7 @@
|
||||
<if test="task.updater != null">updater = #{task.updater},</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
WHERE id = #{task.ID} AND deleted = 0
|
||||
WHERE id = #{task.id} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- 删除任务(逻辑删除) -->
|
||||
@@ -214,8 +214,8 @@
|
||||
<include refid="Permission_Filter" />
|
||||
WHERE ct.deleted = 0
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND ct.id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND ct.id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.taskId != null and filter.taskId != ''">
|
||||
AND ct.task_id = #{filter.taskId}
|
||||
@@ -264,8 +264,8 @@
|
||||
ON ct.meta_id = m.meta_id AND m.deleted = 0
|
||||
WHERE ct.deleted = 0
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND ct.id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND ct.id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.taskId != null and filter.taskId != ''">
|
||||
AND ct.task_id = #{filter.taskId}
|
||||
@@ -327,8 +327,8 @@
|
||||
<include refid="Permission_Filter" />
|
||||
WHERE ct.deleted = 0
|
||||
<if test="filter != null">
|
||||
<if test="filter.ID != null and filter.ID != ''">
|
||||
AND ct.id = #{filter.ID}
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND ct.id = #{filter.id}
|
||||
</if>
|
||||
<if test="filter.taskId != null and filter.taskId != ''">
|
||||
AND ct.task_id = #{filter.taskId}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabEmailDefault">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="default_id" property="defaultId" />
|
||||
<result column="meta_id" property="metaId" />
|
||||
<result column="user_id" property="userId" />
|
||||
@@ -29,7 +29,7 @@
|
||||
INSERT INTO tb_crontab_email_default (
|
||||
id, default_id, meta_id, user_id, creator, create_time
|
||||
) VALUES (
|
||||
#{emailDefault.ID}, #{emailDefault.defaultId}, #{emailDefault.metaId},
|
||||
#{emailDefault.id}, #{emailDefault.defaultId}, #{emailDefault.metaId},
|
||||
#{emailDefault.userId}, #{emailDefault.creator}, NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabEmailRecipient">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="recipient_id" property="recipientId" />
|
||||
<result column="task_id" property="taskId" />
|
||||
<result column="user_id" property="userId" />
|
||||
@@ -48,7 +48,7 @@
|
||||
INSERT INTO tb_crontab_email_recipient (
|
||||
id, recipient_id, task_id, user_id, email, name, creator, create_time
|
||||
) VALUES (
|
||||
#{recipient.ID}, #{recipient.recipientId}, #{recipient.taskId},
|
||||
#{recipient.id}, #{recipient.recipientId}, #{recipient.taskId},
|
||||
#{recipient.userId}, #{recipient.email}, #{recipient.name},
|
||||
#{recipient.creator}, NOW()
|
||||
)
|
||||
@@ -60,7 +60,7 @@
|
||||
id, recipient_id, task_id, user_id, email, name, creator, create_time
|
||||
) VALUES
|
||||
<foreach collection="recipients" item="item" separator=",">
|
||||
(#{item.ID}, #{item.recipientId}, #{item.taskId},
|
||||
(#{item.id}, #{item.recipientId}, #{item.taskId},
|
||||
#{item.userId}, #{item.email}, #{item.name}, #{item.creator}, NOW())
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabTaskMeta">
|
||||
<id column="id" property="ID" />
|
||||
<id column="id" property="id" />
|
||||
<result column="meta_id" property="metaId" />
|
||||
<result column="name" property="name" />
|
||||
<result column="description" property="description" />
|
||||
@@ -52,7 +52,7 @@
|
||||
id, meta_id, name, description, category, bean_name, method_name,
|
||||
script_path, param_schema, auto_publish, sort_order, creator, create_time
|
||||
) VALUES (
|
||||
#{taskMeta.ID}, #{taskMeta.metaId}, #{taskMeta.name}, #{taskMeta.description},
|
||||
#{taskMeta.id}, #{taskMeta.metaId}, #{taskMeta.name}, #{taskMeta.description},
|
||||
#{taskMeta.category}, #{taskMeta.beanName}, #{taskMeta.methodName},
|
||||
#{taskMeta.scriptPath}, #{taskMeta.paramSchema}, #{taskMeta.autoPublish}, #{taskMeta.sortOrder},
|
||||
#{taskMeta.creator}, NOW()
|
||||
|
||||
@@ -71,7 +71,7 @@ public class FileServiceImpl implements FileService {
|
||||
// 保存文件记录
|
||||
TbSysFile sysFile = new TbSysFile();
|
||||
String fileId = IDUtils.generateID();
|
||||
sysFile.setID(fileId);
|
||||
sysFile.setId(fileId);
|
||||
sysFile.setFileID(fileId);
|
||||
sysFile.setFileName(fileName);
|
||||
sysFile.setOriginalName(originalFileName);
|
||||
@@ -110,7 +110,7 @@ public class FileServiceImpl implements FileService {
|
||||
fileMapper.insertFile(sysFile);
|
||||
|
||||
log.info("文件上传成功: fileId={}, fileName={}, storageType={}",
|
||||
sysFile.getID(), fileName, strategy.getStorageType());
|
||||
sysFile.getId(), fileName, strategy.getStorageType());
|
||||
|
||||
resultDomain.success("文件上传成功", sysFile);
|
||||
return resultDomain;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user