Merge branch 'master' of http://47.96.1.176:3000/work/book-api
This commit is contained in:
commit
06f3fc385c
|
@ -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);
|
||||||
|
|
|
@ -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("清空购物车成功");
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user