From 3aae8ddd5b9624626921abdcc33122dccdcd5c61 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Fri, 27 Dec 2024 13:24:46 +0800
Subject: [PATCH] 修改学时证书接收接口
---
exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java | 623 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 331 insertions(+), 292 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 6d089ce..2a3bfcf 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
@@ -3,15 +3,16 @@
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
-import com.gkhy.exam.institutionalaccess.config.ExecutorConfig;
import com.gkhy.exam.institutionalaccess.entity.*;
import com.gkhy.exam.institutionalaccess.enums.*;
import com.gkhy.exam.institutionalaccess.model.req.*;
import com.gkhy.exam.institutionalaccess.model.resp.ThErrorDataRespDTO;
import com.gkhy.exam.institutionalaccess.model.vo.ThCourseChapterVO;
import com.gkhy.exam.institutionalaccess.service.*;
+import com.gkhy.exam.institutionalaccess.utils.ValidatorUtils;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.InstitutionUser;
@@ -60,92 +61,83 @@
private ThStudyDetailService studyDetailService;
@Autowired
private ThExamRecordService examRecordService;
-
@Autowired
private ThBatchCourseChapterService batchCourseChapterService;
+ @Autowired
+ private ThSubjectTypeService subjectTypeService;
+ @Autowired
+ private ThCertService certService;
@Override
- public boolean receiveQuestionBank(JSONObject jsonObject) {
+ public AjaxResult receiveQuestionBank(JSONObject jsonObject) throws Exception {
InstitutionUser institutionUser = ThreeInContextHolder.getContext();
-
- String data = jsonObject.getString("data");
- if(StringUtils.isEmpty(data)){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
+ List<ThQuestionBankReqDTO> questionBankReqDTO = decryptData(jsonObject, new TypeReference<List<ThQuestionBankReqDTO>>() {},"题库数据");
+ if(CollectionUtils.isEmpty(questionBankReqDTO)){
+ 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<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>();
+ List<ThQuestionBankReqDTO> thQuestionBankReqDTOS = new ArrayList<>();
+ for (ThQuestionBankReqDTO thQuestionBankReqDTO : questionBankReqDTO) {
+ String valdateMessage=ValidatorUtils.validateFast(thQuestionBankReqDTO);
+ if(!StringUtils.isEmpty(valdateMessage)){
+// throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,valdateMessage);
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(thQuestionBankReqDTO.getUuid(),valdateMessage));
+ continue;
+ }
+ thQuestionBankReqDTOS.add(thQuestionBankReqDTO);
}
- //反序列化
- ThQuestionBankReqDTO questionBankReqDTO = null;
- try {
- questionBankReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThQuestionBankReqDTO>() {});
-
- }catch (Exception e){
- logger.error("组卷反序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
-
+ List<ThQuestionBank> savethQuestionBanks = new ArrayList<>();
+ List<ThQuestionBank> updatethQuestionBanks = new ArrayList<>();
+ for (ThQuestionBankReqDTO thQuestionBankReqDTO : thQuestionBankReqDTOS) {
+ //根据uuid查询数据
+ ThQuestionBank qb = questionBankService.getQuestionInfoByUuid(thQuestionBankReqDTO.getUuid());
+ if(qb == null){
+ //新增
+ qb = new ThQuestionBank();
+ BeanUtils.copyProperties(thQuestionBankReqDTO, qb);
+ qb.setUuid(thQuestionBankReqDTO.getUuid());
+ qb.setInstitutionId(institutionUser.getId());
+ qb.setInstitutionName(institutionUser.getInstitutionalName());
+ qb.setCreateBy(institutionUser.getInstitutionalName());
+ qb.setUpdateBy(institutionUser.getInstitutionalName());
+ savethQuestionBanks.add(qb);
+ }else {
+ //修改
+ BeanUtils.copyProperties(thQuestionBankReqDTO, qb);
+ qb.setUpdateBy(institutionUser.getInstitutionalName());
+ updatethQuestionBanks.add(qb);
+ }
}
-
- //参数校验
- validateQuestion(questionBankReqDTO);
- //根据uuid查询数据
- ThQuestionBank qb = questionBankService.getQuestionInfoByUuid(questionBankReqDTO.getUuid());
- boolean i = true;
- if(qb == null){
- //新增
- qb = new ThQuestionBank();
- BeanUtils.copyProperties(questionBankReqDTO, qb);
- qb.setUuid(questionBankReqDTO.getUuid());
- qb.setInstitutionId(institutionUser.getId());
- qb.setInstitutionName(institutionUser.getInstitutionalName());
- qb.setCreateTime(LocalDateTime.now());
- qb.setUpdateTime(LocalDateTime.now());
- qb.setCreateBy(institutionUser.getInstitutionalName());
- qb.setUpdateBy(institutionUser.getInstitutionalName());
- //qb.setDelFlag(DeleteStatusEnum.NO.getStatus());
- i = questionBankService.save(qb);
- }else {
- //修改
- BeanUtils.copyProperties(questionBankReqDTO, qb);
- i = questionBankService.updateById(qb);
- }
- return i;
+ questionBankService.saveBatch(savethQuestionBanks);
+ questionBankService.updateBatchById(updatethQuestionBanks);
+ return AjaxResult.success(errorDataRespDTOS);
}
+
@Transactional
@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<>();
@@ -163,10 +155,10 @@
errorDataRespDTOS.add(new ThErrorDataRespDTO(courseReqDTO.getUuid(),"课程名称不可为空"));
continue;
}
- if(StringUtils.isEmpty(courseReqDTO.getTrainOrgName())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(courseReqDTO.getUuid(),"培训机构名称不可为空"));
+ /*if(StringUtils.isEmpty(courseReqDTO.getTrainOrgName())){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(courseReqDTO.getUuid(),"所属培训机构统一社会信用代码不可为空"));
continue;
- }
+ }*/
if(courseReqDTO.getLessonNum() == null){
errorDataRespDTOS.add(new ThErrorDataRespDTO(courseReqDTO.getUuid(),"课程总课时不可为空"));
continue;
@@ -445,22 +437,22 @@
}
//数据插入
//课程插入
- List<List<ThCourse>> splitSaveCourseList = ListUtil.split(saveCourseList, 500);
+ List<List<ThCourse>> splitSaveCourseList = ListUtil.split(saveCourseList, 200);
for(List<ThCourse> courseList : splitSaveCourseList){
courseService.insertBatch(courseList);
}
//修改课程
- List<List<ThCourse>> splitUpdateCourseList = ListUtil.split(updateCourseList, 500);
+ List<List<ThCourse>> splitUpdateCourseList = ListUtil.split(updateCourseList, 200);
for(List<ThCourse> courseList : splitUpdateCourseList){
courseService.updateBatch(courseList);
}
//插入章节
- List<List<ThCourseChapter>> splitSaveChapterList = ListUtil.split(saveCourseChapterList, 500);
+ List<List<ThCourseChapter>> splitSaveChapterList = ListUtil.split(saveCourseChapterList, 200);
for(List<ThCourseChapter> chapterList : splitSaveChapterList){
courseChapterService.insertBatch(chapterList);
}
//修改章节
- List<List<ThCourseChapter>> splitUpdateChapterList = ListUtil.split(updateCourseChapterList, 500);
+ List<List<ThCourseChapter>> splitUpdateChapterList = ListUtil.split(updateCourseChapterList, 200);
for(List<ThCourseChapter> chapterList : splitUpdateChapterList){
courseChapterService.updateBatch(chapterList);
}
@@ -472,28 +464,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<>();
@@ -546,7 +535,7 @@
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"学生删除标识不符合规范");
}
if (StringUtils.isEmpty(studentReqDTO.getTrainOrgName())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentReqDTO.getUuid(),"培训机构名称不可为空"));
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(studentReqDTO.getUuid(),"所属培训机构统一社会信用代码不可为空"));
continue;
}
if(StringUtils.isEmpty(studentReqDTO.getBatchUuid())){
@@ -567,7 +556,7 @@
List<ThStudentBatch> updateThStudentBatchList = new ArrayList<>();
for (ThStudentReqDTO studentReqDTO : saveStudentReqDTOList) {
//学生表中过滤
- List<ThStudent> collect = students.stream().filter(s -> s.getIdcard().equals(studentReqDTO.getIdcard())).collect(Collectors.toList());
+ List<ThStudent> collect = students.stream().filter(s -> s.getIdcard().equals(studentReqDTO.getIdcard()) && s.getInstitutionId().equals(institutionUser.getId()) ).collect(Collectors.toList());
if(collect.size() > 0){
ThStudent student = collect.get(0);
//修改
@@ -629,23 +618,23 @@
}
}
//学生表新增
- List<List<ThStudent>> splitSaveStudentList = ListUtil.split(saveSudentList, 500);
+ List<List<ThStudent>> splitSaveStudentList = ListUtil.split(saveSudentList, 200);
for (List<ThStudent> studentList : splitSaveStudentList) {
studentService.insertBatch(studentList);
}
//学生表更新
- List<List<ThStudent>> splitUpdateStudentList = ListUtil.split(updateStudentList, 500);
+ List<List<ThStudent>> splitUpdateStudentList = ListUtil.split(updateStudentList, 200);
for (List<ThStudent> studentList : splitUpdateStudentList) {
studentService.updateBatch(studentList);
}
//学生关联班级表
- List<List<ThStudentBatch>> splitSaveThStudentBatchList = ListUtil.split(saveThStudentBatchList, 500);
+ List<List<ThStudentBatch>> splitSaveThStudentBatchList = ListUtil.split(saveThStudentBatchList, 200);
for (List<ThStudentBatch> studentBatcheList : splitSaveThStudentBatchList) {
studentBatchService.insertBatch(studentBatcheList);
}
//学生关联班级表修改
- List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateThStudentBatchList, 500);
+ List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateThStudentBatchList, 200);
for (List<ThStudentBatch> studentBatcheList : splitUpdateThStudentBatchList) {
studentBatchService.updateBatch(studentBatcheList);
}
@@ -662,29 +651,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<>();
@@ -728,6 +712,8 @@
List<ThCourse> thCourseList = courseService.getByUuidList(reqCourseUuids);
//获取章节
List<ThCourseChapter> thCourseChapterList = courseChapterService.getByUuids(reqChapterUuids);
+ //获取科目类别
+ List<ThSubjectType> subjectTypeList = subjectTypeService.getSubjectTypeList();
//校验
List<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>();
List<ThBatchReqDTO> saveBatchReqDTOList = new ArrayList<>();
@@ -742,8 +728,25 @@
errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"班次(班级)名称不可为空"));
continue;
}
+ if(StringUtils.isEmpty(batchReqDTO.getSubjectCode())){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"班次(班级)科目类别不可为空"));
+ continue;
+ }
+ if(batchReqDTO.getExpectEndTime() == null){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"班次(班级)预期开始时间不可为空"));
+ continue;
+ }
+ if(batchReqDTO.getExpectStartTime() == null){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"班次(班级)预期结束时间不可为空"));
+ continue;
+ }
+ List<ThSubjectType> selectSubjectTypeList = subjectTypeList.stream().filter(st -> st.getCode().equals(batchReqDTO.getSubjectCode())).collect(Collectors.toList());
+ if(selectSubjectTypeList.size() == 0){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"班次(班级)科目类别不合法"));
+ continue;
+ }
if(StringUtils.isEmpty(batchReqDTO.getTrainOrgName())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"培训机构名称不可为空"));
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"所属培训机构统一社会信用代码不可为空"));
continue;
}
if(batchReqDTO.getHaveExam() == null || HaveExam.get(batchReqDTO.getHaveExam()) == null){
@@ -752,6 +755,14 @@
}
if(batchReqDTO.getStatus() == null || OpenStatus.get(batchReqDTO.getStatus()) == null ){
errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"批次(班级)状态标识不符合规范"));
+ continue;
+ }
+ if(batchReqDTO.getStatus().equals(OpenStatus.START.getStatus()) && batchReqDTO.getActualStartTime() == null){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"开班后,实际开班时间不可为空"));
+ continue;
+ }
+ if(batchReqDTO.getStatus().equals(OpenStatus.END.getStatus()) && batchReqDTO.getActualEndTime() == null){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(batchReqDTO.getUuid(),"结班,实际结束时间不可为空"));
continue;
}
if(batchReqDTO.getBatchLessonNum() == null){
@@ -1230,12 +1241,12 @@
}
//插入章节
- List<List<ThBatchCourseChapter>> splitSaveBatchCourseChapterList = ListUtil.split(saveBatchCourseChapterList, 500);
+ List<List<ThBatchCourseChapter>> splitSaveBatchCourseChapterList = ListUtil.split(saveBatchCourseChapterList, 200);
for (List<ThBatchCourseChapter> chapterList : splitSaveBatchCourseChapterList) {
batchCourseChapterService.insertBatch(chapterList);
}
//修改章节
- List<List<ThBatchCourseChapter>> splitUpdateBatchCourseChapterList = ListUtil.split(updateBatchCourseChapterList, 500);
+ List<List<ThBatchCourseChapter>> splitUpdateBatchCourseChapterList = ListUtil.split(updateBatchCourseChapterList, 200);
for (List<ThBatchCourseChapter> chapterList : splitUpdateBatchCourseChapterList) {
batchCourseChapterService.updateBatch(chapterList);
}
@@ -1248,28 +1259,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<>();
@@ -1287,6 +1293,7 @@
List<ThStudentBatch> thStudentBatches = studentBatchService.getByIdCards(idcards);
List<ThBatchCourseChapter> batchCourseChapters = batchCourseChapterService.getByChapterUuids(chapterUuids);
//校验
+ List<ThStudentBatch> updateStudentBatchList = new ArrayList<>();
List<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>();
List<ThStudyDetailReqDTO> saveStudyDetailReqDTOS = new ArrayList<>();
for (ThStudyDetailReqDTO studentDetailReqDTO : thStudyDetailReqDTOS) {
@@ -1325,11 +1332,15 @@
continue;
}
if(StringUtils.isEmpty(studentDetailReqDTO.getTrainOrgName())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"培训机构名称不可为空"));
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"所属培训机构统一社会信用代码不可为空"));
continue;
}
if(studentDetailReqDTO.getFinishStatus() == null || FinishStatus.get(studentDetailReqDTO.getFinishStatus()) == null){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"完成状态不规范"));
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"章节学习状态不规范"));
+ continue;
+ }
+ if(studentDetailReqDTO.getCompleteStatus() == null || StudentFinishStatus.get(studentDetailReqDTO.getCompleteStatus()) == null){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"该学生在此批次(班级)学习状态不规范"));
continue;
}
if(studentDetailReqDTO.getDuration() == null){
@@ -1352,20 +1363,20 @@
errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"结束位置不可为空"));
continue;
}
- if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空"));
- continue;
- }
+// if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空"));
+// continue;
+// }
//认证记录集合
// if(CollectionUtils.isEmpty(studentDetailReqDTO.getAuthList())){
// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"认证记录集合不可为空"));
// continue;
// }
//学习轨迹集合
- if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空"));
- continue;
- }
+// if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空"));
+// continue;
+// }
/*boolean authFlag = false;
for(ThStudytAuthReqDTO item : studentDetailReqDTO.getAuthList()){
@@ -1398,33 +1409,40 @@
if(authFlag){
continue;
}*/
- boolean trackFlag = false;
- for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){
- if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){
- trackFlag = true;
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范"));
- break;
- }
- if(item.getStartTime() == null){
- trackFlag = true;
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空"));
- break;
- }
- if(item.getEndTime() == null){
- trackFlag = true;
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空"));
- break;
- }
- if(item.getTimeInterval() == null) {
- trackFlag = true;
- errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空"));
- break;
- }
- }
- if(trackFlag){
- continue;
- }
+// boolean trackFlag = false;
+// for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){
+// if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){
+// trackFlag = true;
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范"));
+// break;
+// }
+// if(item.getStartTime() == null){
+// trackFlag = true;
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空"));
+// break;
+// }
+// if(item.getEndTime() == null){
+// trackFlag = true;
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空"));
+// break;
+// }
+// if(item.getTimeInterval() == null) {
+// trackFlag = true;
+// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空"));
+// break;
+// }
+// }
+// if(trackFlag){
+// continue;
+// }
saveStudyDetailReqDTOS.add(studentDetailReqDTO);
+
+ //判断需要修改的批次学生
+ if(studentDetailReqDTO.getCompleteStatus().equals(FinishStatus.YES.getStatus())){
+ ThStudentBatch thStudentBatch = StudentBatchSelectList.get(0);
+ thStudentBatch.setFinishStatus(studentDetailReqDTO.getCompleteStatus());
+ updateStudentBatchList.add(thStudentBatch);
+ }
}
//获取历史记录
@@ -1513,24 +1531,29 @@
}
}
//插入学习记录
- List<List<ThStudyDetail>> splitSaveDetailList = ListUtil.split(saveStudyDetailList, 500);
+ List<List<ThStudyDetail>> splitSaveDetailList = ListUtil.split(saveStudyDetailList, 200);
for (List<ThStudyDetail> thStudyDetails : splitSaveDetailList) {
studyDetailService.insertBatch(thStudyDetails);
}
//修改学习记录
- List<List<ThStudyDetail>> splitUpdateDetailList = ListUtil.split(updateStudyDetailList, 500);
+ List<List<ThStudyDetail>> splitUpdateDetailList = ListUtil.split(updateStudyDetailList, 200);
for (List<ThStudyDetail> thStudyDetails : splitUpdateDetailList) {
studyDetailService.updateBatch(thStudyDetails);
}
//插入认证记录
- List<List<ThStudyAuth>> splitSaveAuthList = ListUtil.split(saveStudyAuthList, 500);
+ List<List<ThStudyAuth>> splitSaveAuthList = ListUtil.split(saveStudyAuthList, 200);
for (List<ThStudyAuth> thStudyAuths : splitSaveAuthList) {
studyAuthService.insetBatch(thStudyAuths);
}
//插入学习轨迹
- List<List<ThStudyTrack>> splitSaveTrackList = ListUtil.split(saveStudyTrackList, 500);
+ List<List<ThStudyTrack>> splitSaveTrackList = ListUtil.split(saveStudyTrackList, 200);
for (List<ThStudyTrack> thStudyTracks : splitSaveTrackList) {
studyTrackService.insertBatch(thStudyTracks);
+ }
+ //修改学生完成状态
+ List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateStudentBatchList, 200);
+ for (List<ThStudentBatch> studentBatcheList : splitUpdateThStudentBatchList) {
+ studentBatchService.updateBatch(studentBatcheList);
}
return AjaxResult.success(errorDataRespDTOS);
}
@@ -1540,27 +1563,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<>();
@@ -1603,7 +1621,7 @@
continue;
}
if(StringUtils.isEmpty(examRecordReqDTO.getTrainOrgName())){
- errorDataRespDTOS.add(new ThErrorDataRespDTO(examRecordReqDTO.getUuid(),"培训机构名称不可为空"));
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(examRecordReqDTO.getUuid(),"所属培训机构统一社会信用代码不可为空"));
continue;
}
if(StringUtils.isEmpty(examRecordReqDTO.getExamName())){
@@ -1662,28 +1680,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);
}
@@ -1722,25 +1731,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,"批次(班级)不可为空");
}
@@ -1757,6 +1756,7 @@
thBatch.setStatus(OpenStatus.START.getStatus());
thBatch.setUpdateTime(LocalDateTime.now());
thBatch.setUpdateBy(institutionUser.getInstitutionalName());
+ thBatch.setActualStartTime(LocalDateTime.now());
batchService.updateById(thBatch);
return AjaxResult.success();
}
@@ -1764,26 +1764,7 @@
@Override
public AjaxResult receiveBatchEnd(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);
- }
- //反序列化
- ThBatchEndReqDTO thBatchEndReqDTO = null;
- try {
- thBatchEndReqDTO = JSONObject.parseObject(decrypt, new TypeReference<ThBatchEndReqDTO>() {});
- }catch (Exception e){
- logger.error("班级结束反序列化失败!");
- throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
- }
+ ThBatchEndReqDTO thBatchEndReqDTO = decryptData(jsonObject, new TypeReference<ThBatchEndReqDTO>() {},"批次(班级)");
if(thBatchEndReqDTO == null){
throw new BusinessException(this.getClass(),ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"批次(班级)不可为空");
}
@@ -1798,9 +1779,103 @@
thBatch.setStatus(OpenStatus.END.getStatus());
thBatch.setUpdateTime(LocalDateTime.now());
thBatch.setUpdateBy(institutionUser.getInstitutionalName());
+ thBatch.setActualEndTime(LocalDateTime.now());
batchService.updateById(thBatch);
- studentBatchService.updateFinishStatusByBatchUuid(thBatchEndReqDTO.getBatchUuid());
return AjaxResult.success();
+ }
+
+ @Override
+ public AjaxResult receiveCerts(JSONObject jsonObject) throws Exception {
+ InstitutionUser institutionUser = ThreeInContextHolder.getContext();
+ List<ThCertReqDTO> thCertReqDTOs = decryptData(jsonObject, new TypeReference<List<ThCertReqDTO>>() {},"学时证书");
+ if(thCertReqDTOs.isEmpty() ||thCertReqDTOs.size()>50){
+ throw new BusinessException(this.getClass(), ResultConstants.RECORD_OVER_MAX);
+ }
+ //错误
+ List<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>();
+ List<ThCertReqDTO> saveCertReqDTOList = new ArrayList<>();
+ List<String> batchUuidList=thCertReqDTOs.stream().map(ThCertReqDTO::getBatchUuid).filter(batchUuid -> !StringUtils.isEmpty(batchUuid)).distinct().collect(Collectors.toList());
+ //获取批次
+ List<ThBatch> batchList = batchService.getByUuids(batchUuidList);
+ for(ThCertReqDTO thCertReqDTO : thCertReqDTOs){
+ String validateMessage=ValidatorUtils.validateFast(thCertReqDTO);
+ if(!StringUtils.isEmpty(validateMessage)){
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(thCertReqDTO.getUuid(),validateMessage));
+ continue;
+ }
+ List<ThBatch> collect = batchList.stream().filter(batchCourse -> batchCourse.getUuid().equals(thCertReqDTO.getBatchUuid())).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(collect)) {
+ errorDataRespDTOS.add(new ThErrorDataRespDTO(thCertReqDTO.getUuid(), "批次(班级)不存在,请先添加批次(班级)"));
+ continue;
+ }
+ saveCertReqDTOList.add(thCertReqDTO);
+ }
+ List<ThCert> saveCertList = new ArrayList<>();
+ List<ThCert> updateCertList = new ArrayList<>();
+ for (ThCertReqDTO thCertReqDTO : saveCertReqDTOList) {
+ ThCert cert=certService.getCertByUuid(thCertReqDTO.getUuid());
+ if (cert!=null) {
+ //修改
+ BeanUtils.copyProperties(thCertReqDTO, cert);
+ cert.setUpdateBy(institutionUser.getInstitutionalName());
+ cert.setUpdateTime(LocalDateTime.now());
+ cert.setInstitutionId(institutionUser.getId());
+ cert.setInstitutionName(institutionUser.getInstitutionalName());
+ if (cert.getDelFlag()==null) {
+ cert.setDelFlag(DeleteStatusEnum.NO.getStatus());
+ }
+ updateCertList.add(cert);
+ } else {
+ //新增
+ cert = new ThCert();
+ BeanUtils.copyProperties(thCertReqDTO, cert);
+ cert.setId(IdUtil.getSnowflake(0, 0).nextId());
+ cert.setUpdateBy(institutionUser.getInstitutionalName());
+ cert.setUpdateTime(LocalDateTime.now());
+ cert.setCreateBy(institutionUser.getInstitutionalName());
+ cert.setCreateTime(LocalDateTime.now());
+ cert.setInstitutionId(institutionUser.getId());
+ cert.setInstitutionName(institutionUser.getInstitutionalName());
+ cert.setDelFlag(DeleteStatusEnum.NO.getStatus());
+ saveCertList.add(cert);
+ }
+ }
+ //课时证书表新增
+ if(!saveCertList.isEmpty()){
+ certService.insertBatch(saveCertList);
+ }
+ //课时证书表更新
+ if(!updateCertList.isEmpty()) {
+ certService.updateBatch(updateCertList);
+ }
+ return AjaxResult.success(errorDataRespDTOS);
+ }
+
+ /**
+ * 解密数据
+ * @param jsonObject
+ * @param typeReference
+ * @return
+ * @param <T>
+ */
+ 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);
+ }
+ //解密
+ String decrypt = "";
+ try {
+ decrypt = AESUtils.decrypt(data);
+ }catch (Exception e){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
+ }
+ try {
+ return JSONObject.parseObject(decrypt,typeReference);
+ }catch (Exception e){
+ logger.error("{}反序列化失败!",type);
+ throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+ }
}
@@ -1836,7 +1911,7 @@
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"课程章节不存在");
}
if(StringUtils.isEmpty(studentDetailReqDTO.getTrainOrgName())){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"培训机构名称不可为空");
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"所属培训机构统一社会信用代码不可为空");
}
if(studentDetailReqDTO.getFinishStatus() == null || FinishStatus.get(studentDetailReqDTO.getFinishStatus()) == null){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"完成状态不规范");
@@ -1936,7 +2011,7 @@
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"实名认证照不可为空");
}
if (StringUtils.isEmpty(studentReqDTO.getTrainOrgName())){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"培训机构名称不可为空");
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"所属培训机构统一社会信用代码不可为空");
}
/*if(CollectionUtils.isEmpty(studentReqDTO.getBatchUuids())){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"关联课程uuidd不可为空");
@@ -1970,7 +2045,7 @@
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"课程名称不可为空");
}
if(StringUtils.isEmpty(courseReqDTO.getTrainOrgName())){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"培训机构名称不可为空");
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"所属培训机构统一社会信用代码不可为空");
}
if(courseReqDTO.getLessonNum() == null){
throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"总课时不可为空");
@@ -2029,43 +2104,7 @@
}
- /**
- * 校验题库组卷数据
- * @param questionBankReqDTO
- */
- private void validateQuestion(ThQuestionBankReqDTO questionBankReqDTO){
- if(questionBankReqDTO == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_ERROR);
- }
- if(StringUtils.isEmpty(questionBankReqDTO.getUuid()) || !UUID.checkIsUuid(questionBankReqDTO.getUuid())){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"题库组卷uuid不符合规范");
- }
- if(StringUtils.isEmpty(questionBankReqDTO.getUrl())){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"题库组卷预览路径不可为空");
- }
- if(questionBankReqDTO.getLastMonthCount() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"上月题库总题目数不可为空");
- }
- if(questionBankReqDTO.getAddCount() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"新增题目数不可为空");
- }
- if(questionBankReqDTO.getReduceCount() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"减少题目数不可为空");
- }
- if(questionBankReqDTO.getBrushRate() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"刷题应用率不可为空");
- }
- if(questionBankReqDTO.getAssemblyRate() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"组卷应用率不可为空");
- }
- if(questionBankReqDTO.getMonth() == null){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"年月不可为空");
- }
- if(questionBankReqDTO.getDelFlag() == null || DeleteStatusEnum.getDeleteStatusEnum(questionBankReqDTO.getDelFlag()) == null ){
- throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"删除标识不符合规范");
- }
- }
private String generateSerialNum() {
Long count = studyDetailService.getCount();
String strCount = count.toString();
--
Gitblit v1.9.2