Files
ZYZ/game-server/app/services/activity/firstGiftService.ts
luying 7bc9e1fe49 Revert " feat(db): 修改role表数据库操作方式"
This reverts commit e39af3649288cc5802739cfe862c818fe56e194e.
2023-05-22 19:43:21 +08:00

89 lines
3.3 KiB
TypeScript

import { ACTIVITY_TYPE } from '../../consts';
import { ActivityModel, ActivityModelType } from '../../db/Activity';
import { ActivityFirstGiftModel, ActivityFirstGiftModelType } from '../../db/ActivityFirstGift';
import { RoleModel, RoleType } from '../../db/Role';
import { ServerlistModel } from '../../db/Serverlist';
import { FirstGiftData } from '../../domain/activityField/firstGiftField';
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
import { getActivitiesByType, getActivityById } from './activityService';
// /**
// * 获取活动数据
// *
// * @param {number} serverId 区Id
// * @param {number} type 活动类型 ACTIVITY_TYPE
// * @param {string} roleId 角色Id
// *
// */
// export async function firstGiftActivity(serverId: number, roleId: string) {
// let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
// let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.FIRST_GIFT, 1)
// if (activityArray.length == 0) {
// return null;
// }
// let activityData = activityArray[0];
// let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityData.activityId, roleId);
// if (!playerRecord || playerRecord.isOver) {
// return null;
// }
// let { createTime } = await RoleModel.findByRoleId(roleId);
// let playerData = new FirstGiftData(activityData, createTime);
// playerData.setPlayerRecords(playerRecord);
// return playerData;
// }
/**
* 玩家活动数据
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function getPlayerFirstGiftData(activityId: number, serverId: number, roleId: string) {
let activityData = await getActivityById(activityId);
let playerRecord = await ActivityFirstGiftModel.findData(activityId, roleId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new FirstGiftData(activityData, createTime, serverTime);
playerData.setPlayerRecords(playerRecord);
return playerData;
}
/**
* 获取可显示的数据
* @param activityId
* @param serverId
* @param roleId
* @returns
*/
export async function getPlayerFirstGiftDataShow(activityId: number, serverId: number, roleId: string) {
let playerData = await getPlayerFirstGiftData(activityId, serverId, roleId);
if(playerData && playerData.canShow && playerData.canShow()) {
return playerData.getShowResult();
}
return null
}
/**
* 记录玩家首充记录
* @param {RoleType} role 玩家数据
* @param {number} serverId 区id
*/
export async function recordFirstGift(role: RoleType, serverId: number) {
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.FIRST_GIFT);
let serverTime = await getServerCreateTime(serverId);
for (let obj of activities) {
let playerData = new FirstGiftData(obj, role.createTime, serverTime);
for(let { pageIndex, targetMoney } of playerData.list) {
if(role.totalPay >= targetMoney) {
await ActivityFirstGiftModel.begin(obj.activityId, role.roleId, pageIndex );
}
}
}
}