From 1e274aa22ae6f5bef251bff2e3ffa4967ed6e2bc 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: Sun, 21 Jul 2024 23:50:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=87=E7=AB=A0=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5isLike=EF=BC=8CisFavor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraShareDetailController.java | 5 +-- .../dto/SchisandraShareDetailDTO.java | 4 +- .../domain/bo/SchisandraShareDetailBO.java | 4 +- .../SchisandraShareDetailDomainService.java | 3 ++ ...chisandraShareDetailDomainServiceImpl.java | 42 +++++++++++++++++++ .../SchisandraUserFavoritesService.java | 2 + .../SchisandraUserLikesDetailService.java | 2 + .../SchisandraUserFavoritesServiceImpl.java | 9 ++++ .../SchisandraUserLikesDetailServiceImpl.java | 11 +++++ 9 files changed, 77 insertions(+), 5 deletions(-) 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 0c6f75a..f8da6b5 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 @@ -174,11 +174,10 @@ public class SchisandraShareDetailController { /** * 查询分享详细信息 */ - @Cacheable(value = "getdetail", key = "#Id") @GetMapping("get_detail") - public Result selectDetail(@RequestParam("Id") String Id) { + public Result selectDetail(@RequestParam("Id") String Id,String userId) { try { - SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id); + SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById2(Id,userId); HashMap map = new HashMap<>(); map.put("Id", Id); map.put("Views", true); 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/dto/SchisandraShareDetailDTO.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/dto/SchisandraShareDetailDTO.java index 79afc84..eeb7f46 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/dto/SchisandraShareDetailDTO.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/dto/SchisandraShareDetailDTO.java @@ -104,7 +104,9 @@ public class SchisandraShareDetailDTO implements Serializable { private String avatar; - private Boolean isLike; + private Boolean isLike = false; + + private Boolean isFavor = false; List tags; diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/bo/SchisandraShareDetailBO.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/bo/SchisandraShareDetailBO.java index f1b47ec..94334ef 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/bo/SchisandraShareDetailBO.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/bo/SchisandraShareDetailBO.java @@ -99,7 +99,9 @@ public class SchisandraShareDetailBO implements Serializable { private String avatar; - private Boolean isLike; + private Boolean isLike = false; + + private Boolean isFavor = false; List tags; diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java index 5d516fa..8ce081c 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java @@ -29,6 +29,8 @@ public interface SchisandraShareDetailDomainService { List list(String circleId,String userId); + SchisandraShareDetailBO getDetailsById2(String Id,String userId); + SchisandraShareDetailBO getDetailsById(String Id); Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO); @@ -39,4 +41,5 @@ public interface SchisandraShareDetailDomainService { Boolean updateDetailViews(String id,Boolean isView); Boolean updateDetailLikes(String id,Boolean isLike); + } 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 b32c875..53c1d6f 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 @@ -42,6 +42,10 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe private SchisandraShareUrlService schisandraShareUrlService; @Resource SchisandraUserLikesCommentService schisandraUserLikesCommentService; + @Resource + SchisandraUserLikesDetailService schisandraUserLikesDetailService; + @Resource + SchisandraUserFavoritesService schisandraUserFavoritesService; @Override public Boolean add(SchisandraShareDetailBO schisandraShareDetailBO) { @@ -101,6 +105,44 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe return resultList; } + @Override + public SchisandraShareDetailBO getDetailsById2(String Id,String userId) { + SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id); + SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBO(schisandraShareDetails); + + SchisandraUserFavorites schisandraUserFavorites = schisandraUserFavoritesService.selectFavor(Id, userId); + if(schisandraUserFavorites!=null){ + schisandraShareDetailBO.setIsFavor(true); + } + + SchisandraUserLikesDetail schisandraUserLikesDetail = schisandraUserLikesDetailService.selectLike(Id, userId); + if(schisandraUserLikesDetail!=null){ + schisandraShareDetailBO.setIsLike(true); + } + + AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareDetailBO.getUserId()); + schisandraShareDetailBO.setAvatar(userInfo.getAvatar()); + schisandraShareDetailBO.setNickname(userInfo.getNickName()); + + List schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id); + List schisandraShareUrlDetailBOS = SchisandraShareUrlDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlDetailS); + 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); + List schisandraShareUrlBOS = SchisandraShareUrlBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlS); + schisandraShareDetailBO.setUrls(schisandraShareUrlBOS); + + List schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(schisandraShareDetailBO.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); + + return schisandraShareDetailBO; + } + @Override public SchisandraShareDetailBO getDetailsById(String Id) { SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserFavoritesService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserFavoritesService.java index 70ac970..ff7a76a 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserFavoritesService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserFavoritesService.java @@ -45,4 +45,6 @@ public interface SchisandraUserFavoritesService { boolean deleteById(Long id); List returnMyFavor(String userId); + + SchisandraUserFavorites selectFavor(String Id,String userId); } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserLikesDetailService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserLikesDetailService.java index 1a78ab0..a5c563e 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserLikesDetailService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraUserLikesDetailService.java @@ -42,5 +42,7 @@ public interface SchisandraUserLikesDetailService { */ boolean deleteById(Long id); + SchisandraUserLikesDetail selectLike(String Id,String userId); + } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserFavoritesServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserFavoritesServiceImpl.java index 1cd94fb..cc687ba 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserFavoritesServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserFavoritesServiceImpl.java @@ -78,5 +78,14 @@ public class SchisandraUserFavoritesServiceImpl implements SchisandraUserFavorit return this.schisandraUserFavoritesDao.selectListByQuery(wrapper); } + @Override + public SchisandraUserFavorites selectFavor(String Id, String userId) { + QueryWrapper wrapper = QueryWrapper.create() + .select(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.ID) + .where(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.ID.eq(Id)) + .where(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.USER_ID.eq(userId)); + return this.schisandraUserFavoritesDao.selectOneByQuery(wrapper); + } + } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserLikesDetailServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserLikesDetailServiceImpl.java index 5cf5734..2ca4231 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserLikesDetailServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraUserLikesDetailServiceImpl.java @@ -1,7 +1,9 @@ package com.schisandra.share.infra.basic.service.impl; +import com.mybatisflex.core.query.QueryWrapper; import com.schisandra.share.infra.basic.entity.SchisandraUserLikesDetail; import com.schisandra.share.infra.basic.dao.SchisandraUserLikesDetailDao; +import com.schisandra.share.infra.basic.entity.table.SchisandraUserLikesDetailTableDef; import com.schisandra.share.infra.basic.service.SchisandraUserLikesDetailService; import org.springframework.stereotype.Service; @@ -63,5 +65,14 @@ public class SchisandraUserLikesDetailServiceImpl implements SchisandraUserLikes return this.schisandraUserLikesDetailDao.deleteById(id) > 0; } + @Override + public SchisandraUserLikesDetail selectLike(String Id, String userId) { + QueryWrapper wrapper = QueryWrapper.create() + .select(SchisandraUserLikesDetailTableDef.SCHISANDRA_USER_LIKES_DETAIL.ID) + .where(SchisandraUserLikesDetailTableDef.SCHISANDRA_USER_LIKES_DETAIL.DETAIL_ID.eq(Id)) + .where(SchisandraUserLikesDetailTableDef.SCHISANDRA_USER_LIKES_DETAIL.USER_ID.eq(userId)); + return this.schisandraUserLikesDetailDao.selectOneByQuery(wrapper); + } + }