From be33a443dc715a1490587d070ffcb436aefb297a Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 9 Jan 2024 15:10:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E4=B9=A6=E7=B1=BB=E5=9E=8B=20=20?= =?UTF-8?q?=E4=B8=AD=E5=8C=BB=E7=BB=8F=E5=85=B8=20=E4=B8=AD=E5=8C=BB?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=20=E5=90=84=E5=AE=B6=E5=AD=A6=E8=AF=B4=20?= =?UTF-8?q?=E4=B8=AD=E5=8C=BB=E4=B8=B4=E5=BA=8A=20=E6=96=87=E5=AD=A6=20?= =?UTF-8?q?=E5=93=B2=E5=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/BookController.java | 44 ++++++++++++++++--- .../ShopProductLabelController.java | 26 ++++++----- .../modules/book/entity/BookEntity.java | 6 +++ 3 files changed, 61 insertions(+), 15 deletions(-) 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 b0bcf8c0..1e1ae5e0 100644 --- a/src/main/java/com/peanut/modules/book/controller/BookController.java +++ b/src/main/java/com/peanut/modules/book/controller/BookController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.Query; import com.peanut.common.utils.ReadProvinceUtil; import com.peanut.modules.book.dao.BookDao; @@ -15,6 +16,7 @@ import com.peanut.modules.book.entity.*; import com.peanut.modules.book.service.*; import com.peanut.modules.book.vo.BookIndexVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.*; @@ -63,6 +65,8 @@ public class BookController { private ShopProductBookService shopProductBookService; @Autowired private ShopProductToLabelService shopProductToLabelService; + @Autowired + private MedicaldesBookService medicaldesBookService; final ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10); /** @@ -235,7 +239,16 @@ public class BookController { public R save(@RequestBody BookEntity book) { bookService.save(book); - + //添加图书类型关系表 + String[] types = book.getMedicaldesBookType().split(","); + if (types.length > 0) { + for (int i = 0; i < types.length; i++) { + MedicaldesBook medicaldesBook = new MedicaldesBook(); + medicaldesBook.setBookId(book.getId()); + medicaldesBook.setTypeId(Integer.parseInt(types[i])); + medicaldesBookService.save(medicaldesBook); + } + } return R.ok(); } @@ -276,7 +289,24 @@ public class BookController { @RequestMapping("/update") public R update(@RequestBody BookEntity book) { bookService.updateById(book); - + //修改图书类型关系表 + //先删除 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(MedicaldesBook::getBookId,book.getId()); + List list = medicaldesBookService.list(wrapper); + if (list.size() > 0) { + medicaldesBookService.removeByIds(list); + } + //再添加 + String[] types = book.getMedicaldesBookType().split(","); + if (types.length > 0) { + for (int i = 0; i < types.length; i++) { + MedicaldesBook medicaldesBook = new MedicaldesBook(); + medicaldesBook.setBookId(book.getId()); + medicaldesBook.setTypeId(Integer.parseInt(types[i])); + medicaldesBookService.save(medicaldesBook); + } + } return R.ok(); } @@ -690,17 +720,21 @@ public class BookController { * @return */ @RequestMapping("/getMyBooks") - public R getMyBooks(@RequestParam Integer userId,@RequestParam Integer limit,@RequestParam Integer page){ + public R getMyBooks(Integer userId,Integer limit,Integer page,Integer type){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(UserEbookBuyEntity::getUserId,userId); wrapper.groupBy(UserEbookBuyEntity::getBookId); List bookIds = userEbookBuyService.getBaseMapper().selectList(wrapper).stream().map(UserEbookBuyEntity::getBookId).collect(Collectors.toList()); - - LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + MPJLambdaWrapper wrapper1 = new MPJLambdaWrapper<>(); wrapper1.eq(BookEntity::getDelFlag,0); if(bookIds.size()>0){ wrapper1.in(BookEntity::getId,bookIds); } + if (type!=null){ + wrapper1.selectAll(BookEntity.class); + wrapper1.leftJoin(MedicaldesBook.class,MedicaldesBook::getBookId,BookEntity::getId); + wrapper1.eq(MedicaldesBook::getTypeId,type); + } Page bookEntityPage = bookService.getBaseMapper().selectPage(new Page<>(page, limit), wrapper1); return R.ok().put("page",bookEntityPage); diff --git a/src/main/java/com/peanut/modules/book/controller/ShopProductLabelController.java b/src/main/java/com/peanut/modules/book/controller/ShopProductLabelController.java index cab27409..9e4ad68c 100644 --- a/src/main/java/com/peanut/modules/book/controller/ShopProductLabelController.java +++ b/src/main/java/com/peanut/modules/book/controller/ShopProductLabelController.java @@ -7,6 +7,7 @@ import com.peanut.common.utils.PageUtils; import com.peanut.common.utils.R; import com.peanut.modules.book.dao.ShopProductLabelDao; import com.peanut.modules.book.dao.ShopProductToLabelDao; +import com.peanut.modules.book.entity.MedicaldesBook; import com.peanut.modules.book.entity.ShopProduct; import com.peanut.modules.book.entity.ShopProductLabelEntity; import com.peanut.modules.book.entity.ShopProductToLabelEntity; @@ -103,16 +104,21 @@ public class ShopProductLabelController { * @return */ @RequestMapping("/getProductsByLabel") - public R getProductsByLabel(@RequestParam Integer splId,@RequestParam Integer limit,@RequestParam Integer page){ - MPJLambdaWrapper shopProductEntityMPJLambdaWrapper = new MPJLambdaWrapper(); - shopProductEntityMPJLambdaWrapper.selectAll(ShopProduct.class); - shopProductEntityMPJLambdaWrapper.leftJoin(ShopProduct.class, ShopProduct::getProductId,ShopProductToLabelEntity::getProductId); - shopProductEntityMPJLambdaWrapper.eq(ShopProductToLabelEntity::getSplId,splId); - shopProductEntityMPJLambdaWrapper.eq(ShopProductToLabelEntity::getDelFlag,0); - shopProductEntityMPJLambdaWrapper.eq(ShopProduct::getDelFlag,0); - shopProductEntityMPJLambdaWrapper.gt(ShopProduct::getProductStock,0); - Page shopProductEntityPage = shopProductToLabelDao.selectJoinPage(new Page(page, limit), ShopProduct.class, shopProductEntityMPJLambdaWrapper); - + public R getProductsByLabel(Integer splId,Integer limit,Integer page,Integer type){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.selectAll(ShopProduct.class); + wrapper.leftJoin(ShopProduct.class, ShopProduct::getProductId,ShopProductToLabelEntity::getProductId); + wrapper.eq(ShopProductToLabelEntity::getSplId,splId); + wrapper.eq(ShopProductToLabelEntity::getDelFlag,0); + wrapper.eq(ShopProduct::getDelFlag,0); + wrapper.gt(ShopProduct::getProductStock,0); + if (type!=null){ + wrapper.leftJoin(MedicaldesBook.class, MedicaldesBook::getBookId,ShopProduct::getBookId); + wrapper.inSql(ShopProduct::getProductId,"select product_id from shop_product where book_Ids not like \"%,%\""); + wrapper.eq(MedicaldesBook::getTypeId,type); + } + Page shopProductEntityPage = shopProductToLabelDao.selectJoinPage(new Page(page, limit), + ShopProduct.class, wrapper); return R.ok().put("page",shopProductEntityPage); } } diff --git a/src/main/java/com/peanut/modules/book/entity/BookEntity.java b/src/main/java/com/peanut/modules/book/entity/BookEntity.java index cb6a1127..cba95020 100644 --- a/src/main/java/com/peanut/modules/book/entity/BookEntity.java +++ b/src/main/java/com/peanut/modules/book/entity/BookEntity.java @@ -190,5 +190,11 @@ public class BookEntity implements Serializable { private Integer clockIn; + /** + * 图书类型 中医经典 中医基础 各家学说 中医临床 文学 哲学 + */ + @TableField(exist = false) + private String medicaldesBookType; + }