80 lines
2.8 KiB
TypeScript
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, {}));
|
|
}
|
|
|
|
}
|