feat: 文章详情新增字段isLike,isFavor

This commit is contained in:
sjm
2024-07-21 23:50:56 +08:00
parent 5823be720f
commit 1e274aa22a
9 changed files with 77 additions and 5 deletions

View File

@@ -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<String, Object> map = new HashMap<>();
map.put("Id", Id);
map.put("Views", true);

View File

@@ -104,7 +104,9 @@ public class SchisandraShareDetailDTO implements Serializable {
private String avatar;
private Boolean isLike;
private Boolean isLike = false;
private Boolean isFavor = false;
List<SchisandraShareTagsDTO> tags;

View File

@@ -99,7 +99,9 @@ public class SchisandraShareDetailBO implements Serializable {
private String avatar;
private Boolean isLike;
private Boolean isLike = false;
private Boolean isFavor = false;
List<SchisandraShareTagsBO> tags;

View File

@@ -29,6 +29,8 @@ public interface SchisandraShareDetailDomainService {
List<SchisandraShareDetailBO> 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);
}

View File

@@ -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<SchisandraShareUrlDetail> schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id);
List<SchisandraShareUrlDetailBO> schisandraShareUrlDetailBOS = SchisandraShareUrlDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlDetailS);
Assert.notNull(schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList()), "分享链接为空");
List<String> urlIds = schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList());
List<SchisandraShareUrl> schisandraShareUrlS = schisandraShareUrlService.queryByIds(urlIds);
List<SchisandraShareUrlBO> schisandraShareUrlBOS = SchisandraShareUrlBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlS);
schisandraShareDetailBO.setUrls(schisandraShareUrlBOS);
List<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(schisandraShareDetailBO.getId());
List<SchisandraShareDetailTagBO> shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags);
List<String> tagIds = shareDetailTagBOList.stream().map(SchisandraShareDetailTagBO::getTagId).collect(Collectors.toList());
List<SchisandraShareTags> shareTagList = schisandraShareTagsService.queryByIds(tagIds);
List<SchisandraShareTagsBO> shareTagsBOList = SchisandraShareTagsBOConverter.INSTANCE.convertEntityToBOList(shareTagList);
schisandraShareDetailBO.setTags(shareTagsBOList);
return schisandraShareDetailBO;
}
@Override
public SchisandraShareDetailBO getDetailsById(String Id) {
SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id);

View File

@@ -45,4 +45,6 @@ public interface SchisandraUserFavoritesService {
boolean deleteById(Long id);
List<SchisandraUserFavorites> returnMyFavor(String userId);
SchisandraUserFavorites selectFavor(String Id,String userId);
}

View File

@@ -42,5 +42,7 @@ public interface SchisandraUserLikesDetailService {
*/
boolean deleteById(Long id);
SchisandraUserLikesDetail selectLike(String Id,String userId);
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}