活动:首充活动接口
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
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 { 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 giftID = item.gift;
|
||||
let result = await useGiftPackage(roleId, roleName, sid, serverId, funcs, giftID, []);
|
||||
|
||||
await ActivityFirstGiftModel.addRecord(activityId, roleId, index);
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {}));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityFirstGiftModel, ActivityFirstGiftModelType } from '../db/ActivityFirstGift';
|
||||
import { FirstGiftData, FirstGiftItem } from '../domain/activityField/firstGiftField';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} type 活动类型 ACTIVITY_TYPE
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
|
||||
export async function firstGiftActivity(serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(ACTIVITY_TYPE.FIRST_GIFT, true)
|
||||
activityArray = activityArray.sort((a, b) => {
|
||||
return a.acvitityId - b.acvitityId
|
||||
});
|
||||
if (activityArray.length == 0) {
|
||||
return null;
|
||||
}
|
||||
let activityData = activityArray[0];
|
||||
let playerData = await getPlayerFirstGiftData(activityData.acvitityId, serverId, roleId);
|
||||
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: ActivityModelType = await ActivityModel.findActivity(activityId, true);
|
||||
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityId, roleId);
|
||||
|
||||
let playerData = new FirstGiftData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
return playerData;
|
||||
}
|
||||
Reference in New Issue
Block a user