添加domain文件夹

This commit is contained in:
luying
2021-02-01 17:10:14 +08:00
parent 67668097d6
commit 39b68de801
23 changed files with 299 additions and 161 deletions
+20 -5
View File
@@ -1,9 +1,9 @@
import { HANG_UP_CONSTS, ROLE_TERAPH } from './../consts';
import { HANG_UP_CONSTS, ROLE_TERAPH, ROLE } from './../consts';
import BaseModel from './BaseModel';
import { CeAttrRole } from './generalField';
import { index, getModelForClass, prop, DocumentType, Ref, mongoose } from '@typegoose/typegoose';
import User from './User';
import { shouldRefresh } from '../pubUtils/util';
import { shouldRefresh, reduceCe } from '../pubUtils/util';
import { initRoleAtrr } from '../pubUtils/playerCe';
import Hero,{} from '../db/Hero';
import { nowSeconds } from '../pubUtils/timeUtil';
@@ -112,7 +112,7 @@ export default class Role extends BaseModel {
exp: number; // 经验值
@prop({ required: true, default: 1 })
lv: number; // 主公等级
@prop({ required: true, default: 0 })
@prop({ required: true, default: 0, set: (val: number) => val, get: (val: number) => reduceCe(val) })
ce: number; // 总战力
@prop({ required: true, default: new CeAttrRole(), _id: false })
globalCeAttr: CeAttrRole; // 总战力
@@ -223,8 +223,14 @@ export default class Role extends BaseModel {
return role;
}
public static async findByRoleId(roleId: string, lean = true) {
const role: RoleType = await RoleModel.findOne({ roleId }).lean(lean);
/**
* 根据roleId获取一条数据
* @param roleId 玩家id
* @param select 选取字段,来自 selectConst/ROLE
* @param virtuals 是否使用虚拟字段,如ce使用了自动缩小1w倍
*/
public static async findByRoleId(roleId: string, select?: string, virtuals = false) {
const role: RoleType = await RoleModel.findOne({ roleId }).select(select).lean({virtuals});
return role;
}
@@ -428,6 +434,15 @@ export default class Role extends BaseModel {
return result;
}
// 获取好友推荐列表
public static async getRecommedList(minLv: number, maxLv: number, time: number) {
const result = await RoleModel.find({ quitTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv } }, { _id: 0 })
.select(ROLE.SHOW_SIMPLE)
.sort({quitTime: -1, lv: -1, ce: -1})
.limit(100).lean({ virtuals: true });
return result;
}
// 公会解散
public static async dissmissGuild(members: string[]) {
const result = await RoleModel.updateMany({ roleId: { $in: members } }, { hasGuild: false }).lean();