This commit is contained in:
xiaoqiantx223 2024-07-23 17:37:48 +08:00
commit 06f3fc385c
7 changed files with 71 additions and 50 deletions

View File

@ -113,14 +113,10 @@ public class TBookCollectionController {
}
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);

View File

@ -41,31 +41,6 @@ import java.util.List;
public class TShoppingTrolleyController {
private final RedisCache redisCache;
private final TShoppingTrolleyService tShoppingTrolleyService;
@GetMapping("/aaa")
public Result setshoppingtrolly(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());
tShoppingTrolleyService.save(userId,bookId,date);
return Result.ok("加入购物车成功");
}
@GetMapping("page")
@Operation(summary = "分页")
public Result<PageResult<TShoppingTrolleyVO>> page(@ParameterObject @Valid TShoppingTrolleyQuery query){
@ -112,8 +87,38 @@ public class TShoppingTrolleyController {
}
@PostMapping("/add")
@Operation(summary = "添加购物车")
public Result<String> add(@RequestBody TShoppingTrolleyEntity entity){
tShoppingTrolleyService.add(entity);
public Result<String> add(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();
tShoppingTrolleyService.add(userId,bookId);
return Result.ok("加入购物车成功");
}
@GetMapping("/myshop")
@Operation(summary = "我的购物车")
public Result<List<TShoppingTrolleyEntity>> myshop(HttpServletRequest request){
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();
List<TShoppingTrolleyEntity> list = tShoppingTrolleyService.myshop(userId);
return Result.ok(list);
}
@DeleteMapping("/clean")
@Operation(summary = "清空购物车")
public Result<String> clean(HttpServletRequest request){
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();
tShoppingTrolleyService.clean(userId);
return Result.ok("清空购物车成功");
}
}

View File

@ -11,7 +11,6 @@ import java.util.Date;
* @author 阿沐 babamu@126.com
* @since 1.0.0 2024-07-16
*/
@Data
@TableName("t_book_comment")
public class TBookCommentEntity {
@ -24,8 +23,6 @@ public class TBookCommentEntity {
private String comment;
private Integer parentId;
private Date createTime;
private Date updateTime;

View File

@ -28,5 +28,9 @@ public interface TShoppingTrolleyService extends BaseService<TShoppingTrolleyEnt
void save(Integer userId, Integer bookId, Date date);
TShoppingTrolleyEntity add(TShoppingTrolleyEntity entity);
TShoppingTrolleyEntity add(Integer userId, Integer bookId);
List<TShoppingTrolleyEntity> myshop(Integer userId);
void clean(Integer userId);
}

View File

@ -71,6 +71,7 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
entity.setUserId(userId);
entity.setBookId(bookId);
entity.setCreateTime(currentTime);
entity.setStatus(1);
this.save(entity);
}
@ -80,7 +81,6 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCollectionEntity::getBookId, bookId);
wrapper.eq(TBookCollectionEntity::getUserId, userId);
return baseMapper.selectOne(wrapper);
}
@Override
@ -88,6 +88,7 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCollectionEntity::getBookId, bookId);
wrapper.eq(TBookCollectionEntity::getUserId, userId);
wrapper.eq(TBookCollectionEntity::getStatus, 1);
return baseMapper.selectCount(wrapper) > 0;
}
}

View File

@ -79,29 +79,49 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl<TShoppingTrolle
}
@Override
public TShoppingTrolleyEntity add(TShoppingTrolleyEntity entity) {
public TShoppingTrolleyEntity add(Integer userId, Integer bookId) {
LambdaQueryWrapper<TShoppingTrolleyEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TShoppingTrolleyEntity::getUserId, entity.getUserId());
queryWrapper.eq(TShoppingTrolleyEntity::getUserId, userId);
queryWrapper.eq(TShoppingTrolleyEntity::getBookId, bookId);
TShoppingTrolleyEntity existingEntity = baseMapper.selectOne(queryWrapper);
if (existingEntity != null) {
// 如果购物车中已存在该记录则增加数量
Integer number = existingEntity.getNumber();
if (number != null) {
existingEntity.setNumber(number + 1);
} else {
existingEntity.setNumber(1);
}
//为空+1不为空为1
existingEntity.setNumber(number != null ? number + 1 : 1);
baseMapper.updateById(existingEntity);
return existingEntity;
} else {
// 如果购物车中不存在该记录则创建新记录
TShoppingTrolleyEntity newEntity = new TShoppingTrolleyEntity();
newEntity.setUserId(entity.getUserId());
newEntity.setNumber(1);
newEntity.setUserId(userId);
newEntity.setBookId(bookId);
newEntity.setNumber(1); // 初始数量为1
baseMapper.insert(newEntity);
return newEntity;
existingEntity = newEntity; // 返回新创建的实体
}
}
return existingEntity;
}
@Override
public List<TShoppingTrolleyEntity> myshop(Integer userId) {
LambdaQueryWrapper<TShoppingTrolleyEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TShoppingTrolleyEntity::getUserId, userId);
return baseMapper.selectList(queryWrapper);
}
@Override
public void clean(Integer userId) {
LambdaQueryWrapper<TShoppingTrolleyEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TShoppingTrolleyEntity::getUserId, userId);
baseMapper.delete(queryWrapper);
}
}

View File

@ -26,8 +26,6 @@ public class TBookCommentVO implements Serializable {
private String comment;
private Integer parentId;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime;