Browse Source

feat: 题目简介列表,题目详情

haha 4 years ago
parent
commit
e2c8404625

+ 2 - 2
seec-oj-server/src/main/java/cn/seecoder/ojserver/controller/JudgeController.java

@@ -23,10 +23,10 @@ public class JudgeController {
     }
 
     @PostMapping("/code")
-    public Response judgeCode(@RequestParam(value = "questionId") Integer questionId, @RequestBody CodeJudgeVO codeJudgeVO) {
+    public Response judgeCode(@RequestParam(value = "problemId") Integer problemId, @RequestBody CodeJudgeVO codeJudgeVO) {
         Call call = MonitorClient.createCall(SeecSystem.CODER,"ojtest","/api/judge/code");
         call.start();
-        Response res = Response.buildSuccess(judgeService.judgeCode(questionId, codeJudgeVO));
+        Response res = Response.buildSuccess(judgeService.judgeCode(problemId, codeJudgeVO));
         call.end();
         return res;
     }

+ 8 - 3
seec-oj-server/src/main/java/cn/seecoder/ojserver/controller/ProblemController.java

@@ -1,11 +1,9 @@
 package cn.seecoder.ojserver.controller;
 
-import cn.seecoder.ojserver.dao.entity.TestCase;
 import cn.seecoder.ojserver.model.vo.ProblemVO;
 import cn.seecoder.ojserver.model.vo.TestCaseVO;
 import cn.seecoder.ojserver.service.ProblemService;
 import cn.seecoder.ojserver.web.Response;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
@@ -24,7 +22,13 @@ public class ProblemController {
 
     @GetMapping("")
     public Response getAll(){
-        return Response.buildSuccess(this.problemService.getAllProblems());
+        return Response.buildSuccess(this.problemService.getAllProblemsBasic());
+    }
+
+    @GetMapping("/{problemId:\\d+}")
+    public Response getProblemById(@PathVariable int problemId){
+        System.out.println(this.problemService.getProblemById(problemId));
+        return Response.buildSuccess(this.problemService.getProblemById(problemId));
     }
 
     @PostMapping("/testcase")
@@ -40,4 +44,5 @@ public class ProblemController {
 
 
 
+
 }

+ 9 - 0
seec-oj-server/src/main/java/cn/seecoder/ojserver/dao/ProblemDAO.java

@@ -1,10 +1,19 @@
 package cn.seecoder.ojserver.dao;
 
 import cn.seecoder.ojserver.dao.entity.Problem;
+import cn.seecoder.ojserver.model.dto.ProblemDTO;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import javax.persistence.PersistenceContext;
+import java.util.List;
+import java.util.Map;
 
 public interface ProblemDAO extends JpaRepository<Problem,Integer> {
+
     Problem findById(int id);
 
+    @Query(value = "select p.id AS id,p.name AS name from Problem AS p order by p.id")
+    List<Map<String,Object>> findProblemList();
 
 }

+ 4 - 0
seec-oj-server/src/main/java/cn/seecoder/ojserver/dao/entity/Problem.java

@@ -15,6 +15,10 @@ public class Problem {
     @Column(name = "id")
     private Integer id;
 
+    @Basic
+    @Column(name = "name")
+    private String name;
+
     @Basic
     @Column(name = "description")
     private String description;

+ 23 - 0
seec-oj-server/src/main/java/cn/seecoder/ojserver/model/dto/ProblemDTO.java

@@ -0,0 +1,23 @@
+package cn.seecoder.ojserver.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@Entity
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+public class ProblemDTO {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    private String name;
+
+
+}

+ 2 - 0
seec-oj-server/src/main/java/cn/seecoder/ojserver/model/vo/ProblemVO.java

@@ -12,6 +12,8 @@ import lombok.NoArgsConstructor;
 public class ProblemVO {
     private Integer id;
 
+    private String name;
+
     private String description;
 
     /**

+ 5 - 1
seec-oj-server/src/main/java/cn/seecoder/ojserver/service/ProblemService.java

@@ -2,15 +2,19 @@ package cn.seecoder.ojserver.service;
 
 import cn.seecoder.ojserver.dao.entity.Problem;
 import cn.seecoder.ojserver.dao.entity.TestCase;
+import cn.seecoder.ojserver.model.dto.ProblemDTO;
 import cn.seecoder.ojserver.model.vo.ProblemVO;
 import cn.seecoder.ojserver.model.vo.TestCaseVO;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ProblemService {
     public ProblemVO create(ProblemVO problemVO);
 
-    public List<ProblemVO> getAllProblems();
+    public List<Map<String,Object>> getAllProblemsBasic();
+
+    public ProblemVO getProblemById(int problemId);
 
     public TestCaseVO addTestCase(TestCaseVO testCaseVO);
 

+ 10 - 3
seec-oj-server/src/main/java/cn/seecoder/ojserver/service/impl/ProblemServiceImpl.java

@@ -6,6 +6,7 @@ import cn.seecoder.ojserver.dao.entity.TestCase;
 import cn.seecoder.ojserver.dao.TestCaseDAO;
 import cn.seecoder.ojserver.mapper.ProblemMapper;
 import cn.seecoder.ojserver.mapper.TestCaseMapper;
+import cn.seecoder.ojserver.model.dto.ProblemDTO;
 import cn.seecoder.ojserver.model.vo.ProblemVO;
 import cn.seecoder.ojserver.model.vo.TestCaseVO;
 import cn.seecoder.ojserver.service.ProblemService;
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class ProblemServiceImpl implements ProblemService {
@@ -36,9 +38,14 @@ public class ProblemServiceImpl implements ProblemService {
     }
 
     @Override
-    public List<ProblemVO> getAllProblems() {
-        List<Problem> problemList=this.problemDAO.findAll();
-        return ProblemMapper.INSTANCE.toVOList(problemList);
+    public List<Map<String,Object>> getAllProblemsBasic() {
+        return this.problemDAO.findProblemList();
+    }
+
+    @Override
+    public ProblemVO getProblemById(int problemId) {
+        System.out.println(this.problemDAO.findById(problemId));
+        return ProblemMapper.INSTANCE.toVO(this.problemDAO.findById(problemId));
     }
 
     @Override