[fix][M]: 完善LabTime查找接口与修改接口(未调试完成)

master
Romesum 5 years ago
parent 5db1bfcf8f
commit 4efd67364c

@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -21,15 +22,14 @@ public class LabTimeController {
private LabTimeService labTimeService;
//创建实验室可预约时间段
@PostMapping(value = "/addLabTime" , consumes = "application/json")
public ResultVO addLabTime(@RequestBody Map<String,Object> map){
@PostMapping(value = "/addLabTime", consumes = "application/json")
public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
//转换对象
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map,LabTimeBean.class);
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
System.out.println(labTime1);
//查重
if(labTimeService.findByTime(labTime1.getTime()) != null)
{
return ResultVOUtil.error(-1,"该时间段已存在");
if (labTimeService.findByTime(labTime1.getTime()) != null) {
return ResultVOUtil.error(-1, "该时间段已存在");
}
labTimeService.add(labTime1);
return ResultVOUtil.success();
@ -37,10 +37,10 @@ public class LabTimeController {
//通过ltId删除实验室可预约时间段
@PostMapping(value = "/deleteLabTime")
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime){
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) {
//查找实验室是否存在
LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId());
if(labTime1 == null) {
if (labTime1 == null) {
return ResultVOUtil.error(-1, "该时间段不存在");
} else {
labTimeService.deleteByLtId(labTime1.getLabId());
@ -49,12 +49,12 @@ public class LabTimeController {
}
//修改实验室可预约时间段
@PostMapping(value = "/updateLabTime" , consumes = "application/json")
public ResultVO updateLabTime(@RequestBody Map<String,Object> map , HttpServletRequest request){
@PostMapping(value = "/updateLabTimeOld", consumes = "application/json")
public ResultVO updateLabTimeOld(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//转换对象
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map,LabTimeBean.class);
if(labTime1.getLtId() == null){
return ResultVOUtil.error(-1,"该实验室不存在,无法修改");
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
if (labTime1.getLtId() == null) {
return ResultVOUtil.error(-1, "该实验室不存在,无法修改");
} else {
labTimeService.update(labTime1);
}
@ -63,41 +63,68 @@ public class LabTimeController {
//通过ltId查找实验室预约时间段
@GetMapping(value = "/findLabTimeById")
public ResultVO<Map<String,Object>> findLabTimeById(@RequestParam("ltId") Integer lt_id){
public ResultVO<Map<String, Object>> findLabTimeById(@RequestParam("ltId") Integer lt_id) {
LabTimeBean labTime1 = labTimeService.findByLtId(lt_id);
System.out.println(labTime1);
return ResultVOUtil.success(labTime1);
}
//查找实验室可预约时间段
@GetMapping(value = "/findlabtimebylabidandyearandsemester")
public ResultVO<Map<String,Object>> findLabTimeByLabIdAndYearAndSemester(@RequestParam("labId") Integer lab_id , @RequestParam("year") String year , @RequestParam("semester") Integer semester , @RequestParam("status") Integer status){
List<LabTimeBean> labTimeList1 = labTimeService.findByLabIdAndYearAndSemester(lab_id , year , semester);
System.out.println(labTimeList1);
LabTimeBean array[] = new LabTimeBean[labTimeList1.size()];
int i = 0;
for(LabTimeBean labtime : labTimeList1){
if (labtime.getStatus().equals(status)) {
System.out.println(labtime.getTime());
array[i] = labtime;
i++;
//查找实验室预约周次(包含已预约)
// author 吴志岳
@GetMapping(value = "/getWeeks")
public ResultVO findLabTimeByLabIdAndYearAndSemester(@RequestParam("labId") Integer lab_id,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester,
@RequestParam("day") Integer day,
@RequestParam("time") Integer time) {
List<Integer> weeks = labTimeService.findWeeks(lab_id, year, semester, day, time);
return ResultVOUtil.success(weeks);
}
}
return ResultVOUtil.success(array);
//查找实验室可预约周次(不包含已预约)
// author 吴志岳
@GetMapping(value = "/getWeeksAbleBook")
public ResultVO findLabTimeByLabIdAndYearAndSemesterAbleBook(@RequestParam("labId") Integer lab_id,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester,
@RequestParam("day") Integer day,
@RequestParam("time") Integer time) {
List<Integer> weeks = labTimeService.findWeeksAble(lab_id, year, semester, day, time);
return ResultVOUtil.success(weeks);
}
//查找所有实验室列表
@GetMapping(value = "/getLabListTime")
public ResultVO getLabTimeList(){
List<LabTimeDTO> labTimeList = labTimeService.findAllLabInfo();
return ResultVOUtil.success(labTimeList);
//修改实验室可预约时间段
@PostMapping(value = "/updateLabTime", consumes = "application/json")
public ResultVO updateLabTime(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//转换对象
LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
// 用户发起的修改请求
List<Integer> weeks = (List<Integer>)map.get("weeks");
// 实验室预约时间段
List<Integer> weeksAll = labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
// 实验室可预约时间段
List<Integer> weeksAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
// 实验室不可变换或不可选取的时间段
List<Integer> weeksDisable = new ArrayList<>(weeksAll);
weeksDisable.removeAll(weeksAble);
// 如果请求weeks中不包含不可选取的时间段报错
if (!weeks.containsAll(weeksDisable)){
return ResultVOUtil.error(-1,"已被预约的时间段无法去除");
}
// 查找所有课程列表
@GetMapping(value = "/getLabTimelist")
public ResultVO getUserCourseList(){
List<LabTimeBean> labTimelist = labTimeService.findAll();
return ResultVOUtil.success(labTimelist);
// 需要insert的weeks
List<Integer> weekInsert = new ArrayList<>(weeks);
weekInsert.removeAll(weeksAll);
// 需要delete的weeks
List<Integer> weekDelete = new ArrayList<>(weeksAll);
weekDelete.removeAll(weeks);
System.out.println("用户请求"+weeks);
System.out.println("原来有的"+weeksAll);
System.out.println("要插入的"+weekInsert);
System.out.println("要删除的"+weekDelete);
return ResultVOUtil.success();
}
}

@ -3,6 +3,7 @@ package com.hzu.bookingsystem.repository;
import com.hzu.bookingsystem.bean.LabTimeBean;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
@ -46,12 +47,42 @@ public interface LabTimeRepository extends JpaRepository<LabTimeBean,String> {
*/
LabTimeBean findByTime(Integer time);
/**
*
*
* @param lab_idyearsemester
* @return
*/
@Query(value = "SELECT " +
" tb_lab_time.* " +
"FROM " +
"tb_lab_time LEFT JOIN tb_lab_record ON tb_lab_time.lt_id=tb_lab_record.lt_id " +
"WHERE " +
" tb_lab_time.lab_id = ?1 AND " +
" tb_lab_time.`year` = ?2 AND " +
" tb_lab_time.semester = ?3 AND " +
" tb_lab_time.`day` = ?4 AND " +
" tb_lab_time.time = ?5 AND " +
"tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status = 1)", nativeQuery = true)
List<LabTimeBean> findByLabIdAndYearAndSemesterAndDayAndTime(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
/**
*
*
* @param lab_idyearsemester
* @return
*/
List<LabTimeBean> findByLabIdAndYearAndSemester(Integer lab_id,String year,Integer semester) ;
@Query(value = "SELECT " +
" tb_lab_time.* " +
"FROM " +
"tb_lab_time LEFT JOIN tb_lab_record ON tb_lab_time.lt_id=tb_lab_record.lt_id " +
"WHERE " +
" tb_lab_time.lab_id = ?1 AND " +
" tb_lab_time.`year` = ?2 AND " +
" tb_lab_time.semester = ?3 AND " +
" tb_lab_time.`day` = ?4 AND " +
" tb_lab_time.time = ?5 AND " +
" tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status is not null)" , nativeQuery = true)
List<LabTimeBean> findWeeksAbleBook(Integer lab_id, String year, Integer semester, Integer day, Integer time) ;
}

@ -62,17 +62,24 @@ public interface LabTimeService {
LabTimeBean findByTime(Integer time);
/**
*
*
* @param lab_idyearsemester
*
* @return
*/
List<LabTimeBean> findByLabIdAndYearAndSemester(Integer lab_id,String year,Integer semester) ;
List<LabTimeDTO> findAllLabInfo();
/**
*
* @return
*
*author
* @param lab_idyearsemester
* @return List<Integer>
*/
List<LabTimeDTO> findAllLabInfo();
List<Integer> findWeeks(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
/**
*
*author
* @param lab_idyearsemester
* @return List<Integer>
*/
List<Integer> findWeeksAble(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
}

@ -13,7 +13,9 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* author
*/
@ -33,12 +35,12 @@ public class LabTimeServiceImpl implements LabTimeService {
@Override
@Transactional
public void deleteByLtId(Integer ltId){
public void deleteByLtId(Integer ltId) {
labTimeRepository.deleteByLtId(ltId);
}
@Override
public LabTimeBean update(LabTimeBean labTime){
public LabTimeBean update(LabTimeBean labTime) {
return labTimeRepository.save(labTime);
}
@ -48,7 +50,7 @@ public class LabTimeServiceImpl implements LabTimeService {
}
@Override
public LabTimeBean findByLtId(Integer ltId){
public LabTimeBean findByLtId(Integer ltId) {
return labTimeRepository.findByLtId(ltId);
}
@ -58,17 +60,13 @@ public class LabTimeServiceImpl implements LabTimeService {
}
@Override
public LabTimeBean findByTime(Integer time){
public LabTimeBean findByTime(Integer time) {
return labTimeRepository.findByTime(time);
}
@Override
public List<LabTimeBean> findByLabIdAndYearAndSemester(Integer lab_id,String year,Integer semester){
return labTimeRepository.findByLabIdAndYearAndSemester(lab_id , year , semester);
}
@Override
public List<LabTimeDTO> findAllLabInfo(){
public List<LabTimeDTO> findAllLabInfo() {
String sql = "SELECT tb_lab_time.lt_id as LtId," +
"tb_lab_time.year," +
"tb_lab_time.semester," +
@ -85,4 +83,40 @@ public class LabTimeServiceImpl implements LabTimeService {
return LabTimeDTOList;
}
/**
* author
*
* @param lab_idyearsemester
* @param year
* @param semester
* @return
*/
@Override
public List<Integer> findWeeks(Integer lab_id, String year, Integer semester, Integer day, Integer time) {
List<LabTimeBean> list = labTimeRepository.findByLabIdAndYearAndSemesterAndDayAndTime(lab_id, year, semester, day, time);
List<Integer> weeks = new ArrayList<>();
for (LabTimeBean labtime : list) {
weeks.add(labtime.getWeek());
}
return weeks;
}
/**
* author
*
* @param lab_idyearsemester
* @param year
* @param semester
* @return
*/
@Override
public List<Integer> findWeeksAble(Integer lab_id, String year, Integer semester, Integer day, Integer time) {
List<LabTimeBean> list = labTimeRepository.findWeeksAbleBook(lab_id, year, semester, day, time);
List<Integer> weeks = new ArrayList<>();
for (LabTimeBean labtime : list) {
weeks.add(labtime.getWeek());
}
return weeks;
}
}
Loading…
Cancel
Save