mirror of
https://github.com/201206030/novel-cloud.git
synced 2025-06-24 05:56:38 +00:00
一期开发已完成
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
package com.java2nb.novel.user.controller;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.java2nb.novel.book.entity.BookComment;
|
||||
import com.java2nb.novel.common.base.BaseController;
|
||||
import com.java2nb.novel.common.bean.PageBean;
|
||||
import com.java2nb.novel.common.bean.ResultBean;
|
||||
@ -9,6 +11,7 @@ import com.java2nb.novel.common.enums.ResponseStatus;
|
||||
import com.java2nb.novel.common.utils.RandomValidateCodeUtil;
|
||||
import com.java2nb.novel.user.entity.User;
|
||||
import com.java2nb.novel.user.entity.UserFeedback;
|
||||
import com.java2nb.novel.user.feign.BookFeignClient;
|
||||
import com.java2nb.novel.user.form.UserForm;
|
||||
import com.java2nb.novel.user.service.UserService;
|
||||
import com.java2nb.novel.user.vo.BookReadHistoryVO;
|
||||
@ -41,6 +44,8 @@ public class UserController extends BaseController {
|
||||
|
||||
private final UserService userService;
|
||||
|
||||
private final BookFeignClient bookFeignClient;
|
||||
|
||||
/**
|
||||
* 登陆
|
||||
*/
|
||||
@ -274,6 +279,33 @@ public class UserController extends BaseController {
|
||||
return ResultBean.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 发布评价
|
||||
* */
|
||||
@ApiOperation("发布评价接口")
|
||||
@PostMapping("addBookComment")
|
||||
public ResultBean addBookComment(BookComment comment, HttpServletRequest request) {
|
||||
UserDetails userDetails = getUserDetails(request);
|
||||
if (userDetails == null) {
|
||||
return ResultBean.fail(ResponseStatus.NO_LOGIN);
|
||||
}
|
||||
bookFeignClient.addBookComment(userDetails.getId(),comment);
|
||||
return ResultBean.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户书评分页查询
|
||||
* */
|
||||
@ApiOperation("用户书评分页查询接口")
|
||||
@GetMapping("listCommentByPage")
|
||||
public ResultBean<PageBean<BookComment>> listCommentByPage(@RequestParam(value = "curr", defaultValue = "1") int page, @RequestParam(value = "limit", defaultValue = "5") int pageSize,HttpServletRequest request) {
|
||||
UserDetails userDetails = getUserDetails(request);
|
||||
if (userDetails == null) {
|
||||
return ResultBean.fail(ResponseStatus.NO_LOGIN);
|
||||
}
|
||||
return ResultBean.ok(new PageBean<>(bookFeignClient.listUserCommentByPage(userDetails.getId(),page,pageSize)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -147,4 +147,5 @@ public interface UserService {
|
||||
* @param newPassword 新密码
|
||||
* */
|
||||
void updatePassword(Long userId, String oldPassword, String newPassword);
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.java2nb.novel.user.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.java2nb.novel.book.entity.Book;
|
||||
import com.java2nb.novel.book.entity.BookComment;
|
||||
import com.java2nb.novel.common.bean.UserDetails;
|
||||
import com.java2nb.novel.common.enums.ResponseStatus;
|
||||
import com.java2nb.novel.common.exception.BusinessException;
|
||||
@ -42,6 +43,7 @@ import static org.mybatis.dynamic.sql.select.SelectDSL.select;
|
||||
|
||||
/**
|
||||
* 小说服务接口实现
|
||||
*
|
||||
* @author xiongxiaoyang
|
||||
* @version 1.0
|
||||
* @since 2020/5/28
|
||||
@ -79,7 +81,7 @@ public class UserServiceImpl implements UserService {
|
||||
@Override
|
||||
public UserDetails login(UserForm form) {
|
||||
//根据用户名密码查询记录
|
||||
User user = queryByUsernameAndPassword(form.getUsername(),form.getPassword());
|
||||
User user = queryByUsernameAndPassword(form.getUsername(), form.getPassword());
|
||||
if (user == null) {
|
||||
throw new BusinessException(ResponseStatus.USERNAME_PASS_ERROR);
|
||||
}
|
||||
@ -94,10 +96,10 @@ public class UserServiceImpl implements UserService {
|
||||
@Override
|
||||
public List<User> queryById(List<Long> ids) {
|
||||
return userMapper.selectMany(
|
||||
select(UserDynamicSqlSupport.id,UserDynamicSqlSupport.username,
|
||||
select(UserDynamicSqlSupport.id, UserDynamicSqlSupport.username,
|
||||
UserDynamicSqlSupport.userPhoto)
|
||||
.from(UserDynamicSqlSupport.user)
|
||||
.where(UserDynamicSqlSupport.id,isIn(ids)).build()
|
||||
.from(UserDynamicSqlSupport.user)
|
||||
.where(UserDynamicSqlSupport.id, isIn(ids)).build()
|
||||
.render(RenderingStrategies.MYBATIS3));
|
||||
}
|
||||
|
||||
@ -115,7 +117,7 @@ public class UserServiceImpl implements UserService {
|
||||
throw new BusinessException(ResponseStatus.USERNAME_EXIST);
|
||||
}
|
||||
User entity = new User();
|
||||
BeanUtils.copyProperties(form,entity);
|
||||
BeanUtils.copyProperties(form, entity);
|
||||
//数据库生成注册记录
|
||||
Long id = new IdWorker().nextId();
|
||||
entity.setId(id);
|
||||
@ -171,23 +173,23 @@ public class UserServiceImpl implements UserService {
|
||||
public List<BookShelfVO> listBookShelfByPage(Long userId, int page, int pageSize) {
|
||||
PageHelper.startPage(page, pageSize);
|
||||
List<UserBookshelf> userBookshelves = userBookshelfMapper.selectMany(
|
||||
select(UserBookshelfDynamicSqlSupport.bookId,UserBookshelfDynamicSqlSupport.preContentId)
|
||||
.from(userBookshelf)
|
||||
.where(UserBookshelfDynamicSqlSupport.userId,isEqualTo(userId))
|
||||
select(UserBookshelfDynamicSqlSupport.bookId, UserBookshelfDynamicSqlSupport.preContentId)
|
||||
.from(userBookshelf)
|
||||
.where(UserBookshelfDynamicSqlSupport.userId, isEqualTo(userId))
|
||||
.orderBy(UserBookshelfDynamicSqlSupport.createTime.descending())
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3));
|
||||
|
||||
List<Book> books = bookFeignClient.queryBookByIds(userBookshelves.stream().map(UserBookshelf::getBookId).collect(Collectors.toList()));
|
||||
Map<Long, Book> booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(),(key1, key2) -> key2));
|
||||
Map<Long, Book> booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(), (key1, key2) -> key2));
|
||||
|
||||
List<BookShelfVO> resultList = new ArrayList<>(booksById.size());
|
||||
for(UserBookshelf bookshelf : userBookshelves){
|
||||
for (UserBookshelf bookshelf : userBookshelves) {
|
||||
BookShelfVO bookShelfVO = new BookShelfVO();
|
||||
BeanUtils.copyProperties(bookshelf,bookShelfVO);
|
||||
BeanUtils.copyProperties(bookshelf, bookShelfVO);
|
||||
Book book = booksById.get(bookshelf.getBookId());
|
||||
if(book != null){
|
||||
BeanUtils.copyProperties(book,bookShelfVO);
|
||||
if (book != null) {
|
||||
BeanUtils.copyProperties(book, bookShelfVO);
|
||||
resultList.add(bookShelfVO);
|
||||
}
|
||||
|
||||
@ -201,24 +203,24 @@ public class UserServiceImpl implements UserService {
|
||||
public List<BookReadHistoryVO> listReadHistoryByPage(Long userId, int page, int pageSize) {
|
||||
PageHelper.startPage(page, pageSize);
|
||||
List<UserReadHistory> userReadHistories = userReadHistoryMapper.selectMany(
|
||||
select(UserReadHistoryDynamicSqlSupport.bookId,UserReadHistoryDynamicSqlSupport.preContentId)
|
||||
select(UserReadHistoryDynamicSqlSupport.bookId, UserReadHistoryDynamicSqlSupport.preContentId)
|
||||
.from(userReadHistory)
|
||||
.where(UserReadHistoryDynamicSqlSupport.userId,isEqualTo(userId))
|
||||
.where(UserReadHistoryDynamicSqlSupport.userId, isEqualTo(userId))
|
||||
.orderBy(UserReadHistoryDynamicSqlSupport.createTime.descending())
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3));
|
||||
|
||||
List<Book> books = bookFeignClient.queryBookByIds(userReadHistories.stream().map(UserReadHistory::getBookId).collect(Collectors.toList()));
|
||||
|
||||
Map<Long, Book> booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(),(key1, key2) -> key2));
|
||||
Map<Long, Book> booksById = books.stream().collect(Collectors.toMap(Book::getId, Function.identity(), (key1, key2) -> key2));
|
||||
|
||||
List<BookReadHistoryVO> resultList = new ArrayList<>(booksById.size());
|
||||
for(UserReadHistory readHistory : userReadHistories){
|
||||
for (UserReadHistory readHistory : userReadHistories) {
|
||||
BookReadHistoryVO readHistoryVO = new BookReadHistoryVO();
|
||||
BeanUtils.copyProperties(readHistory,readHistoryVO);
|
||||
BeanUtils.copyProperties(readHistory, readHistoryVO);
|
||||
Book book = booksById.get(readHistory.getBookId());
|
||||
if(book != null){
|
||||
BeanUtils.copyProperties(book,readHistoryVO);
|
||||
if (book != null) {
|
||||
BeanUtils.copyProperties(book, readHistoryVO);
|
||||
resultList.add(readHistoryVO);
|
||||
}
|
||||
|
||||
@ -287,10 +289,11 @@ public class UserServiceImpl implements UserService {
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3));
|
||||
}
|
||||
|
||||
@Override
|
||||
public User userInfo(Long userId) {
|
||||
SelectStatementProvider selectStatement = select(UserDynamicSqlSupport.username, UserDynamicSqlSupport.nickName,
|
||||
UserDynamicSqlSupport.userPhoto,UserDynamicSqlSupport.userSex,UserDynamicSqlSupport.accountBalance)
|
||||
UserDynamicSqlSupport.userPhoto, UserDynamicSqlSupport.userSex, UserDynamicSqlSupport.accountBalance)
|
||||
.from(UserDynamicSqlSupport.user)
|
||||
.where(UserDynamicSqlSupport.id, isEqualTo(userId))
|
||||
.limit(1)
|
||||
@ -314,16 +317,16 @@ public class UserServiceImpl implements UserService {
|
||||
public void updatePassword(Long userId, String oldPassword, String newPassword) {
|
||||
SelectStatementProvider selectStatement = select(UserDynamicSqlSupport.password)
|
||||
.from(UserDynamicSqlSupport.user)
|
||||
.where(UserDynamicSqlSupport.id,isEqualTo(userId))
|
||||
.where(UserDynamicSqlSupport.id, isEqualTo(userId))
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3);
|
||||
if(!userMapper.selectMany(selectStatement).get(0).getPassword().equals(MD5Util.MD5Encode(oldPassword, Charsets.UTF_8.name()))){
|
||||
if (!userMapper.selectMany(selectStatement).get(0).getPassword().equals(MD5Util.MD5Encode(oldPassword, Charsets.UTF_8.name()))) {
|
||||
throw new BusinessException(ResponseStatus.OLD_PASSWORD_ERROR);
|
||||
}
|
||||
UpdateStatementProvider updateStatement = update(UserDynamicSqlSupport.user)
|
||||
.set(UserDynamicSqlSupport.password)
|
||||
.equalTo(MD5Util.MD5Encode(newPassword, Charsets.UTF_8.name()))
|
||||
.where(UserDynamicSqlSupport.id,isEqualTo(userId))
|
||||
.where(UserDynamicSqlSupport.id, isEqualTo(userId))
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3);
|
||||
userMapper.update(updateStatement);
|
||||
@ -331,4 +334,5 @@ public class UserServiceImpl implements UserService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user