Kaynağa Gözat

增加修改领域模型,增加API接口和服务类

宋悦 8 yıl önce
ebeveyn
işleme
7316f533a1

+ 5 - 0
exam-work-api/pom.xml

@@ -12,6 +12,11 @@
     <artifactId>exam-work-api</artifactId>
 
     <dependencies>
+        <dependency>
+            <artifactId>exam-work-domain</artifactId>
+            <groupId>cn.com.qmth.examcloud.service</groupId>
+            <version>0.1.0</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-feign</artifactId>

+ 57 - 3
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/core/api/ExamApi.java

@@ -1,12 +1,66 @@
 package cn.com.qmth.examcloud.service.core.api;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import cn.com.qmth.examcloud.service.core.dao.ExamRepo;
+import cn.com.qmth.examcloud.service.core.entity.Exam;
+import cn.com.qmth.examcloud.service.core.service.ExamService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
 
 /**
  * Created by songyue on 17/1/13.
  */
 @RestController
-@RequestMapping("${app.api.root}/exam")
+@RequestMapping("${app.api.root}")
 public class ExamApi {
+
+    @Autowired
+    ExamRepo examRepo;
+
+    @Autowired
+    ExamService examService;
+
+    @ApiOperation(value="查询所有考试批次",notes = "分页")
+    @GetMapping("/exam/all/{curPage}/{pageSize}")
+    public ResponseEntity getAllExam(@ModelAttribute Exam examCriteria, @PathVariable Integer curPage,@PathVariable Integer pageSize){
+        return examService.getAllExam(examCriteria,new PageRequest(curPage - 1,pageSize));
+    }
+
+    @ApiOperation(value="查询所有考试批次",notes = "不分页")
+    @GetMapping("/exam/all")
+    public ResponseEntity getAllExam(@ModelAttribute Exam examCriteria){
+        return examService.getAllExam(examCriteria);
+    }
+
+    @ApiOperation(value="按ID查询考试批次",notes = "ID查询")
+    @GetMapping("/exam/{examId}")
+    public ResponseEntity<Exam> getExamById(@PathVariable Long examId){
+        return examService.getExamById(examId);
+    }
+
+    @ApiOperation(value="新增考试批次",notes = "新增")
+    @PostMapping("/exam")
+    public ResponseEntity addExam(@ModelAttribute Exam exam){
+        return examService.saveExam(exam);
+    }
+
+    @ApiOperation(value="更新考试批次",notes = "更新")
+    @PutMapping("/exam")
+    public ResponseEntity updateExam(@ModelAttribute Exam exam){
+        return examService.saveExam(exam);
+    }
+
+    @ApiOperation(value="按ID删除考试批次",notes = "删除")
+    @DeleteMapping("/exam/{examId}")
+    public ResponseEntity deleteExam(@PathVariable Long examId){
+        return examService.deleteExam(examId);
+    }
 }

+ 52 - 3
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/core/api/ExamScoreApi.java

@@ -1,12 +1,61 @@
 package cn.com.qmth.examcloud.service.core.api;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import cn.com.qmth.examcloud.service.core.dao.ExamScoreRepo;
+import cn.com.qmth.examcloud.service.core.entity.ExamScore;
+import cn.com.qmth.examcloud.service.core.service.ExamScoreService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * Created by songyue on 17/1/13.
  */
 @RestController
-@RequestMapping("${app.api.root}/examscore")
+@RequestMapping("${app.api.root}")
 public class ExamScoreApi {
+
+    @Autowired
+    ExamScoreRepo examScoreRepo;
+
+    @Autowired
+    ExamScoreService examScoreService;
+
+    @Autowired
+    @ApiOperation(value="查询所有考试分数",notes = "分页")
+    @GetMapping("/examscore/all/{curPage}/{pageSize}")
+    public ResponseEntity getAllExam(@ModelAttribute ExamScore examCriteria, @PathVariable Integer curPage, @PathVariable Integer pageSize){
+        return examScoreService.getAllExamScore(examCriteria,new PageRequest(curPage - 1,pageSize));
+    }
+
+    @ApiOperation(value="查询所有考试分数",notes = "不分页")
+    @GetMapping("/examscore/all")
+    public ResponseEntity getAllExamScore(@ModelAttribute ExamScore examCriteria){
+        return examScoreService.getAllExamScore(examCriteria);
+    }
+
+    @ApiOperation(value="按ID查询考试分数",notes = "ID查询")
+    @GetMapping("/examscore/{id}")
+    public ResponseEntity<ExamScore> getExamScoreById(@PathVariable Long id){
+        return examScoreService.getExamScoreById(id);
+    }
+
+    @ApiOperation(value="新增考试分数",notes = "新增")
+    @PostMapping("/examscore")
+    public ResponseEntity addExamScore(@ModelAttribute ExamScore examScore){
+        return examScoreService.saveExamScore(examScore);
+    }
+
+    @ApiOperation(value="更新考试分数",notes = "更新")
+    @PutMapping("/examscore")
+    public ResponseEntity updateExamScore(@ModelAttribute ExamScore examScore){
+        return examScoreService.saveExamScore(examScore);
+    }
+
+    @ApiOperation(value="按ID删除考试分数",notes = "删除")
+    @DeleteMapping("/examscore/{id}")
+    public ResponseEntity deleteExamScore(@PathVariable Long id){
+        return examScoreService.deleteExamScore(id);
+    }
 }

