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(); // 直接使用已经获取的用户信息 Integer userId = entity.getId(); // 直接使用已经获取的用户信息
// Check if the book has already been collected by the user
boolean isBookAlreadyCollected = tBookCollectionService.isBookAlreadyCollected(userId, bookId); boolean isBookAlreadyCollected = tBookCollectionService.isBookAlreadyCollected(userId, bookId);
if (isBookAlreadyCollected) { if (isBookAlreadyCollected) {
return Result.error("该书已经收藏过,不能重复收藏"); return Result.error("该书已经收藏过,不能重复收藏");
} }
// If not already collected, proceed with saving the collection record
LocalDateTime currentTime = LocalDateTime.now(); LocalDateTime currentTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault(); ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = currentTime.atZone(zoneId); ZonedDateTime zdt = currentTime.atZone(zoneId);

View File

@ -41,31 +41,6 @@ import java.util.List;
public class TShoppingTrolleyController { public class TShoppingTrolleyController {
private final RedisCache redisCache; private final RedisCache redisCache;
private final TShoppingTrolleyService tShoppingTrolleyService; 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") @GetMapping("page")
@Operation(summary = "分页") @Operation(summary = "分页")
public Result<PageResult<TShoppingTrolleyVO>> page(@ParameterObject @Valid TShoppingTrolleyQuery query){ public Result<PageResult<TShoppingTrolleyVO>> page(@ParameterObject @Valid TShoppingTrolleyQuery query){
@ -112,8 +87,38 @@ public class TShoppingTrolleyController {
} }
@PostMapping("/add") @PostMapping("/add")
@Operation(summary = "添加购物车") @Operation(summary = "添加购物车")
public Result<String> add(@RequestBody TShoppingTrolleyEntity entity){ public Result<String> add(HttpServletRequest request, @RequestParam Integer bookId){
tShoppingTrolleyService.add(entity); 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("加入购物车成功"); 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 * @author 阿沐 babamu@126.com
* @since 1.0.0 2024-07-16 * @since 1.0.0 2024-07-16
*/ */
@Data @Data
@TableName("t_book_comment") @TableName("t_book_comment")
public class TBookCommentEntity { public class TBookCommentEntity {
@ -24,8 +23,6 @@ public class TBookCommentEntity {
private String comment; private String comment;
private Integer parentId;
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;

View File

@ -28,5 +28,9 @@ public interface TShoppingTrolleyService extends BaseService<TShoppingTrolleyEnt
void save(Integer userId, Integer bookId, Date date); 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.setUserId(userId);
entity.setBookId(bookId); entity.setBookId(bookId);
entity.setCreateTime(currentTime); entity.setCreateTime(currentTime);
entity.setStatus(1);
this.save(entity); this.save(entity);
} }
@ -80,7 +81,6 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCollectionEntity::getBookId, bookId); wrapper.eq(TBookCollectionEntity::getBookId, bookId);
wrapper.eq(TBookCollectionEntity::getUserId, userId); wrapper.eq(TBookCollectionEntity::getUserId, userId);
return baseMapper.selectOne(wrapper); return baseMapper.selectOne(wrapper);
} }
@Override @Override
@ -88,6 +88,7 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCollectionEntity::getBookId, bookId); wrapper.eq(TBookCollectionEntity::getBookId, bookId);
wrapper.eq(TBookCollectionEntity::getUserId, userId); wrapper.eq(TBookCollectionEntity::getUserId, userId);
wrapper.eq(TBookCollectionEntity::getStatus, 1);
return baseMapper.selectCount(wrapper) > 0; return baseMapper.selectCount(wrapper) > 0;
} }
} }

View File

@ -79,29 +79,49 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl<TShoppingTrolle
} }
@Override @Override
public TShoppingTrolleyEntity add(TShoppingTrolleyEntity entity) { public TShoppingTrolleyEntity add(Integer userId, Integer bookId) {
LambdaQueryWrapper<TShoppingTrolleyEntity> queryWrapper = new LambdaQueryWrapper<>(); 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); TShoppingTrolleyEntity existingEntity = baseMapper.selectOne(queryWrapper);
if (existingEntity != null) { if (existingEntity != null) {
// 如果购物车中已存在该记录则增加数量
Integer number = existingEntity.getNumber(); Integer number = existingEntity.getNumber();
if (number != null) { //为空+1不为空为1
existingEntity.setNumber(number + 1); existingEntity.setNumber(number != null ? number + 1 : 1);
} else {
existingEntity.setNumber(1);
}
baseMapper.updateById(existingEntity); baseMapper.updateById(existingEntity);
return existingEntity;
} else { } else {
// 如果购物车中不存在该记录则创建新记录
TShoppingTrolleyEntity newEntity = new TShoppingTrolleyEntity(); TShoppingTrolleyEntity newEntity = new TShoppingTrolleyEntity();
newEntity.setUserId(entity.getUserId()); newEntity.setUserId(userId);
newEntity.setNumber(1); newEntity.setBookId(bookId);
newEntity.setNumber(1); // 初始数量为1
baseMapper.insert(newEntity); 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 String comment;
private Integer parentId;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime; private Date createTime;