From 458d0ab5fa894b943332c575b1ea20eaea16cc67 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 14 Nov 2022 11:55:19 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf(=E5=90=8E=E5=8F=B0):=20?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gm-server/app/service/Activity.ts | 6 ++- shared/domain/backEndField/params.ts | 57 +++++++++++++++------------- 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/gm-server/app/service/Activity.ts b/gm-server/app/service/Activity.ts index 8a5295d72..a7ef70345 100644 --- a/gm-server/app/service/Activity.ts +++ b/gm-server/app/service/Activity.ts @@ -202,8 +202,10 @@ export default class Activity extends Service { let activities = await ActivityModel.findActivityByIds(data.activityIds); // let checkTimeResult = await checkActivityEditable(activities); // if(!checkTimeResult) return resResult(STATUS.GM_CAN_NOT_EDIT_ACT); - let checkGroup = await this.checkActivityGroupTypeWithId(data.groupId, activities); - if(!checkGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE); + if(data.groupId) { + let checkGroup = await this.checkActivityGroupTypeWithId(data.groupId, activities); + if(!checkGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE); + } activities = await ActivityModel.updateActivity(data.activityIds, data, ctx.user?.uid); return ctx.service.utils.resResult(STATUS.SUCCESS, { aids: activities.map(cur => cur.activityId) }); diff --git a/shared/domain/backEndField/params.ts b/shared/domain/backEndField/params.ts index 836a64342..c823f364d 100644 --- a/shared/domain/backEndField/params.ts +++ b/shared/domain/backEndField/params.ts @@ -356,19 +356,19 @@ export class SetHeroParam { export class UpdateActivityParam { activityIds: number[] = []; - groupId: number = 0; + groupId: number; beginTime: Date; endTime: Date; - type: number = 0; - data: string = ''; - timeType: number = 0; - days: number = 0; - delayDay: number = 0; - interval: number = 0; - name: string = ''; - hideDayByServer: number = 0; - effectDay: number = 0; - multiTime: { id: number, beginTime: Date, endTime: Date}[] = [] + type: number; + data: string; + timeType: number; + days: number; + delayDay: number; + interval: number; + name: string; + hideDayByServer: number; + effectDay: number; + multiTime: { id: number, beginTime: Date, endTime: Date}[]; constructor(obj?: any) { if(!obj) return; @@ -379,19 +379,20 @@ export class UpdateActivityParam { this.activityIds.push(parseInt(aidStr)); }); } - this.groupId = obj.groupId; + if(obj.groupId)this.groupId = obj.groupId; if(obj.beginTime) this.beginTime = new Date(obj.beginTime); if(obj.endTime) this.endTime = new Date(obj.endTime); - this.type = obj.type; - this.data = obj.data; - this.timeType = obj.timeType; - this.days = obj.days; - this.delayDay = obj.delayDay; - this.interval = obj.interval; - this.name = obj.name; - this.hideDayByServer = obj.hideDayByServer; - this.effectDay = obj.effectDay; + if(obj.type) this.type = obj.type; + if(obj.data) this.data = obj.data; + if(obj.timeType) this.timeType = obj.timeType; + if(obj.days) this.days = obj.days; + if(obj.delayDay) this.delayDay = obj.delayDay; + if(obj.interval) this.interval = obj.interval; + if(obj.name) this.name = obj.name; + if(obj.hideDayByServer) this.hideDayByServer = obj.hideDayByServer; + if(obj.effectDay) this.effectDay = obj.effectDay; if(obj.multiTime && obj.multiTime.length) { + this.multiTime = []; for(let { id, beginTime, endTime } of obj.multiTime) { this.multiTime.push({ id, beginTime: new Date(beginTime), endTime: new Date(endTime)}) } @@ -412,16 +413,18 @@ export class UpdateActivityParam { if(this.name && !isString(this.name)) return false; if(this.hideDayByServer && !isNumber(this.hideDayByServer)) return false; if(this.effectDay && !isNumber(this.effectDay)) return false; + if(this.timeType == 4 && !isArray(this.multiTime)) return false; return true; } checkTime() { - let t = undefined; - for(let { beginTime, endTime } of this.multiTime) { - console.log('####', t, beginTime, endTime) - if(beginTime > endTime) return false; - if(t && beginTime < t) return false; - t = endTime; + if(this.timeType == 4) { + let t = undefined; + for(let { beginTime, endTime } of this.multiTime) { + if(beginTime > endTime) return false; + if(t && beginTime < t) return false; + t = endTime; + } } return true; }