From 73ce32d5e790e4ecf8af63c0afd9685f5cc2e187 Mon Sep 17 00:00:00 2001 From: TianZhou <3570544406@qq.com> Date: Tue, 23 Jul 2024 09:47:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=AE=8C=E4=BB=A5=E5=90=8Etoken=E4=B8=8D=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/net/maku/maku/controller/TUserController.java | 7 +++++++ maku-server/src/main/java/net/maku/maku/entity/TUserEntity.java | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/maku-server/src/main/java/net/maku/maku/controller/TUserController.java b/maku-server/src/main/java/net/maku/maku/controller/TUserController.java index 3a3e027..9466208 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TUserController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TUserController.java @@ -3,9 +3,12 @@ package net.maku.maku.controller; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import net.maku.framework.common.cache.RedisCache; +import net.maku.framework.common.exception.ErrorCode; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.Result; import net.maku.maku.convert.TUserConvert; @@ -75,6 +78,10 @@ public class TUserController { public Result findByUsername(HttpServletRequest request){ String token = request.getHeader("token"); TUserEntity entity = (TUserEntity) redisCache.get(token); + if(ObjectUtils.isNull(entity)){ + throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); + } + return Result.ok(entity); } diff --git a/maku-server/src/main/java/net/maku/maku/entity/TUserEntity.java b/maku-server/src/main/java/net/maku/maku/entity/TUserEntity.java index 3c16d6a..b890266 100644 --- a/maku-server/src/main/java/net/maku/maku/entity/TUserEntity.java +++ b/maku-server/src/main/java/net/maku/maku/entity/TUserEntity.java @@ -20,6 +20,7 @@ public class TUserEntity { private String username; + private String password; private String avatar; @@ -28,6 +29,10 @@ public class TUserEntity { private Integer status; + private String phone; + + private String email; + private Date createTime; private Date updateTime; From 39591d3940d9e082d2bed08514bca2b308e12352 Mon Sep 17 00:00:00 2001 From: hxf13 <2994198039@qq.com> Date: Tue, 23 Jul 2024 09:58:16 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=84=E4=B8=AA?= =?UTF-8?q?=E5=B1=82=E7=9A=84token=E6=8A=A5=E9=94=99=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysUserDetailsServiceImpl.java | 4 +-- maku-framework/src/main/resources/auth.yml | 2 ++ .../maku/controller/TBookCollectionController.java | 35 ++++++++++++++++++++++ .../maku/controller/TBookCommentController.java | 9 ++++-- .../net/maku/maku/controller/TBookController.java | 13 ++++++-- .../controller/TShoppingTrolleyController.java | 9 ++++-- .../java/net/maku/maku/dao/TBookCollectionDao.java | 4 ++- .../resources/mapper/maku/TBookCollectionDao.xml | 7 +++++ .../src/main/resources/mapper/maku/TUserDao.xml | 1 + 9 files changed, 74 insertions(+), 10 deletions(-) diff --git a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysUserDetailsServiceImpl.java b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysUserDetailsServiceImpl.java index a8071ac..098aa8e 100644 --- a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysUserDetailsServiceImpl.java +++ b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysUserDetailsServiceImpl.java @@ -36,11 +36,11 @@ public class SysUserDetailsServiceImpl implements SysUserDetailsService { if (userDetail.getStatus() == UserStatusEnum.DISABLE.getValue()) { userDetail.setEnabled(false); } - +// 根据用户id获得身份 // 数据权限范围 List dataScopeList = getDataScope(userDetail); userDetail.setDataScopeList(dataScopeList); - +// // 用户权限列表 Set authoritySet = sysMenuService.getUserAuthority(userDetail); diff --git a/maku-framework/src/main/resources/auth.yml b/maku-framework/src/main/resources/auth.yml index 024a098..c7be1bd 100644 --- a/maku-framework/src/main/resources/auth.yml +++ b/maku-framework/src/main/resources/auth.yml @@ -14,6 +14,8 @@ auth: - /maku/t_book/{id} - /maku/t_book/{id} - /user/login + - /maku/t_shopping_trolley/aaa + - /maku/t_book_collection/** - /maku/t_shopping_trolley/** 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 37b6f37..e2f3e74 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 @@ -1,12 +1,19 @@ package net.maku.maku.controller; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; +import net.maku.framework.common.cache.RedisCache; +import net.maku.framework.common.exception.ErrorCode; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.Result; import net.maku.maku.convert.TBookCollectionConvert; +import net.maku.maku.dao.TBookCollectionDao; import net.maku.maku.entity.TBookCollectionEntity; +import net.maku.maku.entity.TUserEntity; import net.maku.maku.service.TBookCollectionService; import net.maku.maku.query.TBookCollectionQuery; import net.maku.maku.vo.TBookCollectionVO; @@ -15,6 +22,11 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import jakarta.validation.Valid; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Date; import java.util.List; /** @@ -29,7 +41,30 @@ import java.util.List; @AllArgsConstructor public class TBookCollectionController { private final TBookCollectionService tBookCollectionService; + private final TBookCollectionDao bookCollectionDao; + private final RedisCache redisCache; + @GetMapping("/mylist") + public List getBookCollectionByUserId(HttpServletRequest request) { + 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()); + + return bookCollectionDao.selectBookCollectionByUserId(Long.valueOf(userId)); + } @GetMapping("page") @Operation(summary = "分页") 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 bce6cc3..2eea3b0 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 @@ -1,10 +1,13 @@ package net.maku.maku.controller; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import net.maku.framework.common.cache.RedisCache; +import net.maku.framework.common.exception.ErrorCode; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.Result; import net.maku.maku.convert.TBookCommentConvert; @@ -44,10 +47,12 @@ public class TBookCommentController { public Result setbookcomment(HttpServletRequest request, @RequestParam Integer bookId,@RequestParam String comment) { // 首先验证token的有效性,然后从Redis中获取用户信息 String token = request.getHeader("token"); - if(token==null || token.isEmpty()){ - return Result.error("token is error"); + 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(); 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 a40b9c6..f358d9b 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 @@ -1,15 +1,19 @@ package net.maku.maku.controller; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import net.maku.framework.common.cache.RedisCache; +import net.maku.framework.common.exception.ErrorCode; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.Result; import net.maku.maku.convert.TBookCollectionConvert; import net.maku.maku.convert.TBookConvert; +import net.maku.maku.entity.TBookCollectionEntity; import net.maku.maku.entity.TBookEntity; import net.maku.maku.entity.TUserEntity; import net.maku.maku.service.TBookCollectionService; @@ -43,6 +47,8 @@ public class TBookController { private final RedisCache redisCache; private final TBookCollectionService tBookCollectionService; + + @GetMapping("/list") @Operation(summary = "列表") public Result> list() { @@ -70,9 +76,10 @@ public class TBookController { public Result setbookcollection(HttpServletRequest request, @RequestParam Integer bookId) { // 首先验证token的有效性,然后从Redis中获取用户信息 String token = request.getHeader("token"); - if(token==null || token.isEmpty()){ - return Result.error("token is error"); - } + 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(); 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 07cc1e1..7c97e09 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 @@ -1,10 +1,13 @@ package net.maku.maku.controller; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import net.maku.framework.common.cache.RedisCache; +import net.maku.framework.common.exception.ErrorCode; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.Result; import net.maku.maku.convert.TShoppingTrolleyConvert; @@ -42,10 +45,12 @@ public class TShoppingTrolleyController { public Result setshoppingtrolly(HttpServletRequest request, @RequestParam Integer bookId) { // 首先验证token的有效性,然后从Redis中获取用户信息 String token = request.getHeader("token"); - if(token==null || token.isEmpty()){ - return Result.error("token is error"); + 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(); diff --git a/maku-server/src/main/java/net/maku/maku/dao/TBookCollectionDao.java b/maku-server/src/main/java/net/maku/maku/dao/TBookCollectionDao.java index bb838cb..a253d41 100644 --- a/maku-server/src/main/java/net/maku/maku/dao/TBookCollectionDao.java +++ b/maku-server/src/main/java/net/maku/maku/dao/TBookCollectionDao.java @@ -4,6 +4,8 @@ import net.maku.framework.mybatis.dao.BaseDao; import net.maku.maku.entity.TBookCollectionEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * * @@ -12,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface TBookCollectionDao extends BaseDao { - + List selectBookCollectionByUserId(Long id); } \ No newline at end of file diff --git a/maku-server/src/main/resources/mapper/maku/TBookCollectionDao.xml b/maku-server/src/main/resources/mapper/maku/TBookCollectionDao.xml index 5790d9c..182ab86 100644 --- a/maku-server/src/main/resources/mapper/maku/TBookCollectionDao.xml +++ b/maku-server/src/main/resources/mapper/maku/TBookCollectionDao.xml @@ -11,4 +11,11 @@ + \ No newline at end of file diff --git a/maku-server/src/main/resources/mapper/maku/TUserDao.xml b/maku-server/src/main/resources/mapper/maku/TUserDao.xml index d480c57..8b35abc 100644 --- a/maku-server/src/main/resources/mapper/maku/TUserDao.xml +++ b/maku-server/src/main/resources/mapper/maku/TUserDao.xml @@ -14,4 +14,5 @@ + \ No newline at end of file From 3ce8d58220cfe2b7330c7d59243a7d5ad578f824 Mon Sep 17 00:00:00 2001 From: TianZhou <3570544406@qq.com> Date: Tue, 23 Jul 2024 10:45:53 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/maku/maku/controller/TUserController.java | 27 ++++++++++++++++++---- .../src/main/java/net/maku/maku/vo/TUserVO.java | 4 ++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/maku-server/src/main/java/net/maku/maku/controller/TUserController.java b/maku-server/src/main/java/net/maku/maku/controller/TUserController.java index 9466208..ba27ed9 100644 --- a/maku-server/src/main/java/net/maku/maku/controller/TUserController.java +++ b/maku-server/src/main/java/net/maku/maku/controller/TUserController.java @@ -81,21 +81,40 @@ public class TUserController { if(ObjectUtils.isNull(entity)){ throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); } - - return Result.ok(entity); + TUserEntity p = tUserService.getById(entity.getId()); + redisCache.set(token, p); + return Result.ok(p); } @GetMapping("/recharge") @Operation(summary = "充值") - public Result recharge(HttpServletRequest request,@RequestParam(value = "balance",required =false) int balance){ + public Result recharge(HttpServletRequest request,@RequestParam(value = "balance") int balance){ String token = request.getHeader("token"); - TUserEntity entity = (TUserEntity) redisCache.get(token);; + TUserEntity entity = (TUserEntity) redisCache.get(token); + if(ObjectUtils.isNull(entity)){ + throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); + } int money=entity.getBalance(); entity.setBalance(money+balance); tUserService.updateById(entity); return Result.ok(); } + @PutMapping("/userInfo") + @Operation(summary = "更新资料") + public Result userInfo(HttpServletRequest request,@RequestBody TUserVO vo){ + String token = request.getHeader("token"); + TUserEntity tokenUser = (TUserEntity) redisCache.get(token); + TUserEntity entity = tUserService.getById(tokenUser.getId()); + if(ObjectUtils.isNull(entity)){ + throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID); + } + entity.setEmail(vo.getEmail()); + entity.setPhone(vo.getPassword()); + tUserService.updateById(entity); + return Result.ok("success"); + } + @PostMapping("/logout") @Operation(summary = "退出登录") diff --git a/maku-server/src/main/java/net/maku/maku/vo/TUserVO.java b/maku-server/src/main/java/net/maku/maku/vo/TUserVO.java index 97912fa..6c98b92 100644 --- a/maku-server/src/main/java/net/maku/maku/vo/TUserVO.java +++ b/maku-server/src/main/java/net/maku/maku/vo/TUserVO.java @@ -31,6 +31,10 @@ public class TUserVO implements Serializable { private Integer status; + private String email; + + private String phonne; + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) private Date createTime; 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 4/4] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E5=88=97=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E6=94=B6=E8=97=8F=E5=9B=BE=E4=B9=A6=EF=BC=8C=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=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