Przeglądaj źródła

修改任务和项目时类型的转换,通过name转code

guo00guo 5 lat temu
rodzic
commit
b5b75e5418

+ 26 - 8
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -135,14 +135,6 @@ public class CommonRepo {
         }
     }
 
-    public Field getFieldByFieldCode(String code) {
-        Optional<FieldPO> fieldPO = fieldDao.findByCode(code);
-        if (!fieldPO.isPresent()) {
-            throw new FieldNoExistException();
-        } else {
-            return Converter.convert(Field.class, fieldPO.get());
-        }
-    }
 
     public List<ApplicationTypeToTestType> getAppToTypeByAppCode(String appCode) {
         List<ApplicationTypeToTestTypePO> appToTypeList = applicationTypeToTestTypeDao.findByApplicationTypeCode(appCode);
@@ -249,4 +241,30 @@ public class CommonRepo {
         return applicationTypePO.get().getName();
     }
 
+    public String getFieldCodeByFieldName(String name) {
+        Optional<FieldPO> fieldPO = fieldDao.findByName(name);
+        if (!fieldPO.isPresent()) {
+            throw new HttpBadRequestException("领域类型有误");
+        } else {
+            return fieldPO.get().getCode();
+        }
+    }
+
+    public String getApplicationCodeByName(String name) {
+        Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByName(name);
+        if (!applicationTypePO.isPresent()) {
+            throw new HttpBadRequestException("应用类型有误");
+        }
+        return applicationTypePO.get().getCode();
+    }
+
+
+    public String getTypeCodeByName(String name) {
+        // 测试类型的转换
+        Optional<TestTypePO> testTypePO = testTypeDao.findByName(name);
+        if (!testTypePO.isPresent()) {
+            throw new HttpBadRequestException("测试类型有误");
+        }
+        return testTypePO.get().getCode();
+    }
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestProjectCommand.java

@@ -31,7 +31,7 @@ public class CrowdTestProjectCommand {
     @NotNull(message = "项目应用类型不可为空")
     private String platform;
 
-    @NotNull(message = "项目服务类型不可为空")
+//    @NotNull(message = "项目服务类型不可为空")
     private ArrayList<String> type;
 
 //    @NotNull(message = "项目描述不可为空")

+ 13 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/impl/OperationMediatorImpl.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.mediator.impl;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.repository.CommonRepo;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
@@ -11,6 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author: Diors.Po
@@ -22,6 +26,9 @@ public class OperationMediatorImpl implements OperationMediator {
 
     @Autowired
     private CrowdTestProjectRepo projectRepo;
+    
+    @Autowired
+    private CommonRepo commonRepo;
 
     @Autowired
     private ThemeSchedulerService themeSchedulerService;
@@ -36,9 +43,13 @@ public class OperationMediatorImpl implements OperationMediator {
     }
 
     @Override
-    public CrowdTestProject updateProject(CrowdTestProject project, CrowdTestProjectCommand crowdTestProjectCommand) {
+    public CrowdTestProject updateProject(CrowdTestProject project, CrowdTestProjectCommand command) {
+        command.setField(commonRepo.getFieldCodeByFieldName(command.getField()));
+        command.setPlatform(commonRepo.getApplicationCodeByName(command.getPlatform()));
+        List<String> typeCodeList = command.getType().stream().map(s -> commonRepo.getTypeCodeByName(s)).collect(Collectors.toList());
+        command.setType((ArrayList<String>) typeCodeList);
         themeSchedulerService.cancelThemeScheduler(project);
-        CrowdTestProject updateProject = crowdTestProjectCommand.toCrowdProject();
+        CrowdTestProject updateProject = command.toCrowdProject();
         updateProject.setId(project.getId());
         updateProject.setCode(project.getCode());
         updateProject.setStatus(project.getStatus());

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -119,7 +119,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             throw new CrowdTestTaskNotExistException();
         if (task.get().getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
             throw new BaseException("禁止修改已结束的任务!");
-
+        command.setType(commonRepo.getTypeCodeByName(command.getType()));
         CrowdTestTask updateTask = command.toCrowdTask(projectCode);
         // 定向任务被拒绝,更新时需要删除任务中的taskToUser  acceptedUserList
         if (task.get().getDistributionType().equals(DistributeType.DIRECT.getId())) {