活动:时间

This commit is contained in:
陆莹
2022-03-23 13:54:04 +08:00
parent 29c5ae8a0a
commit 7bb8250060
70 changed files with 456 additions and 342 deletions
+13 -9
View File
@@ -13,7 +13,7 @@ import { getRandSingleEelm } from '../pubUtils/util';
import { ActivityModel } from '../db/Activity';
import { TimeLimitRankData } from '../domain/activityField/timeLimitRankField';
import { ActivityTimeLimitRankModel } from '../db/ActivityTimeLimitRank';
import { RoleType } from '../db/Role';
import { RoleModel, RoleType } from '../db/Role';
import { GuildType } from '../db/Guild';
/**
@@ -75,9 +75,10 @@ export async function initRank(serverId: number) {
}
export async function initActivitiesRank(serverId: number, activityGroupId: number[]) {
let serverTime = await getServerCreateTime(serverId);
let activities = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TIME_LIMIT_RANK, new Date());
for(let activity of activities) {
let data = new TimeLimitRankData(activity, 0);
let data = new TimeLimitRankData(activity, 0, serverTime);
if(data.beginTime <= Date.now() && data.endTime >= Date.now()) {
let redisKey = getRedisKeyByRankType(data.rankType, true);
@@ -355,12 +356,15 @@ export async function getRoleOnlineInfo(roleId: string) {
}
}
export async function getRoleCreateTime(roleId: string) {
export async function getRoleCreateTime(roleId: string, role?: RoleType) {
if(role && role.createTime) return role.createTime;
let onlineInfo = await getRoleOnlineInfo(roleId);
if(onlineInfo.isOnline) {
return onlineInfo.createtime;
} else {
return null
let role = await RoleModel.findByRoleId(roleId);
return role?.createTime||0;
}
}
@@ -451,10 +455,12 @@ export async function readDataBase() {
async function setServerList() {
const serverList = await ServerlistModel.getAllServerList();
await redisClient().delAsync(REDIS_KEY.SERVER);
await redisClient().delAsync(REDIS_KEY.SERVER_OPEN_TIME);
for(let { id, name, openTime } of serverList) {
// console.log(roleId);
await redisClient().hsetAsync(REDIS_KEY.SERVER, `${id}`, `${name}|${openTime}`);
await redisClient().hsetAsync(REDIS_KEY.SERVER, `${id}`, `${name}`);
await redisClient().hsetAsync(REDIS_KEY.SERVER_OPEN_TIME, `${id}`, `${openTime}`);
}
}
@@ -472,14 +478,12 @@ export async function getAllServers() {
}
export async function getServerName(serverId: number) {
let value = await redisClient().hgetAsync(REDIS_KEY.SERVER, `${serverId}`);
let name = value.split('|')[0];
let name = await redisClient().hgetAsync(REDIS_KEY.SERVER, `${serverId}`);
return name||'常山少年'
}
export async function getServerCreateTime(serverId: number) {
let value = await redisClient().hgetAsync(REDIS_KEY.SERVER, `${serverId}`);
let time = value.split('|')[1];
let time = await redisClient().hgetAsync(REDIS_KEY.SERVER_OPEN_TIME, `${serverId}`);
return parseInt(time);
}