军团:弹劾
This commit is contained in:
@@ -58,6 +58,7 @@ export enum GUILD_OPERATE {
|
||||
EQUIP_PRODUCE = 25, // 炼器堂研发
|
||||
BE_KICKED = 26, // 被踢出军团
|
||||
BE_SET_AUTH = 27, // 被授权头衔
|
||||
BE_IMPEACH = 28, // 被弹劾
|
||||
}
|
||||
|
||||
// 军团状态
|
||||
|
||||
@@ -137,6 +137,7 @@ export const STATUS = {
|
||||
GUILD_INVITE_NOT_FOUND: { code: 20910, simStr: '该邀请未找到' },
|
||||
GUILD_AUTH_NOT_CHANGE: { code: 20911, simStr: '权限未发生变化' },
|
||||
GUILD_MEMBER_NOT_FOUND: { code: 20912, simStr: '未找到该成员' },
|
||||
GUILD_LEADER_LOGIN: { code: 20913, simStr: '团长未离线满72小时' },
|
||||
|
||||
// 通用 30000 - 30099
|
||||
DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' },
|
||||
|
||||
@@ -86,7 +86,7 @@ export default class Guild extends BaseModel {
|
||||
delete update._id;
|
||||
const code = genCode(6);
|
||||
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, update, { upsert: true, new: true })
|
||||
.populate('leader', 'roleName sHid headHid lv loginTime ce', 'Role')
|
||||
.populate('leader', 'roleId roleName sHid headHid lv loginTime ce', 'Role')
|
||||
.lean();
|
||||
|
||||
return result;
|
||||
@@ -117,7 +117,7 @@ export default class Guild extends BaseModel {
|
||||
public static async findByCode(code: string, serverId: number, select?: string) {
|
||||
const result = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId })
|
||||
.select(select)
|
||||
.populate('leader', 'roleName sHid headHid lv loginTime ce', 'Role')
|
||||
.populate('leader', 'roleId roleName sHid headHid lv loginTime ce', 'Role')
|
||||
.lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,9 @@ export default class UserGuild extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
honourWeekly: number;
|
||||
|
||||
@prop({ required: true, default: Date.now() })
|
||||
honourUpdateTime: number;
|
||||
|
||||
@prop({ required: true, default: USER_GUILD_STATUS.ON, enum: USER_GUILD_STATUS})
|
||||
status: number;
|
||||
|
||||
@@ -70,6 +73,15 @@ export default class UserGuild extends BaseModel {
|
||||
return userGuilds;
|
||||
}
|
||||
|
||||
public static async findTopHonour(guildCode: string, select?: string) {
|
||||
const userGuilds: UserGuildType = await UserGuildModel.findOne({ guildCode, status: USER_GUILD_STATUS.ON, auth: { $ne: GUILD_AUTH.LEADER } })
|
||||
.sort({ honourWeekly: -1, honourUpdateTime: 1 })
|
||||
.select(select)
|
||||
.populate('role', 'roleId roleName ce headHid sHid lv title loginTime', 'Role')
|
||||
.lean();
|
||||
return userGuilds;
|
||||
}
|
||||
|
||||
public static async createUserGuild(guildCode: string, role: RoleType, isLeader: boolean) {
|
||||
const doc = new UserGuildModel();
|
||||
let job = isLeader? GUILD_JOB.JIANGJUN: GUILD_JOB.SHIZHANG;
|
||||
@@ -77,7 +89,7 @@ export default class UserGuild extends BaseModel {
|
||||
const update = Object.assign(doc.toJSON(), { guildCode, roleId: role.roleId, role: role._id, job, auth });
|
||||
delete update._id;
|
||||
const result: UserGuildType = await UserGuildModel.findOneAndUpdate({ roleId: role.roleId, guildCode, status: USER_GUILD_STATUS.ON }, update, { upsert: true, new: true })
|
||||
.select('honourWeekly job auth')
|
||||
.select('honourWeekly honourUpdateTime job auth')
|
||||
.lean();
|
||||
|
||||
return result;
|
||||
|
||||
@@ -32,22 +32,10 @@ export function getBeforeDayDate(day: number) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 x天后的y点
|
||||
* @param curTime 现在时间
|
||||
* @param hour 几点刷新
|
||||
* 获取几天以前(按秒获取)
|
||||
* @param day 几天以前
|
||||
*/
|
||||
export function getRefTime(now = new Date(), checkHour: number, day = 0) {
|
||||
let curTime = new Date(now.getTime());
|
||||
if (checkHour < 0) {
|
||||
checkHour = 24 + checkHour;
|
||||
if (curTime.getHours() >= checkHour) {
|
||||
curTime.setDate(curTime.getDate() + 1);
|
||||
}
|
||||
} else {
|
||||
if (curTime.getHours() < checkHour) {
|
||||
curTime.setDate(curTime.getDate() - 1);
|
||||
}
|
||||
}
|
||||
let today = curTime.setHours(checkHour, 0, 0, 0);;
|
||||
return new Date(today + day * 24 * 60 * 60 * 1000);
|
||||
export function getBeforeDaySeconds(day: number) {
|
||||
let time = nowSeconds() - day * PER_DAY;
|
||||
return time;
|
||||
}
|
||||
@@ -23,5 +23,6 @@
|
||||
{"id": 22, "auths": "1&2"},
|
||||
{"id": 23, "auths": "1&2&3"},
|
||||
{"id": 26, "auths": "2&3"},
|
||||
{"id": 27, "auths": "2&3"}
|
||||
{"id": 27, "auths": "2&3"},
|
||||
{"id": 28, "auths": "1&"}
|
||||
]
|
||||
Reference in New Issue
Block a user