Browse Source

修改类型转换使用map

guo00guo 4 years ago
parent
commit
13cf0a7b73

+ 5 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -292,6 +292,11 @@ public class CommonRepo {
         }
     }
 
+    public Map<String, String> getFieldCodeNameMap() {
+        return fieldDao.findAll().stream()
+                .collect(Collectors.toMap(fieldPO -> fieldPO.getCode(), fieldPO -> fieldPO.getName()));
+    }
+
     public String getApplicationCodeByName(String name) {
         Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByName(name);
         if (!applicationTypePO.isPresent()) {

+ 6 - 5
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -740,7 +740,7 @@ public class WebMediatorImpl implements ViewMediator {
         return userDataDTO;
     }
 
-    private CrowdProjectVO changeApplicationType(CrowdProjectVO projectVO, Map<String, String> applicationMap) {
+    public CrowdProjectVO changeApplicationType(CrowdProjectVO projectVO, Map<String, String> applicationMap) {
         // 应用类型值的转换
         String applicationName = applicationMap.get(projectVO.getPlatform());
         projectVO.setPlatform(applicationName);
@@ -821,6 +821,7 @@ public class WebMediatorImpl implements ViewMediator {
         projectVO = changeApplicationType(projectVO, applicationMap);
 
         // 领域类型值的转换
+
         Optional<FieldPO> fieldPO = fieldDao.findByCode(projectVO.getField());
         if (fieldPO.isPresent()) {
             projectVO.setField(fieldPO.get().getName());
@@ -1114,14 +1115,14 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public List<CrowdTestProjectVO> findByNameLike(String name) {
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
         authingList.addAll(projectDao.findByNameLikeAndIsDeleted("%" + name + "%", DeletedStatus.isNotDeleted).stream().map(crowdTestProjectPO -> {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             // 项目测试类型转换
-            String applicationName = commonRepo.getApplicationNameByCode(crowdTestProjectPO.getApplicationType());
             CrowdTestProjectVO crowdTestProjectVO = new CrowdTestProjectVO(crowdTestProject);
-            crowdTestProjectVO.setApplicationType(applicationName);
+            crowdTestProjectVO.setApplicationType(applicationMap.get(crowdTestProjectPO.getApplicationType()));
             return crowdTestProjectVO;
         }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList()));
         return authingList;
@@ -1144,14 +1145,14 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public List<CrowdTestProjectVO> AllByPage(){
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO ->{
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             themeStatusService.updateStatus(crowdTestProject);
             // 项目测试类型转换
-            String applicationName = commonRepo.getApplicationNameByCode(crowdTestProjectPO.getApplicationType());
             CrowdTestProjectVO crowdTestProjectVO = new CrowdTestProjectVO(crowdTestProject);
-            crowdTestProjectVO.setApplicationType(applicationName);
+            crowdTestProjectVO.setApplicationType(applicationMap.get(crowdTestProjectPO.getApplicationType()));
             return crowdTestProjectVO;
         }).collect(Collectors.toList()));
         return authingList;

+ 10 - 8
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -148,14 +148,15 @@ public class CommonServiceImpl implements CommonService {
 
     @Override
     public List<CrowdProjectVO> getProjectList(Pageable pageable, String code,String keyword) {
+
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         List<CrowdProjectVO> crowdProjectVOS = commonRepo.getProjectList(pageable, code, keyword).stream().map(project -> {
             // 判断项目是否截止
             if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
                 project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
             }
             CrowdProjectVO crowdProjectVO = new CrowdProjectVO(project);
-            String applicationName = commonRepo.getApplicationNameByCode(crowdProjectVO.getPlatform());
-            crowdProjectVO.setPlatform(applicationName);
+            crowdProjectVO.setPlatform(applicationMap.get(crowdProjectVO.getPlatform()));
             return crowdProjectVO;
         }).collect(Collectors.toList());
         return crowdProjectVOS;
@@ -231,6 +232,10 @@ public class CommonServiceImpl implements CommonService {
 
     @Override
     public List<HashMap<String, Long>> getStatisticsCount() {
+        Map<String, String> applicationsMap = commonRepo.getApplicationCodeNameMap();
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
+        Map<String, String> fieldsMap = commonRepo.getFieldCodeNameMap();
+
         List<HashMap<String, Long>> statisticsList = new ArrayList<>();
         HashMap<String, Long> fieldMap = new HashMap<>();
         HashMap<String, Long> applicationMap = new HashMap<>();
@@ -267,18 +272,15 @@ public class CommonServiceImpl implements CommonService {
         Iterator<String> fieldIterator = fieldMap.keySet().iterator();
         while(fieldIterator.hasNext()){
             String fieldCode = fieldIterator.next();
-            String fieldName = commonRepo.getFieldNameByFieldCode(fieldCode);
-            fieldResultMap.put(fieldName, fieldMap.get(fieldCode));
+            fieldResultMap.put(fieldsMap.get(fieldCode), fieldMap.get(fieldCode));
         }
 
         for(Map.Entry<String, Long> entry : applicationMap.entrySet()){
-            String applicationName = commonRepo.getApplicationNameByCode(entry.getKey());
-            applicationResultMap.put(applicationName, entry.getValue());
+            applicationResultMap.put(applicationsMap.get(entry.getKey()), entry.getValue());
         }
 
         for(Map.Entry<String, Long> entry : testTypeMap.entrySet()){
-            String typeName = commonRepo.getTypeNameByCode(entry.getKey());
-            testTypeResultMap.put(typeName, entry.getValue());
+            testTypeResultMap.put(typeMap.get(entry.getKey()), entry.getValue());
         }
 
         statisticsList.add(fieldResultMap);

+ 5 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -40,6 +40,7 @@ import java.io.IOException;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -98,14 +99,14 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public List<CrowdTestProjectVO> findIndexProject() {
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
         authingList.addAll(projectDao.findindexProject().stream().map(crowdTestProjectPO -> {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             // 项目测试类型转换
-            String applicationName = commonRepo.getApplicationNameByCode(crowdTestProjectPO.getApplicationType());
             CrowdTestProjectVO crowdTestProjectVO = new CrowdTestProjectVO(crowdTestProject);
-            crowdTestProjectVO.setApplicationType(applicationName);
+            crowdTestProjectVO.setApplicationType(applicationMap.get(crowdTestProjectPO.getApplicationType()));
             return crowdTestProjectVO;
         }).collect(Collectors.toList()));
         return authingList;
@@ -125,12 +126,12 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public List<CrowdProjectVO> findAllMoreHotProjectList(String keyword) {
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         List<CrowdProjectVO> crowdProjectVOS = projectDao.findAllHotProject().stream().map(crowdTestProjectPO -> {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             // 应用类型值的转换
-            String applicationName = commonRepo.getApplicationNameByCode(crowdTestProject.getApplicationType());
-            crowdTestProject.setApplicationType(applicationName);
+            crowdTestProject.setApplicationType(applicationMap.get(crowdTestProject.getApplicationType()));
             // 判断项目是否截止
             if (crowdTestProject.getDeadTime().getTime() <= System.currentTimeMillis() && crowdTestProject.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
                 crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);

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

@@ -2,7 +2,10 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
 import com.mooctest.crowd.domain.dao.EndPointDao;
-import com.mooctest.crowd.domain.domainobject.*;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
+import com.mooctest.crowd.domain.domainobject.DistributeType;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.exception.UnauthorizedException;
@@ -25,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -65,11 +69,11 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     @Override
     public List<CrowdTaskVO> findMoreHotTasksList(String keyword) {
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
         List<CrowdTaskVO> crowdTaskVOS = taskDao.findMoreHotTasksList().stream().map(crowdTestTaskPO -> {
             CrowdTestTask task = new CrowdTestTask();
             BeanUtils.copyProperties(crowdTestTaskPO, task);
-            String typeName = commonRepo.getTypeNameByCode(task.getType());
-            task.setType(typeName);
+            task.setType(typeMap.get(task.getType()));
             // 判断任务是否截止
             if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
                 task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);

+ 3 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/TechnicalArticlesServiceImpl.java

@@ -44,6 +44,7 @@ public class TechnicalArticlesServiceImpl implements TechnicalArticlesService{
     @Override
     public TechnicalArticlesDTO getArticles(Pageable pageable,String keyword,Map<String, String> extraCondition) {
         TechnicalArticlesDTO  technicalArticlesDTO= new  TechnicalArticlesDTO();
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
         for(String key:extraCondition.keySet()) {
             String value = extraCondition.get(key);
             if(value.equals("0")){
@@ -59,16 +60,14 @@ public class TechnicalArticlesServiceImpl implements TechnicalArticlesService{
                     crowdTaskVOS = endPointShowList.stream()
                             .map(endPoint -> {
                                 CrowdTaskVO crowdTaskVO = viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode());
-                                String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
-                                crowdTaskVO.setServiceType(typeName);
+                                crowdTaskVO.setServiceType(typeMap.get(crowdTaskVO.getServiceType()));
                                 return crowdTaskVO;
                             }).filter(crowdTaskVO -> crowdTaskVO.getTitle().contains(keyword)).sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
                 }else{
                     crowdTaskVOS = endPointShowList.stream()
                             .map(endPoint -> {
                                 CrowdTaskVO crowdTaskVO = viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode());
-                                String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
-                                crowdTaskVO.setServiceType(typeName);
+                                crowdTaskVO.setServiceType(typeMap.get(crowdTaskVO.getServiceType()));
                                 return crowdTaskVO;
                             }).sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
                 }