diff --git a/src/main/java/com/syq/controller/ComputersController.java b/src/main/java/com/syq/controller/ComputersController.java index 8b454a384dba1c2e7aa72b6d3642ae8c59f4a21f..1935ceebecc591e28f0f02970f2161dfeba12681 100644 --- a/src/main/java/com/syq/controller/ComputersController.java +++ b/src/main/java/com/syq/controller/ComputersController.java @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.syq.entity.Computers; +import com.syq.entity.ResourcesRoom; import com.syq.service.ComputersService; import com.syq.util.FenyeUtil; @@ -54,7 +55,10 @@ public class ComputersController { * @return 修改后的实体信息 */ @PutMapping - public Computers updateComputer(Computers com) { + public Computers updateComputer(Computers com,Integer rid) { + ResourcesRoom room = new ResourcesRoom(); + room.setRid(rid);// 将资源室id封装 + com.setResourcesRoom(room);// 将资源室封装 return computersService.addOrUpdateComputer(com); } @@ -63,7 +67,9 @@ public class ComputersController { * @param com 删除的参数 返回数值:1代表成功否则失败 */ @DeleteMapping - public Integer deleteComputer(Computers com) { + public Integer deleteComputer(Integer comid) { + Computers com = new Computers(); + com.setComid(comid); try { computersService.deleteComputer(com); return 1; diff --git a/src/main/java/com/syq/controller/ResourcesRoomController.java b/src/main/java/com/syq/controller/ResourcesRoomController.java index c9bfc716b3e27b60f8637a0e0a07a077464d6749..c6c38fe2f06dcbbdc4614a14b490ae1355e5b3b8 100644 --- a/src/main/java/com/syq/controller/ResourcesRoomController.java +++ b/src/main/java/com/syq/controller/ResourcesRoomController.java @@ -1,6 +1,10 @@ package com.syq.controller; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -20,13 +24,25 @@ public class ResourcesRoomController { /** - * 查询所有资源室 + * 分页条件查询所有资源室 * 创建人:孙玉全 * @return 所有资源室集合 */ @GetMapping - public Object getAllResourcesRoom() { - return resourcesRoomService.getAllResourcesRoom(); + public Object getAllResourcesRoom(ResourcesRoom room,Integer page,Integer limit) { + Pageable pageable = PageRequest.of(page-1, limit); + return resourcesRoomService.getAllResourcesRoom(room,pageable); + } + + /** + * 分类查询资源室信息,查出所有图书资源室或所有机房 + * 创建人:孙玉全 + * @param diff 查询参数 + * @return 所有机房或所有读书室 + */ + @GetMapping("/diff") + public List findByDiff(Integer diff){ + return resourcesRoomService.findByDiff(diff); } /** @@ -57,7 +73,9 @@ public class ResourcesRoomController { * @param res 删除的参数 返回数值类型 1代表成功否则失败 */ @DeleteMapping - public Integer deleteRoom(ResourcesRoom res) { + public Integer deleteRoom(Integer rid) { + ResourcesRoom res = new ResourcesRoom(); + res.setRid(rid); try { resourcesRoomService.deleteRoom(res); return 1; diff --git a/src/main/java/com/syq/controller/StudentsController.java b/src/main/java/com/syq/controller/StudentsController.java index 1fac17697cc02b4a23499064372bc979d71fa6a2..5430a7d2044db804fc0bfc416dc0e51f89d0feac 100644 --- a/src/main/java/com/syq/controller/StudentsController.java +++ b/src/main/java/com/syq/controller/StudentsController.java @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.syq.entity.Students; +import com.syq.entity.Systeminfo; import com.syq.repository.ComputersRepository; import com.syq.repository.ResourcesRoomRepository; import com.syq.service.StudentsService; @@ -54,7 +55,11 @@ public class StudentsController { * @return 学生实体 */ @PutMapping - public Object updateStudents(Students s) { + public Object updateStudents(Students s,Integer sysid) { + System.out.println(sysid); + Systeminfo sys = new Systeminfo(); + sys.setSysid(sysid);// 将系别id封装程系别实体 + s.setSysteminfo(sys);// 封装学生实体 return studentsService.addAndUpdate(s); } @@ -64,7 +69,9 @@ public class StudentsController { * @param s 删除条件 返回数值 1:成功 0:失败 */ @DeleteMapping - public Integer deleteStudents(Students s) { + public Integer deleteStudents(Integer sid) { + Students s = new Students(); + s.setSid(sid); try { studentsService.deleteStudents(s); return 1; diff --git a/src/main/java/com/syq/controller/SystemController.java b/src/main/java/com/syq/controller/SystemController.java index 243d0dd91e9ca68a3c5ddc009a25d583a66d544c..defb764c05f4c559d721e409d9ed68b560e96127 100644 --- a/src/main/java/com/syq/controller/SystemController.java +++ b/src/main/java/com/syq/controller/SystemController.java @@ -3,6 +3,8 @@ package com.syq.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -30,6 +32,17 @@ public class SystemController { return systemService.getAllSystem(); } + /** + * 条件分页查询所有系别信息 + * 创建人:孙玉全 + * @return 所有系别信息 + */ + @GetMapping("/byPage") + public Object listSysTemByPage(Systeminfo sys,Integer page,Integer limit) { + Pageable pageable = PageRequest.of(page-1, limit); + return systemService.listSystemByPage(sys, pageable); + } + /** * 添加学生系别信息 * 创建人:孙玉全 @@ -60,7 +73,9 @@ public class SystemController { * @param sys 删除的参数 返回数值 1:成功 0:失败 */ @DeleteMapping - public Integer deleteSystem(Systeminfo sys) { + public Integer deleteSystem(Integer sysid) { + Systeminfo sys = new Systeminfo(); + sys.setSysid(sysid); try { systemService.deleteSystem(sys); return 1; diff --git a/src/main/java/com/syq/controller/loginController.java b/src/main/java/com/syq/controller/loginController.java index cb60f8d90e589365b560514ec2688c73e04ebdf1..9048c6c77b61e5206cb1db6e2a95ec073ac379af 100644 --- a/src/main/java/com/syq/controller/loginController.java +++ b/src/main/java/com/syq/controller/loginController.java @@ -9,6 +9,12 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("login") public class loginController { + /** + * 管理员登录 + * @param username + * @param password + * @return + */ @GetMapping public Integer login(String username,String password) { System.out.println(username); diff --git a/src/main/java/com/syq/entity/Statistics.java b/src/main/java/com/syq/entity/Statistics.java new file mode 100644 index 0000000000000000000000000000000000000000..8e252a2ec340f88f329610fb0052bb9fc7e39d6d --- /dev/null +++ b/src/main/java/com/syq/entity/Statistics.java @@ -0,0 +1,46 @@ +package com.syq.entity; + +import java.util.Date; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.springframework.format.annotation.DateTimeFormat; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "statistics")//资源统计表 +public class Statistics { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer staid;//资源统计编号 + private Integer peopleNums;//使用人次 + + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date yearx;//年 为避免关键字冲突加上x + + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date monthx;// 月 + + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date dayx;// 日 + + @JoinColumn(name = "rid") + @ManyToOne(fetch = FetchType.EAGER) + private ResourcesRoom resourcesRoom; +} diff --git a/src/main/java/com/syq/entity/Students.java b/src/main/java/com/syq/entity/Students.java index 6568f840c6e38dd4bd719ba2ab116752f3720cc5..69981ddf4ab617bf574fba6c6d9da08c6a8b1369 100644 --- a/src/main/java/com/syq/entity/Students.java +++ b/src/main/java/com/syq/entity/Students.java @@ -1,6 +1,5 @@ package com.syq.entity; -import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; diff --git a/src/main/java/com/syq/repository/ResourcesRoomRepository.java b/src/main/java/com/syq/repository/ResourcesRoomRepository.java index 90a8cdf5a6859f0fcea784057c7f8634503ec501..efc99c771d3781d264bc373cb79487dc7218a0bf 100644 --- a/src/main/java/com/syq/repository/ResourcesRoomRepository.java +++ b/src/main/java/com/syq/repository/ResourcesRoomRepository.java @@ -1,10 +1,21 @@ -package com.syq.repository; +package com.syq.repository; + + +import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; import com.syq.entity.ResourcesRoom; -public interface ResourcesRoomRepository extends JpaRepository{ - +public interface ResourcesRoomRepository extends JpaRepository,JpaSpecificationExecutor{ + + /** + * 根据后台操作的管理不同来查询,用于渲染电脑和图书两个下拉框 + * @param diff + * @return + */ + @Query(value = "from ResourcesRoom where diff = ?1") + List findByDiff(Integer diff); } diff --git a/src/main/java/com/syq/repository/SystemRepository.java b/src/main/java/com/syq/repository/SystemRepository.java index 61c45ddfa637db705b6a3cb618419697bf886d25..092334084fce37fc670e88d4fbc011dc3809d5ac 100644 --- a/src/main/java/com/syq/repository/SystemRepository.java +++ b/src/main/java/com/syq/repository/SystemRepository.java @@ -1,10 +1,12 @@ package com.syq.repository; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import com.syq.entity.Systeminfo; -public interface SystemRepository extends JpaRepository{ +public interface SystemRepository extends JpaRepository,JpaSpecificationExecutor{ + } \ No newline at end of file diff --git a/src/main/java/com/syq/service/ComputersService.java b/src/main/java/com/syq/service/ComputersService.java index 09e1a62d215151f6defd1523703636b6b9de613b..718737296eed3fd8bce67492227a34fd7b71c4ed 100644 --- a/src/main/java/com/syq/service/ComputersService.java +++ b/src/main/java/com/syq/service/ComputersService.java @@ -26,6 +26,7 @@ public interface ComputersService { /** * 删除电脑西信息 + * 创建人:孙玉全 * @param com 删除的参数 无返回值 */ void deleteComputer(Computers com); diff --git a/src/main/java/com/syq/service/ResourcesRoomService.java b/src/main/java/com/syq/service/ResourcesRoomService.java index c089c70a498de9ee7869f8a74e703ac7333a3014..2150b1b3c15dd797a9d2a19531b867cce2113bf5 100644 --- a/src/main/java/com/syq/service/ResourcesRoomService.java +++ b/src/main/java/com/syq/service/ResourcesRoomService.java @@ -2,7 +2,10 @@ package com.syq.service; import java.util.List; +import org.springframework.data.domain.Pageable; + import com.syq.entity.ResourcesRoom; +import com.syq.util.FenyeUtil; public interface ResourcesRoomService { @@ -11,7 +14,7 @@ public interface ResourcesRoomService { * 创建人:孙玉全 * @return 所有资源室集合 */ - List getAllResourcesRoom(); + FenyeUtil getAllResourcesRoom(ResourcesRoom room,Pageable pageable); /** * 添加或修改资源室 @@ -27,5 +30,13 @@ public interface ResourcesRoomService { * @param res 删除的参数 无返回值 */ void deleteRoom(ResourcesRoom res); + + /** + * 根据后台操作的管理不同来查询,用于渲染电脑和图书两个下拉框 + * 创建人:孙玉全 + * @param diff + * @return 所有电脑资源室或图书资源室 + */ + List findByDiff(Integer diff); } diff --git a/src/main/java/com/syq/service/SystemService.java b/src/main/java/com/syq/service/SystemService.java index 89d9a64f174f634afb019c7132811f574508ddc8..4e2dfdce7eb8940a92d723f030124bec412e0684 100644 --- a/src/main/java/com/syq/service/SystemService.java +++ b/src/main/java/com/syq/service/SystemService.java @@ -2,8 +2,11 @@ package com.syq.service; import java.util.List; +import org.springframework.data.domain.Pageable; + import com.syq.entity.Students; import com.syq.entity.Systeminfo; +import com.syq.util.FenyeUtil; public interface SystemService { @@ -28,4 +31,13 @@ public interface SystemService { * @return 系别信息 */ List getAllSystem(); + + /** + * 条件分页查询所有系别信息 + * 创建人:孙玉全 + * @param sys 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ + FenyeUtil listSystemByPage(Systeminfo sys,Pageable pageable); } diff --git a/src/main/java/com/syq/service/impl/ComputersServiceImpl.java b/src/main/java/com/syq/service/impl/ComputersServiceImpl.java index 5d58ace0baf3054d3a8e7729d762735d8fbae0c6..83d514a8c52d21f300f38d9feba8f22c175a71b5 100644 --- a/src/main/java/com/syq/service/impl/ComputersServiceImpl.java +++ b/src/main/java/com/syq/service/impl/ComputersServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import com.syq.entity.Computers; import com.syq.entity.Students; @@ -72,7 +73,20 @@ public class ComputersServiceImpl implements ComputersService { Predicate predicate = criteriaBuilder.conjunction(); //创建动态SQL集合 List> expressions = predicate.getExpressions(); - + //当电脑名称不为空时进行模糊查询 + if(!StringUtils.isEmpty(com.getComname())) { + expressions.add(criteriaBuilder.like(root.get("comname"), "%"+com.getComname()+"%")); + } + //当类别不为空时进行精确查询 + if(com.getResourcesRoom()!=null) { + if(com.getResourcesRoom().getRid()!=null) { + expressions.add(criteriaBuilder.equal(root.get("resourcesRoom").get("rid"), com.getResourcesRoom().getRid())); + } + } + //当IP地址不为空时进行模糊查询 + if(!StringUtils.isEmpty(com.getIP())) { + expressions.add(criteriaBuilder.like(root.get("IP"), "%"+com.getIP()+"%")); + } return predicate; } }; diff --git a/src/main/java/com/syq/service/impl/ResourcesRoomServiceImpl.java b/src/main/java/com/syq/service/impl/ResourcesRoomServiceImpl.java index 4b3d71849e1669b5f200ac63d0fecffd4b9d0de1..c3be08140347f5e6fa954f468fd8e2329b2a3abc 100644 --- a/src/main/java/com/syq/service/impl/ResourcesRoomServiceImpl.java +++ b/src/main/java/com/syq/service/impl/ResourcesRoomServiceImpl.java @@ -2,12 +2,24 @@ package com.syq.service.impl; import java.util.List; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Expression; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import com.syq.entity.Computers; import com.syq.entity.ResourcesRoom; import com.syq.repository.ResourcesRoomRepository; import com.syq.service.ResourcesRoomService; +import com.syq.util.FenyeUtil; @Service public class ResourcesRoomServiceImpl implements ResourcesRoomService { @@ -15,17 +27,6 @@ public class ResourcesRoomServiceImpl implements ResourcesRoomService { @Autowired private ResourcesRoomRepository resourcesRoomRepository; - /** - * 查询所有资源室 - * 创建人:孙玉全 - * @return 所有资源室集合 - */ - @Override - public List getAllResourcesRoom() { - // TODO Auto-generated method stub - return resourcesRoomRepository.findAll(); - } - /** * 添加或修改资源室 * 创建人:孙玉全 @@ -48,6 +49,52 @@ public class ResourcesRoomServiceImpl implements ResourcesRoomService { // TODO Auto-generated method stub resourcesRoomRepository.delete(res); } + + /** + * 查询所有资源室 + * 创建人:孙玉全 + * @return 如果有资源室名称就模糊查询没有则查询所有 + */ + @Override + public FenyeUtil getAllResourcesRoom(ResourcesRoom room,Pageable pageable) { + Page resourcesRoom = resourcesRoomRepository.findAll(getspec(room), pageable); + //创建分页工具类,并将动态SQL查到的数据添加进去 + FenyeUtil fy = new FenyeUtil(); + fy.setData(resourcesRoom.getContent()); + fy.setCount((int)resourcesRoom.getTotalElements()); + return fy; + } + + //动态SQL + private Specification getspec(ResourcesRoom room) { + // TODO Auto-generated method stub + return new Specification() { + + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + //创建动态SQL表达式 + Predicate predicate = criteriaBuilder.conjunction(); + //创建动态SQL集合 + List> expressions = predicate.getExpressions(); + //当资源室名称不为空时 + if(!StringUtils.isEmpty(room.getRname())) { + expressions.add(criteriaBuilder.like(root.get("rname"), "%"+room.getRname()+"%")); + } + return predicate; + } + }; + } + + /** + * 根据后台操作的管理不同来查询,用于渲染电脑和图书两个下拉框 + * 创建人:孙玉全 + * @param diff + * @return + */ + @Override + public List findByDiff(Integer diff) { + return resourcesRoomRepository.findByDiff(diff); + } } diff --git a/src/main/java/com/syq/service/impl/StudentsServiceImpl.java b/src/main/java/com/syq/service/impl/StudentsServiceImpl.java index 274347f7704241bb908218acb74e01d986cd83af..2f20162ed70f07d7958bd82af0d964e22eb8d497 100644 --- a/src/main/java/com/syq/service/impl/StudentsServiceImpl.java +++ b/src/main/java/com/syq/service/impl/StudentsServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import com.syq.entity.Students; import com.syq.repository.StudentRepository; @@ -79,8 +80,20 @@ public class StudentsServiceImpl implements StudentsService{ Predicate predicate = criteriaBuilder.conjunction(); //创建动态SQL集合 List> expressions = predicate.getExpressions(); - - + //当学生姓名不为空时 + if(!StringUtils.isEmpty(stu.getSname())) { + expressions.add(criteriaBuilder.like(root.get("sname"), "%"+stu.getSname()+"%")); + } + //当身份证号码正确时 + if(!StringUtils.isEmpty(stu.getIdnumber())) { + expressions.add(criteriaBuilder.equal(root.get("idnumber"), stu.getIdnumber())); + } + //当系别不为空时 + if(stu.getSysteminfo()!=null) { + if(stu.getSysteminfo().getSysid()!=null) { + expressions.add(criteriaBuilder.equal(root.get("systeminfo").get("sysid"), stu.getSysteminfo().getSysid())); + } + } return predicate; } }; diff --git a/src/main/java/com/syq/service/impl/SystemServiceImpl.java b/src/main/java/com/syq/service/impl/SystemServiceImpl.java index 177f2d3af373b0fba196e0b0c56fd939a182f118..41d6f5cf9b6a710556f94a0c9f29545fbf55c935 100644 --- a/src/main/java/com/syq/service/impl/SystemServiceImpl.java +++ b/src/main/java/com/syq/service/impl/SystemServiceImpl.java @@ -2,13 +2,24 @@ package com.syq.service.impl; import java.util.List; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Expression; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import com.syq.entity.Students; import com.syq.entity.Systeminfo; import com.syq.repository.SystemRepository; import com.syq.service.SystemService; +import com.syq.util.FenyeUtil; @Service public class SystemServiceImpl implements SystemService{ @@ -48,6 +59,40 @@ public class SystemServiceImpl implements SystemService{ systemRepository.delete(sys); } + /** + * 条件分页查询所有系别信息 + * 创建人:孙玉全 + * @param sys 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ + @Override + public FenyeUtil listSystemByPage(Systeminfo sys, Pageable pageable) { + Page system = systemRepository.findAll(getspec(sys), pageable); + FenyeUtil fy = new FenyeUtil(); + fy.setData(system.getContent()); + fy.setCount((int)system.getTotalElements()); + return fy; + } + + //动态SQL + private Specification getspec(Systeminfo sys) { + return new Specification() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + //创建动态SQL表达式 + Predicate predicate = criteriaBuilder.conjunction(); + //创建动态SQL集合 + List> expressions = predicate.getExpressions(); + //当系别名称不为空时执行模糊查询 + if(!StringUtils.isEmpty(sys.getSysname())) { + expressions.add(criteriaBuilder.like(root.get("sysname"), "%"+sys.getSysname()+"%")); + } + return predicate; + } + }; + } + } diff --git a/src/main/java/com/syq/util/FenyeUtil.java b/src/main/java/com/syq/util/FenyeUtil.java index bedce7a9a57940401a2b249dbff2f2cadc45dc5a..12ef407bc910d25c39a178f203b95829119b352e 100644 --- a/src/main/java/com/syq/util/FenyeUtil.java +++ b/src/main/java/com/syq/util/FenyeUtil.java @@ -2,6 +2,8 @@ package com.syq.util; import java.util.List; +import com.syq.entity.ResourcesRoom; + /** *分页工具类 * @param 需要执行分页操作的实体类即表明