fix: 返回我的分享修复

This commit is contained in:
sjm
2024-07-20 10:23:20 +08:00
parent 402110081b
commit 91c11bca5a
4 changed files with 76 additions and 55 deletions

View File

@@ -45,6 +45,11 @@ public class SchisandraShareCommentReplyController {
} }
} }
/**
* 返回点赞总数
* @param Id
* @return
*/
@GetMapping("returnlikes") @GetMapping("returnlikes")
public Result<Long> returnlikes(@RequestParam String Id) { public Result<Long> returnlikes(@RequestParam String Id) {
try{ try{

View File

@@ -5,6 +5,7 @@ import com.google.common.base.Preconditions;
import com.schisandra.share.application.convert.SchisandraShareDetailDTOConverter; import com.schisandra.share.application.convert.SchisandraShareDetailDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareDetailDTO; import com.schisandra.share.application.dto.SchisandraShareDetailDTO;
import com.schisandra.share.common.entity.Result; 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.bo.SchisandraShareDetailBO;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService; import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -28,12 +29,19 @@ public class SchisandraShareDetailController {
@Resource @Resource
private SchisandraShareDetailDomainService schisandraShareDetailDomainService; private SchisandraShareDetailDomainService schisandraShareDetailDomainService;
@Resource
CaffeineUtil caffeineUtil;
/** /**
* 获取我的分享 * 获取我的分享
*/ */
@GetMapping("mydetail") @GetMapping("mydetail")
public Result mydetail(@RequestParam("userId") String userId) { public Result mydetail(@RequestParam("userId") String userId) {
try{ try {
List<SchisandraShareDetailBO> result = (List<SchisandraShareDetailBO>) caffeineUtil
.caffeineBuild().getIfPresent("mydetail" + userId);
caffeineUtil.caffeineBuild().put("mydetail" + userId, result);
return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(schisandraShareDetailDomainService.mydetail(userId))); return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(schisandraShareDetailDomainService.mydetail(userId)));
} catch (Exception e) { } catch (Exception e) {
return Result.fail(e.getMessage()); return Result.fail(e.getMessage());
@@ -42,30 +50,32 @@ public class SchisandraShareDetailController {
/** /**
* 新增分享详细信息 * 新增分享详细信息
*
* @param schisandraShareDetailDTO * @param schisandraShareDetailDTO
* @return * @return
*/ */
@PostMapping("add_detail") @PostMapping("add_detail")
public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) { public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) {
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(),"标题不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(),"图标不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(),"摘要不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "摘要不能为空");
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
return Result.ok(schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)); 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") @PostMapping("get_detail")
public Result selectDetail(@RequestParam("Id") String Id){ public Result selectDetail(@RequestParam("Id") String Id) {
try{ try {
SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id); SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id);
return Result.ok(resultList); return Result.ok(resultList);
}catch (Exception e){ } catch (Exception e) {
return Result.fail(); return Result.fail();
} }
} }
@@ -78,10 +88,12 @@ public class SchisandraShareDetailController {
* @author: landaiqing * @author: landaiqing
* @date: 2024/7/15 下午7:09 * @date: 2024/7/15 下午7:09
*/ */
@Cacheable(value = "detaillist",key = "#circleId") @PostMapping("list")
@PostMapping("/list")
public Result<List<SchisandraShareDetailDTO>> selectCircleList(@RequestParam("circleId") String circleId) { public Result<List<SchisandraShareDetailDTO>> selectCircleList(@RequestParam("circleId") String circleId) {
List<SchisandraShareDetailBO> result = (List<SchisandraShareDetailBO>) caffeineUtil
.caffeineBuild().getIfPresent("list" + circleId);
List<SchisandraShareDetailBO> resultList = schisandraShareDetailDomainService.list(circleId); List<SchisandraShareDetailBO> resultList = schisandraShareDetailDomainService.list(circleId);
caffeineUtil.caffeineBuild().put("list" + circleId, resultList);
List<SchisandraShareDetailDTO> schisandraShareDetailDTOS = SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(resultList); List<SchisandraShareDetailDTO> schisandraShareDetailDTOS = SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(resultList);
return Result.ok(schisandraShareDetailDTOS); return Result.ok(schisandraShareDetailDTOS);
} }
@@ -96,23 +108,15 @@ public class SchisandraShareDetailController {
if (log.isInfoEnabled()) { if (log.isInfoEnabled()) {
log.info("SchisandraShareDetailController.add.dto:{}", JSON.toJSONString(schisandraShareDetailDTO)); log.info("SchisandraShareDetailController.add.dto:{}", JSON.toJSONString(schisandraShareDetailDTO));
} }
Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "圈子id不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getUserId(), "用户id不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getUserId(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "描述不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getContent(), "内容不能为空"); 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); SchisandraShareDetailBO SchisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
return Result.ok(schisandraShareDetailDomainService.add(SchisandraShareDetailBO)); return Result.ok(schisandraShareDetailDomainService.add(SchisandraShareDetailBO));
} catch (Exception e) { } catch (Exception e) {
log.error("SchisandraShareDetailController.register.error:{}", e.getMessage(), e); log.error("SchisandraShareDetailController.register.error:{}", e.getMessage(), e);
@@ -166,23 +170,10 @@ public class SchisandraShareDetailController {
if (log.isInfoEnabled()) { if (log.isInfoEnabled()) {
log.info("SchisandraShareDetailController.delete.dto:{}", JSON.toJSONString(schisandraShareDetailDTO)); log.info("SchisandraShareDetailController.delete.dto:{}", JSON.toJSONString(schisandraShareDetailDTO));
} }
Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "不能为空"); Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "详情id不能为空");
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(), "不能为空");
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO); SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
return Result.ok(schisandraShareDetailDomainService.delete(schisandraShareDetailBO)); return Result.ok(schisandraShareDetailDomainService.delete(schisandraShareDetailBO));
} catch (Exception e) { } catch (Exception e) {
log.error("SchisandraShareDetailController.delete.error:{}", e.getMessage(), e); log.error("SchisandraShareDetailController.delete.error:{}", e.getMessage(), e);

View File

@@ -106,7 +106,7 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
List<SchisandraShareUrlDetail> schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id); List<SchisandraShareUrlDetail> schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id);
List<SchisandraShareUrlDetailBO> schisandraShareUrlDetailBOS = SchisandraShareUrlDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlDetailS); List<SchisandraShareUrlDetailBO> 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<String> urlIds = 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<SchisandraShareUrl> schisandraShareUrlS = schisandraShareUrlService.queryByIds(urlIds);
@@ -148,12 +148,37 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
schisandraShareUrlDetail.setDetailId(schisandraShareDetail.getId()); schisandraShareUrlDetail.setDetailId(schisandraShareDetail.getId());
schisandraShareUrlDetailService.insert(schisandraShareUrlDetail); schisandraShareUrlDetailService.insert(schisandraShareUrlDetail);
} }
return insert>0; return insert > 0;
} }
@Override @Override
public List<SchisandraShareDetailBO> mydetail(String userId) { public List<SchisandraShareDetailBO> mydetail(String userId) {
return SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailService.queryByuserId(userId)); List<SchisandraShareDetail> schisandraShareDetails = schisandraShareDetailService.queryByuserId(userId);
} List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
LinkedList<SchisandraShareDetailBO> 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<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(shareDetailBO.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);
resultList.add(schisandraShareDetailBO);
});
return resultList;
}
} }

View File

@@ -72,6 +72,6 @@ public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailSe
@Override @Override
public List<SchisandraShareDetail> queryByuserId(String userId) { public List<SchisandraShareDetail> 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));
} }
} }