From 8a9e7e2eb0f94b930bd6a0e026509884ab7c3945 Mon Sep 17 00:00:00 2001 From: "1035134717@qq.com" <1035134717@qq.com> Date: Sat, 16 May 2020 17:48:32 +0800 Subject: [PATCH] =?UTF-8?q?[feat][M]:=E5=A2=9E=E5=8A=A0=E4=BA=86Lab?= =?UTF-8?q?=E3=80=81LabTime=E7=9A=84=E6=8E=A7=E5=88=B6=E5=99=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzu/bookingsystem/VO/ResultVO.java | 24 +++++ .../com/hzu/bookingsystem/bean/LabBean.java | 75 +++++++++++++ .../hzu/bookingsystem/bean/LabTimeBean.java | 100 +++++++++++++++++- .../controller/LabController.java | 79 ++++++++++++++ .../controller/LabTimeController.java | 79 ++++++++++++++ .../converter/LabBean2LabDTO.java | 22 ++++ .../converter/LabTimeBean2LabTimeDTO.java | 22 ++++ .../com/hzu/bookingsystem/dto/LabDTO.java | 28 +++++ .../com/hzu/bookingsystem/dto/LabTimeDTO.java | 41 +++++++ .../repository/LabRepository.java | 2 +- .../repository/LabTimeRepository.java | 2 +- .../hzu/bookingsystem/service/LabService.java | 7 ++ .../bookingsystem/service/LabTimeService.java | 7 ++ .../service/impl/LabServiceImpl.java | 25 +++++ .../service/impl/LabTimeServiceImpl.java | 27 +++++ 15 files changed, 537 insertions(+), 3 deletions(-) create mode 100644 java/src/main/java/com/hzu/bookingsystem/controller/LabController.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/converter/LabBean2LabDTO.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/converter/LabTimeBean2LabTimeDTO.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/dto/LabDTO.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/dto/LabTimeDTO.java diff --git a/java/src/main/java/com/hzu/bookingsystem/VO/ResultVO.java b/java/src/main/java/com/hzu/bookingsystem/VO/ResultVO.java index e886d29..9f24ec6 100644 --- a/java/src/main/java/com/hzu/bookingsystem/VO/ResultVO.java +++ b/java/src/main/java/com/hzu/bookingsystem/VO/ResultVO.java @@ -17,4 +17,28 @@ public class ResultVO { /** 具体内容. */ private T data; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } } diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java index 1b8f433..70f2c76 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java @@ -27,10 +27,85 @@ public class LabBean { // 实验室容量 private Integer capacity; + //实验室备注 + private String remind; + // 实验室含有的软件(逗号隔开) private String software; private Date createTime; private Date updateTime; + + public Integer getLabId() { + return labId; + } + + public void setLabId(Integer labId) { + this.labId = labId; + } + + public Integer getManagerId() { + return managerId; + } + + public void setManagerId(Integer managerId) { + this.managerId = managerId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public Integer getCapacity() { + return capacity; + } + + public void setCapacity(Integer capacity) { + this.capacity = capacity; + } + + public String getRemind() { + return remind; + } + + public void setRemind(String remind) { + this.remind = remind; + } + + public String getSoftware() { + return software; + } + + public void setSoftware(String software) { + this.software = software; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } } diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java index 77e4d45..ae93305 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java @@ -37,10 +37,108 @@ public class LabTimeBean { private String time; // 状态 - private Integer status; + private String status; + + //备注 + private String remind; private Date createTime; private Date updateTime; + public Integer getLtId() { + return ltId; + } + + public void setLtId(Integer ltId) { + this.ltId = ltId; + } + + public Integer getCreatorId() { + return creatorId; + } + + public void setCreatorId(Integer creatorId) { + this.creatorId = creatorId; + } + + public Integer getLabId() { + return labId; + } + + public void setLabId(Integer labId) { + this.labId = labId; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getSemester() { + return semester; + } + + public void setSemester(String semester) { + this.semester = semester; + } + + public String getWeek() { + return week; + } + + public void setWeek(String week) { + this.week = week; + } + + public String getDay() { + return day; + } + + public void setDay(String day) { + this.day = day; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemind() { + return remind; + } + + public void setRemind(String remind) { + this.remind = remind; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } } diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabController.java new file mode 100644 index 0000000..d7bb6d3 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabController.java @@ -0,0 +1,79 @@ +package com.hzu.bookingsystem.controller; + +import com.hzu.bookingsystem.VO.ResultVO; +import com.hzu.bookingsystem.bean.LabBean; +import com.hzu.bookingsystem.converter.Map2Object; +import com.hzu.bookingsystem.dto.LabDTO; +import com.hzu.bookingsystem.service.LabService; +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.List; +import java.util.Map; + +@RestController +@CrossOrigin +@RequestMapping("/lab") +public class LabController { + @Autowired + private LabService labService; + + //创建实验室 + @PostMapping(value = "/addLab" , consumes = "application/json") + public ResultVO addLab(@RequestBody Map map){ + //转换对象 + LabBean lab1 = (LabBean) Map2Object.map2Object(map,LabBean.class); + System.out.println(lab1); + //查重 + if(labService.findByName(lab1.getName()) != null) + { + return ResultVOUtil.error(-1,"该实验室已存在"); + } + labService.add(lab1); + return ResultVOUtil.success(); + } + + //通过LabId删除实验室 + @PostMapping(value = "/deleteLab" , consumes = "application/json") + public ResultVO deleteLab(@RequestBody LabBean lab){ + //查找实验室是否存在 + LabBean lab1 = labService.findByLabId(lab.getLabId()); + if(lab1 == null) { + return ResultVOUtil.error(-1, "该实验室不存在"); + } else { + labService.deleteByLabId(lab1.getLabId()); + } + return ResultVOUtil.success(); + } + + //修改实验室信息 + @PostMapping(value = "/updateLab" , consumes = "application/json") + public ResultVO updateLab(@RequestBody Map map , HttpServletRequest request){ + //转换对象 + LabBean lab1 = (LabBean) Map2Object.map2Object(map,LabBean.class); + if(lab1.getLabId() == null){ + return ResultVOUtil.error(-1,"该实验室不存在,无法修改"); + } else { + labService.update(lab1); + } + return ResultVOUtil.success(); + } + + //查找实验室 + @GetMapping(value = "/findByLabId" , consumes = "application/json") + public ResultVO> findByLabId(@RequestParam("LabId") Integer labId){ + LabBean lab1 = labService.findByLabId(labId); + System.out.println(lab1); + return ResultVOUtil.success(lab1); + } + + //查找所有实验室列表 + @GetMapping(value = "/getLabList") + public ResultVO getLabList(){ + List labList = labService.findAllLabInfo(); + return ResultVOUtil.success(labList); + } + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java new file mode 100644 index 0000000..df75548 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java @@ -0,0 +1,79 @@ +package com.hzu.bookingsystem.controller; + +import com.hzu.bookingsystem.VO.ResultVO; +import com.hzu.bookingsystem.bean.LabTimeBean; +import com.hzu.bookingsystem.converter.Map2Object; +import com.hzu.bookingsystem.dto.LabTimeDTO; +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.List; +import java.util.Map; + +@RestController +@CrossOrigin +@RequestMapping("/labTime") +public class LabTimeController { + @Autowired + private LabTimeService labTimeService; + + //创建实验室可预约时间段 + @PostMapping(value = "/addLabTime" , consumes = "application/json") + public ResultVO addLabTime(@RequestBody Map map){ + //转换对象 + LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map,LabTimeBean.class); + System.out.println(labTime1); + //查重 + if(labTimeService.findByTime(labTime1.getTime()) != null) + { + return ResultVOUtil.error(-1,"该时间段已存在"); + } + labTimeService.add(labTime1); + return ResultVOUtil.success(); + } + + //通过ltId删除实验室可预约时间段 + @PostMapping(value = "/deleteLabTime" , consumes = "application/json") + public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime){ + //查找实验室是否存在 + LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId()); + if(labTime1 == null) { + return ResultVOUtil.error(-1, "该时间段不存在"); + } else { + labTimeService.deleteByLtId(labTime1.getLabId()); + } + return ResultVOUtil.success(); + } + + //修改实验室可预约时间段 + @PostMapping(value = "/updateLabTime" , consumes = "application/json") + public ResultVO updateLabTime(@RequestBody Map map , HttpServletRequest request){ + //转换对象 + LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map,LabTimeBean.class); + if(labTime1.getLtId() == null){ + return ResultVOUtil.error(-1,"该实验室不存在,无法修改"); + } else { + labTimeService.update(labTime1); + } + return ResultVOUtil.success(); + } + + //查找实验室 + @GetMapping(value = "/findByLabIdTime" , consumes = "application/json") + public ResultVO> findByLabTimeId(@RequestParam("LabTimeId") Integer labTimeId){ + LabTimeBean labTime1 = labTimeService.findByLtId(labTimeId); + System.out.println(labTime1); + return ResultVOUtil.success(labTime1); + } + + //查找所有实验室列表 + @GetMapping(value = "/getLabListTime") + public ResultVO getLabTimeList(){ + List labTimeList = labTimeService.findAllLabInfo(); + return ResultVOUtil.success(labTimeList); + } + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/converter/LabBean2LabDTO.java b/java/src/main/java/com/hzu/bookingsystem/converter/LabBean2LabDTO.java new file mode 100644 index 0000000..bb5b9d9 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/converter/LabBean2LabDTO.java @@ -0,0 +1,22 @@ +package com.hzu.bookingsystem.converter; + +import com.hzu.bookingsystem.bean.LabBean; +import com.hzu.bookingsystem.dto.LabDTO; +import org.springframework.beans.BeanUtils; + +import java.util.List; +import java.util.stream.Collectors; + +public class LabBean2LabDTO { + public static LabDTO convert(LabBean lab) { + + LabDTO labDTO = new LabDTO(); + BeanUtils.copyProperties(lab, labDTO); + return labDTO; + } + + public static List convert(List labList) { + return labList.stream().map(LabBean2LabDTO::convert) + .collect(Collectors.toList()); + } +} diff --git a/java/src/main/java/com/hzu/bookingsystem/converter/LabTimeBean2LabTimeDTO.java b/java/src/main/java/com/hzu/bookingsystem/converter/LabTimeBean2LabTimeDTO.java new file mode 100644 index 0000000..391722c --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/converter/LabTimeBean2LabTimeDTO.java @@ -0,0 +1,22 @@ +package com.hzu.bookingsystem.converter; + +import com.hzu.bookingsystem.bean.LabTimeBean; +import com.hzu.bookingsystem.dto.LabTimeDTO; +import org.springframework.beans.BeanUtils; + +import java.util.List; +import java.util.stream.Collectors; + +public class LabTimeBean2LabTimeDTO { + public static LabTimeDTO convert(LabTimeBean labTime) { + + LabTimeDTO labTimeDTO = new LabTimeDTO(); + BeanUtils.copyProperties(labTime, labTimeDTO); + return labTimeDTO; + } + + public static List convert(List labList) { + return labList.stream().map(LabTimeBean2LabTimeDTO::convert) + .collect(Collectors.toList()); + } +} diff --git a/java/src/main/java/com/hzu/bookingsystem/dto/LabDTO.java b/java/src/main/java/com/hzu/bookingsystem/dto/LabDTO.java new file mode 100644 index 0000000..1aa560d --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/dto/LabDTO.java @@ -0,0 +1,28 @@ +package com.hzu.bookingsystem.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class LabDTO { + private Integer labId; + // 管理员uID + private Integer managerId; + + // 实验室名称 + private String name; + + // 实验室地点 + private String position; + + // 实验室容量 + private Integer capacity; + + // 实验室含有的软件(逗号隔开) + private String software; + + private Date createTime; + + private Date updateTime; +} \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/dto/LabTimeDTO.java b/java/src/main/java/com/hzu/bookingsystem/dto/LabTimeDTO.java new file mode 100644 index 0000000..c4f9322 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/dto/LabTimeDTO.java @@ -0,0 +1,41 @@ +package com.hzu.bookingsystem.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class LabTimeDTO { + private Integer ltId; + + // 创建者uID + private Integer creatorId; + + // 实验室ID + private Integer labId; + + // 学年 + private String year; + + // 学期 + private String semester; + + // 几周 + private String week; + + // 周几 + private String day; + + // 第几节课 + private String time; + + // 状态 + private String status; + + //备注 + private String remind; + + private Date createTime; + + private Date updateTime; +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java index 7b4f2ab..c9c8ea7 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java @@ -20,7 +20,7 @@ public interface LabRepository extends JpaRepository { void deleteByLabId(Integer labId); - // 查找所有用户 + // 查找所有实验室 List findAll(); /** diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java index f925977..8b06cda 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java @@ -19,7 +19,7 @@ public interface LabTimeRepository extends JpaRepository { */ void deleteByLtId(Integer ltId); - // 查找所有用户 + // 查找所有实验室可预约时间段 List findAll(); /** diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabService.java index c119714..d2805c9 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabService.java @@ -2,6 +2,7 @@ package com.hzu.bookingsystem.service; import com.hzu.bookingsystem.bean.LabBean; +import com.hzu.bookingsystem.dto.LabDTO; import java.util.List; /** @@ -60,4 +61,10 @@ public interface LabService { */ LabBean findByPosition(String position); + /** + * 查找所有实验室信息 + * @return + */ + List findAllLabInfo(); + } \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java index 47d4970..e60a389 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java @@ -2,6 +2,7 @@ package com.hzu.bookingsystem.service; import com.hzu.bookingsystem.bean.LabTimeBean; +import com.hzu.bookingsystem.dto.LabTimeDTO; import java.util.List; /** @@ -68,4 +69,10 @@ public interface LabTimeService { */ LabTimeBean findByYear(String year); + /** + * 查找所有实约时间信息 + * @return + */ + List findAllLabInfo(); + } \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java index c8fc084..55342b5 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java @@ -1,11 +1,17 @@ package com.hzu.bookingsystem.service.impl; import com.hzu.bookingsystem.bean.LabBean; +import com.hzu.bookingsystem.dto.LabDTO; import com.hzu.bookingsystem.repository.LabRepository; import com.hzu.bookingsystem.service.LabService; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; import javax.transaction.Transactional; import java.util.List; /** @@ -16,6 +22,9 @@ public class LabServiceImpl implements LabService { @Resource private LabRepository labRepository; + @PersistenceContext + private EntityManager entityManager; + @Override public LabBean add(LabBean lab) { lab.setLabId(null); @@ -53,4 +62,20 @@ public class LabServiceImpl implements LabService { return labRepository.findByPosition(position); } + @Override + public List findAllLabInfo() { + String sql = "SELECT tb_lab.lab_id as LabId," + + "tb_lab.manager_id as managerId," + + "tb_lab.name," + + "tb_lab.position," + + "tb_lab.capacity," + + "tb_lab.software " + + "FROM " + + "tb_lab "; + Query query = entityManager.createNativeQuery(sql); + query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabDTO.class)); + List LabDTOList = query.getResultList(); + return LabDTOList; + } + } diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java index 755ffb3..8d5a9ed 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java @@ -1,11 +1,17 @@ package com.hzu.bookingsystem.service.impl; import com.hzu.bookingsystem.bean.LabTimeBean; +import com.hzu.bookingsystem.dto.LabTimeDTO; import com.hzu.bookingsystem.repository.LabTimeRepository; import com.hzu.bookingsystem.service.LabTimeService; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; import javax.transaction.Transactional; import java.util.List; /** @@ -16,6 +22,9 @@ public class LabTimeServiceImpl implements LabTimeService { @Resource private LabTimeRepository labTimeRepository; + @PersistenceContext + private EntityManager entityManager; + @Override public LabTimeBean add(LabTimeBean labTime) { labTime.setLtId(null); @@ -58,4 +67,22 @@ public class LabTimeServiceImpl implements LabTimeService { return labTimeRepository.findByYear(year); } + @Override + public List findAllLabInfo(){ + String sql = "SELECT tb_lab_time.lt_id as LtId," + + "tb_lab_time.year," + + "tb_lab_time.semester," + + "tb_lab_time.week," + + "tb_lab_time.day," + + "tb_lab_time.time," + + "tb_lab_time.status," + + "tb_lab_time.remind " + + "FROM " + + "tb_lab_time "; + Query query = entityManager.createNativeQuery(sql); + query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabTimeDTO.class)); + List LabTimeDTOList = query.getResultList(); + return LabTimeDTOList; + } + } \ No newline at end of file