|
@@ -1,6 +1,8 @@
|
|
|
package org.dromara.system.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import lombok.SneakyThrows;
|
|
|
+import org.apache.poi.util.StringUtil;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.domain.dto.RoleDTO;
|
|
|
import org.dromara.common.core.domain.model.LoginUser;
|
|
@@ -16,6 +18,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
import org.dromara.system.domain.bo.FormalTeacherClassBo;
|
|
|
+import org.dromara.system.domain.list.CourseTableList;
|
|
|
import org.dromara.system.domain.vo.CourseChangeVo;
|
|
|
import org.dromara.system.domain.vo.CourseTableTimeVo;
|
|
|
import org.dromara.system.domain.vo.FormalTeacherClassVo;
|
|
@@ -29,6 +32,7 @@ import org.dromara.system.domain.vo.CourseTableVo;
|
|
|
import org.dromara.system.domain.CourseTable;
|
|
|
import org.dromara.system.mapper.CourseTableMapper;
|
|
|
import org.dromara.system.service.ICourseTableService;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -55,7 +59,7 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
* 查询课程
|
|
|
*/
|
|
|
@Override
|
|
|
- public CourseTableVo queryById(Long id){
|
|
|
+ public CourseTableVo queryById(Long id) {
|
|
|
return baseMapper.selectVoById(id);
|
|
|
}
|
|
|
|
|
@@ -64,23 +68,26 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
*/
|
|
|
@SneakyThrows
|
|
|
@Override
|
|
|
- public TableDataInfo<CourseTableVo> queryPageList(CourseTableBo bo, PageQuery pageQuery) {
|
|
|
- if(StringUtils.isEmpty(bo.getClassId()) || StringUtils.isEmpty(bo.getSchoolId())){
|
|
|
+ public TableDataInfo<List<CourseTableVo>> queryPageList(CourseTableBo bo, PageQuery pageQuery) {
|
|
|
+ if (StringUtils.isEmpty(bo.getClassId()) || StringUtils.isEmpty(bo.getSchoolId())) {
|
|
|
return TableDataInfo.build(new ArrayList<>());
|
|
|
}
|
|
|
LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(bo);
|
|
|
Page<CourseTableVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
List<CourseTableVo> courseTableList = result.getRecords();
|
|
|
|
|
|
+ Map<String, List<CourseTableVo>> groupedByType = courseTableList.stream().collect(Collectors.groupingBy(CourseTableVo::getWeek));
|
|
|
+
|
|
|
+ List<List<CourseTableVo>> groupedList = new ArrayList<>(groupedByType.values());
|
|
|
|
|
|
//获取本周一和本周五的时间
|
|
|
String fist = DateUtils.getTimeIntervalOne(new Date());
|
|
|
String five = DateUtils.getTimeIntervalFive(fist);
|
|
|
List<CourseChangeVo> courseChangeList = courseChangeMapper.selectCourseChangeListByEdit(bo.getClassId(), fist, five);
|
|
|
- if (courseChangeList != null && courseChangeList.size() >0){
|
|
|
- for (CourseTableVo table : courseTableList) {
|
|
|
+ if (courseChangeList != null && courseChangeList.size() > 0) {
|
|
|
+ for (List<CourseTableVo> courseTableVos : groupedList) {
|
|
|
//将修改后的课程放入当前周课表
|
|
|
- changeCourseTable(table,courseChangeList,fist,five);
|
|
|
+ changeCourseTable(courseTableVos, courseChangeList, fist, five);
|
|
|
}
|
|
|
|
|
|
//如果当前角色是老师,获取老师的课程
|
|
@@ -90,7 +97,7 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
if (params != null && params.size() > 0) {
|
|
|
ro = (String) params.get("role");
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(ro) && "teacher".equals(ro)){
|
|
|
+ if (StringUtils.isNotEmpty(ro) && "teacher".equals(ro)) {
|
|
|
//查询老师当前班级所带的课
|
|
|
FormalTeacherClassBo ftbo = new FormalTeacherClassBo();
|
|
|
ftbo.setClassId(Long.valueOf(bo.getClassId()));
|
|
@@ -101,27 +108,32 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return TableDataInfo.build(result);
|
|
|
+ return TableDataInfo.build(groupedList);
|
|
|
}
|
|
|
|
|
|
@SneakyThrows
|
|
|
@Override
|
|
|
- public TableDataInfo<CourseTableVo> queryPagePcList(CourseTableBo bo, PageQuery pageQuery) {
|
|
|
- if(StringUtils.isEmpty(bo.getClassId()) || StringUtils.isEmpty(bo.getSchoolId())){
|
|
|
+ public TableDataInfo<List<CourseTableVo>> queryPagePcList(CourseTableBo bo, PageQuery pageQuery) {
|
|
|
+ if (StringUtils.isEmpty(bo.getClassId()) || StringUtils.isEmpty(bo.getSchoolId())) {
|
|
|
return TableDataInfo.build(new ArrayList<>());
|
|
|
}
|
|
|
LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(bo);
|
|
|
Page<CourseTableVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
List<CourseTableVo> courseTableList = result.getRecords();
|
|
|
|
|
|
+
|
|
|
+ Map<String, List<CourseTableVo>> groupedByType = courseTableList.stream().collect(Collectors.groupingBy(CourseTableVo::getWeek));
|
|
|
+
|
|
|
+ List<List<CourseTableVo>> groupedList = new ArrayList<>(groupedByType.values());
|
|
|
+
|
|
|
//获取本周一和本周五的时间
|
|
|
String fist = DateUtils.getTimeIntervalOne(new Date());
|
|
|
String five = DateUtils.getTimeIntervalFive(fist);
|
|
|
List<CourseChangeVo> courseChangeList = courseChangeMapper.selectCourseChangeListByEdit(bo.getClassId(), fist, five);
|
|
|
- if (courseChangeList != null && courseChangeList.size() >0){
|
|
|
- for (CourseTableVo table : courseTableList) {
|
|
|
+ if (courseChangeList != null && courseChangeList.size() > 0) {
|
|
|
+ for (List<CourseTableVo> courseTableVos : groupedList) {
|
|
|
//将修改后的课程放入当前周课表
|
|
|
- changeCourseTable(table,courseChangeList,fist,five);
|
|
|
+ changeCourseTable(courseTableVos, courseChangeList, fist, five);
|
|
|
}
|
|
|
|
|
|
//如果当前角色是老师,获取老师的课程
|
|
@@ -146,7 +158,33 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return TableDataInfo.build(result);
|
|
|
+ return TableDataInfo.build(groupedList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据时间查询课表
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @SneakyThrows
|
|
|
+ @Override
|
|
|
+ public R<List<CourseTableVo>> dataCourse(CourseTableBo bo) {
|
|
|
+ //判断传入的时间是周几
|
|
|
+ int dayForWeek = DateUtils.dayForWeek(bo.getData());
|
|
|
+ bo.setWeek(Integer.toString(dayForWeek));
|
|
|
+ LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(bo);
|
|
|
+ List<CourseTableVo> CourseTableVoList = baseMapper.selectCourseVoList(lqw);
|
|
|
+ return R.ok(CourseTableVoList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int deleteWithValidBySchoolId(String schoolId, String classId, String week) {
|
|
|
+ CourseTableBo bo = new CourseTableBo();
|
|
|
+ bo.setSchoolId(schoolId);
|
|
|
+ bo.setClassId(classId);
|
|
|
+ bo.setWeek(week);
|
|
|
+ LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(bo);
|
|
|
+ return baseMapper.delete(lqw);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -155,109 +193,49 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
for (CourseTableVo table : courseTableList) {
|
|
|
table.setTeacherClassName(disciplineName);
|
|
|
Set<Long> teacherClassNum = new HashSet<>();
|
|
|
- if(disciplineName.contains(table.getOneClass())){
|
|
|
- teacherClassNum.add(1L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getTwoClass())){
|
|
|
- teacherClassNum.add(2L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getThreeClass())){
|
|
|
- teacherClassNum.add(3L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getFourClass())){
|
|
|
- teacherClassNum.add(4L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getFiveClass())){
|
|
|
- teacherClassNum.add(5L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getSixClass())){
|
|
|
- teacherClassNum.add(6L);
|
|
|
- }
|
|
|
- if(disciplineName.contains(table.getSevenClass())){
|
|
|
- teacherClassNum.add(7L);
|
|
|
+ if (disciplineName.contains(table.getCourseName())) {
|
|
|
+ table.setTeacherType(true);
|
|
|
}
|
|
|
- if(disciplineName.contains(table.getEightClass())){
|
|
|
- teacherClassNum.add(8L);
|
|
|
- }
|
|
|
- table.setTeacherClassNum(teacherClassNum);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@SneakyThrows
|
|
|
- private void changeCourseTable(CourseTableVo table, List<CourseChangeVo> courseChangeList, String fist, String five) {
|
|
|
+ private void changeCourseTable(List<CourseTableVo> courseTableVos, List<CourseChangeVo> courseChangeList, String fist, String five) {
|
|
|
String format = "yyyy-MM-dd";
|
|
|
Set<Long> classNum = new HashSet<>();
|
|
|
for (CourseChangeVo courseChange : courseChangeList) {
|
|
|
//调课的时间是否在本周
|
|
|
- if(DateUtils.isClass(fist,five,DateUtils.dateTime(courseChange.getSubjectTime()),format)){
|
|
|
- if(StringUtils.equals(courseChange.getSubjectWeek(),table.getWeek())){
|
|
|
- classNum.add(Long.valueOf(courseChange.getIsNum()));
|
|
|
- //第几节课
|
|
|
- if(StringUtils.equals("1",courseChange.getIsNum())){
|
|
|
- table.setOneClass(courseChange.getBeSubject());
|
|
|
- table.setOneTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("2",courseChange.getIsNum())){
|
|
|
- table.setTwoClass(courseChange.getBeSubject());
|
|
|
- table.setTwoTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("3",courseChange.getIsNum())){
|
|
|
- table.setThreeClass(courseChange.getBeSubject());
|
|
|
- table.setThreeTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("4",courseChange.getIsNum())){
|
|
|
- table.setFourClass(courseChange.getBeSubject());
|
|
|
- table.setFourTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("5",courseChange.getIsNum())){
|
|
|
- table.setFiveClass(courseChange.getBeSubject());
|
|
|
- table.setFiveTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("6",courseChange.getIsNum())){
|
|
|
- table.setSixClass(courseChange.getBeSubject());
|
|
|
- table.setSixTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("7",courseChange.getIsNum())){
|
|
|
- table.setSevenClass(courseChange.getBeSubject());
|
|
|
- table.setSevenTeacher(courseChange.getBePersonnel());
|
|
|
- }else if(StringUtils.equals("8",courseChange.getIsNum())){
|
|
|
- table.setEightClass(courseChange.getBeSubject());
|
|
|
- table.setEightTeacher(courseChange.getBePersonnel());
|
|
|
+ if (DateUtils.isClass(fist, five, DateUtils.dateTime(courseChange.getSubjectTime()), format)) {
|
|
|
+ for (CourseTableVo courseTableVo : courseTableVos) {
|
|
|
+ if (StringUtils.equals(courseChange.getSubjectWeek(), courseTableVo.getWeek()) && StringUtils.equals(Long.toString(courseTableVo.getClassNumber()), courseChange.getIsNum()) && StringUtils.equals(courseTableVo.getTimeFrame(), courseChange.getIsFrame())) {
|
|
|
+ classNum.add(Long.valueOf(courseChange.getIsNum()));
|
|
|
+ courseTableVo.setCourseName(courseChange.getBeSubject());
|
|
|
+ courseTableVo.setCourseTeacher(courseChange.getBePersonnel());
|
|
|
+ courseTableVo.setClassType(true);
|
|
|
+ }
|
|
|
+ if (StringUtils.equals(courseChange.getSubjectWeek(), courseTableVo.getWeek()) && StringUtils.equals(Long.toString(courseTableVo.getClassNumber()), courseChange.getBeIsNum()) && StringUtils.equals(courseTableVo.getTimeFrame(), courseChange.getBeIsFrame())) {
|
|
|
+ classNum.add(Long.valueOf(courseChange.getBeIsNum()));
|
|
|
+ courseTableVo.setCourseName(courseChange.getSubject());
|
|
|
+ courseTableVo.setCourseTeacher(courseChange.getApplyName());
|
|
|
+ courseTableVo.setClassType(true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//被调课是否在本周
|
|
|
- if(DateUtils.isClass(fist,five,DateUtils.dateTime(courseChange.getBeSubjectTime()),format)) {
|
|
|
- if(StringUtils.equals(courseChange.getWeek(),table.getWeek())){
|
|
|
- classNum.add(Long.valueOf(courseChange.getBeIsNum()));
|
|
|
- //第几节课
|
|
|
- if(StringUtils.equals("1",courseChange.getBeIsNum())){
|
|
|
- table.setOneClass(courseChange.getSubject());
|
|
|
- table.setOneTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("2",courseChange.getBeIsNum())){
|
|
|
- table.setTwoClass(courseChange.getSubject());
|
|
|
- table.setTwoTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("3",courseChange.getBeIsNum())){
|
|
|
- table.setThreeClass(courseChange.getSubject());
|
|
|
- table.setThreeTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("4",courseChange.getBeIsNum())){
|
|
|
- table.setFourClass(courseChange.getSubject());
|
|
|
- table.setFourTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("5",courseChange.getBeIsNum())){
|
|
|
- table.setFiveClass(courseChange.getSubject());
|
|
|
- table.setFiveTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("6",courseChange.getBeIsNum())){
|
|
|
- table.setSixClass(courseChange.getSubject());
|
|
|
- table.setSixTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("7",courseChange.getBeIsNum())){
|
|
|
- table.setSevenClass(courseChange.getSubject());
|
|
|
- table.setSevenTeacher(courseChange.getApplyName());
|
|
|
- }else if(StringUtils.equals("8",courseChange.getBeIsNum())){
|
|
|
- table.setEightClass(courseChange.getSubject());
|
|
|
- table.setEightTeacher(courseChange.getApplyName());
|
|
|
+ if (DateUtils.isClass(fist, five, DateUtils.dateTime(courseChange.getBeSubjectTime()), format)) {
|
|
|
+ for (CourseTableVo courseTableVo : courseTableVos) {
|
|
|
+ if (StringUtils.equals(courseChange.getSubjectWeek(), courseTableVo.getWeek()) && StringUtils.equals(Long.toString(courseTableVo.getClassNumber()), courseChange.getBeIsNum()) && StringUtils.equals(courseTableVo.getTimeFrame(), courseChange.getBeIsFrame())) {
|
|
|
+ classNum.add(Long.valueOf(courseChange.getBeIsNum()));
|
|
|
+ courseTableVo.setCourseName(courseChange.getSubject());
|
|
|
+ courseTableVo.setCourseTeacher(courseChange.getApplyName());
|
|
|
+ courseTableVo.setClassType(true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- table.setClassNum(classNum);
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 查询课程列表
|
|
|
*/
|
|
@@ -268,6 +246,8 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
}
|
|
|
|
|
|
private LambdaQueryWrapper<CourseTable> buildQueryWrapper(CourseTableBo bo) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append("field(postName,'AM','PM','NIGHT')").toString();
|
|
|
Map<String, Object> params = bo.getParams();
|
|
|
LambdaQueryWrapper<CourseTable> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getSchoolId()), CourseTable::getSchoolId, bo.getSchoolId());
|
|
@@ -275,22 +255,12 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getClassId()), CourseTable::getClassId, bo.getClassId());
|
|
|
lqw.like(StringUtils.isNotBlank(bo.getClassName()), CourseTable::getClassName, bo.getClassName());
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getWeek()), CourseTable::getWeek, bo.getWeek());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getOneClass()), CourseTable::getOneClass, bo.getOneClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getOneTeacher()), CourseTable::getOneTeacher, bo.getOneTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getTwoClass()), CourseTable::getTwoClass, bo.getTwoClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getTwoTeacher()), CourseTable::getTwoTeacher, bo.getTwoTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getThreeClass()), CourseTable::getThreeClass, bo.getThreeClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getThreeTeacher()), CourseTable::getThreeTeacher, bo.getThreeTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getFourClass()), CourseTable::getFourClass, bo.getFourClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getFourTeacher()), CourseTable::getFourTeacher, bo.getFourTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getFiveClass()), CourseTable::getFiveClass, bo.getFiveClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getFiveTeacher()), CourseTable::getFiveTeacher, bo.getFiveTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getSixClass()), CourseTable::getSixClass, bo.getSixClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getSixTeacher()), CourseTable::getSixTeacher, bo.getSixTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getSevenClass()), CourseTable::getSevenClass, bo.getSevenClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getSevenTeacher()), CourseTable::getSevenTeacher, bo.getSevenTeacher());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getEightClass()), CourseTable::getEightClass, bo.getEightClass());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getEightTeacher()), CourseTable::getEightTeacher, bo.getEightTeacher());
|
|
|
+ lqw.eq(bo.getClassNumber() != null, CourseTable::getClassNumber, bo.getClassNumber());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getTimeFrame()), CourseTable::getTimeFrame, bo.getTimeFrame());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getCourseName()), CourseTable::getCourseName, bo.getCourseName());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getCourseTeacher()), CourseTable::getCourseTeacher, bo.getCourseTeacher());
|
|
|
+ lqw.orderByAsc(CourseTable::getTimeFrame);
|
|
|
+ lqw.orderByAsc(CourseTable::getClassNumber);
|
|
|
return lqw;
|
|
|
}
|
|
|
|
|
@@ -298,23 +268,35 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
* 新增课程
|
|
|
*/
|
|
|
@Override
|
|
|
- public R<Void> insertByBo(CourseTableBo bo) {
|
|
|
-
|
|
|
+ @Transactional
|
|
|
+ public R<Void> insertByBo(CourseTableList boList) {
|
|
|
+ int index = 0;
|
|
|
CourseTableBo table = new CourseTableBo();
|
|
|
- table.setSchoolId(bo.getSchoolId());
|
|
|
- table.setClassId(bo.getClassId());
|
|
|
- table.setWeek(bo.getWeek());
|
|
|
+ table.setSchoolId(boList.getSchoolId());
|
|
|
+ table.setClassId(boList.getClassId());
|
|
|
+ table.setWeek(boList.getWeek());
|
|
|
LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(table);
|
|
|
List<CourseTableVo> courseTableList = baseMapper.selectVoList(lqw);
|
|
|
- if(courseTableList!=null && courseTableList.size()>0){
|
|
|
+ if (courseTableList != null && courseTableList.size() > 0) {
|
|
|
return R.fail("当前课表已存在,请前去修改");
|
|
|
}
|
|
|
- bo.setCreateTime(DateUtils.getNowDate());
|
|
|
- CourseTable add = MapstructUtils.convert(bo, CourseTable.class);
|
|
|
- validEntityBeforeSave(add);
|
|
|
- boolean flag = baseMapper.insert(add) > 0;
|
|
|
- if (flag) {
|
|
|
- bo.setId(add.getId());
|
|
|
+ List<CourseTableBo> courseTableBoList = boList.getCourseTableBoList();
|
|
|
+ for (CourseTableBo courseTableBo : courseTableBoList) {
|
|
|
+ courseTableBo.setSchoolId(boList.getSchoolId());
|
|
|
+ courseTableBo.setSchoolName(boList.getSchoolName());
|
|
|
+ courseTableBo.setClassId(boList.getClassId());
|
|
|
+ courseTableBo.setClassName(boList.getClassName());
|
|
|
+ courseTableBo.setWeek(boList.getWeek());
|
|
|
+ courseTableBo.setCreateTime(DateUtils.getNowDate());
|
|
|
+ CourseTable add = MapstructUtils.convert(courseTableBo, CourseTable.class);
|
|
|
+ validEntityBeforeSave(add);
|
|
|
+ int i = baseMapper.insert(add);
|
|
|
+ if (i > 0) {
|
|
|
+ courseTableBo.setId(add.getId());
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (index > 0) {
|
|
|
return R.ok();
|
|
|
}
|
|
|
return R.fail();
|
|
@@ -324,17 +306,39 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
* 修改课程
|
|
|
*/
|
|
|
@Override
|
|
|
- public Boolean updateByBo(CourseTableBo bo) {
|
|
|
- bo.setUpdateTime(DateUtils.getNowDate());
|
|
|
- CourseTable update = MapstructUtils.convert(bo, CourseTable.class);
|
|
|
- validEntityBeforeSave(update);
|
|
|
- return baseMapper.updateById(update) > 0;
|
|
|
+ @Transactional
|
|
|
+ public Boolean updateByBo(CourseTableList boList) {
|
|
|
+ CourseTableBo bo = new CourseTableBo();
|
|
|
+ bo.setSchoolId(boList.getSchoolId());
|
|
|
+ bo.setClassId(boList.getClassId());
|
|
|
+ bo.setWeek(boList.getWeek());
|
|
|
+ LambdaQueryWrapper<CourseTable> lqw = buildQueryWrapper(bo);
|
|
|
+ baseMapper.delete(lqw);
|
|
|
+ int index = 0;
|
|
|
+ List<CourseTableBo> courseTableBoList = boList.getCourseTableBoList();
|
|
|
+ for (CourseTableBo courseTableBo : courseTableBoList) {
|
|
|
+ courseTableBo.setSchoolId(boList.getSchoolId());
|
|
|
+ courseTableBo.setSchoolName(boList.getSchoolName());
|
|
|
+ courseTableBo.setClassId(boList.getClassId());
|
|
|
+ courseTableBo.setClassName(boList.getClassName());
|
|
|
+ courseTableBo.setWeek(boList.getWeek());
|
|
|
+ //id不存咋新增
|
|
|
+ courseTableBo.setCreateTime(DateUtils.getNowDate());
|
|
|
+ CourseTable add = MapstructUtils.convert(courseTableBo, CourseTable.class);
|
|
|
+ validEntityBeforeSave(add);
|
|
|
+ boolean flag = baseMapper.insert(add) > 0;
|
|
|
+ if (flag) {
|
|
|
+ courseTableBo.setId(add.getId());
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return index > 0;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存前的数据校验
|
|
|
*/
|
|
|
- private void validEntityBeforeSave(CourseTable entity){
|
|
|
+ private void validEntityBeforeSave(CourseTable entity) {
|
|
|
//TODO 做一些数据校验,如唯一约束
|
|
|
}
|
|
|
|
|
@@ -343,7 +347,7 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
*/
|
|
|
@Override
|
|
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
+ if (isValid) {
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
}
|
|
|
return baseMapper.deleteBatchIds(ids) > 0;
|
|
@@ -357,7 +361,7 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
map.put("teacher", "");
|
|
|
map.put("subject", "");
|
|
|
//家长端查询下课时间
|
|
|
- String key =DateUtils.getDate() + ":" + schoolId + ":" + classId;
|
|
|
+ String key = DateUtils.getDate() + ":" + schoolId + ":" + classId;
|
|
|
//key = 学校id:班级id
|
|
|
//Redis根据key键,查询对应的值
|
|
|
String xiakeTime = "";
|
|
@@ -365,7 +369,7 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
if (StringUtils.isNotEmpty(value)) {
|
|
|
//延迟放学
|
|
|
String[] split = value.split(":");
|
|
|
- if(!"time".equals(split[1])){
|
|
|
+ if (!"time".equals(split[1])) {
|
|
|
//下课时间
|
|
|
xiakeTime = split[1] + ":" + split[2] + ":" + split[3];
|
|
|
}
|
|
@@ -380,72 +384,51 @@ public class CourseTableServiceImpl implements ICourseTableService {
|
|
|
return R.ok(map);
|
|
|
}
|
|
|
//获取当前账号所属学校时间表
|
|
|
- CourseTableTimeVo courseTableTime = courseTableTimeMapper.selectCourseTableTimeBySchoolId(schoolId);
|
|
|
- if (courseTableTime == null) {
|
|
|
+ List<CourseTableTimeVo> courseTableTimeList = courseTableTimeMapper.selectCourseTableTimeBySchoolId(schoolId);
|
|
|
+ if (courseTableTimeList == null && courseTableTimeList.size() <= 0) {
|
|
|
return R.ok(map);
|
|
|
}
|
|
|
- //判断当前时间是第几节课
|
|
|
- int index = isClass(courseTableTime);
|
|
|
- if (index == 0) {
|
|
|
+ //返回当前时间所在的课表时间信息
|
|
|
+ CourseTableTimeVo courseTableTime = isClass(courseTableTimeList);
|
|
|
+ if (ObjectUtils.isEmpty(courseTableTime)) {
|
|
|
return R.ok(map);
|
|
|
}
|
|
|
//获取当前班级课程
|
|
|
- CourseTableVo courseTable = baseMapper.selectCourseTableByClassIdAndWeek(classId, dayForWeek);
|
|
|
- if (courseTable == null) {
|
|
|
+ List<CourseTableVo> courseTableList = baseMapper.selectCourseTableByClassIdAndWeek(classId, dayForWeek);
|
|
|
+ if (courseTableList == null && courseTableList.size() <= 0) {
|
|
|
return R.ok(map);
|
|
|
}
|
|
|
- if (index == 1) {
|
|
|
- map.put("teacher", courseTable.getOneTeacher());
|
|
|
- map.put("subject", courseTable.getOneClass());
|
|
|
- } else if (index == 2) {
|
|
|
- map.put("teacher", courseTable.getTwoTeacher());
|
|
|
- map.put("subject", courseTable.getTwoClass());
|
|
|
- } else if (index == 3) {
|
|
|
- map.put("teacher", courseTable.getThreeTeacher());
|
|
|
- map.put("subject", courseTable.getThreeClass());
|
|
|
- } else if (index == 4) {
|
|
|
- map.put("teacher", courseTable.getFourTeacher());
|
|
|
- map.put("subject", courseTable.getFourClass());
|
|
|
- } else if (index == 5) {
|
|
|
- map.put("teacher", courseTable.getFiveTeacher());
|
|
|
- map.put("subject", courseTable.getFiveClass());
|
|
|
- } else if (index == 6) {
|
|
|
- map.put("teacher", courseTable.getSixTeacher());
|
|
|
- map.put("subject", courseTable.getSixClass());
|
|
|
- } else if (index == 7) {
|
|
|
- map.put("teacher", courseTable.getSevenTeacher());
|
|
|
- map.put("subject", courseTable.getSevenClass());
|
|
|
- } else if (index == 8) {
|
|
|
- map.put("teacher", courseTable.getEightTeacher());
|
|
|
- map.put("subject", courseTable.getEightClass());
|
|
|
+ //获取本周一和本周五的时间
|
|
|
+ String fist = DateUtils.getTimeIntervalOne(new Date());
|
|
|
+ String five = DateUtils.getTimeIntervalFive(fist);
|
|
|
+ List<CourseChangeVo> courseChangeList = courseChangeMapper.selectCourseChangeListByEdit(String.valueOf(classId), fist, five);
|
|
|
+ if (courseChangeList != null && courseChangeList.size() > 0) {
|
|
|
+ //将修改后的课程放入当前周课表
|
|
|
+ changeCourseTable(courseTableList, courseChangeList, fist, five);
|
|
|
}
|
|
|
|
|
|
+ for (CourseTableVo courseTableVo : courseTableList) {
|
|
|
+ if (courseTableTime.getClassNumber() == courseTableVo.getClassNumber() && courseTableTime.getTimeFrame().equals(courseTableVo.getTimeFrame())) {
|
|
|
+ map.put("teacher", courseTableVo.getCourseTeacher());
|
|
|
+ map.put("subject", courseTableVo.getCourseName());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
return R.ok(map);
|
|
|
}
|
|
|
|
|
|
|
|
|
@SneakyThrows
|
|
|
- private int isClass(CourseTableTimeVo courseTableTime) {
|
|
|
+ private CourseTableTimeVo isClass(List<CourseTableTimeVo> courseTableTimeList) {
|
|
|
//获取当前时间
|
|
|
String nowTime = DateUtils.getNowTime();
|
|
|
- int index = 0;
|
|
|
- if (StringUtils.isNotEmpty(courseTableTime.getOneStartTime()) && DateUtils.isClass(courseTableTime.getOneStartTime(), courseTableTime.getOneEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 1;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getTwoStartTime()) && DateUtils.isClass(courseTableTime.getTwoStartTime(), courseTableTime.getTwoEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 2;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getThreeStartTime()) && DateUtils.isClass(courseTableTime.getThreeStartTime(), courseTableTime.getThreeEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 3;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getFourStartTime()) && DateUtils.isClass(courseTableTime.getFourStartTime(), courseTableTime.getFourEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 4;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getFiveStartTime()) && DateUtils.isClass(courseTableTime.getFiveStartTime(), courseTableTime.getFiveEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 5;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getSixStartTime()) && DateUtils.isClass(courseTableTime.getSixStartTime(), courseTableTime.getSixEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 6;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getSevenStartTime()) && DateUtils.isClass(courseTableTime.getSevenStartTime(), courseTableTime.getSevenEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 7;
|
|
|
- } else if (StringUtils.isNotEmpty(courseTableTime.getEightStartTime()) && DateUtils.isClass(courseTableTime.getEightStartTime(), courseTableTime.getEightEndTime(), nowTime, "HH:mm")) {
|
|
|
- index = 8;
|
|
|
+ for (CourseTableTimeVo courseTableTimeVo : courseTableTimeList) {
|
|
|
+ if (StringUtils.isNotEmpty(courseTableTimeVo.getStartTime()) && DateUtils.isClass(courseTableTimeVo.getStartTime(), courseTableTimeVo.getEndTime(), nowTime, "HH:mm")) {
|
|
|
+ return courseTableTimeVo;
|
|
|
+ }
|
|
|
}
|
|
|
- return index;
|
|
|
+ return new CourseTableTimeVo();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|