Browse Source

Merge branch 'auto-compete' into 'DEV'

考试状态由进行中改为阅卷中时,触发竞争分析算分



See merge request !505

梅杰 7 years ago
parent
commit
1cad348916

+ 6 - 0
mooctest-site-server/pom.xml

@@ -297,6 +297,12 @@
             <artifactId>commons-math3</artifactId>
             <version>3.6</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <version>1.3.5.RELEASE</version>
+            <optional>true</optional>
+        </dependency>
     </dependencies>
 
     <build>

+ 13 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/ExamStatusServiceImpl.java

@@ -2,7 +2,9 @@ package cn.iselab.mooctest.site.service.impl;
 
 import cn.iselab.mooctest.site.dao.ExamDao;
 import cn.iselab.mooctest.site.models.Task;
+import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.ExamStatusService;
+import cn.iselab.mooctest.site.web.logic.CalculateSocreLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -10,10 +12,13 @@ import org.springframework.stereotype.Service;
  * Created by shanshan on 2017/7/17.
  */
 @Service
-public class ExamStatusServiceImpl implements ExamStatusService {
+public class ExamStatusServiceImpl extends BaseService implements ExamStatusService {
 
     @Autowired
     private ExamDao examDao;
+
+    @Autowired CalculateSocreLogic calculateSocreLogic;
+
     @Override
     public Integer updateStatus(Task task) {
         int status = 0;
@@ -29,6 +34,13 @@ public class ExamStatusServiceImpl implements ExamStatusService {
         } else {
             status = Task.STATUS_SCORING;
         }
+        if (task.getStatus().equals(Task.STATUS_ONGOING) && status == Task.STATUS_SCORING) {
+            try {
+                calculateSocreLogic.competeAnalysis(task.getId());
+            } catch (Exception e) {
+                LOG.error("计算竞争分析出错,task id : "+ task.getId() + " " + e.getMessage());
+            }
+        }
         examDao.updateStatusById(task.getId(),status);
         return status;
     }

+ 1 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/ScoreController.java

@@ -81,9 +81,7 @@ public class ScoreController extends BaseController {
     @RequestMapping(value = UrlConstants.API + "competeAnalysis", method = RequestMethod.GET)
     public List<AssignedTaskVO> competeAnalysis(@RequestParam(value = "examId") Long examId) {
 
-        calculateSocreLogic.difficultCompeteAnalysis(examId);
-
-        return calculateSocreLogic.timeCompeteAnalysis(examId);
+        return calculateSocreLogic.competeAnalysis(examId);
     }
 
     @RequestMapping(value = UrlConstants.API + "competeAnalysisAssignedTask", method = RequestMethod.GET)

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/CalculateSocreLogic.java

@@ -25,6 +25,8 @@ public interface CalculateSocreLogic {
 
     void calculateAllMutationScore(long examId, long caseId) throws IOException;
 
+    List<AssignedTaskVO> competeAnalysis(long examId);
+
     List<AssignedTaskVO> difficultCompeteAnalysis(Long examId);
 
     List<AssignedTaskVO>timeCompeteAnalysis(Long examId);

+ 4 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/CalculateScoreLogicImpl.java

@@ -202,6 +202,10 @@ public class CalculateScoreLogicImpl implements CalculateSocreLogic {
 
     }
 
+    public List<AssignedTaskVO> competeAnalysis(long examId) {
+        this.difficultCompeteAnalysis(examId);
+        return this.timeCompeteAnalysis(examId);
+    }
 
     @Override
     public List<AssignedTaskVO> difficultCompeteAnalysis(Long examId) {