| | |
| | | private ThCertService certService; |
| | | |
| | | @Override |
| | | public boolean receiveQuestionBank(JSONObject jsonObject) throws Exception { |
| | | public AjaxResult receiveQuestionBank(JSONObject jsonObject) throws Exception { |
| | | InstitutionUser institutionUser = ThreeInContextHolder.getContext(); |
| | | ThQuestionBankReqDTO questionBankReqDTO = decryptData(jsonObject, new TypeReference<ThQuestionBankReqDTO>() {},"题库数据"); |
| | | if(questionBankReqDTO==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 valdateMessage=ValidatorUtils.validateFast(questionBankReqDTO); |
| | | if(!StringUtils.isEmpty(valdateMessage)){ |
| | | throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,valdateMessage); |
| | | 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); |
| | | } |
| | | //根据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.setCreateBy(institutionUser.getInstitutionalName()); |
| | | qb.setUpdateBy(institutionUser.getInstitutionalName()); |
| | | i = questionBankService.save(qb); |
| | | }else { |
| | | //修改 |
| | | BeanUtils.copyProperties(questionBankReqDTO, qb); |
| | | qb.setUpdateBy(institutionUser.getInstitutionalName()); |
| | | i = questionBankService.updateById(qb); |
| | | 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); |
| | | } |
| | | } |
| | | return i; |
| | | questionBankService.saveBatch(savethQuestionBanks); |
| | | questionBankService.updateBatchById(updatethQuestionBanks); |
| | | return AjaxResult.success(errorDataRespDTOS); |
| | | } |
| | | |
| | | @Transactional |
| | |
| | | } |
| | | //数据插入 |
| | | //课程插入 |
| | | 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); |
| | | } |
| | |
| | | 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); |
| | | //修改 |
| | |
| | | } |
| | | } |
| | | //学生表新增 |
| | | 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); |
| | | } |
| | |
| | | } |
| | | |
| | | //插入章节 |
| | | 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); |
| | | } |
| | |
| | | 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()){ |
| | |
| | | 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); |
| | | |
| | | //判断需要修改的批次学生 |
| | |
| | | } |
| | | } |
| | | //插入学习记录 |
| | | 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, 500); |
| | | List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateStudentBatchList, 200); |
| | | for (List<ThStudentBatch> studentBatcheList : splitUpdateThStudentBatchList) { |
| | | studentBatchService.updateBatch(studentBatcheList); |
| | | } |
| | |
| | | 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 { |
| | | //新增 |