军团活动测试:debug诸侯混战挑战时间

This commit is contained in:
luying
2021-10-18 11:49:00 +08:00
parent d11b8ab2b8
commit cdb0c27e94
6 changed files with 59 additions and 10 deletions

View File

@@ -372,6 +372,7 @@ export class GmHandler {
await pinus.app.rpc.systimer.systimerRemote.setGuildActivitySchedule.broadcast(); await pinus.app.rpc.systimer.systimerRemote.setGuildActivitySchedule.broadcast();
// 向客户端发送时间 // 向客户端发送时间
let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 0, 0) - startActivity; let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 0, 0) - startActivity;
pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time);
await pushCurrentTime(time); await pushCurrentTime(time);
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
startActivity: startTimes[0], startActivity: startTimes[0],
@@ -382,4 +383,22 @@ export class GmHandler {
endWorldAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000 + endGuildAuction * 1000 + startWorldAuction * 1000 + endWorldAuction * 1000, endWorldAuction: startTimes[0] + endActivity * 1000 + startGuildAuction * 1000 + endGuildAuction * 1000 + startWorldAuction * 1000 + endWorldAuction * 1000,
}); });
} }
async cancelGuildActivityDebug(msg: { }, session: BackendSession) {
// 设置字典
let now = new Date();
await pinus.app.rpc.guild.guildRemote.reloadResources.broadcast();
await pinus.app.rpc.systimer.systimerRemote.reloadResources.broadcast();
await pinus.app.rpc.guild.guildActivityRemote.setDay.broadcast(now.getDay());
await pinus.app.rpc.systimer.systimerRemote.setDay.broadcast(now.getDay());
// 开启定时器
await pinus.app.rpc.systimer.systimerRemote.setAuctionSchedule.broadcast();
await pinus.app.rpc.systimer.systimerRemote.setGuildActivitySchedule.broadcast();
// 向客户端发送时间
pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(now.getTime());
await pushCurrentTime(now.getTime());
return resResult(STATUS.SUCCESS);
}
} }

View File

