zhaoqingang
2025-02-25 ac9373fd6f0db53c983d87c4790cb627e82759e9
app/models/organization_model.py
@@ -5,6 +5,7 @@
from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime
from sqlalchemy.orm import relationship, backref
from app.config.const import DEPT_STATUS_DELETE
from app.models.base_model import Base
# organization_group_table = Table('organization_group', Base.metadata,
@@ -29,7 +30,7 @@
    leader = Column(String(255))
    phone = Column(String(32))
    email = Column(String(64))
    status = Column(String(10), nullable=False, default="0")
    status = Column(String(10), nullable=False, default="1")
    # groups = relationship('GroupModel',
    #                             secondary=organization_group_table,
@@ -65,11 +66,49 @@
            'roles': [self.role_json(role) for role in self.roles],
            # 'groups': [self.group_json(group) for group in self.groups],
            'children': [
                org.to_json() for org in self.children
                org.to_json() for org in self.children if org.status != DEPT_STATUS_DELETE
            ]
        }
        return json
    def to_dict(self):
        json = {
            'deptId': self.id,
            'createTime': self.created_at,
            'updateTime': self.updated_at,
            'deptName': self.name,
            'address': self.address,
            'code': self.code,
            'iconCls': self.iconcls,
            'orderNum': self.seq,
            'parentId': self.get_pid(),
            'parentName': self.get_pName(),
            'leader': self.leader,
            'phone': self.phone,
            'email': self.email,
            'status': self.status,
            'roles': [self.role_json(role) for role in self.roles],
        }
        return json
    def to_base_json(self):
        json = {
            'deptId': self.id,
            'deptName': self.name,
            'address': self.address,
            'code': self.code,
            'iconCls': self.iconcls,
            'orderNum': self.seq,
            'leader': self.leader,
            'phone': self.phone,
            'email': self.email,
            'status': self.status
        }
        return json
    def role_json(self, role):
        return {
@@ -130,8 +169,8 @@
    orderNum: int
    address: Optional[str] = ""
    parentId: Optional[str] = ""
    status: str
    roles: list
    status:  Optional[str|int] = ""
    roles: Optional[list] = []
    groups: Optional[list] = []
@@ -139,3 +178,8 @@
    deptId: str
    parentId: str
    orderNum: int
class DeptStatus(BaseModel):
    deptId: str
    status: str