diff --git a/java/src/main/java/com/hzu/bookingsystem/VO/WeekVO.java b/java/src/main/java/com/hzu/bookingsystem/VO/WeekVO.java new file mode 100644 index 0000000..1315d9d --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/VO/WeekVO.java @@ -0,0 +1,8 @@ +package com.hzu.bookingsystem.VO; + +import lombok.Data; + +@Data +public class WeekVO { + private Integer week; +} diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java index 66f9d61..ba18040 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java @@ -160,6 +160,56 @@ public class LabTimeController { } + /** + * 获取实验室可被预约的【5】【7】时间表 + * + * @param lab_id + * @param year + * @param semester + * @return + */ + @GetMapping(value = "/getLabScheduleAll") + public ResultVO getLabScheduleAll(@RequestParam("labId") Integer lab_id, + @RequestParam("year") String year, + @RequestParam("semester") Integer semester) { + //总表 + List>> lists = new ArrayList<>(); + for (int i = 1; i <= 5; i++) { + // 一行数据 + List> timeList = new ArrayList<>(); + for (int j = 1; j <= 7; j++) { + timeList.add(labTimeService.findWeeks(lab_id, year, semester, j, i)); + } + lists.add(timeList); + } + return ResultVOUtil.success(lists); + } + + /** + * 获取实验室可被预约的【5】【7】时间表 + * + * @param lab_id + * @param year + * @param semester + * @return + */ + @GetMapping(value = "/getLabScheduleAbleBook") + public ResultVO getLabScheduleAbleBook(@RequestParam("labId") Integer lab_id, + @RequestParam("year") String year, + @RequestParam("semester") Integer semester, + @RequestParam("uc_id") Integer uc_id) { + //总表 + List>> lists = new ArrayList<>(); + for (int i = 1; i <= 5; i++) { + // 一行数据 + List> timeList = new ArrayList<>(); + for (int j = 1; j <= 7; j++) { + timeList.add(labTimeService.findWeeksAble(lab_id, year, semester, j, i, uc_id)); + } + lists.add(timeList); + } + return ResultVOUtil.success(lists); + } // /** // * author 吴志岳 // * 一键插入该学年学期 16周所有可选时间段 diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java index b190b0d..d541c4a 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java @@ -1,5 +1,6 @@ package com.hzu.bookingsystem.repository; +import com.hzu.bookingsystem.VO.WeekVO; import com.hzu.bookingsystem.dto.LabRecordDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -43,4 +44,23 @@ public interface LabRecordDTOMapper { " tb_lab_time.time, " + " tb_lab_record.`status`") List getRecordListByUId(Integer uId); + + + @Select("SELECT " + + " tb_lab_time.`week` " + + "FROM " + + " tb_user_course, " + + " tb_lab_record " + + " INNER JOIN tb_lab_time ON tb_lab_record.lt_id = tb_lab_time.lt_id " + + "WHERE " + + " tb_lab_time.`year` = #{year} " + + " AND tb_lab_time.semester = #{semester} " + + " AND tb_lab_time.lab_id = #{labId} " + + " AND tb_lab_time.`day` = #{day} " + + " AND tb_lab_time.time = #{time} " + + " AND tb_user_course.uc_id = tb_lab_record.uc_id " + + " AND tb_user_course.uc_id = #{uc_id} " + + " AND tb_lab_record.`status` IN ( " + + " 0, " + " 2)") + List getWeekBooked(Integer labId,String year,Integer semester, Integer day,Integer time,Integer uc_id); } diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java index cb6463d..992f913 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java @@ -78,6 +78,12 @@ public interface LabRecordService { */ void deleteByLtIdAndUcId(Integer LtId,Integer UcId); + /** + * author 吴志岳 + * 查找用户当前课程已经预约的时间段 + */ + List findWeeksBooked(Integer labId,String year,Integer semester, Integer day,Integer time,Integer uc_id); + diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java index f8ba77b..44462a6 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java @@ -1,5 +1,6 @@ package com.hzu.bookingsystem.service.impl; +import com.hzu.bookingsystem.VO.WeekVO; import com.hzu.bookingsystem.bean.LabRecordBean; import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.bean.UserBean; @@ -22,6 +23,7 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import javax.transaction.Transactional; +import java.util.ArrayList; import java.util.List; @Service @@ -177,5 +179,15 @@ public class LabRecordServiceImpl implements LabRecordService{ labrecordRepository.deleteByLtIdAndUcId(ltId,ucId); } + @Override + public List findWeeksBooked(Integer labId, String year, Integer semester, Integer day, Integer time, Integer uc_id) { + List list = labRecordDTOMapper.getWeekBooked(labId, year, semester, day, time, uc_id); + List weeks = new ArrayList<>(); + for (WeekVO weekVO : list) { + weeks.add(weekVO.getWeek()); + } + return weeks; + } + }