Files
ZYZ/game-server/app/services/activity/rebateService.ts
2023-04-07 17:57:15 +08:00

42 lines
1.5 KiB
TypeScript

import { HistoryOrderModel } from "../../db/HistoryOrder";
import { UserModel } from "../../db/User";
import { RebateData } from "../../domain/activityField/rebateField";
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
import { getActivityById } from "./activityService";
/**
* 玩家活动数据
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function getPlayerRebateData(activityId: number, serverId: number, roleId: string, uid: number) {
let activityData = await getActivityById(activityId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new RebateData(activityData, createTime, serverTime);
let user = await UserModel.findUserByUid(uid);
if(user.channelId) {
let playerRecords = await HistoryOrderModel.findByChannelId(user.channelId);
playerData.setPlayerRecords(playerRecords, user);
}
return playerData;
}
/**
* 玩家活动数据显示
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function getPlayerRebateDataShow(activityId: number, serverId: number, roleId: string, uid: number) {
let playerData = await getPlayerRebateData(activityId, serverId, roleId, uid);
if(playerData && playerData.canShow && playerData.canShow()) {
return playerData.getShowResult();
}
return null
}