From 08cf5cf9458d11ec580221c1eeeb427bf209b08e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=BA=E6=98=8E=20=E6=B2=88?= <2431685932@qq.com> Date: Fri, 19 Jul 2024 11:49:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=AF=84=E8=AE=BA=E5=9B=9E=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraOssAliController.java | 3 -- ...SchisandraShareCommentReplyController.java | 41 ++++++++++++++++--- .../SchisandraShareDetailController.java | 1 + .../share/common/utils/CaffeineUtil.java | 31 ++++++++++++++ ...chisandraShareCircleDomainServiceImpl.java | 1 + ...draShareCommentReplyDomainServiceImpl.java | 3 +- ...chisandraShareCommentReplyServiceImpl.java | 4 +- 7 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/src/main/java/com/schisandra/share/common/utils/CaffeineUtil.java diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java index c88f6c9..0fa1d97 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssAliController.java @@ -5,13 +5,10 @@ import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter; -import com.schisandra.oss.application.convert.SchisandraOssQiniuDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssAliDTO; -import com.schisandra.oss.application.dto.SchisandraOssQiniuDTO; import com.schisandra.oss.application.oss.constant.OssConstant; import com.schisandra.oss.application.oss.core.ali.AliOssClient; import com.schisandra.oss.application.oss.core.ali.AliOssConfiguration; -import com.schisandra.oss.application.oss.core.minio.MinioOssClient; import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssAliBO; diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java index 08e79a2..e85e933 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java @@ -5,10 +5,10 @@ import com.google.common.base.Preconditions; import com.schisandra.share.application.convert.SchisandraShareCommentReplyDTOConverter; import com.schisandra.share.application.dto.SchisandraShareCommentReplyDTO; import com.schisandra.share.common.entity.Result; +import com.schisandra.share.common.utils.CaffeineUtil; import com.schisandra.share.domain.bo.SchisandraShareCommentReplyBO; import com.schisandra.share.domain.service.SchisandraShareCommentReplyDomainService; import lombok.extern.slf4j.Slf4j; -import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -33,14 +33,15 @@ public class SchisandraShareCommentReplyController { return Result.ok(schisandraShareCommentReplyDomainService.addLike(Id)); } - + @Resource + CaffeineUtil caffeineUtil; /** * * 返回当前评论的回复 * @param commentId * @return */ - @PostMapping(value = "listreply") + @GetMapping(value = "listreply") public Result listReply(@RequestParam String commentId) { try { List result = schisandraShareCommentReplyDomainService.listReply(commentId); @@ -60,11 +61,16 @@ public class SchisandraShareCommentReplyController { /** * 查询该动态下的评论 */ - @Cacheable(value = "listcommen",key = "#detailId") - @PostMapping(value = "listcommen") + @GetMapping(value = "listcomment") public Result> listComment(@RequestParam String detailId) { try { - List result = schisandraShareCommentReplyDomainService.listComment(detailId); + List result= (List) caffeineUtil + .caffeineBuild().getIfPresent("listcomment"+detailId); + if (result!=null){ + return Result.ok(result); + } + result = schisandraShareCommentReplyDomainService.listComment(detailId); + caffeineUtil.caffeineBuild().put("listcomment"+detailId, result); if (log.isInfoEnabled()) { log.info("获取当前文章评论内容{}", JSON.toJSONString(result)); } @@ -78,6 +84,28 @@ public class SchisandraShareCommentReplyController { } } +// /** +// * 查询该动态下的评论 +// */ +// @Cacheable(value = "commentcount",key = "#detailId") +// @PostMapping(value = "commentcount") +// public Result listCommentCount(@RequestParam String detailId) { +// try { +// result = schisandraShareCommentReplyDomainService.listCommentCount(detailId); +// if (log.isInfoEnabled()) { +// log.info("获取当前文章评论内容{}", JSON.toJSONString(result)); +// } +// return Result.ok(result); +// } catch (IllegalArgumentException e) { +// log.error("参数异常!错误原因{}", e.getMessage(), e); +// return Result.fail(e.getMessage()); +// } catch (Exception e) { +// log.error("获取当前文章内容异常!错误原因{}", e.getMessage(), e); +// return Result.fail("获取当前文章内容异常!"); +// } +// } + + @PostMapping("addreply") public Result addReply(@RequestBody SchisandraShareCommentReplyDTO schisandraShareCommentReplyDTO) { @@ -209,6 +237,7 @@ public class SchisandraShareCommentReplyController { Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUpdateTime(), "更新时间不能为空"); Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getIsDeleted(), "不能为空"); SchisandraShareCommentReplyBO schisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO); + caffeineUtil.caffeineBuild().invalidate(""+schisandraShareCommentReplyBO.getDetailId()); return Result.ok(schisandraShareCommentReplyDomainService.delete(schisandraShareCommentReplyBO)); } catch (Exception e) { log.error("SchisandraShareCommentReplyController.delete.error:{}", e.getMessage(), e); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java index 9ca0249..aaa734e 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java @@ -56,6 +56,7 @@ public class SchisandraShareDetailController { /** * 查询分享详细信息 */ + @Cacheable(value = "getdetail",key = "#Id") @PostMapping("get_detail") public Result selectDetail(@RequestParam("Id") String Id){ try{ diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/src/main/java/com/schisandra/share/common/utils/CaffeineUtil.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/src/main/java/com/schisandra/share/common/utils/CaffeineUtil.java new file mode 100644 index 0000000..b49664b --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/src/main/java/com/schisandra/share/common/utils/CaffeineUtil.java @@ -0,0 +1,31 @@ +package com.schisandra.share.common.utils; + + +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; + +@Configuration +@Setter +@Slf4j +public class CaffeineUtil{ + + public static int maximumSize=10000; + public static int expiresTime = 1; + public static TimeUnit unitTime = TimeUnit.MINUTES; + @Bean + public Cache caffeineBuild(){ + Cache cache = Caffeine.newBuilder() + .maximumSize(maximumSize) + .expireAfterWrite(expiresTime, unitTime) + .build(); + return cache; + } + + +} diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java index 72fe062..ff3fe4b 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java @@ -9,6 +9,7 @@ import com.schisandra.share.infra.basic.service.SchisandraShareCircleService; import com.schisandra.share.infra.entity.AuthUserInfoEntity; import com.schisandra.share.infra.rpc.UserRpc; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java index 71b606e..5890e3d 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java @@ -34,6 +34,7 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS public Boolean addComment(SchisandraShareCommentReplyBO schisandraShareCommentReplyBO) { SchisandraShareCommentReply schisandraShareCommentReply = SchisandraShareCommentReplyBOConverter.INSTANCE.convertBOToEntity(schisandraShareCommentReplyBO); schisandraShareCommentReply.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode()); + schisandraShareCommentReply.setReplyCount(0); schisandraShareCommentReply.setReplyType(0); schisandraShareCommentReply.setLikes(0L); return schisandraShareCommentReplyService.insert(schisandraShareCommentReply) > 0; @@ -91,8 +92,8 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS List schisandraShareReplies = schisandraShareCommentReplyService.listReply(commentId); List schisandraShareRepliesBO = SchisandraShareCommentReplyBOConverter.INSTANCE.convertEntityToBOList(schisandraShareReplies); schisandraShareRepliesBO.forEach(schisandraShareReplyBO -> { - schisandraShareReplyBO.setNickto(userRpc.getUserInfo(schisandraShareReplyBO.getReplyId()).getNickName()); AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareReplyBO.getUserId()); + schisandraShareReplyBO.setNickto(userInfo.getNickName()); schisandraShareReplyBO.setNick(userInfo.getNickName()); schisandraShareReplyBO.setAvatar(userInfo.getAvatar()); }); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java index a2a3028..04e3a0e 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java @@ -80,7 +80,6 @@ public class SchisandraShareCommentReplyServiceImpl implements SchisandraShareCo .from(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY) .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.DETAIL_ID.eq(detailId)) .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.REPLY_TYPE.eq(0)) - .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.IS_DELETED.eq(IsDeletedFlagEnum.UN_DELETED.getCode())) .orderBy(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.CREATED_TIME,false); return this.schisandraShareCommentReplyDao.selectListByQuery(wrapper); } @@ -98,8 +97,7 @@ public class SchisandraShareCommentReplyServiceImpl implements SchisandraShareCo SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.CREATED_TIME) .from(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY) .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.TO_ID.eq(commentId)) - .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.REPLY_TYPE.eq(0)) - .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.IS_DELETED.eq(IsDeletedFlagEnum.UN_DELETED.getCode())) + .where(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.REPLY_TYPE.eq(1)) .orderBy(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.CREATED_TIME,true); return this.schisandraShareCommentReplyDao.selectListByQuery(wrapper); }