基本功能完成,下一步开始美化UI
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { ExamTaskModel } from '../models/examTask';
|
||||
import { UserGroupModel } from '../models/userGroup';
|
||||
|
||||
export class ExamTaskController {
|
||||
static async getTasks(req: Request, res: Response) {
|
||||
@@ -19,12 +20,29 @@ export class ExamTaskController {
|
||||
|
||||
static async createTask(req: Request, res: Response) {
|
||||
try {
|
||||
const { name, subjectId, startAt, endAt, userIds } = req.body;
|
||||
const { name, subjectId, startAt, endAt, userIds = [], groupIds = [] } = req.body;
|
||||
|
||||
if (!name || !subjectId || !startAt || !endAt || !Array.isArray(userIds) || userIds.length === 0) {
|
||||
if (!name || !subjectId || !startAt || !endAt) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '参数不完整或用户列表为空'
|
||||
message: '参数不完整'
|
||||
});
|
||||
}
|
||||
|
||||
// 合并用户列表和用户组中的用户
|
||||
const finalUserIds = new Set<string>(userIds);
|
||||
|
||||
if (Array.isArray(groupIds) && groupIds.length > 0) {
|
||||
for (const groupId of groupIds) {
|
||||
const members = await UserGroupModel.getMembers(groupId);
|
||||
members.forEach(m => finalUserIds.add(m.id));
|
||||
}
|
||||
}
|
||||
|
||||
if (finalUserIds.size === 0) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '请至少选择一位用户或一个用户组'
|
||||
});
|
||||
}
|
||||
|
||||
@@ -33,7 +51,8 @@ export class ExamTaskController {
|
||||
subjectId,
|
||||
startAt,
|
||||
endAt,
|
||||
userIds
|
||||
userIds: Array.from(finalUserIds),
|
||||
selectionConfig: JSON.stringify({ userIds, groupIds })
|
||||
});
|
||||
|
||||
res.json({
|
||||
@@ -51,12 +70,29 @@ export class ExamTaskController {
|
||||
static async updateTask(req: Request, res: Response) {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { name, subjectId, startAt, endAt, userIds } = req.body;
|
||||
const { name, subjectId, startAt, endAt, userIds = [], groupIds = [] } = req.body;
|
||||
|
||||
if (!name || !subjectId || !startAt || !endAt || !Array.isArray(userIds) || userIds.length === 0) {
|
||||
if (!name || !subjectId || !startAt || !endAt) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '参数不完整或用户列表为空'
|
||||
message: '参数不完整'
|
||||
});
|
||||
}
|
||||
|
||||
// 合并用户列表和用户组中的用户
|
||||
const finalUserIds = new Set<string>(userIds);
|
||||
|
||||
if (Array.isArray(groupIds) && groupIds.length > 0) {
|
||||
for (const groupId of groupIds) {
|
||||
const members = await UserGroupModel.getMembers(groupId);
|
||||
members.forEach(m => finalUserIds.add(m.id));
|
||||
}
|
||||
}
|
||||
|
||||
if (finalUserIds.size === 0) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '请至少选择一位用户或一个用户组'
|
||||
});
|
||||
}
|
||||
|
||||
@@ -65,7 +101,8 @@ export class ExamTaskController {
|
||||
subjectId,
|
||||
startAt,
|
||||
endAt,
|
||||
userIds
|
||||
userIds: Array.from(finalUserIds),
|
||||
selectionConfig: JSON.stringify({ userIds, groupIds })
|
||||
});
|
||||
|
||||
res.json({
|
||||
|
||||
Reference in New Issue
Block a user