活动:添加活动组
This commit is contained in:
@@ -10,7 +10,7 @@ import { COUNTER } from '../consts';
|
||||
|
||||
export default class Activity extends BaseModel {
|
||||
@prop({ required: true })
|
||||
serverId: number; // 服Id
|
||||
groupId: number; // 组Id
|
||||
@prop({ required: true })
|
||||
activityId: number; // 活动Id
|
||||
@prop({ required: true })
|
||||
@@ -23,8 +23,10 @@ export default class Activity extends BaseModel {
|
||||
data: string; // 活动表中的数据
|
||||
|
||||
//根据活动类型查询开启的活动数据
|
||||
public static async findOpenActivityByType(serverId: number, type: number, date: Date) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find({ serverId, type, beginTime: { $lte: date }, endTime: { $gte: date } }).sort({ activityId: -1 }).lean(true);
|
||||
public static async findOpenActivityByType(activityGroupId: number[], type: number, date: Date) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find(
|
||||
{ groupId: { $in: activityGroupId }, type, beginTime: { $lte: date }, endTime: { $gte: date } }
|
||||
).sort({ activityId: -1 }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
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>; // 将所有字段变成可选项
|
||||
@@ -18,7 +18,7 @@ export default class Activity_Growth_Point extends BaseModel {
|
||||
|
||||
//当日奖章领取记录
|
||||
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number) {
|
||||
let result: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findOneAndUpdate({ serverId, roleId, activityId, id },
|
||||
let result: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findOneAndUpdate({ serverId, roleId, activityId },
|
||||
{ $push: { ids: id } }, { upsert: true, new: true }).lean(true);
|
||||
return result;
|
||||
}
|
||||
@@ -30,8 +30,8 @@ export default class Activity_Growth_Point extends BaseModel {
|
||||
}
|
||||
|
||||
//删除活动领取记录
|
||||
public static async deleteActivity(serverId: number, activityId: number, roleId: string, id: number) {
|
||||
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId, id });
|
||||
public static async deleteActivity(serverId: number, activityId: number, roleId: string) {
|
||||
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-7
@@ -7,7 +7,7 @@ import { index, getModelForClass, prop, DocumentType, modelOptions } from '@type
|
||||
* 游戏字段接口
|
||||
*/
|
||||
@index({ id: 1 })
|
||||
@modelOptions({schemaOptions: {id: false}})
|
||||
@modelOptions({ schemaOptions: { id: false } })
|
||||
export default class Serverlist extends BaseModel {
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
@@ -33,10 +33,13 @@ export default class Serverlist extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
serverStatus: number; // 服务器状态
|
||||
|
||||
|
||||
@prop({ required: true })
|
||||
activityGroupId: number[]; // 活动组
|
||||
|
||||
public get status() {
|
||||
let now = new Date();
|
||||
if( now > this.openTime) {
|
||||
if (now > this.openTime) {
|
||||
return this.serverStatus;
|
||||
} else {
|
||||
return 3; // 未开服
|
||||
@@ -61,19 +64,19 @@ export default class Serverlist extends BaseModel {
|
||||
}
|
||||
|
||||
public static async findByServerId(serverId: number) {
|
||||
let server: ServerlistType = await ServerlistModel.findOne({ id: serverId }).select('medianCe').lean({ getters: true, virtuals: true });
|
||||
let server: ServerlistType = await ServerlistModel.findOne({ id: serverId }).select('medianCe activityGroupId').lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
}
|
||||
|
||||
public static async updateByServerId(serverId: number, update: ServerlistUpdate) {
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({id: serverId}, {$set: update}).lean({ getters: true, virtuals: true });
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId }, { $set: update }).lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
}
|
||||
|
||||
public static async newServer(serverId: number, serverType: string, params: ServerlistUpdate) {
|
||||
const doc = new ServerlistModel();
|
||||
const update = Object.assign(doc.toJSON(), { id: serverId, serverType }, params);
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId, serverType }, {$setOnInsert: update }, {new: true, upsert: true}).lean({ getters: true, virtuals: true });
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId, serverType }, { $setOnInsert: update }, { new: true, upsert: true }).lean({ getters: true, virtuals: true });
|
||||
return server;
|
||||
}
|
||||
|
||||
@@ -85,7 +88,7 @@ export default class Serverlist extends BaseModel {
|
||||
|
||||
export const ServerlistModel = getModelForClass(Serverlist);
|
||||
|
||||
export interface ServerlistType extends Pick<DocumentType<Serverlist>, keyof Serverlist>{
|
||||
export interface ServerlistType extends Pick<DocumentType<Serverlist>, keyof Serverlist> {
|
||||
id: number;
|
||||
};
|
||||
export type ServerlistUpdate = Partial<ServerlistType>; // 将所有字段变成可选项
|
||||
|
||||
Reference in New Issue
Block a user