炼器堂
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
class ScienceTree {
|
||||
export class ScienceTree {
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
time: number;
|
||||
@prop({ required: true })
|
||||
assistCount: number;
|
||||
endTime: number;
|
||||
@prop({ required: true, default: [], type: String, _id: false})
|
||||
assistRoleIds: Array<string>;
|
||||
}
|
||||
|
||||
@index({ guildCode: 1 })
|
||||
|
||||
export default class GuildRefiner extends BaseModel {
|
||||
export default class GuildRefine extends BaseModel {
|
||||
@prop({ required: true })
|
||||
guildCode: string;
|
||||
|
||||
@@ -20,13 +20,27 @@ export default class GuildRefiner extends BaseModel {
|
||||
scienceTrees: ScienceTree[];
|
||||
|
||||
public static async createScienceTree(guildCode: string, scienceTrees: ScienceTree[], lean = true) {
|
||||
const result = await GuildRefinerModel.findOneAndUpdate({ guildCode }, {$set: {scienceTrees}}, {new: true, upsert: true}).lean(lean);
|
||||
const result = await GuildRefineModel.findOneAndUpdate({ guildCode }, {$set: {scienceTrees}}, {new: true, upsert: true}).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getRefine(guildCode: string, lean = true) {
|
||||
const result = await GuildRefineModel.findOne({ guildCode }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async pushRefine(guildCode: string, scienceTree: ScienceTree,lean = true) {
|
||||
const result = await GuildRefineModel.findOneAndUpdate({ guildCode, 'scienceTrees.$.id':{$ne:scienceTree.id}}, {$push: {scienceTrees: scienceTree}}, { new: true }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateRefine(guildCode: string, update: GuildRefineTypeParam, lean = true) {
|
||||
const result = await GuildRefineModel.findOneAndUpdate({ guildCode}, {$set: update}, { new: true }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export const GuildRefinerModel = getModelForClass(GuildRefiner);
|
||||
export const GuildRefineModel = getModelForClass(GuildRefine)
|
||||
export interface GuildRefineType extends Pick<DocumentType<GuildRefine>, keyof GuildRefine> { };
|
||||
|
||||
export interface GuildRefinerType extends Pick<DocumentType<GuildRefiner>, keyof GuildRefiner>{}
|
||||
export type GuildRefineTypeParam = Partial<GuildRefineType>; // 将所有字段变成可选项
|
||||
|
||||
Reference in New Issue
Block a user