tangss 8 years ago
parent
commit
821248537b

+ 8 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/CaseController.java

@@ -22,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
@@ -42,6 +39,7 @@ public class CaseController extends BaseController {
     @Autowired
     private CaseLogic caseLogic;
 
+    //obsoleted
     @RequestMapping(value = UrlConstants.API_MANAGER + "case/public", method = RequestMethod.GET)
     public List<CaseVO> getManagerPublicCases() {
         return caseLogic.getManagerPublicCases();
@@ -53,6 +51,7 @@ public class CaseController extends BaseController {
         return caseLogic.getCases(caseIds);
     }
 
+    //obsoleted
     @RequestMapping(value = UrlConstants.API_MANAGER + "case/private", method = RequestMethod.GET)
     public List<CaseVO> getManagerPrivateCase(HttpServletRequest request) {
         long managerId = RequestUtils.getManagerId(request);
@@ -75,6 +74,11 @@ public class CaseController extends BaseController {
         return caseLogic.searchCases(isPublic, userId ,subjectId, pageable);
     }
 
+    @RequestMapping(value = UrlConstants.API+"case/{caseId}", method = RequestMethod.GET)
+    public CaseExtendsVO get(@PathVariable("caseId") long caseId, HttpServletRequest request) throws Exception{
+        return caseLogic.getCaseExtends(caseId);
+    }
+
     //--------------------------------------------case 数据迁移---------------------------------------------------------------
 
     @Autowired

+ 3 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/CaseLogic.java

@@ -1,5 +1,6 @@
 package cn.iselab.mooctest.site.web.logic;
 
+import cn.iselab.mooctest.site.models.CaseExtends;
 import cn.iselab.mooctest.site.web.data.CaseExtendsVO;
 import cn.iselab.mooctest.site.web.data.CaseVO;
 import org.springframework.data.domain.Page;
@@ -23,4 +24,6 @@ public interface CaseLogic {
     List<CaseExtendsVO> getCasesByTaskId(Long taskId);
 
     Page<CaseExtendsVO> searchCases(Boolean isPublic, Long userId, Long subjectId, Pageable pageable);
+
+    CaseExtendsVO getCaseExtends(Long caseId);
 }

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

@@ -109,6 +109,14 @@ public class CaseLogicImpl implements CaseLogic {
         return caseExtendsVOs;
     }
 
+    @Override
+    public CaseExtendsVO getCaseExtends(Long caseId) {
+        CaseExtends caseExtends = caseService.getCaseExtendsById(caseId);
+        if(caseExtends==null)
+            throw new IllegalArgumentException();
+        return Converter.convert(CaseExtendsVO.class, caseExtends);
+    }
+
     private void injectManagerNames(List<CaseVO> caseVOs) {
 
         Set<Long> managerIds = caseVOs.stream().map(CaseVO::getManagerId).filter(id -> id != null).