diff --git a/src/main/java/com/syq/controller/BookTypeController.java b/src/main/java/com/syq/controller/BookTypeController.java index b24f593124f86b562771bc7a42455f20875fd1e7..dd80ab18c25d175ea3ca73375bc8dbb030a97496 100644 --- a/src/main/java/com/syq/controller/BookTypeController.java +++ b/src/main/java/com/syq/controller/BookTypeController.java @@ -3,7 +3,10 @@ package com.syq.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,15 +16,43 @@ import com.syq.service.BookTypeService; @RestController @RequestMapping("/bookType") public class BookTypeController { + // 注入service层数据 @Autowired private BookTypeService bookTypeService; /** - * 查询图书类别 - * @return + * 查询所有图书类型,用于在添加图书是渲染系别下拉框 + * @return 所有图书类型 */ @GetMapping public List getAllBookType() { return bookTypeService.getAllBookType(); } -} + /** + * 添加图书类型 + * @param bt + * @return + */ + @PostMapping + public BookType addBookType(BookType bt) { + return bookTypeService.addOrUpdateBookType(bt); + } + /** + * 修改图书类型 + * @param bt + * @return + */ + @PutMapping + public BookType updateBookType(BookType bt) { + return bookTypeService.addOrUpdateBookType(bt); + } + /** + * 删除图书类型 + * @param btid + * @return + */ + @DeleteMapping + public Integer deleteBookTypeById(Integer btid) { + return bookTypeService.deleteBookTypeById(btid); + } +} \ No newline at end of file diff --git a/src/main/java/com/syq/controller/BooksController.java b/src/main/java/com/syq/controller/BooksController.java index 4c74be7ae29437d395e5b8918e3a38da069e926e..4567b1f40382775b59e2581befc32092bdedd61d 100644 --- a/src/main/java/com/syq/controller/BooksController.java +++ b/src/main/java/com/syq/controller/BooksController.java @@ -3,7 +3,10 @@ package com.syq.controller; 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; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,6 +16,7 @@ import com.syq.service.BooksService; @RestController @RequestMapping("/books") public class BooksController { + // 注入service层数据 @Autowired private BooksService booksService; @@ -24,9 +28,41 @@ public class BooksController { * @return 分页工具类(layui所需要的数据格式) */ @GetMapping - public Object listBooksByPage(Books book,Integer page,Integer limit) { + public Object listBooksByPage(Books book,Integer btid,Integer page,Integer limit) { Pageable pageable = PageRequest.of(page-1, limit); - return booksService.listBooksByPage(book, pageable); + return booksService.listBooksByPage(book,btid, pageable); } -} + + /** + * 添加图书 + * @param b + * @return + */ + @PostMapping + public Books addBooks(Books b) { + return booksService.addOrUpdateBooks(b); + } + + /** + * 修改图书 + * @param b + * @return + */ + @PutMapping + public Books updateBooks(Books b) { + return booksService.addOrUpdateBooks(b); + } + + /** + * 删除图书 + * @param bid + * @return + */ + @DeleteMapping + public Integer delete(Integer bid) { + Books book = new Books(); + book.setBid(bid); + return booksService.deleteBooksById(book); + } +} \ No newline at end of file diff --git a/src/main/java/com/syq/controller/SectionsController.java b/src/main/java/com/syq/controller/SectionsController.java new file mode 100644 index 0000000000000000000000000000000000000000..718ec8a78d10c5051c75fd501ca306adeaab63aa --- /dev/null +++ b/src/main/java/com/syq/controller/SectionsController.java @@ -0,0 +1,60 @@ +package com.syq.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.syq.entity.Sections; +import com.syq.service.SectionsService; + +@RestController +@RequestMapping("/sections") +public class SectionsController { + @Autowired + private SectionsService sectionsService; + + /** + * 查询所有科室信息,用于在添加老师是渲染系别下拉框 + * @return 所有科室信息 + */ + @GetMapping + public List getAllSections() { + return sectionsService.getAllSection(); + } + + /** + * 添加科室信息 + * @param sec + * @return + */ + @PostMapping + public Sections addSections(Sections sec) { + return sectionsService.addOrUpdateSections(sec); + } + + /** + * 修改科室信息 + * @param sec + * @return + */ + @PutMapping + public Sections updateSections(Sections sec) { + return sectionsService.addOrUpdateSections(sec); + } + + /** + * 删除科室信息 + * @param secid + * @return + */ + @DeleteMapping + public Integer deleteSectionsById(Integer secid) { + return sectionsService.deleteSectionsById(secid); + } +} \ No newline at end of file diff --git a/src/main/java/com/syq/controller/TeachersController.java b/src/main/java/com/syq/controller/TeachersController.java new file mode 100644 index 0000000000000000000000000000000000000000..f5178029b92e1c38a5d94569f8b2b003cb15c37b --- /dev/null +++ b/src/main/java/com/syq/controller/TeachersController.java @@ -0,0 +1,65 @@ +package com.syq.controller; + +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; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.syq.entity.Teachers; +import com.syq.service.TeachersService; + +@RestController +@RequestMapping("/teachers") +public class TeachersController { + // 注入service层数据 + @Autowired + private TeachersService teachersService; + + /** + * 分页查询老师信息 + * @param tea 查询条件 + * @param page 分页参数 + * @param limit + * @return 分页工具类(layui所需要的数据格式) + */ + @GetMapping + public Object listTeachersByPage(Teachers tea,Integer secid,Integer page,Integer limit) { + Pageable pageable = PageRequest.of(page-1, limit); + return teachersService.listTeachersByPage(tea,secid, pageable); + } + + /** + * 添加老师信息 + * @param t + * @return + */ + @PostMapping + public Teachers addTeachers(Teachers t) { + return teachersService.addOrUpdateTeachers(t); + } + + /** + * 修改老师信息 + * @param t + * @return + */ + @PutMapping + public Teachers updateTeachers(Teachers t) { + return teachersService.addOrUpdateTeachers(t); + } + + /** + * 删除老师信息 + * @param tid + * @return + */ + @DeleteMapping + public Integer deleteTeachersById(Integer tid) { + return teachersService.deleteTeacherById(tid); + } +} \ No newline at end of file diff --git a/src/main/java/com/syq/entity/Books.java b/src/main/java/com/syq/entity/Books.java index 238a7161b0d45d8bbc2b0a7978551a01d13f07b5..04ae42054084cce05ee2840f7181fb8d000396bf 100644 --- a/src/main/java/com/syq/entity/Books.java +++ b/src/main/java/com/syq/entity/Books.java @@ -30,11 +30,11 @@ public class Books { private String price; //价格 private String remark; //备注 - @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "btid") private BookType bookType; - @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "rid") private ResourcesRoom resourcesRoom; } diff --git a/src/main/java/com/syq/entity/Sections.java b/src/main/java/com/syq/entity/Sections.java new file mode 100644 index 0000000000000000000000000000000000000000..fd4ab6f9be271622d3c12f8e0026b3c22b400c60 --- /dev/null +++ b/src/main/java/com/syq/entity/Sections.java @@ -0,0 +1,24 @@ +package com.syq.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "sections") +public class Sections { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer secid; //科室编号 + private String secname; //科室名称 + private String remark; //备注 +} \ No newline at end of file diff --git a/src/main/java/com/syq/entity/Teachers.java b/src/main/java/com/syq/entity/Teachers.java new file mode 100644 index 0000000000000000000000000000000000000000..292a756f60574d321f6ffe367a73d13e614e25dd --- /dev/null +++ b/src/main/java/com/syq/entity/Teachers.java @@ -0,0 +1,35 @@ +package com.syq.entity; + +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.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "teachers") +public class Teachers { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer tid; //老师编号 + private String tname; //老师名称 + private String cardNo; //卡号 + private String sex; //性别 + private Integer status; //状态 + private String remark; //备注 + private String idnumber; //身份证号码 + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "secid") + private Sections sections; +} diff --git a/src/main/java/com/syq/repository/SectionsRepository.java b/src/main/java/com/syq/repository/SectionsRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..40cc0a6aa26c2fd24daf96fa010b52d6169d8e32 --- /dev/null +++ b/src/main/java/com/syq/repository/SectionsRepository.java @@ -0,0 +1,9 @@ +package com.syq.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.syq.entity.Sections; + +public interface SectionsRepository extends JpaRepository { + +} diff --git a/src/main/java/com/syq/repository/TeachersRepository.java b/src/main/java/com/syq/repository/TeachersRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..5de2fbca1fb432509ca77c1f20ef461a57921bef --- /dev/null +++ b/src/main/java/com/syq/repository/TeachersRepository.java @@ -0,0 +1,10 @@ +package com.syq.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +import com.syq.entity.Teachers; + +public interface TeachersRepository extends JpaRepository, JpaSpecificationExecutor { + +} \ No newline at end of file diff --git a/src/main/java/com/syq/service/BookTypeService.java b/src/main/java/com/syq/service/BookTypeService.java index e24b734080d4b70c8d69c50c7958cb1b64303801..ab961f527960f05d0b169d6ae13e1225e3e968ff 100644 --- a/src/main/java/com/syq/service/BookTypeService.java +++ b/src/main/java/com/syq/service/BookTypeService.java @@ -5,5 +5,21 @@ import java.util.List; import com.syq.entity.BookType; public interface BookTypeService { + /** + * 查询所有图书类型,用于在添加图书是渲染系别下拉框 + * @return 图书类型 + */ List getAllBookType(); + /** + * 添加或修改图书类型 + * @param bt + * @return + */ + BookType addOrUpdateBookType(BookType bt); + /** + * 删除图书类型 + * @param btid + * @return + */ + Integer deleteBookTypeById(Integer btid); } diff --git a/src/main/java/com/syq/service/BooksService.java b/src/main/java/com/syq/service/BooksService.java index 15c5c01e96f0c4c1296354e364456d5abce13089..5b946e6be781b2b2a3a57b101ec58d656d9a67a5 100644 --- a/src/main/java/com/syq/service/BooksService.java +++ b/src/main/java/com/syq/service/BooksService.java @@ -7,5 +7,24 @@ import com.syq.util.FenyeUtil; public interface BooksService { - FenyeUtil listBooksByPage(Books book,Pageable pageable); + /** + * 条件分页查询所有图书信息 + * @param book 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ + FenyeUtil listBooksByPage(Books book,Integer btid,Pageable pageable); + + /** + * 添加或修改图书信息 + * @param b + * @return + */ + Books addOrUpdateBooks(Books b); + + /** + * 删除图书信息 + * @param bid + */ + Integer deleteBooksById(Books book); } diff --git a/src/main/java/com/syq/service/SectionsService.java b/src/main/java/com/syq/service/SectionsService.java new file mode 100644 index 0000000000000000000000000000000000000000..1d1efa23ed41003fdf4a134c7eb81b7adf7d3fb6 --- /dev/null +++ b/src/main/java/com/syq/service/SectionsService.java @@ -0,0 +1,25 @@ +package com.syq.service; + +import java.util.List; + +import com.syq.entity.Sections; + +public interface SectionsService { + /** + * 查询所有科室信息,用于在添加老师是渲染系别下拉框 + * @return 科室信息 + */ + List getAllSection(); + /** + * 添加或修改科室信息 + * @param sec + * @return + */ + Sections addOrUpdateSections(Sections sec); + /** + * 删除科室信息 + * @param secid + * @return + */ + Integer deleteSectionsById(Integer secid); +} diff --git a/src/main/java/com/syq/service/TeachersService.java b/src/main/java/com/syq/service/TeachersService.java new file mode 100644 index 0000000000000000000000000000000000000000..0ccf70de4a385aa0a522b3889d1f656b5e908dc2 --- /dev/null +++ b/src/main/java/com/syq/service/TeachersService.java @@ -0,0 +1,30 @@ +package com.syq.service; + +import org.springframework.data.domain.Pageable; + +import com.syq.entity.Teachers; +import com.syq.util.FenyeUtil; + +public interface TeachersService { + /** + * 条件分页查询所有老师信息 + * @param tea 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ + FenyeUtil listTeachersByPage(Teachers tea,Integer secid,Pageable pageable); + + /** + * 添加或修改老师信息 + * @param t + * @return + */ + Teachers addOrUpdateTeachers(Teachers t); + + /** + * 删除老师信息 + * @param tid + * @return + */ + Integer deleteTeacherById(Integer tid); +} diff --git a/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java b/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java index 5141cb894ed836ecfe8b9d939635c8cc9645bd43..ec50a96ea63bea715c7e06b7e4a5d3f84161754e 100644 --- a/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java +++ b/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java @@ -11,14 +11,41 @@ import com.syq.service.BookTypeService; @Service public class BookTypeServiceImpl implements BookTypeService { - @Autowired private BookTypeRepository bookTypeRepository; + /** + * 查询所有图书类型,用于在添加图书是渲染系别下拉框 + * @return 图书类型 + */ @Override public List getAllBookType() { // TODO Auto-generated method stub return bookTypeRepository.findAll(); } + /** + * 添加或修改图书类型 + */ + @Override + public BookType addOrUpdateBookType(BookType bt) { + // TODO Auto-generated method stub + return bookTypeRepository.saveAndFlush(bt); + } + + /** + * 删除图书类型 + */ + @Override + public Integer deleteBookTypeById(Integer btid) { + // TODO Auto-generated method stub + try { + bookTypeRepository.deleteById(btid); + return 1; + } catch (Exception e) { + // TODO: handle exception + return 0; + } + } + } diff --git a/src/main/java/com/syq/service/impl/BooksServiceImpl.java b/src/main/java/com/syq/service/impl/BooksServiceImpl.java index 8dac43f4de963d84f3f213d25ee96250ee1fe56a..4fb84c435662b8ac8fb1c47f8c2c9685e8fa6a22 100644 --- a/src/main/java/com/syq/service/impl/BooksServiceImpl.java +++ b/src/main/java/com/syq/service/impl/BooksServiceImpl.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.Books; import com.syq.repository.BooksRepository; @@ -22,20 +23,27 @@ import com.syq.util.FenyeUtil; @Service public class BooksServiceImpl implements BooksService { + @Autowired private BooksRepository booksRepository; + /** + * 条件分页查询所有图书信息 + * @param book 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ @Override - public FenyeUtil listBooksByPage(Books book, Pageable pageable) { + public FenyeUtil listBooksByPage(Books book,Integer btid, Pageable pageable) { // TODO Auto-generated method stub - Page books = booksRepository.findAll(get(book), pageable); + Page books = booksRepository.findAll(get(book,btid), pageable); FenyeUtil fy = new FenyeUtil(); fy.setData(books.getContent()); fy.setCount((int)books.getTotalElements()); return fy; } - private Specification get(Books book) { + private Specification get(Books book,Integer btid) { // TODO Auto-generated method stub return new Specification() { @@ -44,12 +52,41 @@ public class BooksServiceImpl implements BooksService { //创建动态SQL表达式 Predicate predicate = criteriaBuilder.conjunction(); //创建动态SQL集合 - List> bList = predicate.getExpressions(); - - + List> expressions = predicate.getExpressions(); + if(!StringUtils.isEmpty(book.getBname())) { + expressions.add(criteriaBuilder.like(root.get("bname"), "%"+book.getBname()+"%")); + } + if(btid!=null) { + expressions.add(criteriaBuilder.equal(root.get("bookType").get("btid"), btid)); + } return predicate; } }; } + + /** + * 添加或修改图书 + */ + @Override + public Books addOrUpdateBooks(Books b) { + // TODO Auto-generated method stub + return booksRepository.saveAndFlush(b); + } + + /** + * 删除图书 + */ + @Override + public Integer deleteBooksById(Books book) { + // TODO Auto-generated method stub + try { + booksRepository.delete(book); + return 1; + } catch (Exception e) { + // TODO: handle exception + return 0; + } + } + } diff --git a/src/main/java/com/syq/service/impl/SectionsServiceImpl.java b/src/main/java/com/syq/service/impl/SectionsServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5445625183957fe87576e6444a0d7f55c624ca79 --- /dev/null +++ b/src/main/java/com/syq/service/impl/SectionsServiceImpl.java @@ -0,0 +1,51 @@ +package com.syq.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.syq.entity.Sections; +import com.syq.repository.SectionsRepository; +import com.syq.service.SectionsService; + +@Service +public class SectionsServiceImpl implements SectionsService { + @Autowired + private SectionsRepository sectionsRepository; + + /** + * 查询所有科室信息,用于在添加老师是渲染系别下拉框 + * @return 科室信息 + */ + @Override + public List getAllSection() { + // TODO Auto-generated method stub + return sectionsRepository.findAll(); + } + + /** + * 添加或修改科室信息 + */ + @Override + public Sections addOrUpdateSections(Sections sec) { + // TODO Auto-generated method stub + return sectionsRepository.saveAndFlush(sec); + } + + /** + * 删除科室信息 + */ + @Override + public Integer deleteSectionsById(Integer secid) { + // TODO Auto-generated method stub + try { + sectionsRepository.deleteById(secid); + return 1; + } catch (Exception e) { + // TODO: handle exception + return 0; + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/syq/service/impl/TeachersServiceImpl.java b/src/main/java/com/syq/service/impl/TeachersServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6b579c6ba5f93aa6f0a232af19f7699dd942a73d --- /dev/null +++ b/src/main/java/com/syq/service/impl/TeachersServiceImpl.java @@ -0,0 +1,95 @@ +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.Teachers; +import com.syq.repository.TeachersRepository; +import com.syq.service.TeachersService; +import com.syq.util.FenyeUtil; + +@Service +public class TeachersServiceImpl implements TeachersService { + + @Autowired + private TeachersRepository teachersRepository; + + /** + * 条件分页查询所有老师信息 + * @param tea 查询条件 + * @param pageable 分页条件 + * @return 分页工具类(layui所需要的格式) + */ + @Override + public FenyeUtil listTeachersByPage(Teachers tea,Integer secid, Pageable pageable) { + Page teachers = teachersRepository.findAll(get(tea,secid), pageable); + //创建分页工具类,并将动态SQL查到的数据添加进去 + FenyeUtil fy = new FenyeUtil(); + fy.setData(teachers.getContent()); + fy.setCount((int)teachers.getTotalPages()); + return fy; + } + + private Specification get(Teachers tea,Integer secid) { + // 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(tea.getTname())) { + expressions.add(criteriaBuilder.like(root.get("tname"), "%"+tea.getTname()+"%")); + } + if(secid!=null) { + expressions.add(criteriaBuilder.equal(root.get("sections").get("secid"), secid)); + } + return predicate; + } + + }; + } + + /** + * 添加或修改老师信息 + * @param t + * @return + */ + @Override + public Teachers addOrUpdateTeachers(Teachers t) { + // TODO Auto-generated method stub + return teachersRepository.saveAndFlush(t); + } + + /** + * 删除老师信息 + * @param tid + * @return + */ + @Override + public Integer deleteTeacherById(Integer tid) { + // TODO Auto-generated method stub + try { + teachersRepository.deleteById(tid); + return 1; + } catch (Exception e) { + // TODO: handle exception + return 0; + } + } + +}