From 3ffa75dc105a2c68f4eaf14afc39fb9a8adf744a Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <1179705413@qq.com> Date: Fri, 14 Apr 2023 23:16:55 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=8E=E5=8F=B0=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/java2nb/novel/dao/BookDao.java | 33 ++- .../java/com/java2nb/novel/dao/UserDao.java | 32 +-- .../java2nb/novel/domain/BookCommentDO.java | 266 ++++++++++-------- .../service/impl/BookCommentServiceImpl.java | 108 ++++--- .../resources/mybatis/novel/BookMapper.xml | 8 + .../resources/mybatis/novel/UserMapper.xml | 97 ++++--- .../js/appjs/novel/bookComment/bookComment.js | 12 +- 7 files changed, 314 insertions(+), 242 deletions(-) diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java index f2ba193..bb4fa5f 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java @@ -1,15 +1,15 @@ package com.java2nb.novel.dao; import com.java2nb.novel.domain.BookDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; import java.util.Map; -import org.apache.ibatis.annotations.Mapper; - /** * 小说表 + * * @author xiongxy * @email 1179705413@qq.com * @date 2020-12-01 03:49:46 @@ -17,19 +17,22 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BookDao { - BookDO get(Long id); - - List list(Map map); - - int count(Map map); - - int save(BookDO book); - - int update(BookDO book); - - int remove(Long id); - - int batchRemove(Long[] ids); + BookDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(BookDO book); + + int update(BookDO book); + + int remove(Long id); + + int batchRemove(Long[] ids); List> tableSta(Date minDate); + + List batchGet(List ids); + } diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java index 81eb056..e641e61 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java @@ -1,15 +1,13 @@ package com.java2nb.novel.dao; import com.java2nb.novel.domain.UserDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; import java.util.Map; -import org.apache.ibatis.annotations.Mapper; - /** - * * @author xiongxy * @email 1179705413@qq.com * @date 2020-12-01 03:49:08 @@ -17,19 +15,21 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserDao { - UserDO get(Long id); - - List list(Map map); - - int count(Map map); - - int save(UserDO user); - - int update(UserDO user); - - int remove(Long id); - - int batchRemove(Long[] ids); + UserDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(UserDO user); + + int update(UserDO user); + + int remove(Long id); + + int batchRemove(Long[] ids); List> tableSta(Date minDate); + + List batchGet(List userIds); } diff --git a/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java b/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java index a7d3a7e..7a50326 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java +++ b/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java @@ -1,137 +1,165 @@ package com.java2nb.novel.domain; -import java.io.Serializable; - - -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.java2nb.common.jsonserializer.LongToStringSerializer; - - import org.springframework.format.annotation.DateTimeFormat; -import java.util.Date; +import java.io.Serializable; +import java.util.Date; /** * 小说评论表 - * + * * @author xiongxy * @email 1179705413@qq.com * @date 2023-04-14 21:59:28 */ public class BookCommentDO implements Serializable { - private static final long serialVersionUID = 1L; - - //主键 - //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) - //所以通过序列化成字符串来解决 - @JsonSerialize(using = LongToStringSerializer.class) - private Long id; - //小说ID - //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) - //所以通过序列化成字符串来解决 - @JsonSerialize(using = LongToStringSerializer.class) - private Long bookId; - //评价内容 - private String commentContent; - //回复数量 - private Integer replyCount; - //审核状态,0:待审核,1:审核通过,2:审核不通过 - private Integer auditStatus; - //评价时间 - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - //评价人 - //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) - //所以通过序列化成字符串来解决 - @JsonSerialize(using = LongToStringSerializer.class) - private Long createUserId; + private static final long serialVersionUID = 1L; - /** - * 设置:主键 - */ - public void setId(Long id) { - this.id = id; - } - /** - * 获取:主键 - */ - public Long getId() { - return id; - } - /** - * 设置:小说ID - */ - public void setBookId(Long bookId) { - this.bookId = bookId; - } - /** - * 获取:小说ID - */ - public Long getBookId() { - return bookId; - } - /** - * 设置:评价内容 - */ - public void setCommentContent(String commentContent) { - this.commentContent = commentContent; - } - /** - * 获取:评价内容 - */ - public String getCommentContent() { - return commentContent; - } - /** - * 设置:回复数量 - */ - public void setReplyCount(Integer replyCount) { - this.replyCount = replyCount; - } - /** - * 获取:回复数量 - */ - public Integer getReplyCount() { - return replyCount; - } - /** - * 设置:审核状态,0:待审核,1:审核通过,2:审核不通过 - */ - public void setAuditStatus(Integer auditStatus) { - this.auditStatus = auditStatus; - } - /** - * 获取:审核状态,0:待审核,1:审核通过,2:审核不通过 - */ - public Integer getAuditStatus() { - return auditStatus; - } - /** - * 设置:评价时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - /** - * 获取:评价时间 - */ - public Date getCreateTime() { - return createTime; - } - /** - * 设置:评价人 - */ - public void setCreateUserId(Long createUserId) { - this.createUserId = createUserId; - } - /** - * 获取:评价人 - */ - public Long getCreateUserId() { - return createUserId; - } + + //主键 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //小说ID + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long bookId; + //评价内容 + private String commentContent; + //回复数量 + private Integer replyCount; + //审核状态,0:待审核,1:审核通过,2:审核不通过 + private Integer auditStatus; + //评价时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + //评价人 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long createUserId; + + private String bookName; + + private String userName; + + public String getBookName() { + return bookName; + } + + public void setBookName(String bookName) { + this.bookName = bookName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + /** + * 设置:主键 + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取:主键 + */ + public Long getId() { + return id; + } + + /** + * 设置:小说ID + */ + public void setBookId(Long bookId) { + this.bookId = bookId; + } + + /** + * 获取:小说ID + */ + public Long getBookId() { + return bookId; + } + + /** + * 设置:评价内容 + */ + public void setCommentContent(String commentContent) { + this.commentContent = commentContent; + } + + /** + * 获取:评价内容 + */ + public String getCommentContent() { + return commentContent; + } + + /** + * 设置:回复数量 + */ + public void setReplyCount(Integer replyCount) { + this.replyCount = replyCount; + } + + /** + * 获取:回复数量 + */ + public Integer getReplyCount() { + return replyCount; + } + + /** + * 设置:审核状态,0:待审核,1:审核通过,2:审核不通过 + */ + public void setAuditStatus(Integer auditStatus) { + this.auditStatus = auditStatus; + } + + /** + * 获取:审核状态,0:待审核,1:审核通过,2:审核不通过 + */ + public Integer getAuditStatus() { + return auditStatus; + } + + /** + * 设置:评价时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取:评价时间 + */ + public Date getCreateTime() { + return createTime; + } + + /** + * 设置:评价人 + */ + public void setCreateUserId(Long createUserId) { + this.createUserId = createUserId; + } + + /** + * 获取:评价人 + */ + public Long getCreateUserId() { + return createUserId; + } } diff --git a/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java b/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java index 08fd1d4..b0e0612 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java +++ b/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java @@ -1,55 +1,77 @@ package com.java2nb.novel.service.impl; +import com.java2nb.novel.dao.BookCommentDao; +import com.java2nb.novel.dao.BookDao; +import com.java2nb.novel.dao.UserDao; +import com.java2nb.novel.domain.BookCommentDO; +import com.java2nb.novel.domain.BookDO; +import com.java2nb.novel.domain.UserDO; +import com.java2nb.novel.service.BookCommentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Map; - -import com.java2nb.novel.dao.BookCommentDao; -import com.java2nb.novel.domain.BookCommentDO; -import com.java2nb.novel.service.BookCommentService; - +import java.util.stream.Collectors; @Service public class BookCommentServiceImpl implements BookCommentService { - @Autowired - private BookCommentDao bookCommentDao; - - @Override - public BookCommentDO get(Long id){ - return bookCommentDao.get(id); - } - - @Override - public List list(Map map){ - return bookCommentDao.list(map); - } - - @Override - public int count(Map map){ - return bookCommentDao.count(map); - } - - @Override - public int save(BookCommentDO bookComment){ - return bookCommentDao.save(bookComment); - } - - @Override - public int update(BookCommentDO bookComment){ - return bookCommentDao.update(bookComment); - } - - @Override - public int remove(Long id){ - return bookCommentDao.remove(id); - } - - @Override - public int batchRemove(Long[] ids){ - return bookCommentDao.batchRemove(ids); - } - + + @Autowired + private BookCommentDao bookCommentDao; + @Autowired + private BookDao bookDao; + @Autowired + private UserDao userDao; + + @Override + public BookCommentDO get(Long id) { + return bookCommentDao.get(id); + } + + @Override + public List list(Map map) { + List list = bookCommentDao.list(map); + if (!CollectionUtils.isEmpty(list)) { + List bookIds = list.stream().map(BookCommentDO::getBookId).collect(Collectors.toList()); + Map bookNameMap = bookDao.batchGet(bookIds).stream() + .collect(Collectors.toMap(BookDO::getId, BookDO::getBookName)); + List userIds = list.stream().map(BookCommentDO::getCreateUserId).collect(Collectors.toList()); + Map userNameMap = userDao.batchGet(userIds).stream() + .collect(Collectors.toMap(UserDO::getId, UserDO::getUsername)); + list.forEach(v -> { + v.setBookName(bookNameMap.get(v.getBookId())); + v.setUserName(userNameMap.get(v.getCreateUserId())); + }); + } + return list; + } + + @Override + public int count(Map map) { + return bookCommentDao.count(map); + } + + @Override + public int save(BookCommentDO bookComment) { + return bookCommentDao.save(bookComment); + } + + @Override + public int update(BookCommentDO bookComment) { + return bookCommentDao.update(bookComment); + } + + @Override + public int remove(Long id) { + return bookCommentDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids) { + return bookCommentDao.batchRemove(ids); + } + } diff --git a/novel-admin/src/main/resources/mybatis/novel/BookMapper.xml b/novel-admin/src/main/resources/mybatis/novel/BookMapper.xml index c8565d5..6660709 100644 --- a/novel-admin/src/main/resources/mybatis/novel/BookMapper.xml +++ b/novel-admin/src/main/resources/mybatis/novel/BookMapper.xml @@ -285,5 +285,13 @@ GROUP BY DATE_FORMAT(create_time, "%Y-%m-%d") ORDER BY staDate + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/novel/UserMapper.xml b/novel-admin/src/main/resources/mybatis/novel/UserMapper.xml index abb38bf..502bac1 100644 --- a/novel-admin/src/main/resources/mybatis/novel/UserMapper.xml +++ b/novel-admin/src/main/resources/mybatis/novel/UserMapper.xml @@ -4,8 +4,19 @@ + select `id`, + `username`, + `password`, + `nick_name`, + `user_photo`, + `user_sex`, + `account_balance`, + `status`, + `create_time`, + `update_time` + from user + where id = #{value} + - insert into user - ( - `id`, - `username`, - `password`, - `nick_name`, - `user_photo`, - `user_sex`, - `account_balance`, - `status`, - `create_time`, - `update_time` - ) - values - ( - #{id}, - #{username}, - #{password}, - #{nickName}, - #{userPhoto}, - #{userSex}, - #{accountBalance}, - #{status}, - #{createTime}, - #{updateTime} - ) - + insert into user + (`id`, + `username`, + `password`, + `nick_name`, + `user_photo`, + `user_sex`, + `account_balance`, + `status`, + `create_time`, + `update_time`) + values (#{id}, + #{username}, + #{password}, + #{nickName}, + #{userPhoto}, + #{userSex}, + #{accountBalance}, + #{status}, + #{createTime}, + #{updateTime}) + insert into user @@ -127,8 +133,10 @@ - delete from user where id = #{value} - + delete + from user + where id = #{value} + delete from user where id in @@ -138,17 +146,20 @@ + SELECT DATE_FORMAT(create_time, "%Y-%m-%d") AS staDate, + COUNT(1) userCount + FROM user + WHERE create_time >= #{minDate} + GROUP BY DATE_FORMAT(create_time, "%Y-%m-%d") + ORDER BY staDate + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js index 05a7cee..7167c54 100644 --- a/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js +++ b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js @@ -61,25 +61,25 @@ function load() { }, { - field: 'bookId', - title: '小说ID' + field: 'bookName', + title: '评论小说' }, { field: 'commentContent', - title: '评价内容' + title: '评论内容' }, { field: 'createTime', - title: '评价时间' + title: '评论时间' }, { - field: 'createUserId', - title: '评价人ID' + field: 'userName', + title: '评论人' },