feat: 任务批量创建

This commit is contained in:
DengDai
2025-12-09 21:32:32 +08:00
parent 02ecea06f8
commit 837c8227fb
2 changed files with 212 additions and 52 deletions

View File

@@ -101,6 +101,68 @@ def create_task(group_id):
return jsonify({'message': '任务创建成功', 'task_id': task.id}), 201
# 批量创建任务(管理员)
@tasks_bp.route('/groups/<int:group_id>/tasks/batch', methods=['POST'])
@admin_required
def batch_create_tasks(group_id):
data = request.json
tasks_data = data.get('tasks', [])
if not tasks_data:
return jsonify({'error': '任务列表不能为空'}), 400
user_id = get_jwt_identity()
created_tasks = []
errors = []
for idx, task_data in enumerate(tasks_data):
try:
if not task_data.get('series_name'):
errors.append(f'{idx+1}行:剧集名称不能为空')
continue
if not task_data.get('series_date'):
errors.append(f'{idx+1}行:日期不能为空')
continue
try:
series_date = datetime.strptime(task_data['series_date'], '%Y%m%d').date()
except:
errors.append(f'{idx+1}行:日期格式错误')
continue
task = Task(
group_id=group_id,
series_name=task_data['series_name'],
series_date=series_date,
priority=task_data.get('priority', ''),
created_by=user_id
)
db.session.add(task)
db.session.flush()
log = TaskLog(
task_id=task.id,
user_id=user_id,
action='create',
comment=f'批量创建任务:{task.series_name}'
)
db.session.add(log)
created_tasks.append(task.id)
except Exception as e:
errors.append(f'{idx+1}行:{str(e)}')
db.session.commit()
return jsonify({
'message': f'成功创建{len(created_tasks)}个任务',
'created': len(created_tasks),
'errors': errors
}), 201
# 认领任务
@tasks_bp.route('/tasks/<int:task_id>/claim', methods=['POST'])
@login_required