fix 修复联调时发现的bug
This commit is contained in:
@@ -232,7 +232,7 @@ export class ExpeditionBattleHandler {
|
|||||||
let warReward = new WarReward(roleId, roleName, battleId, isSuccess);
|
let warReward = new WarReward(roleId, roleName, battleId, isSuccess);
|
||||||
let reward = await warReward.saveReward(1);
|
let reward = await warReward.saveReward(1);
|
||||||
|
|
||||||
let actordata = await roleLevelup(roleId, warInfo.kingExp)// 主公升级经验
|
let actordata = await roleLevelup(roleId, isSuccess?warInfo.kingExp:0);// 主公升级经验
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
expeditionCode, expeditionId,
|
expeditionCode, expeditionId,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattle
|
|||||||
import { checkTowerWar, towerBattleEnd } from '../../../services/battleService';
|
import { checkTowerWar, towerBattleEnd } from '../../../services/battleService';
|
||||||
import { WarReward } from '../../../services/warRewardService';
|
import { WarReward } from '../../../services/warRewardService';
|
||||||
import { getAp, setAp } from '../../../services/actionPointService';
|
import { getAp, setAp } from '../../../services/actionPointService';
|
||||||
import { setBattleStatus } from '../../../services/eventSercive';
|
import { setBattleStatus, checkEventBattle } from '../../../services/eventSercive';
|
||||||
import { STATUS } from '../../../consts/statusCode';
|
import { STATUS } from '../../../consts/statusCode';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { HeroModel } from '../../../db/Hero';
|
import { HeroModel } from '../../../db/Hero';
|
||||||
@@ -53,6 +53,7 @@ export class NormalBattleHandler {
|
|||||||
let checkHeroes = checkBattleHeroes(roleId, heroes);
|
let checkHeroes = checkBattleHeroes(roleId, heroes);
|
||||||
if(!checkHeroes) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
|
if(!checkHeroes) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
|
||||||
|
|
||||||
|
const battleCode = genCode(8); // 关卡唯一值
|
||||||
let dailyNum = {};
|
let dailyNum = {};
|
||||||
let towerData = {};
|
let towerData = {};
|
||||||
if(warInfo.warType == WAR_TYPE.DAILY) {
|
if(warInfo.warType == WAR_TYPE.DAILY) {
|
||||||
@@ -63,12 +64,18 @@ export class NormalBattleHandler {
|
|||||||
dailyNum = { type: checkResult.type, count: checkResult.count, sum: checkResult.sum };
|
dailyNum = { type: checkResult.type, count: checkResult.count, sum: checkResult.sum };
|
||||||
} else if (warInfo.warType == WAR_TYPE.TOWER) {
|
} else if (warInfo.warType == WAR_TYPE.TOWER) {
|
||||||
let checkResult = await checkTowerWar(roleId, battleId, heroes);
|
let checkResult = await checkTowerWar(roleId, battleId, heroes);
|
||||||
if(checkResult.status) {
|
if(checkResult.status == -1) {
|
||||||
return checkResult.resResult
|
return checkResult.resResult
|
||||||
}
|
}
|
||||||
towerData = Object.assign(towerData, checkResult.data);
|
towerData = Object.assign(towerData, checkResult.data);
|
||||||
|
} else if (warInfo.warType == WAR_TYPE.EVENT) {
|
||||||
|
// 记录事件状态
|
||||||
|
let checkResult = await checkEventBattle( roleId, session.get('eventStatus'), battleId, battleCode);
|
||||||
|
if(checkResult.status == -1) {
|
||||||
|
return checkResult.resResult
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const battleCode = genCode(8);
|
|
||||||
const BattleRecord = await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
const BattleRecord = await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||||
$set: {
|
$set: {
|
||||||
roleId, roleName, battleId,
|
roleId, roleName, battleId,
|
||||||
@@ -204,6 +211,8 @@ export class NormalBattleHandler {
|
|||||||
let condition2 = await BattleRecordModel.getBattleRecordByIdAndStar(roleId, battleId, 3);
|
let condition2 = await BattleRecordModel.getBattleRecordByIdAndStar(roleId, battleId, 3);
|
||||||
if(!condition2) warReward.setCondition(1, true);
|
if(!condition2) warReward.setCondition(1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await updateWarStar(roleId, battleId, warInfo.warType, star);
|
||||||
}
|
}
|
||||||
|
|
||||||
let reward = await warReward.saveReward(1);
|
let reward = await warReward.saveReward(1);
|
||||||
@@ -213,9 +222,7 @@ export class NormalBattleHandler {
|
|||||||
}, true);
|
}, true);
|
||||||
let { status } = updateResult;
|
let { status } = updateResult;
|
||||||
|
|
||||||
await updateWarStar(roleId, battleId, warInfo.warType, star);
|
let actordata = await roleLevelup(roleId, isSuccess?warInfo.kingExp:0);// 主公升级经验
|
||||||
|
|
||||||
let actordata = await roleLevelup(roleId, warInfo.kingExp)// 主公升级经验
|
|
||||||
|
|
||||||
let curHeroes = [];
|
let curHeroes = [];
|
||||||
for(let hid of heroes) {
|
for(let hid of heroes) {
|
||||||
|
|||||||
@@ -2,9 +2,30 @@ import { Application, FrontendOrBackendSession } from 'pinus';
|
|||||||
import { getGamedata } from '../pubUtils/gamedata';
|
import { getGamedata } from '../pubUtils/gamedata';
|
||||||
import EventRecord, { EventRecordModel } from '../db/EventRecord';
|
import EventRecord, { EventRecordModel } from '../db/EventRecord';
|
||||||
import { RoleModel } from '../db/Role';
|
import { RoleModel } from '../db/Role';
|
||||||
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight } from '../pubUtils/util';
|
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight, resResult } from '../pubUtils/util';
|
||||||
import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE, EVENT_RANDOM_TYPE_ONE_OPEN, EVENT_QUIZ_NUM, EVENT_ANSWER_STATUS } from '../consts/consts';
|
import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE, EVENT_RANDOM_TYPE_ONE_OPEN, EVENT_QUIZ_NUM, EVENT_ANSWER_STATUS } from '../consts/consts';
|
||||||
import { EVENT_REFRESH_NUM } from '../consts/consts';
|
import { EVENT_REFRESH_NUM } from '../consts/consts';
|
||||||
|
import { STATUS } from '../consts/statusCode';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从检查接口调用,检查是否有这么个战斗,顺便保存一下battleCode
|
||||||
|
*
|
||||||
|
* @param roleId
|
||||||
|
* @param eventStatus
|
||||||
|
* @param battleId
|
||||||
|
* @param battleCode
|
||||||
|
*/
|
||||||
|
export async function checkEventBattle(roleId: string, eventStatus: number, battleId: number, battleCode: string) {
|
||||||
|
let now = new Date();
|
||||||
|
let refTime = eventStatus == EVENT_STATUS.OPEN? getEventTime(now): 0;
|
||||||
|
|
||||||
|
let result = await EventRecordModel.setBattleCode(roleId, battleId, refTime, battleCode);
|
||||||
|
if (!result) {
|
||||||
|
return { status: -1, resResult: resResult(STATUS.EVENT_INFO_NOT_FOUND) };
|
||||||
|
} else {
|
||||||
|
return { status: 0, data: result };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从关卡结算接口调用,保存战斗情况
|
* 从关卡结算接口调用,保存战斗情况
|
||||||
@@ -17,14 +38,14 @@ import { EVENT_REFRESH_NUM } from '../consts/consts';
|
|||||||
* @param battleCode
|
* @param battleCode
|
||||||
*/
|
*/
|
||||||
export async function setBattleStatus(app: Application, session: FrontendOrBackendSession, roleId: string, battleId: number , isSuccess: boolean, battleCode: string) {
|
export async function setBattleStatus(app: Application, session: FrontendOrBackendSession, roleId: string, battleId: number , isSuccess: boolean, battleCode: string) {
|
||||||
let now = new Date();
|
|
||||||
let eventStatus = session.get('eventStatus');
|
|
||||||
let refTime = eventStatus == EVENT_STATUS.OPEN? getEventTime(now): 0;
|
|
||||||
|
|
||||||
let { BATTLE_SUCCESS, BATTLE_FAIL } = EVENT_RECORD_STATUS;
|
let { BATTLE_SUCCESS, BATTLE_FAIL } = EVENT_RECORD_STATUS;
|
||||||
let result = await EventRecordModel.setBattleStatus(roleId, battleId, refTime, isSuccess?BATTLE_SUCCESS:BATTLE_FAIL, battleCode);
|
let result = await EventRecordModel.setBattleStatus(roleId, battleId, battleCode, isSuccess?BATTLE_SUCCESS:BATTLE_FAIL);
|
||||||
|
if (!result) {
|
||||||
|
return { status: -1, resResult: resResult(STATUS.EVENT_INFO_NOT_FOUND) };
|
||||||
|
}
|
||||||
await checkEvent(app, session, true);
|
await checkEvent(app, session, true);
|
||||||
return result;
|
return { status: 0, data: result };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,8 +55,8 @@ export async function setBattleStatus(app: Application, session: FrontendOrBacke
|
|||||||
*/
|
*/
|
||||||
export function getEventTime(now: Date) {
|
export function getEventTime(now: Date) {
|
||||||
let curTime = Number(now);
|
let curTime = Number(now);
|
||||||
let todayA = now.setHours(12, 0, 0, 0); // 每天12点
|
let todayA = now.setHours(12, 0, 0, 0) - 8*60*60*1000; // 每天12点,修复时差
|
||||||
let todayB = now.setHours(18, 0, 0, 0); // 每天18点
|
let todayB = now.setHours(18, 0, 0, 0) - 8*60*60*1000; // 每天18点,修复时差
|
||||||
let yesterdayB = todayB - 86400000; // 前一天12点
|
let yesterdayB = todayB - 86400000; // 前一天12点
|
||||||
let t = 0;
|
let t = 0;
|
||||||
if(curTime < todayA) {
|
if(curTime < todayA) {
|
||||||
@@ -45,6 +66,7 @@ export function getEventTime(now: Date) {
|
|||||||
} else if (curTime >= todayB) {
|
} else if (curTime >= todayB) {
|
||||||
t = todayB;
|
t = todayB;
|
||||||
}
|
}
|
||||||
|
console.log('getEventTime', curTime, todayA, todayB, yesterdayB, t);
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,8 +75,14 @@ export default class EventRecord extends BaseModel {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async setBattleStatus(roleId: string, battleId: number, refTime: number, status: number, battleCode: string , lean=true ) {
|
public static async setBattleCode(roleId: string, battleId: number, refTime: number, battleCode: string , lean=true ) {
|
||||||
let result = await EventRecordModel.findOneAndUpdate({roleId, battleId, refTime}, {$set:{ status, battleCode }}).sort({turn: 1}).lean(lean);
|
let result = await EventRecordModel.findOneAndUpdate({roleId, battleId, refTime}, {$set:{ battleCode }}).sort({turn: 1}).lean(lean);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async setBattleStatus(roleId: string, battleId: number, battleCode: string, status: number , lean=true ) {
|
||||||
|
console.log('********', roleId, battleId, battleCode)
|
||||||
|
let result = await EventRecordModel.findOneAndUpdate({roleId, battleId, battleCode}, {$set:{ status }}).lean(lean);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,12 +31,8 @@
|
|||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<form id="form">
|
<form id="form">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="uid">uid (chat)</label>
|
<label for="userCode">userCode</label>
|
||||||
<input type="text" class="form-control" id="uid" name="uid" placeholder="uid" value="asd">
|
<input type="text" class="form-control" id="userCode" name="userCode" placeholder="userCode" value="test">
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="rid">rid (chat)</label>
|
|
||||||
<input type="text" class="form-control" id="rid" name="rid" placeholder="rid" value="123">
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="route">接口</label>
|
<label for="route">接口</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user