Selaa lähdekoodia

Merge branch 'master' into 'Test'

Master

See merge request crowd-2019/crowd-test-service-backend!158
郭超 4 vuotta sitten
vanhempi
commit
8815b3b618

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/PermissionDao.java

@@ -14,5 +14,8 @@ public interface PermissionDao extends CrudRepository<PermissionPO, Long>{
     Optional<PermissionPO> findById(Long id);
 
     @Override
+    Iterable<PermissionPO> findAllById(Iterable<Long> iterable);
+
+    @Override
     <S extends PermissionPO> S save(S s);
 }

+ 16 - 4
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -21,10 +21,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -259,6 +256,11 @@ public class CommonRepo {
         return testTypePO.get().getName();
     }
 
+    public Map<String, String> getTypeCodeNameMap() {
+        return testTypeDao.findAll().stream()
+                .collect(Collectors.toMap(testTypePO -> testTypePO.getCode(), testTypePO -> testTypePO.getName()));
+    }
+
     public String getApplicationNameByCode(String code) {
         Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByCode(code);
         if (!applicationTypePO.isPresent()) {
@@ -267,6 +269,11 @@ public class CommonRepo {
         return applicationTypePO.get().getName();
     }
 
+    public Map<String, String> getApplicationCodeNameMap() {
+        return applicationTypeDao.findAll().stream()
+                .collect(Collectors.toMap(applicationTypePO -> applicationTypePO.getCode(), applicationTypePO -> applicationTypePO.getName()));
+    }
+
     public String getFieldCodeByFieldName(String name) {
         Optional<FieldPO> fieldPO = fieldDao.findByName(name);
         if (!fieldPO.isPresent()) {
@@ -285,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()) {

+ 8 - 14
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -3,7 +3,6 @@ package com.mooctest.crowd.domain.repository;
 import com.google.common.collect.Lists;
 import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
-import com.mooctest.crowd.domain.exception.PermissionNotFoundException;
 import com.mooctest.crowd.domain.exception.RoleNotFoundException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
 import com.mooctest.crowd.domain.model.*;
@@ -13,10 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author: xuexb
@@ -261,6 +258,8 @@ public class UserRepo implements IUserRepo {
     private User saveRoleAndPermissionAndEvaluationAgencyByUser(User user) throws RoleNotFoundException {
         UserPO userPO = userDao.save(Converter.convert(UserPO.class, user));
         List<Role> roleList = user.getRoleList();
+        Map<Long, String> collect = roleList.stream().collect(Collectors.toMap(Role::getId, Role::getName, (v1,v2) -> v2));
+
         if (roleList == null || roleList.size() == 0) {
             UserToRolePO u2r = new UserToRolePO();
             u2r.setUserId(userPO.getId());
@@ -345,15 +344,10 @@ public class UserRepo implements IUserRepo {
     private Role getPermissionByRole(Role roleResult) {
         List<Permission> permissionResultList = new ArrayList<>();
         List<RoleToPermissionPO> roleToPermissionPOList = roleToPermissionDao.findAllByRoleId(roleResult.getId());
-        for (RoleToPermissionPO roleToPermissionPO : roleToPermissionPOList) {
-            Long permissionId = roleToPermissionPO.getPermissionId();
-            Optional<PermissionPO> permissionPOOptional = permissionDao.findById(permissionId);
-            if (!permissionPOOptional.isPresent()) {
-                throw new PermissionNotFoundException();
-            } else {
-                PermissionPO permissionPO = permissionPOOptional.get();
-                permissionResultList.add(Converter.convert(Permission.class, permissionPO));
-            }
+        List<Long> permissionIds = roleToPermissionPOList.stream().map(RoleToPermissionPO::getPermissionId).collect(Collectors.toList());
+
+        for (PermissionPO permissionPO : permissionDao.findAllById(permissionIds)) {
+            permissionResultList.add(Converter.convert(Permission.class, permissionPO));
         }
         roleResult.setPermissionList(permissionResultList);
         return roleResult;

+ 4 - 2
site/src/main/java/com/mooctest/crowd/site/data/enums/ProjectType.java

@@ -20,7 +20,9 @@ public enum ProjectType {
     FXPG("FXPG", "风险评估", 11),
     DBCP("DBCP", "等保测评", 12),
     PGPJ("PGPJ", "评估评价", 13),
-    DZCS("DZCS", "定制测试", 14);
+    DZCS("DZCS", "定制测试", 14),
+    BDSPT("BDSPT", "北斗众测", 15),
+    MCZC("MCZC", "慕测众测", 16);
 
     private String typeCode;
     private String typeName;
@@ -53,7 +55,7 @@ public enum ProjectType {
 
     public static String getCode(String typeName) {
         for (ProjectType pt : ProjectType.values()) {
-            if (pt.getTypeName().equals(typeName)) {
+            if (pt.getTypeCode().equals(typeName)) {
                 return pt.getTypeCode();
             }
         }

+ 37 - 26
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -564,6 +564,11 @@ public class WebMediatorImpl implements ViewMediator {
         MyCrowdDTO myCrowdDTO = new MyCrowdDTO();
         User user = userRepo.getByID(userId);
         //我的众测 - 项目相关信息
+        
+        // 获取应用、测试类型code 和 name 的map
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
+
         //获取我创建的项目列表
         List<CrowdProjectVO> myProjects = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
                 .stream().map(crowdTestProjectPO -> {
@@ -574,7 +579,8 @@ public class WebMediatorImpl implements ViewMediator {
                     if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED)
                         projectVO.setNeedHandle(true);
                     // 应用类型值的转换
-                    projectVO = changeApplicationType(projectVO);
+                    projectVO = changeApplicationType(projectVO, applicationMap);
+
                     // 判断项目是否截止
                     if (projectVO.getDatetime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
                         project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
@@ -600,12 +606,14 @@ public class WebMediatorImpl implements ViewMediator {
                 CrowdTestProject project = new CrowdTestProject();
                 BeanUtils.copyProperties(crowdTestProjectPO, project);
                 CrowdProjectVO projectVO = new CrowdProjectVO(project);
-                projectVO = changeApplicationType(projectVO);
-                List<CrowdTestTaskPO> tasksOfProject = taskDao.findByCrowdTestProjectCodeAndIsDeleted(project.getCode(), DeletedStatus.isNotDeleted);
-                if (tasksOfProject != null && tasksOfProject.stream().anyMatch(task -> task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
-//                    log.info("\n\n需要处理!!!\n\n");
-                    projectVO.setNeedHandle(true);
-                }
+                // 应用类型值的转换
+                projectVO = changeApplicationType(projectVO, applicationMap);
+
+//                List<CrowdTestTaskPO> tasksOfProject = taskDao.findByCrowdTestProjectCodeAndIsDeleted(project.getCode(), DeletedStatus.isNotDeleted);
+//                if (tasksOfProject != null && tasksOfProject.stream().anyMatch(task -> task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
+////                    log.info("\n\n需要处理!!!\n\n");
+//                    projectVO.setNeedHandle(true);
+//                }
                 return projectVO;
             }).collect(Collectors.toList()));
             //获取区域管理员可以接收领取的项目列表
@@ -622,7 +630,7 @@ public class WebMediatorImpl implements ViewMediator {
                         CrowdTestProject project = new CrowdTestProject();
                         BeanUtils.copyProperties(crowdTestProjectPO, project);
                         CrowdProjectVO projectVO = new CrowdProjectVO(project);
-                        projectVO = changeApplicationType(projectVO);
+                        projectVO = changeApplicationType(projectVO, applicationMap);
                         return projectVO;
                     }).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjectNoticeCount(Long.parseLong("" + acceptableProject.size()));
@@ -651,8 +659,7 @@ public class WebMediatorImpl implements ViewMediator {
                                 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);
@@ -660,7 +667,7 @@ public class WebMediatorImpl implements ViewMediator {
                                 return task;
                             }
                             return null;
-                        }).collect(Collectors.toList());
+                        }).filter(Objects::nonNull).collect(Collectors.toList());
                 if(allTaskOfAgency != null && allTaskOfAgency.size() > 0){
                     unfinishedTasks = allTaskOfAgency.stream()
                             .filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
@@ -713,7 +720,7 @@ public class WebMediatorImpl implements ViewMediator {
                         return task;
                     }
                     return null;
-                }).collect(Collectors.toList());
+                }).filter(Objects::nonNull).collect(Collectors.toList());
 //                System.out.println("userId: " + userId);
                 if(allTaskOfAgency != null && allTaskOfAgency.size() > 0){
                     unfinishedTasks = allTaskOfAgency.stream()
@@ -733,9 +740,9 @@ public class WebMediatorImpl implements ViewMediator {
         return userDataDTO;
     }
 
-    private CrowdProjectVO changeApplicationType(CrowdProjectVO projectVO) {
+    public CrowdProjectVO changeApplicationType(CrowdProjectVO projectVO, Map<String, String> applicationMap) {
         // 应用类型值的转换
-        String applicationName = commonRepo.getApplicationNameByCode(projectVO.getPlatform());
+        String applicationName = applicationMap.get(projectVO.getPlatform());
         projectVO.setPlatform(applicationName);
         return projectVO;
     }
@@ -743,12 +750,13 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public TaskSquareDTO renderTaskSquare() {
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
+
         List<CrowdTaskVO> taskVOList = taskDao.findAllByIsDeleted(0).stream().map(crowdTestTaskPO -> {
             CrowdTestTask task = CrowdTestProjectFactory.defaultTask();
             BeanUtils.copyProperties(crowdTestTaskPO, task);
             // 测试类型的转换
-            String typeName = commonRepo.getTypeNameByCode(task.getType());
-            task.setType(typeName);
+            task.setType(typeMap.get(task.getType()));
             return task;
         }).collect(Collectors.toList()).stream().filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RELEASED ||
                 (crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED && crowdTestTask.getFullStatus() == CrowdTestTaskAcceptStatus.NOT_FULL))
@@ -761,6 +769,9 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, User user) {
+
+        Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
+        Map<String, String> typeMap = commonRepo.getTypeCodeNameMap();
         boolean saveFlag = false;
         // 判断项目是否截止
         if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
@@ -784,8 +795,9 @@ public class WebMediatorImpl implements ViewMediator {
                 crowdTaskVO.setInstitution(agencyPO == null ? "该机构已注销" : agencyPO.getEvaluationAgencyName());
             }
             // 测试类型的转换
-            String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
-            crowdTaskVO.setServiceType(typeName);
+            crowdTaskVO.setServiceType(typeMap.get(crowdTaskVO.getServiceType()));
+//            String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
+//            crowdTaskVO.setServiceType(typeName);
             taskVOList.add(crowdTaskVO);
         }
 
@@ -806,9 +818,10 @@ public class WebMediatorImpl implements ViewMediator {
                 .stream().filter(task -> task.getStatus() > CrowdTestTaskStatus.HAS_CREATED && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED).count()));
 
         // 应用类型值的转换
-        projectVO = changeApplicationType(projectVO);
+        projectVO = changeApplicationType(projectVO, applicationMap);
 
         // 领域类型值的转换
+
         Optional<FieldPO> fieldPO = fieldDao.findByCode(projectVO.getField());
         if (fieldPO.isPresent()) {
             projectVO.setField(fieldPO.get().getName());
@@ -817,9 +830,7 @@ public class WebMediatorImpl implements ViewMediator {
         }
 
         // 测试类型的转换
-        List<String> testStringList = projectVO.getType().stream().map(testType -> {
-            return commonRepo.getTypeNameByCode(testType);
-        }).collect(Collectors.toList());
+        List<String> testStringList = projectVO.getType().stream().map(testType -> typeMap.get(testType)).collect(Collectors.toList());
 
         projectVO.setType(testStringList);
 
@@ -1104,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;
@@ -1134,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());
                 }

+ 1 - 2
site/src/main/resources/application.yml

@@ -72,7 +72,6 @@ spring:
   profiles: dev
   datasource:
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
-
     username: mooctest
     password: secr3t!
   redis:
@@ -97,7 +96,7 @@ website:
 spring:
   profiles: dev-localhost
   datasource:
-    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-online?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
     username: mooctest
     password: secr3t!
   redis: