diff --git a/peanut_book.iml b/peanut_book.iml index e73e4b81..1daccaec 100644 --- a/peanut_book.iml +++ b/peanut_book.iml @@ -1,275 +1,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 673c603f..d9cb5821 100644 --- a/pom.xml +++ b/pom.xml @@ -375,7 +375,7 @@ com.github.yulichang mybatis-plus-join-boot-starter - 1.4.4.1 + 1.4.6 diff --git a/src/main/java/com/peanut/modules/book/controller/BookController.java b/src/main/java/com/peanut/modules/book/controller/BookController.java index 283dabc4..6facd2d1 100644 --- a/src/main/java/com/peanut/modules/book/controller/BookController.java +++ b/src/main/java/com/peanut/modules/book/controller/BookController.java @@ -3,7 +3,10 @@ import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.ReadProvinceUtil; +import com.peanut.modules.book.dao.BookDao; import com.peanut.modules.book.entity.*; import com.peanut.modules.book.service.*; import com.peanut.modules.book.vo.BookIndexVo; @@ -47,6 +50,8 @@ public class BookController { private CountyService countyService; @Autowired private UserEbookBuyService userEbookBuyService; + @Autowired + private BookDao bookDao; final ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10); /** @@ -187,6 +192,26 @@ public class BookController { return R.ok(); } + /** + * 获取用户未拥有的可听图书 + * @return + */ + @RequestMapping("/getUserNobuyBooks") + public R getUserNobuyBooks(@RequestParam Integer userId,@RequestParam Integer limit,@RequestParam Integer page){ + List bookids = userEbookBuyService.getBaseMapper().selectList(new QueryWrapper() + .select("book_id").eq("user_id", userId)); + List bids = new ArrayList(); + for (UserEbookBuyEntity b :bookids){ + bids.add(b.getBookId()); + } + Integer start = (page-1)*limit; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("t.can_listen",1); + wrapper.notIn("t1.Book_id",bids); + List bookEntities = bookDao.queryUserListenBooksNobuy(wrapper,start,limit); + Integer count = bookDao.queryUserListenBooksNobuyCount(wrapper); + return R.ok().put("books",bookEntities).put("count",count); + } /** * 修改 diff --git a/src/main/java/com/peanut/modules/book/controller/UserEbookBuyController.java b/src/main/java/com/peanut/modules/book/controller/UserEbookBuyController.java index cd8d5d4e..79fbe22a 100644 --- a/src/main/java/com/peanut/modules/book/controller/UserEbookBuyController.java +++ b/src/main/java/com/peanut/modules/book/controller/UserEbookBuyController.java @@ -1,9 +1,6 @@ package com.peanut.modules.book.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.yulichang.base.MPJBaseMapper; -import com.github.yulichang.base.mapper.MPJJoinMapper; -import com.github.yulichang.toolkit.MPJWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.PageUtils; import com.peanut.common.utils.R; @@ -113,6 +110,15 @@ public class UserEbookBuyController { } + /** + * 获取用户可听书列表 + * @return + */ + @RequestMapping("/getUserCanlistenBooks") + public R getUserCanlistenBooks(@RequestParam Integer userId,@RequestParam Integer limit,@RequestParam Integer page){ + return R.ok(); + } + @RequestMapping("/buylist") public R buylist(@RequestParam Map params){ String userId = (String) params.get("id"); diff --git a/src/main/java/com/peanut/modules/book/dao/BookDao.java b/src/main/java/com/peanut/modules/book/dao/BookDao.java index 467821b0..ae013f76 100644 --- a/src/main/java/com/peanut/modules/book/dao/BookDao.java +++ b/src/main/java/com/peanut/modules/book/dao/BookDao.java @@ -1,9 +1,13 @@ package com.peanut.modules.book.dao; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.base.MPJBaseMapper; import com.peanut.modules.book.entity.BookEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; @@ -20,4 +24,10 @@ public interface BookDao extends MPJBaseMapper { List queryBookInOther(String publisherName,String authorName); + + @Select("select t.* from book t left join user_ebook_buy t1 on t.id = t1.book_id ${ew.customSqlSegment} limit #{start},#{limit}") + List queryUserListenBooksNobuy(@Param("ew") QueryWrapper wrapper,@Param("start") int start,@Param("limit") int limit); + + @Select("select count(*) as sum from book t left join user_ebook_buy t1 on t.id = t1.book_id ${ew.customSqlSegment}") + Integer queryUserListenBooksNobuyCount(@Param("ew") QueryWrapper wrapper); } diff --git a/src/main/java/com/peanut/modules/book/dao/UserEbookBuyDao.java b/src/main/java/com/peanut/modules/book/dao/UserEbookBuyDao.java index 7898905f..2f5e0f47 100644 --- a/src/main/java/com/peanut/modules/book/dao/UserEbookBuyDao.java +++ b/src/main/java/com/peanut/modules/book/dao/UserEbookBuyDao.java @@ -1,5 +1,6 @@ package com.peanut.modules.book.dao; +import com.github.yulichang.base.MPJBaseMapper; import com.peanut.modules.book.entity.UserEbookBuyEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -12,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper; * @date 2022-10-18 16:28:20 */ @Mapper -public interface UserEbookBuyDao extends BaseMapper { +public interface UserEbookBuyDao extends MPJBaseMapper { }