1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-17 23:46:12 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

添加管理添加书籍前校验用户token是否有效,同时修改了获取用户信息的部分代码(从Controller层挪到Service层)(还未测试)

This commit is contained in:
2022-04-01 23:21:13 +08:00
parent 6b47ded6ee
commit 7bf98f6ae0
7 changed files with 131 additions and 13 deletions

View File

@@ -70,11 +70,24 @@ public class BookServiceImpl implements BookService {
return convertFromDataObjecctList(bookDOs);
}
@Override
public Integer addBook(BookModel bookModel) throws BusinessException {
// 校验入参
ValidationResult result = validator.validate(bookModel);
if (result.isHasErrors()) {
throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, result.getErrMsg());
}
BookDO bookDO = convertToDataObjecct(bookModel);
return bookDOMapper.insertSelective(bookDO);
}
private BookModel convertFromDataObjecct(BookDO bookDO) {
BookModel bookModel = new BookModel();
if (bookDO == null) {
return null;
}
BookModel bookModel = new BookModel();
bookModel.setId(bookDO.getId());
bookModel.setBookName(bookDO.getBookName());
bookModel.setDescription(bookDO.getDescription());
@@ -92,6 +105,24 @@ public class BookServiceImpl implements BookService {
return bookModel;
}
private BookDO convertToDataObjecct(BookModel bookModel) {
if (bookModel == null) {
return null;
}
BookDO bookDO = new BookDO();
bookDO.setId(bookModel.getId());
bookDO.setBookName(bookModel.getBookName());
bookDO.setDescription(bookModel.getDescription());
bookDO.setAuthor(bookModel.getAuthor());
bookDO.setPublishingHouse(bookModel.getPublishingHouse());
bookDO.setCopyright(bookModel.getCopyright());
bookDO.setIsDelete(bookModel.getIsDelete());
bookDO.setThumbnail(bookModel.getThumbnail());
bookDO.setLanguage(bookModel.getLanguage());
bookDO.setCategoryId(bookModel.getCategory().getId());
return bookDO;
}
private List<BookModel> convertFromDataObjecctList(List<BookDO> bookDOs) {
List<BookModel> bookModels = new ArrayList<>();
for (BookDO bookDO : bookDOs) {

View File

@@ -1,7 +1,12 @@
package plus.bookshelf.Service.Impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import plus.bookshelf.Common.Error.BusinessErrorCode;
import plus.bookshelf.Common.Error.BusinessException;
import plus.bookshelf.Common.SessionManager.RedisSessionManager;
import plus.bookshelf.Controller.VO.UserVO;
import plus.bookshelf.Dao.DO.UserDO;
import plus.bookshelf.Dao.Mapper.UserDOMapper;
import plus.bookshelf.Service.Model.UserModel;
@@ -29,6 +34,27 @@ public class UserServiceImpl implements UserService {
return userModel;
}
@Override
public UserModel getUserByToken(RedisTemplate redisTemplate, String token) throws BusinessException {
// token 未传入
if (token == null || "".equals(token)) {
throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "用户令牌未传入");
}
// token 已过期
Object userIdObject = RedisSessionManager.getInstance(redisTemplate).getValue(token);
if (userIdObject == null) {
throw new BusinessException(BusinessErrorCode.USER_TOKEN_EXPIRED, "登陆过期啦,请重新登录");
}
Integer userId = (Integer) userIdObject;
UserModel userModel = getUserById(userId);
if (userModel == null) {
throw new BusinessException(BusinessErrorCode.USER_NOT_EXIST);
}
return userModel;
}
private UserModel convertFromDataObject(UserDO userDO) {
if (userDO == null) {
return null;