添加天梯排行榜,修复setHour有时差的bug
This commit is contained in:
+1
-1
@@ -135,7 +135,7 @@ app.configure('production|development|local', function () {
|
||||
app.set(RESERVED.ERROR_HANDLER, errorHandler);
|
||||
app.set(RESERVED.GLOBAL_ERROR_HANDLER, globalErrorHandler);
|
||||
app.globalAfter((err: Error, routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, resp: any, cb: HandlerCallback) => {
|
||||
console.log('global after ', err, routeRecord, msg)
|
||||
console.log('global after ', err, msg&&msg.route, msg&&JSON.stringify(msg.body), session&&session.get('roleId'))
|
||||
})
|
||||
|
||||
app.globalBefore((routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, cb: HandlerCallback) => {
|
||||
|
||||
@@ -92,7 +92,6 @@ export class DailyBattleHandler {
|
||||
await RoleModel.costGold(roleId, buyCost);
|
||||
let newDailyRecord = await DailyRecordModel.increseBuyCount(roleId, type, count);
|
||||
|
||||
console.log(buyCost);
|
||||
let checkDailyResult = await getDailyNum(newDailyRecord, timesPerDay, timesCanBuy);
|
||||
return resResult(STATUS.SUCCESS, { type, ...checkDailyResult, buyCost});
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import { ExpeditionRecordModel } from '../../../db/ExpeditionRecord';
|
||||
import { ExpeditionWarRecordModel } from '../../../db/ExpeditionWarRecord';
|
||||
import { ExpeditionPointModel } from '../../../db/ExpeditionPoint';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { calculateSumCE, genCode } from '../../../pubUtils/util';
|
||||
import { calculateSumCE, genCode, setLocalHours } from '../../../pubUtils/util';
|
||||
import { matchPlayers, matchRobots, getPointRewardStatus, getCEScaleAndRange } from '../../../services/expeditionService';
|
||||
import { EXPEDITION_INCREASE_POINT } from '../../../consts/consts';
|
||||
import { WarReward } from '../../../services/warRewardService';
|
||||
@@ -33,7 +33,7 @@ export class ExpeditionBattleHandler {
|
||||
|
||||
// 每日刷新,刷新关卡进度,宝箱进度,武将状态
|
||||
let now = new Date();
|
||||
let today = now.setHours(0, 0, 0, 0);
|
||||
let today = setLocalHours(0, now);
|
||||
let expeditionRecord = await ExpeditionRecordModel.getTodayRecord(roleId, today);
|
||||
if(!expeditionRecord) { // 每天新建一条记录
|
||||
let code = genCode(8);
|
||||
|
||||
@@ -252,7 +252,6 @@ export class NormalBattleHandler {
|
||||
if(!warInfo) {
|
||||
return resResult(STATUS.BATTLE_MISS_INFO);
|
||||
}
|
||||
console.log(warInfo)
|
||||
// 校验是否三星通关过
|
||||
let condition1 = await BattleRecordModel.getBattleRecordByIdAndStar(roleId, battleId, 3);
|
||||
if(!condition1) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import { TowerRecordModel } from './../../../db/TowerRecord';
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { getTaskById, getTowerDataByLv } from '../../../pubUtils/gamedata';
|
||||
import { decodeArrayStr, resResult, shouldRefresh, calculateNum } from '../../../pubUtils/util';
|
||||
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurTasks, treatTask, getRemainTime } from '../../../services/battleService';
|
||||
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurTasks, treatTask, getRemainTime, getTasksReward } from '../../../services/battleService';
|
||||
import { handleFixedReward, handleReward } from '../../../services/rewardService';
|
||||
|
||||
export default function(app: Application) {
|
||||
@@ -109,12 +109,10 @@ export class TowerBattleHandler {
|
||||
let {data: {hangUpSpdUpCnt, gold}} = result;
|
||||
|
||||
const costGold = this.getHangUpCost(hangUpSpdUpCnt, msg.speedUpCnt);
|
||||
console.log(costGold, gold)
|
||||
if(costGold > gold) {
|
||||
return resResult(STATUS.TOWER_GOLD_NOT_ENOUGH);
|
||||
}
|
||||
await RoleModel.costGold(roleId, costGold);
|
||||
console.log(costGold);
|
||||
|
||||
const spdUpResult = await RoleModel.hangUpSpdUp(roleId, msg.speedUpCnt, curTime);
|
||||
if (!spdUpResult) {
|
||||
@@ -170,7 +168,12 @@ export class TowerBattleHandler {
|
||||
}
|
||||
await RoleModel.increaseTowerRefCnt(roleId, needRefresh, curTime);
|
||||
|
||||
// tmp: 将刷掉的旧任务的奖励发送到邮件中
|
||||
let oldReward = await getTasksReward(roleId, curTime);
|
||||
console.log(JSON.stringify(oldReward));
|
||||
await TowerTaskRecModel.refreshTask(roleId); // 刷掉旧的任务
|
||||
|
||||
|
||||
let curTasks = await createCurTasks(towerLv, roleId, roleName); // 刷出新的任务
|
||||
|
||||
let nextCostGold = calculateNum(GOLD_COST_RATIO.TPWER_TASK_REF, {num: towerTaskReCnt + 1}, 200);
|
||||
@@ -255,4 +258,11 @@ export class TowerBattleHandler {
|
||||
const rec = await TowerTaskRecModel.finishTask(msg.batchCode, compTasks);
|
||||
return resResult(STATUS.SUCCESS, { compTasks: treatTask(rec, curTime), goods });
|
||||
}
|
||||
|
||||
|
||||
async getTowerRank(msg: {}, session: BackendSession) {
|
||||
let ranks = await RoleModel.getRank('tower', ['roleId', 'roleName', 'towerLv', 'lv', 'vLv']);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { ranks });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ export class EntryHandler {
|
||||
* @param {Object} session current session object
|
||||
*/
|
||||
async enter(msg: { token: string, serverId: number }, session: FrontendSession) {
|
||||
console.log('******enter')
|
||||
|
||||
let self = this;
|
||||
let serverId = msg.serverId;
|
||||
|
||||
@@ -197,7 +197,7 @@ async function checkCond(roleId: string, heroes, type: number, param: number, cn
|
||||
|
||||
switch (type) {
|
||||
case 1:
|
||||
let field = param == 1?'star': 'rank';
|
||||
let field = param == 1?'star': 'fire'; // fire:觉醒的火,在满星了之后会继续进行觉醒,显示类似6星1火
|
||||
for(let hid of heroes) {
|
||||
const rec = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
if (rec[field] >= param) {
|
||||
@@ -285,4 +285,20 @@ export function treatTask(recs: Array<any>, curTime: Date) {
|
||||
}
|
||||
return { heroes, batchCode, taskId, taskCode, status, completeTime, remainTime }
|
||||
});
|
||||
}
|
||||
|
||||
export async function getTasksReward(roleId: string, curTime: Date) {
|
||||
let oldTasks = await TowerTaskRecModel.getCurTasks(roleId);
|
||||
let goods = [];
|
||||
for(let task of oldTasks) {
|
||||
let {completeTime, reward, termsForAdd, additionalReward} = getTaskById(task.taskId);
|
||||
if (task.sendTime && task.sendTime.getTime() + completeTime * 1000 < curTime.getTime()) {
|
||||
goods = goods.concat(decodeStr('fixReward', reward));
|
||||
if(termsForAdd) {
|
||||
const result = checkTaskConditions(roleId, task.heroes, termsForAdd);
|
||||
goods = goods.concat(decodeStr('fixReward', result?additionalReward:''));
|
||||
}
|
||||
}
|
||||
}
|
||||
return goods
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import { Application, FrontendOrBackendSession } from 'pinus';
|
||||
import { getGamedata } from '../pubUtils/gamedata';
|
||||
import EventRecord, { EventRecordModel } from '../db/EventRecord';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight, resResult } from '../pubUtils/util';
|
||||
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight, resResult, setLocalHours } 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_REFRESH_NUM } from '../consts/consts';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
@@ -62,8 +62,8 @@ export async function setBattleStatus(app: Application, session: FrontendOrBacke
|
||||
*/
|
||||
export function getEventTime(now: Date) {
|
||||
let curTime = Number(now);
|
||||
let todayA = now.setHours(12, 0, 0, 0) - 8*60*60*1000; // 每天12点,修复时差
|
||||
let todayB = now.setHours(18, 0, 0, 0) - 8*60*60*1000; // 每天18点,修复时差
|
||||
let todayA = setLocalHours(12, now); // 每天12点
|
||||
let todayB = setLocalHours(18, now); // 每天18点
|
||||
let yesterdayB = todayB - 86400000; // 前一天12点
|
||||
let t = 0;
|
||||
if(curTime < todayA) {
|
||||
@@ -196,7 +196,7 @@ export async function refreshEvent(num: number, roleId: string, roleName: string
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
dicEvent = dicEvent.filter(cur => { // 筛选适合等级
|
||||
let { suitLevel } = cur;
|
||||
suitLevel = decodeStrSingle('eventSuitLevel', suitLevel);
|
||||
suitLevel = decodeStrSingle('suitLevel', suitLevel);
|
||||
return suitLevel.min <= role.lv && suitLevel.max >= role.lv
|
||||
});
|
||||
if(EVENT_RANDOM_TYPE_ONE_OPEN) {
|
||||
@@ -292,7 +292,6 @@ function randomPosition(positionStr: string, prePoint: Array<number>, curPoint:
|
||||
* @param msg
|
||||
*/
|
||||
function pushEventMsg(app: Application, roleId: string, channelName: string, msg: any ) {
|
||||
console.log('***pushEventMsg', channelName)
|
||||
let channelService = app.get('channelService');
|
||||
|
||||
let param = { msg };
|
||||
|
||||
@@ -4,7 +4,7 @@ import { RoleModel } from '../db/Role';
|
||||
import { PvpDefenseModel } from '../db/PvpDefense';
|
||||
|
||||
import { getWarJsons, getGamedata } from '../pubUtils/gamedata';
|
||||
import { decodeStr, resResult } from '../pubUtils/util';
|
||||
import { decodeStr, resResult, setLocalHours } from '../pubUtils/util';
|
||||
import { WAR_JSON_ATTRIBUTE_TYPE } from '../consts/consts';
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ export async function getCEScaleAndRange(roleId: string, curDicExpedition: any)
|
||||
// 匹配,判断是不是新手期
|
||||
const role = await RoleModel.findByRoleId(roleId);
|
||||
let now = new Date();
|
||||
let today = now.setHours(0,0,0,0);
|
||||
let today = setLocalHours(0, now);
|
||||
let isNew = today - role.createdAt.getTime() <= 3*24*60*60*1000;
|
||||
let scale = isNew?curDicExpedition.CEScaleNew:curDicExpedition.CEScale;
|
||||
let range = isNew?curDicExpedition.CERangeNew:curDicExpedition.CERange;
|
||||
|
||||
@@ -13,7 +13,7 @@ export async function roleLevelup(roleId: string, kingExp: number) {
|
||||
for(let i = lv; i <= newLv; i++) {
|
||||
let {sum, cur} = getExpByLv(i);
|
||||
let lastSum = sum - cur;
|
||||
console.log(sum, cur, lastSum, exp, newExp);
|
||||
// console.log(sum, cur, lastSum, exp, newExp);
|
||||
|
||||
let startExp = exp > lastSum? exp - lastSum: 0;
|
||||
let getExp = newExp > sum? cur - startExp: newExp - lastSum - startExp;
|
||||
|
||||
@@ -82,7 +82,6 @@ async function rewardItems (roleId: string, dicGood: any, field: string, data: {
|
||||
let {id, cnt} = data;
|
||||
|
||||
let result = await RoleModel.addItems(roleId, field, id, cnt);
|
||||
console.log(result)
|
||||
|
||||
goods.push({
|
||||
id: id,
|
||||
|
||||
Reference in New Issue
Block a user