From a565e10dd25cbb9c4c36c9a46a272332f06ef049 Mon Sep 17 00:00:00 2001 From: zhao <2796247050@qq.com> Date: Tue, 23 Jul 2024 11:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E5=88=97=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E5=9B=BE=E4=B9=A6=EF=BC=8C=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maku-framework/src/main/resources/auth.yml | 1 + .../maku/controller/TBookCollectionController.java | 51 +++++++++++++++++++--- .../maku/controller/TBookCommentController.java | 7 +++ .../net/maku/maku/controller/TBookController.java | 23 +--------- .../controller/TShoppingTrolleyController.java | 1 - .../maku/maku/entity/TBookCollectionEntity.java | 2 + .../maku/maku/service/TBookCollectionService.java | 4 ++ .../net/maku/maku/service/TBookCommentService.java | 2 + .../service/impl/TBookCollectionServiceImpl.java | 23 +++++++--- .../maku/service/impl/TBookCommentServiceImpl.java | 7 +++ .../service/impl/TShoppingTrolleyServiceImpl.java | 12 +++-- .../java/net/maku/maku/vo/TBookCollectionVO.java | 2 + 12 files changed, 94 insertions(+), 41 deletions(-) diff --git a/maku-framework/src/main/resources/auth.yml b/maku-framework/src/main/resources/auth.yml index c7be1bd..67452c6 100644 --- a/maku-framework/src/main/resources/auth.yml +++ b/maku-framework/src/main/resources/auth.yml @@ -17,5 +17,6 @@ auth: - /maku/t_shopping_trolley/aaa - /maku/t_book_collection/** - /maku/t_shopping_trolley/** + - /maku/t_collection/** diff --git a/maku-server/src/main/java/net/maku/maku/controller/TBookCollectionController.java b/maku-server/src/main/java/net/maku/maku/controller/TBookCollectionController.java index e2f3e74..ec9f3cb 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TBookCollectionController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TBookCollectionController.java @@ -51,15 +51,10 @@ public class TBookCollectionController { if(ObjectUtils.isNull(entity)){ throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); } - - TUserEntity tUserEntity = (TUserEntity) redisCache.get(token); Integer userId=tUserEntity.getId(); LocalDateTime currentTime = LocalDateTime.now(); ZoneId zoneId = ZoneId.systemDefault(); - - //DATE没有时区二localDateTime有时区,为了将 LocalDateTime 转换为 Date,你需要指定一个时区,因为 Date 是基于UTC的 - // 将LocalDateTime转换为ZonedDateTime,然后转换为Instant,最后转换为Date ZonedDateTime zdt = currentTime.atZone(zoneId); Date date = Date.from(zdt.toInstant()); @@ -71,10 +66,8 @@ public class TBookCollectionController { @PreAuthorize("hasAuthority('maku:t_book_collection:page')") public Result> page(@ParameterObject @Valid TBookCollectionQuery query){ PageResult page = tBookCollectionService.page(query); - return Result.ok(page); } - @GetMapping("{id}") @Operation(summary = "信息") @PreAuthorize("hasAuthority('maku:t_book_collection:info')") @@ -110,4 +103,48 @@ public class TBookCollectionController { return Result.ok(); } + @PostMapping("/collection") + @Operation(summary = "收藏图书") + public Result setbookcollection(HttpServletRequest request, @RequestParam Integer bookId) { + String token = request.getHeader("token"); + TUserEntity entity = (TUserEntity) redisCache.get(token); + if (ObjectUtils.isNull(entity)) { + throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); + } + + Integer userId = entity.getId(); // 直接使用已经获取的用户信息 + + // Check if the book has already been collected by the user + boolean isBookAlreadyCollected = tBookCollectionService.isBookAlreadyCollected(userId, bookId); + if (isBookAlreadyCollected) { + return Result.error("该书已经收藏过,不能重复收藏"); + } + + // If not already collected, proceed with saving the collection record + LocalDateTime currentTime = LocalDateTime.now(); + ZoneId zoneId = ZoneId.systemDefault(); + ZonedDateTime zdt = currentTime.atZone(zoneId); + Date date = Date.from(zdt.toInstant()); + + tBookCollectionService.save(userId, bookId, date); + + return Result.ok("收藏图书成功"); + } + + @GetMapping("/status") + @Operation(summary = "收藏状态") + public Result status(HttpServletRequest request,@RequestParam Integer bookId){ + String token = request.getHeader("token"); + TUserEntity user = (TUserEntity) redisCache.get(token); + if(ObjectUtils.isNull(user)){ + throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); + } + Integer userId=user.getId(); + TBookCollectionEntity entity1 = tBookCollectionService.getByBookIdandUserId(bookId,userId); + if(entity1 !=null&&entity1.getStatus() !=null&&entity1.getStatus()==1){ + return Result.ok("已收藏"); + }else { + return Result.ok("未收藏"); + } + } } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/controller/TBookCommentController.java b/maku-server/src/main/java/net/maku/maku/controller/TBookCommentController.java index 2eea3b0..19cb224 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TBookCommentController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TBookCommentController.java @@ -112,4 +112,11 @@ public class TBookCommentController { return Result.ok(); } + @GetMapping("/list/{bookId}") + @Operation(summary = "查看评论列表") + public Result> list(@PathVariable Integer bookId){ + + return Result.ok(tBookCommentService.getByBookId(bookId)); + } + } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/controller/TBookController.java b/maku-server/src/main/java/net/maku/maku/controller/TBookController.java index f358d9b..5b8a42b 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TBookController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TBookController.java @@ -47,8 +47,6 @@ public class TBookController { private final RedisCache redisCache; private final TBookCollectionService tBookCollectionService; - - @GetMapping("/list") @Operation(summary = "列表") public Result> list() { @@ -71,26 +69,7 @@ public class TBookController { return Result.ok(entity); } - @PostMapping("/collection") - @Operation(summary = "收藏图书") - public Result setbookcollection(HttpServletRequest request, @RequestParam Integer bookId) { - // 首先验证token的有效性,然后从Redis中获取用户信息 - String token = request.getHeader("token"); - TUserEntity entity = (TUserEntity) redisCache.get(token); - if(ObjectUtils.isNull(entity)){ - throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); - } - TUserEntity tUserEntity = (TUserEntity) redisCache.get(token); - Integer userId=tUserEntity.getId(); - LocalDateTime currentTime = LocalDateTime.now(); - ZoneId zoneId = ZoneId.systemDefault(); - //DATE没有时区二localDateTime有时区,为了将 LocalDateTime 转换为 Date,你需要指定一个时区,因为 Date 是基于UTC的 - // 将LocalDateTime转换为ZonedDateTime,然后转换为Instant,最后转换为Date - ZonedDateTime zdt = currentTime.atZone(zoneId); - Date date = Date.from(zdt.toInstant()); - tBookCollectionService.save(userId,bookId,date); - return Result.ok("收藏图书成功"); - } + diff --git a/maku-server/src/main/java/net/maku/maku/controller/TShoppingTrolleyController.java b/maku-server/src/main/java/net/maku/maku/controller/TShoppingTrolleyController.java index 7c97e09..65f0753 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TShoppingTrolleyController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TShoppingTrolleyController.java @@ -80,7 +80,6 @@ public class TShoppingTrolleyController { } @GetMapping("{id}") @Operation(summary = "信息") -// @PreAuthorize("hasAuthority('maku:t_shopping_trolley:info')") public Result get(@PathVariable("id") Long id){ TShoppingTrolleyEntity entity = tShoppingTrolleyService.getById(id); diff --git a/maku-server/src/main/java/net/maku/maku/entity/TBookCollectionEntity.java b/maku-server/src/main/java/net/maku/maku/entity/TBookCollectionEntity.java index 73cbd4f..4ab2e3b 100644 --- a/maku-server/src/main/java/net/maku/maku/entity/TBookCollectionEntity.java +++ b/maku-server/src/main/java/net/maku/maku/entity/TBookCollectionEntity.java @@ -25,4 +25,6 @@ public class TBookCollectionEntity { private Date updateTime; + private Integer status; + } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/service/TBookCollectionService.java b/maku-server/src/main/java/net/maku/maku/service/TBookCollectionService.java index df9e121..aaa5b4a 100644 --- a/maku-server/src/main/java/net/maku/maku/service/TBookCollectionService.java +++ b/maku-server/src/main/java/net/maku/maku/service/TBookCollectionService.java @@ -26,4 +26,8 @@ public interface TBookCollectionService extends BaseService idList); void save(Integer userId, Integer bookId, Date currentTime); + + TBookCollectionEntity getByBookIdandUserId(Integer bookId, Integer userId); + + boolean isBookAlreadyCollected(Integer userId, Integer bookId); } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/service/TBookCommentService.java b/maku-server/src/main/java/net/maku/maku/service/TBookCommentService.java index a6ed9a6..c3262eb 100644 --- a/maku-server/src/main/java/net/maku/maku/service/TBookCommentService.java +++ b/maku-server/src/main/java/net/maku/maku/service/TBookCommentService.java @@ -26,4 +26,6 @@ public interface TBookCommentService extends BaseService { void delete(List idList); void save(Integer userId, Integer bookId, String comment, Date date); + + List getByBookId(Integer bookId); } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/service/impl/TBookCollectionServiceImpl.java b/maku-server/src/main/java/net/maku/maku/service/impl/TBookCollectionServiceImpl.java index c24a03d..94eddd8 100644 --- a/maku-server/src/main/java/net/maku/maku/service/impl/TBookCollectionServiceImpl.java +++ b/maku-server/src/main/java/net/maku/maku/service/impl/TBookCollectionServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import lombok.Data; import net.maku.framework.common.utils.PageResult; +import net.maku.framework.common.utils.Result; import net.maku.framework.mybatis.service.impl.BaseServiceImpl; import net.maku.maku.convert.TBookCollectionConvert; import net.maku.maku.entity.TBookCollectionEntity; @@ -72,15 +73,23 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TBookCollectionEntity::getBookId, bookId); + wrapper.eq(TBookCollectionEntity::getUserId, userId); -} \ No newline at end of file + return baseMapper.selectOne(wrapper); + } + @Override + public boolean isBookAlreadyCollected(Integer userId, Integer bookId) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TBookCollectionEntity::getBookId, bookId); + wrapper.eq(TBookCollectionEntity::getUserId, userId); + return baseMapper.selectCount(wrapper) > 0; + } + } diff --git a/maku-server/src/main/java/net/maku/maku/service/impl/TBookCommentServiceImpl.java b/maku-server/src/main/java/net/maku/maku/service/impl/TBookCommentServiceImpl.java index d5dd02e..f10ed25 100644 --- a/maku-server/src/main/java/net/maku/maku/service/impl/TBookCommentServiceImpl.java +++ b/maku-server/src/main/java/net/maku/maku/service/impl/TBookCommentServiceImpl.java @@ -75,4 +75,11 @@ public class TBookCommentServiceImpl extends BaseServiceImpl getByBookId(Integer bookId) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TBookCommentEntity::getBookId, bookId); + return baseMapper.selectList(wrapper); + } + } \ No newline at end of file diff --git a/maku-server/src/main/java/net/maku/maku/service/impl/TShoppingTrolleyServiceImpl.java b/maku-server/src/main/java/net/maku/maku/service/impl/TShoppingTrolleyServiceImpl.java index cdca5c2..48d085e 100644 --- a/maku-server/src/main/java/net/maku/maku/service/impl/TShoppingTrolleyServiceImpl.java +++ b/maku-server/src/main/java/net/maku/maku/service/impl/TShoppingTrolleyServiceImpl.java @@ -37,10 +37,10 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl(TShoppingTrolleyConvert.INSTANCE.convertList(page.getRecords()), page.getTotal()); } - private LambdaQueryWrapper getWrapper(TShoppingTrolleyQuery query){ + private LambdaQueryWrapper getWrapper(TShoppingTrolleyQuery query) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(ObjectUtils.isNotNull(query.getUserId()), TShoppingTrolleyEntity::getUserId,query.getUserId()); - wrapper.eq(ObjectUtils.isNotNull(query.getBookId()),TShoppingTrolleyEntity::getBookId, query.getBookId()); + wrapper.eq(ObjectUtils.isNotNull(query.getUserId()), TShoppingTrolleyEntity::getUserId, query.getUserId()); + wrapper.eq(ObjectUtils.isNotNull(query.getBookId()), TShoppingTrolleyEntity::getBookId, query.getBookId()); return wrapper; } @@ -100,5 +100,9 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl