✨ feat(幸运转盘优化): 新增
This commit is contained in:
@@ -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;
|
||||
|
||||
35
game-server/app/services/activity/luckyService.ts
Normal file
35
game-server/app/services/activity/luckyService.ts
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user