26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import { FrontendOrBackendSession, pinus } from "pinus";
|
|
import { refreshMails } from '../services/mailService';
|
|
import { STATUS } from '../consts/statusCode';
|
|
import { resResult } from '../pubUtils/util';
|
|
import { nowSeconds } from "../pubUtils/timeUtil";
|
|
import { RoleModel } from '../db/Role';
|
|
/**
|
|
* 刷新
|
|
* @param session
|
|
*/
|
|
export async function refresh(session: FrontendOrBackendSession) {
|
|
const roleId = session.get('roleId');
|
|
const sid = session.get('sid');
|
|
const serverId: number = parseInt(session.get('serverId'));
|
|
let updatedMailAt: number = parseInt(session.get('updatedMailAt')); //记录上次更新gm邮件的时间
|
|
let uids = [{uid: roleId, sid}];
|
|
pinus.app.get('channelService').pushMessageByUids('onPushCurrentTime', resResult(STATUS.SUCCESS, {time: Date.now()}), uids);
|
|
let nowTime = nowSeconds();
|
|
if (!!roleId && updatedMailAt < nowTime - 5) { //保持最少5秒间隙
|
|
session.set('updatedMailAt', nowTime);
|
|
session.push('updatedMailAt', () => {});
|
|
RoleModel.updatedRoleMailAt(roleId, nowTime);
|
|
await refreshMails(roleId, sid, serverId, updatedMailAt);
|
|
}
|
|
}
|