🎈 perf(后台): 活动更新

This commit is contained in:
luying
2022-11-14 11:55:19 +08:00
parent 4fb90ba0d8
commit 458d0ab5fa
2 changed files with 34 additions and 29 deletions

View File

@@ -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) });

View File

@@ -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;
}