feat: UserWorkspace

This commit is contained in:
fit2cloud-chenyw
2025-07-07 17:34:57 +08:00
parent 17fd6ffbf7
commit 261a660019
4 changed files with 64 additions and 6 deletions
@@ -0,0 +1,33 @@
"""021_user_ws_ddl
Revision ID: 440e9e41da3c
Revises: a6b44114c17f
Create Date: 2025-07-07 17:21:46.858887
"""
from alembic import op
import sqlalchemy as sa
import sqlmodel.sql.sqltypes
# revision identifiers, used by Alembic.
revision = '440e9e41da3c'
down_revision = 'a6b44114c17f'
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
'sys_user_ws',
sa.Column('id', sa.BigInteger(), primary_key=True, nullable=False),
sa.Column('uid', sa.BigInteger(), nullable=False),
sa.Column('oid', sa.BigInteger(), nullable=False),
sa.Column('weight', sa.Integer(), nullable=False)
)
op.create_index(op.f('ix_sys_user_ws_id'), 'sys_user_ws', ['id'], unique=False)
def downgrade():
op.drop_index(op.f('ix_sys_user_ws_id'), table_name='sys_user_ws')
op.drop_table('sys_user_ws')
+15 -4
View File
@@ -1,6 +1,7 @@
from fastapi import APIRouter
from sqlmodel import select
from apps.system.models.system_model import WorkspaceBase, WorkspaceEditor, WorkspaceModel
from apps.system.models.system_model import UserWsModel, WorkspaceBase, WorkspaceEditor, WorkspaceModel
from apps.system.schemas.system_schema import UserWsBase, UserWsDTO
from common.core.deps import SessionDep, Trans
from common.utils.time import get_timestamp
@@ -49,6 +50,16 @@ async def delete(session: SessionDep, id: int):
session.delete(db_model)
session.commit()
@router.post("/user/{id}")
async def bindUser(session: SessionDep, user_id: int):
pass
@router.post("/uws")
async def create(session: SessionDep, creator: UserWsDTO):
db_model = UserWsModel.model_validate(creator)
session.add(db_model)
session.commit()
@router.delete("/uws")
async def delete(session: SessionDep, dto: UserWsBase):
db_model: UserWsModel = session.exec(select(UserWsModel).where(UserWsModel.uid == dto.uid, UserWsModel.oid == dto.oid)).first()
if not db_model:
raise ValueError(f"UserWsModel not found")
session.delete(db_model)
session.commit()
+9 -1
View File
@@ -31,4 +31,12 @@ class WorkspaceEditor(WorkspaceBase, BaseCreatorDTO):
class WorkspaceModel(SnowflakeBase, WorkspaceBase, table=True):
__tablename__ = "sys_workspace"
create_time: int = Field(default=0, sa_type=BigInteger())
create_time: int = Field(default=0, sa_type=BigInteger())
class UserWsBaseModel(SQLModel):
uid: int = Field(nullable=False, sa_type=BigInteger())
oid: int = Field(nullable=False, sa_type=BigInteger())
weight: int = Field(default=0, nullable=False)
class UserWsModel(SnowflakeBase, UserWsBaseModel, table=True):
__tablename__ = "sys_user_ws"
+7 -1
View File
@@ -41,4 +41,10 @@ class UserGrid(UserEditor):
class PwdEditor(BaseModel):
pwd: str
new_pwd: str
new_pwd: str
class UserWsBase(BaseModel):
uid: int
oid: int
class UserWsDTO(UserWsBase):
weight: int = 0