✨ feat(gvg): 概览
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import BaseModel from "./BaseModel";
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
import { GVGTeamType } from "./GVGTeam";
|
||||
|
||||
@index({ configId: 1, pontId: 1, groupId: 1, serverType: 1 })
|
||||
// GVGCityAreaPoint 类,继承自 BaseModel
|
||||
export default class GVGCityAreaPoint extends BaseModel {
|
||||
@prop({ required: true, default: 1 })
|
||||
configId: number; // config唯一id
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
groupId: number; // 战区
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
serverType: number; // 1-单服 2-跨服
|
||||
|
||||
@prop({ required: true })
|
||||
cityId: number; // 城池id
|
||||
|
||||
@prop({ required: true })
|
||||
areaId: number; // 区域
|
||||
|
||||
@prop({ required: true })
|
||||
pointId: number; // 积分点
|
||||
|
||||
@prop({ required: true })
|
||||
leagueCode: string; // 联军
|
||||
|
||||
@prop({ required: true })
|
||||
leagueName: string; // 联军
|
||||
|
||||
@prop({ required: true })
|
||||
roleId: string; // 玩家
|
||||
|
||||
@prop({ required: true })
|
||||
roleName: string; // 玩家
|
||||
|
||||
@prop({ required: true })
|
||||
teamCode: string; // 玩家的编队
|
||||
|
||||
public static async settlePoint(cityId: number, areaId: number, pointId: number, team: GVGTeamType) {
|
||||
let { configId, groupId, serverType, leagueCode, leagueName, roleId, roleName, teamCode } = team;
|
||||
await GVGCityAreaPointModel.findOneAndUpdate({ configId, groupId, serverType, pointId }, { $setOnInsert: { teamCode: '' }}, { upsert: true });
|
||||
let result: GVGCityAreaPointType = await GVGCityAreaPointModel.findOneAndUpdate(
|
||||
{ configId, groupId, serverType, pointId },
|
||||
{ $set: { cityId, areaId, leagueCode, leagueName, roleId, roleName, teamCode } },
|
||||
{ new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async leavePoint(configId: number, groupId: number, serverType: number, pointId: number) {
|
||||
let result: GVGCityAreaPointType = await GVGCityAreaPointModel.findOneAndUpdate({ configId, groupId, serverType, pointId }, { $set: { teamCode: '' }}, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async findByConfig(configId: number, groupId: number, serverType: number) {
|
||||
let result: GVGCityAreaPointType[] = await GVGCityAreaPointModel.find({ configId, groupId, serverType }).lean();
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const GVGCityAreaPointModel = getModelForClass(GVGCityAreaPoint);
|
||||
|
||||
export interface GVGCityAreaPointType extends Pick<DocumentType<GVGCityAreaPoint>, keyof GVGCityAreaPoint> {};
|
||||
|
||||
export type GVGCityAreaPointUpdate = Partial<GVGCityAreaPointType>; // 将所有字段变成可选项
|
||||
|
||||
Reference in New Issue
Block a user