后台:活动分组分服
This commit is contained in:
@@ -4,15 +4,15 @@ export default class ActivityController extends Controller {
|
||||
|
||||
public async getActivityList() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, type, serverId, current, activityId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.getActivityList(page, pageSize, type, serverId, current, activityId);
|
||||
const { page, pageSize, type, groupId, current, activityId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.getActivityList(page, pageSize, type, groupId, current, activityId);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateActivity() {
|
||||
const { ctx } = this;
|
||||
const { activityId, serverId, beginTime, endTime, type, data } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.updateActivity(activityId, serverId, beginTime, endTime, type, data);
|
||||
const { activityId, groupId, beginTime, endTime, type, data } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.updateActivity(activityId, groupId, beginTime, endTime, type, data);
|
||||
}
|
||||
|
||||
public async deleteActivity() {
|
||||
@@ -21,4 +21,47 @@ export default class ActivityController extends Controller {
|
||||
ctx.body = await ctx.service.activity.deleteActivity(activityId);
|
||||
|
||||
}
|
||||
|
||||
public async getActivityGroupList() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, serverId, current, groupId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.getActivityGroupList(page, pageSize, serverId, current, groupId);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateActivityGroupName() {
|
||||
const { ctx } = this;
|
||||
const { groupId, groupName } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.updateActivityGroupName(groupId, groupName);
|
||||
return
|
||||
}
|
||||
|
||||
public async saveActivitiesToGroup() {
|
||||
const { ctx } = this;
|
||||
const { groupId, activities } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.saveActivitiesToGroup(groupId, activities);
|
||||
return
|
||||
}
|
||||
|
||||
public async saveGroupToServer() {
|
||||
const { ctx } = this;
|
||||
const { groupId, serverIds } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.saveGroupToServer(groupId, serverIds);
|
||||
return
|
||||
}
|
||||
|
||||
public async createGroup() {
|
||||
const { ctx } = this;
|
||||
ctx.body = await ctx.service.activity.createGroup();
|
||||
return
|
||||
}
|
||||
|
||||
public async deleteGroup() {
|
||||
const { ctx } = this;
|
||||
const { groupId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.deleteGroup(groupId);
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -50,4 +50,11 @@ export default (app: Application) => {
|
||||
router.post('/api/activity/getactivitylist', controller.activity.getActivityList);
|
||||
router.post('/api/activity/updateactivity', controller.activity.updateActivity);
|
||||
router.post('/api/activity/deleteactivity', controller.activity.deleteActivity);
|
||||
router.post('/api/activity/getactivitygrouplist', controller.activity.getActivityGroupList);
|
||||
router.post('/api/activity/updateactivitygroupname', controller.activity.updateActivityGroupName);
|
||||
router.post('/api/activity/saveactivitiestogroup', controller.activity.saveActivitiesToGroup);
|
||||
router.post('/api/activity/savegrouptoserver', controller.activity.saveGroupToServer);
|
||||
router.post('/api/activity/creategroup', controller.activity.createGroup);
|
||||
router.post('/api/activity/deletegroup', controller.activity.deleteGroup);
|
||||
|
||||
};
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { Service } from 'egg';
|
||||
import { STATUS } from '@consts';
|
||||
import { ActivityModel } from '@db/Activity';
|
||||
import { ActivityGroupModel } from '@db/ActivityGroup';
|
||||
import { ServerlistModel } from '@db/Serverlist';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -10,11 +12,11 @@ export default class Activity extends Service {
|
||||
/**
|
||||
* 获得活动列表
|
||||
*/
|
||||
public async getActivityList(page: number, pageSize: number, type: number = 0, serverId: number = 0, current: boolean = false, activityId: number = 0) {
|
||||
public async getActivityList(page: number, pageSize: number, type: number = 0, groupId: number = 0, current: boolean = false, activityId: number = 0) {
|
||||
const { ctx } = this;
|
||||
// console.log('***', page, pageSize, type, serverId, current, activityId)
|
||||
const list = await ActivityModel.findByCondition(page, pageSize, type, serverId, current, activityId);
|
||||
const total = await ActivityModel.countByCondition(type, serverId, current, activityId);
|
||||
// console.log('***', page, pageSize, type, groupId, current, activityId)
|
||||
const list = await ActivityModel.findByCondition(page, pageSize, type, groupId, current, activityId);
|
||||
const total = await ActivityModel.countByCondition(type, groupId, current, activityId);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list: list.map(cur => {
|
||||
return {
|
||||
@@ -24,7 +26,7 @@ export default class Activity extends Service {
|
||||
});
|
||||
}
|
||||
|
||||
public async updateActivity(activityId: number | string, serverId: number, beginTime: number, endTime: number, type: number, data: string) {
|
||||
public async updateActivity(activityId: number | string, groupId: number, beginTime: number, endTime: number, type: number, data: string) {
|
||||
const { ctx } = this;
|
||||
if (!type || !data) {
|
||||
return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
@@ -32,23 +34,25 @@ export default class Activity extends Service {
|
||||
try {
|
||||
let result = JSON.parse(data);
|
||||
ctx.service.utils.checkActivityData(result, type);
|
||||
} catch (e) {
|
||||
return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let aids: number[] = [];
|
||||
if (typeof activityId == 'number') {
|
||||
aids.push(activityId);
|
||||
} else {
|
||||
activityId.split(',').forEach(aidStr => {
|
||||
aids.push(parseInt(aidStr));
|
||||
});
|
||||
}
|
||||
const activity = await ActivityModel.addActivity(aids, serverId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
activity
|
||||
})
|
||||
}
|
||||
let aids: number[] = [];
|
||||
if (typeof activityId == 'number') {
|
||||
aids.push(activityId);
|
||||
} else {
|
||||
activityId.split(',').forEach(aidStr => {
|
||||
aids.push(parseInt(aidStr));
|
||||
});
|
||||
}
|
||||
|
||||
const activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
activity: activities
|
||||
})
|
||||
|
||||
} catch (e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
}
|
||||
|
||||
public async deleteActivity(activityId: number) {
|
||||
const { ctx } = this;
|
||||
const result = await ActivityModel.deleteActivity(activityId);
|
||||
@@ -59,4 +63,100 @@ export default class Activity extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得活动组列表
|
||||
*/
|
||||
public async getActivityGroupList(page: number, pageSize: number, serverId: number = 0, current: boolean = false, groupId: number = 0) {
|
||||
const { ctx } = this;
|
||||
// console.log('***', page, pageSize, type, serverId, current, activityId)
|
||||
const list = await ActivityGroupModel.findByCondition(page, pageSize, serverId, current, groupId);
|
||||
const total = await ActivityGroupModel.countByCondition(serverId, current, groupId);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list: list.map(cur => {
|
||||
return {
|
||||
...cur, beginTime: cur.beginTime?.getTime(), endTime: cur.endTime?.getTime()
|
||||
}
|
||||
}), total
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新活动组
|
||||
*/
|
||||
public async updateActivityGroupName(groupId: number, groupName: string) {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
await ActivityGroupModel.updateGroupName(groupId, groupName);
|
||||
} catch(e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择活动组内的活动
|
||||
*/
|
||||
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds);
|
||||
|
||||
} catch(e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||
}
|
||||
|
||||
/**
|
||||
* 将活动组添加入服务器内
|
||||
*/
|
||||
public async saveGroupToServer(groupId: number, serverIds: number[]) {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
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);
|
||||
} catch(e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一个新组
|
||||
*/
|
||||
public async createGroup() {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
await ActivityGroupModel.createGroup();
|
||||
} catch(e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||
}
|
||||
|
||||
public async deleteGroup(groupId: number) {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
let group = await ActivityGroupModel.findGroupData(groupId);
|
||||
if(group) {
|
||||
if(group.serverIds.length > 0 || group.activities.length > 0) {
|
||||
return ctx.service.utils.resResult(STATUS.GM_CAN_NOT_DEL_ACT_GROUP);
|
||||
}
|
||||
await ActivityGroupModel.deleteGroup(groupId);
|
||||
}
|
||||
} catch(e) {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user