diff --git a/README.md b/README.md index ed227c6bdd38da812eddf0f9eb4a562a75b3f2e1..d8a3076d63db9bfd26f7a267a29cbc6a6610b30a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

logo

-

RuoYi-Vue3-FastAPI v1.3.2

+

RuoYi-Vue3-FastAPI v1.3.3

基于RuoYi-Vue3+FastAPI前后端分离的快速开发框架

- + diff --git a/ruoyi-fastapi-backend/.env.dev b/ruoyi-fastapi-backend/.env.dev index 0a1849ee8ef60454cf4ff5cc9a6f67b1822f9ae2..311ac45b678c1ebe52cd093a9fc20024c027846b 100644 --- a/ruoyi-fastapi-backend/.env.dev +++ b/ruoyi-fastapi-backend/.env.dev @@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0' # 应用端口 APP_PORT = 9099 # 应用版本 -APP_VERSION= '1.3.2' +APP_VERSION= '1.3.3' # 应用是否开启热重载 APP_RELOAD = true # 应用是否开启IP归属区域查询 diff --git a/ruoyi-fastapi-backend/.env.prod b/ruoyi-fastapi-backend/.env.prod index de24b3e5c8015a6aeee651fabfe15c756b9907d2..68a04b6b2a581372c379c04025b588f0f3380cce 100644 --- a/ruoyi-fastapi-backend/.env.prod +++ b/ruoyi-fastapi-backend/.env.prod @@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0' # 应用端口 APP_PORT = 9099 # 应用版本 -APP_VERSION= '1.3.2' +APP_VERSION= '1.3.3' # 应用是否开启热重载 APP_RELOAD = false # 应用是否开启IP归属区域查询 diff --git a/ruoyi-fastapi-backend/module_admin/annotation/log_annotation.py b/ruoyi-fastapi-backend/module_admin/annotation/log_annotation.py index 1f3e220227f9de4b80498405ba9fce2c3b1bba26..952dfb8444e092d199ecdb0c7484882a23cf781e 100644 --- a/ruoyi-fastapi-backend/module_admin/annotation/log_annotation.py +++ b/ruoyi-fastapi-backend/module_admin/annotation/log_annotation.py @@ -16,6 +16,7 @@ from module_admin.service.login_service import LoginService from config.enums import BusinessType from config.env import AppConfig from exceptions.exception import LoginException, ServiceException, ServiceWarning +from utils.log_util import logger from utils.response_util import ResponseUtil @@ -116,13 +117,14 @@ class Log: try: # 调用原始函数 result = await func(*args, **kwargs) - except LoginException as e: + except (LoginException, ServiceWarning) as e: + logger.warning(e.message) result = ResponseUtil.failure(data=e.data, msg=e.message) except ServiceException as e: + logger.error(e.message) result = ResponseUtil.error(data=e.data, msg=e.message) - except ServiceWarning as e: - result = ResponseUtil.failure(data=e.data, msg=e.message) except Exception as e: + logger.exception(e) result = ResponseUtil.error(msg=str(e)) # 获取请求耗时 cost_time = float(time.time() - start_time) * 100 @@ -295,13 +297,14 @@ def log_decorator( try: # 调用原始函数 result = await func(*args, **kwargs) - except LoginException as e: + except (LoginException, ServiceWarning) as e: + logger.warning(e.message) result = ResponseUtil.failure(data=e.data, msg=e.message) except ServiceException as e: + logger.error(e.message) result = ResponseUtil.error(data=e.data, msg=e.message) - except ServiceWarning as e: - result = ResponseUtil.failure(data=e.data, msg=e.message) except Exception as e: + logger.exception(e) result = ResponseUtil.error(msg=str(e)) # 获取请求耗时 cost_time = float(time.time() - start_time) * 100 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 ca68f1ec878a6c5c87b759d00c8bd15a05ee5271..11bb4758ace3962e3568617be9f0c0030f0ee22a 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/online_vo.py @@ -13,10 +13,10 @@ class OnlineModel(BaseModel): model_config = ConfigDict(alias_generator=to_camel) token_id: Optional[str] = Field(default=None, description='会话编号') - user_name: Optional[str] = Field(default=None, description='部门名称') - dept_name: Optional[str] = Field(default=None, description='用户名称') - ipaddr: Optional[str] = Field(default=None, description='登录IP地址') - login_location: Optional[str] = Field(default=None, description='登录地址') + user_name: Optional[str] = Field(default=None, description='登录名称') + dept_name: Optional[str] = Field(default=None, description='所属部门') + ipaddr: Optional[str] = Field(default=None, description='主机') + login_location: Optional[str] = Field(default=None, description='登录地点') browser: Optional[str] = Field(default=None, description='浏览器类型') os: Optional[str] = Field(default=None, description='操作系统') login_time: Optional[datetime] = Field(default=None, description='登录时间') diff --git a/ruoyi-fastapi-backend/module_admin/service/online_service.py b/ruoyi-fastapi-backend/module_admin/service/online_service.py index 0d1c913ecfc9de9b3c272cd0c92c80e2e4bb54b8..56742b06a19c2f43b06e3b49266bb184aed7e833 100644 --- a/ruoyi-fastapi-backend/module_admin/service/online_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/online_service.py @@ -22,7 +22,7 @@ class OnlineService: :param query_object: 查询参数对象 :return: 在线用户列表信息 """ - access_token_keys = await request.app.state.redis.keys(f"{RedisInitKeyConfig.ACCESS_TOKEN.key}*") + access_token_keys = await request.app.state.redis.keys(f'{RedisInitKeyConfig.ACCESS_TOKEN.key}*') if not access_token_keys: access_token_keys = [] access_token_values_list = [await request.app.state.redis.get(key) for key in access_token_keys] @@ -40,11 +40,11 @@ class OnlineService: 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'): + if query_object.user_name == payload.get('user_name'): online_info_list = [online_dict] break elif not query_object.user_name and query_object.ipaddr: - if query_object.ipaddr == payload.get('ipaddr'): + if query_object.ipaddr == payload.get('login_info').get('ipaddr'): online_info_list = [online_dict] break elif query_object.user_name and query_object.ipaddr: @@ -70,7 +70,7 @@ class OnlineService: if page_object.token_ids: token_id_list = page_object.token_ids.split(',') for token_id in token_id_list: - await request.app.state.redis.delete(f"{RedisInitKeyConfig.ACCESS_TOKEN.key}:{token_id}") + await request.app.state.redis.delete(f'{RedisInitKeyConfig.ACCESS_TOKEN.key}:{token_id}') return CrudResponseModel(is_success=True, message='强退成功') else: raise ServiceException(message='传入session_id为空') diff --git a/ruoyi-fastapi-backend/requirements.txt b/ruoyi-fastapi-backend/requirements.txt index 1a7fc30e3854a425e146cb700a6ff26c991fe0dc..3daf29e3ae4e9d5b60e4d98dfdc35a58f564499c 100644 --- a/ruoyi-fastapi-backend/requirements.txt +++ b/ruoyi-fastapi-backend/requirements.txt @@ -8,7 +8,7 @@ pandas==2.2.2 passlib[bcrypt]==1.7.4 Pillow==10.4.0 psutil==6.0.0 -pydantic-validation-decorator==0.1.2 +pydantic-validation-decorator==0.1.4 PyJWT[crypto]==2.8.0 PyMySQL==1.1.1 redis==5.0.7 diff --git a/ruoyi-fastapi-frontend/package.json b/ruoyi-fastapi-frontend/package.json index ae463d2a04396561ad657a701740a758f70a307a..0e5b0144549c75a4cddd508955cc41528143ce6a 100644 --- a/ruoyi-fastapi-frontend/package.json +++ b/ruoyi-fastapi-frontend/package.json @@ -1,6 +1,6 @@ { "name": "vfadmin", - "version": "1.3.2", + "version": "1.3.3", "description": "vfadmin管理系统", "author": "insistence", "license": "MIT",