fix+feat: 修复工作台接口不存在 + 3D 区域分配制重建

- 补齐公告后端: Announcement 模型 + /api/announcements + 种子公告
  (修复工作台/布局页调用不存在接口报'接口不存在')
- 修复 seed init_db 前置模型导入(announcements 表未建)
- WindoorThreed 区域分配制: 每个重放区域唯一归属
  (扇认领重叠最大区域, 其余静态玻璃), 杜绝扇面板与玻璃重叠混乱
- 全区域薄框线还原真实窗格, 扇面板含玻璃+四边扇框
This commit is contained in:
HHY
2026-09-21 02:34:53 -07:00
parent 4b52767654
commit 94c9bfe103
6 changed files with 133 additions and 62 deletions
+17
View File
@@ -11,6 +11,7 @@ DATA = Path(__file__).resolve().parents[3] / "data"
async def seed() -> None:
import huamenchuang.models # noqa: F401 确保全部模型注册到 metadata 后再建表
from huamenchuang.core.database import SessionLocal, init_db
from huamenchuang.models.user import User
from huamenchuang.models.windoor_template import WindoorCatelog, WindoorTemplate
@@ -82,6 +83,22 @@ async def seed() -> None:
await db.commit()
print("帮助文章就绪")
# 5) 平台公告(幂等:按名称去重)
async with SessionLocal() as db:
from huamenchuang.models.announcement import Announcement
ANNOUNCEMENTS = [
("AI 炫图功能上线", "选择样板一键生成多风格效果图,支持日景/黄昏/夜景与四种装修风格", 1),
("样板组合工场发布", "拖拽组合多个窗型样板,自由摆放、等高对齐、边缘吸附,支持 3D 预览", 2),
("3D 门窗开合演示", "3D 展示支持平开扇旋转、推拉扇滑动动画,可调节开合度", 3),
("优化下料引擎", "合同级汇总算料需求,一维优化切割提升型材利用率", 4),
]
existing = {n for (n,) in (await db.execute(select(Announcement.name))).all()}
for name, desc, sort in ANNOUNCEMENTS:
if name not in existing:
db.add(Announcement(name=name, desc=desc, sort=sort))
await db.commit()
print("平台公告就绪")
if __name__ == "__main__":
asyncio.run(seed())