52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
import BaseModel from './BaseModel';
|
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
|
|
|
/**
|
|
* 活动合集
|
|
*/
|
|
@index({ activityId: 1 })
|
|
|
|
export default class Activity_Group extends BaseModel {
|
|
@prop({ required: true })
|
|
groupId: number; // 组Id
|
|
@prop({ required: true })
|
|
groupName: string; // 组名
|
|
@prop({ required: true })
|
|
activities: number[]; // 活动Id
|
|
@prop({ required: true })
|
|
beginTime: Date; // 里面的activity的最早的时间
|
|
@prop({ required: true })
|
|
endTime: Date; // 里面的activity的最晚的时间
|
|
|
|
|
|
//查询组
|
|
public static async findGroupData(groupId: number) {
|
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOne({ groupId }).lean(true);
|
|
return result;
|
|
}
|
|
|
|
//更新名字
|
|
public static async updateGroupName(groupId: number, groupName: string) {
|
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
|
|
{ $set: { groupName } }, { upsert: true, new: true }).lean(true);
|
|
return result;
|
|
}
|
|
|
|
//更新询组
|
|
public static async updateGroupData(groupId: number, activities: number[], beginTime: Date, endTime: Date) {
|
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
|
|
{ $set: { activities, beginTime, endTime } }, { upsert: true, new: true }).lean(true);
|
|
return result;
|
|
}
|
|
|
|
//删除组
|
|
public static async deleteGroup(groupId: number) {
|
|
let result = await ActivityGroupModel.deleteMany({ groupId });
|
|
return result;
|
|
}
|
|
}
|
|
|
|
export const ActivityGroupModel = getModelForClass(Activity_Group);
|
|
|
|
export interface ActivityGroupModelType extends Pick<DocumentType<Activity_Group>, keyof Activity_Group> { }
|
|
export type ActivityGroupModelTypeParam = Partial<ActivityGroupModelType>; // 将所有字段变成可选项
|