浏览代码

增加扫描客户端同步裁切图配置的接口

ting.yin 6 年之前
父节点
当前提交
45e22b86c0

+ 5 - 1
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(int examId, ExamStatus status);
 
-	public List<Exam> findBySchoolIdOrderByIdDesc(Integer schoolId);
+    public List<Exam> findBySchoolIdOrderByIdDesc(Integer schoolId);
+
+    @Modifying
+    @Query("update Exam e set e.sliceConfig=?2 where e.id=?1")
+    public void updateSliceConfig(Integer examId, String configString);
 }

+ 3 - 0
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 {
@@ -25,4 +26,6 @@ public interface ExamService {
     List<Exam> findByCreatorAndStatus(Integer id, ExamStatus status);
 
 	List<Exam> findBySchoolId(Integer schoolId);
+
+    void updateSliceConfig(Integer examId, List<PictureConfigItem> asList);
 }

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

@@ -23,6 +23,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
@@ -115,8 +116,8 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
                     }
                 }
 
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         }, query);
         fillResult(result, query);
@@ -138,4 +139,11 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
         return examDao.findBySchoolIdOrderByIdDesc(schoolId);
     }
 
+    @Transactional
+    @Override
+    public void updateSliceConfig(Integer examId, List<PictureConfigItem> configList) {
+        examDao.updateSliceConfig(examId,
+                configList != null ? StringUtils.join(configList, PictureConfigItem.DB_ITEM_JOINER) : "");
+    }
+
 }

+ 26 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamInfoController.java

@@ -1,11 +1,15 @@
 package cn.com.qmth.stmms.api.controller;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -24,11 +28,10 @@ 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.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
 
 @Controller("examInfoApiController")
 @RequestMapping("/api")
@@ -139,4 +142,25 @@ public class ExamInfoController extends BaseApiController {
         }
         return result;
     }
+    
+    @AuthValidate("adminUser")
+    @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;
+    }
 }