From 430504ee284d5799a3e7d22ffc04619e9264feb9 Mon Sep 17 00:00:00 2001 From: xxy <773861846@qq.com> Date: Tue, 26 May 2020 02:10:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=87=BB=E9=87=8F=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2nb/novel/controller/BookController.java | 5 +---- .../novel/core/listener/BookVisitAddListener.java | 11 +++++++---- .../com/java2nb/novel/core/utils/Constants.java | 5 +++++ .../com/java2nb/novel/mapper/FrontBookMapper.java | 2 +- .../com/java2nb/novel/service/BookService.java | 4 ++-- .../novel/service/impl/BookServiceImpl.java | 14 ++------------ .../main/resources/mybatis/mapping/BookMapper.xml | 2 +- 7 files changed, 19 insertions(+), 24 deletions(-) diff --git a/novel-front/src/main/java/com/java2nb/novel/controller/BookController.java b/novel-front/src/main/java/com/java2nb/novel/controller/BookController.java index 88bacbb..d186c0d 100644 --- a/novel-front/src/main/java/com/java2nb/novel/controller/BookController.java +++ b/novel-front/src/main/java/com/java2nb/novel/controller/BookController.java @@ -4,9 +4,7 @@ import com.github.pagehelper.PageInfo; import com.java2nb.novel.core.bean.ResultBean; import com.java2nb.novel.core.bean.UserDetails; import com.java2nb.novel.core.enums.ResponseStatus; -import com.java2nb.novel.entity.Book; import com.java2nb.novel.entity.BookComment; -import com.java2nb.novel.entity.BookIndex; import com.java2nb.novel.search.BookSP; import com.java2nb.novel.service.BookService; import com.java2nb.novel.vo.BookVO; @@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -115,7 +112,7 @@ public class BookController extends BaseController{ if(enableMq == 1) { rabbitTemplate.convertAndSend("ADD-BOOK-VISIT-EXCHANGE", null, bookId); }else { - bookService.addVisitCount(bookId); + bookService.addVisitCount(bookId, 1); } return ResultBean.ok(); } diff --git a/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java b/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java index 642ddf4..84dbb49 100644 --- a/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java +++ b/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java @@ -2,6 +2,7 @@ package com.java2nb.novel.core.listener; import com.java2nb.novel.core.cache.CacheKey; import com.java2nb.novel.core.cache.CacheService; +import com.java2nb.novel.core.utils.Constants; import com.java2nb.novel.entity.Book; import com.java2nb.novel.service.BookService; import com.java2nb.novel.service.SearchService; @@ -62,14 +63,16 @@ public class BookVisitAddListener { if(visitCount == null){ visitCount = 0 ; } + cacheService.setObject(CacheKey.BOOK_ADD_VISIT_COUNT+bookId,++visitCount); + if(visitCount >= Constants.ADD_MAX_VISIT_COUNT) { + bookService.addVisitCount(bookId,visitCount); + cacheService.del(CacheKey.BOOK_ADD_VISIT_COUNT+bookId); + } //TODO 操作共享资源visitCount,集群环境下有线程安全问题,引入Redisson框架实现分布式锁 //lock.unlock(); - cacheService.setObject(CacheKey.BOOK_ADD_VISIT_COUNT+bookId,++visitCount); - if(cacheService.get(CacheKey.ES_IS_UPDATE_VISIT + bookId) == null) { - bookService.addVisitCount(bookId); - } + } diff --git a/novel-front/src/main/java/com/java2nb/novel/core/utils/Constants.java b/novel-front/src/main/java/com/java2nb/novel/core/utils/Constants.java index 23dd6f7..d00ae4b 100644 --- a/novel-front/src/main/java/com/java2nb/novel/core/utils/Constants.java +++ b/novel-front/src/main/java/com/java2nb/novel/core/utils/Constants.java @@ -30,4 +30,9 @@ public class Constants { * 首页设置的小说数量 * */ public static final int INDEX_BOOK_SETTING_NUM = 32; + + /** + * 累积的最大点击量 + * */ + public static final Integer ADD_MAX_VISIT_COUNT = 10; } diff --git a/novel-front/src/main/java/com/java2nb/novel/mapper/FrontBookMapper.java b/novel-front/src/main/java/com/java2nb/novel/mapper/FrontBookMapper.java index c51c7ef..3b284ec 100644 --- a/novel-front/src/main/java/com/java2nb/novel/mapper/FrontBookMapper.java +++ b/novel-front/src/main/java/com/java2nb/novel/mapper/FrontBookMapper.java @@ -16,7 +16,7 @@ public interface FrontBookMapper extends BookMapper { List searchByPage(BookSP params); - void addVisitCount(@Param("bookId") Long bookId); + void addVisitCount(@Param("bookId") Long bookId, @Param("visitCount") Integer visitCount); List listRecBookByCatId(@Param("catId") Integer catId); diff --git a/novel-front/src/main/java/com/java2nb/novel/service/BookService.java b/novel-front/src/main/java/com/java2nb/novel/service/BookService.java index 95bb38a..3e7889b 100644 --- a/novel-front/src/main/java/com/java2nb/novel/service/BookService.java +++ b/novel-front/src/main/java/com/java2nb/novel/service/BookService.java @@ -112,8 +112,8 @@ public interface BookService { /** * 增加点击次数 * @param bookId 书籍ID - * */ - void addVisitCount(Long bookId); + * @param visitCount*/ + void addVisitCount(Long bookId, Integer visitCount); /** * 查询章节数 diff --git a/novel-front/src/main/java/com/java2nb/novel/service/impl/BookServiceImpl.java b/novel-front/src/main/java/com/java2nb/novel/service/impl/BookServiceImpl.java index 818faf9..3ffe180 100644 --- a/novel-front/src/main/java/com/java2nb/novel/service/impl/BookServiceImpl.java +++ b/novel-front/src/main/java/com/java2nb/novel/service/impl/BookServiceImpl.java @@ -1,6 +1,5 @@ package com.java2nb.novel.service.impl; -import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -19,18 +18,10 @@ import com.java2nb.novel.service.SearchService; import com.java2nb.novel.vo.BookCommentVO; import com.java2nb.novel.vo.BookSettingVO; import com.java2nb.novel.vo.BookVO; -import com.java2nb.novel.vo.EsBookVO; -import io.searchbox.client.JestClient; -import io.searchbox.core.*; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.elasticsearch.index.query.BoolQueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.search.builder.SearchSourceBuilder; -import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; -import org.elasticsearch.search.sort.SortOrder; import org.mybatis.dynamic.sql.SortSpecification; import org.mybatis.dynamic.sql.render.RenderingStrategies; import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; @@ -40,7 +31,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.orderbyhelper.OrderByHelper; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -349,8 +339,8 @@ public class BookServiceImpl implements BookService { } @Override - public void addVisitCount(Long bookId) { - bookMapper.addVisitCount(bookId); + public void addVisitCount(Long bookId, Integer visitCount) { + bookMapper.addVisitCount(bookId,visitCount); } @Override diff --git a/novel-front/src/main/resources/mybatis/mapping/BookMapper.xml b/novel-front/src/main/resources/mybatis/mapping/BookMapper.xml index a43f85d..5b76041 100644 --- a/novel-front/src/main/resources/mybatis/mapping/BookMapper.xml +++ b/novel-front/src/main/resources/mybatis/mapping/BookMapper.xml @@ -35,7 +35,7 @@ - update book set visit_count = visit_count + 1 + update book set visit_count = visit_count + ${visitCount} where id = #{bookId}