From 4d3a3f8005125d346ca11e3af651eceac52ab872 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Thu, 5 Mar 2026 11:12:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A2=98=E7=9B=AE=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/ding/config/SecurityConfig.java | 1 + .../impl/MilvusApplicationServiceImpl.java | 41 ++++++++----------- .../milvus/controller/MilvusController.java | 2 +- .../milvus/domain/dto/TitleVector.java | 2 + .../impl/CheckMilvusDomainServiceImpl.java | 4 ++ 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/project/ding/config/SecurityConfig.java b/src/main/java/com/project/ding/config/SecurityConfig.java index 8e72ae2..73fce71 100644 --- a/src/main/java/com/project/ding/config/SecurityConfig.java +++ b/src/main/java/com/project/ding/config/SecurityConfig.java @@ -29,6 +29,7 @@ public class SecurityConfig { .authorizeHttpRequests(auth -> auth // 登录放行 .requestMatchers("/api/login/**" , + "/api/milvus/**", "/api/interaction/**").permitAll() // 管理端锁定 .requestMatchers("/api/admin/**").hasRole("ADMIN") diff --git a/src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java b/src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java index ea61455..311cc15 100644 --- a/src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java +++ b/src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java @@ -1,16 +1,13 @@ package com.project.milvus.application.impl; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.RandomUtil; -import com.project.base.config.CustomIdGenerator; import com.project.base.domain.exception.MissingParameterException; import com.project.milvus.application.MilvusApplicationService; import com.project.milvus.domain.dto.TitleVector; import com.project.milvus.domain.service.CheckMilvusDomainService; import com.project.milvus.domain.service.MilvusDemoService; import com.project.question.domain.dto.QuestionDTO; -import com.project.question.domain.entity.QuestionEntity; -import com.project.question.domain.service.QuestionBaseService; +import com.project.question.domain.service.SaveQuestionDomainService; import io.milvus.v2.service.vector.response.SearchResp; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; @@ -35,7 +32,7 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService { @Autowired private RedissonClient redissonClient; @Autowired - private QuestionBaseService questionBaseService; + private SaveQuestionDomainService saveQuestionDomainService; //相似度阈值 @@ -83,14 +80,14 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService { } //保存题目到数据库 - QuestionEntity questionEntity = buildQuestionEntity(title); - questionBaseService.save(questionEntity); + QuestionDTO questionDTO = buildQuestionDTO(title); + questionDTO = saveQuestionDomainService.save(questionDTO).getData(); //保存向量数据到 Milvus - title.setId(questionEntity.getId()); + title.setId(questionDTO.getId()); milvusDemoService.insertRecord(title); - }catch (InterruptedException e) { + }catch (Exception e) { Thread.currentThread().interrupt(); throw new RuntimeException("获取锁被中断", e); } finally { @@ -101,22 +98,18 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService { } /** - * 构建题目实体 + * 构建题目DTO */ - private QuestionEntity buildQuestionEntity(TitleVector title) { - QuestionEntity questionEntity = new QuestionEntity(); - questionEntity.setSourceType(0); // 0-单 KP 出题 - questionEntity.setUseStatus(false); // 未使用 - questionEntity.setKpIdList(title.getPointIdsList()); - questionEntity.setUniqueHash(title.getUniqueHash()); - questionEntity.setQuestionType(title.QuestionDetailDTO.getType()); - - // 构建题目详情 - QuestionEntity.QuestionDetail detail = new QuestionEntity.QuestionDetail(); - BeanUtils.copyProperties(title.QuestionDetailDTO, detail); - questionEntity.setQuestionDetail(detail); - - return questionEntity; + private QuestionDTO buildQuestionDTO(TitleVector title) { + QuestionDTO questionDTO = new QuestionDTO(); + questionDTO.setUseStatus(false); + questionDTO.setKpIdList(title.getPointIdsList()); + questionDTO.setUniqueHash(title.getUniqueHash()); + questionDTO.setClusterId(title.getClusterId()); + questionDTO.setQuestionType(title.QuestionDetailDTO.getType()); + questionDTO.setQuestionDetailDTO(title.QuestionDetailDTO); + + return questionDTO; } /** diff --git a/src/main/java/com/project/milvus/controller/MilvusController.java b/src/main/java/com/project/milvus/controller/MilvusController.java index e522700..e91d845 100644 --- a/src/main/java/com/project/milvus/controller/MilvusController.java +++ b/src/main/java/com/project/milvus/controller/MilvusController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.*; @RestController -@RequestMapping("/milvus") +@RequestMapping("/api/milvus") public class MilvusController { @Autowired private MilvusApplicationService milvusApplicationService; diff --git a/src/main/java/com/project/milvus/domain/dto/TitleVector.java b/src/main/java/com/project/milvus/domain/dto/TitleVector.java index 3293f0c..41b8086 100644 --- a/src/main/java/com/project/milvus/domain/dto/TitleVector.java +++ b/src/main/java/com/project/milvus/domain/dto/TitleVector.java @@ -20,6 +20,8 @@ public class TitleVector { public List titleVector; //题目唯一标识 private String uniqueHash; + //知识点簇 + private Long clusterId; //题目内容 public QuestionDTO.QuestionDetailDTO QuestionDetailDTO; diff --git a/src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java b/src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java index 423342a..3882699 100644 --- a/src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java +++ b/src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java @@ -45,6 +45,10 @@ public class CheckMilvusDomainServiceImpl implements CheckMilvusDomainService { throw new MissingParameterException("请求参数缺失或格式错误"); } + if (title.getClusterId() == null){ + throw new MissingParameterException("所属知识点簇ID不能为空"); + } + if(titleVectorList.size() != 1024){ throw new MissingParameterException("向量格式错误"); }