From b937f5762bde1ecb3a64ca259dcc5c04c487f888 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Fri, 6 Mar 2026 12:06:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E6=96=B0=E5=A5=96=E5=8A=B1=20?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=BB=99=E7=94=A8=E6=88=B7450=E5=92=8C500?= =?UTF-8?q?=E9=87=91=E5=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../other/app/listener/task/TaskListener.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java index e8489605..9e59eed3 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java @@ -1,5 +1,6 @@ package com.red.circle.other.app.listener.task; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.base.Throwables; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; @@ -22,12 +23,17 @@ import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils; import com.red.circle.other.domain.admintask.AdminTaskType; import com.red.circle.other.domain.gateway.user.ability.InviteUserGateway; import com.red.circle.other.infra.database.rds.dao.task.UserTaskProgressDAO; +import com.red.circle.other.infra.database.rds.dao.user.user.UserInviteUserDAO; import com.red.circle.other.infra.database.rds.entity.task.UserTaskProgress; +import com.red.circle.other.infra.database.rds.entity.user.user.UserInviteUser; import com.red.circle.other.infra.database.rds.service.user.user.RelationshipFriendService; import com.red.circle.other.inner.endpoint.activity.PropsActivityClient; import com.red.circle.other.inner.model.cmd.activity.SendActivityRewardCmd; import com.red.circle.tool.core.date.TimestampUtils; import com.red.circle.tool.core.sequence.IdWorkerUtils; +import com.red.circle.wallet.inner.endpoint.wallet.WalletGoldClient; +import com.red.circle.wallet.inner.model.cmd.GoldReceiptCmd; +import com.red.circle.wallet.inner.model.enums.GoldOrigin; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -52,6 +58,8 @@ public class TaskListener implements MessageListener { private final AdminTaskService adminTaskService; private final UserTaskProgressDAO userTaskProgressDAO; private final PropsActivityClient propsActivityCnfClient; + private final UserInviteUserDAO userInviteUserDAO; + private final WalletGoldClient walletGoldClient; @Override public Action consume(ConsumerMessage message) { @@ -356,6 +364,45 @@ public class TaskListener implements MessageListener { .setOrigin(SendPropsOrigin.DAILY_TASK_REWARD) ); + // 给邀请人和被邀请人发送金币奖励 + handleInviteUserGold(eventBody.getUserId()); + + } + + private void handleInviteUserGold(Long userId) { + List allInvites = userInviteUserDAO.selectList( + new LambdaQueryWrapper() + .eq(UserInviteUser::getInviteUserId, userId) + .orderByDesc(UserInviteUser::getCreateTime) + ); + + if (CollectionUtils.isEmpty(allInvites)) { + return; + } + UserInviteUser userInviteUser = allInvites.get(0); + + // 金币奖励发给邀请人A 500 + walletGoldClient.changeBalance(GoldReceiptCmd.builder() + .appIncome() + .userId(userInviteUser.getUserId()) + .eventId(userInviteUser.getUserId()) + .sysOrigin(userInviteUser.getSysOrigin()) + .origin(GoldOrigin.INVITE_USER_REWARDS) + .originDescribe(GoldOrigin.INVITE_USER_REWARDS.getDesc()) + .amount(BigDecimal.valueOf(500)) + .build()); + + // 金币奖励发给邀请人B 450 + walletGoldClient.changeBalance(GoldReceiptCmd.builder() + .appIncome() + .userId(userInviteUser.getInviteUserId()) + .eventId(userInviteUser.getInviteUserId()) + .sysOrigin(userInviteUser.getSysOrigin()) + .origin(GoldOrigin.INVITE_USER_REWARDS) + .originDescribe(GoldOrigin.INVITE_USER_REWARDS.getDesc()) + .amount(BigDecimal.valueOf(450)) + .build()); + } private void handleTask7(TaskApprovalEvent eventBody) {