Files
ZYZ/game-server/app/servers/activity/handler/firstGiftHandler.ts
2021-05-13 21:09:13 +08:00

80 lines
2.8 KiB
TypeScript

import { Application, BackendSession } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { FIRST_GIFT_STATE, STATUS } from '../../../consts';
import { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService';
import { RoleModel } from '../../../db/Role';
import { addReward, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService';
import { ActivityFirstGiftModel } from '../../../db/ActivityFirstGift';
export default function (app: Application) {
return new FirstGiftHandler(app);
}
export class FirstGiftHandler {
constructor(private app: Application) {
}
/************************首充礼包****************************/
/**
* @description 获取首充礼包数据
* @param {{ }} msg
* @param {BackendSession} session
* @memberof FirstGiftHandler
*/
async getFirstGiftActivity(msg: {}, session: BackendSession) {
const { } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
let playerData = await firstGiftActivity(serverId, roleId);
if (!playerData) {
return resResult(STATUS.ACTIVITY_MISSING);
}
let { totalPay } = await RoleModel.findByRoleId(roleId);
if (totalPay > 0) {//奖励开启
}
return resResult(STATUS.SUCCESS, { playerData });
}
/**
* @description 领取礼包奖励
* @param {{ activityId: number, index: number}} msg
* @param {BackendSession} session
* @memberof FirstGiftHandler
*/
async getFirstGiftReward(msg: { activityId: number, index: number }, session: BackendSession) {
const { activityId, index } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
const sid = session.get('sid');
const roleName = session.get('roleName');
const funcs: number[] = session.get('funcs');
let playerData = await getPlayerFirstGiftData(activityId, serverId, roleId);
if (!playerData) {
return resResult(STATUS.ACTIVITY_MISSING);
}
if (playerData.state === FIRST_GIFT_STATE.NOT_OPEN) {
return resResult(STATUS.ACTIVITY_FIRST_GIFT_NOT_OPEN);
} else if (playerData.state === FIRST_GIFT_STATE.CLOSED) {
return resResult(STATUS.ACTIVITY_FIRST_GIFT_END);
}
let item = playerData.findFirstGiftItem(index);
if (item.isReceive) {
return resResult(STATUS.ACTIVITY_REWARDED);
}
let rewardArray = stringToRewardParam(item.reward)
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
await ActivityFirstGiftModel.addRecord(activityId, roleId, index);
return resResult(STATUS.SUCCESS, Object.assign(result, {}));
}
}