后台:权限

This commit is contained in:
luying
2021-12-21 19:42:37 +08:00
parent 151ac33b91
commit 7d0808a9dc
26 changed files with 1009 additions and 818 deletions
-111
View File
@@ -2,8 +2,6 @@ import { Service } from 'egg';
import { STATUS, ACTIVITY_TYPE } from '@consts';
import { ActivityModel } from '@db/Activity';
import { ActivityGroupModel } from '@db/ActivityGroup';
import { ServerlistModel } from '@db/Serverlist';
// import { GMUserType } from '@db/GMUser';
import { SignInData } from '@domain/activityField/signInField';
import { ActivityGroupTypeModel } from '@db/ActivityGroupType';
import { ActivityTaskPointModel } from '@db/ActivityTaskPoint';
@@ -72,69 +70,6 @@ export default class Activity extends Service {
return 0
}
private async checkActivityGroupType(groupId: number, aids: number[], ctx) {
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
if(activityGroup.type != 0) {
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(activityGroup.type);
if(!activityGroupType) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
let dic = activityGroupType.activityTypes;
let activities = await ActivityModel.findActivityByIds(aids);
for(let { type } of activities) {
let index = dic.findIndex(cur => cur.activityType == type);
if(index == -1) {
return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
} else {
dic.splice(index, 1);
}
}
}
return 0
}
// public async updateActivity(activityId: number | string, groupId: number, beginTime: number, endTime: number, type: number, data: string) {
// const { ctx } = this;
// let gmuser: GMUserType = ctx.user;
// if (!type || !data) {
// return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
// }
// try {
// let result = JSON.parse(data);
// ctx.service.utils.checkActivityData(result, type);
// let aids: number[] = [];
// if (typeof activityId == 'number') {
// aids.push(activityId);
// } else {
// activityId.split(',').forEach(aidStr => {
// aids.push(parseInt(aidStr));
// });
// }
// let checkResult = await this.checkActivityGroupType(groupId, aids, ctx);
// if(checkResult) return checkResult;
// let activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, gmuser.uid);
// return ctx.service.utils.resResult(STATUS.SUCCESS, {
// activity: activities
// })
// } catch (e) {
// return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
// }
// }
public async deleteActivity(activityId: number) {
const { ctx } = this;
const result = await ActivityModel.deleteActivity(activityId, ctx.user?.uid);
if (result) {
return ctx.service.utils.resResult(STATUS.SUCCESS);
} else {
return ctx.service.utils.resResult(STATUS.ACTIVITY_MISSING);
}
}
/**
* 获得活动组列表
*/
@@ -152,41 +87,6 @@ export default class Activity extends Service {
});
}
/**
* 更新活动组
*/
public async updateActivityGroup(groupId: number, groupName: string, activityIds: number[], serverIds: number[], type: number) {
const { ctx } = this;
try {
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(type);
if(!groupTypeObj) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
await ActivityGroupModel.updateGroup(groupId, {groupName, type}, ctx.user?.uid);
// 更新activities
let checkResult = await this.checkActivityGroupType(groupId, activityIds, ctx);
if(checkResult) return checkResult;
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
// 封信servers
await ServerlistModel.pullByGroupId(groupId);
let servers = await ServerlistModel.findServerByIds(serverIds);
for(let server of servers) {
let pushArr: number[] = [], pullArr: number[] = [];
let activityGroupId = server.activityGroupId||[];
if(!activityGroupId.includes(groupId)) {
pushArr.push(groupId);
}
await ServerlistModel.updateActivityGroup(server._id, pushArr, pullArr);
}
await ActivityGroupModel.updateServerData(groupId, serverIds, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
/**
* 创建一个新组
*/
@@ -247,17 +147,6 @@ export default class Activity extends Service {
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
public async getGroupDataById(groupId: number) {
const { ctx } = this;
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
let { type, activities: activityIds = [] } = activityGroup;
let activities = await ActivityModel.findActivityByIds(activityIds);
return ctx.service.utils.resResult(STATUS.SUCCESS, {
data: { groupId, groupType: type, activities }
});
}
public async getActivityTaskPoint(page: number, pageSize: number, sortField: string, sortOrder: string, form: {taskType?: number, taskId?: number, activityId?: number}) {
const { ctx } = this;
const list = await ActivityTaskPointModel.findByCondition(page, pageSize, sortField, sortOrder, form);