feat(幸运转盘优化): 新增

This commit is contained in:
zhangxk
2023-10-18 19:03:12 +08:00
committed by luying
parent c70495cf59
commit fe55bf8da9
8 changed files with 489 additions and 0 deletions

View File

@@ -54,6 +54,7 @@ import { getPlayerMidAutumnDataShow } from './midAutumnService';
import { getPlayerAuthorGachaDataShow } from './authorGachaService';
import { getPlayerChongYangDataShow } from './chongyangService';
import { getPlayerNovemberDataShow } from './novemberServices';
import { getPlayerLuckyDataShow } from './luckyService';
/**
* 获取活动数据
@@ -314,6 +315,11 @@ export async function getActivity(serverId: number, roleId: string, uid: number,
activityData = await getPlayerNovemberDataShow(activityId, serverId, roleId);
break;
}
case ACTIVITY_TYPE.LUCKY://幸运转盘新
{
activityData = await getPlayerLuckyDataShow(activityId, serverId, roleId);
break;
}
default: {
console.log('未知活动类型.........', activityType)
break;

View File

@@ -0,0 +1,35 @@
import { ActivityLuckyModel } from "../../db/ActivityLuckyRec";
import { LuckyData } from "../../domain/activityField/luckyField";
import { shouldRefresh } from "../../pubUtils/util";
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
import { getActivityById } from "./activityService";
/**
* 玩家活动数据
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function getPlayerLuckyData(activityId: number, serverId: number, roleId: string) {
let activityData = await getActivityById(activityId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new LuckyData(activityData, createTime, serverTime);
let playerRecord = await ActivityLuckyModel.findByActivityId(serverId, activityId, roleId, playerData.roundIndex);
if(playerRecord && shouldRefresh(playerRecord.refTodayCount, new Date())) {
playerRecord = await ActivityLuckyModel.refreshTodayCount(serverId, activityId, roleId, playerData.roundIndex);
}
playerData.setPlayerRecords(playerRecord);
return playerData;
}
export async function getPlayerLuckyDataShow(activityId: number, serverId: number, roleId: string) {
let playerData = await getPlayerLuckyData(activityId, serverId, roleId);
if(playerData && playerData.canShow && playerData.canShow()) {
return playerData.getShowResult();
}
return null
}