소스 검색

增加面向扫描客户端的裁切图配置更新接口

luoshi 6 년 전
부모
커밋
a30e95a5f5

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamDao.java

@@ -25,5 +25,9 @@ public interface ExamDao extends PagingAndSortingRepository<Exam, Integer>, JpaS
     @Query("update Exam e set e.status=?2 where e.id=?1")
     public void updateStatus(Integer examId, ExamStatus status);
 
+    @Modifying
+    @Query("update Exam e set e.sliceConfig=?2 where e.id=?1")
+    public void updateSliceConfig(Integer examId, String configString);
+
     public List<Exam> findBySchoolIdOrderByIdDesc(Integer schoolId);
 }

+ 4 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
 
 public interface ExamService {
@@ -12,7 +13,9 @@ public interface ExamService {
 
     Exam findById(Integer id);
 
-    void updateStatus(int id, ExamStatus status);
+    void updateStatus(Integer id, ExamStatus status);
+
+    void updateSliceConfig(Integer id, List<PictureConfigItem> configList);
 
     void deleteById(Integer id);
 

+ 10 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamServiceImpl.java

@@ -21,6 +21,7 @@ import cn.com.qmth.stmms.biz.exam.dao.ExamDao;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
 
 @Service
@@ -50,10 +51,18 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
     @Transactional
     // @CacheEvict(value = "exam_cache", beforeInvocation = true, allEntries =
     // true)
-    public void updateStatus(int id, ExamStatus status) {
+    public void updateStatus(Integer id, ExamStatus status) {
         examDao.updateStatus(id, status);
     }
 
+    @Transactional
+    // @CacheEvict(value = "exam_cache", beforeInvocation = true, allEntries =
+    // true)
+    public void updateSliceConfig(Integer id, List<PictureConfigItem> configList) {
+        examDao.updateSliceConfig(id,
+                configList != null ? StringUtils.join(configList, PictureConfigItem.DB_ITEM_JOINER) : "");
+    }
+
     @Transactional
     // @CacheEvict(value = "exam_cache", beforeInvocation = true, allEntries =
     // true)

+ 23 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamInfoController.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.stmms.api.controller;
 
+import java.util.Arrays;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -22,6 +23,7 @@ import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
 import cn.com.qmth.stmms.common.utils.DateUtils;
@@ -129,4 +131,25 @@ public class ExamInfoController extends BaseApiController {
         }
         return result;
     }
+
+    @AuthValidate({ "adminUser", "scanner" })
+    @RequestMapping(value = "/sliceConfig/{examId}", method = RequestMethod.POST)
+    @ResponseBody
+    public boolean updateSliceConfig(HttpServletRequest request, @PathVariable Integer examId,
+            @RequestBody PictureConfigItem[] configs) {
+        User user = RequestUtils.getApiUser(request);
+        Exam exam = examService.findById(examId);
+        boolean success = false;
+        if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
+            if (configs != null && configs.length > 0) {
+                examService.updateSliceConfig(examId, Arrays.asList(configs));
+                success = true;
+            } else {
+                success = false;
+            }
+        } else {
+            throw ApiException.EXAM_NOT_ACCESSIBLED;
+        }
+        return success;
+    }
 }