|
@@ -55,19 +55,19 @@ import com.zhongzheng.modules.order.service.IOrderService;
|
|
|
import com.zhongzheng.modules.order.vo.OrderGoodsVo;
|
|
|
import com.zhongzheng.modules.system.domain.SysTenant;
|
|
|
import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
|
|
|
+import com.zhongzheng.modules.user.bo.UserBankRecordQueryBo;
|
|
|
import com.zhongzheng.modules.user.bo.UserQueryBo;
|
|
|
import com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo;
|
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
|
+import com.zhongzheng.modules.user.domain.UserBankRecord;
|
|
|
import com.zhongzheng.modules.user.domain.UserPlan;
|
|
|
import com.zhongzheng.modules.user.domain.UserStudyRecordPhoto;
|
|
|
import com.zhongzheng.modules.user.mapper.UserMapper;
|
|
|
import com.zhongzheng.modules.user.mapper.UserStudyRecordPhotoMapper;
|
|
|
+import com.zhongzheng.modules.user.service.IUserBankRecordService;
|
|
|
import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
|
|
|
import com.zhongzheng.modules.user.service.IUserStudyRecordService;
|
|
|
-import com.zhongzheng.modules.user.vo.SectionStudyRecordVo;
|
|
|
-import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
|
|
|
-import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
|
|
|
-import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
|
|
|
+import com.zhongzheng.modules.user.vo.*;
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -105,6 +105,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
@Autowired
|
|
|
private IUserStudyRecordService iUserStudyRecordService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IUserBankRecordService iUserBankRecordService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IUserPeriodStatusService userPeriodStatusService;
|
|
|
|
|
@@ -808,6 +811,27 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
+ private UserPeriodExportV2Vo mergeEamDataV2(Long index, String moduleName, String chapterName, String sectionName,ClassPeriodSectionVo classPeriodSectionVo) {
|
|
|
+ //试卷学习记录
|
|
|
+ UserBankRecordQueryBo recordQueryBo = BeanUtil.toBean(classPeriodSectionVo, UserBankRecordQueryBo.class);
|
|
|
+ List<UserBankRecordVo> recordList = iUserBankRecordService.queryList(recordQueryBo);
|
|
|
+ //录入学时记录
|
|
|
+ UserPeriodExportV2Vo userPeriodExportVo = new UserPeriodExportV2Vo();
|
|
|
+ List<UserPeriodItemExportVo> studyList = new ArrayList<>();
|
|
|
+ for(UserBankRecordVo vo : recordList){
|
|
|
+ UserPeriodItemExportVo exportVo = new UserPeriodItemExportVo();
|
|
|
+ exportVo.setStudyStartTime(vo.getCreateTime());
|
|
|
+ exportVo.setStudyEndTime(vo.getUpdateTime());
|
|
|
+ exportVo.setSectionType(4);
|
|
|
+ exportVo.setStatus(vo.getStatus());
|
|
|
+ exportVo.setScore(vo.getPerformance());
|
|
|
+ exportVo.setRightRate(vo.getRightRate());
|
|
|
+ studyList.add(exportVo);
|
|
|
+ }
|
|
|
+ userPeriodExportVo.setRecordList(studyList);
|
|
|
+ return userPeriodExportVo;
|
|
|
+ }
|
|
|
+
|
|
|
private UserPeriodExportV2Vo mergeDataV2(Long index, String moduleName, String chapterName, String sectionName,ClassPeriodSectionVo classPeriodSectionVo, UserStudyRecordQueryBo recordQueryBo) {
|
|
|
//节学习记录
|
|
|
List<SectionStudyRecordVo> recordList = iUserStudyRecordService.selectSectionRecord(recordQueryBo);
|
|
@@ -819,7 +843,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
userPeriodExportVo.setSectionName(sectionName);
|
|
|
List<UserPeriodItemExportVo> studyList = new ArrayList<>();
|
|
|
//录播
|
|
|
- if(classPeriodSectionVo.getSectionType()==3){
|
|
|
+ if(classPeriodSectionVo.getSectionType()==1){
|
|
|
Long startTime = null;
|
|
|
Long endTime = null;
|
|
|
int studyIndex = -1;
|
|
@@ -830,6 +854,8 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
studyIndex++;
|
|
|
exportVo.setStudyStartTime(startTime);
|
|
|
exportVo.setStatus(0);
|
|
|
+ exportVo.setDurationTime(classPeriodSectionVo.getDurationTime());
|
|
|
+ exportVo.setSectionType(classPeriodSectionVo.getSectionType());
|
|
|
studyList.add(exportVo);
|
|
|
}
|
|
|
endTime = vo.getEndTime();
|
|
@@ -841,8 +867,52 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
}
|
|
|
}
|
|
|
//回放或者直播
|
|
|
- if(classPeriodSectionVo.getSectionType()==2||classPeriodSectionVo.getSectionType()==1){
|
|
|
-
|
|
|
+ if(classPeriodSectionVo.getSectionType()==2||classPeriodSectionVo.getSectionType()==3){
|
|
|
+ //默认加上直播
|
|
|
+ UserPeriodItemExportVo exportVo = new UserPeriodItemExportVo();
|
|
|
+ exportVo.setSectionType(2);
|
|
|
+ exportVo.setStatus(0); //直播未参与
|
|
|
+ exportVo.setDurationTime(classPeriodSectionVo.getRealDuration());
|
|
|
+ studyList.add(exportVo);
|
|
|
+ Long startTime = null;
|
|
|
+ Long endTime = null;
|
|
|
+ int studyIndex = 0;
|
|
|
+ boolean isReplay = false;
|
|
|
+ if(Validator.isNotEmpty(classPeriodSectionVo.getRealLiveEndTime())){ //直播结束时间
|
|
|
+ for(SectionStudyRecordVo vo : recordList){
|
|
|
+ if(vo.getStartTime().longValue()>classPeriodSectionVo.getRealLiveEndTime().longValue()){ //回放
|
|
|
+ if(!isReplay){
|
|
|
+ //结束直播第一次进回放
|
|
|
+ isReplay = true;
|
|
|
+ startTime = null;
|
|
|
+ }
|
|
|
+ if(Validator.isEmpty(startTime)){
|
|
|
+ startTime = vo.getStartTime();
|
|
|
+ UserPeriodItemExportVo exportItemVo = new UserPeriodItemExportVo();
|
|
|
+ studyIndex++; //跳过第一条直播
|
|
|
+ exportItemVo.setStudyStartTime(startTime);
|
|
|
+ exportItemVo.setStatus(0);
|
|
|
+ exportItemVo.setDurationTime(classPeriodSectionVo.getDurationTime());
|
|
|
+ exportVo.setSectionType(3);
|
|
|
+ studyList.add(exportItemVo);
|
|
|
+ }
|
|
|
+ endTime = vo.getEndTime();
|
|
|
+ studyList.get(studyIndex).setStudyEndTime(endTime);
|
|
|
+ if(Validator.isNotEmpty(vo.getStatus())&&vo.getStatus()==1){
|
|
|
+ studyList.get(studyIndex).setStatus(1);
|
|
|
+ startTime = null;
|
|
|
+ }
|
|
|
+ }else{ //直播
|
|
|
+ studyList.get(0).setStatus(1); //直播参与
|
|
|
+ if(Validator.isEmpty(startTime)){
|
|
|
+ startTime = vo.getStartTime();
|
|
|
+ studyList.get(0).setStudyStartTime(startTime);
|
|
|
+ }
|
|
|
+ endTime = vo.getEndTime();
|
|
|
+ studyList.get(0).setStudyEndTime(endTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
userPeriodExportVo.setRecordList(studyList);
|
|
|
return userPeriodExportVo;
|
|
@@ -1314,7 +1384,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ClassPeriodVo> listUserStudyRecordV2(ClassGradeUserQueryBo bo) {
|
|
|
+ public List<UserPeriodExportV2Vo> listUserStudyRecordV2(ClassGradeUserQueryBo bo) {
|
|
|
//查找最外层课程目录 模块 章 节
|
|
|
List<ClassPeriodVo> classPeriodVos = baseMapper.listPeriodAudit(bo);
|
|
|
classPeriodVos.addAll(baseMapper.listPeriodAuditSection(bo));
|
|
@@ -1322,7 +1392,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
String moduleName = "";
|
|
|
String chapterName = "";
|
|
|
String sectionName = "";
|
|
|
- List<UserPeriodExportVo> studyList = new ArrayList<>();
|
|
|
+ List<UserPeriodExportV2Vo> studyList = new ArrayList<>();
|
|
|
long i = 0;
|
|
|
Long gradeId = bo.getGradeId();
|
|
|
Long userId = bo.getUserId();
|
|
@@ -1351,47 +1421,81 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
recordQueryBo.setChapterId(classPeriodChapterVo.getId());
|
|
|
recordQueryBo.setModuleId(classPeriodVo.getId());
|
|
|
recordQueryBo.setGradeId(gradeId);
|
|
|
- mergeDataV2(i, moduleName, chapterName, sectionName,classPeriodSectionVo, recordQueryBo);
|
|
|
- // studyList.add();
|
|
|
+ studyList.add(mergeDataV2(i, moduleName, chapterName, sectionName,classPeriodSectionVo, recordQueryBo));
|
|
|
} else {
|
|
|
//章卷
|
|
|
sectionName = classPeriodSectionVo.getTypeName();
|
|
|
- UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
|
|
|
- userPeriodQueryBo.setExamId(classPeriodSectionVo.getId());
|
|
|
- userPeriodQueryBo.setCourseId(classPeriodSectionVo.getCourseId());
|
|
|
- userPeriodQueryBo.setGoodsId(goodsId);
|
|
|
- userPeriodQueryBo.setUserId(classPeriodSectionVo.getUserId());
|
|
|
- userPeriodQueryBo.setChapterId(classPeriodChapterVo.getId());
|
|
|
- userPeriodQueryBo.setModuleId(classPeriodVo.getId());
|
|
|
- userPeriodQueryBo.setGradeId(gradeId);
|
|
|
- List<UserPeriodStatusVo> userPeriodStatusVos = userPeriodStatusService.selectPeriodStatus(userPeriodQueryBo);
|
|
|
- if (!CollectionUtils.isEmpty(userPeriodStatusVos)) {
|
|
|
- int numIndex = userPeriodStatusVos.size() - 1;
|
|
|
- UserPeriodStatusVo userPeriodStatusVo = userPeriodStatusVos.get(numIndex);
|
|
|
- classPeriodSectionVo.setNumIndex(Convert.toLong(userPeriodStatusVos.size()));
|
|
|
- classPeriodSectionVo.setStatus(userPeriodStatusVo.getStatus());
|
|
|
- classPeriodSectionVo.setNumList(Convert.toLong(userPeriodStatusVos.size()));
|
|
|
- classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
|
|
|
- classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
|
|
|
- classPeriodSectionVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
|
|
|
- classPeriodSectionVo.setPeriodId(userPeriodStatusVo.getPeriodId());
|
|
|
- classPeriodSectionVo.setAuditTime(userPeriodStatusVo.getAuditTime());
|
|
|
- classPeriodSectionVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
|
|
|
- classPeriodSectionVo.setPeriodStatusId(userPeriodStatusVo.getId());
|
|
|
- classPeriodChapterVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
|
|
|
- }
|
|
|
classPeriodSectionVo.setModuleId(classPeriodVo.getId());
|
|
|
classPeriodSectionVo.setChapterId(classPeriodChapterVo.getId());
|
|
|
classPeriodSectionVo.setGoodsId(goodsId);
|
|
|
classPeriodSectionVo.setGradeId(gradeId);
|
|
|
- studyList.add(mergeData(i, moduleName, chapterName, sectionName, classPeriodSectionVo, classPeriodChapterVo.getPerformance(), true));
|
|
|
+ classPeriodSectionVo.setUserId(classPeriodSectionVo.getUserId());
|
|
|
+ studyList.add(mergeEamDataV2(i, moduleName, chapterName, sectionName, classPeriodSectionVo));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //为章搜索节记录和学时记录
|
|
|
+ if (classPeriodVo.getType() == 2) {
|
|
|
+ moduleName = "";
|
|
|
+ chapterName = classPeriodVo.getTypeName();
|
|
|
+ List<ClassPeriodSectionVo> classPeriodSectionVos = baseMapper.listPeriodSection(classPeriodVo.getId(), goodsId, classPeriodVo.getCourseId(), userId);
|
|
|
+ for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos) {
|
|
|
+ i++;
|
|
|
+ sectionName = classPeriodSectionVo.getTypeName();
|
|
|
+ UserStudyRecordQueryBo recordQueryBo = new UserStudyRecordQueryBo();
|
|
|
+ recordQueryBo.setSectionId(classPeriodSectionVo.getId());
|
|
|
+ recordQueryBo.setCourseId(classPeriodSectionVo.getCourseId());
|
|
|
+ recordQueryBo.setGoodsId(goodsId);
|
|
|
+ recordQueryBo.setUserId(classPeriodSectionVo.getUserId());
|
|
|
+ recordQueryBo.setChapterId(classPeriodVo.getId());
|
|
|
+ recordQueryBo.setModuleId(classPeriodVo.getId());
|
|
|
+ recordQueryBo.setGradeId(gradeId);
|
|
|
+ studyList.add(mergeDataV2(i, moduleName, chapterName, sectionName,classPeriodSectionVo, recordQueryBo));
|
|
|
+ }
|
|
|
+ List<ClassPeriodSectionVo> classPeriodSectionVos1 = baseMapper.listPeriodSectionExam(classPeriodVo.getId(), goodsId, classPeriodVo.getCourseId(), userId);
|
|
|
+ for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos1) {
|
|
|
+ //章卷
|
|
|
+ i++;
|
|
|
+ sectionName = classPeriodSectionVo.getTypeName();
|
|
|
+ sectionName = classPeriodSectionVo.getTypeName();
|
|
|
+ classPeriodSectionVo.setModuleId(classPeriodVo.getId());
|
|
|
+ classPeriodSectionVo.setChapterId(classPeriodVo.getId());
|
|
|
+ classPeriodSectionVo.setGoodsId(goodsId);
|
|
|
+ classPeriodSectionVo.setGradeId(gradeId);
|
|
|
+ classPeriodSectionVo.setUserId(classPeriodSectionVo.getUserId());
|
|
|
+ studyList.add(mergeEamDataV2(i, moduleName, chapterName, sectionName, classPeriodSectionVo));
|
|
|
+ }
|
|
|
+ classPeriodSectionVos.addAll(classPeriodSectionVos1);
|
|
|
+ classPeriodVo.setClassPeriodSectionList(classPeriodSectionVos);
|
|
|
+ }
|
|
|
+ //为节搜索学时记录
|
|
|
+ if (classPeriodVo.getType() == 3) {
|
|
|
+ i++;
|
|
|
+ sectionName = classPeriodVo.getTypeName();
|
|
|
+ UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
|
|
|
+ userPeriodQueryBo.setSectionId(classPeriodVo.getId());
|
|
|
+ userPeriodQueryBo.setCourseId(classPeriodVo.getCourseId());
|
|
|
+ userPeriodQueryBo.setGoodsId(bo.getGoodsId());
|
|
|
+ userPeriodQueryBo.setUserId(classPeriodVo.getUserId());
|
|
|
+ userPeriodQueryBo.setChapterId(0L);
|
|
|
+ userPeriodQueryBo.setModuleId(0L);
|
|
|
+ userPeriodQueryBo.setGradeId(bo.getGradeId());
|
|
|
+ UserStudyRecordQueryBo recordQueryBo = BeanUtil.toBean(userPeriodQueryBo, UserStudyRecordQueryBo.class);
|
|
|
+
|
|
|
+ ClassPeriodSectionVo classPeriodSectionVo = BeanUtil.toBean(userPeriodQueryBo, ClassPeriodSectionVo.class);
|
|
|
+ classPeriodSectionVo.setSectionType(classPeriodVo.getSectionType());
|
|
|
+ classPeriodSectionVo.setRealDuration(classPeriodVo.getRealDuration());
|
|
|
+ classPeriodSectionVo.setDurationTime(classPeriodVo.getDurationTime());
|
|
|
+ classPeriodSectionVo.setRealLiveStartTime(classPeriodVo.getRealLiveStartTime());
|
|
|
+ classPeriodSectionVo.setRealLiveEndTime(classPeriodVo.getRealLiveEndTime());
|
|
|
+ System.out.println("EER");
|
|
|
+ System.out.println(classPeriodSectionVo);
|
|
|
+ studyList.add(mergeDataV2(i, moduleName, chapterName, sectionName,classPeriodSectionVo, recordQueryBo));
|
|
|
+ }
|
|
|
}
|
|
|
- return classPeriodVos;
|
|
|
+ return studyList;
|
|
|
}
|
|
|
|
|
|
@Override
|