1
0
Эх сурвалжийг харах

修改人工指定缺考名单更新接口,参数改为学号+科目代码模式,增加批量更新模式

luoshi 6 жил өмнө
parent
commit
0057f096c7

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -78,6 +78,8 @@ public interface ExamStudentService {
     ExamStudent findByExamIdAndSchoolIdAndSubjectCodeAndStudentCode(Integer examId, Integer schoolId,
             String subjectCode, String studentCode);
 
+    ExamStudent findByExamIdAndSubjectCodeAndStudentCode(Integer examId, String subjectCode, String studentCode);
+
     public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String code, Boolean upload, boolean absent);
 
     public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String code);

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -599,6 +599,12 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 examSeqCode);
     }
 
+    @Override
+    public ExamStudent findByExamIdAndSubjectCodeAndStudentCode(Integer examId, String subjectCode,
+            String studentCode) {
+        return studentDao.findByExamIdAndSubjectCodeAndStudentCode(examId, subjectCode, studentCode);
+    }
+
     @Override
     public ExamStudent findByExamIdAndSchoolIdAndSubjectCodeAndStudentCode(Integer examId, Integer schoolId,
             String subjectCode, String studentCode) {

+ 23 - 13
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import cn.com.qmth.stmms.api.utils.AESUtil;
+import cn.com.qmth.stmms.api.utils.MenualAbsentDTO;
 import cn.com.qmth.stmms.biz.api.auth.annotation.AuthValidate;
 import cn.com.qmth.stmms.biz.api.auth.exception.ApiException;
 import cn.com.qmth.stmms.biz.campus.model.Campus;
@@ -67,35 +68,44 @@ public class ExamStudentController extends BaseApiController {
     private ExamStudentPaperService studentPaperService;
 
     @AuthValidate("adminUser")
-    @RequestMapping(value = "/student/manualAbsent", method = RequestMethod.POST)
+    @RequestMapping(value = "/student/manualAbsent/{examId}", method = RequestMethod.POST)
     @ResponseBody
-    public boolean updateManualAbsent(HttpServletRequest request, @RequestParam Integer examId,
-            @RequestParam String examNumber, @RequestParam Boolean manualAbsent) {
-        boolean success = false;
+    public Object updateManualAbsent(HttpServletRequest request, @PathVariable Integer examId,
+            @RequestBody MenualAbsentDTO[] datas) {
         User user = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(examId);
         if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
-            ExamStudent student = examStudentService.findByExamIdAndExamNumber(examId, examNumber);
-            if (student != null) {
-                examStudentService.updateManualAbsent(student.getId(), manualAbsent);
-                success = true;
+            JSONArray array = new JSONArray();
+            for (MenualAbsentDTO dto : datas) {
+                ExamStudent student = examStudentService.findByExamIdAndSubjectCodeAndStudentCode(examId,
+                        dto.getSubjectCode(), dto.getStudentCode());
+                if (student != null) {
+                    if (student.isManualAbsent() != dto.isAbsent()) {
+                        examStudentService.updateManualAbsent(student.getId(), dto.isAbsent());
+                    }
+                    array.add(student.getExamNumber());
+                } else {
+                    array.add("");
+                }
             }
+            return array;
+        } else {
+            throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
-        return success;
     }
 
     @AuthValidate("adminUser")
     @RequestMapping(value = "/student/manualAbsent/clear", method = RequestMethod.POST)
     @ResponseBody
-    public boolean clearManualAbsent(HttpServletRequest request, @RequestParam Integer examId) {
-        boolean success = false;
+    public Object clearManualAbsent(HttpServletRequest request, @RequestParam Integer examId) {
         User user = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(examId);
         if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
             examStudentService.clearManualAbsent(examId);
-            success = true;
+            return true;
+        } else {
+            throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
-        return success;
     }
 
     @AuthValidate("adminUser")

+ 34 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/utils/MenualAbsentDTO.java

@@ -0,0 +1,34 @@
+package cn.com.qmth.stmms.api.utils;
+
+public class MenualAbsentDTO {
+
+    private String studentCode;
+
+    private String subjectCode;
+
+    private boolean absent;
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public boolean isAbsent() {
+        return absent;
+    }
+
+    public void setAbsent(boolean absent) {
+        this.absent = absent;
+    }
+}