diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java index 4c2dddea..c54e9753 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java @@ -28,6 +28,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; @Slf4j @@ -632,6 +634,16 @@ public class ClassEntityServiceImpl extends ServiceImpl result = new HashMap<>(); result.put("class",classEntity); result.put("classModel",classModel); + result.put("examStartTime",""); + result.put("examEndTime",""); + result.put("examEndDays",""); + if (classModel.getIsExam()==1){ + Date examStartTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()); + result.put("examStartTime",DateUtils.stringToDate(DateUtils.format(examStartTime),"yyyy-MM-dd")); + Date examEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()-1+classModel.getExamDays()); + result.put("examEndTime",DateUtils.stringToDate(DateUtils.format(examEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss")); + result.put("examEndDays",Math.ceil((examStartTime.getTime()-new Date().getTime())/60/60/24/1000)); + } result.put("courses",courses); result.put("admins",admins); result.put("students",studentRes); @@ -827,6 +839,7 @@ public class ClassEntityServiceImpl extends ServiceImpl> list = this.baseMapper.selectMaps(wrapper); if (list.size() > 0){ for (Map map:list){ - map.put("classModel",classModelDao.selectById(map.get("modelId").toString())); + ClassModel classModel = classModelDao.selectById(map.get("modelId").toString()); + map.put("classModel",classModel); map.put("role",classUserDao.selectList(new LambdaQueryWrapper() .eq(ClassUser::getClassId,map.get("id").toString()) .eq(ClassUser::getUserId,ShiroUtils.getUId()))); + map.put("studyEndTime",""); + map.put("examStartTime",""); + map.put("examEndTime",""); + if (map.get("startTime")!=null){ + LocalDateTime dateTime = (LocalDateTime)map.get("startTime"); + Date studyEndTime = DateUtils.addDateDays(Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()),classModel.getDays()-1); + map.put("studyEndTime",DateUtils.stringToDate(DateUtils.format(studyEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss")); + if (classModel.getIsExam()==1){ + Date examStartTime = DateUtils.addDateDays(Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()),classModel.getDays()); + map.put("examStartTime",DateUtils.stringToDate(DateUtils.format(examStartTime),"yyyy-MM-dd")); + Date examEndTime = DateUtils.addDateDays(Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()),classModel.getDays()-1+classModel.getExamDays()); + map.put("examEndTime",DateUtils.stringToDate(DateUtils.format(examEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss")); + } + } } } return list;