From c6860618310f98d78fcb085dc3fcfabf102b18d1 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 15:26:41 +0800 Subject: [PATCH] =?UTF-8?q?[feat][M]:=20=E5=A2=9E=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E9=80=89=E8=AF=BE=E6=97=B6=E9=97=B4=E6=AE=B5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzu/bookingsystem/bean/LabRecordBean.java | 2 + .../controller/LabRecordController.java | 82 ++++++++++++++++--- .../repository/LabRecordRepository.java | 2 + .../service/LabRecordService.java | 8 +- .../service/impl/LabRecordServiceImpl.java | 6 ++ 5 files changed, 87 insertions(+), 13 deletions(-) diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java index 14c054f..6a6c74b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java @@ -1,6 +1,7 @@ package com.hzu.bookingsystem.bean; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; @@ -10,6 +11,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @Entity +@Builder @Table(name = "tb_lab_record") public class LabRecordBean { @Id diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java index 86c655d..8d2172b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java @@ -3,14 +3,17 @@ package com.hzu.bookingsystem.controller; import com.hzu.bookingsystem.VO.ResultVO; import com.hzu.bookingsystem.bean.LabRecordBean; +import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.converter.Map2Object; import com.hzu.bookingsystem.dto.LabRecordDTO; import com.hzu.bookingsystem.service.LabRecordService; +import com.hzu.bookingsystem.service.LabTimeService; import com.hzu.bookingsystem.utils.ResultVOUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; import java.util.Map; @@ -22,18 +25,22 @@ public class LabRecordController { @Autowired private LabRecordService labrecordService; + @Autowired + private LabTimeService labTimeService; + @Autowired private UserController userController; -// 根据id查看实验室记录 + + // 根据id查看实验室记录 @GetMapping(value = "/findlabrecord/{lr_id}") public ResultVO> FindLabRecordId(@PathVariable("lr_id") Integer lr_id) { - LabRecordBean labrecord = labrecordService.findById( lr_id) ; + LabRecordBean labrecord = labrecordService.findById(lr_id); return ResultVOUtil.success(labrecord); } // 查找所有记录列表 @GetMapping(value = "/getlabrecordlist") - public ResultVO getLabRecordList(){ + public ResultVO getLabRecordList() { List labrecordList = labrecordService.findAll(); return ResultVOUtil.success(labrecordList); @@ -49,27 +56,27 @@ public class LabRecordController { // 增加申请记录 @PostMapping(value = "/addlabrecord", consumes = "application/json") - public ResultVO addLabRecord(@RequestBody Map map) { - LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map,LabRecordBean.class); + public ResultVO addLabRecord(@RequestBody Map map) { + LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map, LabRecordBean.class); labrecordService.add(labrecord); return ResultVOUtil.success(); } //更新记录 @PostMapping(value = "/updatelabrecord", consumes = "application/json") - public ResultVO updateLabRecord(@RequestBody Map map, HttpServletRequest request){ - LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map,LabRecordBean.class); - LabRecordBean labrecordnew = labrecordService.update(labrecord) ; + public ResultVO updateLabRecord(@RequestBody Map map, HttpServletRequest request) { + LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map, LabRecordBean.class); + LabRecordBean labrecordnew = labrecordService.update(labrecord); return ResultVOUtil.success(labrecordnew); } // 通过lr_id删除记录 @PostMapping(value = "/deletelabrecord/{lr_id}", consumes = "application/json") - public ResultVO deleteLabRecord(@PathVariable("lr_id") Integer lr_id){ + public ResultVO deleteLabRecord(@PathVariable("lr_id") Integer lr_id) { // 查找该用户看是否存在 LabRecordBean labrecord = labrecordService.findById(lr_id); - if (labrecord == null){ - return ResultVOUtil.error(-1,"记录不存在"); + if (labrecord == null) { + return ResultVOUtil.error(-1, "记录不存在"); } // 删除记录 labrecordService.deleteById(lr_id); @@ -81,8 +88,59 @@ public class LabRecordController { * 通过uid查询预约记录 */ @GetMapping("/getRecordBySelf") - public ResultVO getRecordBySelf(HttpServletRequest request){ + public ResultVO getRecordBySelf(HttpServletRequest request) { List labRecordDTOList = labrecordService.findRecordListByUId(userController.getUIdByCookie(request)); return ResultVOUtil.success(labRecordDTOList); } + + /** + * 更改选课时间段 + */ + @PostMapping(value = "/updateWeeks", consumes = "application/json") + public ResultVO updateWeeks(@RequestBody Map map, HttpServletRequest request) { + //1. 转换对象 + LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class); + Integer uc_id = (Integer)map.get("uc_id"); + List weeks = (List)map.get("weeks"); + System.out.println(labTime); + System.out.println(uc_id); + System.out.println(weeks); + //2. 定义对象 + LabRecordBean labRecordBean = new LabRecordBean(); + labRecordBean.setStatus(0); + labRecordBean.setUcId(uc_id); + + //3. DAO + List weekAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime(),uc_id); + //判断是否选择不可选周数 + for (Integer i :weeks){ + if (!weekAble.contains(i)) + return ResultVOUtil.error(-1,"选择了不可选的周数"); + } + + List labTimeBeanList = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()); + //过滤不可选取 + for (LabTimeBean labTimeBean: labTimeBeanList){ + if (!weekAble.contains(labTimeBean.getWeek())) + labTimeBeanList.remove(labTime); + } + + //4. 删除record + for (LabTimeBean labTimeBean: labTimeBeanList){ + labrecordService.deleteByLtIdAndUcId(labTimeBean.getLtId(),uc_id); + } + + //5. 插入record + for (LabTimeBean labTimeBean: labTimeBeanList){ + if (weeks.contains(labTimeBean.getWeek())){ + LabRecordBean labRecordBean1 = new LabRecordBean().builder() + .ltId(labTimeBean.getLtId()) + .ucId(uc_id) + .status(0) + .build(); + labrecordService.add(labRecordBean1); + } + } + return ResultVOUtil.success(); + } } \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java index 1595fbf..b57abf8 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java @@ -26,6 +26,8 @@ public interface LabRecordRepository extends JpaRepository List findByUcIdAndStatus(Integer uc_id , Integer status); + void deleteByLtIdAndUcId(Integer lt_id,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 3770553..cb6463d 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java @@ -70,7 +70,13 @@ public interface LabRecordService { * author 吴志岳 * 查看自己的审核记录 */ - public List findRecordListByUId(Integer uId); + List findRecordListByUId(Integer uId); + + /** + * author 吴志岳 + * 根据LTid与UCid删除LR + */ + void deleteByLtIdAndUcId(Integer LtId,Integer UcId); 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 3baf3f3..f8ba77b 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 @@ -171,5 +171,11 @@ public class LabRecordServiceImpl implements LabRecordService{ return labRecordDTOMapper.getRecordListByUId(13); } + @Transactional + @Override + public void deleteByLtIdAndUcId(Integer ltId, Integer ucId) { + labrecordRepository.deleteByLtIdAndUcId(ltId,ucId); + } + }