From 6d0d772749e4c14a9f66829c2aa1ac9a57be3e0d Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Fri, 12 Jul 2024 09:43:36 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BD=BF=E7=94=A8ruff=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=8C=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/online_controller.py | 35 +++++++++++-------- .../module_admin/entity/vo/online_vo.py | 7 ++-- .../module_admin/service/online_service.py | 10 +++--- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/online_controller.py b/ruoyi-fastapi-backend/module_admin/controller/online_controller.py index be9669c..c4b3897 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/online_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/online_controller.py @@ -1,29 +1,36 @@ -from fastapi import APIRouter -from fastapi import Depends -from config.get_db import get_db -from module_admin.service.login_service import LoginService, AsyncSession -from module_admin.service.online_service import * -from module_admin.aspect.interface_auth import CheckUserInterfaceAuth -from module_admin.annotation.log_annotation import log_decorator +from fastapi import APIRouter, Depends, Request +from sqlalchemy.ext.asyncio import AsyncSession from config.enums import BusinessType -from utils.response_util import * -from utils.log_util import * -from utils.page_util import * +from config.get_db import get_db +from module_admin.annotation.log_annotation import log_decorator +from module_admin.aspect.interface_auth import CheckUserInterfaceAuth +from module_admin.entity.vo.online_vo import DeleteOnlineModel, OnlineQueryModel +from module_admin.service.login_service import LoginService +from module_admin.service.online_service import OnlineService +from utils.log_util import logger +from utils.page_util import PageResponseModel +from utils.response_util import ResponseUtil onlineController = APIRouter(prefix='/monitor/online', dependencies=[Depends(LoginService.get_current_user)]) -@onlineController.get("/list", response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:list'))]) -async def get_monitor_online_list(request: Request, online_page_query: OnlineQueryModel = Depends(OnlineQueryModel.as_query)): +@onlineController.get( + '/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:list'))] +) +async def get_monitor_online_list( + request: Request, online_page_query: OnlineQueryModel = Depends(OnlineQueryModel.as_query) +): # 获取全量数据 online_query_result = await OnlineService.get_online_list_services(request, online_page_query) logger.info('获取成功') - return ResponseUtil.success(model_content=PageResponseModel(rows=online_query_result, total=len(online_query_result))) + return ResponseUtil.success( + model_content=PageResponseModel(rows=online_query_result, total=len(online_query_result)) + ) -@onlineController.delete("/{token_ids}", dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:forceLogout'))]) +@onlineController.delete('/{token_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:forceLogout'))]) @log_decorator(title='在线用户', business_type=BusinessType.FORCE) async def delete_monitor_online(request: Request, token_ids: str, query_db: AsyncSession = Depends(get_db)): delete_online = DeleteOnlineModel(tokenIds=token_ids) diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py index 663a7a6..ca68f1e 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py @@ -1,7 +1,7 @@ +from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel -from typing import Union, Optional, List -from datetime import datetime +from typing import Optional from module_admin.annotation.pydantic_annotation import as_query @@ -9,6 +9,7 @@ class OnlineModel(BaseModel): """ 在线用户对应pydantic模型 """ + model_config = ConfigDict(alias_generator=to_camel) token_id: Optional[str] = Field(default=None, description='会话编号') @@ -26,6 +27,7 @@ class OnlineQueryModel(OnlineModel): """ 岗位管理不分页查询模型 """ + begin_time: Optional[str] = Field(default=None, description='开始时间') end_time: Optional[str] = Field(default=None, description='结束时间') @@ -34,6 +36,7 @@ class DeleteOnlineModel(BaseModel): """ 强退在线用户模型 """ + model_config = ConfigDict(alias_generator=to_camel) token_ids: str = Field(description='需要强退的会话编号') diff --git a/ruoyi-fastapi-backend/module_admin/service/online_service.py b/ruoyi-fastapi-backend/module_admin/service/online_service.py index 2b679f9..3e16eef 100644 --- a/ruoyi-fastapi-backend/module_admin/service/online_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/online_service.py @@ -1,9 +1,9 @@ from fastapi import Request from jose import jwt from config.env import JwtConfig, RedisInitKeyConfig -from module_admin.entity.vo.online_vo import * -from module_admin.entity.vo.common_vo import CrudResponseModel from exceptions.exception import ServiceException +from module_admin.entity.vo.common_vo import CrudResponseModel +from module_admin.entity.vo.online_vo import DeleteOnlineModel, OnlineQueryModel from utils.common_util import CamelCaseUtil @@ -35,7 +35,7 @@ class OnlineService: login_location=payload.get('login_info').get('loginLocation'), browser=payload.get('login_info').get('browser'), os=payload.get('login_info').get('os'), - login_time=payload.get('login_info').get('loginTime') + login_time=payload.get('login_info').get('loginTime'), ) if query_object.user_name and not query_object.ipaddr: if query_object.user_name == payload.get('login_info').get('ipaddr'): @@ -46,7 +46,9 @@ class OnlineService: online_info_list = [online_dict] break elif query_object.user_name and query_object.ipaddr: - if query_object.user_name == payload.get('user_name') and query_object.ipaddr == payload.get('login_info').get('ipaddr'): + if query_object.user_name == payload.get('user_name') and query_object.ipaddr == payload.get( + 'login_info' + ).get('ipaddr'): online_info_list = [online_dict] break else: