zhaoqingang 1 gadu atpakaļ
vecāks
revīzija
3f6b400797

+ 1 - 1
app/api/auth.py

@@ -77,7 +77,7 @@ async def login(login_data: LoginData, db: Session = Depends(get_db)):
         "token_type": "bearer",
         "username": user.username,
         "nickname": "",
-        "user": user.to_json()
+        "user": user.to_login_json()
     })
 
 

+ 22 - 10
app/api/group.py

@@ -3,7 +3,7 @@ from datetime import datetime
 
 from app.api import Response, get_current_user
 from app.models.base_model import get_db
-from app.models.group_model import GroupModel, GroupData, GroupUsers
+from app.models.group_model import GroupModel, GroupData, GroupUsers, GroupResource
 from app.models.user import PageParameter
 from app.models.user_model import UserModel
 from app.service.group import create_group, group_list, edit_group_data, delete_group_data, get_group_users, \
@@ -12,10 +12,10 @@ from app.service.group import create_group, group_list, edit_group_data, delete_
 group_router = APIRouter()
 
 
-@group_router.post("/group_list", response_model=Response)
-async def user_group_list(paras: PageParameter, current_user: UserModel = Depends(get_current_user),
+@group_router.get("/list", response_model=Response)
+async def user_group_list(current:int, pageSize:int, keyword="", current_user: UserModel = Depends(get_current_user),
                           db=Depends(get_db)):
-    return Response(code=200, msg="", data=await group_list(db, paras.page_size, paras.page_index, paras.keyword, current_user.permission, current_user.id))
+    return Response(code=200, msg="", data=await group_list(db, pageSize, current, keyword, current_user.permission, current_user.id))
 
 
 @group_router.post("/add_group", response_model=Response)
@@ -31,7 +31,7 @@ async def add_group(group: GroupData, current_user: UserModel = Depends(get_curr
     return Response(code=200, msg="group create successfully", data={"group_name": group.group_name})
 
 
-@group_router.post("/edit_group", response_model=Response)
+@group_router.put("/edit_group", response_model=Response)
 async def edit_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
     if not group.group_name:
         return Response(code=400, msg="The group_name cannot be empty!")
@@ -46,7 +46,7 @@ async def edit_group(group: GroupData, current_user: UserModel = Depends(get_cur
     return Response(code=200, msg="group edit successfully", data={"group_name": group.group_name})
 
 
-@group_router.post("/edit_group_status", response_model=Response)
+@group_router.put("/edit_group_status", response_model=Response)
 async def edit_group_status(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
     if group.group_status not in ["0", "1"]:
         return Response(code=400, msg="The status cannot be {}!".format(group.group_status))
@@ -60,12 +60,12 @@ async def edit_group_status(group: GroupData, current_user: UserModel = Depends(
     return Response(code=200, msg="group status edit successfully", data={"group_name": group.group_name})
 
 
-@group_router.post("/delete_group", response_model=Response)
-async def delete_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
-    db_group = db.query(GroupModel).filter(GroupModel.id == group.id).first()
+@group_router.delete("/delete_group/{groupId}", response_model=Response)
+async def delete_group(groupId, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
+    db_group = db.query(GroupModel).filter(GroupModel.id == groupId).first()
     if not db_group:
         return Response(code=200, msg="group does not exist")
-    is_edit = await delete_group_data(db, group.id)
+    is_edit = await delete_group_data(db, groupId)
     if not is_edit:
         return Response(code=200, msg="group delete failure", data={})
     return Response(code=200, msg="group delete successfully", data={})
@@ -89,3 +89,15 @@ async def save_group_user(group_user: GroupUsers, current_user: UserModel = Depe
     if not is_success:
         return Response(code=500, msg="save user to group failure", data={})
     return Response(code=200, msg="success", data={})
+
+
+@group_router.post("/group_resource", response_model=Response)
+async def group_resource(group_resource: GroupResource, current_user: UserModel = Depends(get_current_user),
+                          db=Depends(get_db)):
+    db_group = db.query(GroupModel).filter(GroupModel.id == group_resource.id).first()
+    if not db_group:
+        return Response(code=200, msg="group does not exist")
+    # is_success = await save_group_resource(db, current_user.id, group_resource.id, group_resource.agents, group_resource.dialogs, group_resource.knowledges)
+    # if not is_success:
+    #     return Response(code=500, msg="save user to group failure", data={})
+    return Response(code=200, msg="success", data={})

+ 2 - 2
app/api/organization.py

@@ -11,8 +11,8 @@ dept_router = APIRouter()
 
 
 @dept_router.get("/list", response_model=Response)
-async def organization_list(paras: DeptList,current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
-    return Response(code=200, msg="", data=await get_organization_list(db, paras.deptName))
+async def organization_list(deptName="",current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
+    return Response(code=200, msg="", data=await get_organization_list(db, deptName))
 
 
 @dept_router.post("/add_dept", response_model=Response)

+ 1 - 1
app/api/role.py

@@ -11,7 +11,7 @@ from app.service.role import role_list, create_role, delete_role_data, edit_role
 role_router = APIRouter()
 
 @role_router.get("/list", response_model=Response)
-async def user_group_list(current, pageSize, keyword="", current_user: UserModel = Depends(get_current_user),
+async def user_group_list(current:int, pageSize:int, keyword="", current_user: UserModel = Depends(get_current_user),
                           db=Depends(get_db)):
 
     return Response(code=200, msg="", data=await role_list(db, pageSize, current, keyword, current_user.permission, current_user.id))

+ 1 - 1
app/api/user.py

@@ -10,7 +10,7 @@ user_router = APIRouter()
 
 
 @user_router.get("/list", response_model=Response)
-async def user_list(current, pageSize, keyword="", current_user: UserModel = Depends(get_current_user),
+async def user_list(current:int, pageSize:int, keyword="", current_user: UserModel = Depends(get_current_user),
                     db=Depends(get_db)):
     return Response(code=200, msg="", data=await get_user_list(db, current, pageSize, keyword,
                                                                current_user.permission, current_user.id))

+ 7 - 0
app/models/group_model.py

@@ -130,3 +130,10 @@ class GroupUsers(BaseModel):
     id: int
     user_list: list
 
+
+class GroupResource(BaseModel):
+    id: int
+    agents: list
+    dialogs: list
+    knowledges: list
+

+ 1 - 1
app/models/role_model.py

@@ -70,7 +70,7 @@ class RoleData(BaseModel):
     remark: Optional[str] = ""
     roleName: str
     roleKey: Optional[str] = ""
-    dataScope: Optional[str] = ""
+    dataScope: Optional[int] = 0
 
 
 class RoleStatus(BaseModel):

+ 17 - 21
app/models/user_model.py

@@ -127,35 +127,31 @@ class UserModel(Base):
             # 'phoneNumber': self.phone_number
         }
         parent_dict = {}
-        resources = []
+        children_dict = {}
         for role in self.roles:
             for r in  role.to_json().get("resources", []):
-                if not r["parentId"]:
-                    resources.append(r)
-                    continue
-                if r["parentId"] in parent_dict:
-                    parent_dict[r["parentId"]].append(r)
+                if r["menuType"] != "1":
+                    parent_dict[r["menuId"]] = r
                 else:
-                    parent_dict[r["parentId"]] = [r]
-
-        # roles = [role.to_json() for role in self.roles]
+                    if r["parentId"] in children_dict:
+                        children_dict[r["parentId"]].append(r)
+                    else:
+                        children_dict[r["parentId"]] = [r]
         organization_roles = [role.to_json() for organization in self.organizations for role in
                               organization.roles]
         for role in organization_roles:
             for r in role.to_json().get("resources", []):
-                if not r["parentId"]:
-                    resources.append(r)
-                    continue
-                if r["parentId"] in parent_dict:
-                    parent_dict[r["parentId"]].append(r)
+                if r["menuType"] != "1":
+                    parent_dict[r["menuId"]] = r
                 else:
-                    parent_dict[r["parentId"]] = [r]
-
-
-        # for resource in resources:
-        #     if resource["menuId"] in parent_dict:
-        #         resource[]
-
+                    if r["parentId"] in children_dict:
+                        children_dict[r["parentId"]].append(r)
+                    else:
+                        children_dict[r["parentId"]] = [r]
+        resources = []
+        for resource in parent_dict.values():
+            resource["children"] = children_dict.get(resource["menuId"], [])
+            resources.append(resource)
         json['resources'] = resources
         return json
 

+ 1 - 12
app/service/group.py

@@ -15,18 +15,7 @@ async def group_list(db, page_size: int, page_index: int, keyword: str, role_key
         query = query.filter(GroupModel.group_name.like('%{}%'.format(keyword)))
     items = query.order_by(GroupModel.id.desc()).limit(page_size).offset(
         (page_index - 1) * page_size).all()
-    # items_list = [item.to_dict() for item in items]
-    # groups = [i["id"] for i in items_list]
-    # group_dict = {}
-    # for group_user in db.query(GroupModel.group_id, UserModel.id, UserModel.username).outerjoin(UserModel,
-    #                                                                                                 UserModel.id == UserGroupModel.user_id).filter(
-    #     GroupModel.group_id.in_(groups)).all():
-    #     if group_user.group_id in group_dict:
-    #         group_dict[group_user.group_id].append({"user_id": group_user.id, "user_name": group_user.username})
-    #     else:
-    #         group_dict[group_user.group_id] = [{"user_id": group_user.id, "user_name": group_user.username}]
-    # for item in items_list:
-    #     item["users"] = group_dict.get(item["id"], [])
+
     return {"total": query.count(), "items": [item.to_json() for item in items]}
 
 

+ 2 - 2
app/service/role.py

@@ -19,7 +19,7 @@ async def role_list(db, page_size: int, page_index: int, keyword: str, role_key:
 
 async def create_role(db, role_name: str, description: str, role_key, data_scope, user_id):
     try:
-        role_model = RoleModel(id=str(uuid.uuid4()),name=role_name, description=description,creator=user_id, data_scope=data_scope)
+        role_model = RoleModel(id=str(uuid.uuid4()),name=role_name, description=description,creator=user_id, dataScope=data_scope)
         if role_key:
             role_model.roleKey = role_key
         db.add(role_model)
@@ -63,7 +63,7 @@ async def edit_role_resource(db, role_id:str, role_name:str, description:str,rol
             if role_key:
                 role.roleKey = role_key
             if data_scope:
-                role.data_scope = data_scope
+                role.dataScope = data_scope
         else:
             role.resources = [db.get(ResourceModel, resourcesId) for resourcesId in resources]
         db.add(role)