后台:活动组

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

@@ -4,11 +4,16 @@ export default class ActivityController extends Controller {
public async getActivityList() {
const { ctx } = this;
const { page, pageSize, type, groupId, current, activityId, sortField, sortOrder } = ctx.request.body;
const { page, pageSize, type, form: {groupId, current, activityId}, sortField, sortOrder } = ctx.request.body;
ctx.body = await ctx.service.activity.getActivityList(page, pageSize, sortField, sortOrder, type, groupId, current, activityId);
return
}
public async getAllActivities() {
const { ctx } = this;
ctx.body = await ctx.service.activity.getAllActivities();
}
public async updateActivity() {
const { ctx } = this;
const { activityId, groupId, beginTime, endTime, type, data } = ctx.request.body;
@@ -28,11 +33,16 @@ export default class ActivityController extends Controller {
public async getActivityGroupList() {
const { ctx } = this;
const { page, pageSize, serverId, current, groupId } = ctx.request.body;
const { page, pageSize, form: { serverId, current, groupId} } = ctx.request.body;
ctx.body = await ctx.service.activity.getActivityGroupList(page, pageSize, serverId, current, groupId);
return
}
public async getAllActivityGroups() {
const { ctx } = this;
ctx.body = await ctx.service.activity.getAllActivityGroups();
}
public async getActivityGroupTypeList() {
const { ctx } = this;
const { page, pageSize, sortField, sortOrder, groupType, groupTypeName } = ctx.request.body;
@@ -40,6 +50,11 @@ export default class ActivityController extends Controller {
return
}
public async getAllActivityGroupTypes() {
const { ctx } = this;
ctx.body = await ctx.service.activity.getAllActivityGroupTypes();
}
public async updateActivityGroupType() {
const { ctx } = this;
const { groupType, groupTypeName, activityTypes } = ctx.request.body;
@@ -54,13 +69,6 @@ export default class ActivityController extends Controller {
return
}
public async saveGroupTypeToActivityGroup() {
const { ctx } = this;
const { groupId, groupType } = ctx.request.body;
ctx.body = await ctx.service.activity.saveGroupTypeToActivityGroup(groupId, groupType);
return
}
public async getGroupDataById() {
const { ctx } = this;
const { groupId } = ctx.request.body;
@@ -68,31 +76,10 @@ export default class ActivityController extends Controller {
return
}
public async updateActivityGroupName() {
public async updateActivityGroup() {
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 saveSingleActivityToGroup() {
const { ctx } = this;
const { groupId, index, activityId } = ctx.request.body;
ctx.body = await ctx.service.activity.saveSingleActivityToGroup(groupId, index, activityId);
return
}
public async saveGroupToServer() {
const { ctx } = this;
const { groupId, serverIds } = ctx.request.body;
ctx.body = await ctx.service.activity.saveGroupToServer(groupId, serverIds);
const { groupId, groupName, activities, serverIds, type } = ctx.request.body;
ctx.body = await ctx.service.activity.updateActivityGroup(groupId, groupName, activities, serverIds, type);
return
}

View File

@@ -86,19 +86,18 @@ export default (app: Application) => {
router.post('/api/game/getaccuse', controller.game.getAccuse);
router.post('/api/activity/getactivitylist', tokenParser, controller.activity.getActivityList);
router.post('/api/activity/getallactivities', controller.activity.getAllActivities);
router.post('/api/activity/updateactivity', tokenParser, controller.activity.updateActivity);
router.post('/api/activity/deleteactivity', tokenParser, controller.activity.deleteActivity);
router.post('/api/activity/getactivitygrouplist', tokenParser, controller.activity.getActivityGroupList);
router.post('/api/activity/updateactivitygroupname', controller.activity.updateActivityGroupName);
// router.post('/api/activity/saveactivitiestogroup', tokenParser, controller.activity.saveActivitiesToGroup);
// router.post('/api/activity/savesingleactivitytogroup', controller.activity.saveSingleActivityToGroup);
// router.post('/api/activity/savegrouptoserver', tokenParser, controller.activity.saveGroupToServer);
router.post('/api/activity/getallactivitygroups', controller.activity.getAllActivityGroups);
router.post('/api/activity/updateactivitygroup', controller.activity.updateActivityGroup);
router.post('/api/activity/creategroup', tokenParser, controller.activity.createGroup);
router.post('/api/activity/deletegroup', tokenParser, controller.activity.deleteGroup);
router.post('/api/activity/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
router.post('/api/activity/getallactivitygrouptypes', controller.activity.getAllActivityGroupTypes);
router.post('/api/activity/saveactivitygrouptypelist', controller.activity.updateActivityGroupType);
router.post('/api/activity/deleteactivitygrouptype', controller.activity.deleteActivityGroupType);
router.post('/api/activity/saveactivitygrouptype', controller.activity.saveGroupTypeToActivityGroup);
router.post('/api/activity/getgroupdatabyid', controller.activity.getGroupDataById);
router.post('/api/activity/getactivitytaskpoint', controller.activity.getActivityTaskPoint);
router.post('/api/activity/createtasktoactivity', controller.activity.createTaskToActivity);

View File

@@ -25,12 +25,33 @@ export default class Activity extends Service {
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list: list.map(cur => {
return {
...cur, beginTime: cur.beginTime.getTime(), endTime: cur.endTime.getTime()
...cur, beginTime: cur.beginTime.getTime(), endTime: cur.endTime.getTime(), env: ctx.app.config.realEnv
}
}), total
});
}
public async getAllActivities() {
const { ctx } = this;
let list = await ActivityModel.findAllActivities();
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
}
public async getAllActivityGroups() {
const { ctx } = this;
let list = await ActivityGroupModel.findAllActivityGroups();
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
}
public async getAllActivityGroupTypes() {
const { ctx } = this;
// console.log('***', page, pageSize, type, serverId, current, activityId)
const list = await ActivityGroupTypeModel.findAllActivityGroupTypes();
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list
});
}
public async checkActivityEditable(activityId: number) {
let now = new Date();
let activity = await ActivityModel.findActivity(activityId);
@@ -100,7 +121,7 @@ export default class Activity extends Service {
})
} catch (e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
}
@@ -125,7 +146,7 @@ export default class Activity extends Service {
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list: list.map(cur => {
return {
...cur, beginTime: cur.beginTime?.getTime(), endTime: cur.endTime?.getTime()
...cur, beginTime: cur.beginTime?.getTime(), endTime: cur.endTime?.getTime(), env: ctx.app.config.realEnv
}
}), total
});
@@ -134,74 +155,20 @@ export default class Activity extends Service {
/**
* 更新活动组
*/
public async updateActivityGroupName(groupId: number, groupName: string) {
public async updateActivityGroup(groupId: number, groupName: string, activityIds: number[], serverIds: number[], type: number) {
const { ctx } = this;
try {
await ActivityGroupModel.updateGroup(groupId, {groupName}, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
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);
/**
* 选择活动组内的活动
*/
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
const { ctx } = this;
try {
// 更新activities
let checkResult = await this.checkActivityGroupType(groupId, activityIds, ctx);
if(checkResult) return checkResult;
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
/**
* 选择活动组内的活动
*/
public async saveSingleActivityToGroup(groupId: number, index: number, activityId: number) {
console.log(groupId, index, activityId);
const { ctx } = this;
try {
let checkResult = await this.checkActivityGroupType(groupId, [activityId], ctx);
if(checkResult) return checkResult;
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
let activity = await ActivityModel.findActivity(activityId);
if(!activity) return ctx.service.utils.resResult(STATUS.ACTIVITY_MISSING);
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 curDic = dic.find(cur => cur.index == index);
console.log(dic, curDic)
if(curDic.activityType != activity.type) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE)
}
let activityIds = activityGroup.activities||[];
if(activityIds.indexOf(activityId) == -1) activityIds.push(activityId);
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
} 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 {
// 封信servers
await ServerlistModel.pullByGroupId(groupId);
let servers = await ServerlistModel.findServerByIds(serverIds);
for(let server of servers) {
@@ -213,8 +180,9 @@ export default class Activity extends Service {
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, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
@@ -227,7 +195,7 @@ export default class Activity extends Service {
try {
await ActivityGroupModel.createGroup(ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
@@ -243,7 +211,7 @@ export default class Activity extends Service {
await ActivityGroupModel.deleteGroup(groupId);
}
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS)
}
@@ -278,14 +246,6 @@ export default class Activity extends Service {
await ActivityGroupTypeModel.deleteActivityGroupType(groupType);
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
public async saveGroupTypeToActivityGroup(groupId: number, groupType: number) {
const { ctx } = this;
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(groupType);
if(!groupTypeObj) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
await ActivityGroupModel.updateGroup(groupId, { type: groupType }, ctx.user?.uid);
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
public async getGroupDataById(groupId: number) {
const { ctx } = this;