+ 84 - 0
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/core/service/ExamScoreService.java

@@ -0,0 +1,84 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import cn.com.qmth.examcloud.service.core.dao.ExamScoreRepo;
+import cn.com.qmth.examcloud.service.core.entity.ExamScore;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
+
+/**
+ * Created by songyue on 17/1/14.
+ */
+@Service
+public class ExamScoreService {
+    @Autowired
+    ExamScoreRepo examScoreRepo;
+
+    /**
+     * 获取所有考试分数(分页)
+     * @param examCriteria
+     * @param pageable
+     * @return
+     */
+    public ResponseEntity getAllExamScore(ExamScore examCriteria, Pageable pageable){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<ExamScore> examExamScoreple = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examScoreRepo.findAll(examExamScoreple,pageable), HttpStatus.OK);
+    }
+
+    /**
+     * 获取所有考试分数
+     * @param examCriteria
+     * @return
+     */
+    public ResponseEntity getAllExamScore(ExamScore examCriteria){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<ExamScore> examExamScoreple = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examScoreRepo.findAll(examExamScoreple), HttpStatus.OK);
+    }
+
+    /**
+     * 按ID获取考试分数
+     * @param scoreId
+     * @return
+     */
+    public ResponseEntity<ExamScore> getExamScoreById(Long scoreId){
+        return new ResponseEntity<ExamScore>(examScoreRepo.findOne(scoreId),HttpStatus.OK);
+    }
+
+    /**
+     * 保存考试分数
+     * @param exam
+     * @return
+     */
+    public ResponseEntity saveExamScore(ExamScore exam){
+        return new ResponseEntity(examScoreRepo.save(exam),HttpStatus.OK);
+    }
+
+    /**
+     * 删除考试分数
+     * @param examId
+     * @return
+     */
+    public ResponseEntity deleteExamScore(Long examId){
+        examScoreRepo.delete(examId);
+        return new ResponseEntity(HttpStatus.OK);
+    }
+
+    /**
+     * 删除所有考试分数
+     * @return
+     */
+    public ResponseEntity deleteAllExamScore(){
+        examScoreRepo.deleteAll();
+        return new ResponseEntity(HttpStatus.OK);
+    }
+}

+ 75 - 0
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/core/service/ExamService.java

@@ -1,10 +1,85 @@
 package cn.com.qmth.examcloud.service.core.service;
 
+import cn.com.qmth.examcloud.service.core.dao.ExamRepo;
+import cn.com.qmth.examcloud.service.core.entity.Exam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
+
 /**
+ * 考试批次服务类
  * Created by songyue on 17/1/13.
  */
 @Service
 public class ExamService {
+    @Autowired
+    ExamRepo examRepo;
+
+    /**
+     * 获取所有考试批次(分页)
+     * @param examCriteria
+     * @param pageable
+     * @return
+     */
+    public ResponseEntity getAllExam(Exam examCriteria, Pageable pageable){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<Exam> examExample = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examRepo.findAll(examExample,pageable), HttpStatus.OK);
+    }
+
+    /**
+     * 获取所有考试批次
+     * @param examCriteria
+     * @return
+     */
+    public ResponseEntity getAllExam(Exam examCriteria){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<Exam> examExample = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examRepo.findAll(examExample), HttpStatus.OK);
+    }
+
+    /**
+     * 按ID获取考试批次
+     * @param examId
+     * @return
+     */
+    public ResponseEntity<Exam> getExamById(Long examId){
+        return new ResponseEntity<Exam>(examRepo.findOne(examId),HttpStatus.OK);
+    }
+
+    /**
+     * 保存考试批次
+     * @param exam
+     * @return
+     */
+    public ResponseEntity saveExam(Exam exam){
+        return new ResponseEntity(examRepo.save(exam),HttpStatus.OK);
+    }
+
+    /**
+     * 删除考试批次
+     * @param examId
+     * @return
+     */
+    public ResponseEntity deleteExam(Long examId){
+        examRepo.delete(examId);
+        return new ResponseEntity(HttpStatus.OK);
+    }
+
+    /**
+     * 删除所有考试批次
+     * @return
+     */
+    public ResponseEntity deleteAllExam(){
+        examRepo.deleteAll();
+        return new ResponseEntity(HttpStatus.OK);
+    }
 }

+ 93 - 0
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/core/service/ExamStudentService.java

