后台:活动组类型

This commit is contained in:
luying
2021-06-18 16:41:26 +08:00
parent 85b3ac3132
commit 15ff0938bc
6 changed files with 46 additions and 6 deletions

View File

@@ -54,6 +54,13 @@ 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 updateActivityGroupName() {
const { ctx } = this;
const { groupId, groupName } = ctx.request.body;

View File

@@ -69,4 +69,5 @@ export default (app: Application) => {
router.post('/api/activity/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
router.post('/api/activity/saveactivitygrouptypelist', controller.activity.updateActivityGroupType);
router.post('/api/activity/deleteactivitygrouptype', controller.activity.deleteActivityGroupType);
router.post('/api/activity/saveactivitygrouptype', controller.activity.saveGroupTypeToActivityGroup);
};

View File

@@ -111,7 +111,7 @@ export default class Activity extends Service {
public async updateActivityGroupName(groupId: number, groupName: string) {
const { ctx } = this;
try {
await ActivityGroupModel.updateGroupName(groupId, groupName, ctx.user?.uid);
await ActivityGroupModel.updateGroup(groupId, {groupName}, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
}
@@ -124,6 +124,23 @@ export default class Activity extends Service {
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
const { ctx } = this;
try {
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
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 activities = await ActivityModel.findActivityByIds(activityIds);
for(let { type } of activities) {
let index = dic.findIndex(cur => cur.activityType == type);
if(index == -1) {
return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
} else {
dic.splice(index, 1);
}
}
}
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
} catch(e) {
@@ -214,4 +231,12 @@ 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);
}
}