新增数字人版本管理

This commit is contained in:
super
2026-06-14 19:00:55 +08:00
parent ac19637ad6
commit f44110fae5
15 changed files with 971 additions and 32 deletions

View File

@@ -1430,6 +1430,134 @@ def list_versions():
return jsonify({'success': False, 'error': str(e)})
# ========== 数字人版本管理(代理到 Java 后端)==========
@admin_api.route('/digital-human-versions')
@admin_required
def list_digital_human_versions():
"""代理:查询数字人版本列表"""
_, _, denied = _ensure_admin_menu_access('version')
if denied:
return denied
page = request.args.get('page', '1')
page_size = request.args.get('pageSize', '20')
status = request.args.get('status', '')
params = {'page': page, 'pageSize': page_size}
if status:
params['status'] = status
result, error_response, status_code = _proxy_backend_java(
'GET',
'/api/digital-human/versions',
params=params,
timeout=30
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/digital-human-versions/latest')
@admin_required
def get_latest_digital_human_version():
"""代理:获取最新数字人版本"""
result, error_response, status_code = _proxy_backend_java(
'GET',
'/api/digital-human/versions/latest',
timeout=10
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/digital-human-versions/upload', methods=['POST'])
@admin_required
def upload_digital_human_version():
"""代理:上传数字人版本"""
_, _, denied = _ensure_admin_menu_access('version')
if denied:
return denied
version = request.form.get('version', '').strip()
changelog = request.form.get('changelog', '').strip()
min_client_version = request.form.get('minClientVersion', '').strip()
file_storage = request.files.get('file')
if not version:
return jsonify({'success': False, 'message': '请填写版本号'}), 400
if not file_storage:
return jsonify({'success': False, 'message': '请选择文件'}), 400
files = {'file': (file_storage.filename, file_storage.stream, file_storage.content_type)}
data = {'version': version}
if changelog:
data['changelog'] = changelog
if min_client_version:
data['minClientVersion'] = min_client_version
result, error_response, status_code = _proxy_backend_java(
'POST',
'/api/digital-human/versions/upload',
files=files,
data=data,
timeout=300
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/digital-human-versions/<version>/release', methods=['POST'])
@admin_required
def release_digital_human_version(version):
"""代理:发布数字人版本"""
_, _, denied = _ensure_admin_menu_access('version')
if denied:
return denied
result, error_response, status_code = _proxy_backend_java(
'POST',
f'/api/digital-human/versions/{version}/release',
timeout=10
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/digital-human-versions/<version>/set-latest', methods=['POST'])
@admin_required
def set_latest_digital_human_version(version):
"""代理:设为最新数字人版本"""
_, _, denied = _ensure_admin_menu_access('version')
if denied:
return denied
result, error_response, status_code = _proxy_backend_java(
'POST',
f'/api/digital-human/versions/{version}/set-latest',
timeout=10
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/digital-human-versions/<version>', methods=['DELETE'])
@admin_required
def delete_digital_human_version(version):
"""代理:删除数字人版本"""
_, _, denied = _ensure_admin_menu_access('version')
if denied:
return denied
result, error_response, status_code = _proxy_backend_java(
'DELETE',
f'/api/digital-human/versions/{version}',
timeout=30
)
if error_response:
return error_response, status_code
return jsonify(result)
@admin_api.route('/version', methods=['POST'])
@admin_required
def upload_version():