后台:修改更新活动
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { UpdateActivityParam } from '@domain/backEndField/params';
|
||||
import { Controller } from 'egg';
|
||||
|
||||
export default class ActivityController extends Controller {
|
||||
@@ -100,4 +101,32 @@ export default class ActivityController extends Controller {
|
||||
return
|
||||
}
|
||||
|
||||
public async updateActivity() {
|
||||
const { ctx } = this;
|
||||
const obj = ctx.request.body;
|
||||
let param = new UpdateActivityParam(obj);
|
||||
ctx.body = await ctx.service.activity.updateActivity(param);
|
||||
return
|
||||
}
|
||||
|
||||
public async switchActivity() {
|
||||
const { ctx } = this;
|
||||
const { activityId, isEnable } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.switchActivity(activityId, isEnable);
|
||||
return
|
||||
}
|
||||
|
||||
public async deleteActivity() {
|
||||
const { ctx } = this;
|
||||
const { activityId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.deleteActivity(activityId);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateActivityGroup() {
|
||||
const { ctx } = this;
|
||||
const { groupId, groupName, serverIds, activityIds, groupType } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.updateActivityGroup(groupId, groupName, serverIds, activityIds, groupType);
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,10 @@ export default (app: Application) => {
|
||||
router.post('/api/activity/getallactivities', tokenParser, controller.activity.getAllActivities);
|
||||
router.post('/api/activity/getactivitygrouplist', tokenParser, controller.activity.getActivityGroupList);
|
||||
router.post('/api/activity/getallactivitygroups', tokenParser, controller.activity.getAllActivityGroups);
|
||||
router.post('/api/activity/updateactivity', controller.activity.updateActivity);
|
||||
router.post('/api/activity/switchactivity', controller.activity.switchActivity);
|
||||
router.post('/api/activity/deleteactivity', controller.activity.deleteActivity);
|
||||
router.post('/api/activity/updategroup', 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', tokenParser, controller.activity.getActivityGroupTypeList);
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { Service } from 'egg';
|
||||
import { STATUS, ACTIVITY_TYPE } from '@consts';
|
||||
import { ActivityModel } from '@db/Activity';
|
||||
import { ActivityModel, ActivityModelType } from '@db/Activity';
|
||||
import { ActivityGroupModel } from '@db/ActivityGroup';
|
||||
import { SignInData } from '@domain/activityField/signInField';
|
||||
import { ActivityGroupTypeModel } from '@db/ActivityGroupType';
|
||||
import { ActivityTaskPointModel } from '@db/ActivityTaskPoint';
|
||||
import { gameData } from '@pubUtils/data';
|
||||
import { UpdateActivityParam } from '@domain/backEndField/params';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -129,7 +130,7 @@ export default class Activity extends Service {
|
||||
});
|
||||
}
|
||||
|
||||
public async updateActivityGroupType(groupType: number|string, groupTypeName: string, activityTypes: number[]) {
|
||||
public async updateActivityGroupType(groupType: number|string, groupTypeName: string, activityTypes: number[] = []) {
|
||||
const { ctx } = this;
|
||||
let result;
|
||||
if(groupType == 'new') {
|
||||
@@ -189,4 +190,83 @@ export default class Activity extends Service {
|
||||
await ActivityTaskPointModel.deleteData(taskType, taskId, activityId);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async updateActivity(data: UpdateActivityParam) {
|
||||
const { ctx } = this;
|
||||
|
||||
if(!data.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
let activities = await ActivityModel.findActivityByIds(data.activityIds);
|
||||
// let checkTimeResult = await checkActivityEditable(activities);
|
||||
// if(!checkTimeResult) return resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||
let checkGroup = await this.checkActivityGroupTypeWithId(data.groupId, activities);
|
||||
if(!checkGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
||||
|
||||
activities = await ActivityModel.updateActivity(data.activityIds, data, ctx.user?.uid);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { aids: activities.map(cur => cur.activityId) });
|
||||
}
|
||||
|
||||
public async switchActivity(aid: number, isEnable: boolean) {
|
||||
const { ctx } = this;
|
||||
|
||||
let activity = await ActivityModel.findActivity(aid);
|
||||
if(!activity) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
activity = await ActivityModel.setEnable(aid, isEnable, ctx.user?.uid);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { aids: [activity.activityId]});
|
||||
}
|
||||
|
||||
public async deleteActivity(aid: number) {
|
||||
const { ctx } = this;
|
||||
|
||||
const result = await ActivityModel.deleteActivity(aid, ctx.user?.uid);
|
||||
if (!result) {
|
||||
return ctx.service.utils.resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
await ActivityGroupModel.pullByActivityIds([aid]);
|
||||
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async updateActivityGroup(groupId: number, groupName: string, serverIds: number[], activityIds: 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);
|
||||
|
||||
let activities = await ActivityModel.findActivityByIds(activityIds);
|
||||
let checkResult = await this.checkActivityGroupType(groupType, activities);
|
||||
if(!checkResult) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
||||
|
||||
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
|
||||
await ActivityGroupModel.updateServerData(groupId, serverIds, ctx.user?.uid);
|
||||
await ActivityGroupModel.updateGroup(groupId, {groupName, type: groupType}, ctx.user?.uid);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
private async checkActivityGroupTypeWithId(groupId: number, activities: ActivityModelType[]) {
|
||||
|
||||
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
||||
if(!activityGroup) return false;
|
||||
if(activityGroup.type != 0) {
|
||||
return await this.checkActivityGroupType(activityGroup.type, activities);
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
private async 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) {
|
||||
let index = dic.findIndex(cur => cur.activityType == type);
|
||||
if(index == -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user