活动:时间
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user