From 93780ac01db849f8cf05a86a2fcf19114ed51b6c Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 30 May 2026 00:20:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9C=9F=E4=BA=BA=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=AF=E9=80=89name=E5=8F=82=E6=95=B0,=20?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=B0rl=5Forg=5Fgroup=E4=BE=9B=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rl_verify_user(): 新增name参数, 存入rl_asset_group.name/title - rl_handle_callback(): 回调时将name从rl_asset_group复制到rl_org_group - rl_query_groups(): 返回结果增加name字段 - rl_org_group模型: 新增name字段(str/200) - rl_verify.dspy/submit_create_validate.dspy: 接收name参数 - create_validate.ui: 表单增加认证名称输入框(可选) - api_downapp.md: 文档同步更新 --- docs/api_downapp.md | 3 +++ models/rl_org_group.json | 6 ++++++ reallife_asset/init.py | 11 ++++++++--- wwwroot/api/rl_verify.dspy | 3 ++- wwwroot/api/submit_create_validate.dspy | 3 ++- wwwroot/create_validate.ui | 7 +++++++ 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/docs/api_downapp.md b/docs/api_downapp.md index cc5c86c..9725ee8 100644 --- a/docs/api_downapp.md +++ b/docs/api_downapp.md @@ -29,7 +29,9 @@ https://token.opencomputing.cn ### 请求参数 | 参数 | 必填 | 说明 | |------|------|------| +| `vendor` | 是 | 供应商标识 | | `project_name` | 否 | 项目名称,默认 `default` | +| `name` | 否 | 认证名称,方便识别的名称,查询组合列表时显示 | > `user_id` 和 `org_id` 由 Bearer Token 自动获取,无需传递。 @@ -92,6 +94,7 @@ Authorization: Bearer { "vendor_group_id": "volc-asset-group-xxx", "vendor": "volcengine", + "name": "模特张三", "status": "active", "create_time": "2026-05-28 15:30:00" } diff --git a/models/rl_org_group.json b/models/rl_org_group.json index 3d410e4..fe98f0d 100644 --- a/models/rl_org_group.json +++ b/models/rl_org_group.json @@ -40,6 +40,12 @@ "type": "str", "length": 32 }, + { + "name": "name", + "title": "组合名称", + "type": "str", + "length": 200 + }, { "name": "status", "title": "状态", diff --git a/reallife_asset/init.py b/reallife_asset/init.py index cbf9ee0..cc55f03 100644 --- a/reallife_asset/init.py +++ b/reallife_asset/init.py @@ -432,7 +432,7 @@ async def rl_sync_assets_from_vendor(org_id, local_group_id): # Downapp User API Proxies (client-facing via dapi Bearer auth) # ============================================================ -async def rl_verify_user(org_id, user_id, vendor, project_name="default"): +async def rl_verify_user(org_id, user_id, vendor, project_name="default", name=""): """User proxy: Create H5 verification session via uapi gateway.""" callback_cfg = await _get_vendor_config(vendor) if not callback_cfg.get("success"): @@ -451,6 +451,7 @@ async def rl_verify_user(org_id, user_id, vendor, project_name="default"): byted_token = result.get("BytedToken", result.get("Result", {}).get("BytedToken", "")) h5_link = result.get("H5Link", result.get("Result", {}).get("H5Link", "")) + display_name = name or f"待认证-{user_id}" gid = getID() now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") db = DBPools() @@ -459,8 +460,8 @@ async def rl_verify_user(org_id, user_id, vendor, project_name="default"): "id": gid, "org_id": org_id, "vendor": vendor, - "name": f"待认证-{user_id}", - "title": f"待认证", + "name": display_name, + "title": display_name, "group_type": "LivenessFace", "project_name": project_name, "status": "pending", @@ -597,6 +598,7 @@ async def rl_handle_callback(byted_token, project_name="default"): local_group_id = rec.id org_id = rec.org_id vendor = rec.vendor + group_name = getattr(rec, "name", "") or getattr(rec, "title", "") if rec.status == "active" and rec.vendor_group_id: debug(f"callback already processed for group {local_group_id}") @@ -635,6 +637,7 @@ async def rl_handle_callback(byted_token, project_name="default"): await sor.U("rl_org_group", { "vendor_group_id": vendor_group_id, "local_group_id": local_group_id, + "name": group_name, "update_time": now, }, {"id": existing[0].id}) else: @@ -644,6 +647,7 @@ async def rl_handle_callback(byted_token, project_name="default"): "vendor": vendor, "vendor_group_id": vendor_group_id, "local_group_id": local_group_id, + "name": group_name, "status": "active", "create_time": now, }) @@ -681,6 +685,7 @@ async def rl_query_groups(org_id): groups.append({ "vendor_group_id": r.vendor_group_id, "vendor": r.vendor, + "name": getattr(r, "name", ""), "status": r.status, "create_time": getattr(r, "create_time", ""), }) diff --git a/wwwroot/api/rl_verify.dspy b/wwwroot/api/rl_verify.dspy index 6916dcf..0a4db38 100644 --- a/wwwroot/api/rl_verify.dspy +++ b/wwwroot/api/rl_verify.dspy @@ -2,6 +2,7 @@ import json vendor = params_kw.get('vendor', '') project_name = params_kw.get('project_name', 'default') +name = params_kw.get('name', '') if not vendor: return json.dumps({"status": "error", "data": {"message": "请选择供应商"}}, ensure_ascii=False) @@ -9,7 +10,7 @@ if not vendor: org_id = (await get_userorgid()) or '0' user_id = (await get_user()) or '' -result = await rl_verify_user(org_id, user_id, vendor, project_name) +result = await rl_verify_user(org_id, user_id, vendor, project_name, name=name) if result.get('success'): return json.dumps({ diff --git a/wwwroot/api/submit_create_validate.dspy b/wwwroot/api/submit_create_validate.dspy index 5779441..a9bc1b3 100644 --- a/wwwroot/api/submit_create_validate.dspy +++ b/wwwroot/api/submit_create_validate.dspy @@ -1,6 +1,7 @@ import json vendor = params_kw.get('vendor', '') +name = params_kw.get('name', '') if not vendor: return json.dumps({ @@ -12,7 +13,7 @@ org_id = (await get_userorgid()) or '0' user_id = (await get_user()) or '' project_name = "default" -result = await rl_verify_user(org_id, user_id, vendor, project_name) +result = await rl_verify_user(org_id, user_id, vendor, project_name, name=name) if result.get('success'): h5_link = result.get('h5_link', '') diff --git a/wwwroot/create_validate.ui b/wwwroot/create_validate.ui index 4f3194f..fc3a972 100644 --- a/wwwroot/create_validate.ui +++ b/wwwroot/create_validate.ui @@ -34,6 +34,13 @@ "data_field": "value", "text_field": "text", "required": true + }, + { + "uitype": "str", + "name": "name", + "label": "认证名称", + "placeholder": "可选,方便识别的名称", + "required": false } ] },