RoomDailyTaskType 改为 RoomDailyTaskCode

This commit is contained in:
tianfeng 2026-03-04 17:55:56 +08:00
parent cc0e267aed
commit bbfec84001
8 changed files with 60 additions and 90 deletions

View File

@ -1,61 +1,65 @@
package com.red.circle.other.inner.enums.task; package com.red.circle.other.inner.enums.task;
/** /**
* 每日任务类型. * 每日任务 Code.
* *
* @author tf * @author tf
*/ */
public enum RoomDailyTaskType { public enum RoomDailyTaskCode {
// ==================== Personal Tasks ==================== // ==================== Personal Tasks ====================
/** 游戏消费 */
PERSONAL_GAME_CONSUME,
/** 进入他人房间活跃 */ /** 进入他人房间活跃 */
ACTIVE_IN_ROOM, PERSONAL_ACTIVE_IN_ROOM,
/** 进入他人房间上麦 */ /** 进入他人房间上麦 */
MIC_IN_ROOM, PERSONAL_MIC_IN_ROOM,
/** 给用户送礼 */ /** 给用户送礼 */
SEND_GIFT, PERSONAL_SEND_GIFT,
/** 送幸运礼物赢得金币数 */ /** 送幸运礼物赢得金币数 */
LUCKY_GIFT_GOLD, PERSONAL_LUCKY_GIFT_GOLD,
/** 送魔法礼物赢得金币数 */ /** 送魔法礼物赢得金币数 */
MAGIC_GIFT_GOLD, PERSONAL_MAGIC_GIFT_GOLD,
/** 游戏消费 */
GAME_CONSUME,
// ==================== Room Owner Tasks ==================== // ==================== Room Owner Tasks ====================
/** 房间新增成员数 */ /** 房主在房间上麦 */
NEW_MEMBER, ROOM_OWNER_MIC_TIME,
/** 房主发红包 */
OWNER_RED_PACKET,
/** 房主给用户送礼物 */
OWNER_SEND_GIFT,
/** 房主累计送礼金币数 */
OWNER_GIFT_GOLD,
/** 房间用户累计送礼金币数 */
ROOM_GIFT_GOLD,
/** 累计在麦位的用户数(按时长区分档位) */
MIC_USER_DURATION,
/** 房间内同时在线用户数 */
ONLINE_USER_COUNT,
/** 房主成功邀请用户上麦 */ /** 房主成功邀请用户上麦 */
OWNER_INVITE_MIC, ROOM_OWNER_INVITE_MIC,
/** 房主在房间上麦 */ /** 房间内同时在线用户数 */
OWNER_MIC_TIME, ROOM_ONLINE_USER_COUNT,
; /** 累计在麦位30分钟的用户数 */
ROOM_MIC_USER_30MIN,
/** 累计在麦位60分钟的用户数 */
ROOM_MIC_USER_60MIN,
/** 累计在麦位120分钟的用户数 */
ROOM_MIC_USER_120MIN,
/** 房间用户累计送礼金币数 */
ROOM_USER_SEND_GIFT_GOLD,
/** 房主累计送礼金币数 */
ROOM_OWNER_SEND_GIFT_GOLD,
/** 房主给用户送礼物 */
ROOM_OWNER_SEND_GIFT_USER,
/** 房主发1次红包 */
ROOM_OWNER_SEND_RED_PACKET,
/** 房间新增成员数 */
ROOM_NEW_MEMBER,
} }

View File

