班级详情、班级列表添加考试周时间范围

This commit is contained in:
wuchunlei
2025-07-08 15:34:51 +08:00
parent 9009e97c4c
commit 6ef9c9fb15

View File

@@ -28,6 +28,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*; import java.util.*;
@Slf4j @Slf4j
@@ -632,6 +634,16 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
Map<String,Object> result = new HashMap<>(); Map<String,Object> result = new HashMap<>();
result.put("class",classEntity); result.put("class",classEntity);
result.put("classModel",classModel); 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("courses",courses);
result.put("admins",admins); result.put("admins",admins);
result.put("students",studentRes); result.put("students",studentRes);
@@ -827,6 +839,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
wrapper.leftJoin(ClassUser.class,ClassUser::getClassId,ClassEntity::getId); wrapper.leftJoin(ClassUser.class,ClassUser::getClassId,ClassEntity::getId);
wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId); wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId);
wrapper.select(ClassEntity::getId,ClassEntity::getTitle,ClassEntity::getNumber,ClassEntity::getIcon); wrapper.select(ClassEntity::getId,ClassEntity::getTitle,ClassEntity::getNumber,ClassEntity::getIcon);
wrapper.selectAs(ClassEntity::getStartTime,"startTime");
wrapper.selectAs(ClassModel::getId,"modelId"); wrapper.selectAs(ClassModel::getId,"modelId");
wrapper.select(ClassModel::getType); wrapper.select(ClassModel::getType);
wrapper.distinct(); wrapper.distinct();
@@ -844,10 +857,25 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
List<Map<String,Object>> list = this.baseMapper.selectMaps(wrapper); List<Map<String,Object>> list = this.baseMapper.selectMaps(wrapper);
if (list.size() > 0){ if (list.size() > 0){
for (Map<String,Object> map:list){ for (Map<String,Object> 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<ClassUser>() map.put("role",classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,map.get("id").toString()) .eq(ClassUser::getClassId,map.get("id").toString())
.eq(ClassUser::getUserId,ShiroUtils.getUId()))); .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; return list;