[feat][M]: 新增我的课表接口,用户课表接口,实验室课表接口

master
Romesum 5 years ago
parent 341d4775b9
commit c7db302e52

@ -34,9 +34,6 @@ public class LabRecordController {
@Autowired
private UserController userController;
@Autowired
private LabRecordDTOMapper labRecordDTOMapper;
// 根据id查看实验室记录
@GetMapping(value = "/findlabrecord/{lr_id}")
public ResultVO<Map<String, LabRecordBean>> FindLabRecordId(@PathVariable("lr_id") Integer lr_id) {
@ -106,8 +103,8 @@ public class LabRecordController {
public ResultVO updateWeeks(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//1. 转换对象
LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
Integer uc_id = (Integer)map.get("uc_id");
List<Integer> weeks = (List<Integer>)map.get("weeks");
Integer uc_id = (Integer) map.get("uc_id");
List<Integer> weeks = (List<Integer>) map.get("weeks");
System.out.println(labTime);
System.out.println(uc_id);
System.out.println(weeks);
@ -117,28 +114,28 @@ public class LabRecordController {
labRecordBean.setUcId(uc_id);
//3. DAO
List<Integer> weekAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime(),uc_id);
List<Integer> weekAble = labTimeService.findWeeksAble(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime(), uc_id);
//判断是否选择不可选周数
for (Integer i :weeks){
for (Integer i : weeks) {
if (!weekAble.contains(i))
return ResultVOUtil.error(-1,"选择了不可选的周数");
return ResultVOUtil.error(-1, "选择了不可选的周数");
}
List<LabTimeBean> labTimeBeanList = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
List<LabTimeBean> labTimeBeanList = labTimeService.findTimes(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime());
//过滤不可选取
for (LabTimeBean labTimeBean: labTimeBeanList){
for (LabTimeBean labTimeBean : labTimeBeanList) {
if (!weekAble.contains(labTimeBean.getWeek()))
labTimeBeanList.remove(labTime);
}
//4. 删除record
for (LabTimeBean labTimeBean: labTimeBeanList){
labrecordService.deleteByLtIdAndUcId(labTimeBean.getLtId(),uc_id);
for (LabTimeBean labTimeBean : labTimeBeanList) {
labrecordService.deleteByLtIdAndUcId(labTimeBean.getLtId(), uc_id);
}
//5. 插入record
for (LabTimeBean labTimeBean: labTimeBeanList){
if (weeks.contains(labTimeBean.getWeek())){
for (LabTimeBean labTimeBean : labTimeBeanList) {
if (weeks.contains(labTimeBean.getWeek())) {
LabRecordBean labRecordBean1 = new LabRecordBean().builder()
.ltId(labTimeBean.getLtId())
.ucId(uc_id)
@ -172,4 +169,82 @@ public class LabRecordController {
}
return ResultVOUtil.success(lists);
}
/**
* author
*
*
* @param lab_id
* @param year
* @param semester
* @return
*/
@GetMapping("/getLabSchedule")
public ResultVO getLabSchedule(@RequestParam("labId") Integer lab_id,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester) {
//总表
List<List<List<Map<String, Object>>>> lists = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
// 一行数据
List<List<Map<String, Object>>> timeList = new ArrayList<>();
for (int j = 1; j <= 7; j++) {
timeList.add(labrecordService.getLabSchedule(lab_id, year, semester, j, i));
}
lists.add(timeList);
}
return ResultVOUtil.success(lists);
}
/**
* author
*
*
* @param u_id
* @param year
* @param semester
* @return
*/
@GetMapping("/getUserSchedule")
public ResultVO getUserSchedule(@RequestParam("u_id") Integer u_id,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester) {
//总表
List<List<List<Map<String, Object>>>> lists = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
// 一行数据
List<List<Map<String, Object>>> timeList = new ArrayList<>();
for (int j = 1; j <= 7; j++) {
timeList.add(labrecordService.getUserSchedule(u_id, year, semester, j, i));
}
lists.add(timeList);
}
return ResultVOUtil.success(lists);
}
/**
* author
*
*
* @param year
* @param semester
* @return
*/
@GetMapping("/getUserScheduleBySelf")
public ResultVO getUserScheduleBySelf(HttpServletRequest request,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester) {
//总表
List<List<List<Map<String, Object>>>> lists = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
// 一行数据
List<List<Map<String, Object>>> timeList = new ArrayList<>();
for (int j = 1; j <= 7; j++) {
timeList.add(labrecordService.getUserSchedule(userController.getUIdByCookie(request), year, semester, j, i));
}
lists.add(timeList);
}
return ResultVOUtil.success(lists);
}
}

@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@Mapper
public interface LabRecordDTOMapper {
@ -63,4 +64,57 @@ public interface LabRecordDTOMapper {
" AND tb_lab_record.`status` IN ( " +
" 0, " + " 2)")
List<WeekVO> getWeekBooked(Integer labId,String year,Integer semester, Integer day,Integer time,Integer uc_id);
@Select("SELECT " +
" tb_user_course.`name` AS course_name, " +
" tb_user.nickname, " +
" tb_user_course.classes, " +
" tb_user_course.population, " +
" tb_user_course.software, " +
" tb_user_course.uc_id " +
"FROM " +
" tb_lab " +
" INNER JOIN tb_lab_time ON tb_lab.lab_id = tb_lab_time.lab_id " +
" INNER JOIN tb_lab_record ON tb_lab_record.lt_id = tb_lab_time.lt_id " +
" INNER JOIN tb_user " +
" INNER JOIN tb_user_course ON tb_user.u_id = tb_user_course.u_id " +
"WHERE " +
" tb_lab_time.lt_id = tb_lab_record.lt_id " +
" AND tb_lab_record.uc_id = tb_user_course.uc_id " +
" AND tb_lab.lab_id = #{labId}" +
" AND tb_lab_time.`year` = #{year} " +
" AND tb_lab_time.semester = #{semester} " +
" AND tb_lab_time.`day` = #{day} " +
" AND tb_lab_time.time = #{time} " +
"GROUP BY " +
" tb_user_course.uc_id")
List<Map<String,Object>> getLabSchedule(Integer labId, String year, Integer semester, Integer day, Integer time);
@Select("SELECT " +
" tb_user_course.`name` AS course_name, " +
" tb_user.nickname, " +
" tb_user_course.classes, " +
" tb_user_course.population, " +
" tb_user_course.software, " +
" tb_user_course.uc_id, " +
" tb_lab.lab_id " +
"FROM " +
" tb_lab " +
" INNER JOIN tb_lab_time ON tb_lab.lab_id = tb_lab_time.lab_id " +
" INNER JOIN tb_lab_record ON tb_lab_record.lt_id = tb_lab_time.lt_id " +
" INNER JOIN tb_user " +
" INNER JOIN tb_user_course ON tb_user.u_id = tb_user_course.u_id " +
"WHERE " +
" tb_lab_time.lt_id = tb_lab_record.lt_id " +
" AND tb_lab_record.uc_id = tb_user_course.uc_id " +
" AND tb_lab_time.`year` = #{year} " +
" AND tb_lab_time.semester = #{semester} " +
" AND tb_lab_time.`day` = #{day} " +
" AND tb_lab_time.time = #{time} " +
" AND tb_user.u_id = #{u_id} " +
"GROUP BY " +
" tb_user_course.uc_id")
List<Map<String,Object>> getUserSchedule(Integer u_id, String year, Integer semester, Integer day, Integer time);
}

@ -5,6 +5,7 @@ import com.hzu.bookingsystem.bean.LabRecordBean;
import com.hzu.bookingsystem.dto.LabRecordDTO;
import java.util.List;
import java.util.Map;
public interface LabRecordService {
@ -84,7 +85,17 @@ public interface LabRecordService {
*/
List<Integer> findWeeksBooked(Integer labId,String year,Integer semester, Integer day,Integer time,Integer uc_id);
/**
*
*
*/
List<Map<String ,Object>> getLabSchedule(Integer labId,String year,Integer semester, Integer day,Integer time);
/**
*
*
*/
List<Map<String ,Object>> getUserSchedule(Integer u_id,String year,Integer semester, Integer day,Integer time);

@ -25,6 +25,7 @@ import javax.persistence.Query;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class LabRecordServiceImpl implements LabRecordService{
@ -189,5 +190,25 @@ public class LabRecordServiceImpl implements LabRecordService{
return weeks;
}
@Override
public List<Map<String, Object>> getLabSchedule(Integer labId, String year, Integer semester, Integer day, Integer time) {
List<Map<String, Object>> list = labRecordDTOMapper.getLabSchedule(labId, year, semester, day, time);
//格式化周数
for (Map<String,Object> map: list){
map.put("weeks",findWeeksBooked(labId,year,semester,day,time,(Integer) map.get("uc_id")));
}
return list;
}
@Override
public List<Map<String, Object>> getUserSchedule(Integer u_id, String year, Integer semester, Integer day, Integer time) {
List<Map<String, Object>> list = labRecordDTOMapper.getUserSchedule(u_id, year, semester, day, time);
//格式化周数
for (Map<String,Object> map: list){
map.put("weeks",findWeeksBooked((Integer) map.get("lab_id"),year,semester,day,time,(Integer) map.get("uc_id")));
}
return list;
}
}

Loading…
Cancel
Save