图书接口编写

This commit is contained in:
hxf13 2024-07-18 17:46:37 +08:00
parent 2a35ec2152
commit af67f97cb7
10 changed files with 150 additions and 3 deletions

View File

@ -57,6 +57,18 @@ public class RedisCache {
} }
return value; return value;
} }
public <T> T get(String key, Class<T> clazz) {
Object value = redisTemplate.opsForValue().get(key);
if (value == null) {
return null; // or throw an exception, depending on your requirement
}
if (clazz.isInstance(value)) {
return clazz.cast(value);
} else {
throw new IllegalStateException("Cached value is not of expected type " + clazz);
}
}
public Object get(String key) { public Object get(String key) {
return get(key, NOT_EXPIRE); return get(key, NOT_EXPIRE);

View File

@ -16,4 +16,5 @@ auth:
- /maku/t_book/list/search - /maku/t_book/list/search
- /maku/t_book/{id} - /maku/t_book/{id}
- /user/login - /user/login
- /maku/t_shopping_trolley/aaa

View File

@ -2,11 +2,14 @@ package net.maku.maku.controller;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.maku.framework.common.cache.RedisCache;
import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.PageResult;
import net.maku.framework.common.utils.Result; import net.maku.framework.common.utils.Result;
import net.maku.maku.convert.TBookCommentConvert; import net.maku.maku.convert.TBookCommentConvert;
import net.maku.maku.entity.TBookCommentEntity; import net.maku.maku.entity.TBookCommentEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TBookCommentService; import net.maku.maku.service.TBookCommentService;
import net.maku.maku.query.TBookCommentQuery; import net.maku.maku.query.TBookCommentQuery;
import net.maku.maku.vo.TBookCommentVO; import net.maku.maku.vo.TBookCommentVO;
@ -15,6 +18,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -29,6 +37,27 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class TBookCommentController { public class TBookCommentController {
private final TBookCommentService tBookCommentService; private final TBookCommentService tBookCommentService;
private final RedisCache redisCache;
@PostMapping("/comment")
public Result setshoppingtrolly(HttpServletRequest request, @RequestBody TBookCommentVO vo) {
// 首先验证token的有效性然后从Redis中获取用户信息
String token = request.getHeader("token");
if(token==null || token.isEmpty()){
return Result.error("token is error");
}
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("加入购物车成功");
}
@GetMapping("page") @GetMapping("page")
@Operation(summary = "分页") @Operation(summary = "分页")

View File

@ -3,11 +3,16 @@ package net.maku.maku.controller;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.maku.framework.common.cache.RedisCache;
import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.PageResult;
import net.maku.framework.common.utils.Result; import net.maku.framework.common.utils.Result;
import net.maku.maku.convert.TBookCollectionConvert;
import net.maku.maku.convert.TBookConvert; import net.maku.maku.convert.TBookConvert;
import net.maku.maku.entity.TBookEntity; import net.maku.maku.entity.TBookEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TBookCollectionService;
import net.maku.maku.service.TBookService; import net.maku.maku.service.TBookService;
import net.maku.maku.query.TBookQuery; import net.maku.maku.query.TBookQuery;
import net.maku.maku.vo.TBookVO; import net.maku.maku.vo.TBookVO;
@ -16,6 +21,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -30,6 +40,8 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class TBookController { public class TBookController {
private final TBookService tBookService; private final TBookService tBookService;
private final RedisCache redisCache;
private final TBookCollectionService tBookCollectionService;
@GetMapping("/list") @GetMapping("/list")
@Operation(summary = "列表") @Operation(summary = "列表")
@ -56,6 +68,28 @@ public class TBookController {
return Result.ok(entity); return Result.ok(entity);
} }
@GetMapping("/collection")
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 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("收藏图书成功");
}
@GetMapping("page") @GetMapping("page")
@ -63,7 +97,6 @@ public class TBookController {
@PreAuthorize("hasAuthority('maku:t_book:page')") @PreAuthorize("hasAuthority('maku:t_book:page')")
public Result<PageResult<TBookVO>> page(@ParameterObject @Valid TBookQuery query){ public Result<PageResult<TBookVO>> page(@ParameterObject @Valid TBookQuery query){
PageResult<TBookVO> page = tBookService.page(query); PageResult<TBookVO> page = tBookService.page(query);
return Result.ok(page); return Result.ok(page);
} }

View File

@ -2,11 +2,14 @@ package net.maku.maku.controller;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.maku.framework.common.cache.RedisCache;
import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.PageResult;
import net.maku.framework.common.utils.Result; import net.maku.framework.common.utils.Result;
import net.maku.maku.convert.TShoppingTrolleyConvert; import net.maku.maku.convert.TShoppingTrolleyConvert;
import net.maku.maku.entity.TShoppingTrolleyEntity; import net.maku.maku.entity.TShoppingTrolleyEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TShoppingTrolleyService; import net.maku.maku.service.TShoppingTrolleyService;
import net.maku.maku.query.TShoppingTrolleyQuery; import net.maku.maku.query.TShoppingTrolleyQuery;
import net.maku.maku.vo.TShoppingTrolleyVO; import net.maku.maku.vo.TShoppingTrolleyVO;
@ -15,6 +18,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -28,7 +36,30 @@ import java.util.List;
@Tag(name="") @Tag(name="")
@AllArgsConstructor @AllArgsConstructor
public class TShoppingTrolleyController { public class TShoppingTrolleyController {
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");
if(token==null || token.isEmpty()){
return Result.error("token is error");
}
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 = "分页")
@ -41,7 +72,7 @@ public class TShoppingTrolleyController {
@GetMapping("{id}") @GetMapping("{id}")
@Operation(summary = "信息") @Operation(summary = "信息")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:info')") // @PreAuthorize("hasAuthority('maku:t_shopping_trolley:info')")
public Result<TShoppingTrolleyVO> get(@PathVariable("id") Long id){ public Result<TShoppingTrolleyVO> get(@PathVariable("id") Long id){
TShoppingTrolleyEntity entity = tShoppingTrolleyService.getById(id); TShoppingTrolleyEntity entity = tShoppingTrolleyService.getById(id);

View File

@ -1,7 +1,6 @@
package net.maku.maku.entity; package net.maku.maku.entity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import java.util.Date; import java.util.Date;

View File

@ -6,6 +6,8 @@ import net.maku.maku.vo.TBookCollectionVO;
import net.maku.maku.query.TBookCollectionQuery; import net.maku.maku.query.TBookCollectionQuery;
import net.maku.maku.entity.TBookCollectionEntity; import net.maku.maku.entity.TBookCollectionEntity;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -23,4 +25,6 @@ public interface TBookCollectionService extends BaseService<TBookCollectionEntit
void update(TBookCollectionVO vo); void update(TBookCollectionVO vo);
void delete(List<Long> idList); void delete(List<Long> idList);
void save(Integer userId, Integer bookId, Date currentTime);
} }

View File

@ -6,6 +6,7 @@ import net.maku.maku.vo.TShoppingTrolleyVO;
import net.maku.maku.query.TShoppingTrolleyQuery; import net.maku.maku.query.TShoppingTrolleyQuery;
import net.maku.maku.entity.TShoppingTrolleyEntity; import net.maku.maku.entity.TShoppingTrolleyEntity;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -23,4 +24,6 @@ public interface TShoppingTrolleyService extends BaseService<TShoppingTrolleyEnt
void update(TShoppingTrolleyVO vo); void update(TShoppingTrolleyVO vo);
void delete(List<Long> idList); void delete(List<Long> idList);
void save(Integer userId, Integer bookId, Date date);
} }

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data;
import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.impl.BaseServiceImpl; import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.maku.convert.TBookCollectionConvert; import net.maku.maku.convert.TBookCollectionConvert;
@ -16,6 +17,8 @@ import net.maku.maku.service.TBookCollectionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -62,4 +65,20 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
removeByIds(idList); removeByIds(idList);
} }
@Override
public void save(Integer userId, Integer bookId, Date currentTime) {
TBookCollectionEntity entity = new TBookCollectionEntity();
entity.setUserId(userId);
entity.setBookId(bookId);
entity.setCreateTime(currentTime);
// 可以根据需要设置其它字段例如自增id字段和lastModifiedTime字段如果需要
// 假设lastModifiedTime可以为空可以根据需要设置
// 使用 MyBatis Plus save 方法保存实体
this.save(entity);
}
} }

View File

@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
import net.maku.framework.common.utils.PageResult; import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.impl.BaseServiceImpl; import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.maku.convert.TShoppingTrolleyConvert; import net.maku.maku.convert.TShoppingTrolleyConvert;
import net.maku.maku.entity.TBookCollectionEntity;
import net.maku.maku.entity.TShoppingTrolleyEntity; import net.maku.maku.entity.TShoppingTrolleyEntity;
import net.maku.maku.query.TShoppingTrolleyQuery; import net.maku.maku.query.TShoppingTrolleyQuery;
import net.maku.maku.vo.TShoppingTrolleyVO; import net.maku.maku.vo.TShoppingTrolleyVO;
@ -16,6 +17,7 @@ import net.maku.maku.service.TShoppingTrolleyService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -62,4 +64,18 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl<TShoppingTrolle
removeByIds(idList); removeByIds(idList);
} }
@Override
public void save(Integer userId, Integer bookId, Date currentTime) {
TShoppingTrolleyEntity entity = new TShoppingTrolleyEntity();
entity.setUserId(userId);
entity.setBookId(bookId);
entity.setCreateTime(currentTime);
// 可以根据需要设置其它字段例如自增id字段和lastModifiedTime字段如果需要
// 假设lastModifiedTime可以为空可以根据需要设置
// 使用 MyBatis Plus save 方法保存实体
this.save(entity);
}
} }