From 5fc609145a7072fb8c7bce501ece0daca0d46467 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期四, 24 十月 2024 17:03:28 +0800
Subject: [PATCH] 新增限制推送数据量
---
exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java | 223 ++++++++++++++++++++++---------------------------------
1 files changed, 90 insertions(+), 133 deletions(-)
diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
index d7110c8..55b849e 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
@@ -71,7 +71,7 @@
@Override
public boolean receiveQuestionBank(JSONObject jsonObject) throws Exception {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- ThQuestionBankReqDTO questionBankReqDTO = decryptData(jsonObject, new TypeReference<ThQuestionBankReqDTO>() {});
+ ThQuestionBankReqDTO questionBankReqDTO = decryptData(jsonObject, new TypeReference<ThQuestionBankReqDTO>() {},"题库数据");
if(questionBankReqDTO==null){
throw new BusinessException(this.getClass(),ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"题库数据不可为空");
}
@@ -105,33 +105,27 @@
@Override
public AjaxResult receiveCourse(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
-
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
- List<ThCourseReqDTO> courseReqDTOList = new ArrayList<>();
+ List<ThCourseReqDTO> courseReqDTOList =
+ decryptData(jsonObject, new TypeReference<List<ThCourseReqDTO>>() {},"课程");
+// List<ThCourseReqDTO> courseReqDTOList = new ArrayList<>();
//反序列化
- try {
- courseReqDTOList = JSONObject.parseObject(decrypt, new TypeReference<List<ThCourseReqDTO>>() {});
-
- }catch (Exception e){
- logger.error("课程反序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
-
- }
+// try {
+// courseReqDTOList = JSONObject.parseObject(decrypt, new TypeReference<List<ThCourseReqDTO>>() {});
+//
+// }catch (Exception e){
+// logger.error("课程反序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+//
+// }
if(CollectionUtils.isEmpty(courseReqDTOList)){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送不可以为空");
}
- //暂时不限制不能超过1000条
+ //暂时限制不能超过1000条
+ if (courseReqDTOList.size() > 1000){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送数据量过大");
+ }
List<String> reqAllCourseIds = new ArrayList<>();
List<String> reqAllChapterIds = new ArrayList<>();
List<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>();
@@ -458,28 +452,25 @@
public AjaxResult receiveStudent(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ List<ThStudentReqDTO> studentReqDTOs =
+ decryptData(jsonObject, new TypeReference<List<ThStudentReqDTO>>() {},"学员");
+
//反序列化
- List<ThStudentReqDTO> studentReqDTOs = new ArrayList<>();
- try {
- studentReqDTOs = JSONObject.parseObject(decrypt, new TypeReference<List<ThStudentReqDTO>>() {});
- }catch (Exception e){
- logger.error("学员序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
- }
+// List<ThStudentReqDTO> studentReqDTOs = new ArrayList<>();
+// try {
+// studentReqDTOs = JSONObject.parseObject(decrypt, new TypeReference<List<ThStudentReqDTO>>() {});
+// }catch (Exception e){
+// logger.error("学员序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+// }
//参数校验
if(CollectionUtils.isEmpty(studentReqDTOs)){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"学生信息不可为空");
+ }
+ //限制数据量不超过1000条
+ if (studentReqDTOs.size() > 1000){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送数据量过大");
}
List<String> idcardList = new ArrayList<>();
@@ -648,29 +639,24 @@
public AjaxResult receiveBatch(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ List<ThBatchReqDTO> batchReqDTOList = decryptData(jsonObject, new TypeReference<List<ThBatchReqDTO>>() {},"班级");
//反序列化
- List<ThBatchReqDTO> batchReqDTOList = new ArrayList<>();
- try {
- batchReqDTOList = JSONObject.parseObject(decrypt, new TypeReference<List<ThBatchReqDTO>>() {});
-
- }catch (Exception e){
- logger.error("班级序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
-
- }
+// List<ThBatchReqDTO> batchReqDTOList = new ArrayList<>();
+// try {
+// batchReqDTOList = JSONObject.parseObject(decrypt, new TypeReference<List<ThBatchReqDTO>>() {});
+//
+// }catch (Exception e){
+// logger.error("班级序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+//
+// }
if(CollectionUtils.isEmpty(batchReqDTOList)){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"批次(班级)集合不可为空");
+ }
+ //限制数据量不超过1000条
+ if (batchReqDTOList.size() > 1000){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送数据量过大");
}
//过滤出本次请求所有班级课程章节
List<String> reqAllBatchUuids = new ArrayList<>();
@@ -1261,28 +1247,23 @@
public AjaxResult receiveStudyDetail(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ List<ThStudyDetailReqDTO> thStudyDetailReqDTOS = decryptData(jsonObject, new TypeReference<List<ThStudyDetailReqDTO>>() {},"学习记录");
//反序列化
- List<ThStudyDetailReqDTO> thStudyDetailReqDTOS = new ArrayList<>();
- try {
- thStudyDetailReqDTOS = JSONObject.parseObject(decrypt, new TypeReference<List<ThStudyDetailReqDTO>>() {});
- }catch (Exception e){
- logger.error("学习记录序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
- }
+// List<ThStudyDetailReqDTO> thStudyDetailReqDTOS = new ArrayList<>();
+// try {
+// thStudyDetailReqDTOS = JSONObject.parseObject(decrypt, new TypeReference<List<ThStudyDetailReqDTO>>() {});
+// }catch (Exception e){
+// logger.error("学习记录序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+// }
//参数校验
if(CollectionUtils.isEmpty(thStudyDetailReqDTOS)){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"学习记录清单不可为空");
+ }
+ //限制数据量不超过1000条
+ if (thStudyDetailReqDTOS.size() > 1000){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送数据量过大");
}
//获取班级学生以及章节
List<String> chapterUuids = new ArrayList<>();
@@ -1570,27 +1551,22 @@
public AjaxResult receiveExamRecord(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ List<ThExamRecordReqDTO> examRecordReqDTOS = decryptData(jsonObject, new TypeReference<List<ThExamRecordReqDTO>>() {},"考试记录");
//反序列化
- List<ThExamRecordReqDTO> examRecordReqDTOS = new ArrayList<>();
- try {
- examRecordReqDTOS = JSONObject.parseObject(decrypt, new TypeReference<List<ThExamRecordReqDTO>>() {});
- }catch (Exception e){
- logger.error("考试记录序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
- }
+// List<ThExamRecordReqDTO> examRecordReqDTOS = new ArrayList<>();
+// try {
+// examRecordReqDTOS = JSONObject.parseObject(decrypt, new TypeReference<List<ThExamRecordReqDTO>>() {});
+// }catch (Exception e){
+// logger.error("考试记录序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+// }
if (CollectionUtils.isEmpty(examRecordReqDTOS)) {
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"考试记录不可为空");
+ }
+ //限制数据量不超过1000条
+ if (examRecordReqDTOS.size() > 1000){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR,"数据推送数据量过大");
}
List<String> idcards = new ArrayList<>();
//List<String> batchUuids = new ArrayList<>();
@@ -1692,28 +1668,19 @@
public AjaxResult receiveCourseDelete(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
//解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ ThCourseDeleteReqDTO thCourseDeleteReqDTO = decryptData(jsonObject, new TypeReference<ThCourseDeleteReqDTO>() {},"课程删除");
//反序列化
- ThCourseDeleteReqDTO thCourseDeleteReqDTO = null;
- try {
- thCourseDeleteReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThCourseDeleteReqDTO>() {});
-
- }catch (Exception e){
- logger.error("课程删除反序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
-
- }
+// ThCourseDeleteReqDTO thCourseDeleteReqDTO = null;
+// try {
+// thCourseDeleteReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThCourseDeleteReqDTO>() {});
+//
+// }catch (Exception e){
+// logger.error("课程删除反序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+//
+// }
if(thCourseDeleteReqDTO == null){
throw new BusinessException(ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
}
@@ -1752,25 +1719,15 @@
public AjaxResult receiveBatchOpen(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
- //解密
- String decrypt = "";
- try {
- decrypt = AESUtils.decrypt(data);
- }catch (Exception e){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
- }
+ ThBatchOpenReqDTO thBatchOpenReqDTO = decryptData(jsonObject, new TypeReference<ThBatchOpenReqDTO>() {},"班级开始");
//反序列化
- ThBatchOpenReqDTO thBatchOpenReqDTO = null;
- try {
- thBatchOpenReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThBatchOpenReqDTO>() {});
- }catch (Exception e){
- logger.error("班级开始反序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
- }
+// ThBatchOpenReqDTO thBatchOpenReqDTO = null;
+// try {
+// thBatchOpenReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThBatchOpenReqDTO>() {});
+// }catch (Exception e){
+// logger.error("班级开始反序列化失败!");
+// throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+// }
if(thBatchOpenReqDTO == null){
throw new BusinessException(this.getClass(),ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"批次(班级)不可为空");
}
@@ -1795,7 +1752,7 @@
@Override
public AjaxResult receiveBatchEnd(JSONObject jsonObject) {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- ThBatchEndReqDTO thBatchEndReqDTO = decryptData(jsonObject, new TypeReference<ThBatchEndReqDTO>() {});
+ ThBatchEndReqDTO thBatchEndReqDTO = decryptData(jsonObject, new TypeReference<ThBatchEndReqDTO>() {},"批次(班级)");
if(thBatchEndReqDTO == null){
throw new BusinessException(this.getClass(),ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"批次(班级)不可为空");
}
@@ -1818,7 +1775,7 @@
@Override
public AjaxResult receiveCerts(JSONObject jsonObject) throws Exception {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
- List<ThCertReqDTO> thCertReqDTOs = decryptData(jsonObject, new TypeReference<List<ThCertReqDTO>>() {});
+ List<ThCertReqDTO> thCertReqDTOs = decryptData(jsonObject, new TypeReference<List<ThCertReqDTO>>() {},"学时证书");
if(thCertReqDTOs.isEmpty() ||thCertReqDTOs.size()>50){
throw new BusinessException(this.getClass(), ResultConstants.RECORD_OVER_MAX);
}
@@ -1886,7 +1843,7 @@
* @return
* @param <T>
*/
- private <T> T decryptData(JSONObject jsonObject,TypeReference<T> typeReference){
+ private <T> T decryptData(JSONObject jsonObject,TypeReference<T> typeReference,String type){
String data = jsonObject.getString("data");
if(StringUtils.isEmpty(data)){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
@@ -1901,7 +1858,7 @@
try {
return JSONObject.parseObject(decrypt,typeReference);
}catch (Exception e){
- logger.error("学时证书反序列化失败!");
+ logger.error("{}反序列化失败!",type);
throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
}
}
--
Gitblit v1.9.2