diff --git a/gm-server/app/service/Activity.ts b/gm-server/app/service/Activity.ts index 818dc35b3..f93112919 100644 --- a/gm-server/app/service/Activity.ts +++ b/gm-server/app/service/Activity.ts @@ -22,9 +22,9 @@ export default class Activity extends Service { }); } - public async updateActivity(activityId: number, serverId: number, beginTime: number, endTime: number, type: number, data: string) { + public async updateActivity(activityId: number|string, serverId: number, beginTime: number, endTime: number, type: number, data: string) { const { ctx } = this; - if(serverId == undefined || !beginTime || !endTime || !type || !data) { + if(!type || !data) { return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } try { @@ -33,7 +33,15 @@ export default class Activity extends Service { } catch(e) { return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } - const activity = await ActivityModel.addActivity(activityId, serverId, new Date(beginTime), new Date(endTime), type, data); + let aids: number[] = []; + if(typeof activityId == 'number') { + aids.push(activityId); + } else { + activityId.split(',').forEach(aidStr => { + aids.push(parseInt(aidStr)); + }); + } + const activity = await ActivityModel.addActivity(aids, serverId, beginTime?new Date(beginTime): undefined, endTime?new Date(endTime): undefined, type, data); return ctx.service.utils.resResult(STATUS.SUCCESS, { activity }) @@ -48,4 +56,5 @@ export default class Activity extends Service { return ctx.service.utils.resResult(STATUS.ACTIVITY_MISSING); } } + } diff --git a/shared/db/Activity.ts b/shared/db/Activity.ts index 4c3018482..711da7f69 100644 --- a/shared/db/Activity.ts +++ b/shared/db/Activity.ts @@ -41,10 +41,24 @@ export default class Activity extends BaseModel { } //新增活动 - public static async addActivity(activityId: number, serverId: number, beginTime: Date, endTime: Date, type: number, data: string, lean = true) { - if(!activityId) activityId = await CounterModel.getNewCounter(COUNTER.ACTIVITY); - let result: ActivityModelType = await ActivityModel.findOneAndUpdate({ activityId }, { serverId, beginTime, endTime, type, data }, - { new: true, upsert: true }).lean(lean); + public static async addActivity(aids: number[], serverId: number, beginTime: Date, endTime: Date, type: number, data: string, lean = true) { + let result: ActivityModelType[] = []; + for(let activityId of aids) { + if(!activityId) activityId = await CounterModel.getNewCounter(COUNTER.ACTIVITY); + let update = { type, data } + if(serverId != undefined) { + update["serverId"] = serverId; + } + if(beginTime != undefined) { + update["beginTime"] = beginTime; + } + if(endTime != undefined) { + update["endTime"] = endTime; + } + let rec: ActivityModelType = await ActivityModel.findOneAndUpdate({ activityId }, {$set: update}, + { new: true, upsert: true }).lean(lean); + result.push(rec); + } return result; } diff --git a/shared/db/ActivityMonthlyTicket.ts b/shared/db/ActivityMonthlyTicket.ts index 707801dee..9c924b223 100644 --- a/shared/db/ActivityMonthlyTicket.ts +++ b/shared/db/ActivityMonthlyTicket.ts @@ -1,6 +1,5 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose'; -import { ORDER_STATE } from '../consts'; /** * 月卡