@@ -0,0 +1,93 @@
+package cn.com.qmth.examcloud.service.core.service;
+
+import cn.com.qmth.examcloud.service.core.dao.ExamStudentRepo;
+import cn.com.qmth.examcloud.service.core.entity.ExamStudent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
+
+/**
+ * 考试学生服务类
+ * Created by songyue on 17/1/14.
+ */
+@Service
+public class ExamStudentService {
+    @Autowired
+    ExamStudentRepo examStudentRepo;
+
+    /**
+     * 获取所有考试学生(分页)
+     * @param examCriteria
+     * @param pageable
+     * @return
+     */
+    public ResponseEntity getAllExamStudent(ExamStudent examCriteria, Pageable pageable){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<ExamStudent> examExamStudentple = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examStudentRepo.findAll(examExamStudentple,pageable), HttpStatus.OK);
+    }
+
+    /**
+     * 获取所有考试学生
+     * @param examCriteria
+     * @return
+     */
+    public ResponseEntity getAllExamStudent(ExamStudent examCriteria){
+        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
+                .withMatcher("name",startsWith());
+        Example<ExamStudent> examExamStudentple = Example.of(examCriteria, exampleMatcher);
+        return new ResponseEntity(examStudentRepo.findAll(examExamStudentple), HttpStatus.OK);
+    }
+
+    /**
+     * 按ID获取考试学生
+     * @param studentId
+     * @return
+     */
+    public ResponseEntity<ExamStudent> getExamStudentById(Long studentId){
+        return new ResponseEntity<ExamStudent>(examStudentRepo.findOne(studentId),HttpStatus.OK);
+    }
+
+    /**
+     * 按考试批次获取学生
+     * @param examId
+     * @return
+     */
+    public ResponseEntity getExamStudentByExamId(Long examId){
+        return new ResponseEntity(examStudentRepo.findByExamId(examId),HttpStatus.OK);
+    }
+
+    /**
+     * 保存考试学生
+     * @param exam
+     * @return
+     */
+    public ResponseEntity saveExamStudent(ExamStudent exam){
+        return new ResponseEntity(examStudentRepo.save(exam),HttpStatus.OK);
+    }
+
+    /**
+     * 删除考试学生
+     * @param examId
+     * @return
+     */
+    public ResponseEntity deleteExamStudent(Long examId){
+        examStudentRepo.delete(examId);
+        return new ResponseEntity(HttpStatus.OK);
+    }
+
+    /**
+     * 删除所有考试学生
+     * @return
+     */
+    public ResponseEntity deleteAllExamStudent(){
+        examStudentRepo.deleteAll();
+        return new ResponseEntity(HttpStatus.OK);
+    }
+}

+ 2 - 2
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/dao/ExamRepo.java

@@ -1,8 +1,8 @@
 package cn.com.qmth.examcloud.service.core.dao;
 
 import org.springframework.data.jpa.repository.JpaRepository;
-
 import cn.com.qmth.examcloud.service.core.entity.Exam;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
 
-public interface ExamRepo extends JpaRepository<Exam, Long> {
+public interface ExamRepo extends JpaRepository<Exam, Long>,QueryByExampleExecutor<Exam>{
 }

+ 2 - 1
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/dao/ExamScoreRepo.java

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.service.core.dao;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import cn.com.qmth.examcloud.service.core.entity.ExamScore;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
 
-public interface ExamScoreRepo extends JpaRepository<ExamScore, Long> {
+public interface ExamScoreRepo extends JpaRepository<ExamScore, Long>,QueryByExampleExecutor<ExamScore> {
 }

+ 4 - 1
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/dao/ExamStudentRepo.java

@@ -1,8 +1,11 @@
 package cn.com.qmth.examcloud.service.core.dao;
 
+import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import cn.com.qmth.examcloud.service.core.entity.ExamStudent;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
 
-public interface ExamStudentRepo extends JpaRepository<ExamStudent, Long> {
+public interface ExamStudentRepo extends JpaRepository<ExamStudent, Long>,QueryByExampleExecutor<ExamStudent> {
+    Page<ExamStudent> findByExamId(Long examId);
 }

+ 2 - 10
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/Exam.java

@@ -5,19 +5,11 @@ import cn.com.qmth.examcloud.service.core.enums.ExamType;
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import javax.persistence.*;
 import javax.validation.constraints.NotNull;
 
 /**
- * 
- * @Description: 考试
- * @author ting.yin
- * @date 2017年1月5日
+ * Created by songyue on 17/1/13.
  */
 @Entity
 @Table(name = "ecs_exam")

+ 1 - 4
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/ExamScore.java

@@ -5,10 +5,7 @@ import java.io.Serializable;
 import javax.persistence.*;
 
 /**
- * 
- * @Description: 成绩
- * @author ting.yin
- * @date 2017年1月5日
+ * Created by songyue on 17/1/13.
  */
 @Entity
 @Table(name = "ecs_exam_score")

+ 1 - 6
exam-work-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/ExamStudent.java

@@ -5,13 +5,8 @@ import java.io.Serializable;
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
 
-import cn.com.qmth.examcloud.service.core.enums.ExamType;
-
 /**
- * 
- * @Description: 考生
- * @author ting.yin
- * @date 2017年1月5日
+ * Created by songyue on 17/1/13.
  */
 @Entity
 @Table(name = "ecs_exam_student")