diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentCmdExe.java index 67a2f755..5fb00be5 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentCmdExe.java @@ -20,6 +20,7 @@ import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicMessage; import com.red.circle.other.infra.database.rds.service.dynamic.DynamicCommentService; import com.red.circle.other.infra.database.rds.service.dynamic.DynamicContentService; import com.red.circle.other.infra.database.rds.service.dynamic.DynamicMessageService; +import com.red.circle.other.infra.database.rds.service.dynamic.DynamicPictureService; import com.red.circle.other.inner.asserts.DynamicErrorCode; import com.red.circle.other.inner.model.cmd.user.account.PunishmentAccountCmd; import com.red.circle.tool.core.date.TimestampUtils; @@ -57,6 +58,7 @@ public class DynamicCommentCmdExe { private final DynamicCommentService dynamicCommentService; private final DynamicPopularService dynamicPopularService; private final UserAccountCommon userAccountCommon; + private final DynamicPictureService dynamicPictureService; public DynamicCommentListCO execute(DynamicCommentCmd cmd) { ResponseAssert.isTrue(DynamicErrorCode.CURRENT_LEVEL_IS_TOO_LOW, commentLimit(cmd)); @@ -79,7 +81,10 @@ public class DynamicCommentCmdExe { dynamicPopularService.updateScore(dynamicContent.getId(), dynamicCacheService.getCommentScore(), cmd.getReqSysOrigin().getOrigin(), dynamicContent.getRegion()); - //评论不属于自己的动态,发送消息 + + //content 设置为图片url + cmd.setContent(dynamicPictureService.getFirstNormalPic(dynamicContent.getId())); + if (Objects.isNull(cmd.getToUserId())) { cmd.setToUserId(dynamicContent.getCreateUser()); saveDynamicMessage(cmd, DynamicMessageEnum.COMMENT_DYNAMIC); diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/query/DynamicMessageQryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/query/DynamicMessageQryExe.java index c6026087..e93a06a2 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/query/DynamicMessageQryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/query/DynamicMessageQryExe.java @@ -36,6 +36,7 @@ public class DynamicMessageQryExe { private final DynamicContentService dynamicContentService; private final DynamicMessageService dynamicMessageService; + public PageResult execute(DynamicLimitCmd cmd) { PageResult messages = getMessages(cmd); diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java index 761dd299..ccdf8491 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java @@ -765,7 +765,7 @@ public class GiftCountStrategy implements GiftStrategy { // 保存消息 DynamicMessage message = new DynamicMessage(); - message.setContent(runningWater.getGiftId() + " * " + giftValue.getQuantity()); + message.setContent(giftUrl); message.setDynamicContentId(Long.parseLong(runningWater.getDynamicContentId())); message.setToUserId( dynamicContent.getCreateUser()); message.setCreateUser(runningWater.getUserId()); diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/DynamicPictureService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/DynamicPictureService.java index 8f1ded2d..6411f161 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/DynamicPictureService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/DynamicPictureService.java @@ -118,4 +118,12 @@ public interface DynamicPictureService extends BaseService { * @return ignore */ boolean existsEmptyOrViolation(Long dynamicId); + + /** + * 获取第一张正常图片URL(按sort从小到大,violation=NORMAL) + * + * @param dynamicId 动态id + * @return 图片URL,如果没有正常图片则返回null + */ + String getFirstNormalPic(Long dynamicId); } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/impl/DynamicPictureServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/impl/DynamicPictureServiceImpl.java index d49251b5..15dc24b4 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/impl/DynamicPictureServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/dynamic/impl/DynamicPictureServiceImpl.java @@ -3,6 +3,7 @@ package com.red.circle.other.infra.database.rds.service.dynamic.impl; import com.google.common.collect.Maps; import com.red.circle.common.business.enums.PhotoApprovalStatusEnum; +import com.red.circle.common.business.enums.ViolationEnum; import com.red.circle.framework.mybatis.constant.PageConstant; import com.red.circle.framework.mybatis.service.impl.BaseServiceImpl; import com.red.circle.other.infra.database.rds.dao.dynamic.DynamicPictureDAO; @@ -173,4 +174,17 @@ public class DynamicPictureServiceImpl extends .findFirst().map(photoWall -> Boolean.TRUE).orElse(Boolean.FALSE); } + @Override + public String getFirstNormalPic(Long dynamicId) { + DynamicPicture picture = query() + .select(DynamicPicture::getResourceUrl) + .eq(DynamicPicture::getDynamicId, dynamicId) + .eq(DynamicPicture::getViolation, ViolationEnum.NORMAL.name()) + .orderByAsc(DynamicPicture::getSort) + .last(PageConstant.LIMIT_ONE) + .getOne(); + + return picture != null ? picture.getResourceUrl() : null; + } + }