军团:修改个人功勋→个人活跃

This commit is contained in:
luying
2021-01-25 09:43:03 +08:00
parent bb2f17089e
commit c4a106745b
11 changed files with 130 additions and 53 deletions
+11 -13
View File
@@ -28,10 +28,13 @@ export default class UserGuild extends BaseModel {
job: number;
@prop({ required: true, default: 0 })
honourWeekly: number;
activeWeekly: number;
@prop({ required: true, default: 0 })
activeDaily: number;
@prop({ required: true, default: Date.now() })
honourUpdateTime: number;
activeUpdateTime: number;
@prop({ required: true, default: USER_GUILD_STATUS.ON, enum: USER_GUILD_STATUS})
status: number;
@@ -76,7 +79,7 @@ export default class UserGuild extends BaseModel {
return myGuild;
}
public static async getListByGuild(guildCode: string, select?: string, sort: { auth?: number, honourWeekly?: number, honourUpdateTime?: number } = {auth: 1}) {
public static async getListByGuild(guildCode: string, select?: string, sort: { auth?: number, activeWeekly?: number, activeUpdateTime?: number } = {auth: 1}) {
const userGuilds: UserGuildType[] = await UserGuildModel.find({ guildCode, status: USER_GUILD_STATUS.ON })
.select(select)
.sort(sort)
@@ -85,9 +88,9 @@ export default class UserGuild extends BaseModel {
return userGuilds;
}
public static async findTopHonour(guildCode: string, select?: string) {
public static async findTopActive(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 })
.sort({ activeWeekly: -1, activeUpdateTime: 1 })
.select(select)
.populate('role', 'roleId roleName ce headHid sHid lv title loginTime', 'Role')
.lean();
@@ -96,12 +99,12 @@ export default class UserGuild extends BaseModel {
public static async createUserGuild(guildCode: string, role: RoleType, isLeader: boolean) {
const doc = new UserGuildModel();
let job = isLeader? GUILD_JOB.JIANGJUN: GUILD_JOB.SHIZHANG;
let job = isLeader? GUILD_JOB.DAJIANGJUN: GUILD_JOB.SHIBING;
let auth = isLeader? GUILD_AUTH.LEADER: GUILD_AUTH.MEMBER;
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 honourUpdateTime job auth receivedActive')
.select('activeDaily activeRecord activeWeekly activeUpdateTime job auth receivedActive')
.lean();
return result;
@@ -124,17 +127,12 @@ export default class UserGuild extends BaseModel {
return result;
}
public static async addHonourWeekly(roleId: string, inc: number, select?: string) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $inc: { honourWeekly: inc } }, { new: true }).select(select).lean();
return result;
}
public static async receiveTrainRewards(roleId: string, trainId: number, lean = true) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON, 'trainRewards':{$ne: trainId }},
{$push:{trainRewards: trainId} },{new: true}).lean(lean);
return result;
}
}
export const UserGuildModel = getModelForClass(UserGuild);