Files
ZYZ/game-server/app/services/refreshService.ts
T

56 lines
2.3 KiB
TypeScript

import { FrontendOrBackendSession, pinus } from "pinus";
import { STATUS } from '../consts/statusCode';
import { resResult, shouldRefresh, shouldRefreshWeek } from '../pubUtils/util';
import { nowSeconds } from "../pubUtils/timeUtil";
// import { RoleModel } from '../db/Role';
import { refDailyTask, refDailyTaskBox } from './taskService'
// import { EVENT_STATUS, FUNCS_ID } from "../consts";
// import { startEvent } from "./eventSercive";
import * as dicParam from '../pubUtils/dicParam';
import { dispatch } from "../pubUtils/dispatcher";
/**
* 刷新
* @param session
*/
export async function refresh(session: FrontendOrBackendSession) {
const roleId = session.get('roleId')||'test';
const sid = session.get('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);
} 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 startEvent(session);
}
/**
* 每日刷新
* @param session
*/
export async function refreshDaily(session: FrontendOrBackendSession) {
if(session.get('roleId')) {
let refDaily: number = session.get('refDaily'); // 10位时间戳,每天每人更新一次
let refWeekly: number = session.get('refWeekly'); // 10位时间戳,每天每人更新一次
if(!refDaily || shouldRefresh(new Date(refDaily * 1000), new Date())) {
refDaily = nowSeconds();
session.set('refDaily', refDaily);
session.push('refDaily', () => {});
await refDailyTask(session.get('roleId'), session.get('sid'));
}
if(!refWeekly || shouldRefreshWeek(new Date(refWeekly * 1000), new Date())) {
refWeekly = nowSeconds();
session.set('refWeekly', refWeekly);
session.push('refWeekly', () => {});
await refDailyTaskBox(session.get('roleId'), session.get('sid'));
}
}
}