diff --git a/app/park/routers.py b/app/park/routers.py index 801ecb1..1125428 100644 --- a/app/park/routers.py +++ b/app/park/routers.py @@ -164,6 +164,15 @@ class ScreenBody(BaseModel): jobs: int | None = None area: int | None = None founded: int | None = None + address: str | None = None + phone: str | None = None + email: str | None = None + revenue_total: float | None = None + revenue_tax: float | None = None + intro: list[str] | None = None + feed: list[dict] | None = None + zones: list[dict] | None = None + industryMix: list[dict] | None = None # ==================== 健康 / 设置 / 引导 ==================== diff --git a/app/park/tenants.py b/app/park/tenants.py index cd9c407..c748185 100644 --- a/app/park/tenants.py +++ b/app/park/tenants.py @@ -382,9 +382,11 @@ def screen_view(tenant_id: str) -> dict: "name": t.get("name", ""), "intro": t.get("intro", []), "founded": park.get("founded"), "province_level": park.get("province_level") or park.get("provinceLevel"), "area": park.get("area"), - "address": park.get("address"), "phone": park.get("phone"), "email": park.get("email"), + "region": park.get("region", ""), "address": park.get("address"), "phone": park.get("phone"), "email": park.get("email"), "capacity": d.get("projects", {}).get("capacity"), "invested": d.get("projects", {}).get("invested"), "jobs": d.get("jobs", {}).get("total"), "revenue_total": d.get("revenue", {}).get("total"), "revenue_tax": d.get("revenue", {}).get("tax"), + "zones": d.get("zones", []), "industryMix": d.get("industryMix", []), "feed": d.get("feed", []), + "as_of": d.get("as_of", ""), } @@ -394,20 +396,30 @@ def update_screen(tenant_id: str, payload: dict) -> dict: if payload.get("name"): d["_name"] = payload["name"] # 名称存租户 name 列,见下 park = dict(d.get("park", {})) - for k in ("founded", "area", "address", "phone", "email"): + for k in ("founded", "area", "address", "phone", "email", "region"): if payload.get(k) is not None: park[k] = payload[k] d["park"] = park - for k, sub in (("capacity", "projects"), ("invested", "projects"), ("jobs", "jobs"), ("revenue_total", "revenue"), ("revenue_tax", "revenue")): + proj = dict(d.get("projects", {})) + if payload.get("capacity") is not None: + proj["capacity"] = payload["capacity"] + if payload.get("invested") is not None: + proj["invested"] = payload["invested"] + d["projects"] = proj + jobs = dict(d.get("jobs", {})) + if payload.get("jobs") is not None: + jobs["total"] = payload["jobs"] + d["jobs"] = jobs + rev = dict(d.get("revenue", {})) + if payload.get("revenue_total") is not None: + rev["total"] = payload["revenue_total"] + if payload.get("revenue_tax") is not None: + rev["tax"] = payload["revenue_tax"] + d["revenue"] = rev + # 动态 / 区域 / 产业构成(整表替换,可全量编辑) + for k in ("feed", "zones", "industryMix"): if payload.get(k) is not None: - s = dict(d.get(sub, {})) - target = "total" if sub in ("jobs", "revenue") and k != "revenue_total" and k != "revenue_tax" else ("capacity" if k == "capacity" else "invested" if k == "invested" else ("tax" if k == "revenue_tax" else "total")) - if sub == "revenue": - target = "total" if k == "revenue_total" else "tax" - if sub == "jobs": - target = "total" - s[target] = payload[k] - d[sub] = s + d[k] = payload[k] conn = _conn() name = payload.get("name") or t["name"] intro = payload.get("intro") or t.get("intro", [])