feat: 新增用车需求服务及线索管理全功能

- 新增后台用车服务配置模块,支持维护服务简介、优势与使用流程
- 新增需求线索管理页面,支持筛选、查看与更新用车线索状态
- 新增小程序用车需求页面,优化登录路径与回跳逻辑
- 优化车型卡片跳转与用车需求提交功能
- 新增服务端API与数据处理逻辑,完善权限校验
- 更新全站配置与API文档,新增相关测试用例
This commit is contained in:
duanshuwen committed 2026-08-22 21:48:08 +08:00
1 parent b7a81964c9
commit d42f69bd47
36 files changed
+1290 -33

No files matched your search

+18
View File
@@ -85,6 +85,20 @@ class VehicleOption(Base):
updatedAt: Mapped[datetime] = mapped_column(DateTime, default=utc_now, onupdate=utc_now, nullable=False)
class VehicleServiceConfig(Base):
__tablename__ = "VehicleServiceConfig"
id: Mapped[str] = mapped_column(String, primary_key=True, default=new_id)
introTitle: Mapped[str] = mapped_column(String, nullable=False)
intro: Mapped[str] = mapped_column(Text, nullable=False)
serviceSections: Mapped[list[dict[str, str]]] = mapped_column(JSONB, default=list, nullable=False)
advantages: Mapped[list[str]] = mapped_column(JSONB, default=list, nullable=False)
processSteps: Mapped[list[dict[str, str]]] = mapped_column(JSONB, default=list, nullable=False)
isActive: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False)
createdAt: Mapped[datetime] = mapped_column(DateTime, default=utc_now, nullable=False)
updatedAt: Mapped[datetime] = mapped_column(DateTime, default=utc_now, onupdate=utc_now, nullable=False)
class HomeExperience(Base):
__tablename__ = "HomeExperience"
@@ -275,6 +289,9 @@ class Lead(Base):
__tablename__ = "Lead"
id: Mapped[str] = mapped_column(String, primary_key=True, default=new_id)
leadType: Mapped[str] = mapped_column(String, default="general", nullable=False, index=True)
contactName: Mapped[str | None] = mapped_column(String)
customerId: Mapped[str | None] = mapped_column(String, ForeignKey("Customer.id", ondelete="SET NULL"), index=True)
destination: Mapped[str | None] = mapped_column(String)
phone: Mapped[str] = mapped_column(String, nullable=False)
travelDate: Mapped[datetime | None] = mapped_column(DateTime)
@@ -282,6 +299,7 @@ class Lead(Base):
budgetMin: Mapped[int | None] = mapped_column(Integer)
budgetMax: Mapped[int | None] = mapped_column(Integer)
note: Mapped[str | None] = mapped_column(Text)
vehicleDemand: Mapped[dict | None] = mapped_column(JSONB)
sourcePage: Mapped[str | None] = mapped_column(String)
status: Mapped[str] = mapped_column(String, default="new", nullable=False)
assignedUserId: Mapped[str | None] = mapped_column(String, ForeignKey("AdminUser.id", ondelete="SET NULL"))