后台:活动组

This commit is contained in:
luying
2021-12-16 20:48:11 +08:00
parent 1628fd50b0
commit 5b1e3b6cab
8 changed files with 137 additions and 125 deletions

View File

@@ -12,7 +12,7 @@ import { RewardInter } from '../../../pubUtils/interface';
import { MarqueeModel } from '../../../db/Marquee';
import { ServerlistModel } from '../../../db/Serverlist';
import { pushCurrentTime } from '../../../services/chatService';
import { checkActivityEditable, checkActivityGroupType } from '../../../services/activity/activityService';
import { checkActivityEditable, checkActivityGroupType, checkActivityGroupTypeWithId } from '../../../services/activity/activityService';
import { ActivityModel } from '../../../db/Activity';
import { ActivityGroupModel } from '../../../db/ActivityGroup';
import { ActivityGroupTypeModel } from '../../../db/ActivityGroupType';
@@ -153,7 +153,7 @@ export class GmHandler {
let activities = await ActivityModel.findActivityByIds(aids);
let checkTimeResult = await checkActivityEditable(activities);
if(!checkTimeResult) return resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
let checkGroup = await checkActivityGroupType(groupId, activities);
let checkGroup = await checkActivityGroupTypeWithId(groupId, activities);
if(!checkGroup) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, uid);
@@ -184,9 +184,25 @@ export class GmHandler {
return resResult(STATUS.SUCCESS);
}
async saveGroupToServer(msg: { groupId: number, serverIds: number[] }, session: BackendSession) {
const { groupId, serverIds } = msg;
async updateActivityGroup(msg: { groupId: number, groupName: string, serverIds: number[], activities: number[], type: number }, session: BackendSession) {
const uid = session.get('uid');
let { groupId, groupName, serverIds, activities, type } = msg;
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(type);
if(!groupTypeObj) return resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
{
let result = await this.saveActivitiesToGroup(groupId, type, activities, uid);
if(result.code != 0) return result;
}
{
let result = await this.saveGroupToServer(groupId, serverIds, uid);
if(result.code != 0) return result;
}
await ActivityGroupModel.updateGroup(groupId, {groupName, type}, uid);
return resResult(STATUS.SUCCESS);
}
async saveGroupToServer(groupId: number, serverIds: number[], uid: number) {
await ServerlistModel.pullByGroupId(groupId);
let servers = await ServerlistModel.findServerByIds(serverIds);
@@ -211,12 +227,10 @@ export class GmHandler {
/**
* 选择活动组内的活动
*/
async saveActivitiesToGroup(msg: { groupId: number, activities: number[] }, session: BackendSession) {
const { groupId, activities: activityIds } = msg;
const uid = session.get('uid');
async saveActivitiesToGroup(groupId: number, groupType: number, activityIds: number[], uid: number) {
let activities = await ActivityModel.findActivityByIds(activityIds);
let checkResult = await checkActivityGroupType(groupId, activities);
let checkResult = await checkActivityGroupType(groupType, activities);
if(!checkResult) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, uid);
@@ -225,7 +239,7 @@ export class GmHandler {
for(let server of activityServers) {
pinus.app.rpc.activity.activityRemote.saveActivitiesToGroup.toServer(server.id, groupId, activityIds);
}
return resResult(STATUS.SUCCESS)
return resResult(STATUS.SUCCESS);
}
async saveSingleActivityToGroup(msg: { groupId: number, index: number, activityId: number }, session: BackendSession) {
@@ -234,7 +248,7 @@ export class GmHandler {
let activity = await ActivityModel.findActivity(activityId);
if(!activity) return resResult(STATUS.ACTIVITY_MISSING);
let checkResult = await checkActivityGroupType(groupId, [activity]);
let checkResult = await checkActivityGroupTypeWithId(groupId, [activity]);
if(checkResult) return checkResult;
let activityGroup = await ActivityGroupModel.findGroupData(groupId);

View File

@@ -279,12 +279,22 @@ export async function checkActivityEditable(activities: ActivityModelType[]) {
return true;
}
export async function checkActivityGroupType(groupId: number, activities: ActivityModelType[]) {
export async function checkActivityGroupTypeWithId(groupId: number, activities: ActivityModelType[]) {
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return false;
if(activityGroup.type != 0) {
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(activityGroup.type);
return await checkActivityGroupType(activityGroup.type, activities);
}
return true
}
export async function checkActivityGroupType(groupType: number, activities: ActivityModelType[]) {
if(groupType != 0) {
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(groupType);
if(!activityGroupType) return false;
let dic = activityGroupType.activityTypes;
for(let { type } of activities) {