Files
Django/jituan/services/club_migrate_assets.py

63 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""跨俱乐部资产迁移 — 资产字段白名单字典(只迁登记过的字段)。"""
from __future__ import annotations
from typing import Dict, List, Tuple
# key = "role.field" huiyuan 为特殊包
ASSET_CATALOG: Dict[str, dict] = {
'dashou.yue': {'role': 'dashou', 'field': 'yue', 'label': '打手可提现', 'kind': 'money'},
'dashou.yajin': {'role': 'dashou', 'field': 'yajin', 'label': '打手押金', 'kind': 'money'},
'dashou.jifen': {'role': 'dashou', 'field': 'jifen', 'label': '打手积分', 'kind': 'int'},
'dashou.dongjie_yue': {'role': 'dashou', 'field': 'dongjie_yue', 'label': '打手冻结资金', 'kind': 'money'},
'dashou.huiyuan': {'role': 'dashou', 'field': 'huiyuan', 'label': '打手会员资格', 'kind': 'huiyuan'},
'shangjia.yue': {'role': 'shangjia', 'field': 'yue', 'label': '商家余额', 'kind': 'money'},
'guanshi.yue': {'role': 'guanshi', 'field': 'yue', 'label': '管事可提现', 'kind': 'money'},
'guanshi.dongjie_yue': {'role': 'guanshi', 'field': 'dongjie_yue', 'label': '管事冻结资金', 'kind': 'money'},
'zuzhang.ketixian_jine': {'role': 'zuzhang', 'field': 'ketixian_jine', 'label': '组长可提现', 'kind': 'money'},
'zuzhang.dongjie_yue': {'role': 'zuzhang', 'field': 'dongjie_yue', 'label': '组长冻结资金', 'kind': 'money'},
'shenheguan.yue': {'role': 'shenheguan', 'field': 'yue', 'label': '考核官可提现', 'kind': 'money'},
'shenheguan.dongjie_yue': {'role': 'shenheguan', 'field': 'dongjie_yue', 'label': '考核官冻结资金', 'kind': 'money'},
}
ROLE_PROFILE_ATTR = {
'dashou': 'DashouProfile',
'shangjia': 'ShopProfile',
'guanshi': 'GuanshiProfile',
'zuzhang': 'ZuzhangProfile',
'shenheguan': 'ShenheguanProfile',
}
def normalize_whitelist(raw) -> List[str]:
if not raw:
return []
out = []
seen = set()
for x in raw:
k = str(x or '').strip()
if k in ASSET_CATALOG and k not in seen:
seen.add(k)
out.append(k)
return out
def catalog_for_admin() -> List[dict]:
return [
{'key': k, 'label': v['label'], 'role': v['role'], 'field': v['field'], 'kind': v['kind']}
for k, v in ASSET_CATALOG.items()
]
def roles_from_whitelist(keys: List[str]) -> List[str]:
roles = []
seen = set()
for k in keys:
meta = ASSET_CATALOG.get(k)
if not meta:
continue
r = meta['role']
if r not in seen:
seen.add(r)
roles.append(r)
return roles