房间金币大放送 个人模块部分逻辑实现
This commit is contained in:
parent
786c9263bf
commit
d85a1d8711
@ -0,0 +1,61 @@
|
|||||||
|
package com.red.circle.other.inner.enums.task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每日任务类型.
|
||||||
|
*
|
||||||
|
* @author tf
|
||||||
|
*/
|
||||||
|
public enum RoomDailyTaskType {
|
||||||
|
|
||||||
|
// ==================== Personal Tasks ====================
|
||||||
|
|
||||||
|
/** 进入他人房间活跃 */
|
||||||
|
ACTIVE_IN_ROOM,
|
||||||
|
|
||||||
|
/** 进入他人房间上麦 */
|
||||||
|
MIC_IN_ROOM,
|
||||||
|
|
||||||
|
/** 给用户送礼 */
|
||||||
|
SEND_GIFT,
|
||||||
|
|
||||||
|
/** 送幸运礼物赢得金币数 */
|
||||||
|
LUCKY_GIFT_GOLD,
|
||||||
|
|
||||||
|
/** 送魔法礼物赢得金币数 */
|
||||||
|
MAGIC_GIFT_GOLD,
|
||||||
|
|
||||||
|
/** 游戏消费 */
|
||||||
|
GAME_CONSUME,
|
||||||
|
|
||||||
|
// ==================== Room Owner Tasks ====================
|
||||||
|
|
||||||
|
/** 房间新增成员数 */
|
||||||
|
NEW_MEMBER,
|
||||||
|
|
||||||
|
/** 房主发红包 */
|
||||||
|
OWNER_RED_PACKET,
|
||||||
|
|
||||||
|
/** 房主给用户送礼物 */
|
||||||
|
OWNER_SEND_GIFT,
|
||||||
|
|
||||||
|
/** 房主累计送礼金币数 */
|
||||||
|
OWNER_GIFT_GOLD,
|
||||||
|
|
||||||
|
/** 房间用户累计送礼金币数 */
|
||||||
|
ROOM_GIFT_GOLD,
|
||||||
|
|
||||||
|
/** 累计在麦位的用户数(按时长区分档位) */
|
||||||
|
MIC_USER_DURATION,
|
||||||
|
|
||||||
|
/** 房间内同时在线用户数 */
|
||||||
|
ONLINE_USER_COUNT,
|
||||||
|
|
||||||
|
/** 房主成功邀请用户上麦 */
|
||||||
|
OWNER_INVITE_MIC,
|
||||||
|
|
||||||
|
/** 房主在房间上麦 */
|
||||||
|
OWNER_MIC_TIME,
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
}
|
||||||
@ -28,11 +28,13 @@ import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
|||||||
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.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.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.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.util.DateTimeAsiaRiyadhUtils;
|
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;
|
||||||
@ -46,6 +48,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.team.TeamPolicyTypeEnum;
|
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.LocalDateTimeUtils;
|
||||||
@ -94,6 +97,7 @@ public class GameHkysRestController {
|
|||||||
private final GameActivityService gameActivityService;
|
private final GameActivityService gameActivityService;
|
||||||
private final RedisService redisService;
|
private final RedisService redisService;
|
||||||
private final ActivityRechargeTicketService activityRechargeTicketService;
|
private final ActivityRechargeTicketService activityRechargeTicketService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
|
|
||||||
@IgnoreResultResponse
|
@IgnoreResultResponse
|
||||||
@PostMapping("/getUserInfo")
|
@PostMapping("/getUserInfo")
|
||||||
@ -198,6 +202,15 @@ public class GameHkysRestController {
|
|||||||
|
|
||||||
// 累加用户获得的金币并发送抽奖券
|
// 累加用户获得的金币并发送抽奖券
|
||||||
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(cmd.getCoin()), MonthlyRechargeType.UNDEFINED);
|
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(cmd.getCoin()), MonthlyRechargeType.UNDEFINED);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME;
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(param.getCoin().intValue())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,8 +31,10 @@ import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
|
|||||||
import com.red.circle.other.app.dto.clientobject.game.GameLuckyGiftMsgCO;
|
import com.red.circle.other.app.dto.clientobject.game.GameLuckyGiftMsgCO;
|
||||||
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.gift.GiveAwayGiftBatchCmd;
|
import com.red.circle.other.app.dto.cmd.gift.GiveAwayGiftBatchCmd;
|
||||||
|
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskProgressUpdateCmd;
|
||||||
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.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
import com.red.circle.other.domain.ranking.RankingActivityType;
|
import com.red.circle.other.domain.ranking.RankingActivityType;
|
||||||
import com.red.circle.other.domain.ranking.RankingCycleType;
|
import com.red.circle.other.domain.ranking.RankingCycleType;
|
||||||
@ -59,6 +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.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;
|
||||||
@ -114,6 +117,7 @@ public class GameLuckyGiftCommon {
|
|||||||
private final GiftMqMessage giftMqMessage;
|
private final GiftMqMessage giftMqMessage;
|
||||||
private final GiftAppConvertor giftAppConvertor;
|
private final GiftAppConvertor giftAppConvertor;
|
||||||
private final ActivityRechargeTicketService activityRechargeTicketService;
|
private final ActivityRechargeTicketService activityRechargeTicketService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送幸运礼物抽奖mq.
|
* 发送幸运礼物抽奖mq.
|
||||||
@ -257,10 +261,25 @@ public class GameLuckyGiftCommon {
|
|||||||
GiveAwayGiftBatchEvent giftBatchEvent = buildGiftBatchEvent(cmd, timeId, param, giftConfigDTO);
|
GiveAwayGiftBatchEvent giftBatchEvent = buildGiftBatchEvent(cmd, timeId, param, giftConfigDTO);
|
||||||
|
|
||||||
giftMqMessage.sendGift(timeId, giftBatchEvent);
|
giftMqMessage.sendGift(timeId, giftBatchEvent);
|
||||||
|
|
||||||
|
updateRoomDailyTask(param, rewardAmount, RoomDailyTaskType.MAGIC_GIFT_GOLD);
|
||||||
|
} else {
|
||||||
|
updateRoomDailyTask(param, rewardAmount, RoomDailyTaskType.LUCKY_GIFT_GOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 累加用户获得的金币并发送抽奖券
|
// 累加用户获得的金币并发送抽奖券
|
||||||
activityRechargeTicketService.accumulatedRechargeAndAddTicket(param.getUserId(), rewardAmount, MonthlyRechargeType.LUCKY_WIN);
|
activityRechargeTicketService.accumulatedRechargeAndAddTicket(param.getUserId(), rewardAmount, MonthlyRechargeType.LUCKY_WIN);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRoomDailyTask(GameLuckyGiftParam param, Long rewardAmount, RoomDailyTaskType taskType) {
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(param.getUserId())
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(rewardAmount.intValue())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@ -19,7 +19,9 @@ 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.dynamic.DynamicLikeCmd;
|
||||||
|
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.util.DateTimeAsiaRiyadhUtils;
|
import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils;
|
||||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||||
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
import com.red.circle.other.domain.gateway.user.ability.UserRegionGateway;
|
||||||
@ -75,6 +77,7 @@ 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.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.collection.MapBuilder;
|
||||||
@ -139,6 +142,7 @@ public class GiftCountStrategy implements GiftStrategy {
|
|||||||
private final OfficialNoticeClient officialService;
|
private final OfficialNoticeClient officialService;
|
||||||
private final TaskMqMessage taskMqMessage;
|
private final TaskMqMessage taskMqMessage;
|
||||||
private final SpinsUserTaskProgressService spinsUserTaskProgressService;
|
private final SpinsUserTaskProgressService spinsUserTaskProgressService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
private final RedisService redisService;
|
private final RedisService redisService;
|
||||||
private final DynamicContentService dynamicContentService;
|
private final DynamicContentService dynamicContentService;
|
||||||
private final DynamicGiftService dynamicGiftService;
|
private final DynamicGiftService dynamicGiftService;
|
||||||
@ -207,6 +211,9 @@ public class GiftCountStrategy implements GiftStrategy {
|
|||||||
// Spins 送礼物任务
|
// Spins 送礼物任务
|
||||||
handleSpinsGiftTask(runningWater);
|
handleSpinsGiftTask(runningWater);
|
||||||
|
|
||||||
|
// roomDailyTask
|
||||||
|
handleSendGiftTask(runningWater.getUserId(), runningWater.getAcceptUsers().stream().map(GiftAcceptUser::getAcceptUserId).toList());
|
||||||
|
|
||||||
// giftGiveRunningWaterService.addLog(runningWater.getId(), "结束:礼物统计相关");
|
// giftGiveRunningWaterService.addLog(runningWater.getId(), "结束:礼物统计相关");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -709,6 +716,28 @@ public class GiftCountStrategy implements GiftStrategy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleSendGiftTask(Long userId, List<Long> acceptUserIds) {
|
||||||
|
RoomDailyTaskType taskType = RoomDailyTaskType.SEND_GIFT;
|
||||||
|
String redisKey = "room:daily:task:send_gift:users:" + userId + ":"
|
||||||
|
+ ZonedDateTimeAsiaRiyadhUtils.now().toLocalDate();
|
||||||
|
|
||||||
|
// 将本次接收用户加入 set,返回新增数量(已存在的不计入)
|
||||||
|
long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight();
|
||||||
|
for (Long acceptUserId : acceptUserIds) {
|
||||||
|
redisService.setAdd(redisKey, acceptUserId, expireSeconds, TimeUnit.SECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取去重后的总人数
|
||||||
|
int uniqueCount = (int) redisService.setSize(redisKey);
|
||||||
|
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(uniqueCount)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 增加用户每日送礼物数量
|
* 增加用户每日送礼物数量
|
||||||
* @param userId 用户ID
|
* @param userId 用户ID
|
||||||
|
|||||||
@ -28,11 +28,13 @@ 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.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.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.SpinsUserTaskProgressService;
|
||||||
import com.red.circle.other.app.service.activity.ActivityRechargeService;
|
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.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.DateTimeAsiaRiyadhUtils;
|
||||||
import com.red.circle.other.app.util.OfficialNoticeUtils;
|
import com.red.circle.other.app.util.OfficialNoticeUtils;
|
||||||
@ -47,6 +49,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.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;
|
||||||
@ -93,6 +96,7 @@ public class GameBaishunServiceImpl implements GameBaishunService {
|
|||||||
private final TaskService taskService;
|
private final TaskService taskService;
|
||||||
private final GameActivityService gameActivityService;
|
private final GameActivityService gameActivityService;
|
||||||
private final ActivityRechargeTicketService activityRechargeTicketService;
|
private final ActivityRechargeTicketService activityRechargeTicketService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
@Value("${red-circle.game-rank.gameid}")
|
@Value("${red-circle.game-rank.gameid}")
|
||||||
private String gameId;
|
private String gameId;
|
||||||
|
|
||||||
@ -228,6 +232,14 @@ public class GameBaishunServiceImpl implements GameBaishunService {
|
|||||||
|
|
||||||
// 累加用户获得的金币并发送抽奖券
|
// 累加用户获得的金币并发送抽奖券
|
||||||
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, request.getCurrencyDiff(), MonthlyRechargeType.UNDEFINED);
|
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, request.getCurrencyDiff(), MonthlyRechargeType.UNDEFINED);
|
||||||
|
} else {
|
||||||
|
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME;
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(Math.abs(request.getCurrencyDiff().intValue()))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,12 +24,14 @@ 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.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.game.GameLxwlUpdateBalanceCmd;
|
||||||
|
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.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.util.DateTimeAsiaRiyadhUtils;
|
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;
|
||||||
@ -47,6 +49,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.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;
|
||||||
@ -99,6 +102,7 @@ public class HotGameServiceImpl implements HotGameService {
|
|||||||
private final UserActivityRechargeService userActivityRechargeService;
|
private final UserActivityRechargeService userActivityRechargeService;
|
||||||
private final GameVipLevelWeeklyService gameVipLevelWeeklyService;
|
private final GameVipLevelWeeklyService gameVipLevelWeeklyService;
|
||||||
private final ActivityRechargeTicketService activityRechargeTicketService;
|
private final ActivityRechargeTicketService activityRechargeTicketService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
|
|
||||||
@Value("${red-circle.game-rank.gameid}")
|
@Value("${red-circle.game-rank.gameid}")
|
||||||
private String gameId;
|
private String gameId;
|
||||||
@ -335,6 +339,17 @@ public class HotGameServiceImpl implements HotGameService {
|
|||||||
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(param.getCoin()), MonthlyRechargeType.UNDEFINED);
|
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(param.getCoin()), MonthlyRechargeType.UNDEFINED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理游戏消费人任务
|
||||||
|
else {
|
||||||
|
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME;
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(param.getCoin().intValue())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return new HotGameResponse<HotGameCoin>()
|
return new HotGameResponse<HotGameCoin>()
|
||||||
.setData(new HotGameCoin()
|
.setData(new HotGameCoin()
|
||||||
.setBalanceCoin(res.getBalance().getDollarAmount().longValue())
|
.setBalanceCoin(res.getBalance().getDollarAmount().longValue())
|
||||||
|
|||||||
@ -12,10 +12,12 @@ 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.activity.RankingDataUpdateCmd;
|
import com.red.circle.other.app.dto.cmd.activity.RankingDataUpdateCmd;
|
||||||
import com.red.circle.other.app.dto.cmd.party3rd.*;
|
import com.red.circle.other.app.dto.cmd.party3rd.*;
|
||||||
|
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.override.service.YomiGameService;
|
import com.red.circle.other.app.service.game.override.service.YomiGameService;
|
||||||
|
import com.red.circle.other.app.service.task.RoomDailyTaskProgressService;
|
||||||
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;
|
||||||
@ -29,6 +31,7 @@ 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.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;
|
||||||
@ -70,6 +73,7 @@ public class YomiGameServiceImpl implements YomiGameService {
|
|||||||
private final GameActivityService gameActivityService;
|
private final GameActivityService gameActivityService;
|
||||||
private final GameRankingGateway gameRankingGateway;
|
private final GameRankingGateway gameRankingGateway;
|
||||||
private final ActivityRechargeTicketService activityRechargeTicketService;
|
private final ActivityRechargeTicketService activityRechargeTicketService;
|
||||||
|
private final RoomDailyTaskProgressService roomDailyTaskProgressService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public YomiTokenCO getToken(YomiGetTokenCmd cmd) {
|
public YomiTokenCO getToken(YomiGetTokenCmd cmd) {
|
||||||
@ -180,6 +184,14 @@ public class YomiGameServiceImpl implements YomiGameService {
|
|||||||
|
|
||||||
// 累加用户获得的金币并发送抽奖券
|
// 累加用户获得的金币并发送抽奖券
|
||||||
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(changeValue.longValue()), MonthlyRechargeType.UNDEFINED);
|
activityRechargeTicketService.accumulatedRechargeAndAddTicket(userId, Math.abs(changeValue.longValue()), MonthlyRechargeType.UNDEFINED);
|
||||||
|
} else {
|
||||||
|
RoomDailyTaskType taskType = RoomDailyTaskType.GAME_CONSUME;
|
||||||
|
roomDailyTaskProgressService.updateTaskProgress(
|
||||||
|
new RoomDailyTaskProgressUpdateCmd()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setTaskCode(taskType.name())
|
||||||
|
.setProgressValue(cmd.getChangeValue())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new YomiBalanceCO(currentBalance);
|
return new YomiBalanceCO(currentBalance);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user