Bladeren bron

Merge branch 'feature-V2.0' of http://git.mooctest.com/crowd-2019/crowd-test-service-backend into feature-V2.0

 Conflicts:
	site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
xuxuan 5 jaren geleden
bovenliggende
commit
6f59c30aa0

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/SiteApplication.java

@@ -5,9 +5,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
+@EnableScheduling
 @SpringBootApplication(scanBasePackages = "com.mooctest.crowd")
-@EnableCaching
 public class SiteApplication {
 
 	public static void main(String[] args) {

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

@@ -23,6 +23,7 @@ import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.ThemeStatusService;
+import com.mooctest.crowd.site.service.ThemeStatusTaskService;
 import lombok.extern.slf4j.Slf4j;
 import org.codehaus.jettison.json.JSONException;
 import org.jetbrains.annotations.NotNull;
@@ -45,8 +46,6 @@ import java.util.stream.Collectors;
 @Component("WebMediator")
 public class WebMediatorImpl implements ViewMediator {
     @Autowired
-    private ThemeStatusService themeStatusService;
-    @Autowired
     private TestTypeDao testTypeDao;
 
     @Autowired
@@ -123,6 +122,12 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private UserToRoleDao userToRoleDao;
 
+    @Autowired
+    private ThemeStatusService themeStatusService;
+
+    @Autowired
+    private ThemeStatusTaskService themeStatusTaskService;
+
 
     @Override
     public List<CrowdTestProjectVO> crowdTestProjects() {
@@ -549,6 +554,7 @@ public class WebMediatorImpl implements ViewMediator {
                     CrowdTestProject project = new CrowdTestProject();
                     BeanUtils.copyProperties(crowdTestProjectPO, project);
                     CrowdProjectVO projectVO = new CrowdProjectVO(project);
+                    themeStatusService.updateStatus(project);
                     if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED)
                         projectVO.setNeedHandle(true);
                     // 应用类型值的转换
@@ -621,7 +627,6 @@ public class WebMediatorImpl implements ViewMediator {
                             if (crowdTestTaskPO != null) {
                                 CrowdTestTask task = new CrowdTestTask();
                                 BeanUtils.copyProperties(crowdTestTaskPO, task);
-
                                 // 测试类型的转换
                                 Optional<TestTypePO> testTypePO = testTypeDao.findByCode(task.getType());
                                 if (!testTypePO.isPresent()) {
@@ -1070,12 +1075,11 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public List<CrowdTestProjectVO> AllByPage(){
+    public List<CrowdTestProjectVO> AllByPage() {
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
         authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO -> {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
-            themeStatusService.updateStatus(crowdTestProject);
             return new CrowdTestProjectVO(crowdTestProject);
         }).collect(Collectors.toList()));
         return authingList;

+ 7 - 0
site/src/main/java/com/mooctest/crowd/site/service/ThemeStatusTaskService.java

@@ -0,0 +1,7 @@
+package com.mooctest.crowd.site.service;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+
+
+public interface ThemeStatusTaskService {
+    Integer updateStatus(CrowdTestTask crowdTestTask);
+}

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

@@ -96,7 +96,7 @@ public class ThemeSchedulerServiceImpl implements ThemeSchedulerService {
 
             private CrowdTestProject crowdTestProject;
 
-            //public MyRunnable() {}
+            public MyRunnable() {}
 
             public MyRunnable (CrowdTestProject crowdTestProject) {
                 this.crowdTestProject = crowdTestProject;

+ 31 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/ThemeStatusTaskServiceImpl.java

@@ -0,0 +1,31 @@
+package com.mooctest.crowd.site.service.impl;
+
+import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.site.service.ThemeStatusTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: crowd
+ * @author: hanyuwei
+ * @create: 2020-07-13 13:11
+ **/
+@Service
+public class ThemeStatusTaskServiceImpl implements ThemeStatusTaskService {
+
+    @Autowired
+    private CrowdTestTaskDao crowdTestTaskDao;
+
+    @Override
+    public Integer updateStatus(CrowdTestTask crowdTestTask) {
+        int status = 0;
+        long curr = System.currentTimeMillis();
+        if (crowdTestTask.getDeadTime().getTime() < curr) {
+            status = CrowdTestProject.HAS_TIME_OUT;
+        }
+        crowdTestTaskDao.updateStatusById(status,crowdTestTask.getCode());
+        return status;
+    }
+}