Quellcode durchsuchen

优化获取平台总体数据的接口,并修正数据库的数据

guo00guo vor 5 Jahren
Ursprung
Commit
e9dea8e443

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/data/dto/UserDataDTO.java

@@ -1,7 +1,7 @@
 package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import com.mooctest.crowd.site.data.vo.CrowdProjectDataVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskDataVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import lombok.Data;
 
@@ -14,7 +14,7 @@ import java.util.List;
 @Data
 public class UserDataDTO {
     private UserVO userVO;
-    private List<CrowdTestTask> unfinishedTasks;
-    private List<CrowdTestTask> finishedTasks;
+    private List<CrowdTaskDataVO> unfinishedTasks;
+    private List<CrowdTaskDataVO> finishedTasks;
     private List<CrowdProjectDataVO> myProjects;
 }

+ 23 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskDataVO.java

@@ -0,0 +1,23 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author guochao
+ * @date 2020-09-21 10:46
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CrowdTaskDataVO {
+    private String code;
+    private String name;
+
+    public CrowdTaskDataVO(CrowdTestTask crowdTestTask){
+        this.code = crowdTestTask.getCode();
+        this.name = crowdTestTask.getName();
+    }
+}

+ 39 - 34
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -661,15 +661,17 @@ public class WebMediatorImpl implements ViewMediator {
                             }
                             return null;
                         }).collect(Collectors.toList());
-                unfinishedTasks = allTaskOfAgency.stream()
-                        .filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
-                        .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
-                        .map(CrowdTaskVO::new).collect(Collectors.toList());
-
-                finishedTasks = allTaskOfAgency.stream()
-                        .filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
-                        .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
-                        .map(CrowdTaskVO::new).collect(Collectors.toList());
+                if(allTaskOfAgency != null && allTaskOfAgency.size() > 0){
+                    unfinishedTasks = allTaskOfAgency.stream()
+                            .filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
+                            .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
+                            .map(CrowdTaskVO::new).collect(Collectors.toList());
+
+                    finishedTasks = allTaskOfAgency.stream()
+                            .filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
+                            .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
+                            .map(CrowdTaskVO::new).collect(Collectors.toList());
+                }
             }
         }
         myCrowdDTO.setFinishedTasks(finishedTasks);
@@ -693,34 +695,37 @@ public class WebMediatorImpl implements ViewMediator {
         if (!AuthCheckServiceImpl.isAgency(user))
             return userDataDTO;
         List<CrowdTestTask> allTaskOfAgency = null;
-        List<CrowdTestTask> unfinishedTasks = null;
-        List<CrowdTestTask> finishedTasks = null;
+        List<CrowdTaskDataVO> unfinishedTasks = null;
+        List<CrowdTaskDataVO> finishedTasks = null;
+
         if (AuthCheckServiceImpl.isAgency(user)) {
             List<TaskToUserPO> taskToUserPOS = taskToUserDao.findByUserId(user.getId());
             if (taskToUserPOS != null && taskToUserPOS.size() > 0) {
-                allTaskOfAgency = taskToUserPOS.stream().sorted(Comparator.comparing(TaskToUserPO::getAcceptTime))
-                        .map(taskToUserPO -> {
-                            CrowdTestTaskPO crowdTestTaskPO = taskDao.findByCodeAndIsDeleted(taskToUserPO.getTaskCode(), DeletedStatus.isNotDeleted);
-                            if (crowdTestTaskPO != null) {
-                                CrowdTestTask task = new CrowdTestTask();
-                                BeanUtils.copyProperties(crowdTestTaskPO, task);
-
-                                // 测试类型的转换
-                                String typeName = commonRepo.getTypeNameByCode(task.getType());
-                                task.setType(typeName);
-                                CrowdTestTask taskDetail = projectRepo.getTaskDetail(task, user.getId());
-                                return taskDetail;
-                            }
-                            return null;
-                        }).collect(Collectors.toList());
-
-                unfinishedTasks = allTaskOfAgency.stream()
-                        .filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
-                        .collect(Collectors.toList());
-
-                finishedTasks = allTaskOfAgency.stream()
-                        .filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
-                        .collect(Collectors.toList());
+                allTaskOfAgency = taskToUserPOS.stream().map(taskToUserPO -> {
+                    CrowdTestTaskPO crowdTestTaskPO = taskDao.findByCodeAndIsDeleted(taskToUserPO.getTaskCode(), DeletedStatus.isNotDeleted);
+                    if (crowdTestTaskPO != null) {
+                        CrowdTestTask task = new CrowdTestTask();
+                        BeanUtils.copyProperties(crowdTestTaskPO, task);
+                        // 判断任务是否截止
+                        if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
+                            task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
+                        }
+                        return task;
+                    }
+                    return null;
+                }).collect(Collectors.toList());
+//                System.out.println("userId: " + userId);
+                if(allTaskOfAgency != null && allTaskOfAgency.size() > 0){
+                    unfinishedTasks = allTaskOfAgency.stream()
+                            .filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
+                            .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
+                            .map(CrowdTaskDataVO::new).collect(Collectors.toList());
+
+                    finishedTasks = allTaskOfAgency.stream()
+                            .filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
+                            .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
+                            .map(CrowdTaskDataVO::new).collect(Collectors.toList());
+                }
             }
         }
         userDataDTO.setFinishedTasks(finishedTasks);

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