@@ -10,12 +10,13 @@ import { UserGuildModel } from "../../../db/UserGuild";
import { GuildActivityRecordModel } from "../../../db/GuildActivityRec"; import { GuildActivityRecordModel } from "../../../db/GuildActivityRec";
import { nowSeconds, getTimeFun } from "../../../pubUtils/timeUtil"; import { nowSeconds, getTimeFun } from "../../../pubUtils/timeUtil";
import { getGoldObject } from "../../../pubUtils/itemUtils"; import { getGoldObject } from "../../../pubUtils/itemUtils";
import { GUILDACTIVITY } from "../../../pubUtils/dicParam"; import { GUILDACTIVITY, SERVER_DEBUG_MODE } from "../../../pubUtils/dicParam";
import { handleCost } from "../../../services/rewardService"; import { handleCost } from "../../../services/rewardService";
import { addActive } from "../../../services/guildService"; import { addActive } from "../../../services/guildService";
import { Rank } from "../../../services/rankService"; import { Rank } from "../../../services/rankService";
import { checkActivityTask, checkTask } from "../../../services/taskService"; import { checkActivityTask, checkTask } from "../../../services/taskService";
import { guildInter } from "../../../pubUtils/interface"; import { guildInter } from "../../../pubUtils/interface";
import { dispatch } from "../../../pubUtils/dispatcher";
export default function (app: Application) { export default function (app: Application) {
new HandlerService(app, {}); new HandlerService(app, {});
@@ -69,7 +70,10 @@ export class CityActivityHandler {
let obj = getCityActivityObj(); let obj = getCityActivityObj();
let gateHp = obj.getGateHpAndInc(serverId, cityId, dicCity.hp); let gateHp = obj.getGateHpAndInc(serverId, cityId, dicCity.hp);
let myGuildActivityRec = await UserGuildActivityRecModel.findByRoleId(roleId, this.aid); let guildActivityRec = await GuildActivityRecordModel.getRecord(guildCode, serverId, this.aid);
if (!guildActivityRec) return resResult(STATUS.INTERNAL_ERR);
let myGuildActivityRec = await UserGuildActivityRecModel.findByRoleId(roleId, guildActivityRec.code);
let challengeTime = 0; let challengeTime = 0;
if (myGuildActivityRec) { if (myGuildActivityRec) {
challengeTime = myGuildActivityRec.challengeTime; challengeTime = myGuildActivityRec.challengeTime;
@@ -278,7 +282,13 @@ export class CityActivityHandler {
if (!dicCity) return resResult(STATUS.DIC_DATA_NOT_FOUND); if (!dicCity) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 更新userGuildActivityRecord // 更新userGuildActivityRecord
let challengeTime = <number>getTimeFun().getBeforeSeconds(-1 * GUILDACTIVITY.CITYACTIVITY_CHALLENGE_CD); let challengeTime = nowSeconds() + GUILDACTIVITY.CITYACTIVITY_CHALLENGE_CD;
if(SERVER_DEBUG_MODE.CURRENT_TIME == 1) {
let guilds = pinus.app.getServersByType('guild');
let guild = dispatch(roleId, guilds, 'guild');
let currentTime = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id);
challengeTime = Math.floor(currentTime/1000) + GUILDACTIVITY.CITYACTIVITY_CHALLENGE_CD;
}
let myGuildActivityRec = await UserGuildActivityRecModel.updateInfo(code, { isSuccess, isCompleted: true, cityId, challengeTime }); let myGuildActivityRec = await UserGuildActivityRecModel.updateInfo(code, { isSuccess, isCompleted: true, cityId, challengeTime });
if (!myGuildActivityRec) return resResult(STATUS.INTERNAL_ERR); if (!myGuildActivityRec) return resResult(STATUS.INTERNAL_ERR);

View File

@@ -16,6 +16,8 @@ export class GuildActivityRemote {
} }
private channelService: ChannelService; private channelService: ChannelService;
private currentTime: number = Date.now();
private setTime: number = Date.now();
/** /**
* 从systimer服分发到guild各个服发送排行榜数据 * 从systimer服分发到guild各个服发送排行榜数据
@@ -88,4 +90,13 @@ export class GuildActivityRemote {
async setDay(week: number) { async setDay(week: number) {
setWeek(week); setWeek(week);
} }
setCurrentTime(time: number) {
this.currentTime = time;
this.setTime = Date.now();
}
getCurrentTime() {
return Date.now() - this.setTime + this.currentTime;
}
} }

View File

@@ -7,7 +7,7 @@ import { getCurDay, getTimeFunD, getTimeFunM } from '../pubUtils/timeUtil';
import { gameData, getGoodById } from '../pubUtils/data'; import { gameData, getGoodById } from '../pubUtils/data';
import { DividendParam, DividendType } from '../db/Dividend'; import { DividendParam, DividendType } from '../db/Dividend';
import { sendMailByContent } from './mailService'; import { sendMailByContent } from './mailService';
import { FrontendOrBackendSession } from 'pinus'; import { FrontendOrBackendSession, pinus } from 'pinus';
import { participants } from './guildActivityService'; import { participants } from './guildActivityService';
import { Member } from '../domain/battleField/guildActivity'; import { Member } from '../domain/battleField/guildActivity';
import * as dicParam from '../pubUtils/dicParam'; import * as dicParam from '../pubUtils/dicParam';
@@ -230,7 +230,7 @@ export async function startGuildAuction() {
if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) {
let day = getCurDay(); let day = getCurDay();
let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 20, 0); let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 20, 0);
await pushCurrentTime(time); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time);
} }
return true; return true;
@@ -251,7 +251,7 @@ export async function startWorldAuction() {
if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) {
let day = getCurDay(); let day = getCurDay();
let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 40, 0); let time = <number>getTimeFunM().getTimeWithWeek(day, 20, 40, 0);
await pushCurrentTime(time); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time);
} }
return true; return true;
} catch (e) { } catch (e) {
@@ -270,7 +270,7 @@ export async function stopAuction() {
if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) {
let day = getCurDay(); let day = getCurDay();
let time = <number>getTimeFunM().getTimeWithWeek(day, 22, 0, 0); let time = <number>getTimeFunM().getTimeWithWeek(day, 22, 0, 0);
await pushCurrentTime(time); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time);
} }
return true; return true;
} catch (e) { } catch (e) {

View File

@@ -7,6 +7,7 @@ import { refDailyTask, refDailyTaskBox } from './taskService'
// import { EVENT_STATUS, FUNCS_ID } from "../consts"; // import { EVENT_STATUS, FUNCS_ID } from "../consts";
// import { startEvent } from "./eventSercive"; // import { startEvent } from "./eventSercive";
import * as dicParam from '../pubUtils/dicParam'; import * as dicParam from '../pubUtils/dicParam';
import { dispatch } from "../pubUtils/dispatcher";
/** /**
* 刷新 * 刷新
@@ -17,7 +18,14 @@ export async function refresh(session: FrontendOrBackendSession) {
const sid = session.get('sid'); const sid = session.get('sid');
let uids = [{uid: roleId, sid}]; let uids = [{uid: roleId, sid}];
if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME != 1) pinus.app.get('channelService').pushMessageByUids('onPushCurrentTime', resResult(STATUS.SUCCESS, {time: Date.now()}), uids); if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME != 1) {
pinus.app.get('channelService').pushMessageByUids('onPushCurrentTime', resResult(STATUS.SUCCESS, {time: Date.now()}), uids);
} else {
let guilds = pinus.app.getServersByType('guild');
let guild = dispatch(roleId, guilds, 'guild');
let currentTime = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id);
pinus.app.get('channelService').pushMessageByUids('onPushCurrentTime', resResult(STATUS.SUCCESS, {time: currentTime }), uids);
}
await refreshDaily(session); await refreshDaily(session);
// await startEvent(session); // await startEvent(session);
} }

View File

@@ -30,6 +30,7 @@ export class DamageRecord {
} }
@index({ code: 1 }) @index({ code: 1 })
@index({ roleId: 1, sourceCode: 1 })
export default class UserGuildActivityRec extends BaseModel { export default class UserGuildActivityRec extends BaseModel {
@prop({ required: true }) @prop({ required: true })
@@ -105,9 +106,9 @@ export default class UserGuildActivityRec extends BaseModel {
} }
public static async findByRoleId(roleId: string, aid: number) { public static async findByRoleId(roleId: string, sourceCode: string) {
let today = getZeroPointD(); let today = getZeroPointD();
let rec: UserGuildActivityRecType = await UserGuildActivityRecModel.findOne({ roleId, aid, createdAt: { $gte: today }}).lean(); let rec: UserGuildActivityRecType = await UserGuildActivityRecModel.findOne({ roleId, sourceCode, createdAt: { $gte: today }}).lean();
return rec; return rec;
} }