task-98: 移除 similar-asin/appearance-patent 模块 Coze,状态机与共享组件改名 LLM
Build Backend JAR / build (push) Has been cancelled
Build Backend JAR / build (push) Has been cancelled
- similarasin/appearancepatent 模块全部 Coze 工作流调用改走 direct-LLM(已确认唯一运行路径) - 共享组件改名:CozeTaskQueueGate→TaskQueueGate、CozeGroupResultPropagator→GroupResultPropagator - 状态机改名:biz_task_scope_state 的 coze_* 列→llm_*、stateJson coze 键→llm(V100 迁移已应用生产) - 删除 biz_coze_credential 表、CozeCredential* 类、SimilarAsinCozeClient、AppearancePatentCozeClient→LlmClient - 前端 brand 页 Coze 文案→LLM;Python 后端删除 cozepy 依赖与死配置 - 修复 TaskResultFileJobWorker 启动失败:TaskFileJobConfig 注册 ResultFileJobHandlerRegistry 与 13 个 handler bean(含 validateCoverage 启动校验)
This commit is contained in:
@@ -2181,6 +2181,67 @@ def update_column(cid):
|
||||
})
|
||||
|
||||
|
||||
def _reorder_columns_by_list(data):
|
||||
"""按前端拖动后的完整同级顺序重排菜单,只回写排序真正变化的记录。"""
|
||||
raw_ids = data.get('ordered_ids')
|
||||
if raw_ids is None:
|
||||
raw_ids = data.get('orderedIds')
|
||||
if not isinstance(raw_ids, list) or not raw_ids:
|
||||
return jsonify({'success': False, 'error': '菜单重排参数无效'}), 400
|
||||
ordered_ids = []
|
||||
for raw_id in raw_ids:
|
||||
try:
|
||||
parsed_id = int(raw_id)
|
||||
except (TypeError, ValueError):
|
||||
return jsonify({'success': False, 'error': '菜单重排参数无效'}), 400
|
||||
if parsed_id in ordered_ids:
|
||||
return jsonify({'success': False, 'error': '菜单重排参数重复'}), 400
|
||||
ordered_ids.append(parsed_id)
|
||||
menu_type = (data.get('menu_type') or data.get('menuType') or 'admin').strip() or 'admin'
|
||||
items, error_response, status = _java_permission_items(menu_type=menu_type)
|
||||
if error_response is not None:
|
||||
return error_response, status
|
||||
by_id = {}
|
||||
for item in _iter_permission_items(items):
|
||||
try:
|
||||
by_id[int(item.get('id'))] = item
|
||||
except (TypeError, ValueError):
|
||||
continue
|
||||
missing = [item_id for item_id in ordered_ids if item_id not in by_id]
|
||||
if missing:
|
||||
return jsonify({'success': False, 'error': '栏目不存在'}), 400
|
||||
parent_ids = {
|
||||
by_id[item_id].get('parentId') if by_id[item_id].get('parentId') is not None
|
||||
else by_id[item_id].get('parent_id')
|
||||
for item_id in ordered_ids
|
||||
}
|
||||
if len(parent_ids) > 1:
|
||||
return jsonify({'success': False, 'error': '只能在同级菜单之间排序'}), 400
|
||||
for index, item_id in enumerate(ordered_ids):
|
||||
item = by_id[item_id]
|
||||
sort_order = (index + 1) * 10
|
||||
current_order = item.get('sortOrder')
|
||||
if current_order is None:
|
||||
current_order = item.get('sort_order')
|
||||
if current_order is not None and int(current_order) == sort_order:
|
||||
continue
|
||||
_, error_response, status = _proxy_permission_java(
|
||||
'PUT',
|
||||
f'/api/admin/permission-menus/{item_id}',
|
||||
json_data={
|
||||
'name': item.get('name') or '',
|
||||
'columnKey': item.get('columnKey') or item.get('column_key') or '',
|
||||
'menuType': item.get('menuType') or item.get('menu_type') or menu_type,
|
||||
'routePath': item.get('routePath') or item.get('route_path') or '',
|
||||
'sortOrder': sort_order,
|
||||
'parentId': item.get('parentId') if item.get('parentId') is not None else item.get('parent_id'),
|
||||
},
|
||||
)
|
||||
if error_response is not None:
|
||||
return error_response, status
|
||||
return jsonify({'success': True, 'msg': '排序更新成功'})
|
||||
|
||||
|
||||
@admin_api.route('/column/reorder', methods=['POST'])
|
||||
@admin_required
|
||||
def reorder_column():
|
||||
@@ -2188,6 +2249,8 @@ def reorder_column():
|
||||
if denied:
|
||||
return denied
|
||||
data = request.get_json() or {}
|
||||
if data.get('ordered_ids') is not None or data.get('orderedIds') is not None:
|
||||
return _reorder_columns_by_list(data)
|
||||
try:
|
||||
column_id = int(data.get('column_id'))
|
||||
target_id = int(data.get('target_id'))
|
||||
|
||||
Reference in New Issue
Block a user