pvp测试debug
This commit is contained in:
@@ -19,7 +19,7 @@ import { PvpRecordModel, HeroesRecord } from '../../../db/PvpRecord';
|
|||||||
import { existsRank, initRank, getRank, setRank, getMyRank } from '../../../services/redisService';
|
import { existsRank, initRank, getRank, setRank, getMyRank } from '../../../services/redisService';
|
||||||
import { handleCost } from '../../../services/rewardService';
|
import { handleCost } from '../../../services/rewardService';
|
||||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||||
|
import { setPvpSeasonResult, resetPvpWarId } from '../../../services/timeTaskService';
|
||||||
export default function(app: Application) {
|
export default function(app: Application) {
|
||||||
return new PvpHandler(app);
|
return new PvpHandler(app);
|
||||||
}
|
}
|
||||||
@@ -51,6 +51,16 @@ export class PvpHandler {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async debugPvpSeasonReset(msg: {}, session: BackendSession) {
|
||||||
|
let { seasonNum, seasonEndTime } = await setPvpSeasonResult({name: 'exce setPvpSeasonResult debug'});
|
||||||
|
return resResult(STATUS.SUCCESS, { seasonNum, seasonEndTime })
|
||||||
|
}
|
||||||
|
|
||||||
|
async debugPvpWarReset(msg: {}, session: BackendSession) {
|
||||||
|
let systemConfig = await resetPvpWarId();
|
||||||
|
return resResult(STATUS.SUCCESS, {systemConfig});
|
||||||
|
}
|
||||||
|
|
||||||
async getData (msg: {}, session: BackendSession) {
|
async getData (msg: {}, session: BackendSession) {
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
let {pvpDefense, warId} = await findPvpDefAllByRoleId(roleId);
|
let {pvpDefense, warId} = await findPvpDefAllByRoleId(roleId);
|
||||||
@@ -261,7 +271,7 @@ export class PvpHandler {
|
|||||||
|
|
||||||
if (!!isDefaultHero) {
|
if (!!isDefaultHero) {
|
||||||
let role = await RoleModel.findByRoleId(roleId);
|
let role = await RoleModel.findByRoleId(roleId);
|
||||||
let { resHeroes } = await defaultHeroes(role);
|
let { resHeroes } = await defaultHeroes(role, challengeCnt, challengeRefTime, true);
|
||||||
return resResult(STATUS.SUCCESS, { heroes: resHeroes, challengeCnt, challengeRefTime, isDefaultHero} );
|
return resResult(STATUS.SUCCESS, { heroes: resHeroes, challengeCnt, challengeRefTime, isDefaultHero} );
|
||||||
} else {
|
} else {
|
||||||
for (let dataId = PVP_HERO_POS.START; dataId <= PVP_HERO_POS.END; dataId++) {
|
for (let dataId = PVP_HERO_POS.START; dataId <= PVP_HERO_POS.END; dataId++) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Application, ChannelService, FrontendSession, RemoterClass } from 'pinus';
|
import { Application, ChannelService, FrontendSession, pinus, RemoterClass } from 'pinus';
|
||||||
import { STATUS } from '../../../consts/statusCode';
|
import { STATUS } from '../../../consts/statusCode';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { getRedis, setRedis, delRedis } from '../../../services/redisService';
|
import { getRedis, setRedis, delRedis } from '../../../services/redisService';
|
||||||
@@ -28,7 +28,8 @@ export class ConnectorRemote {
|
|||||||
await sessionService.akick(uid);
|
await sessionService.akick(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async pushMessage(sid: string, uid: string, route: string, data:any) {
|
public async pushMessage( uid: string, route: string, data:any) {
|
||||||
|
let sid = pinus.app.getServerId();
|
||||||
if (!!sid) {
|
if (!!sid) {
|
||||||
let uids = [{uid, sid}];
|
let uids = [{uid, sid}];
|
||||||
this.channelService.pushMessageByUids(route, data, uids);
|
this.channelService.pushMessageByUids(route, data, uids);
|
||||||
|
|||||||
@@ -238,19 +238,24 @@ export function getLvByScore(heroScores: HeroScores[]) {
|
|||||||
return getPLvByScore(score);
|
return getPLvByScore(score);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function defaultHeroes ( role:RoleType, challengeCnt?:number, challengeRefTime?:number,) {
|
export async function defaultHeroes ( role:RoleType, challengeCnt?:number, challengeRefTime?:number, isUpdate?: boolean) {
|
||||||
let { heroes } = await PvpDefenseModel.findByRoleId(role.roleId);
|
let { heroes, isDefaultHero } = await PvpDefenseModel.findByRoleId(role.roleId);
|
||||||
var orders = [1, 2, 3, 4, 5];
|
if (!isUpdate && !isDefaultHero) {
|
||||||
heroes.sort(function(a, b) {
|
return;
|
||||||
if (!!a.order&& !!a.hero) {
|
}
|
||||||
let index = orders.indexOf(a.order);
|
let orders = [1, 2, 3, 4, 5];
|
||||||
orders.splice(index, 1);
|
|
||||||
}
|
|
||||||
return b.ce - b.dataId - a.ce + a.dataId;
|
|
||||||
});
|
|
||||||
role.topFive.sort(function(a, b) {
|
role.topFive.sort(function(a, b) {
|
||||||
return b.ce - a.ce;
|
return b.ce - a.ce;
|
||||||
});
|
});
|
||||||
|
heroes.sort(function(a, b) {
|
||||||
|
return b.ce - b.dataId - a.ce + a.dataId;
|
||||||
|
});
|
||||||
|
for (let hero of heroes) {
|
||||||
|
if (!!hero.order&& !!hero.hero && _.findIndex(role.topFive, {hid: hero.actorId}) != -1) {
|
||||||
|
let index = orders.indexOf(hero.order);
|
||||||
|
orders.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
let defCe = 0;
|
let defCe = 0;
|
||||||
let num = 0;
|
let num = 0;
|
||||||
for (let i = 0; i < role.topFive.length; i++) {
|
for (let i = 0; i < role.topFive.length; i++) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import PvpDefenseType,{ PvpDefenseModel } from '../db/PvpDefense';
|
|||||||
import { PVP } from '../pubUtils/dicParam';
|
import { PVP } from '../pubUtils/dicParam';
|
||||||
import { nowSeconds, getTodayZeroPoint } from '../pubUtils/timeUtil';
|
import { nowSeconds, getTodayZeroPoint } from '../pubUtils/timeUtil';
|
||||||
import { getPvpGkWarIds, getPvpRankRewards, getPvpHeroRewards } from '../pubUtils/data';
|
import { getPvpGkWarIds, getPvpRankRewards, getPvpHeroRewards } from '../pubUtils/data';
|
||||||
import { getRandomArr } from '../pubUtils/util';
|
import { deepCopy, getRandomArr } from '../pubUtils/util';
|
||||||
import { getLvByScore } from './pvpService';
|
import { getLvByScore } from './pvpService';
|
||||||
import { getMyRank, setRank, getRedis } from './redisService';
|
import { getMyRank, setRank, getRedis } from './redisService';
|
||||||
import { REDIS_KEY } from '../consts';
|
import { REDIS_KEY } from '../consts';
|
||||||
@@ -49,21 +49,21 @@ export async function setPvpSeasonResult(obj:{ name:string }) {
|
|||||||
for (let page = 0; page < 3; page++) {
|
for (let page = 0; page < 3; page++) {
|
||||||
let pvpDefenses = await PvpDefenseModel.getPvpDef(500, page);
|
let pvpDefenses = await PvpDefenseModel.getPvpDef(500, page);
|
||||||
let addMails = new Array<MailType>();
|
let addMails = new Array<MailType>();
|
||||||
|
let pushMessage = new Array<any>();
|
||||||
for (let pvpDefense of pvpDefenses) {
|
for (let pvpDefense of pvpDefenses) {
|
||||||
if (pvpDefense.seasonNum !== seasonNum) {
|
if (pvpDefense.seasonNum !== seasonNum) {
|
||||||
await setPvpDefResultOnTime(pvpDefense, seasonNum, seasonEndTime, addMails);
|
await setPvpDefResultOnTime(pvpDefense, seasonNum, seasonEndTime, addMails,pushMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await MailModel.addMails(addMails);
|
await MailModel.addMails(addMails);
|
||||||
// let key = 'login_roleId_' + pvpDefense.roleId;
|
for (let message of pushMessage) {
|
||||||
// let sid = await getRedis(key);
|
pinus.app.rpc.connector.connectorRemote.pushMessage.toServer(message.sid, message.uid, message.route, message.data);
|
||||||
// if (!!sid) {
|
}
|
||||||
// pinus.app.rpc.connector.connectorRemote.pushMessage.toServer(sid, pvpDefense.roleId, 'onMailsAdd', [mail]);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
return { seasonNum, seasonEndTime };
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setPvpDefResultOnTime(pvpDefense: PvpDefenseType, seasonNum: number, seasonEndTime:number, addMails: Array<MailType>) {
|
export async function setPvpDefResultOnTime(pvpDefense: PvpDefenseType, seasonNum: number, seasonEndTime:number, addMails: Array<MailType>, pushMessage:Array<any>) {
|
||||||
let role = await RoleModel.findByRoleId(pvpDefense.roleId);
|
let role = await RoleModel.findByRoleId(pvpDefense.roleId);
|
||||||
if (!role) {
|
if (!role) {
|
||||||
return;
|
return;
|
||||||
@@ -75,8 +75,13 @@ export async function setPvpDefResultOnTime(pvpDefense: PvpDefenseType, seasonNu
|
|||||||
setRank(REDIS_KEY.PVP_RANK, 0, pvpDefense.roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
|
setRank(REDIS_KEY.PVP_RANK, 0, pvpDefense.roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
|
||||||
//下发邮件
|
//下发邮件
|
||||||
const doc = new MailModel();
|
const doc = new MailModel();
|
||||||
const mail = Object.assign(doc.toJSON(), { goods, sendName: '系统', mailId: 1, sendTime: nowSeconds()});
|
const mail = Object.assign(doc.toJSON(), {roleId: pvpDefense.roleId, goods, sendName: '系统', mailId: 1, sendTime: nowSeconds()});
|
||||||
addMails.push(mail);
|
addMails.push(mail);
|
||||||
|
let key = 'login_roleId_' + pvpDefense.roleId;
|
||||||
|
let sid = await getRedis(key);
|
||||||
|
if (!!sid) {
|
||||||
|
pushMessage.push({route: 'onMailsAdd', data:[mail], uid: pvpDefense.roleId, sid});
|
||||||
|
}
|
||||||
return pvpDefense;
|
return pvpDefense;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,14 +132,14 @@ export async function setPvpDefResult(pvpDefense: PvpDefenseType, seasonNum: num
|
|||||||
export async function resetPvpWarId() {
|
export async function resetPvpWarId() {
|
||||||
console.log('resetPvpWarId');
|
console.log('resetPvpWarId');
|
||||||
let systemConfig = await SystemConfigModel.findSystemConfig();
|
let systemConfig = await SystemConfigModel.findSystemConfig();
|
||||||
let warIds = getPvpGkWarIds();
|
let warIds = deepCopy(getPvpGkWarIds());
|
||||||
let index = _.indexOf(warIds, systemConfig.warId);
|
let index = _.indexOf(warIds, systemConfig.warId);
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
warIds.splice(index, 1);
|
warIds.splice(index, 1);
|
||||||
}
|
}
|
||||||
let res = getRandomArr(warIds, 1);
|
let res = getRandomArr(warIds, 1);
|
||||||
let warId = res[0];//TODO随机地图
|
let warId = res[0];//TODO随机地图
|
||||||
await SystemConfigModel.updateSystemConfig({ warId });
|
return await SystemConfigModel.updateSystemConfig({ warId });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function setNextPvpTime() {
|
async function setNextPvpTime() {
|
||||||
|
|||||||
@@ -7,10 +7,7 @@ import { nowSeconds } from '../pubUtils/timeUtil';
|
|||||||
|
|
||||||
export default class Mail extends BaseModel {
|
export default class Mail extends BaseModel {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
roleId: number;
|
roleId: string;
|
||||||
|
|
||||||
@prop({ required: true })
|
|
||||||
seqId: number;
|
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
mailId: number;
|
mailId: number;
|
||||||
@@ -25,8 +22,7 @@ export default class Mail extends BaseModel {
|
|||||||
sendName: string;
|
sendName: string;
|
||||||
|
|
||||||
public static async addMails( mails: Array<MailType>) {
|
public static async addMails( mails: Array<MailType>) {
|
||||||
let mailInfos:Array<MailType> = await MailModel.insertMany(mails);
|
await MailModel.insertMany(mails);
|
||||||
return mailInfos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async addMail(params:{ goods: Array<RewardInter>, sendName: string, mailId: number, sendTime?: number}) {
|
public static async addMail(params:{ goods: Array<RewardInter>, sendName: string, mailId: number, sendTime?: number}) {
|
||||||
|
|||||||
Reference in New Issue
Block a user