From 96eb49c294b3ba18165f91da490c49f9023ef304 Mon Sep 17 00:00:00 2001 From: xs Date: Mon, 13 Oct 2025 08:59:34 +0800 Subject: [PATCH] =?UTF-8?q?1.5.9=E5=90=8E=E7=AB=AF=20AI=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=A1=AB=E5=85=85=EF=BC=8CAI=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=BB=8E=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=BC=A0=E5=8F=82=20AI=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resource/api/domain/RemoteFile.java | 3 ++ .../common/constant/HwMomAiConstants.java | 13 ++++++ .../ai/asr/controller/AsrController.java | 44 ++++++++++++++++--- .../ai/controller/AiAssistantController.java | 7 +-- .../controller/AiKnowledgeBaseController.java | 12 ++++- .../ai/controller/AiModelController.java | 4 -- .../ai/controller/AiPlatformController.java | 8 +--- .../ai/mapper/AiChatMessageDetailMapper.java | 2 + .../ai/process/dto/AIFillFormRequest.java | 12 +++++ .../impl/TongYiQianWenProcessor.java | 2 +- .../service/impl/AIAssistantServiceImpl.java | 18 ++++---- .../service/impl/AiBaseModelServiceImpl.java | 2 - .../impl/AiChatMessageDetailServiceImpl.java | 4 +- .../impl/AiChatMessageServiceImpl.java | 3 -- .../impl/AiFormSettingServiceImpl.java | 2 - .../impl/AiKnowledgeBaseServiceImpl.java | 3 -- .../impl/AiKnowledgeBaseTypeServiceImpl.java | 2 - .../impl/AiKnowledgeContentServiceImpl.java | 2 - .../ai/service/impl/AiModelServiceImpl.java | 3 -- .../service/impl/AiPlatformServiceImpl.java | 2 - .../service/impl/AiSqlTableServiceImpl.java | 8 ++-- .../service/impl/AiTokenUsageServiceImpl.java | 2 - 22 files changed, 103 insertions(+), 55 deletions(-) diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java index 7140fe63..5ddacb4e 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java @@ -41,4 +41,7 @@ public class RemoteFile implements Serializable { */ private String fileSuffix; + private String fileName; + + } diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/HwMomAiConstants.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/HwMomAiConstants.java index 3d53be48..56a5be0f 100644 --- a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/HwMomAiConstants.java +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/HwMomAiConstants.java @@ -15,4 +15,17 @@ public interface HwMomAiConstants { public static final String AI_FORM_SETTING_FIELD_TYPE_NORMAL = "1";//普通字段 public static final String AI_FORM_SETTING_FIELD_TYPE_RELATE = "2";//关联表 public static final String AI_FORM_SETTING_FIELD_TYPE_DICT = "3";//字典数据 + + + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_QUESTION = "1";//AI问答 + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_KNOWLEDGE_QUESTION = "2";//AI知识库问答 + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_SQL = "3";//AI生成SQL + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_FORM = "4";//AI填报 + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_QUESTION_VECTOR = "5";//提问获取向量 + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_CONTENT_VECTOR = "6";//上传内容获取向量 + public static final String AI_CHAT_MESSAGE_DETAIL_TYPE_TEST = "9";//AI测试 + + + + } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/asr/controller/AsrController.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/asr/controller/AsrController.java index 70a9d902..e4f5797f 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/asr/controller/AsrController.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/asr/controller/AsrController.java @@ -1,12 +1,20 @@ package org.dromara.ai.asr.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import com.google.protobuf.ServiceException; +import jakarta.annotation.Resource; import org.dromara.ai.asr.service.AliAsrService; import org.dromara.common.core.domain.R; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.domain.RemoteFile; +import org.hibernate.validator.internal.util.stereotypes.Lazy; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.Map; @@ -21,6 +29,9 @@ public class AsrController { @Autowired private AliAsrService aliAsrService; + @Resource + private RemoteFileService remoteFileService; + // /** // * 语音识别接口 // * @param audioFile 音频文件 @@ -52,6 +63,29 @@ public class AsrController { // } + /** + * 上传OSS对象存储 + * + * @param file 文件 + */ +// @SaCheckPermission("system:oss:upload") +// @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) + @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R upload(@RequestPart("file") MultipartFile file) { + if (ObjectUtil.isNull(file)) { + return R.fail("上传文件不能为空"); + } + try { + RemoteFile oss = remoteFileService.upload(file.getName(), file.getOriginalFilename(), file.getContentType(), file.getBytes()); + oss.setUrl(oss.getUrl()); + oss.setOssId(oss.getOssId()); + oss.setFileName(oss.getOriginalName()); + return R.ok(oss); + } catch (Exception e) { + throw new RuntimeException("请重试:" + e.getMessage()); + } + } + /** * 通过URL进行语音识别(用于测试或特定场景) */ @@ -68,7 +102,7 @@ public class AsrController { return R.ok(response); } - System.out.println("接收到音频文件URL: {"+audioUrl+"}"); + System.out.println("接收到音频文件URL: {" + audioUrl + "}"); String resultText = aliAsrService.recognizeSpeechByUrl(audioUrl); diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiAssistantController.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiAssistantController.java index 9397c17c..313dc926 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiAssistantController.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiAssistantController.java @@ -58,8 +58,6 @@ public class AiAssistantController extends BaseController { private final IAiChatMessageDetailService aiChatMessageDetailService; - private final IVectorDBService vectorDBService; - /** * 下拉框查询AI模型列表 */ @@ -90,6 +88,7 @@ public class AiAssistantController extends BaseController { /** * 更新message topic */ + @SaCheckPermission("ai:aiChatMessage:list") @Log(title = "会话标题", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/updateAiChatMessageTopic") @@ -102,7 +101,7 @@ public class AiAssistantController extends BaseController { * * @param sessionId 会话ID */ - @SaCheckPermission("ai:aiChatMessage:remove") + @SaCheckPermission("ai:aiChatMessage:list") @Log(title = "聊天消息", businessType = BusinessType.DELETE) @DeleteMapping("/{sessionId}") public R remove(@NotEmpty(message = "会话ID不能为空") @@ -114,6 +113,7 @@ public class AiAssistantController extends BaseController { * 流式聊天接口 */ @PostMapping(value = "/chatStream", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + @SaCheckPermission("ai:aiChatMessage:list") public Flux chatStream( @RequestParam("provider") String provider, @RequestBody AIRequest request) { // LoginUser loginUser = LoginHelper.getLoginUser(); @@ -152,6 +152,7 @@ public class AiAssistantController extends BaseController { * @return */ @PostMapping(value = "/aiFillForm") + @SaCheckPermission("ai:aiAssistant:aiFillForm") public JSONObject aiFillForm(@Validated(EditGroup.class) @RequestBody AIFillFormRequest aiFillFormRequest) { try { return aiAssistantService.aiFillForm(aiFillFormRequest); diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiKnowledgeBaseController.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiKnowledgeBaseController.java index 3d712a5a..e0f2e77c 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiKnowledgeBaseController.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiKnowledgeBaseController.java @@ -146,6 +146,7 @@ public class AiKnowledgeBaseController extends BaseController { * 上传知识库附件 */ @PostMapping(value = "/uploadKnowledgeContent") + @SaCheckPermission("ai:aiKnowledgeContent:upload") public R uploadKnowledgeContent(KnowledgeContentUploadRequest request) throws IOException { // knowledgeInfoService.upload(request); // aiKnowledgeContentService.uploadKnowledgeContent(request); @@ -174,6 +175,7 @@ public class AiKnowledgeBaseController extends BaseController { * 将上传的文件切断的内容进行向量化 */ @PostMapping(value = "/vectorizeKnowledgeContent") + @SaCheckPermission("ai:aiKnowledgeContent:upload") public R vectorizeKnowledgeContent(@Validated(EditGroup.class) @RequestBody AIKnowledgeEmbedding aiKnowledgeEmbedding) { aiKnowledgeBaseService.vectorizeKnowledgeContent(aiKnowledgeEmbedding); return R.ok(); @@ -185,12 +187,13 @@ public class AiKnowledgeBaseController extends BaseController { */ // @SaCheckPermission("ai:aiKnowledgeContent:list") @GetMapping("/listAiKnowledgeContent") + @SaCheckPermission("ai:aiKnowledgeContent:list") public TableDataInfo listAiKnowledgeContent(AiKnowledgeContentBo bo, PageQuery pageQuery) { return aiKnowledgeContentService.queryContentPageList(bo, pageQuery); } /** - * 删除AI知识库内容 + * 删除AI知识库内容,在知识库内容列表页面删除知识库内容 * * @param knowledgeBaseId 知识库ID * @param knowledgeContentIds 内容主键串 @@ -198,6 +201,7 @@ public class AiKnowledgeBaseController extends BaseController { // @SaCheckPermission("ai:aiKnowledgeBase:remove") @Log(title = "AI知识库内容", businessType = BusinessType.DELETE) @PostMapping("/deleteKnowledgeContent/{knowledgeBaseId}/{knowledgeContentIds}") + @SaCheckPermission("ai:aiKnowledgeContent:remove") public R deleteKnowledgeContent(@NotNull(message = "知识库ID不能为空") @PathVariable Long knowledgeBaseId, @NotEmpty(message = " 知识库内容ID不能为空") @PathVariable Long[] knowledgeContentIds) { @@ -205,7 +209,13 @@ public class AiKnowledgeBaseController extends BaseController { } + /** + * 在知识库内容上传页面上传文件后,只删除文件 + * @param knowledgeContentId + * @return + */ @PostMapping("/removeContentFile/{knowledgeContentId}") + @SaCheckPermission("ai:aiKnowledgeContent:upload") public R removeContentFile(@NotNull(message = " 知识库内容ID不能为空") @PathVariable Long knowledgeContentId) { return toAjax(aiKnowledgeBaseService.removeContentFile(knowledgeContentId)); diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiModelController.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiModelController.java index 80807ccf..794de4a1 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiModelController.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiModelController.java @@ -53,11 +53,7 @@ public class AiModelController extends BaseController { private final IAiModelService aiModelService; - private final IAiPlatformService aiPlatformService; - private final IAiBaseModelService baseModelService; - - private final IAIAssistantService assistantService; @Autowired private AIProviderProcessorFactory aiProviderProcessorFactory; diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiPlatformController.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiPlatformController.java index 81622a61..04533a55 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiPlatformController.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/controller/AiPlatformController.java @@ -54,7 +54,7 @@ public class AiPlatformController extends BaseController { /** * 查询AI平台列表 */ - @SaCheckPermission("ai/base:aiPlatform:list") + @SaCheckPermission("ai:aiPlatform:list") @GetMapping("/list") public R> list(AiPlatformBo bo) { return R.ok(aiPlatformService.queryList(bo)); @@ -76,7 +76,6 @@ public class AiPlatformController extends BaseController { /** * 导出AI平台列表 */ - @SaCheckPermission("ai/base:aiPlatform:export") @Log(title = "AI平台", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(AiPlatformBo bo, HttpServletResponse response) { @@ -89,7 +88,7 @@ public class AiPlatformController extends BaseController { * * @param platformId 主键 */ - @SaCheckPermission("ai/base:aiPlatform:query") + @SaCheckPermission("ai:aiPlatform:query") @GetMapping("/{platformId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long platformId) { @@ -99,7 +98,6 @@ public class AiPlatformController extends BaseController { /** * 新增AI平台 */ - @SaCheckPermission("ai/base:aiPlatform:add") @Log(title = "AI平台", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -110,7 +108,6 @@ public class AiPlatformController extends BaseController { /** * 修改AI平台 */ - @SaCheckPermission("ai/base:aiPlatform:edit") @Log(title = "AI平台", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -123,7 +120,6 @@ public class AiPlatformController extends BaseController { * * @param platformIds 主键串 */ - @SaCheckPermission("ai/base:aiPlatform:remove") @Log(title = "AI平台", businessType = BusinessType.DELETE) @DeleteMapping("/{platformIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/mapper/AiChatMessageDetailMapper.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/mapper/AiChatMessageDetailMapper.java index 469553ea..7043b786 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/mapper/AiChatMessageDetailMapper.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/mapper/AiChatMessageDetailMapper.java @@ -1,5 +1,6 @@ package org.dromara.ai.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -16,6 +17,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author xins * @date 2025-08-14 */ +@InterceptorIgnore(dataPermission = "true", tenantLine = "true") public interface AiChatMessageDetailMapper extends BaseMapperPlus { @DataPermission({ diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/dto/AIFillFormRequest.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/dto/AIFillFormRequest.java index 2f04988b..aca4a94f 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/dto/AIFillFormRequest.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/dto/AIFillFormRequest.java @@ -38,6 +38,18 @@ public class AIFillFormRequest { @NotNull(message = "AI表单设置属性详情列表不能为空", groups = { AddGroup.class, EditGroup.class }) private List formSettingDetailList; + /** + * AI平台ID + */ + @NotNull(message = "AI平台ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long platformId; + + /** + * AI模型ID + */ + @NotNull(message = "AI模型ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long modelId; + /** * 其他自定义参数 */ diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/provider/processor/impl/TongYiQianWenProcessor.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/provider/processor/impl/TongYiQianWenProcessor.java index bbb28706..c3f14e53 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/provider/processor/impl/TongYiQianWenProcessor.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/process/provider/processor/impl/TongYiQianWenProcessor.java @@ -43,7 +43,7 @@ public class TongYiQianWenProcessor extends BaseAIProviderProcessor { private static final Pattern JSON_PATTERN = Pattern.compile("\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}"); private final String apiKey = "sk-e1df7a607644479e8ebad3be233ddafa"; - private final String apiUrl = "https://api.deepseek.com/v1/"; + private final String apiUrl = "https://api.t.com/v1/"; private static final String API_URL = "https://api.deepseek.com/v1/chat/completions"; private final String deepSeekChatModel = "deepseek-chat"; diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AIAssistantServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AIAssistantServiceImpl.java index 4e852ad3..14924580 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AIAssistantServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AIAssistantServiceImpl.java @@ -237,7 +237,7 @@ public class AIAssistantServiceImpl implements IAIAssistantService { // 2. 构建 AI 提示 String prompt = String.format( - "你是一个专业的 SQL Server 数据库专家。仅根据以下数据库结构(如果以下数据库结构中没有则返回select * from):\n\n%s\n\n" + + "你是一个专业的 SQL Server 数据库专家。必须基于表结构生成SQL,其中的表名和字段名必须来自表结构信息(如果以下数据库结构中没有则返回select * from):\n\n%s\n\n" + "请将以下自然语言查询转换为优化的 SQL Server T-SQL 语句:\n" + "---\n%s\n---\n\n" + "要求:\n" + @@ -407,9 +407,9 @@ public class AIAssistantServiceImpl implements IAIAssistantService { // } - String naturalLanguageQuery = aiFillFormRequest.getNaturalLanguageQuery(); + String naturalLanguageQuery = aiFillFormRequest.getNaturalLanguageQuery()+"."; List aiFormSettingDetailList = aiFillFormRequest.getFormSettingDetailList(); - StringBuilder sb = new StringBuilder("你是一个智能表单填充助手。请根据我的要求、提供的数据库表字段信息,生成一份用于直接填充Vue3前端表单的JSON数据。\n\n"); + StringBuilder sb = new StringBuilder("你是一个智能表单填充助手。请根据我的要求、提供的数据库表结构信息,生成一份用于直接填充Vue3前端表单的JSON数据。\n\n"); sb.append("【要求】\n"); sb.append(naturalLanguageQuery).append(",\n\n"); @@ -422,17 +422,19 @@ public class AIAssistantServiceImpl implements IAIAssistantService { sb.append("2. 生成一个纯净的JSON对象,不要任何额外的解释、文本或markdown代码块标记,键是字段名,值是根据我的要求推断出来的值\n"); // sb.append("3. 请返回**纯净的JSON格式**数据,不要任何额外的解释、文本或markdown代码块标记\n"); sb.append("3. 仅返回一个JSON对象,不要返回JSON数组,不要返回任何测试数据和推测的数据\n"); - sb.append("4. 其他没有要求返回的数据返回空字符串\n"); + sb.append("4. 其中的表名和字段名必须来自数据库表结构信息\n"); + sb.append("5. 其他没有要求返回的数据返回空字符串\n"); - IUnifiedAIProviderProcessor processor = aiProviderProcessorFactory.getProcessorByPlatformId(1L); + IUnifiedAIProviderProcessor processor = aiProviderProcessorFactory + .getProcessorByPlatformId(aiFillFormRequest.getPlatformId()); AIMessage aiMessage = new AIMessage(); aiMessage.setRole("user"); aiMessage.setContent(sb.toString()); + Long modelId = aiFillFormRequest.getModelId(); AIRequest aiRequest = new AIRequest(); aiRequest.setMessages(Collections.singletonList(aiMessage)); - //todo modelId - aiRequest.setModelId(1L); + aiRequest.setModelId(modelId); Mono response = processor.chat(aiRequest); if (Objects.requireNonNull(response.block()).isSuccess()) { @@ -440,7 +442,7 @@ public class AIAssistantServiceImpl implements IAIAssistantService { JSONObject contentJson = JSONObject.parseObject(content); parseRelateTable(aiFormSettingDetailList, contentJson); processor.saveTokenUsage(HwMomAiConstants.AI_CHAT_MESSAGE_DETAIL_TYPE_FORM,sb.toString(), content, response.block().getTokenUsage(), - 1L, null, null, + modelId, null, null, null, null, "0", "1",LoginHelper.getUserId()); System.out.println(contentJson.toJSONString()); diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiBaseModelServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiBaseModelServiceImpl.java index f25432ae..6664aa45 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiBaseModelServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiBaseModelServiceImpl.java @@ -116,7 +116,6 @@ public class AiBaseModelServiceImpl implements IAiBaseModelService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiBaseModel entity){ - //TODO 做一些数据校验,如唯一约束 } /** @@ -129,7 +128,6 @@ public class AiBaseModelServiceImpl implements IAiBaseModelService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageDetailServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageDetailServiceImpl.java index f6cca9e9..74b9420c 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageDetailServiceImpl.java @@ -130,7 +130,6 @@ public class AiChatMessageDetailServiceImpl implements IAiChatMessageDetailServi * 保存前的数据校验 */ private void validEntityBeforeSave(AiChatMessageDetail entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -143,7 +142,6 @@ public class AiChatMessageDetailServiceImpl implements IAiChatMessageDetailServi @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } @@ -194,7 +192,7 @@ public class AiChatMessageDetailServiceImpl implements IAiChatMessageDetailServi .eq(ObjectUtil.isNotNull(bo.getMessageDetailType()), "acmd.message_detail_type", bo.getMessageDetailType()) .eq(ObjectUtil.isNotNull(bo.getCreateBy()), "acmd.create_by", bo.getCreateBy()) .eq(ObjectUtil.isNotNull(bo.getModelId()), "acmd.model_id", bo.getModelId()) - .orderByAsc("acmd.message_detail_id"); + .orderByDesc("acmd.message_detail_id"); Page page = baseMapper.selectAiChatMessageDetailJoinList(pageQuery.build(), wrapper); return TableDataInfo.build(page); } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageServiceImpl.java index 823bc132..17c25f7d 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiChatMessageServiceImpl.java @@ -127,7 +127,6 @@ public class AiChatMessageServiceImpl implements IAiChatMessageService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiChatMessage entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -140,7 +139,6 @@ public class AiChatMessageServiceImpl implements IAiChatMessageService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } @@ -174,7 +172,6 @@ public class AiChatMessageServiceImpl implements IAiChatMessageService { @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidBySessionId(String sessionId, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } // 先删除AI会话明细 diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiFormSettingServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiFormSettingServiceImpl.java index 36f4b504..9f475f5c 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiFormSettingServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiFormSettingServiceImpl.java @@ -157,7 +157,6 @@ public class AiFormSettingServiceImpl implements IAiFormSettingService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiFormSetting entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -171,7 +170,6 @@ public class AiFormSettingServiceImpl implements IAiFormSettingService { @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } ids.forEach(id -> { aiFormSettingDetailMapper.delete(Wrappers.lambdaQuery() diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseServiceImpl.java index 7ce190e8..d63bd692 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseServiceImpl.java @@ -209,7 +209,6 @@ public class AiKnowledgeBaseServiceImpl implements IAiKnowledgeBaseService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiKnowledgeBase entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -222,7 +221,6 @@ public class AiKnowledgeBaseServiceImpl implements IAiKnowledgeBaseService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } boolean result = baseMapper.deleteByIds(ids) > 0; for(Long knowledgeBaseId:ids){ @@ -393,7 +391,6 @@ public class AiKnowledgeBaseServiceImpl implements IAiKnowledgeBaseService { @Transactional(rollbackFor = Exception.class) public Boolean deleteKnowledgeContentWithValidByIds(Long knowledgeBaseId,Collection knowledgeContentIds, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } aiContentFragmentMapper.delete(new QueryWrapper().in("content_id", knowledgeContentIds)); diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseTypeServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseTypeServiceImpl.java index fbc2193a..213a2e16 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeBaseTypeServiceImpl.java @@ -115,7 +115,6 @@ public class AiKnowledgeBaseTypeServiceImpl implements IAiKnowledgeBaseTypeServi * 保存前的数据校验 */ private void validEntityBeforeSave(AiKnowledgeBaseType entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -128,7 +127,6 @@ public class AiKnowledgeBaseTypeServiceImpl implements IAiKnowledgeBaseTypeServi @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeContentServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeContentServiceImpl.java index 388c5b77..c5f714bc 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeContentServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiKnowledgeContentServiceImpl.java @@ -143,7 +143,6 @@ public class AiKnowledgeContentServiceImpl implements IAiKnowledgeContentService * 保存前的数据校验 */ private void validEntityBeforeSave(AiKnowledgeContent entity){ - //TODO 做一些数据校验,如唯一约束 } /** @@ -156,7 +155,6 @@ public class AiKnowledgeContentServiceImpl implements IAiKnowledgeContentService @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiModelServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiModelServiceImpl.java index 52937dd2..2721e77f 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiModelServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiModelServiceImpl.java @@ -200,7 +200,6 @@ public class AiModelServiceImpl implements IAiModelService { validEntityBeforeSave(update); String apiKey = update.getApiKey(); String apiSecret = update.getApiSecret(); - //todo:前端显示什么,如何修改 if (StringUtils.isNotEmpty(apiKey)) { String encryptApiKey = EncryptUtils.encryptByBase64(update.getApiKey()); // String decryptApiKey = EncryptUtils.decryptByBase64(encryptApiKey); @@ -219,7 +218,6 @@ public class AiModelServiceImpl implements IAiModelService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiModel entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -232,7 +230,6 @@ public class AiModelServiceImpl implements IAiModelService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiPlatformServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiPlatformServiceImpl.java index 7d294806..f20203d2 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiPlatformServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiPlatformServiceImpl.java @@ -117,7 +117,6 @@ public class AiPlatformServiceImpl implements IAiPlatformService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiPlatform entity){ - //TODO 做一些数据校验,如唯一约束 } /** @@ -130,7 +129,6 @@ public class AiPlatformServiceImpl implements IAiPlatformService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiSqlTableServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiSqlTableServiceImpl.java index 88b9bfdc..91a57c0a 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiSqlTableServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiSqlTableServiceImpl.java @@ -134,7 +134,6 @@ public class AiSqlTableServiceImpl implements IAiSqlTableService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiSqlTable entity) { - //TODO 做一些数据校验,如唯一约束 } /** @@ -147,7 +146,6 @@ public class AiSqlTableServiceImpl implements IAiSqlTableService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } @@ -247,7 +245,11 @@ public class AiSqlTableServiceImpl implements IAiSqlTableService { getTableSchema(dbSchemaJson, aiSqlTableList); - return baseMapper.insertBatch(aiSqlTableList); + for(AiSqlTable toInsertedTable:aiSqlTableList){ + baseMapper.insert(toInsertedTable); + } + return true; +// return baseMapper.insertBatch(aiSqlTableList); } diff --git a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiTokenUsageServiceImpl.java b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiTokenUsageServiceImpl.java index 237843df..aacf14b5 100644 --- a/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiTokenUsageServiceImpl.java +++ b/ruoyi-modules/hwmom-ai/src/main/java/org/dromara/ai/service/impl/AiTokenUsageServiceImpl.java @@ -123,7 +123,6 @@ public class AiTokenUsageServiceImpl implements IAiTokenUsageService { * 保存前的数据校验 */ private void validEntityBeforeSave(AiTokenUsage entity){ - //TODO 做一些数据校验,如唯一约束 } /** @@ -136,7 +135,6 @@ public class AiTokenUsageServiceImpl implements IAiTokenUsageService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; }