|
|
|
@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
@ -21,6 +22,9 @@ public class LabTimeController {
|
|
|
|
|
@Autowired
|
|
|
|
|
private LabTimeService labTimeService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private UserController userController;
|
|
|
|
|
|
|
|
|
|
//创建实验室可预约时间段
|
|
|
|
|
@PostMapping(value = "/addLabTime", consumes = "application/json")
|
|
|
|
|
public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
|
|
|
|
@ -96,8 +100,11 @@ public class LabTimeController {
|
|
|
|
|
//修改实验室可预约时间段
|
|
|
|
|
@PostMapping(value = "/updateLabTime", consumes = "application/json")
|
|
|
|
|
public ResultVO updateLabTime(@RequestBody Map<String, Object> map, HttpServletRequest request) {
|
|
|
|
|
//转换对象
|
|
|
|
|
//1. 转换对象,初始化对象,定义时间段
|
|
|
|
|
LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
|
labTime.setCreatorId(userController.getUIdByCookie(request));
|
|
|
|
|
labTime.setCreateTime(new Date());
|
|
|
|
|
labTime.setStatus(0);
|
|
|
|
|
// 用户发起的修改请求
|
|
|
|
|
List<Integer> weeks = (List<Integer>)map.get("weeks");
|
|
|
|
|
// 实验室预约时间段
|
|
|
|
@ -113,6 +120,7 @@ public class LabTimeController {
|
|
|
|
|
return ResultVOUtil.error(-1,"已被预约的时间段无法去除");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 2. 数据处理
|
|
|
|
|
// 需要insert的weeks
|
|
|
|
|
List<Integer> weekInsert = new ArrayList<>(weeks);
|
|
|
|
|
weekInsert.removeAll(weeksAll);
|
|
|
|
@ -120,11 +128,34 @@ public class LabTimeController {
|
|
|
|
|
// 需要delete的weeks
|
|
|
|
|
List<Integer> weekDelete = new ArrayList<>(weeksAll);
|
|
|
|
|
weekDelete.removeAll(weeks);
|
|
|
|
|
|
|
|
|
|
// 3.批量删除
|
|
|
|
|
List<LabTimeBean> labTimeBeans = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
|
|
|
|
|
labTimeBeans.removeIf(labTimeBean -> !weekDelete.contains(labTimeBean.getWeek()));
|
|
|
|
|
for (LabTimeBean labTimeBean : labTimeBeans){
|
|
|
|
|
labTimeService.deleteByLtId(labTimeBean.getLtId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 4.批量插入
|
|
|
|
|
for (int i : weekInsert){
|
|
|
|
|
LabTimeBean temp = LabTimeBean.builder().labId(labTime.getLabId())
|
|
|
|
|
.year(labTime.getYear())
|
|
|
|
|
.semester(labTime.getSemester())
|
|
|
|
|
.week(i)
|
|
|
|
|
.day(labTime.getDay())
|
|
|
|
|
.time(labTime.getTime())
|
|
|
|
|
.createTime(labTime.getCreateTime())
|
|
|
|
|
.creatorId(labTime.getCreatorId())
|
|
|
|
|
.status(labTime.getStatus())
|
|
|
|
|
.build();
|
|
|
|
|
labTimeService.add(temp);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println("用户请求"+weeks);
|
|
|
|
|
System.out.println("原来有的"+weeksAll);
|
|
|
|
|
System.out.println("要插入的"+weekInsert);
|
|
|
|
|
System.out.println("要删除的"+weekDelete);
|
|
|
|
|
return ResultVOUtil.success();
|
|
|
|
|
return ResultVOUtil.success(labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|