fix(priority): keep readable priority sync details
This commit is contained in:
@@ -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 只存 ID,name 展示用可留 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()
|
||||
|
||||
Reference in New Issue
Block a user