Compare commits

..

2 Commits

Author SHA1 Message Date
xiaoqiantx223 ce0d641770 Merge branch 'master' of http://47.96.1.176:3000/work/book-api into xiaoqiantx
# Conflicts:
#	maku-framework/src/main/resources/auth.yml
2024-07-18 17:47:40 +08:00
xiaoqiantx223 829c5e6dd3 用户信息
退出
充值
2024-07-18 17:47:21 +08:00
56 changed files with 99 additions and 866 deletions

View File

@ -36,11 +36,11 @@ public class SysUserDetailsServiceImpl implements SysUserDetailsService {
if (userDetail.getStatus() == UserStatusEnum.DISABLE.getValue()) {
userDetail.setEnabled(false);
}
// 根据用户id获得身份
// 数据权限范围
List<Long> dataScopeList = getDataScope(userDetail);
userDetail.setDataScopeList(dataScopeList);
//
// 用户权限列表
Set<String> authoritySet = sysMenuService.getUserAuthority(userDetail);

View File

@ -57,18 +57,6 @@ public class RedisCache {
}
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) {
return get(key, NOT_EXPIRE);

View File

@ -44,12 +44,12 @@ public abstract class BaseEntity implements TransPojo {
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
// /**
// * 版本号
// */
// @Version
// @TableField(fill = FieldFill.INSERT)
// private Integer version;
/**
* 版本号
*/
@Version
@TableField(fill = FieldFill.INSERT)
private Integer version;
/**
* 删除标记

View File

@ -38,18 +38,13 @@ public class AuthenticationTokenFilter extends OncePerRequestFilter {
return;
}
//token 1 admin 2 user
//object
//ObjectMapper obejct admin.class user.class
// 获取登录用户信息
//从redis中获取信息
UserDetail user = tokenStoreCache.getUser(accessToken);
if (user == null) {
chain.doFilter(request, response);
return;
}
//存入SecurityContextHolder
// 获取用户权限信息封装到Authentication中
// 用户存在
Authentication authentication = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities());

View File

@ -8,6 +8,10 @@ auth:
- /swagger-ui.html
- /swagger-ui/**
- /doc.html
- /maku/**
- /
- /maku/t_user/login
- /maku/t_user/updateUser
- /maku/t_user/register
- /maku/t_user/logout
- /maku/t_user/info
- /maku/t_user/recharge

View File

@ -1,25 +0,0 @@
package net.maku.maku.config;
public class PayConfig {
public String generateOrderId() {
// 随机生成订单ID的逻辑
return "ORDER" + (int) (Math.random() * 1000000000);
}
public boolean callPaymentService(Integer balance) {
// 调用支付服务的逻辑
if (balance == null || balance <= 0) {
// 如果金额无效则支付失败
return false;
}
try {
Thread.sleep(100000000); // 模拟网络延迟或支付处理时间
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
return false;
}
//假设一直模拟成功
return true;
}
}

View File

@ -1,19 +1,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.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;
@ -22,11 +15,6 @@ 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;
/**
@ -41,24 +29,10 @@ import java.util.List;
@AllArgsConstructor
public class TBookCollectionController {
private final TBookCollectionService tBookCollectionService;
private final TBookCollectionDao bookCollectionDao;
private final RedisCache redisCache;
@GetMapping("/mylist")
public Result<List<TBookCollectionEntity>> 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();
ZonedDateTime zdt = currentTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
return Result.ok(bookCollectionDao.selectBookCollectionByUserId(Long.valueOf(userId)));
@GetMapping("/book/buy")
@Operation(summary = "购买书籍")
public Result<List<TBookCollectionVO>> getBookCollectionByUserId(@PathVariable Long id) {
return Result.ok(tBookCollectionService.getPhoneByUseId(id));
}
@GetMapping("page")
@ -66,8 +40,10 @@ public class TBookCollectionController {
@PreAuthorize("hasAuthority('maku:t_book_collection:page')")
public Result<PageResult<TBookCollectionVO>> page(@ParameterObject @Valid TBookCollectionQuery query){
PageResult<TBookCollectionVO> page = tBookCollectionService.page(query);
return Result.ok(page);
}
@GetMapping("{id}")
@Operation(summary = "信息")
@PreAuthorize("hasAuthority('maku:t_book_collection:info')")
@ -103,44 +79,4 @@ public class TBookCollectionController {
return Result.ok();
}
@PostMapping("/collection")
@Operation(summary = "收藏图书")
public Result<String> 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(); // 直接使用已经获取的用户信息
boolean isBookAlreadyCollected = tBookCollectionService.isBookAlreadyCollected(userId, bookId);
if (isBookAlreadyCollected) {
return Result.error("该书已经收藏过,不能重复收藏");
}
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<String> 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("未收藏");
}
}
}

View File

@ -1,19 +1,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.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;
import net.maku.maku.dao.TBookCommentDao;
import net.maku.maku.entity.TBookCommentEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TBookCommentService;
import net.maku.maku.query.TBookCommentQuery;
import net.maku.maku.vo.TBookCommentVO;
@ -22,11 +15,6 @@ 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;
/**
@ -41,35 +29,6 @@ import java.util.List;
@AllArgsConstructor
public class TBookCommentController {
private final TBookCommentService tBookCommentService;
private final RedisCache redisCache;
private final TBookCommentDao tBookCommentDao;
@PostMapping("/manout")
@Operation(summary = "评论")
public Result setbookcomment(HttpServletRequest request, @RequestParam Integer bookId,@RequestParam String comment) {
// 首先验证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());
tBookCommentService.save(userId,bookId,comment,date);
return Result.ok("评论成功");
}
@GetMapping("page")
@Operation(summary = "分页")
@ -114,17 +73,4 @@ public class TBookCommentController {
return Result.ok();
}
@GetMapping("/list")
@Operation(summary = "查看评论列表")
public Result<List<TBookCommentEntity>> list(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();
return Result.ok(tBookCommentDao.findAll(Long.valueOf(userId)));
}
}

View File

@ -1,22 +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.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;
import net.maku.maku.service.TBookService;
import net.maku.maku.query.TBookQuery;
import net.maku.maku.vo.TBookVO;
@ -25,11 +16,6 @@ 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;
/**
@ -44,8 +30,6 @@ import java.util.List;
@AllArgsConstructor
public class TBookController {
private final TBookService tBookService;
private final RedisCache redisCache;
private final TBookCollectionService tBookCollectionService;
@GetMapping("/list")
@Operation(summary = "列表")
@ -66,24 +50,18 @@ public class TBookController {
@GetMapping("/list/search")
@Operation(summary = "根据书名查询书籍")
@Parameter
public Result<List<TBookEntity>> getByName(@RequestParam String name){
List<TBookEntity> entity = tBookService.getByName(name);
public Result<TBookEntity> getByName(@RequestParam String bookName){
TBookEntity entity = tBookService.getByName(bookName);
return Result.ok(entity);
}
@GetMapping("page")
@Operation(summary = "分页")
@PreAuthorize("hasAuthority('maku:t_book:page')")
public Result<PageResult<TBookVO>> page(@ParameterObject @Valid TBookQuery query){
PageResult<TBookVO> page = tBookService.page(query);
return Result.ok(page);
}
@GetMapping("{id}")
@Operation(summary = "信息")
// @PreAuthorize("hasAuthority('maku:t_book:info')")
@ -91,7 +69,6 @@ public class TBookController {
TBookEntity entity = tBookService.getById(id);
return Result.ok(TBookConvert.INSTANCE.convert(entity));
}
@PostMapping
@Operation(summary = "保存")
@PreAuthorize("hasAuthority('maku:t_book:save')")

View File

@ -2,7 +2,6 @@ package net.maku.maku.controller;
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.utils.PageResult;
import net.maku.framework.common.utils.Result;

View File

@ -1,40 +1,20 @@
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.cache.RedisCache;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.common.utils.Result;
import net.maku.maku.convert.TPurchaseDetailsConvert;
import net.maku.maku.dao.TPurchaseDao;
import net.maku.maku.dao.TPurchaseDetailsDao;
import net.maku.maku.entity.TPurchaseDetailsEntity;
import net.maku.maku.entity.TShoppingTrolleyEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.entity.TPurchaseEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TPurchaseDetailsService;
import net.maku.maku.query.TPurchaseDetailsQuery;
import net.maku.maku.vo.TPurchaseBookDetailsVo;
import net.maku.maku.vo.TPurchaseBookVo;
import net.maku.maku.vo.TCardVo;
import net.maku.maku.vo.TPurchaseDetailsVO;
import org.springdoc.core.annotations.ParameterObject;
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;
/**
@ -49,42 +29,6 @@ import java.util.List;
@AllArgsConstructor
public class TPurchaseDetailsController {
private final TPurchaseDetailsService tPurchaseDetailsService;
private final RedisCache redisCache;
private final TPurchaseDetailsDao tPurchaseDetailsDao;
@GetMapping("/a")
public Result<List<TPurchaseBookVo>> 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();
ZonedDateTime zdt = currentTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
return Result.ok(tPurchaseDetailsService.selectByUserId(userId));
}
@PostMapping("/buy")
@Operation(summary = "购买")
public Result<?> purchaseBook(HttpServletRequest request,@RequestBody TCardVo vo) {
String token = request.getHeader("token");
TUserEntity entity = (TUserEntity) redisCache.get(token);
// boolean isPurchased = tPurchaseDetailsService.purchaseBook(entity);
boolean isPurchased = tPurchaseDetailsService.purchaseBook(entity,vo);
if (isPurchased) {
return Result.ok("购买成功");
} else {
return Result.error("余额不足,请充值");
}
}
@GetMapping("page")
@Operation(summary = "分页")

View File

@ -1,19 +1,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.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;
import net.maku.maku.dao.TShoppingTrolleyDao;
import net.maku.maku.entity.TShoppingTrolleyEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.service.TShoppingTrolleyService;
import net.maku.maku.query.TShoppingTrolleyQuery;
import net.maku.maku.vo.TShoppingTrolleyVO;
@ -22,11 +15,6 @@ 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;
/**
@ -40,28 +28,26 @@ import java.util.List;
@Tag(name="")
@AllArgsConstructor
public class TShoppingTrolleyController {
private final RedisCache redisCache;
private final TShoppingTrolleyService tShoppingTrolleyService;
private final TShoppingTrolleyDao tShoppingTrolleyDao;
@GetMapping("page")
@Operation(summary = "分页")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:page')")
public Result<PageResult<TShoppingTrolleyVO>> page(@ParameterObject @Valid TShoppingTrolleyQuery query){
PageResult<TShoppingTrolleyVO> page = tShoppingTrolleyService.page(query);
return Result.ok(page);
}
@GetMapping("/list")
@Operation(summary = "列表")
public Result<List<TShoppingTrolleyEntity>> list(){
return Result.ok(tShoppingTrolleyService.list());
}
@GetMapping("{id}")
@Operation(summary = "信息")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:info')")
public Result<TShoppingTrolleyVO> get(@PathVariable("id") Long id){
TShoppingTrolleyEntity entity = tShoppingTrolleyService.getById(id);
return Result.ok(TShoppingTrolleyConvert.INSTANCE.convert(entity));
}
@PostMapping
@Operation(summary = "保存")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:save')")
@ -70,6 +56,7 @@ public class TShoppingTrolleyController {
return Result.ok();
}
@PutMapping
@Operation(summary = "修改")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:update')")
@ -82,66 +69,9 @@ public class TShoppingTrolleyController {
@DeleteMapping
@Operation(summary = "删除")
@PreAuthorize("hasAuthority('maku:t_shopping_trolley:delete')")
public Result<String> delete( @RequestBody List<Long> idList){
public Result<String> delete(@RequestBody List<Long> idList){
tShoppingTrolleyService.delete(idList);
return Result.ok();
}
@PostMapping("/add")
@Operation(summary = "添加购物车")
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);
}
@GetMapping("/newmyshop")
public Result<List<TShoppingTrolleyEntity>> 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 Result.ok(tShoppingTrolleyDao.selectShoppingTrolleyByUserId(Long.valueOf(userId)));
}
@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

@ -1,6 +1,8 @@
package net.maku.maku.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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;
@ -8,9 +10,6 @@ import lombok.AllArgsConstructor;
import net.maku.framework.common.cache.RedisCache;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.common.utils.Result;
import net.maku.framework.security.cache.TokenStoreCache;
import net.maku.framework.security.config.PasswordConfig;
import net.maku.maku.config.PayConfig;
import net.maku.maku.convert.TUserConvert;
import net.maku.maku.entity.TBookCollectionEntity;
import net.maku.maku.entity.TUserEntity;
@ -44,8 +43,7 @@ import static java.util.Collections.list;
public class TUserController {
private final TUserService tUserService;
private final RedisCache redisCache;
private final PasswordConfig passwordEncoder;
private final TokenStoreCache tokenStoreCache;
@PostMapping("/register")
@Operation(summary = "注册")
@ -54,14 +52,8 @@ public class TUserController {
if (existingUser != null) {
return ResponseEntity.badRequest().body(Result.error("用户名已存在"));
} else {
//明文注册
tUserService.save(entity);
return ResponseEntity.ok(Result.ok("注册成功"));
//加密注册
// String encryptedPassword = passwordEncoder.passwordEncoder().encode(entity.getPassword());
// entity.setPassword(encryptedPassword);
// tUserService.save(entity);
// return ResponseEntity.ok(Result.ok("注册成功"));
}
}
@ -69,30 +61,13 @@ public class TUserController {
@PostMapping("/login")
@Operation(summary = "登录")
public Result<String> login(@RequestBody TUserEntity entity){
//加密登录
// TUserEntity entity1 = tUserService.findByUsername(entity.getUsername());
// if (entity1 != null) {
// // 验证密码是否匹配
// boolean isMatch = passwordEncoder.passwordEncoder().matches(entity.getPassword(), entity1.getPassword());
// if (isMatch) {
// String token = UUID.randomUUID().toString();
// redisCache.set(token, entity1);
// return Result.ok(token);
// } else {
// return Result.error("密码错误");
// }
// }else {
// return Result.error("用户不存在");
// }
//明文登录
TUserEntity entity1 = tUserService.login(entity);
if(entity1 != null) {
String token = UUID.randomUUID().toString();
if(ObjectUtils.isNotNull(entity1)){
String token = UUID.randomUUID()+"";
redisCache.set(token, entity1);
return Result.ok(token);
}else {
return Result.error("用户名不存在");
return Result.error("登录失败");
}
}
@ -115,26 +90,17 @@ public class TUserController {
@GetMapping("/recharge")
@Operation(summary = "充值")
public Result<String> recharge(HttpServletRequest request,@RequestParam(value = "balance", required = false) Integer balance){
public Result<String> recharge(HttpServletRequest request,@RequestParam(value = "balance",required =false) int balance){
String token = request.getHeader("token");
TUserEntity entity = (TUserEntity) redisCache.get(token);
PayConfig payConfig = new PayConfig();
String orderId = payConfig.generateOrderId();
boolean paymentResult = payConfig.callPaymentService(balance);
if (paymentResult) {
double money = entity.getBalance();
entity.setBalance(money + balance);
tUserService.updateById(entity);
return Result.ok(orderId+"支付成功");
} else {
return Result.error("支付失败");
}
TUserEntity entity = (TUserEntity) redisCache.get(token);;
int money=entity.getBalance();
entity.setBalance(money+balance);
tUserService.updateById(entity);
return Result.ok();
}
@PostMapping("/logout")
@PostMapping("/logout")
@Operation(summary = "退出登录")
public Result<String> logout(HttpServletRequest request) {
String token = request.getHeader("token");

View File

@ -4,8 +4,6 @@ import net.maku.framework.mybatis.dao.BaseDao;
import net.maku.maku.entity.TBookCollectionEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
*
*
@ -14,5 +12,5 @@ import java.util.List;
*/
@Mapper
public interface TBookCollectionDao extends BaseDao<TBookCollectionEntity> {
List<TBookCollectionEntity> selectBookCollectionByUserId(Long id);
}

View File

@ -4,8 +4,6 @@ import net.maku.framework.mybatis.dao.BaseDao;
import net.maku.maku.entity.TBookCommentEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
*
*
@ -14,5 +12,5 @@ import java.util.List;
*/
@Mapper
public interface TBookCommentDao extends BaseDao<TBookCommentEntity> {
List<TBookCommentEntity> findAll(Long bookId);
}

View File

@ -2,11 +2,7 @@ package net.maku.maku.dao;
import net.maku.framework.mybatis.dao.BaseDao;
import net.maku.maku.entity.TPurchaseDetailsEntity;
import net.maku.maku.vo.TPurchaseBookDetailsVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
@ -16,7 +12,5 @@ import java.util.List;
*/
@Mapper
public interface TPurchaseDetailsDao extends BaseDao<TPurchaseDetailsEntity> {
List<TPurchaseDetailsEntity> selectBookDetilsByUserId(long id);
List<TPurchaseBookDetailsVo> selectByDeailsId(@Param("id") Integer id);
}

View File

@ -4,8 +4,6 @@ import net.maku.framework.mybatis.dao.BaseDao;
import net.maku.maku.entity.TShoppingTrolleyEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
*
*
@ -14,6 +12,5 @@ import java.util.List;
*/
@Mapper
public interface TShoppingTrolleyDao extends BaseDao<TShoppingTrolleyEntity> {
List<TShoppingTrolleyEntity> selectShoppingTrolleyByUserId(long id);
}

View File

@ -1,6 +1,7 @@
package net.maku.maku.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.*;
import java.util.Date;
@ -25,6 +26,4 @@ public class TBookCollectionEntity {
private Date updateTime;
private Integer status;
}

View File

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

View File

@ -1,13 +1,13 @@
package net.maku.maku.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.*;
import net.maku.framework.mybatis.entity.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
/**
*
*
*
* @author 阿沐 babamu@126.com
* @since 1.0.0 2024-07-16
@ -15,9 +15,9 @@ import java.math.BigDecimal;
@Data
@TableName("t_book")
public class TBookEntity extends BaseEntity {
public class TBookEntity {
@TableId
private Integer id;
private String bookName;
@ -29,11 +29,12 @@ public class TBookEntity extends BaseEntity {
private String introduction;
private Integer category;
private String description;
private Integer store;
private Date createTime;
private Date updateTime;
}

View File

@ -1,7 +1,9 @@
package net.maku.maku.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.*;
import java.math.BigDecimal;
/**
*
@ -20,8 +22,6 @@ public class TPurchaseDetailsEntity {
private Integer bookId;
private double price;
private double count;
private BigDecimal price;
}

View File

@ -27,6 +27,4 @@ public class TPurchaseEntity {
private Date updateTime;
private Integer userId;
}

View File

@ -22,14 +22,8 @@ public class TShoppingTrolleyEntity {
private Integer bookId;
private Integer number;
private Date createTime;
private Date updateTime;
private Long creator;
private Long updater;
private Long deleted;
}

View File

@ -20,19 +20,14 @@ public class TUserEntity {
private String username;
private String password;
private String avatar;
private double balance;
private int balance;
private Integer status;
private String phone;
private String email;
private Date createTime;
private Date updateTime;

View File

@ -20,6 +20,5 @@ import java.util.Date;
@Schema(description = "查询")
public class TBookQuery extends Query {
private String author;
private Integer category;
private String bookName;
}

View File

@ -6,7 +6,6 @@ import net.maku.maku.vo.TBookCollectionVO;
import net.maku.maku.query.TBookCollectionQuery;
import net.maku.maku.entity.TBookCollectionEntity;
import java.util.Date;
import java.util.List;
/**
@ -25,9 +24,6 @@ public interface TBookCollectionService extends BaseService<TBookCollectionEntit
void delete(List<Long> idList);
void save(Integer userId, Integer bookId, Date currentTime);
List<TBookCollectionVO> getPhoneByUseId(Long id);
TBookCollectionEntity getByBookIdandUserId(Integer bookId, Integer userId);
boolean isBookAlreadyCollected(Integer userId, Integer bookId);
}

View File

@ -6,7 +6,6 @@ import net.maku.maku.vo.TBookCommentVO;
import net.maku.maku.query.TBookCommentQuery;
import net.maku.maku.entity.TBookCommentEntity;
import java.util.Date;
import java.util.List;
/**
@ -24,8 +23,4 @@ public interface TBookCommentService extends BaseService<TBookCommentEntity> {
void update(TBookCommentVO vo);
void delete(List<Long> idList);
void save(Integer userId, Integer bookId, String comment, Date date);
List<TBookCommentEntity> getByBookId(Integer bookId);
}

View File

@ -24,7 +24,5 @@ public interface TBookService extends BaseService<TBookEntity> {
void delete(List<Long> idList);
List<TBookEntity> getByName(String name);
TBookEntity getByName(String bookName);
}

View File

@ -2,10 +2,6 @@ package net.maku.maku.service;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.BaseService;
import net.maku.maku.vo.TPurchaseBookDetailsVo;
import net.maku.maku.vo.TPurchaseBookVo;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.vo.TCardVo;
import net.maku.maku.vo.TPurchaseDetailsVO;
import net.maku.maku.query.TPurchaseDetailsQuery;
import net.maku.maku.entity.TPurchaseDetailsEntity;
@ -27,13 +23,4 @@ public interface TPurchaseDetailsService extends BaseService<TPurchaseDetailsEnt
void update(TPurchaseDetailsVO vo);
void delete(List<Long> idList);
List<TPurchaseBookVo> selectByUserId(Integer userId);
// boolean purchaseBook(TUserEntity entity, TPurchaseDetailsVO vo);
boolean purchaseBook(TUserEntity entity, TCardVo vo);
// boolean purchaseBook(TUserEntity entity);
}

View File

@ -2,8 +2,6 @@ package net.maku.maku.service;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.BaseService;
import net.maku.maku.entity.TPurchaseDetailsEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.vo.TPurchaseVO;
import net.maku.maku.query.TPurchaseQuery;
import net.maku.maku.entity.TPurchaseEntity;
@ -25,6 +23,4 @@ public interface TPurchaseService extends BaseService<TPurchaseEntity> {
void update(TPurchaseVO vo);
void delete(List<Long> idList);
}

View File

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

View File

@ -28,6 +28,4 @@ public interface TUserService extends BaseService<TUserEntity> {
TUserVO updateUser(TUserVO vo);
TUserEntity findByUsername(String username);
}

View File

@ -4,20 +4,23 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
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;
import net.maku.maku.entity.TBookEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.query.TBookCollectionQuery;
import net.maku.maku.service.TUserService;
import net.maku.maku.vo.TBookCollectionVO;
import net.maku.maku.dao.TBookCollectionDao;
import net.maku.maku.service.TBookCollectionService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
/**
@ -66,29 +69,9 @@ public class TBookCollectionServiceImpl extends BaseServiceImpl<TBookCollectionD
}
@Override
public void save(Integer userId, Integer bookId, Date currentTime) {
TBookCollectionEntity entity = new TBookCollectionEntity();
entity.setUserId(userId);
entity.setBookId(bookId);
entity.setCreateTime(currentTime);
entity.setStatus(1);
this.save(entity);
public List<TBookCollectionVO> getPhoneByUseId(Long id) {
return List.of();
}
@Override
public TBookCollectionEntity getByBookIdandUserId(Integer bookId, Integer userId) {
LambdaQueryWrapper<TBookCollectionEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCollectionEntity::getBookId, bookId);
wrapper.eq(TBookCollectionEntity::getUserId, userId);
return baseMapper.selectOne(wrapper);
}
@Override
public boolean isBookAlreadyCollected(Integer userId, Integer bookId) {
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

@ -16,7 +16,6 @@ import net.maku.maku.service.TBookCommentService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
@ -41,7 +40,6 @@ public class TBookCommentServiceImpl extends BaseServiceImpl<TBookCommentDao, TB
wrapper.eq(ObjectUtil.isNotNull(query.getUserId()), TBookCommentEntity::getUserId, query.getUserId());
wrapper.eq(ObjectUtil.isNotNull(query.getBookId()), TBookCommentEntity::getBookId, query.getBookId());
return wrapper;
}
@ -65,21 +63,4 @@ public class TBookCommentServiceImpl extends BaseServiceImpl<TBookCommentDao, TB
removeByIds(idList);
}
@Override
public void save(Integer userId, Integer bookId, String comment, Date date) {
TBookCommentEntity entity = new TBookCommentEntity();
entity.setUserId(userId);
entity.setBookId(bookId);
entity.setComment(comment);
entity.setCreateTime(date);
baseMapper.insert(entity);
}
@Override
public List<TBookCommentEntity> getByBookId(Integer bookId) {
LambdaQueryWrapper<TBookCommentEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookCommentEntity::getBookId, bookId);
return baseMapper.selectList(wrapper);
}
}

View File

@ -1,11 +1,9 @@
package net.maku.maku.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import net.maku.framework.common.exception.ServerException;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.maku.convert.TBookConvert;
@ -40,7 +38,6 @@ public class TBookServiceImpl extends BaseServiceImpl<TBookDao, TBookEntity> imp
LambdaQueryWrapper<TBookEntity> wrapper = Wrappers.lambdaQuery();
wrapper.like(TBookEntity::getBookName, query.getBookName());
wrapper.like(TBookEntity::getAuthor, query.getAuthor());
wrapper.eq(ObjectUtil.isNotNull(query.getCategory()), TBookEntity::getCategory, query.getCategory());
return wrapper;
}
@ -65,14 +62,11 @@ public class TBookServiceImpl extends BaseServiceImpl<TBookDao, TBookEntity> imp
}
@Override
public List<TBookEntity> getByName(String bookName) {
public TBookEntity getByName(String bookName) {
LambdaQueryWrapper<TBookEntity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TBookEntity::getBookName, bookName);
List<TBookEntity> tBookEntity = baseMapper.selectList(wrapper);
if (ObjectUtil.isNull(tBookEntity)){
throw new ServerException("没有找到书籍");
}
return tBookEntity;
return baseMapper.selectOne(wrapper);
}
}

View File

@ -8,24 +8,14 @@ import lombok.AllArgsConstructor;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.maku.convert.TPurchaseDetailsConvert;
import net.maku.maku.dao.TPurchaseDao;
import net.maku.maku.entity.TPurchaseDetailsEntity;
import net.maku.maku.entity.TPurchaseEntity;
import net.maku.maku.entity.TUserEntity;
import net.maku.maku.query.TPurchaseDetailsQuery;
import net.maku.maku.vo.TPurchaseBookDetailsVo;
import net.maku.maku.vo.TPurchaseBookVo;
import net.maku.maku.service.TUserService;
import net.maku.maku.vo.TCardVo;
import net.maku.maku.vo.TPurchaseDetailsVO;
import net.maku.maku.dao.TPurchaseDetailsDao;
import net.maku.maku.service.TPurchaseDetailsService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
@ -38,10 +28,6 @@ import java.util.List;
@AllArgsConstructor
public class TPurchaseDetailsServiceImpl extends BaseServiceImpl<TPurchaseDetailsDao, TPurchaseDetailsEntity> implements TPurchaseDetailsService {
private final TPurchaseDetailsDao tPurchaseDetailsDao;
private final TPurchaseDao tPurchaseDao;
private final TUserService tUserService;
@Override
public PageResult<TPurchaseDetailsVO> page(TPurchaseDetailsQuery query) {
IPage<TPurchaseDetailsEntity> page = baseMapper.selectPage(getPage(query), getWrapper(query));
@ -76,74 +62,4 @@ public class TPurchaseDetailsServiceImpl extends BaseServiceImpl<TPurchaseDetail
removeByIds(idList);
}
@Override
public List<TPurchaseBookVo> selectByUserId(Integer userId) {
LambdaQueryWrapper<TPurchaseEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(TPurchaseEntity::getUserId,userId);
List<TPurchaseEntity> tPurchaseEntities = tPurchaseDao.selectList(lambdaQueryWrapper);
List<TPurchaseBookVo> tPurchaseBookDetailsVos = new ArrayList<>();
for (TPurchaseEntity tPurchaseEntity : tPurchaseEntities){
TPurchaseBookVo vo = new TPurchaseBookVo();
// 图书详情
BeanUtils.copyProperties(tPurchaseEntity,vo);
List<TPurchaseBookDetailsVo> list =tPurchaseDetailsDao.selectByDeailsId(vo.getId());
vo.setBook_details(list);
tPurchaseBookDetailsVos.add(vo);
}
return tPurchaseBookDetailsVos;
}
// @Override
// public boolean purchaseBook(TUserEntity entity, TPurchaseDetailsVO vo) {
//
// return false;
// }
@Override
public boolean purchaseBook(TUserEntity entity,TCardVo vo) {
//查询数据库订单表
LambdaQueryWrapper<TPurchaseDetailsEntity> wrapper = new LambdaQueryWrapper<>();
List<TPurchaseDetailsEntity> list = baseMapper.selectList(
wrapper.eq(TPurchaseDetailsEntity::getPurchaseId,entity.getId()));
for (int i = 0; i < vo.getBooks().size(); i++){
for(int j=0;j<list.size();j++){
if(vo.getBooks().get(i).getBookId()==list.get(j).getBookId()){
double price = list.get(j).getPrice();
double count =list.get(j).getCount();
double balance= entity.getBalance();
if (balance>=price*count){
double newBalance = balance-price*count;
entity.setBalance(newBalance);
tUserService.updateById(entity);
removeById(list.get(j).getId());
}
}
}
return true;
}
return false;
}
// @Override
// public boolean purchaseBook(TUserEntity entity) {
// LambdaQueryWrapper<TPurchaseDetailsEntity> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(TPurchaseDetailsEntity::getPurchaseId,entity.getId());
// TPurchaseDetailsEntity one =getOne(wrapper);
// double price = one.getPrice();
// double count =one.getCount();
// double balance= entity.getBalance();
// if (balance>=price*count){
// double newBalance = balance-price*count;
// entity.setBalance(newBalance);
// tUserService.updateById(entity);
// return true;
// }
// return false;
// }
// return true;}
}

View File

@ -10,7 +10,6 @@ import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.maku.convert.TPurchaseConvert;
import net.maku.maku.entity.TPurchaseEntity;
import net.maku.maku.query.TPurchaseQuery;
import net.maku.maku.service.TUserService;
import net.maku.maku.vo.TPurchaseVO;
import net.maku.maku.dao.TPurchaseDao;
import net.maku.maku.service.TPurchaseService;

View File

@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
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.TShoppingTrolleyConvert;
import net.maku.maku.entity.TShoppingTrolleyEntity;
@ -17,7 +16,6 @@ import net.maku.maku.service.TShoppingTrolleyService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
@ -37,10 +35,10 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl<TShoppingTrolle
return new PageResult<>(TShoppingTrolleyConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
private LambdaQueryWrapper<TShoppingTrolleyEntity> getWrapper(TShoppingTrolleyQuery query) {
private LambdaQueryWrapper<TShoppingTrolleyEntity> getWrapper(TShoppingTrolleyQuery query){
LambdaQueryWrapper<TShoppingTrolleyEntity> 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;
}
@ -64,65 +62,4 @@ public class TShoppingTrolleyServiceImpl extends BaseServiceImpl<TShoppingTrolle
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);
}
@Override
public TShoppingTrolleyEntity add(Integer userId, Integer bookId) {
LambdaQueryWrapper<TShoppingTrolleyEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TShoppingTrolleyEntity::getUserId, userId);
queryWrapper.eq(TShoppingTrolleyEntity::getBookId, bookId);
TShoppingTrolleyEntity existingEntity = baseMapper.selectOne(queryWrapper);
if (existingEntity != null) {
// 如果购物车中已存在该记录则增加数量
Integer number = existingEntity.getNumber();
//为空+1不为空为1
existingEntity.setNumber(number != null ? number + 1 : 1);
baseMapper.updateById(existingEntity);
} else {
// 如果购物车中不存在该记录则创建新记录
TShoppingTrolleyEntity newEntity = new TShoppingTrolleyEntity();
newEntity.setUserId(userId);
newEntity.setBookId(bookId);
newEntity.setNumber(1); // 初始数量为1
baseMapper.insert(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

@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.UUID;
/**
*
@ -27,6 +28,7 @@ import java.util.List;
@Service
@AllArgsConstructor
public class TUserServiceImpl extends BaseServiceImpl<TUserDao, TUserEntity> implements TUserService {
@Override
public PageResult<TUserVO> page(TUserQuery query) {
IPage<TUserEntity> page = baseMapper.selectPage(getPage(query), getWrapper(query));
@ -83,16 +85,4 @@ public class TUserServiceImpl extends BaseServiceImpl<TUserDao, TUserEntity> imp
return vo;
}
@Override
public TUserEntity findByUsername(String username) {
LambdaQueryWrapper<TUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TUserEntity::getUsername,username);
TUserEntity one = getOne(wrapper);
if(ObjectUtils.isNotNull(one)) {
return one;
}
return null;
}
}

View File

@ -14,7 +14,7 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "书籍收藏表视图数据")
@Schema(description = "")
public class TBookCollectionVO implements Serializable {
private static final long serialVersionUID = 1L;
@ -22,8 +22,6 @@ public class TBookCollectionVO implements Serializable {
private Integer userId;
private Integer status;
private Integer bookId;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)

View File

@ -14,7 +14,7 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "书籍评论表视图数据")
@Schema(description = "")
public class TBookCommentVO implements Serializable {
private static final long serialVersionUID = 1L;
@ -26,6 +26,8 @@ public class TBookCommentVO implements Serializable {
private String comment;
private Integer parentId;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime;

View File

@ -15,11 +15,11 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "书本视图数据")
@Schema(description = "")
public class TBookVO implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Integer id;
private String bookName;
@ -29,8 +29,6 @@ public class TBookVO implements Serializable {
private String bookCover;
private String category;
private String introduction;
private String description;

View File

@ -1,10 +0,0 @@
package net.maku.maku.vo;
import lombok.Data;
import java.util.List;
@Data
public class TCardVo {
private List<TPurchaseDetailsVO> books;
}

View File

@ -1,22 +0,0 @@
package net.maku.maku.vo;
import lombok.Data;
/**
* 功能
* 作者程序员青戈
* 日期2024/7/23 16:44
*/
@Data
public class TPurchaseBookDetailsVo {
private Integer id;
private String bookName;
private String price;
private String bookCover;
private String introduction;
private String count;
}

View File

@ -1,21 +0,0 @@
package net.maku.maku.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 功能
* 作者程序员青戈
* 日期2024/7/23 16:42
*/
@Data
public class TPurchaseBookVo {
private Integer id;
private Date tradingHour;
private BigDecimal totalPrice;
private List<TPurchaseBookDetailsVo> book_details;
}

View File

@ -14,7 +14,7 @@ import java.math.BigDecimal;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "订单详情表视图数据")
@Schema(description = "")
public class TPurchaseDetailsVO implements Serializable {
private static final long serialVersionUID = 1L;
@ -24,9 +24,7 @@ public class TPurchaseDetailsVO implements Serializable {
private Integer bookId;
private double price;
private Integer count;
private BigDecimal price;
}

View File

@ -15,7 +15,7 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "书籍订单表视图数据")
@Schema(description = "")
public class TPurchaseVO implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -14,7 +14,7 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "购物车视图数据")
@Schema(description = "")
public class TShoppingTrolleyVO implements Serializable {
private static final long serialVersionUID = 1L;
@ -24,8 +24,6 @@ public class TShoppingTrolleyVO implements Serializable {
private Integer bookId;
private Integer number;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime;

View File

@ -15,7 +15,7 @@ import java.util.Date;
* @since 1.0.0 2024-07-16
*/
@Data
@Schema(description = "用户视图数据")
@Schema(description = "")
public class TUserVO implements Serializable {
private static final long serialVersionUID = 1L;
@ -31,10 +31,6 @@ public class TUserVO implements Serializable {
private Integer status;
private String email;
private String phonne;
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime;

View File

@ -4,7 +4,7 @@ spring:
database: 0
host: localhost
port: 6379
# password: 123456
password: 123456
#timeout: 6000ms # 连接超时时长(毫秒)
datasource:
dynamic:

View File

@ -11,16 +11,4 @@
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectBookCollectionByUserId" parameterType="map" resultType="map">
SELECT
(@row_number:=@row_number + 1) AS id,
tb.book_name,
tb.price,
tb.book_cover
FROM
t_book_collection bc
LEFT JOIN `t_book` tb ON bc.book_id=tb.id,
(SELECT @row_number := 0) AS dummy
WHERE user_id = #{id}
</select>
</mapper>

View File

@ -8,22 +8,9 @@
<result property="userId" column="user_id"/>
<result property="bookId" column="book_id"/>
<result property="comment" column="comment"/>
<result property="parentId" column="parent_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="findAll" parameterType="map" resultType="map">
SELECT
tb.book_name,
tu.username,
tb.book_cover,
tc.comment
FROM
t_book_comment tc
LEFT JOIN t_book tb ON tc.book_id = tb.id
LEFT JOIN t_user tu ON tc.user_id = tu.id
WHERE
tc.user_id = #{id}
</select>
</mapper>

View File

@ -10,35 +10,4 @@
<result property="price" column="price"/>
</resultMap>
<!-- <select id="selectBookDetilsByUserId" parameterType="map" resultType="map">-->
<!-- SELECT-->
<!-- (@row_number:=@row_number + 1) AS id,-->
<!-- pd.create_time AS trading_hour,-->
<!-- pd.price*pd.count As total_price,-->
<!-- JSON_ARRAYAGG(-->
<!-- JSON_OBJECT(-->
<!-- 'id', pd.id,-->
<!-- 'book_name', tb.book_name,-->
<!-- 'price', pd.price,-->
<!-- 'book_cover', tb.book_cover,-->
<!-- 'introduction', tb.introduction,-->
<!-- 'description', tb.description,-->
<!-- 'create_time', pd.create_time,-->
<!-- 'update_time', pd.update_time-->
<!-- )-->
<!-- ) AS book_details-->
<!-- FROM t_purchase_details pd-->
<!-- LEFT JOIN t_book tb ON pd.book_id=tb.id,-->
<!-- (SELECT @row_number := 0) AS dummy-->
<!-- WHERE pd.creator=#{id}-->
<!-- </select>-->
<select id="selectBookDetilsByUserId" parameterType="map" resultType="map">
</select>
<select id="selectByDeailsId" resultType="net.maku.maku.vo.TPurchaseBookDetailsVo">
select tb.id,tb.book_name,tb.price,tb.introduction,tb.book_cover,tp.count from t_purchase_details tp
LEFT JOIN t_book tb on tp.book_id = tb.id
WHERE tp.purchase_id = #{id};
</select>
</mapper>

View File

@ -9,23 +9,6 @@
<result property="bookId" column="book_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<!-- <result property="creator" column="creator"/>-->
<!-- <result property="updater" column="updater"/>-->
<!-- <result property="deleted" column="deleted"/>-->
<result property="number" column="number"/>
</resultMap>
<select id="selectShoppingTrolleyByUserId" parameterType="map" resultType="map">
SELECT (@row_number:=@row_number + 1) AS id,
tb.book_name,
tb.price,
tb.book_cover,
tb.introduction,
st.number
FROM t_shopping_trolley st
LEFT JOIN t_book tb ON st.book_id=tb.id,
(SELECT @row_number := 0) AS dummy
WHERE st.user_id=#{id}
</select>
</mapper>

View File

@ -14,12 +14,4 @@
<result property="updateTime" column="update_time"/>
</resultMap>
<!-- SELECT-->
<!-- (@row_number:=@row_number + 1) AS id,-->
<!-- FROM t_book tb-->
<!-- LEFT JOIN t_purchase_details pd ON tb.id=pd-->
<!-- (SELECT @row_number := 0) AS dummy-->
<!-- WHERE .user_id=#{id}-->
</mapper>

View File

@ -6,8 +6,6 @@ import net.maku.framework.common.excel.ExcelFinishCallBack;
import net.maku.framework.common.excel.LocalDateTimeConverter;
import net.maku.framework.common.utils.ExcelUtils;
import org.junit.jupiter.api.Test;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import java.io.File;
import java.time.LocalDateTime;
@ -20,23 +18,6 @@ import java.util.List;
* @author eden
*/
public class EasyExcelTest {
@Test
void IDcTest(){
int randomPart = (int) (Math.random() * 1000000000);
System.out.println(randomPart);
}
@Test
void bcTest(){
PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String rawpassword = "123456";
String encode = passwordEncoder.encode(rawpassword);
System.out.println(rawpassword);
System.out.println(encode);
System.out.println(passwordEncoder.matches(rawpassword, encode));
}
@Test
public void doImport() {