77 lines
2.9 KiB
TypeScript
77 lines
2.9 KiB
TypeScript
import { Application, BackendSession, HandlerService, } from 'pinus';
|
|
import { resResult } from '@pubUtils/util';
|
|
import { ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
|
import { getPlayerRechargeMoneyData, getPlayerRechargeMoneyDataShow } from '../../../services/activity/rechargeMoneyService';
|
|
import { RechargeMoneyPool } from '@domain/activityField/rechargeMoneyField';
|
|
import { addReward, stringToRewardParam } from '../../../services/activity/giftPackageService';
|
|
import { RewardParam } from '@domain/activityField/rewardField';
|
|
import { ActivityRechargeMoneyModel } from '@db/ActivityRechargeMoney';
|
|
import { addItems } from '../../../services/role/rewardService';
|
|
|
|
|
|
export default function (app: Application) {
|
|
new HandlerService(app, {});
|
|
return new RechargeMoneyHandler(app);
|
|
}
|
|
|
|
export class RechargeMoneyHandler {
|
|
constructor(private app: Application) {
|
|
}
|
|
|
|
/************************每日累计充值****************************/
|
|
|
|
/**
|
|
* @description 获取活动数据
|
|
* @param {BackendSession} session
|
|
* @memberof RechargeMoneyHandler
|
|
*/
|
|
async getRechargeMoneyActivity(msg: { activityId: number }, session: BackendSession) {
|
|
const { activityId } = msg;
|
|
const roleId = session.get('roleId');
|
|
const serverId = session.get('serverId');
|
|
|
|
let playerData = await getPlayerRechargeMoneyDataShow(activityId, serverId, roleId);
|
|
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
|
|
|
return resResult(STATUS.SUCCESS, {playerData});
|
|
}
|
|
|
|
/**
|
|
* @description 获取奖励
|
|
* @param {BackendSession} session
|
|
* @memberof RechargeMoneyHandler
|
|
*/
|
|
async pull(msg: { activityId: number }, session: BackendSession) {
|
|
const { activityId } = msg;
|
|
const roleId = session.get('roleId');
|
|
const serverId = session.get('serverId');
|
|
const sid = session.get('sid');
|
|
const roleName = session.get('roleName');
|
|
|
|
|
|
let playerData = await getPlayerRechargeMoneyData(activityId, serverId, roleId);
|
|
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
|
|
|
if (playerData.ticketCnt <= 0) {
|
|
return resResult(STATUS.ACTIVITY_RECHARGE_TICKET_NOT_ENOUGH);
|
|
}
|
|
|
|
let item = playerData.pull();
|
|
if (!item) {
|
|
return resResult(STATUS.ACTIVITY_RECHARGE_TICKET_NOT_ENOUGH);
|
|
}
|
|
|
|
let notGetRecord = playerData.recordArr[0];
|
|
// console.log('notGetRecord', JSON.stringify(notGetRecord));
|
|
await ActivityRechargeMoneyModel.addRecord(notGetRecord._id, item.id, `${item.gid}&${item.count}`);
|
|
let goods = await addItems(roleId, roleName, sid, [{ id: item.gid, count: item.count }], ITEM_CHANGE_REASON.RECHARGE_REWARD)
|
|
|
|
return resResult(STATUS.SUCCESS, {
|
|
param: { activityId },
|
|
item: item,
|
|
ticketCnt: playerData.ticketCnt,
|
|
});
|
|
}
|
|
}
|
|
|