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 339d220..40f8f96 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 @@ -45,6 +45,11 @@ public class SchisandraShareCommentReplyController { } } + /** + * 返回点赞总数 + * @param Id + * @return + */ @GetMapping("returnlikes") public Result returnlikes(@RequestParam String Id) { try{ 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 3741fd2..c1ec84e 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 @@ -5,6 +5,7 @@ import com.google.common.base.Preconditions; import com.schisandra.share.application.convert.SchisandraShareDetailDTOConverter; import com.schisandra.share.application.dto.SchisandraShareDetailDTO; import com.schisandra.share.common.entity.Result; +import com.schisandra.share.common.utils.CaffeineUtil; import com.schisandra.share.domain.bo.SchisandraShareDetailBO; import com.schisandra.share.domain.service.SchisandraShareDetailDomainService; import lombok.extern.slf4j.Slf4j; @@ -28,12 +29,19 @@ public class SchisandraShareDetailController { @Resource private SchisandraShareDetailDomainService schisandraShareDetailDomainService; + @Resource + CaffeineUtil caffeineUtil; + + /** * 获取我的分享 */ @GetMapping("mydetail") public Result mydetail(@RequestParam("userId") String userId) { - try{ + try { + List result = (List) caffeineUtil + .caffeineBuild().getIfPresent("mydetail" + userId); + caffeineUtil.caffeineBuild().put("mydetail" + userId, result); return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(schisandraShareDetailDomainService.mydetail(userId))); } catch (Exception e) { return Result.fail(e.getMessage()); @@ -42,30 +50,32 @@ public class SchisandraShareDetailController { /** * 新增分享详细信息 + * * @param schisandraShareDetailDTO * @return */ - @PostMapping("add_detail") - public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) { - Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(),"标题不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(),"图标不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(),"摘要不能为空"); - - SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); - return Result.ok(schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)); - } + @PostMapping("add_detail") + public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) { + Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "摘要不能为空"); + caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId()); + caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId()); + SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); + return Result.ok(schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)); + } - /** - * 查询分享详细信息 - */ - @Cacheable(value = "getdetail",key = "#Id") + /** + * 查询分享详细信息 + */ + @Cacheable(value = "getdetail", key = "#Id") @PostMapping("get_detail") - public Result selectDetail(@RequestParam("Id") String Id){ - try{ + public Result selectDetail(@RequestParam("Id") String Id) { + try { SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id); return Result.ok(resultList); - }catch (Exception e){ + } catch (Exception e) { return Result.fail(); } } @@ -78,10 +88,12 @@ public class SchisandraShareDetailController { * @author: landaiqing * @date: 2024/7/15 下午7:09 */ - @Cacheable(value = "detaillist",key = "#circleId") - @PostMapping("/list") + @PostMapping("list") public Result> selectCircleList(@RequestParam("circleId") String circleId) { + List result = (List) caffeineUtil + .caffeineBuild().getIfPresent("list" + circleId); List resultList = schisandraShareDetailDomainService.list(circleId); + caffeineUtil.caffeineBuild().put("list" + circleId, resultList); List schisandraShareDetailDTOS = SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(resultList); return Result.ok(schisandraShareDetailDTOS); } @@ -96,23 +108,15 @@ public class SchisandraShareDetailController { if (log.isInfoEnabled()) { log.info("SchisandraShareDetailController.add.dto:{}", JSON.toJSONString(schisandraShareDetailDTO)); } - Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUserId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "圈子id不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getUserId(), "用户id不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "描述不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getContent(), "内容不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCommentCount(), "评论总数不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getLikesCount(), "点赞数量不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getViews(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getExtJson(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCreatedBy(), "创建人不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCreatedTime(), "创建时间不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUpdateBy(), "更新人不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUpdateTime(), "更新时间不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getIsDeleted(), "不能为空"); SchisandraShareDetailBO SchisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); + caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId()); + caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId()); return Result.ok(schisandraShareDetailDomainService.add(SchisandraShareDetailBO)); } catch (Exception e) { log.error("SchisandraShareDetailController.register.error:{}", e.getMessage(), e); @@ -166,23 +170,10 @@ public class SchisandraShareDetailController { if (log.isInfoEnabled()) { log.info("SchisandraShareDetailController.delete.dto:{}", JSON.toJSONString(schisandraShareDetailDTO)); } - Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUserId(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getContent(), "内容不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCommentCount(), "评论总数不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getLikesCount(), "点赞数量不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getViews(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getExtJson(), "不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCreatedBy(), "创建人不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getCreatedTime(), "创建时间不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUpdateBy(), "更新人不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getUpdateTime(), "更新时间不能为空"); - Preconditions.checkNotNull(schisandraShareDetailDTO.getIsDeleted(), "不能为空"); + Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "详情id不能为空"); SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); + caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId()); + caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId()); return Result.ok(schisandraShareDetailDomainService.delete(schisandraShareDetailBO)); } catch (Exception e) { log.error("SchisandraShareDetailController.delete.error:{}", e.getMessage(), e); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java index 3a6ccb7..354029b 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java @@ -106,7 +106,7 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe List schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id); List schisandraShareUrlDetailBOS = SchisandraShareUrlDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlDetailS); - Assert.notNull(schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList()),"分享链接为空"); + Assert.notNull(schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList()), "分享链接为空"); List urlIds = schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList()); List schisandraShareUrlS = schisandraShareUrlService.queryByIds(urlIds); @@ -148,12 +148,37 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe schisandraShareUrlDetail.setDetailId(schisandraShareDetail.getId()); schisandraShareUrlDetailService.insert(schisandraShareUrlDetail); } - return insert>0; + return insert > 0; } @Override public List mydetail(String userId) { - return SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailService.queryByuserId(userId)); - } + List schisandraShareDetails = schisandraShareDetailService.queryByuserId(userId); + List shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails); + LinkedList resultList = new LinkedList<>(); + shareDetailBOList.forEach(shareDetailBO -> { + AuthUserInfoEntity userInfo = userRpc.getUserInfo(shareDetailBO.getUserId()); + SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO(); + schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId()); + schisandraShareDetailBO.setIcon(shareDetailBO.getIcon()); + schisandraShareDetailBO.setDescription(shareDetailBO.getDescription()); + schisandraShareDetailBO.setTitle(shareDetailBO.getTitle()); + schisandraShareDetailBO.setId(shareDetailBO.getId()); + schisandraShareDetailBO.setLikesCount(shareDetailBO.getLikesCount()); + schisandraShareDetailBO.setViews(shareDetailBO.getViews()); + schisandraShareDetailBO.setAvatar(userInfo.getAvatar()); + schisandraShareDetailBO.setNickname(userInfo.getNickName()); + schisandraShareDetailBO.setCommentCount(shareDetailBO.getCommentCount()); + List schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(shareDetailBO.getId()); + List shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags); + List tagIds = shareDetailTagBOList.stream().map(SchisandraShareDetailTagBO::getTagId).collect(Collectors.toList()); + List shareTagList = schisandraShareTagsService.queryByIds(tagIds); + List shareTagsBOList = SchisandraShareTagsBOConverter.INSTANCE.convertEntityToBOList(shareTagList); + schisandraShareDetailBO.setTags(shareTagsBOList); + + resultList.add(schisandraShareDetailBO); + }); + return resultList; + } } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java index 2f51fe0..d9d7328 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java @@ -72,6 +72,6 @@ public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailSe @Override public List queryByuserId(String userId) { - return this.schisandraShareDetailDao.selectListByCondition(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.CIRCLE_ID.eq(userId)); + return this.schisandraShareDetailDao.selectListByCondition(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.USER_ID.eq(userId)); } }