Browse Source

完善题目回调接口

master
luogw 5 days ago
parent
commit
4d3a3f8005
  1. 1
      src/main/java/com/project/ding/config/SecurityConfig.java
  2. 41
      src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java
  3. 2
      src/main/java/com/project/milvus/controller/MilvusController.java
  4. 2
      src/main/java/com/project/milvus/domain/dto/TitleVector.java
  5. 4
      src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java

1
src/main/java/com/project/ding/config/SecurityConfig.java

@ -29,6 +29,7 @@ public class SecurityConfig {
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
// 登录放行 // 登录放行
.requestMatchers("/api/login/**" , .requestMatchers("/api/login/**" ,
"/api/milvus/**",
"/api/interaction/**").permitAll() "/api/interaction/**").permitAll()
// 管理端锁定 // 管理端锁定
.requestMatchers("/api/admin/**").hasRole("ADMIN") .requestMatchers("/api/admin/**").hasRole("ADMIN")

41
src/main/java/com/project/milvus/application/impl/MilvusApplicationServiceImpl.java

@ -1,16 +1,13 @@
package com.project.milvus.application.impl; package com.project.milvus.application.impl;
import cn.hutool.core.collection.CollectionUtil; 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.base.domain.exception.MissingParameterException;
import com.project.milvus.application.MilvusApplicationService; import com.project.milvus.application.MilvusApplicationService;
import com.project.milvus.domain.dto.TitleVector; import com.project.milvus.domain.dto.TitleVector;
import com.project.milvus.domain.service.CheckMilvusDomainService; import com.project.milvus.domain.service.CheckMilvusDomainService;
import com.project.milvus.domain.service.MilvusDemoService; import com.project.milvus.domain.service.MilvusDemoService;
import com.project.question.domain.dto.QuestionDTO; import com.project.question.domain.dto.QuestionDTO;
import com.project.question.domain.entity.QuestionEntity; import com.project.question.domain.service.SaveQuestionDomainService;
import com.project.question.domain.service.QuestionBaseService;
import io.milvus.v2.service.vector.response.SearchResp; import io.milvus.v2.service.vector.response.SearchResp;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
@ -35,7 +32,7 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService {
@Autowired @Autowired
private RedissonClient redissonClient; private RedissonClient redissonClient;
@Autowired @Autowired
private QuestionBaseService questionBaseService; private SaveQuestionDomainService saveQuestionDomainService;
//相似度阈值 //相似度阈值
@ -83,14 +80,14 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService {
} }
//保存题目到数据库 //保存题目到数据库
QuestionEntity questionEntity = buildQuestionEntity(title); QuestionDTO questionDTO = buildQuestionDTO(title);
questionBaseService.save(questionEntity); questionDTO = saveQuestionDomainService.save(questionDTO).getData();
//保存向量数据到 Milvus //保存向量数据到 Milvus
title.setId(questionEntity.getId()); title.setId(questionDTO.getId());
milvusDemoService.insertRecord(title); milvusDemoService.insertRecord(title);
}catch (InterruptedException e) { }catch (Exception e) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
throw new RuntimeException("获取锁被中断", e); throw new RuntimeException("获取锁被中断", e);
} finally { } finally {
@ -101,22 +98,18 @@ public class MilvusApplicationServiceImpl implements MilvusApplicationService {
} }
/** /**
* 构建题目实体 * 构建题目DTO
*/ */
private QuestionEntity buildQuestionEntity(TitleVector title) { private QuestionDTO buildQuestionDTO(TitleVector title) {
QuestionEntity questionEntity = new QuestionEntity(); QuestionDTO questionDTO = new QuestionDTO();
questionEntity.setSourceType(0); // 0-单 KP 出题 questionDTO.setUseStatus(false);
questionEntity.setUseStatus(false); // 未使用 questionDTO.setKpIdList(title.getPointIdsList());
questionEntity.setKpIdList(title.getPointIdsList()); questionDTO.setUniqueHash(title.getUniqueHash());
questionEntity.setUniqueHash(title.getUniqueHash()); questionDTO.setClusterId(title.getClusterId());
questionEntity.setQuestionType(title.QuestionDetailDTO.getType()); questionDTO.setQuestionType(title.QuestionDetailDTO.getType());
questionDTO.setQuestionDetailDTO(title.QuestionDetailDTO);
// 构建题目详情
QuestionEntity.QuestionDetail detail = new QuestionEntity.QuestionDetail(); return questionDTO;
BeanUtils.copyProperties(title.QuestionDetailDTO, detail);
questionEntity.setQuestionDetail(detail);
return questionEntity;
} }
/** /**

2
src/main/java/com/project/milvus/controller/MilvusController.java

@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/milvus") @RequestMapping("/api/milvus")
public class MilvusController { public class MilvusController {
@Autowired @Autowired
private MilvusApplicationService milvusApplicationService; private MilvusApplicationService milvusApplicationService;

2
src/main/java/com/project/milvus/domain/dto/TitleVector.java

@ -20,6 +20,8 @@ public class TitleVector {
public List<Float> titleVector; public List<Float> titleVector;
//题目唯一标识 //题目唯一标识
private String uniqueHash; private String uniqueHash;
//知识点簇
private Long clusterId;
//题目内容 //题目内容
public QuestionDTO.QuestionDetailDTO QuestionDetailDTO; public QuestionDTO.QuestionDetailDTO QuestionDetailDTO;

4
src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java

@ -45,6 +45,10 @@ public class CheckMilvusDomainServiceImpl implements CheckMilvusDomainService {
throw new MissingParameterException("请求参数缺失或格式错误"); throw new MissingParameterException("请求参数缺失或格式错误");
} }
if (title.getClusterId() == null){
throw new MissingParameterException("所属知识点簇ID不能为空");
}
if(titleVectorList.size() != 1024){ if(titleVectorList.size() != 1024){
throw new MissingParameterException("向量格式错误"); throw new MissingParameterException("向量格式错误");
} }

Loading…
Cancel
Save