From 4e7861b5b1fc9fcfe5722faec571f92586136787 Mon Sep 17 00:00:00 2001 From: fanxb Date: Tue, 12 May 2020 11:44:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0bookmark=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E6=AC=A1=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/BookmarkInsertEsConsumer.java | 1 + .../BookmarkVisitNumPlusConsumer.java | 38 +++++++++++++++++++ .../controller/BookmarkController.java | 14 +++++++ .../business/bookmark/dao/BookmarkDao.java | 12 +++++- .../bookmark/service/BookmarkService.java | 10 +++++ .../service/impl/BookmarkServiceImpl.java | 5 +++ .../common/configuration/MqConfiguration.java | 4 +- .../common/constant/RedisConstant.java | 4 ++ .../bookmark/common/entity/Bookmark.java | 4 ++ .../V11__bookmark表增加字段记录访问次数.sql | 1 + 10 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkVisitNumPlusConsumer.java create mode 100644 bookMarkService/web/src/main/resources/db/migration/V11__bookmark表增加字段记录访问次数.sql diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkInsertEsConsumer.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkInsertEsConsumer.java index 16d6cac..6d40f0f 100644 --- a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkInsertEsConsumer.java +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkInsertEsConsumer.java @@ -21,6 +21,7 @@ import java.util.stream.Collectors; * Created By Fxb * Date: 2020/3/29 * Time: 11:34 + * @author fanxb */ @MqConsumer(RedisConstant.BOOKMARK_INSERT_ES) public class BookmarkInsertEsConsumer implements RedisConsumer { diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkVisitNumPlusConsumer.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkVisitNumPlusConsumer.java new file mode 100644 index 0000000..c97d622 --- /dev/null +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/consumer/BookmarkVisitNumPlusConsumer.java @@ -0,0 +1,38 @@ +package com.fanxb.bookmark.business.bookmark.consumer; + +import com.fanxb.bookmark.business.bookmark.dao.BookmarkDao; +import com.fanxb.bookmark.common.annotation.MqConsumer; +import com.fanxb.bookmark.common.constant.RedisConstant; +import com.fanxb.bookmark.common.entity.redis.RedisConsumer; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * 更新书签时间 + * Created with IntelliJ IDEA + * Created By Fxb + * Date: 2020/5/12 + * Time: 10:33 + * + * @author fanxb + */ +@MqConsumer(RedisConstant.BOOKMARK_VISIT_NUM_PLUS) +@Slf4j +public class BookmarkVisitNumPlusConsumer implements RedisConsumer { + + private final BookmarkDao bookmarkDao; + + @Autowired + public BookmarkVisitNumPlusConsumer(BookmarkDao bookmarkDao) { + this.bookmarkDao = bookmarkDao; + } + + @Override + public void deal(String message) { + try { + bookmarkDao.updateVisitNum(Integer.parseInt(message)); + } catch (Exception e) { + log.error("书签访问次数增加失败:{}", e.getMessage()); + } + } +} diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/controller/BookmarkController.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/controller/BookmarkController.java index 1d5eed4..b48aa8e 100644 --- a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/controller/BookmarkController.java +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/controller/BookmarkController.java @@ -161,4 +161,18 @@ public class BookmarkController { return Result.success(null); } + /** + * 功能描述: 书签增加1 + * + * @param id id + * @return com.fanxb.bookmark.common.entity.Result + * @author fanxb + * @date 2020/5/12 10:44 + */ + @PostMapping("/visitNum") + public Result visitNum(int id) { + bookmarkService.visitNumPlus(id); + return Result.success(null); + } + } diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/dao/BookmarkDao.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/dao/BookmarkDao.java index 9e3ccec..45ca967 100644 --- a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/dao/BookmarkDao.java +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/dao/BookmarkDao.java @@ -177,7 +177,7 @@ public interface BookmarkDao extends BaseMapper { * 功能描述: 更新一个bookmark的key * * @param bookmarkId id - * @param searchKey searchKey + * @param searchKey searchKey * @author fanxb * @date 2020/3/22 22:08 */ @@ -194,4 +194,14 @@ public interface BookmarkDao extends BaseMapper { @Select("select * from bookmark order by bookmarkId limit ${startIndex},${size}") List getBookmarkListPage(@Param("size") int size, @Param("startIndex") int startIndex); + /** + * 功能描述: 书签访问次数+1 + * + * @param id 书签id + * @author fanxb + * @date 2020/5/12 10:40 + */ + @Update("update bookmark set visitNum=visitNum+1 where bookmarkId=#{id}") + void updateVisitNum(int id); + } diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/BookmarkService.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/BookmarkService.java index 02908b8..93aa385 100644 --- a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/BookmarkService.java +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/BookmarkService.java @@ -98,8 +98,18 @@ public interface BookmarkService { * * @param userId userId * @param context context + * @return es搜索结果 * @author fanxb * @date 2019/7/25 10:45 */ List searchUserBookmark(int userId, String context); + + /** + * 功能描述: 当前用户书签访问次数+1 + * + * @param id 书签id + * @author fanxb + * @date 2020/5/12 10:21 + */ + void visitNumPlus(int id); } diff --git a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/impl/BookmarkServiceImpl.java b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/impl/BookmarkServiceImpl.java index ca99c96..d7c4ea3 100644 --- a/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/impl/BookmarkServiceImpl.java +++ b/bookMarkService/business/bookmark/src/main/java/com/fanxb/bookmark/business/bookmark/service/impl/BookmarkServiceImpl.java @@ -239,6 +239,11 @@ public class BookmarkServiceImpl implements BookmarkService { return esUtil.search(EsConstant.BOOKMARK_INDEX, builder, BookmarkEs.class); } + @Override + public void visitNumPlus(int id) { + RedisUtil.addToMq(RedisConstant.BOOKMARK_VISIT_NUM_PLUS, id); + } + /** * 功能描述: 向mq发送消息通知,数据更新 * diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/configuration/MqConfiguration.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/configuration/MqConfiguration.java index ddfb3d1..01cecf6 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/configuration/MqConfiguration.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/configuration/MqConfiguration.java @@ -75,9 +75,9 @@ public class MqConfiguration implements ApplicationRunner { } }); if (count.get() == topicMap.keySet().size()) { - //当所有的队列都为空时休眠1s + //当所有的队列都为空时休眠3s try { - TimeUnit.SECONDS.sleep(1); + TimeUnit.SECONDS.sleep(3); } catch (Exception e) { log.error("休眠出错", e); } diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/constant/RedisConstant.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/constant/RedisConstant.java index 8dea283..488dbf5 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/constant/RedisConstant.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/constant/RedisConstant.java @@ -27,4 +27,8 @@ public class RedisConstant { * 从es中删除数据 */ public static final String BOOKMARK_DELETE_ES = "bookmark_DELETE_es"; + /** + * 书签访问次数+1 + */ + public static final String BOOKMARK_VISIT_NUM_PLUS = "bookmark_visit_num_plus"; } diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/Bookmark.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/Bookmark.java index 7358501..73645af 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/Bookmark.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/Bookmark.java @@ -40,6 +40,10 @@ public class Bookmark { private String searchKey = ""; private Long addTime; private Long createTime; + /** + * 访问次数 + */ + private int visitNum; private List children; public Bookmark() { diff --git a/bookMarkService/web/src/main/resources/db/migration/V11__bookmark表增加字段记录访问次数.sql b/bookMarkService/web/src/main/resources/db/migration/V11__bookmark表增加字段记录访问次数.sql new file mode 100644 index 0000000..f114b2c --- /dev/null +++ b/bookMarkService/web/src/main/resources/db/migration/V11__bookmark表增加字段记录访问次数.sql @@ -0,0 +1 @@ +ALTER TABLE `bookmark`.`bookmark` ADD COLUMN `visitNum` int(0) UNSIGNED NOT NULL DEFAULT 0 COMMENT '访问次数' AFTER `createTime`; \ No newline at end of file