Selaa lähdekoodia

suhh-部门树查询

‘suhuihui’ 2 kuukautta sitten
vanhempi
commit
9b8f17c2cb

+ 3 - 0
api/controllers/console/__init__.py

@@ -73,6 +73,9 @@ from .auth import activate, data_source_bearer_auth, data_source_oauth, forgot_p
 # Import billing controllers
 from .billing import billing, compliance
 
+# Import dept controllers
+from .dept import depts
+
 # Import datasets controllers
 from .datasets import (
     data_source,

+ 36 - 0
api/controllers/console/dept/depts.py

@@ -0,0 +1,36 @@
+import flask_restful  # type: ignore
+from flask_login import current_user  # type: ignore  # type: ignore
+from flask_restful import Resource, marshal, marshal_with, reqparse  # type: ignore
+from controllers.console import api
+
+from controllers.console.wraps import (
+    account_initialization_required,
+    setup_required,
+)
+
+from libs.login import login_required
+from services.dept_service import DeptService
+class DeptAccountListApi(Resource):
+    @setup_required
+    @login_required
+    @account_initialization_required
+    def get(self):
+        dept_account_list=DeptService.get_dept_account_list()
+        response = {
+            "data": dept_account_list,
+        }
+        return response, 200
+
+class DeptListApi(Resource):
+    @setup_required
+    @login_required
+    @account_initialization_required
+    def get(self):
+        dept_list = DeptService.get_dept_list()
+        response = {
+            "data": dept_list,
+        }
+        return response, 200
+
+api.add_resource(DeptAccountListApi, "/dept/dept-accounts")
+api.add_resource(DeptListApi, "/dept")

+ 3 - 1
api/models/dept.py

@@ -14,7 +14,9 @@ class DeptStatus(enum.StrEnum):
 
 class Dept(db.Model):
     __tablename__ = "dept"
-    __table_args__ = db.PrimaryKeyConstraint("dept_id", name="dept_pkey")
+    __table_args__ = (
+        db.PrimaryKeyConstraint("dept_id", name="dept_pkey"),
+    )
 
     dept_id: Mapped[str] = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
     dept_name = db.Column(db.String(255), nullable=False)

+ 39 - 0
api/services/dept_service.py

@@ -0,0 +1,39 @@
+from extensions.ext_database import db
+from models.dept import Dept
+from models.account import Account
+class DeptService:
+
+    @staticmethod
+    def get_dept_account_list():
+        dept_list=[]
+        account_list=[]
+
+        dept_results = (
+            db.session.query(Dept.dept_id, Dept.dept_name)
+            .filter(Dept.status == 'active')
+            .all()
+        )
+
+        account_results = (
+            db.session.query(Account.dept_id, Account.id,Account.email)
+            .filter(Account.status == 'active')
+            .all()
+        )
+        for dept_row in dept_results:
+            for account_row in account_results:
+                if account_row.dept_id == dept_row.dept_id:
+                   account_list.append({"account_id":account_row.id,"email":account_row.email})
+            dept_list.append({"dept_id": dept_row.dept_id, "dept_name": dept_row.dept_name,"accounts":account_list})
+
+        return dept_list
+    @staticmethod
+    def get_dept_list():
+        dept_list = []
+        dept_results = (
+            db.session.query(Dept.dept_id, Dept.dept_name)
+            .filter(Dept.status == 'active')
+            .all()
+        )
+        for dept_row in dept_results:
+            dept_list.append({"dept_id": dept_row.dept_id, "dept_name": dept_row.dept_name})
+        return  dept_list