@ -2,7 +2,6 @@ package com.red.circle.other.adapter.app.game.party3rd;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.component.game.baishun.request.BaishunChangeCurrencyRequest;
import com.red.circle.component.game.hkys.GameHkysService; import com.red.circle.component.game.hkys.GameHkysService;
import com.red.circle.component.game.hkys.props.GameHkysProperties; import com.red.circle.component.game.hkys.props.GameHkysProperties;
import com.red.circle.component.game.hkys.request.HkysUserCoinUpdate; import com.red.circle.component.game.hkys.request.HkysUserCoinUpdate;
@ -11,9 +10,6 @@ import com.red.circle.component.game.hkys.response.HkysResponse;
import com.red.circle.component.game.hkys.response.HkysUserProfileResponse; import com.red.circle.component.game.hkys.response.HkysUserProfileResponse;
import com.red.circle.component.game.hkys.response.HyksErrorEnum; import com.red.circle.component.game.hkys.response.HyksErrorEnum;
import com.red.circle.component.game.hkys.response.UpdateUserCoinResponse; import com.red.circle.component.game.hkys.response.UpdateUserCoinResponse;
import com.red.circle.component.game.hotgame.response.HotGameCoin;
import com.red.circle.component.game.hotgame.response.HotGameErrorEnum;
import com.red.circle.component.game.hotgame.response.HotGameResponse;
import com.red.circle.component.redis.service.RedisService; import com.red.circle.component.redis.service.RedisService;
import com.red.circle.external.inner.endpoint.message.ImGroupClient; import com.red.circle.external.inner.endpoint.message.ImGroupClient;
import com.red.circle.external.inner.model.cmd.message.BroadcastGroupMsgBodyCmd; import com.red.circle.external.inner.model.cmd.message.BroadcastGroupMsgBodyCmd;
@ -21,7 +17,6 @@ import com.red.circle.external.inner.model.enums.message.GroupMessageTypeEnum;
import com.red.circle.framework.core.dto.ReqSysOrigin; import com.red.circle.framework.core.dto.ReqSysOrigin;
import com.red.circle.framework.core.security.UserCredential; import com.red.circle.framework.core.security.UserCredential;
import com.red.circle.framework.web.annotation.IgnoreResultResponse; import com.red.circle.framework.web.annotation.IgnoreResultResponse;
import com.red.circle.mq.business.model.event.task.TaskApprovalEvent;
import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
import com.red.circle.order.inner.model.enums.MonthlyRechargeType; import com.red.circle.order.inner.model.enums.MonthlyRechargeType;
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
@ -30,12 +25,10 @@ import com.red.circle.other.app.dto.cmd.game.GameLxwlUpdateBalanceCmd;
import com.red.circle.other.app.dto.cmd.game.GameLxwlUserInfoCmd; import com.red.circle.other.app.dto.cmd.game.GameLxwlUserInfoCmd;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
import com.red.circle.other.app.enums.violation.GameOriginEnum; import com.red.circle.other.app.enums.violation.GameOriginEnum;
import com.red.circle.other.app.enums.violation.ViolationTypeEnum;
import com.red.circle.other.app.service.activity.ActivityRechargeTicketService; import com.red.circle.other.app.service.activity.ActivityRechargeTicketService;
import com.red.circle.other.app.service.activity.RankingActivityService; import com.red.circle.other.app.service.activity.RankingActivityService;
import com.red.circle.other.app.service.game.GameActivityService; import com.red.circle.other.app.service.game.GameActivityService;
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService; import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils;
import com.red.circle.other.app.util.OfficialNoticeUtils; import com.red.circle.other.app.util.OfficialNoticeUtils;
import com.red.circle.other.domain.game.GameRankingIncrementCmd; import com.red.circle.other.domain.game.GameRankingIncrementCmd;
import com.red.circle.other.domain.gateway.game.GameRankingGateway; import com.red.circle.other.domain.gateway.game.GameRankingGateway;
@ -48,10 +41,8 @@ import com.red.circle.other.infra.database.cache.service.other.GameListCacheServ
import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig; import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;
import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService;
import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.enums.team.TeamPolicyTypeEnum;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.LocalDateTimeUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import com.red.circle.tool.core.parse.DataTypeUtils; import com.red.circle.tool.core.parse.DataTypeUtils;
import com.red.circle.tool.core.text.StringUtils; import com.red.circle.tool.core.text.StringUtils;
@ -60,11 +51,9 @@ import com.red.circle.tool.crypto.SecurityUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -204,7 +193,7 @@ public class GameHkysRestController {
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(cmd.getCoin()), MonthlyRechargeType.UNDEFINED); activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(cmd.getCoin()), MonthlyRechargeType.UNDEFINED);
} else { } else {
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME; RoomDailyTaskCode taskType = RoomDailyTaskCode.PERSONAL_GAME_CONSUME;
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(userId) .setUserId(userId)

View File

@ -5,7 +5,6 @@ import com.red.circle.component.redis.service.RedisService;
import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.mq.business.model.event.task.TaskApprovalEvent; import com.red.circle.mq.business.model.event.task.TaskApprovalEvent;
import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
import com.red.circle.other.app.dto.clientobject.team.TeamMemberWorkDailyTargetCO;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService; import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
import com.red.circle.other.app.service.task.TaskService; import com.red.circle.other.app.service.task.TaskService;
@ -18,17 +17,14 @@ import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberTar
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService; import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.inner.asserts.RoomErrorCode; import com.red.circle.other.inner.asserts.RoomErrorCode;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.enums.team.TeamMemberTargetIndex; import com.red.circle.other.inner.enums.team.TeamMemberTargetIndex;
import com.red.circle.tool.core.date.LocalDateTimeUtils; import com.red.circle.tool.core.date.LocalDateTimeUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import com.red.circle.tool.core.parse.DataTypeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -82,10 +78,10 @@ public class TeamMemberHeartbeatCmdExe {
// 在他人房间上麦 // 在他人房间上麦
if (!oneselfRoom) { if (!oneselfRoom) {
updateDailyTask(cmd, RoomDailyTaskType.MIC_IN_ROOM); updateDailyTask(cmd, RoomDailyTaskCode.PERSONAL_MIC_IN_ROOM);
} else { } else {
// 房主自己上麦 // 房主自己上麦
updateDailyTask(cmd, RoomDailyTaskType.OWNER_MIC_TIME); updateDailyTask(cmd, RoomDailyTaskCode.ROOM_OWNER_MIC_TIME);
} }
@ -102,7 +98,7 @@ public class TeamMemberHeartbeatCmdExe {
incrEffectiveDay(cmd); incrEffectiveDay(cmd);
} }
private void updateDailyTask(AppRoomIdCmd cmd, RoomDailyTaskType taskType) { private void updateDailyTask(AppRoomIdCmd cmd, RoomDailyTaskCode taskType) {
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(cmd.requiredReqUserId()) .setUserId(cmd.requiredReqUserId())

View File

@ -61,7 +61,7 @@ import com.red.circle.other.inner.enums.game.luckgift.GameLuckyGiftModeEnum;
import com.red.circle.other.inner.enums.game.luckgift.GameLuckyGiftMultipleEnum; import com.red.circle.other.inner.enums.game.luckgift.GameLuckyGiftMultipleEnum;
import com.red.circle.other.inner.enums.material.GiftTabEnum; import com.red.circle.other.inner.enums.material.GiftTabEnum;
import com.red.circle.other.inner.enums.material.PropsCommodityType; import com.red.circle.other.inner.enums.material.PropsCommodityType;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.model.dto.material.GiftConfigDTO; import com.red.circle.other.inner.model.dto.material.GiftConfigDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.other.inner.model.dto.user.props.UserPropsResourcesDTO; import com.red.circle.other.inner.model.dto.user.props.UserPropsResourcesDTO;
@ -262,9 +262,9 @@ public class GameLuckyGiftCommon {
giftMqMessage.sendGift(timeId, giftBatchEvent); giftMqMessage.sendGift(timeId, giftBatchEvent);
updateRoomDailyTask(param, rewardAmount, RoomDailyTaskType.MAGIC_GIFT_GOLD); updateRoomDailyTask(param, rewardAmount, RoomDailyTaskCode.PERSONAL_MAGIC_GIFT_GOLD);
} else { } else {
updateRoomDailyTask(param, rewardAmount, RoomDailyTaskType.LUCKY_GIFT_GOLD); updateRoomDailyTask(param, rewardAmount, RoomDailyTaskCode.PERSONAL_LUCKY_GIFT_GOLD);
} }
// 累加用户获得的金币并发送抽奖券 // 累加用户获得的金币并发送抽奖券
@ -273,7 +273,7 @@ public class GameLuckyGiftCommon {
} }
private void updateRoomDailyTask(GameLuckyGiftParam param, Long rewardAmount, RoomDailyTaskType taskType) { private void updateRoomDailyTask(GameLuckyGiftParam param, Long rewardAmount, RoomDailyTaskCode taskType) {
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(param.getUserId()) .setUserId(param.getUserId())

View File

@ -7,10 +7,7 @@ import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.common.business.enums.DynamicMessageEnum; import com.red.circle.common.business.enums.DynamicMessageEnum;
import com.red.circle.component.redis.service.RedisService; import com.red.circle.component.redis.service.RedisService;
import com.red.circle.external.inner.endpoint.message.OfficialNoticeClient; import com.red.circle.external.inner.endpoint.message.OfficialNoticeClient;
import com.red.circle.external.inner.model.cmd.message.notice.official.NoticeExtTemplateTypeCmd;
import com.red.circle.external.inner.model.enums.message.OfficialNoticeTypeEnum;
import com.red.circle.mq.business.model.event.gift.OfflineProcessGiftEvent; import com.red.circle.mq.business.model.event.gift.OfflineProcessGiftEvent;
import com.red.circle.mq.business.model.event.task.TaskApprovalEvent;
import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService; 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.game.GameIndoorTeamPkCommon;
@ -18,7 +15,6 @@ 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.dynamic.MessageItemCO;
import com.red.circle.other.app.dto.clientobject.game.GameRoomPkUserCO; 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.SpinsTaskProgressUpdateCmd;
import com.red.circle.other.app.dto.cmd.dynamic.DynamicLikeCmd;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
import com.red.circle.other.app.service.SpinsUserTaskProgressService; import com.red.circle.other.app.service.SpinsUserTaskProgressService;
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService; import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
@ -49,7 +45,6 @@ import com.red.circle.other.infra.database.mongo.service.sys.ActivityConfigServi
import com.red.circle.other.infra.database.mongo.service.user.count.UserGuardCountService; import com.red.circle.other.infra.database.mongo.service.user.count.UserGuardCountService;
import com.red.circle.other.infra.database.mongo.service.user.count.WeekFriendshipCardCountService; import com.red.circle.other.infra.database.mongo.service.user.count.WeekFriendshipCardCountService;
import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicContent; import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicContent;
import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicGift;
import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicMessage; import com.red.circle.other.infra.database.rds.entity.dynamic.DynamicMessage;
import com.red.circle.other.infra.database.rds.entity.game.GameRoomPkIntegralRecord; import com.red.circle.other.infra.database.rds.entity.game.GameRoomPkIntegralRecord;
import com.red.circle.other.infra.database.rds.entity.game.GameRoomPkRecord; import com.red.circle.other.infra.database.rds.entity.game.GameRoomPkRecord;
@ -73,15 +68,12 @@ import com.red.circle.other.infra.database.rds.service.user.user.CpValueService;
import com.red.circle.other.infra.database.rds.service.user.user.FriendshipCardService; import com.red.circle.other.infra.database.rds.service.user.user.FriendshipCardService;
import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.game.GamePkTypeEnum; import com.red.circle.other.inner.enums.game.GamePkTypeEnum;
import com.red.circle.other.inner.enums.material.BadgeKeyEnum;
import com.red.circle.other.inner.enums.material.GiftCurrencyType; import com.red.circle.other.inner.enums.material.GiftCurrencyType;
import com.red.circle.other.inner.enums.material.GiftSpecialEnum; import com.red.circle.other.inner.enums.material.GiftSpecialEnum;
import com.red.circle.other.inner.enums.material.GiftTabEnum; import com.red.circle.other.inner.enums.material.GiftTabEnum;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.model.dto.material.GiftConfigDTO; import com.red.circle.other.inner.model.dto.material.GiftConfigDTO;
import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.collection.MapBuilder;
import com.red.circle.tool.core.date.LocalDateTimeUtils;
import com.red.circle.tool.core.date.TimestampUtils; import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import com.red.circle.tool.core.json.JacksonUtils; import com.red.circle.tool.core.json.JacksonUtils;
@ -97,6 +89,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -144,6 +137,7 @@ public class GiftCountStrategy implements GiftStrategy {
private final SpinsUserTaskProgressService spinsUserTaskProgressService; private final SpinsUserTaskProgressService spinsUserTaskProgressService;
private final RoomDailyTaskProgressService roomDailyTaskProgressService; private final RoomDailyTaskProgressService roomDailyTaskProgressService;
private final RedisService redisService; private final RedisService redisService;
private final RedisTemplate redisTemplate;
private final DynamicContentService dynamicContentService; private final DynamicContentService dynamicContentService;
private final DynamicGiftService dynamicGiftService; private final DynamicGiftService dynamicGiftService;
private final DynamicMessageService dynamicMessageService; private final DynamicMessageService dynamicMessageService;
@ -717,14 +711,15 @@ public class GiftCountStrategy implements GiftStrategy {
} }
private void handleSendGiftTask(Long userId, List<Long> acceptUserIds) { private void handleSendGiftTask(Long userId, List<Long> acceptUserIds) {
RoomDailyTaskType taskType = RoomDailyTaskType.SEND_GIFT; RoomDailyTaskCode taskType = RoomDailyTaskCode.PERSONAL_SEND_GIFT;
String redisKey = "room:daily:task:send_gift:users:" + userId + ":" String redisKey = "room:daily:task:send_gift:users:" + userId + ":"
+ ZonedDateTimeAsiaRiyadhUtils.now().toLocalDate(); + ZonedDateTimeAsiaRiyadhUtils.now().toLocalDate();
// 将本次接收用户加入 set返回新增数量已存在的不计入 // 将本次接收用户加入 set返回新增数量已存在的不计入
long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight(); long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight();
for (Long acceptUserId : acceptUserIds) { for (Long acceptUserId : acceptUserIds) {
redisService.setAdd(redisKey, acceptUserId, expireSeconds, TimeUnit.SECONDS); redisTemplate.opsForSet().add(redisKey, acceptUserId);
redisService.expire(redisKey, expireSeconds, TimeUnit.SECONDS);
} }
// 获取去重后的总人数 // 获取去重后的总人数

View File

@ -1,6 +1,5 @@
package com.red.circle.other.app.service.game; package com.red.circle.other.app.service.game;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.red.circle.auth.inner.endpoint.AuthClient; import com.red.circle.auth.inner.endpoint.AuthClient;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.component.game.baishun.GameBaishunService; import com.red.circle.component.game.baishun.GameBaishunService;
@ -26,17 +25,13 @@ import com.red.circle.mq.business.model.event.task.TaskApprovalEvent;
import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
import com.red.circle.order.inner.model.enums.MonthlyRechargeType; import com.red.circle.order.inner.model.enums.MonthlyRechargeType;
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
import com.red.circle.other.app.dto.cmd.SpinsTaskProgressUpdateCmd;
import com.red.circle.other.app.dto.cmd.activity.RankingDataUpdateCmd; import com.red.circle.other.app.dto.cmd.activity.RankingDataUpdateCmd;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
import com.red.circle.other.app.enums.violation.GameOriginEnum; import com.red.circle.other.app.enums.violation.GameOriginEnum;
import com.red.circle.other.app.service.SpinsUserTaskProgressService;
import com.red.circle.other.app.service.activity.ActivityRechargeService;
import com.red.circle.other.app.service.activity.ActivityRechargeTicketService; import com.red.circle.other.app.service.activity.ActivityRechargeTicketService;
import com.red.circle.other.app.service.activity.RankingActivityService; import com.red.circle.other.app.service.activity.RankingActivityService;
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService; import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
import com.red.circle.other.app.service.task.TaskService; import com.red.circle.other.app.service.task.TaskService;
import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils;
import com.red.circle.other.app.util.OfficialNoticeUtils; import com.red.circle.other.app.util.OfficialNoticeUtils;
import com.red.circle.other.domain.game.GameRankingIncrementCmd; import com.red.circle.other.domain.game.GameRankingIncrementCmd;
import com.red.circle.other.domain.gateway.game.GameRankingGateway; import com.red.circle.other.domain.gateway.game.GameRankingGateway;
@ -49,7 +44,7 @@ import com.red.circle.other.infra.database.cache.service.other.GameListCacheServ
import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig; import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;
import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService;
import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.DateUtils; import com.red.circle.tool.core.date.DateUtils;
import com.red.circle.tool.core.date.LocalDateTimeUtils; import com.red.circle.tool.core.date.LocalDateTimeUtils;
@ -233,7 +228,7 @@ public class GameBaishunServiceImpl implements GameBaishunService {
// 累加用户获得的金币并发送抽奖券 // 累加用户获得的金币并发送抽奖券
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, request.getCurrencyDiff(), MonthlyRechargeType.UNDEFINED); activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, request.getCurrencyDiff(), MonthlyRechargeType.UNDEFINED);
} else { } else {
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME; RoomDailyTaskCode taskType = RoomDailyTaskCode.PERSONAL_GAME_CONSUME;
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(userId) .setUserId(userId)

View File

@ -1,9 +1,7 @@
package com.red.circle.other.app.service.game; package com.red.circle.other.app.service.game;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.component.game.baishun.request.BaishunChangeCurrencyRequest;
import com.red.circle.component.game.hotgame.request.HotGameUserCoinUpdate; import com.red.circle.component.game.hotgame.request.HotGameUserCoinUpdate;
import com.red.circle.component.game.hotgame.request.HotGameUserProfileQuery; import com.red.circle.component.game.hotgame.request.HotGameUserProfileQuery;
import com.red.circle.component.game.hotgame.response.HotGameCoin; import com.red.circle.component.game.hotgame.response.HotGameCoin;
@ -17,22 +15,17 @@ import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.dto.ReqSysOrigin; import com.red.circle.framework.core.dto.ReqSysOrigin;
import com.red.circle.framework.core.exception.ResponseException; import com.red.circle.framework.core.exception.ResponseException;
import com.red.circle.framework.core.security.UserCredential; import com.red.circle.framework.core.security.UserCredential;
import com.red.circle.mq.business.model.event.task.TaskApprovalEvent;
import com.red.circle.mq.rocket.business.producer.TaskMqMessage; import com.red.circle.mq.rocket.business.producer.TaskMqMessage;
import com.red.circle.order.inner.model.enums.MonthlyRechargeType; import com.red.circle.order.inner.model.enums.MonthlyRechargeType;
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
import com.red.circle.other.app.dto.clientobject.game.HotGameUpdateRequest;
import com.red.circle.other.app.dto.cmd.activity.RankingDataUpdateCmd; import com.red.circle.other.app.dto.cmd.activity.RankingDataUpdateCmd;
import com.red.circle.other.app.dto.cmd.game.GameLxwlUpdateBalanceCmd;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd; import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
import com.red.circle.other.app.enums.violation.GameOriginEnum; import com.red.circle.other.app.enums.violation.GameOriginEnum;
import com.red.circle.other.app.service.activity.ActivityRechargeTicketService; import com.red.circle.other.app.service.activity.ActivityRechargeTicketService;
import com.red.circle.other.app.service.activity.RankingActivityService; import com.red.circle.other.app.service.activity.RankingActivityService;
import com.red.circle.other.app.service.game.GameActivityService;
import com.red.circle.other.app.service.game.override.domain.HotGameUserProfile; import com.red.circle.other.app.service.game.override.domain.HotGameUserProfile;
import com.red.circle.other.app.service.game.override.service.HotGameService; import com.red.circle.other.app.service.game.override.service.HotGameService;
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService; import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils;
import com.red.circle.other.app.util.OfficialNoticeUtils; import com.red.circle.other.app.util.OfficialNoticeUtils;
import com.red.circle.other.domain.game.GameRankingIncrementCmd; import com.red.circle.other.domain.game.GameRankingIncrementCmd;
import com.red.circle.other.domain.gateway.game.GameRankingGateway; import com.red.circle.other.domain.gateway.game.GameRankingGateway;
@ -49,7 +42,7 @@ import com.red.circle.other.infra.database.rds.service.game.GameVipLevelWeeklySe
import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService;
import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.game.VipLevelRule; import com.red.circle.other.inner.enums.game.VipLevelRule;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.LocalDateTimeUtils; import com.red.circle.tool.core.date.LocalDateTimeUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
@ -71,7 +64,6 @@ import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.chrono.ChronoZonedDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
@ -341,7 +333,7 @@ public class HotGameServiceImpl implements HotGameService {
// 处理游戏消费人任务 // 处理游戏消费人任务
else { else {
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME; RoomDailyTaskCode taskType = RoomDailyTaskCode.PERSONAL_GAME_CONSUME;
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(userId) .setUserId(userId)

View File

@ -31,11 +31,10 @@ import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheSe
import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig; import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;
import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService; import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService;
import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.task.RoomDailyTaskType; import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import com.red.circle.tool.core.num.ArithmeticUtils; import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.parse.DataTypeUtils;
import com.red.circle.tool.core.tuple.PennyAmount; import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.inner.endpoint.wallet.WalletGoldClient; 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.cmd.GoldReceiptCmd;
@ -185,7 +184,7 @@ public class YomiGameServiceImpl implements YomiGameService {
// 累加用户获得的金币并发送抽奖券 // 累加用户获得的金币并发送抽奖券
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(changeValue.longValue()), MonthlyRechargeType.UNDEFINED); activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(changeValue.longValue()), MonthlyRechargeType.UNDEFINED);
} else { } else {
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME; RoomDailyTaskCode taskType = RoomDailyTaskCode.PERSONAL_GAME_CONSUME;
roomDailyTaskProgressService.updateTaskProgress( roomDailyTaskProgressService.updateTaskProgress(
new RoomDailyTaskProgressUpdateCmd() new RoomDailyTaskProgressUpdateCmd()
.setUserId(userId) .setUserId(userId)