feat: 实现软删除功能并添加相关字段

在全局类型定义、模型、CRUD操作中添加软删除支持
- 在BaseModel中添加is_deleted和deleted_time字段
- 在UserMixin中添加deleted_id和deleted_by关联
- 修改CRUDBase的delete和clear方法实现软删除逻辑
- 更新所有相关模型添加deleted_by字段
- 修改前端接口定义添加deleted_by字段
- 移除冗余的成功提示消息
This commit is contained in:
zhangtao
2026-04-19 23:08:27 +08:00
parent 7b7f617455
commit a462ab5793
37 changed files with 2465 additions and 1339 deletions
@@ -16,7 +16,7 @@ class ApplicationModel(ModelMixin, TenantMixin, UserMixin):
__tablename__: str = "app_portal"
__table_args__: dict[str, str] = {"comment": "门户应用"}
__loader_options__: list[str] = ["created_by", "updated_by"]
__loader_options__: list[str] = ["created_by", "updated_by", "deleted_by"]
name: Mapped[str] = mapped_column(String(64), nullable=False, comment="应用名称")
access_url: Mapped[str] = mapped_column(String(500), nullable=False, comment="访问地址")
@@ -37,7 +37,7 @@ class OperationLogModel(ModelMixin, UserMixin):
__tablename__: str = "sys_log"
__table_args__: dict[str, str] = {"comment": "系统日志表"}
__loader_options__: list[str] = ["created_by", "updated_by"]
__loader_options__: list[str] = ["created_by", "updated_by", "deleted_by"]
type: Mapped[int] = mapped_column(Integer, comment="日志类型(1登录日志 2操作日志)")
request_path: Mapped[str] = mapped_column(String(255), comment="请求路径")
@@ -11,7 +11,7 @@ class NoticeModel(ModelMixin, UserMixin):
__tablename__: str = "sys_notice"
__table_args__: dict[str, str] = {"comment": "通知公告表"}
__loader_options__: list[str] = ["created_by", "updated_by"]
__loader_options__: list[str] = ["created_by", "updated_by", "deleted_by"]
notice_title: Mapped[str] = mapped_column(String(64), nullable=False, comment="公告标题")
notice_type: Mapped[str] = mapped_column(
@@ -16,7 +16,7 @@ class PositionModel(ModelMixin, UserMixin):
__tablename__: str = "sys_position"
__table_args__: dict[str, str] = {"comment": "岗位表"}
__loader_options__: list[str] = ["users", "created_by", "updated_by"]
__loader_options__: list[str] = ["users", "created_by", "updated_by", "deleted_by"]
name: Mapped[str] = mapped_column(String(64), nullable=False, comment="岗位名称")
order: Mapped[int] = mapped_column(Integer, nullable=False, default=1, comment="显示排序")
@@ -57,5 +57,3 @@ class TenantCRUD(CRUDBase[TenantModel, TenantCreateSchema, TenantUpdateSchema]):
async def set_available_crud(self, ids: list[int], status: str) -> None:
await self.set(ids=ids, status=status)
@@ -52,7 +52,7 @@ class TenantService:
tenant_obj = await TenantCRUD(auth).create_crud(data=data)
if not tenant_obj:
raise CustomException(msg="创建租户失败")
# 创建租户初始管理员
# 1. 生成初始管理员用户名
# 2. 检查用户名是否已存在
@@ -75,6 +75,7 @@ class UserModel(ModelMixin, TenantMixin, UserMixin):
"positions",
"created_by",
"updated_by",
"deleted_by",
]
username: Mapped[str] = mapped_column(