fix: fix duplicate app lose custom image (#19775)

This commit is contained in:
CorrectRoad
2025-05-20 16:44:51 +08:00
committed by GitHub
parent b2ae46b80f
commit 618981f1ae
5 changed files with 19 additions and 7 deletions

View File

@@ -100,6 +100,7 @@ class PendingData(BaseModel):
description: str | None
icon_type: str | None
icon: str | None
icon_url: str | None
icon_background: str | None
app_id: str | None
@@ -124,6 +125,7 @@ class AppDslService:
description: Optional[str] = None,
icon_type: Optional[str] = None,
icon: Optional[str] = None,
icon_url: Optional[str] = None,
icon_background: Optional[str] = None,
app_id: Optional[str] = None,
) -> Import:
@@ -248,6 +250,7 @@ class AppDslService:
icon_type=icon_type,
icon=icon,
icon_background=icon_background,
icon_url=icon_url,
app_id=app_id,
)
redis_client.setex(
@@ -288,6 +291,7 @@ class AppDslService:
description=description,
icon_type=icon_type,
icon=icon,
icon_url=icon_url,
icon_background=icon_background,
dependencies=check_dependencies_pending_data,
)
@@ -409,6 +413,7 @@ class AppDslService:
description: Optional[str] = None,
icon_type: Optional[str] = None,
icon: Optional[str] = None,
icon_url: Optional[str] = None,
icon_background: Optional[str] = None,
dependencies: Optional[list[PluginDependency]] = None,
) -> App:
@@ -421,12 +426,12 @@ class AppDslService:
# Set icon type
icon_type_value = icon_type or app_data.get("icon_type")
if icon_type_value in ["emoji", "link"]:
if icon_type_value in ["emoji", "link", "image"]:
icon_type = icon_type_value
else:
icon_type = "emoji"
icon = icon or str(app_data.get("icon", ""))
icon_url = icon_url or str(app_data.get("icon_url", ""))
if app:
# Update existing app
app.name = name or app_data.get("name", app.name)
@@ -434,6 +439,7 @@ class AppDslService:
app.icon_type = icon_type
app.icon = icon
app.icon_background = icon_background or app_data.get("icon_background", app.icon_background)
app.icon_url = icon_url or app_data.get("icon_url", app.icon_url)
app.updated_by = account.id
else:
if account.current_tenant_id is None: