|
|
@@ -5,16 +5,10 @@ import cn.edu.nju.plagdemo.api.IPlagDetectApi;
|
|
|
import cn.edu.nju.plagdemo.exception.DefinitionException;
|
|
|
import cn.edu.nju.plagdemo.model.dto.plag.AlgorithmRemoteParams;
|
|
|
import cn.edu.nju.plagdemo.model.dto.plag.EndpointDTO;
|
|
|
-import cn.edu.nju.plagdemo.model.po.plag.AlgorithmPO;
|
|
|
-import cn.edu.nju.plagdemo.model.po.plag.BaseFilePO;
|
|
|
-import cn.edu.nju.plagdemo.model.po.plag.DetectionFilePO;
|
|
|
-import cn.edu.nju.plagdemo.model.po.plag.RecordPO;
|
|
|
+import cn.edu.nju.plagdemo.model.po.plag.*;
|
|
|
import cn.edu.nju.plagdemo.model.vo.AliyunTokenVO;
|
|
|
import cn.edu.nju.plagdemo.model.vo.OssInfoVO;
|
|
|
-import cn.edu.nju.plagdemo.service.IAlgorithmService;
|
|
|
-import cn.edu.nju.plagdemo.service.IBaseFileService;
|
|
|
-import cn.edu.nju.plagdemo.service.IDetectionFileService;
|
|
|
-import cn.edu.nju.plagdemo.service.IRecordService;
|
|
|
+import cn.edu.nju.plagdemo.service.*;
|
|
|
import cn.edu.nju.plagdemo.utils.RestResult;
|
|
|
import cn.edu.nju.plagdemo.utils.SimpleCache;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
@@ -35,6 +29,7 @@ import com.aliyuncs.profile.DefaultProfile;
|
|
|
import com.aliyuncs.profile.IClientProfile;
|
|
|
import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
|
|
|
import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import io.swagger.models.auth.In;
|
|
|
@@ -51,10 +46,7 @@ import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
@@ -74,7 +66,7 @@ public class PlagDetectApiImpl implements IPlagDetectApi {
|
|
|
private IRecordService recordService;
|
|
|
|
|
|
@Autowired
|
|
|
- private RestTemplate restTemplate;
|
|
|
+ private IAlgoTypeRelationService algoTypeRelationService;
|
|
|
|
|
|
@Autowired
|
|
|
private IOssApi ossApi;
|
|
|
@@ -115,13 +107,22 @@ public class PlagDetectApiImpl implements IPlagDetectApi {
|
|
|
* */
|
|
|
@Override
|
|
|
public RestResult<?> plagDetect(Integer file, Integer baseFile, Integer fileType, Integer algorithm, String sessionId, Map<String, Object> params) {
|
|
|
-
|
|
|
+ AlgorithmPO algorithmPO = algorithmService.getById(algorithm);
|
|
|
+ if (algorithmPO == null) {
|
|
|
+ List<AlgoTypeRelationPO> algoTypeRelationPOS = algoTypeRelationService.list(
|
|
|
+ new LambdaQueryWrapper<AlgoTypeRelationPO>().eq(AlgoTypeRelationPO::getFileTypeId, fileType)
|
|
|
+ );
|
|
|
+ if (algoTypeRelationPOS.size() == 0) {
|
|
|
+ throw new DefinitionException(HttpStatus.INTERNAL_SERVER_ERROR, "该文件类型没有对应的查重算法!");
|
|
|
+ }
|
|
|
+ algorithm = algoTypeRelationPOS.get(0).getAlgoId();
|
|
|
+ algorithmPO = algorithmService.getById(algorithm);
|
|
|
+ }
|
|
|
RecordPO recordPO = new RecordPO();
|
|
|
recordPO.setFileId(file);
|
|
|
recordPO.setBaseFileId(baseFile);
|
|
|
recordPO.setAlgorithm(algorithm);
|
|
|
recordPO.setCreatedTime(LocalDateTime.now());
|
|
|
- AlgorithmPO algorithmPO = algorithmService.getById(algorithm);
|
|
|
String defaultOptions = algorithmPO.getDefaultOptions();
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
Map<String, Object> option = null;
|