From 11c3f6218e290203d1c7df5491c84a1bb6bf783c Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Mon, 2 Feb 2026 18:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=9B=9E=E5=A4=8D=20?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/dynamic/DynamicCommentCmdExe.java | 2 -- .../dynamic/DynamicCommentLikeCmdExe.java | 1 - .../command/dynamic/DynamicLikeCmdExe.java | 3 ++ .../dynamic/query/DynamicMessageQryExe.java | 30 +++++++++++++++++-- .../gift/strategy/GiftCountStrategy.java | 10 ++++++- .../dynamic/DynamicMessageListCO.java | 5 ++++ .../clientobject/dynamic/MessageItemCO.java | 18 +++++++++++ 7 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/MessageItemCO.java 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 5fb00be5..6fbf8321 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 @@ -83,8 +83,6 @@ public class DynamicCommentCmdExe { //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/DynamicCommentLikeCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentLikeCmdExe.java index 333790e1..83217bed 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentLikeCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicCommentLikeCmdExe.java @@ -61,7 +61,6 @@ public class DynamicCommentLikeCmdExe { // 保存点赞评论消息 saveDynamicMessage(cmd, DynamicMessageEnum.LIKE_COMMENT); - dynamicCommon.sendMsg(cmd.getToUserId()); return getIncrQuantity(cmd); } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicLikeCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicLikeCmdExe.java index f18ee87b..5f99ab53 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicLikeCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/dynamic/DynamicLikeCmdExe.java @@ -12,6 +12,7 @@ import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicMessage; import com.red.circle.other.infra.database.rds.service.dynamic.DynamicContentService; import com.red.circle.other.infra.database.rds.service.dynamic.DynamicLikeService; 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.tool.core.date.TimestampUtils; import com.red.circle.tool.core.num.NumUtils; @@ -38,6 +39,7 @@ public class DynamicLikeCmdExe { private final DynamicContentService dynamicContentService; private final DynamicPopularService dynamicPopularService; private final DynamicMessageService dynamicMessageService; + private final DynamicPictureService dynamicPictureService; public Long execute(DynamicLikeCmd cmd) { @@ -110,6 +112,7 @@ public class DynamicLikeCmdExe { DynamicMessage message = new DynamicMessage(); message.setId(IdWorkerUtils.getId()); message.setDynamicContentId(cmd.getDynamicId()); + message.setContent(dynamicPictureService.getFirstNormalPic(cmd.getDynamicId())); message.setType(type.name()); message.setToUserId(content.getCreateUser()); message.setCreateTime(TimestampUtils.now()); 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 20ff6af3..756eee93 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 @@ -1,9 +1,12 @@ package com.red.circle.other.app.command.dynamic.query; -import com.google.common.collect.Lists; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.StringUtils; import com.red.circle.common.business.enums.DynamicMessageEnum; import com.red.circle.framework.dto.PageResult; import com.red.circle.other.app.dto.clientobject.dynamic.DynamicMessageListCO; +import com.red.circle.other.app.dto.clientobject.dynamic.MessageItemCO; import com.red.circle.other.app.dto.cmd.dynamic.DynamicLimitCmd; import com.red.circle.other.domain.gateway.user.UserProfileGateway; import com.red.circle.other.domain.model.user.UserProfile; @@ -12,7 +15,7 @@ import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicMessage; 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.tool.core.collection.CollectionUtils; -import java.util.List; + import java.util.Map; import java.util.Objects; import java.util.Set; @@ -59,9 +62,10 @@ public class DynamicMessageQryExe { messageCO.setType(message.getType()); messageCO.setUserId(message.getCreateUser()); messageCO.setCreateTime(message.getCreateTime()); - messageCO.setMessageContent(message.getContent()); messageCO.setDynamicId(message.getDynamicContentId()); messageCO.setDynamicContent(dynamicContent.getContent()); + // 处理messageContent 和 giftCount + parseMessageContent(messageCO, message); if (DynamicMessageEnum.isReportRelated(message.getType())) { return messageCO; @@ -81,6 +85,26 @@ public class DynamicMessageQryExe { } + private void parseMessageContent(DynamicMessageListCO co, DynamicMessage message) { + if (message == null || co == null) { + return; + } + if (StringUtils.isBlank(message.getContent())) { + return; + } + + if (!DynamicMessageEnum.DYNAMIC_GIFT.name().equals(message.getType())) { + co.setMessageContent(message.getContent()); + return; + } + try { + MessageItemCO messageItemCO = JSON.parseObject(message.getContent(), MessageItemCO.class); + co.setMessageContent(messageItemCO.getMessageContent()); + co.setGiftCount(messageItemCO.getGiftCount()); + } catch (Exception ignored) { + } + } + private Map getContentMap(PageResult messages) { return dynamicContentService .mapByIds(messages.getRecords().stream().map(DynamicMessage::getDynamicContentId).collect( 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 ccdf8491..3719887b 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 @@ -15,6 +15,7 @@ import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.UserMqMessageService; import com.red.circle.other.app.common.game.GameIndoorTeamPkCommon; import com.red.circle.other.app.common.gift.GameLuckyGiftCommon; +import com.red.circle.other.app.dto.clientobject.dynamic.MessageItemCO; import com.red.circle.other.app.dto.clientobject.game.GameRoomPkUserCO; import com.red.circle.other.app.dto.cmd.SpinsTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.dynamic.DynamicLikeCmd; @@ -765,7 +766,7 @@ public class GiftCountStrategy implements GiftStrategy { // 保存消息 DynamicMessage message = new DynamicMessage(); - message.setContent(giftUrl); + message.setContent(buildContent(giftUrl, giftValue.getQuantity())); message.setDynamicContentId(Long.parseLong(runningWater.getDynamicContentId())); message.setToUserId( dynamicContent.getCreateUser()); message.setCreateUser(runningWater.getUserId()); @@ -776,6 +777,13 @@ public class GiftCountStrategy implements GiftStrategy { } } + private String buildContent(String giftUrl, Integer quantity) { + MessageItemCO messageItemCO = new MessageItemCO(); + messageItemCO.setGiftCount(quantity); + messageItemCO.setMessageContent(giftUrl); + return JSON.toJSONString(messageItemCO); + } + private void saveDynamicMessage(DynamicMessage message, DynamicMessageEnum type) { message.setId(IdWorkerUtils.getId()); message.setType(type.name()); diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/DynamicMessageListCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/DynamicMessageListCO.java index 2bfa9c72..74e15ac9 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/DynamicMessageListCO.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/DynamicMessageListCO.java @@ -67,6 +67,11 @@ public class DynamicMessageListCO extends ClientObject { */ private String messageContent; + /** + * 礼物数量 + */ + private Integer giftCount; + /** * 动态内容. */ diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/MessageItemCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/MessageItemCO.java new file mode 100644 index 00000000..c44c1aa0 --- /dev/null +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/dynamic/MessageItemCO.java @@ -0,0 +1,18 @@ +package com.red.circle.other.app.dto.clientobject.dynamic; + +import lombok.Data; + +@Data +public class MessageItemCO { + + /** + * 消息内容. + */ + private String messageContent; + + /** + * 礼物数量 + */ + private Integer giftCount; + +}