军团:添加踢人解散退出,添加权限
This commit is contained in:
+30
-14
@@ -7,19 +7,6 @@ import { shouldRefresh } from '../pubUtils/util';
|
||||
import { initRoleAtrr } from '../pubUtils/playerCe';
|
||||
import Hero,{} from '../db/Hero';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
interface roleUpdate {
|
||||
ce?: number;
|
||||
_id?:number;
|
||||
coin?: number;
|
||||
gold?:number;
|
||||
frdCnt?: number;
|
||||
expeditionPoint?:number;
|
||||
globalCeAttr?:CeAttrRole;
|
||||
title?:number;
|
||||
teraphs?: Teraph[];
|
||||
topFive?: TopHero[];
|
||||
topFiveCe?: number;
|
||||
}
|
||||
|
||||
class TopHero {
|
||||
@prop({ required: true })
|
||||
@@ -219,8 +206,10 @@ export default class Role extends BaseModel {
|
||||
teraphs:Array<Teraph>;
|
||||
|
||||
// 公会
|
||||
@prop({ required: true, default: false })
|
||||
hasGuild: boolean; // 是否加入过公会
|
||||
@prop({ required: true, default: 0 })
|
||||
quitGuildTime: number; // 上次退出公会的时间
|
||||
quitGuildTime: number; // 上次退出公会的时间
|
||||
|
||||
public static async findByUid(uid: number, serverId: number, lean = true) {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { loginTime: nowSeconds() }, { new: true }).lean(lean);
|
||||
@@ -416,8 +405,35 @@ export default class Role extends BaseModel {
|
||||
let result: RoleType = await RoleModel.findOneAndUpdate({roleId}, {$set:roleUpdate}, {new: true}).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 记录加入公会
|
||||
public static async joinGuild(roleId: string) {
|
||||
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: false }, { hasGuild: true }, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
// 获取未加入公会且登录时间在三天内的人
|
||||
public static async getInviteList(time: number) {
|
||||
const result = await RoleModel.find({ loginTime: { $gt: time }, hasGuild: false })
|
||||
.select('roleId roleName ce headHid sHid lv title job loginTime')
|
||||
.limit(100).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
// 公会解散
|
||||
public static async dissmissGuild(members: string[]) {
|
||||
const result = await RoleModel.updateMany({ roleId: { $in: members } }, { hasGuild: false }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
// 退出公会
|
||||
public static async quitGuild(roleId: string, now: number) {
|
||||
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: true }, { hasGuild: false, quitGuildTime: now }, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
export interface RoleType extends Pick<DocumentType<Role>, keyof Role>{};
|
||||
type roleUpdate = Partial<RoleType>; // 将所有字段变成可选项
|
||||
|
||||
Reference in New Issue
Block a user