From 9ea07e00fc8b92e9b75849859c1ecce77c7096d1 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 10 四月 2025 13:31:23 +0800
Subject: [PATCH] 优化

---
 app/models/role_model.py |   40 +++++++++++++++++++++++++++++++---------
 1 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/app/models/role_model.py b/app/models/role_model.py
index 3121054..3d4dbda 100644
--- a/app/models/role_model.py
+++ b/app/models/role_model.py
@@ -5,12 +5,13 @@
 from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
 from sqlalchemy.orm import relationship, backref
 
+from app.config.const import RESOURCE_STATUS_DELETE, DEPT_STATUS_DELETE
 from app.models.base_model import Base
 
 # 瑙掕壊璧勬簮鍏宠仈琛�
 role_resource_table = Table('role_resource', Base.metadata,
-                            Column('role_id', String(36), ForeignKey('role.id')),
-                            Column('resource_id', String(36), ForeignKey('resource.id')))
+                            Column('role_id', String(36), ForeignKey('role.id', ondelete='CASCADE')),
+                            Column('resource_id', String(36), ForeignKey('resource.id', ondelete='CASCADE')))
 
 
 
@@ -25,8 +26,9 @@
     seq = Column(Integer)
     roleKey = Column(String(100))
     dataScope = Column(Integer)
-    status = Column(String(10), default="0")
+    status = Column(String(10), default="1")
     creator = Column(Integer)
+    role_type = Column(Integer, default=1)
 
     # 鍖呭惈璧勬簮
     resources = relationship('ResourceModel',
@@ -57,27 +59,47 @@
             'dataScope': self.dataScope
         }
 
-        if len(self.resources) > 0:
-            json['resources'] = [resource.to_json() for resource in self.resources]
+        # if len(self.resources) > 0:
+        json['resources'] = [resource.to_json() for resource in self.resources if resource.status != DEPT_STATUS_DELETE]
 
-        if hasattr(self, 'flag'):
-            json['flag'] = self.flag
+        json['dept'] = [dept.to_base_json() for dept in self.organizations if dept.status != RESOURCE_STATUS_DELETE]
 
         return json
 
 
+    def to_dict(self):
+        json = {
+            'roleId': self.id,
+            'createTime': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
+            'updateTime': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
+            'roleName': self.name,
+            'remark': self.description,
+            'iconCls': self.iconCls,
+            'roleSort': self.seq,
+            'status': self.status,
+            'roleKey': self.roleKey,
+            'dataScope': self.dataScope
+        }
+        return json
+
 class RoleData(BaseModel):
     remark: Optional[str] = ""
     roleName: str
+    roleKey: Optional[str] = ""
+    dataScope: Optional[int] = 0
 
 
 class RoleStatus(BaseModel):
-    role_id: str
+    roleId: str
     status: constr(min_length=1, max_length=1, pattern='^(0|1)$')
 
 
 class RoleEdit(BaseModel):
-    role_id: str
+    roleId: str
     remark: Optional[str] = ""
     roleName: Optional[str] = ""
     resources: Optional[list] = []
+    roleKey: Optional[str] = ""
+    dataScope: Optional[int] = 0
+    editType: int
+    depts: Optional[list] = []

--
Gitblit v1.8.0