This commit is contained in:
luying
2022-04-11 20:32:08 +08:00
parent d4a103a6b1
commit c6ebb62c6a
14 changed files with 124 additions and 49 deletions

View File

@@ -33,6 +33,9 @@ export default class Region extends BaseModel {
@prop({ required: true })
gmPort: number; // 长链接地址
@prop({ required: true })
webHost: string; // 短链接
@prop({ required: true })
latestServer: number; // 最新服

View File

@@ -3,6 +3,7 @@ import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoos
import { SearchSurveyParam } from '../domain/backEndField/search';
import { Reward } from '../domain/battleField/pvp';
import { genCode } from '../pubUtils/util';
import { nowSeconds } from '../pubUtils/timeUtil';
@index({ id: 1 })
@index({ seasonNum: 1 })
@@ -17,6 +18,18 @@ export default class Survey extends BaseModel {
@prop({ required: true })
surveyName: string; // 问卷标题
@prop({ required: true })
surveyLink: string; // 问卷地址
@prop({ required: true })
beginTime: number; // 开始时间
@prop({ required: true })
endTime: number; // 结束时间
@prop({ required: true })
lv: number; // 限制等级
@prop({ required: true })
roleIndex: number; // 玩家
@@ -26,14 +39,30 @@ export default class Survey extends BaseModel {
@prop({ required: true })
mailContent: string; // 邮件文字
@prop({ required: true })
isEnable: boolean; // 是否显示
@prop({ required: true, type: String })
receivedRole: string[]; // 是否显示
public static async findEnableSurvey(select = '') {
let rec: SurveyType[] = await SurveyModel.find({ isEnable: true, endTime: { $gte: nowSeconds() } }).select(select).lean();
return rec;
}
public static async findBySurveyId(surveyId: string) {
let rec: SurveyType = await SurveyModel.findOne({ surveyId }).lean();
return rec;
}
public static async updateSurvey(code: string, param: SurveyUpdate) {
public static async updateSurvey(code: string, param: SurveyUpdate, select = '') {
if(code == 'new') code = genCode(6);
let rec: SurveyType = await SurveyModel.findOneAndUpdate({ code }, { $set: {...param, code} }, {new: true, upsert: true}).lean();
let rec: SurveyType = await SurveyModel.findOneAndUpdate({ code }, { $set: {...param, code} }, {new: true, upsert: true}).select(select).lean();
return rec;
}
public static async receive(code: string, roleId: string) {
let rec: SurveyType = await SurveyModel.findOneAndUpdate({ code }, { $push: { receivedRole: roleId } }, { new: true }).lean();
return rec;
}