@@ -1,13 +1,18 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
+import com.mooctest.crowd.domain.dao.PersonalAuthenticationDao;
 import com.mooctest.crowd.domain.dao.ResourceTypeDao;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.HaveNotAgencyAuthException;
 import com.mooctest.crowd.domain.exception.HaveNotPartAuthException;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
+import com.mooctest.crowd.domain.model.PersonalAuthenticationPO;
 import com.mooctest.crowd.domain.model.ResourceTypePO;
-import com.mooctest.crowd.domain.repository.*;
+import com.mooctest.crowd.domain.repository.CommonRepo;
+import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
+import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.site.constants.CommonConstant;
 import com.mooctest.crowd.site.data.ColumnFilter;
 import com.mooctest.crowd.site.data.dto.*;
@@ -33,9 +38,6 @@ import java.util.stream.Collectors;
 @Service
 public class CommonServiceImpl implements CommonService {
     @Autowired
-    private CrowdTestTaskRepo taskRepo;
-
-    @Autowired
     private UserRepo userRepo;
 
     @Autowired
@@ -58,14 +60,11 @@ public class CommonServiceImpl implements CommonService {
     private CommonRepo commonRepo;
 
     @Autowired
-    private ApplicationTypeRepo applicationTypeRepo;
+    private PersonalAuthenticationDao personalAuthDao;
 
     @Autowired
     private WebMediatorImpl webMediator;
 
-//    @Autowired
-//    private CacheUtil cacheUtil;
-
     @Override
     public List<UserVO> getMoreUser(Pageable pageable,String keyword) {
         return  viewMediator.renderMoreUser(pageable,keyword);
@@ -190,8 +189,13 @@ public class CommonServiceImpl implements CommonService {
         DataDTO dataDTO = new DataDTO();
         List<CrowdTestProject> allCrowdTestProject = projectRepo.getAllCrowdTestProject();
         dataDTO.setProjectList(allCrowdTestProject);
-        List<UserDataDTO> userDataList = userRepo.getAllUserInfo().stream().map(userPO -> {
-            UserDataDTO personCrowdData = this.getPersonCrowdData(userPO.getId());
+        List<Long> agencyList = agencyRepo.findAll().stream().filter(evaluationAgency -> evaluationAgency.getIsAuthentication() == AuthenticationStatus.isAuthenticated
+                && evaluationAgency.getIsDeleted() == DeletedStatus.isNotDeleted).map(EvaluationAgency::getUserId).collect(Collectors.toList());
+        List<Long> personList = personalAuthDao.findAll().stream().filter(personalPO -> personalPO.getIsAuthentication() == AuthenticationStatus.isAuthenticated
+                && personalPO.getIsDeleted() == DeletedStatus.isNotDeleted).map(PersonalAuthenticationPO::getUserId).collect(Collectors.toList());
+        agencyList.addAll(personList);
+        List<UserDataDTO> userDataList = agencyList.stream().map(userId -> {
+            UserDataDTO personCrowdData = this.getPersonCrowdData(userId);
             return personCrowdData;
         }).collect(Collectors.toList());
         dataDTO.setUserDataList(userDataList);

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

@@ -1,8 +1,8 @@
 spring:
   profiles:
 #    active: dev-pre
-  #    active: online
-     active: dev-localhost
+    active: dev-online
+#     active: dev-localhost
   cache:
     guava:
       spec: expireAfterWrite=30s
@@ -144,6 +144,34 @@ user:
 website:
   domain: mooctest.net
 
+
+
+---
+spring:
+  profiles: dev-online
+  datasource:
+    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:
+    host: 59.42.10.53
+    pool: 6379
+    password: '#2019@callforttest@!'
+    jedis:
+      pool:
+        max-active: 8
+        max-idle: 8
+        max-wait: -1
+        min-idle: 0
+    database: 6
+user:
+  service:
+    baseUrl: http://59.42.10.53:8081
+
+website:
+  domain: mooctest.net
+
 ---
 spring:
   profiles: pre