活动:后台修改
This commit is contained in:
@@ -15,6 +15,8 @@ import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { getWorldChannelSid } from '../../../services/chatService';
|
||||
import { MaintenanceModel } from '../../../db/Maintenance';
|
||||
import { initMaintenance, stopMaintenance } from '../../../services/gmService';
|
||||
import { checkActivityEditable, checkActivityGroupType } from '../../../services/activity/activityService';
|
||||
import { ActivityModel } from '../../../db/Activity';
|
||||
export default function (app: Application) {
|
||||
return new GmHandler(app);
|
||||
}
|
||||
@@ -214,4 +216,52 @@ export class GmHandler {
|
||||
}
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
async updateActivity(msg: { activityId: number|string, groupId: number, beginTime: number, endTime: number, type: number, data: string }, session: BackendSession) {
|
||||
const { activityId, groupId, beginTime, endTime, type, data } = msg;
|
||||
const uid = session.get('uid');
|
||||
if (!type || !data) {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let aids: number[] = [];
|
||||
if (typeof activityId == 'number') {
|
||||
aids.push(activityId);
|
||||
} else {
|
||||
activityId.split(',').forEach(aidStr => {
|
||||
aids.push(parseInt(aidStr));
|
||||
});
|
||||
}
|
||||
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);
|
||||
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);
|
||||
|
||||
let activityServers = pinus.app.getServersByType('activity');
|
||||
for(let server of activityServers) {
|
||||
pinus.app.rpc.activity.activityRemote.updateActivities.toServer(server.id, activities);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
activity: activities
|
||||
});
|
||||
}
|
||||
|
||||
async deleteActivity(msg: { activityId: number}, session: BackendSession) {
|
||||
const { activityId } = msg;
|
||||
const uid = session.get('uid');
|
||||
|
||||
const result = await ActivityModel.deleteActivity(activityId, uid);
|
||||
if (!result) {
|
||||
return resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
let activityServers = pinus.app.getServersByType('activity');
|
||||
for(let server of activityServers) {
|
||||
pinus.app.rpc.activity.activityRemote.deleteActivities.toServer(server.id, [activityId]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user