活动:战令

This commit is contained in:
luying
2022-03-07 19:50:56 +08:00
parent 52351bdf4e
commit c7eabb44cf
20 changed files with 617 additions and 196 deletions

View File

@@ -21,12 +21,12 @@ import { getPlayerDailyGKData } from './dailyGKService';
import { getPlayerRefreshShopData } from './refreshShopService';
import { getPlayerRefreshTaskData } from './refreshTaskService';
import { getPlayerMonopolyData } from './monopolyService';
import { getPlayerNewHeroGiftsData } from './newHeroGiftsService';
import { getPlayerNewHeroGiftsData, newHeroGiftPoint } from './newHeroGiftsService';
import { getPlayerNewHeroGKData } from './newHeroGKService';
import { getPlayerNewHeroGachaData } from './newHeroGachaService';
import { pinus } from 'pinus';
import { BackendSession, pinus } from 'pinus';
import { ActivityModel, ActivityModelType } from '../../db/Activity';
import { getRandSingleEelm } from '../../pubUtils/util';
import { getRandSingleEelm, resResult } from '../../pubUtils/util';
import { SignInData } from '../../domain/activityField/signInField';
import { ActivityGroupModel } from '../../db/ActivityGroup';
import { ActivityGroupTypeModel } from '../../db/ActivityGroupType';
@@ -34,6 +34,9 @@ import { ServerlistModel } from '../../db/Serverlist';
import { ActivityInRemote, transActivityInRemoteToModelType } from '../../domain/activityField/activityField';
import { getPlayerLuckyTurntableDataShow } from './luckyTurntableService';
import { getTimeLimitRankDataShow } from './timeLimitRankService';
import { ActivityTaskPointModel } from '../../db/ActivityTaskPoint';
import { getRoleOnlineInfo } from '../redisService';
import { addTaskPassPoint } from './taskPassService';
/**
* 获取活动数据
@@ -315,11 +318,65 @@ export async function checkActivityGroupType(groupType: number, activities: Acti
let index = dic.findIndex(cur => cur.activityType == type);
if(index == -1) {
return false;
} else {
dic.splice(index, 1);
}
}
}
return true
}
/**
* 达成任务可活动活动积分
* @param type 任务类型,主线、每日、成就
* @param id
* @param point
* @param session
*/
export async function addActvityTaskPoint(type: number, id: number, session: BackendSession) {
let serverId: number = session.get('serverId');
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let activityTaskPoint = await ActivityTaskPointModel.findData(type, id);
let result: pushActivityInter[] = [];
for (let { activityId, activityType, point } of activityTaskPoint) {
console.log('##### activityTaskPoint:', activityId, activityType, point)
if(activityType == ACTIVITY_TYPE.NEW_HERO_GIFTS) { // 新武将活动
let totalPoint = await newHeroGiftPoint(serverId, activityId, roleId, point);
result.push({ activityId, activityType, param: { totalPoint } });
} else if (activityType == ACTIVITY_TYPE.TASK_PASS) {
let totalPoint = await addTaskPassPoint(serverId, activityId, roleId, point);
result.push({ activityId, activityType, param: { totalPoint } });
} else {
break;
}
}
await pushActivities(result, roleId, sid);
}
interface pushActivityParamInter {
ticketCnt?: number; // 木签活动的签数(type21)
totalPoint?: number; // 新将好礼type37和战令type42更新后的积分
}
export interface pushActivityInter {
activityId: number,
activityType: number,
param: pushActivityParamInter;
}
export async function pushSingleActivity(activityId: number, activityType: number, param: pushActivityParamInter, roleId: string, sid?: string) {
await pushActivities([{ activityId, activityType, param }], roleId, sid);
}
export async function pushActivities(arr: pushActivityInter[], roleId: string, sid?: string) {
if(!sid) {
let onlineUser = await getRoleOnlineInfo(roleId);
sid = onlineUser.sid;
}
pinus.app.get('channelService').pushMessageByUids('onActivityUpdate',
resResult(STATUS.SUCCESS, {
activities: arr
}),
[{ uid: roleId, sid }]);
}