fix(priority): keep readable priority sync details

This commit is contained in:
liumangmang
2026-07-01 09:12:39 +08:00
parent fe40fcd4c9
commit d92537688a
6 changed files with 65 additions and 14 deletions
+17 -4
View File
@@ -579,6 +579,16 @@ def import_upstream_keys_as_accounts(
pass
with _client(website) as c:
target_group_names: dict[str, str] = {}
try:
grps = c.get_groups(endpoint=website.groups_endpoint) or []
for g in grps:
g_id = g.get("id")
if g_id is not None:
target_group_names[str(g_id)] = g.get("name") or str(g_id)
except Exception as e:
logger.warning("failed to fetch groups for website %s at import: %s", wid, e)
for row in rows:
# 跳过远端已不存在或导入失败的 Key(对账后标记为 orphaned / import_failed
if row.status in ("orphaned", "failed", "import_failed"):
@@ -608,9 +618,12 @@ def import_upstream_keys_as_accounts(
if exists is True:
# 顺手回填 imported_target_group_id(老数据升级后可通过重导自动补齐)
new_tgid = body.target_group_map.get(row.group_id) or None
if new_tgid and row.imported_target_group_id != new_tgid:
row.imported_target_group_id = new_tgid
db.commit()
if new_tgid:
tg_name = target_group_names.get(str(new_tgid))
if row.imported_target_group_id != new_tgid or row.imported_target_group_name != tg_name:
row.imported_target_group_id = new_tgid
row.imported_target_group_name = tg_name
db.commit()
items.append(ImportAccountItem(
upstream_key_id=row.id,
source_group_id=row.group_id,
@@ -683,7 +696,7 @@ def import_upstream_keys_as_accounts(
row.imported_account_id = account_id or None
row.imported_at = datetime.now(timezone.utc)
row.imported_target_group_id = target_group_id or None
row.imported_target_group_name = None # target_group_map 只存 IDname 展示用可留 NULL
row.imported_target_group_name = target_group_names.get(str(target_group_id)) if target_group_id else None
row.status = "imported"
row.error = None
db.commit()