From 6a07788b591e0449a39d99fab739974a30fcd868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8B=A5?= Date: Sun, 8 Mar 2026 08:57:28 +0800 Subject: [PATCH] =?UTF-8?q?sync:=20soul-admin=20=E7=BB=84=E4=BB=B6=20|=20?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0:=20=E5=89=8D=E7=AB=AF=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/user/UserDetailModal.tsx | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/soul-admin/src/components/modules/user/UserDetailModal.tsx b/soul-admin/src/components/modules/user/UserDetailModal.tsx index 59f54252..7394709e 100644 --- a/soul-admin/src/components/modules/user/UserDetailModal.tsx +++ b/soul-admin/src/components/modules/user/UserDetailModal.tsx @@ -228,10 +228,10 @@ export function UserDetailModal({ const removeTag = (tag: string) => setEditTags(editTags.filter((t) => t !== tag)) - // 神射手查询 + // 用户资料完善查询(支持多维度) async function handleSSSQuery() { - if (!sssQueryPhone && !user?.openId) { - setSssError('请输入手机号或确保用户已绑定 openId') + if (!sssQueryPhone && !sssQueryOpenId && !sssQueryWechatId) { + setSssError('请至少输入手机号、微信号或 OpenID 中的一项') return } setSssLoading(true) @@ -240,12 +240,17 @@ export function UserDetailModal({ try { const params = new URLSearchParams() if (sssQueryPhone) params.set('phone', sssQueryPhone) - if (user?.openId) params.set('openId', user.openId) + if (sssQueryOpenId) params.set('openId', sssQueryOpenId) + if (sssQueryWechatId) params.set('wechatId', sssQueryWechatId) const data = await get<{ success?: boolean; data?: ShensheShouData; error?: string }>( `/api/admin/shensheshou/query?${params}`, ) - if (data?.success && data.data) setSssData(data.data) - else setSssError(data?.error || '未查询到数据,可能该用户未在神射手中收录') + if (data?.success && data.data) { + setSssData(data.data) + // 自动回填到用户信息 + if (user) await handleSSSEnrich(data.data) + } + else setSssError(data?.error || '未查询到数据,该用户可能未在神射手收录') } catch (e) { console.error('SSS query error:', e) setSssError('请求失败,请检查神射手接口配置') @@ -254,6 +259,22 @@ export function UserDetailModal({ } } + // 查询后自动回填用户基础信息 + async function handleSSSEnrich(sssResult: ShensheShouData) { + if (!user) return + try { + await post('/api/admin/shensheshou/enrich', { + userId: user.id, + phone: sssQueryPhone || user.phone || '', + openId: sssQueryOpenId || user.openId || '', + wechatId: sssQueryWechatId || user.wechatId || '', + }) + loadUserDetail() + } catch (e) { + console.error('SSS enrich error:', e) + } + } + // 神射手 - 将当前用户信息推送/同步到神射手 async function handleSSSIngest() { if (!user) return