奖励的500金币计入排行榜

This commit is contained in:
tianfeng 2026-03-06 17:25:04 +08:00
parent 2a981246ed
commit 201364f809

View File

@ -22,14 +22,22 @@ import com.red.circle.other.app.service.task.TaskService;
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.domain.ranking.RankingActivityType;
import com.red.circle.other.domain.ranking.RankingCycleType;
import com.red.circle.other.domain.ranking.RankingDimension;
import com.red.circle.other.infra.database.mongo.entity.activity.RankingActivityRecord;
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.InviteUserRechargeCommissionService;
import com.red.circle.other.infra.database.rds.service.user.user.InviteUserSummaryService;
import com.red.circle.other.infra.database.rds.service.user.user.RelationshipFriendService;
import com.red.circle.other.infra.gateway.RankingActivityGateway;
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.date.ZonedDateTimeAsiaRiyadhUtils;
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;
@ -39,6 +47,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.Duration;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@ -60,6 +69,9 @@ public class TaskListener implements MessageListener {
private final PropsActivityClient propsActivityCnfClient;
private final UserInviteUserDAO userInviteUserDAO;
private final WalletGoldClient walletGoldClient;
private final InviteUserRechargeCommissionService inviteUserRechargeCommissionService;
private final InviteUserSummaryService inviteUserSummaryService;
private final RankingActivityGateway rankingActivityGateway;
@Override
public Action consume(ConsumerMessage message) {
@ -382,6 +394,7 @@ public class TaskListener implements MessageListener {
UserInviteUser userInviteUser = allInvites.get(0);
// 金币奖励发给邀请人A 500
long gold = 500;
walletGoldClient.changeBalance(GoldReceiptCmd.builder()
.appIncome()
.userId(userInviteUser.getUserId())
@ -389,7 +402,7 @@ public class TaskListener implements MessageListener {
.sysOrigin(userInviteUser.getSysOrigin())
.origin(GoldOrigin.INVITE_USER_REWARDS)
.originDescribe(GoldOrigin.INVITE_USER_REWARDS.getDesc())
.amount(BigDecimal.valueOf(500))
.amount(BigDecimal.valueOf(gold))
.build());
// 金币奖励发给邀请人B 450
@ -403,8 +416,28 @@ public class TaskListener implements MessageListener {
.amount(BigDecimal.valueOf(450))
.build());
inviteUserSummaryService.incrCommission(userInviteUser.getUserId(), BigDecimal.valueOf(gold));
inviteUserRechargeCommissionService.add(SysOriginPlatformEnum.LIKEI.name(), userInviteUser.getUserId(),
userInviteUser.getInviteUserId(), BigDecimal.valueOf(gold));
recordRanking(userInviteUser.getUserId(), gold);
}
private void recordRanking(Long userId, Long quantity) {
RankingActivityRecord record = new RankingActivityRecord();
record.setSysOrigin(SysOriginPlatformEnum.LIKEI.name());
record.setUserId(userId);
record.setUserSex(1);
record.setActivityType(RankingActivityType.INVITE);
record.setCycleType(RankingCycleType.WEEKLY);
record.setCycleKey(ZonedDateTimeAsiaRiyadhUtils.nowWeekMondayToInt().toString());
record.setDimension(RankingDimension.CONSUME_AMOUNT);
record.setExpiredTime(new Timestamp(System.currentTimeMillis() + 30L * 24 * 60 * 60 * 1000));
rankingActivityGateway.accumulateRankingData(record, quantity);
}
private void handleTask7(TaskApprovalEvent eventBody) {
log.warn("处理任务-10 加入3个房间: {}", eventBody);
// // 进入一次 +1