diff --git a/src/main/java/com/syq/controller/BookTypeController.java b/src/main/java/com/syq/controller/BookTypeController.java new file mode 100644 index 0000000000000000000000000000000000000000..b24f593124f86b562771bc7a42455f20875fd1e7 --- /dev/null +++ b/src/main/java/com/syq/controller/BookTypeController.java @@ -0,0 +1,27 @@ +package com.syq.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.syq.entity.BookType; +import com.syq.service.BookTypeService; + +@RestController +@RequestMapping("/bookType") +public class BookTypeController { + @Autowired + private BookTypeService bookTypeService; + + /** + * 查询图书类别 + * @return + */ + @GetMapping + public List getAllBookType() { + return bookTypeService.getAllBookType(); + } +} diff --git a/src/main/java/com/syq/controller/BooksController.java b/src/main/java/com/syq/controller/BooksController.java new file mode 100644 index 0000000000000000000000000000000000000000..4c74be7ae29437d395e5b8918e3a38da069e926e --- /dev/null +++ b/src/main/java/com/syq/controller/BooksController.java @@ -0,0 +1,32 @@ +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.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.syq.entity.Books; +import com.syq.service.BooksService; + +@RestController +@RequestMapping("/books") +public class BooksController { + @Autowired + private BooksService booksService; + + /** + * 分页查询图书 + * @param book + * @param page + * @param limit + * @return 分页工具类(layui所需要的数据格式) + */ + @GetMapping + public Object listBooksByPage(Books book,Integer page,Integer limit) { + Pageable pageable = PageRequest.of(page-1, limit); + + return booksService.listBooksByPage(book, pageable); + } +} diff --git a/src/main/java/com/syq/entity/BookType.java b/src/main/java/com/syq/entity/BookType.java new file mode 100644 index 0000000000000000000000000000000000000000..74fbbb11e6c69a9cf6edaf89afdbdc8b719ff63d --- /dev/null +++ b/src/main/java/com/syq/entity/BookType.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 = "bookType") +public class BookType { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer btid; //图书类别编号 + private String btname; //类别名称 + private String remark; //备注 +} diff --git a/src/main/java/com/syq/entity/Books.java b/src/main/java/com/syq/entity/Books.java new file mode 100644 index 0000000000000000000000000000000000000000..ce69171c8fe1c38bedf35d09ac802041db1f77c7 --- /dev/null +++ b/src/main/java/com/syq/entity/Books.java @@ -0,0 +1,40 @@ +package com.syq.entity; + +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.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "books") +public class Books { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer bid; //图书编号 + private String bname; //图书名称 + private String author; //作者 + private String press; //出版社 + private String pressTime; //出版时间 + private String price; //价格 + private String remark; //备注 + + @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + @JoinColumn(name = "btid") + private BookType bookType; + + // @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + // @JoinColumn(name = "rid") + // private ResourcesRooms resourcesRooms; +} diff --git a/src/main/java/com/syq/repository/BookTypeRepository.java b/src/main/java/com/syq/repository/BookTypeRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..70639efe2c6786d8036933fae73d52a55b87264f --- /dev/null +++ b/src/main/java/com/syq/repository/BookTypeRepository.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.BookType; + +public interface BookTypeRepository extends JpaRepository, JpaSpecificationExecutor { + +} diff --git a/src/main/java/com/syq/repository/BooksRepository.java b/src/main/java/com/syq/repository/BooksRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..efa9388754b8944b4f58828b4dd45b91b8bb9b61 --- /dev/null +++ b/src/main/java/com/syq/repository/BooksRepository.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.Books; + +public interface BooksRepository extends JpaRepository, JpaSpecificationExecutor { + +} diff --git a/src/main/java/com/syq/service/BookTypeService.java b/src/main/java/com/syq/service/BookTypeService.java new file mode 100644 index 0000000000000000000000000000000000000000..e24b734080d4b70c8d69c50c7958cb1b64303801 --- /dev/null +++ b/src/main/java/com/syq/service/BookTypeService.java @@ -0,0 +1,9 @@ +package com.syq.service; + +import java.util.List; + +import com.syq.entity.BookType; + +public interface BookTypeService { + List getAllBookType(); +} diff --git a/src/main/java/com/syq/service/BooksService.java b/src/main/java/com/syq/service/BooksService.java new file mode 100644 index 0000000000000000000000000000000000000000..5d9c7796a525682f4e992b88d1372a020aa0210a --- /dev/null +++ b/src/main/java/com/syq/service/BooksService.java @@ -0,0 +1,10 @@ +package com.syq.service; + +import org.springframework.data.domain.Pageable; + +import com.syq.entity.Books; +import com.syq.util.FenyeUtil; + +public interface BooksService { + FenyeUtil listBooksByPage(Books book,Pageable pageable); +} diff --git a/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java b/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5141cb894ed836ecfe8b9d939635c8cc9645bd43 --- /dev/null +++ b/src/main/java/com/syq/service/impl/BookTypeServiceImpl.java @@ -0,0 +1,24 @@ +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.BookType; +import com.syq.repository.BookTypeRepository; +import com.syq.service.BookTypeService; + +@Service +public class BookTypeServiceImpl implements BookTypeService { + + @Autowired + private BookTypeRepository bookTypeRepository; + + @Override + public List getAllBookType() { + // TODO Auto-generated method stub + return bookTypeRepository.findAll(); + } + +} diff --git a/src/main/java/com/syq/service/impl/BooksServiceImpl.java b/src/main/java/com/syq/service/impl/BooksServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8dac43f4de963d84f3f213d25ee96250ee1fe56a --- /dev/null +++ b/src/main/java/com/syq/service/impl/BooksServiceImpl.java @@ -0,0 +1,55 @@ +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 com.syq.entity.Books; +import com.syq.repository.BooksRepository; +import com.syq.service.BooksService; +import com.syq.util.FenyeUtil; + +@Service +public class BooksServiceImpl implements BooksService { + + @Autowired + private BooksRepository booksRepository; + + @Override + public FenyeUtil listBooksByPage(Books book, Pageable pageable) { + // TODO Auto-generated method stub + Page books = booksRepository.findAll(get(book), pageable); + FenyeUtil fy = new FenyeUtil(); + fy.setData(books.getContent()); + fy.setCount((int)books.getTotalElements()); + return fy; + } + + private Specification get(Books book) { + // 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> bList = predicate.getExpressions(); + + + return predicate; + } + }; + } + +}