梅杰 hace 8 años
padre
commit
9f61fcc0b0

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/Task2CaseDao.java

@@ -16,4 +16,6 @@ public interface Task2CaseDao extends CrudRepository<Task2Case, Long> {
     Task2Case findByTaskIdAndCaseId(long taskId, long caseId);
 
     List<Task2Case> findByTaskId(long taskId);
+
+
 }

+ 5 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/PaperService.java

@@ -1,6 +1,9 @@
 package cn.iselab.mooctest.site.service;
 
 import cn.iselab.mooctest.site.models.Paper;
+import cn.iselab.mooctest.site.web.data.CaseBlockVO;
+
+import java.util.List;
 
 /**
  * Created by major on 2017/7/6.
@@ -8,5 +11,7 @@ import cn.iselab.mooctest.site.models.Paper;
 public interface PaperService {
     Paper getById(long paperId);
 
+    Paper createOrUpdate(Paper paper);
 
+    void updateCaseAndWeight(long paperId, List<CaseBlockVO> caseBlocks);
 }

+ 24 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/PaperServiceImpl.java

@@ -1,12 +1,17 @@
 package cn.iselab.mooctest.site.service.impl;
 
 import cn.iselab.mooctest.site.dao.PaperDao;
+import cn.iselab.mooctest.site.dao.Task2CaseDao;
 import cn.iselab.mooctest.site.models.Paper;
+import cn.iselab.mooctest.site.models.Task2Case;
 import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.PaperService;
+import cn.iselab.mooctest.site.web.data.CaseBlockVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * Created by major on 2017/7/6.
  */
@@ -16,12 +21,30 @@ public class PaperServiceImpl extends BaseService implements PaperService {
     @Autowired
     PaperDao paperDao;
 
+    @Autowired
+    Task2CaseDao task2CaseDao;
+
     @Override
     public Paper getById(long paperId) {
         return paperDao.findById(paperId);
     }
 
-    public Paper create(Paper paper) {
+    @Override
+    public Paper createOrUpdate(Paper paper) {
         return paperDao.save(paper);
     }
+
+    @Override
+    public void updateCaseAndWeight(long paperId, List<CaseBlockVO> caseBlocks) {
+        for (CaseBlockVO caseBlock : caseBlocks) {
+            for(Long caseId : caseBlock.getCaseIds()) {
+                Task2Case task2Case = task2CaseDao.findByTaskIdAndCaseId(paperId, caseId);
+                task2Case.setCaseId(caseId);
+                task2Case.setTaskId(paperId);
+                task2Case.setWeight(caseBlock.getWeight());
+                task2CaseDao.save(task2Case);
+            }
+        }
+
+    }
 }

+ 13 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/PaperController.java

@@ -1,10 +1,13 @@
 package cn.iselab.mooctest.site.web.ctrl;
 
 import cn.iselab.mooctest.site.web.data.PaperVO;
+import cn.iselab.mooctest.site.web.data.TargetKibugVO;
 import cn.iselab.mooctest.site.web.logic.PaperLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * Created by major on 2017/6/15.
  */
@@ -18,4 +21,14 @@ public class PaperController {
     public PaperVO getPaperById(@PathVariable Long paperId) {
         return paperLogic.getPaperById(paperId);
     }
+
+    @RequestMapping(value= "api/paper", method = RequestMethod.POST)
+    public PaperVO createPaper(@RequestBody @NotNull PaperVO paperVO) {
+        return paperLogic.createOrUpdate(paperVO);
+    }
+
+    @RequestMapping(value= "api/paper", method = RequestMethod.PUT)
+    public PaperVO updatePaper(@RequestBody @NotNull PaperVO paperVO) {
+        return paperLogic.createOrUpdate(paperVO);
+    }
 }

+ 5 - 5
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/PaperVO.java

@@ -13,11 +13,11 @@ public class PaperVO {
     private String description;
     private List<CaseBlockVO> caseBlocks;
 
-//    private Byte difficult;
-//
-//    public Byte getDifficult() { return difficult; }
-//
-//    public void setDifficult(Byte difficult) { this.difficult = difficult; }
+    private Byte difficult;
+
+    public Byte getDifficult() { return difficult; }
+
+    public void setDifficult(Byte difficult) { this.difficult = difficult; }
 
     public Long getId() {
         return id;

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/PaperVOWrapper.java

@@ -40,6 +40,7 @@ public class PaperVOWrapper extends BaseWrapper<PaperVO, Paper> {
         vo.setId(paper.getId());
         vo.setDescription(paper.getDescription());
         vo.setOwnerId(paper.getOwnerId());
+        vo.setDifficult(paper.getDifficult());
 
         Manager manager = managerService.getManagerById(paper.getOwnerId());
         List<CaseBlock> caseBlocks = taskService.getCaseBlocks(paper.getId());
@@ -56,6 +57,7 @@ public class PaperVOWrapper extends BaseWrapper<PaperVO, Paper> {
         paper.setId(vo.getId());
         paper.setDescription(vo.getDescription());
         paper.setOwnerId(vo.getOwnerId());
+        paper.setDifficult(vo.getDifficult());
         return paper;
     }
 }

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

@@ -7,4 +7,6 @@ import cn.iselab.mooctest.site.web.data.PaperVO;
  */
 public interface PaperLogic {
     PaperVO getPaperById(long paperId);
+
+    PaperVO createOrUpdate(PaperVO paperVO);
 }

+ 13 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/PaperLogicImpl.java

@@ -1,9 +1,8 @@
 package cn.iselab.mooctest.site.web.logic.impl;
 
 import cn.iselab.mooctest.site.models.Paper;
-import cn.iselab.mooctest.site.models.Task;
 import cn.iselab.mooctest.site.service.PaperService;
-import cn.iselab.mooctest.site.service.TaskService;
+import cn.iselab.mooctest.site.web.data.CaseBlockVO;
 import cn.iselab.mooctest.site.web.data.PaperVO;
 import cn.iselab.mooctest.site.web.data.wrapper.PaperVOWrapper;
 import cn.iselab.mooctest.site.web.logic.BaseLogic;
@@ -11,6 +10,8 @@ import cn.iselab.mooctest.site.web.logic.PaperLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * Created by major on 2017/6/15.
  */
@@ -29,4 +30,14 @@ public class PaperLogicImpl extends BaseLogic implements PaperLogic {
         PaperVO paperVO = paperVOWrapper.wrap(paper);
         return paperVO;
     }
+
+    @Override
+    public PaperVO createOrUpdate(PaperVO paperVO) {
+        Paper paper = paperVOWrapper.unwrap(paperVO);
+        List<CaseBlockVO> caseBlocks = paperVO.getCaseBlocks();
+        paperService.createOrUpdate(paper);
+        paperService.updateCaseAndWeight(paperVO.getId(), caseBlocks);
+        PaperVO paperVO1 = paperVOWrapper.wrap(paperService.getById(paperVO.getId()));
+        return paperVO1;
+    }
 }