mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-09-21 12:52:27 +00:00
perf: controller层全部使用新依赖项
This commit is contained in:
@@ -1,19 +1,21 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Request, Response
|
from fastapi import APIRouter, Path, Request, Response
|
||||||
|
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import PreAuthDependency
|
||||||
from module_admin.entity.vo.cache_vo import CacheInfoModel, CacheMonitorModel
|
from module_admin.entity.vo.cache_vo import CacheInfoModel, CacheMonitorModel
|
||||||
from module_admin.service.cache_service import CacheService
|
from module_admin.service.cache_service import CacheService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
cache_controller = APIRouter(prefix='/monitor/cache', dependencies=[Depends(LoginService.get_current_user)])
|
cache_controller = APIRouter(prefix='/monitor/cache', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@cache_controller.get(
|
@cache_controller.get(
|
||||||
'', response_model=CacheMonitorModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))]
|
'',
|
||||||
|
response_model=CacheMonitorModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_cache_info(request: Request) -> Response:
|
async def get_monitor_cache_info(request: Request) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
@@ -26,7 +28,7 @@ async def get_monitor_cache_info(request: Request) -> Response:
|
|||||||
@cache_controller.get(
|
@cache_controller.get(
|
||||||
'/getNames',
|
'/getNames',
|
||||||
response_model=list[CacheInfoModel],
|
response_model=list[CacheInfoModel],
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))],
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_cache_name(request: Request) -> Response:
|
async def get_monitor_cache_name(request: Request) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
@@ -39,7 +41,7 @@ async def get_monitor_cache_name(request: Request) -> Response:
|
|||||||
@cache_controller.get(
|
@cache_controller.get(
|
||||||
'/getKeys/{cache_name}',
|
'/getKeys/{cache_name}',
|
||||||
response_model=list[str],
|
response_model=list[str],
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))],
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_cache_key(request: Request, cache_name: Annotated[str, Path(description='缓存名称')]) -> Response:
|
async def get_monitor_cache_key(request: Request, cache_name: Annotated[str, Path(description='缓存名称')]) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
@@ -52,7 +54,7 @@ async def get_monitor_cache_key(request: Request, cache_name: Annotated[str, Pat
|
|||||||
@cache_controller.get(
|
@cache_controller.get(
|
||||||
'/getValue/{cache_name}/{cache_key}',
|
'/getValue/{cache_name}/{cache_key}',
|
||||||
response_model=CacheInfoModel,
|
response_model=CacheInfoModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))],
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_cache_value(
|
async def get_monitor_cache_value(
|
||||||
request: Request,
|
request: Request,
|
||||||
@@ -67,7 +69,8 @@ async def get_monitor_cache_value(
|
|||||||
|
|
||||||
|
|
||||||
@cache_controller.delete(
|
@cache_controller.delete(
|
||||||
'/clearCacheName/{cache_name}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))]
|
'/clearCacheName/{cache_name}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def clear_monitor_cache_name(
|
async def clear_monitor_cache_name(
|
||||||
request: Request, cache_name: Annotated[str, Path(description='缓存名称')]
|
request: Request, cache_name: Annotated[str, Path(description='缓存名称')]
|
||||||
@@ -79,7 +82,8 @@ async def clear_monitor_cache_name(
|
|||||||
|
|
||||||
|
|
||||||
@cache_controller.delete(
|
@cache_controller.delete(
|
||||||
'/clearCacheKey/{cache_key}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))]
|
'/clearCacheKey/{cache_key}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
)
|
)
|
||||||
async def clear_monitor_cache_key(request: Request, cache_key: Annotated[str, Path(description='缓存键')]) -> Response:
|
async def clear_monitor_cache_key(request: Request, cache_key: Annotated[str, Path(description='缓存键')]) -> Response:
|
||||||
clear_cache_key_result = await CacheService.clear_cache_monitor_cache_key_services(request, cache_key)
|
clear_cache_key_result = await CacheService.clear_cache_monitor_cache_key_services(request, cache_key)
|
||||||
@@ -88,7 +92,10 @@ async def clear_monitor_cache_key(request: Request, cache_key: Annotated[str, Pa
|
|||||||
return ResponseUtil.success(msg=clear_cache_key_result.message)
|
return ResponseUtil.success(msg=clear_cache_key_result.message)
|
||||||
|
|
||||||
|
|
||||||
@cache_controller.delete('/clearCacheAll', dependencies=[Depends(CheckUserInterfaceAuth('monitor:cache:list'))])
|
@cache_controller.delete(
|
||||||
|
'/clearCacheAll',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:cache:list')],
|
||||||
|
)
|
||||||
async def clear_monitor_cache_all(request: Request) -> Response:
|
async def clear_monitor_cache_all(request: Request) -> Response:
|
||||||
clear_cache_all_result = await CacheService.clear_cache_monitor_all_services(request)
|
clear_cache_all_result = await CacheService.clear_cache_monitor_all_services(request)
|
||||||
logger.info(clear_cache_all_result.message)
|
logger.info(clear_cache_all_result.message)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, BackgroundTasks, Depends, File, Query, Request, Response, UploadFile
|
from fastapi import APIRouter, BackgroundTasks, File, Query, Request, Response, UploadFile
|
||||||
|
|
||||||
|
from common.aspect.pre_auth import PreAuthDependency
|
||||||
from module_admin.service.common_service import CommonService
|
from module_admin.service.common_service import CommonService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
common_controller = APIRouter(prefix='/common', dependencies=[Depends(LoginService.get_current_user)])
|
common_controller = APIRouter(prefix='/common', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@common_controller.post('/upload')
|
@common_controller.post('/upload')
|
||||||
|
|||||||
@@ -1,33 +1,35 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel
|
from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.config_service import ConfigService
|
from module_admin.service.config_service import ConfigService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
config_controller = APIRouter(prefix='/system/config', dependencies=[Depends(LoginService.get_current_user)])
|
config_controller = APIRouter(prefix='/system/config', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@config_controller.get(
|
@config_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:config:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:list')],
|
||||||
)
|
)
|
||||||
async def get_system_config_list(
|
async def get_system_config_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
config_page_query: Annotated[ConfigPageQueryModel, Query()],
|
config_page_query: Annotated[ConfigPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
config_page_query_result = await ConfigService.get_config_list_services(query_db, config_page_query, is_page=True)
|
config_page_query_result = await ConfigService.get_config_list_services(query_db, config_page_query, is_page=True)
|
||||||
@@ -36,14 +38,17 @@ async def get_system_config_list(
|
|||||||
return ResponseUtil.success(model_content=config_page_query_result)
|
return ResponseUtil.success(model_content=config_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@config_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:config:add'))])
|
@config_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_config')
|
@ValidateFields(validate_model='add_config')
|
||||||
@Log(title='参数管理', business_type=BusinessType.INSERT)
|
@Log(title='参数管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_config(
|
async def add_system_config(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_config: ConfigModel,
|
add_config: ConfigModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_config.create_by = current_user.user.user_name
|
add_config.create_by = current_user.user.user_name
|
||||||
add_config.create_time = datetime.now()
|
add_config.create_time = datetime.now()
|
||||||
@@ -55,14 +60,17 @@ async def add_system_config(
|
|||||||
return ResponseUtil.success(msg=add_config_result.message)
|
return ResponseUtil.success(msg=add_config_result.message)
|
||||||
|
|
||||||
|
|
||||||
@config_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:config:edit'))])
|
@config_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_config')
|
@ValidateFields(validate_model='edit_config')
|
||||||
@Log(title='参数管理', business_type=BusinessType.UPDATE)
|
@Log(title='参数管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_config(
|
async def edit_system_config(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_config: ConfigModel,
|
edit_config: ConfigModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_config.update_by = current_user.user.user_name
|
edit_config.update_by = current_user.user.user_name
|
||||||
edit_config.update_time = datetime.now()
|
edit_config.update_time = datetime.now()
|
||||||
@@ -72,11 +80,14 @@ async def edit_system_config(
|
|||||||
return ResponseUtil.success(msg=edit_config_result.message)
|
return ResponseUtil.success(msg=edit_config_result.message)
|
||||||
|
|
||||||
|
|
||||||
@config_controller.delete('/refreshCache', dependencies=[Depends(CheckUserInterfaceAuth('system:config:remove'))])
|
@config_controller.delete(
|
||||||
|
'/refreshCache',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:remove')],
|
||||||
|
)
|
||||||
@Log(title='参数管理', business_type=BusinessType.UPDATE)
|
@Log(title='参数管理', business_type=BusinessType.UPDATE)
|
||||||
async def refresh_system_config(
|
async def refresh_system_config(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
refresh_config_result = await ConfigService.refresh_sys_config_services(request, query_db)
|
refresh_config_result = await ConfigService.refresh_sys_config_services(request, query_db)
|
||||||
logger.info(refresh_config_result.message)
|
logger.info(refresh_config_result.message)
|
||||||
@@ -84,12 +95,15 @@ async def refresh_system_config(
|
|||||||
return ResponseUtil.success(msg=refresh_config_result.message)
|
return ResponseUtil.success(msg=refresh_config_result.message)
|
||||||
|
|
||||||
|
|
||||||
@config_controller.delete('/{config_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:config:remove'))])
|
@config_controller.delete(
|
||||||
|
'/{config_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:remove')],
|
||||||
|
)
|
||||||
@Log(title='参数管理', business_type=BusinessType.DELETE)
|
@Log(title='参数管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_config(
|
async def delete_system_config(
|
||||||
request: Request,
|
request: Request,
|
||||||
config_ids: Annotated[str, Path(description='需要删除的参数主键')],
|
config_ids: Annotated[str, Path(description='需要删除的参数主键')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_config = DeleteConfigModel(configIds=config_ids)
|
delete_config = DeleteConfigModel(configIds=config_ids)
|
||||||
delete_config_result = await ConfigService.delete_config_services(request, query_db, delete_config)
|
delete_config_result = await ConfigService.delete_config_services(request, query_db, delete_config)
|
||||||
@@ -99,12 +113,14 @@ async def delete_system_config(
|
|||||||
|
|
||||||
|
|
||||||
@config_controller.get(
|
@config_controller.get(
|
||||||
'/{config_id}', response_model=ConfigModel, dependencies=[Depends(CheckUserInterfaceAuth('system:config:query'))]
|
'/{config_id}',
|
||||||
|
response_model=ConfigModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_config(
|
async def query_detail_system_config(
|
||||||
request: Request,
|
request: Request,
|
||||||
config_id: Annotated[int, Path(description='参数主键')],
|
config_id: Annotated[int, Path(description='参数主键')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
config_detail_result = await ConfigService.config_detail_services(query_db, config_id)
|
config_detail_result = await ConfigService.config_detail_services(query_db, config_id)
|
||||||
logger.info(f'获取config_id为{config_id}的信息成功')
|
logger.info(f'获取config_id为{config_id}的信息成功')
|
||||||
@@ -121,12 +137,15 @@ async def query_system_config(request: Request, config_key: str) -> Response:
|
|||||||
return ResponseUtil.success(msg=config_query_result)
|
return ResponseUtil.success(msg=config_query_result)
|
||||||
|
|
||||||
|
|
||||||
@config_controller.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('system:config:export'))])
|
@config_controller.post(
|
||||||
|
'/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:config:export')],
|
||||||
|
)
|
||||||
@Log(title='参数管理', business_type=BusinessType.EXPORT)
|
@Log(title='参数管理', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_config_list(
|
async def export_system_config_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
config_page_query: Annotated[ConfigPageQueryModel, Form()],
|
config_page_query: Annotated[ConfigPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
config_query_result = await ConfigService.get_config_list_services(query_db, config_page_query, is_page=False)
|
config_query_result = await ConfigService.get_config_list_services(query_db, config_page_query, is_page=False)
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Query, Request, Response
|
from fastapi import APIRouter, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.data_scope import GetDataScope
|
from common.aspect.data_scope import DataScopeDependency
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.dept_vo import DeleteDeptModel, DeptModel, DeptQueryModel
|
from module_admin.entity.vo.dept_vo import DeleteDeptModel, DeptModel, DeptQueryModel
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.dept_service import DeptService
|
from module_admin.service.dept_service import DeptService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
dept_controller = APIRouter(prefix='/system/dept', dependencies=[Depends(LoginService.get_current_user)])
|
dept_controller = APIRouter(prefix='/system/dept', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@dept_controller.get(
|
@dept_controller.get(
|
||||||
'/list/exclude/{dept_id}',
|
'/list/exclude/{dept_id}',
|
||||||
response_model=list[DeptModel],
|
response_model=list[DeptModel],
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:dept:list'))],
|
dependencies=[UserInterfaceAuthDependency('system:dept:list')],
|
||||||
)
|
)
|
||||||
async def get_system_dept_tree_for_edit_option(
|
async def get_system_dept_tree_for_edit_option(
|
||||||
request: Request,
|
request: Request,
|
||||||
dept_id: Annotated[int, Path(description='部门id')],
|
dept_id: Annotated[int, Path(description='部门id')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dept_query = DeptModel(deptId=dept_id)
|
dept_query = DeptModel(deptId=dept_id)
|
||||||
dept_query_result = await DeptService.get_dept_for_edit_option_services(query_db, dept_query, data_scope_sql)
|
dept_query_result = await DeptService.get_dept_for_edit_option_services(query_db, dept_query, data_scope_sql)
|
||||||
@@ -39,13 +39,15 @@ async def get_system_dept_tree_for_edit_option(
|
|||||||
|
|
||||||
|
|
||||||
@dept_controller.get(
|
@dept_controller.get(
|
||||||
'/list', response_model=list[DeptModel], dependencies=[Depends(CheckUserInterfaceAuth('system:dept:list'))]
|
'/list',
|
||||||
|
response_model=list[DeptModel],
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dept:list')],
|
||||||
)
|
)
|
||||||
async def get_system_dept_list(
|
async def get_system_dept_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
dept_query: Annotated[DeptQueryModel, Query()],
|
dept_query: Annotated[DeptQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dept_query_result = await DeptService.get_dept_list_services(query_db, dept_query, data_scope_sql)
|
dept_query_result = await DeptService.get_dept_list_services(query_db, dept_query, data_scope_sql)
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
@@ -53,14 +55,17 @@ async def get_system_dept_list(
|
|||||||
return ResponseUtil.success(data=dept_query_result)
|
return ResponseUtil.success(data=dept_query_result)
|
||||||
|
|
||||||
|
|
||||||
@dept_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:dept:add'))])
|
@dept_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dept:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_dept')
|
@ValidateFields(validate_model='add_dept')
|
||||||
@Log(title='部门管理', business_type=BusinessType.INSERT)
|
@Log(title='部门管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_dept(
|
async def add_system_dept(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_dept: DeptModel,
|
add_dept: DeptModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_dept.create_by = current_user.user.user_name
|
add_dept.create_by = current_user.user.user_name
|
||||||
add_dept.create_time = datetime.now()
|
add_dept.create_time = datetime.now()
|
||||||
@@ -72,15 +77,18 @@ async def add_system_dept(
|
|||||||
return ResponseUtil.success(data=add_dept_result)
|
return ResponseUtil.success(data=add_dept_result)
|
||||||
|
|
||||||
|
|
||||||
@dept_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:dept:edit'))])
|
@dept_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dept:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_dept')
|
@ValidateFields(validate_model='edit_dept')
|
||||||
@Log(title='部门管理', business_type=BusinessType.UPDATE)
|
@Log(title='部门管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_dept(
|
async def edit_system_dept(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_dept: DeptModel,
|
edit_dept: DeptModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await DeptService.check_dept_data_scope_services(query_db, edit_dept.dept_id, data_scope_sql)
|
await DeptService.check_dept_data_scope_services(query_db, edit_dept.dept_id, data_scope_sql)
|
||||||
@@ -92,14 +100,17 @@ async def edit_system_dept(
|
|||||||
return ResponseUtil.success(msg=edit_dept_result.message)
|
return ResponseUtil.success(msg=edit_dept_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dept_controller.delete('/{dept_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:dept:remove'))])
|
@dept_controller.delete(
|
||||||
|
'/{dept_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dept:remove')],
|
||||||
|
)
|
||||||
@Log(title='部门管理', business_type=BusinessType.DELETE)
|
@Log(title='部门管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_dept(
|
async def delete_system_dept(
|
||||||
request: Request,
|
request: Request,
|
||||||
dept_ids: Annotated[str, Path(description='需要删除的部门id')],
|
dept_ids: Annotated[str, Path(description='需要删除的部门id')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dept_id_list = dept_ids.split(',') if dept_ids else []
|
dept_id_list = dept_ids.split(',') if dept_ids else []
|
||||||
if dept_id_list:
|
if dept_id_list:
|
||||||
@@ -116,14 +127,16 @@ async def delete_system_dept(
|
|||||||
|
|
||||||
|
|
||||||
@dept_controller.get(
|
@dept_controller.get(
|
||||||
'/{dept_id}', response_model=DeptModel, dependencies=[Depends(CheckUserInterfaceAuth('system:dept:query'))]
|
'/{dept_id}',
|
||||||
|
response_model=DeptModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dept:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_dept(
|
async def query_detail_system_dept(
|
||||||
request: Request,
|
request: Request,
|
||||||
dept_id: Annotated[int, Path(description='部门id')],
|
dept_id: Annotated[int, Path(description='部门id')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await DeptService.check_dept_data_scope_services(query_db, dept_id, data_scope_sql)
|
await DeptService.check_dept_data_scope_services(query_db, dept_id, data_scope_sql)
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.dict_vo import (
|
from module_admin.entity.vo.dict_vo import (
|
||||||
DeleteDictDataModel,
|
DeleteDictDataModel,
|
||||||
DeleteDictTypeModel,
|
DeleteDictTypeModel,
|
||||||
@@ -19,22 +20,23 @@ from module_admin.entity.vo.dict_vo import (
|
|||||||
)
|
)
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.dict_service import DictDataService, DictTypeService
|
from module_admin.service.dict_service import DictDataService, DictTypeService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
dict_controller = APIRouter(prefix='/system/dict', dependencies=[Depends(LoginService.get_current_user)])
|
dict_controller = APIRouter(prefix='/system/dict', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.get(
|
@dict_controller.get(
|
||||||
'/type/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:dict:list'))]
|
'/type/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:list')],
|
||||||
)
|
)
|
||||||
async def get_system_dict_type_list(
|
async def get_system_dict_type_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_type_page_query: Annotated[DictTypePageQueryModel, Query()],
|
dict_type_page_query: Annotated[DictTypePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
dict_type_page_query_result = await DictTypeService.get_dict_type_list_services(
|
dict_type_page_query_result = await DictTypeService.get_dict_type_list_services(
|
||||||
@@ -45,14 +47,17 @@ async def get_system_dict_type_list(
|
|||||||
return ResponseUtil.success(model_content=dict_type_page_query_result)
|
return ResponseUtil.success(model_content=dict_type_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.post('/type', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:add'))])
|
@dict_controller.post(
|
||||||
|
'/type',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_dict_type')
|
@ValidateFields(validate_model='add_dict_type')
|
||||||
@Log(title='字典类型', business_type=BusinessType.INSERT)
|
@Log(title='字典类型', business_type=BusinessType.INSERT)
|
||||||
async def add_system_dict_type(
|
async def add_system_dict_type(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_dict_type: DictTypeModel,
|
add_dict_type: DictTypeModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_dict_type.create_by = current_user.user.user_name
|
add_dict_type.create_by = current_user.user.user_name
|
||||||
add_dict_type.create_time = datetime.now()
|
add_dict_type.create_time = datetime.now()
|
||||||
@@ -64,14 +69,17 @@ async def add_system_dict_type(
|
|||||||
return ResponseUtil.success(msg=add_dict_type_result.message)
|
return ResponseUtil.success(msg=add_dict_type_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.put('/type', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:edit'))])
|
@dict_controller.put(
|
||||||
|
'/type',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_dict_type')
|
@ValidateFields(validate_model='edit_dict_type')
|
||||||
@Log(title='字典类型', business_type=BusinessType.UPDATE)
|
@Log(title='字典类型', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_dict_type(
|
async def edit_system_dict_type(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_dict_type: DictTypeModel,
|
edit_dict_type: DictTypeModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_dict_type.update_by = current_user.user.user_name
|
edit_dict_type.update_by = current_user.user.user_name
|
||||||
edit_dict_type.update_time = datetime.now()
|
edit_dict_type.update_time = datetime.now()
|
||||||
@@ -81,21 +89,27 @@ async def edit_system_dict_type(
|
|||||||
return ResponseUtil.success(msg=edit_dict_type_result.message)
|
return ResponseUtil.success(msg=edit_dict_type_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.delete('/type/refreshCache', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:remove'))])
|
@dict_controller.delete(
|
||||||
|
'/type/refreshCache',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:remove')],
|
||||||
|
)
|
||||||
@Log(title='字典类型', business_type=BusinessType.UPDATE)
|
@Log(title='字典类型', business_type=BusinessType.UPDATE)
|
||||||
async def refresh_system_dict(request: Request, query_db: Annotated[AsyncSession, Depends(get_db)]) -> Response:
|
async def refresh_system_dict(request: Request, query_db: Annotated[AsyncSession, DBSessionDependency()]) -> Response:
|
||||||
refresh_dict_result = await DictTypeService.refresh_sys_dict_services(request, query_db)
|
refresh_dict_result = await DictTypeService.refresh_sys_dict_services(request, query_db)
|
||||||
logger.info(refresh_dict_result.message)
|
logger.info(refresh_dict_result.message)
|
||||||
|
|
||||||
return ResponseUtil.success(msg=refresh_dict_result.message)
|
return ResponseUtil.success(msg=refresh_dict_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.delete('/type/{dict_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:remove'))])
|
@dict_controller.delete(
|
||||||
|
'/type/{dict_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:remove')],
|
||||||
|
)
|
||||||
@Log(title='字典类型', business_type=BusinessType.DELETE)
|
@Log(title='字典类型', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_dict_type(
|
async def delete_system_dict_type(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_ids: Annotated[str, Path(description='需要删除的字典主键')],
|
dict_ids: Annotated[str, Path(description='需要删除的字典主键')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_dict_type = DeleteDictTypeModel(dictIds=dict_ids)
|
delete_dict_type = DeleteDictTypeModel(dictIds=dict_ids)
|
||||||
delete_dict_type_result = await DictTypeService.delete_dict_type_services(request, query_db, delete_dict_type)
|
delete_dict_type_result = await DictTypeService.delete_dict_type_services(request, query_db, delete_dict_type)
|
||||||
@@ -106,7 +120,7 @@ async def delete_system_dict_type(
|
|||||||
|
|
||||||
@dict_controller.get('/type/optionselect', response_model=list[DictTypeModel])
|
@dict_controller.get('/type/optionselect', response_model=list[DictTypeModel])
|
||||||
async def query_system_dict_type_options(
|
async def query_system_dict_type_options(
|
||||||
request: Request, query_db: Annotated[AsyncSession, Depends(get_db)]
|
request: Request, query_db: Annotated[AsyncSession, DBSessionDependency()]
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dict_type_query_result = await DictTypeService.get_dict_type_list_services(
|
dict_type_query_result = await DictTypeService.get_dict_type_list_services(
|
||||||
query_db, DictTypePageQueryModel(), is_page=False
|
query_db, DictTypePageQueryModel(), is_page=False
|
||||||
@@ -117,12 +131,14 @@ async def query_system_dict_type_options(
|
|||||||
|
|
||||||
|
|
||||||
@dict_controller.get(
|
@dict_controller.get(
|
||||||
'/type/{dict_id}', response_model=DictTypeModel, dependencies=[Depends(CheckUserInterfaceAuth('system:dict:query'))]
|
'/type/{dict_id}',
|
||||||
|
response_model=DictTypeModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_dict_type(
|
async def query_detail_system_dict_type(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_id: Annotated[int, Path(description='字典主键')],
|
dict_id: Annotated[int, Path(description='字典主键')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dict_type_detail_result = await DictTypeService.dict_type_detail_services(query_db, dict_id)
|
dict_type_detail_result = await DictTypeService.dict_type_detail_services(query_db, dict_id)
|
||||||
logger.info(f'获取dict_id为{dict_id}的信息成功')
|
logger.info(f'获取dict_id为{dict_id}的信息成功')
|
||||||
@@ -130,12 +146,15 @@ async def query_detail_system_dict_type(
|
|||||||
return ResponseUtil.success(data=dict_type_detail_result)
|
return ResponseUtil.success(data=dict_type_detail_result)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.post('/type/export', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:export'))])
|
@dict_controller.post(
|
||||||
|
'/type/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:export')],
|
||||||
|
)
|
||||||
@Log(title='字典类型', business_type=BusinessType.EXPORT)
|
@Log(title='字典类型', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_dict_type_list(
|
async def export_system_dict_type_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_type_page_query: Annotated[DictTypePageQueryModel, Form()],
|
dict_type_page_query: Annotated[DictTypePageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
dict_type_query_result = await DictTypeService.get_dict_type_list_services(
|
dict_type_query_result = await DictTypeService.get_dict_type_list_services(
|
||||||
@@ -151,7 +170,7 @@ async def export_system_dict_type_list(
|
|||||||
async def query_system_dict_type_data(
|
async def query_system_dict_type_data(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_type: Annotated[str, Path(description='字典类型')],
|
dict_type: Annotated[str, Path(description='字典类型')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
dict_data_query_result = await DictDataService.query_dict_data_list_from_cache_services(
|
dict_data_query_result = await DictDataService.query_dict_data_list_from_cache_services(
|
||||||
@@ -163,12 +182,14 @@ async def query_system_dict_type_data(
|
|||||||
|
|
||||||
|
|
||||||
@dict_controller.get(
|
@dict_controller.get(
|
||||||
'/data/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:dict:list'))]
|
'/data/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:list')],
|
||||||
)
|
)
|
||||||
async def get_system_dict_data_list(
|
async def get_system_dict_data_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_data_page_query: Annotated[DictDataPageQueryModel, Query()],
|
dict_data_page_query: Annotated[DictDataPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
dict_data_page_query_result = await DictDataService.get_dict_data_list_services(
|
dict_data_page_query_result = await DictDataService.get_dict_data_list_services(
|
||||||
@@ -179,14 +200,17 @@ async def get_system_dict_data_list(
|
|||||||
return ResponseUtil.success(model_content=dict_data_page_query_result)
|
return ResponseUtil.success(model_content=dict_data_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.post('/data', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:add'))])
|
@dict_controller.post(
|
||||||
|
'/data',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_dict_data')
|
@ValidateFields(validate_model='add_dict_data')
|
||||||
@Log(title='字典数据', business_type=BusinessType.INSERT)
|
@Log(title='字典数据', business_type=BusinessType.INSERT)
|
||||||
async def add_system_dict_data(
|
async def add_system_dict_data(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_dict_data: DictDataModel,
|
add_dict_data: DictDataModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_dict_data.create_by = current_user.user.user_name
|
add_dict_data.create_by = current_user.user.user_name
|
||||||
add_dict_data.create_time = datetime.now()
|
add_dict_data.create_time = datetime.now()
|
||||||
@@ -198,14 +222,17 @@ async def add_system_dict_data(
|
|||||||
return ResponseUtil.success(msg=add_dict_data_result.message)
|
return ResponseUtil.success(msg=add_dict_data_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.put('/data', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:edit'))])
|
@dict_controller.put(
|
||||||
|
'/data',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_dict_data')
|
@ValidateFields(validate_model='edit_dict_data')
|
||||||
@Log(title='字典数据', business_type=BusinessType.UPDATE)
|
@Log(title='字典数据', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_dict_data(
|
async def edit_system_dict_data(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_dict_data: DictDataModel,
|
edit_dict_data: DictDataModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_dict_data.update_by = current_user.user.user_name
|
edit_dict_data.update_by = current_user.user.user_name
|
||||||
edit_dict_data.update_time = datetime.now()
|
edit_dict_data.update_time = datetime.now()
|
||||||
@@ -215,12 +242,15 @@ async def edit_system_dict_data(
|
|||||||
return ResponseUtil.success(msg=edit_dict_data_result.message)
|
return ResponseUtil.success(msg=edit_dict_data_result.message)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.delete('/data/{dict_codes}', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:remove'))])
|
@dict_controller.delete(
|
||||||
|
'/data/{dict_codes}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:remove')],
|
||||||
|
)
|
||||||
@Log(title='字典数据', business_type=BusinessType.DELETE)
|
@Log(title='字典数据', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_dict_data(
|
async def delete_system_dict_data(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_codes: Annotated[str, Path(description='需要删除的字典编码')],
|
dict_codes: Annotated[str, Path(description='需要删除的字典编码')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_dict_data = DeleteDictDataModel(dictCodes=dict_codes)
|
delete_dict_data = DeleteDictDataModel(dictCodes=dict_codes)
|
||||||
delete_dict_data_result = await DictDataService.delete_dict_data_services(request, query_db, delete_dict_data)
|
delete_dict_data_result = await DictDataService.delete_dict_data_services(request, query_db, delete_dict_data)
|
||||||
@@ -232,12 +262,12 @@ async def delete_system_dict_data(
|
|||||||
@dict_controller.get(
|
@dict_controller.get(
|
||||||
'/data/{dict_code}',
|
'/data/{dict_code}',
|
||||||
response_model=DictDataModel,
|
response_model=DictDataModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:dict:query'))],
|
dependencies=[UserInterfaceAuthDependency('system:dict:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_dict_data(
|
async def query_detail_system_dict_data(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_code: Annotated[int, Path(description='字典编码')],
|
dict_code: Annotated[int, Path(description='字典编码')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
detail_dict_data_result = await DictDataService.dict_data_detail_services(query_db, dict_code)
|
detail_dict_data_result = await DictDataService.dict_data_detail_services(query_db, dict_code)
|
||||||
logger.info(f'获取dict_code为{dict_code}的信息成功')
|
logger.info(f'获取dict_code为{dict_code}的信息成功')
|
||||||
@@ -245,12 +275,15 @@ async def query_detail_system_dict_data(
|
|||||||
return ResponseUtil.success(data=detail_dict_data_result)
|
return ResponseUtil.success(data=detail_dict_data_result)
|
||||||
|
|
||||||
|
|
||||||
@dict_controller.post('/data/export', dependencies=[Depends(CheckUserInterfaceAuth('system:dict:export'))])
|
@dict_controller.post(
|
||||||
|
'/data/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:dict:export')],
|
||||||
|
)
|
||||||
@Log(title='字典数据', business_type=BusinessType.EXPORT)
|
@Log(title='字典数据', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_dict_data_list(
|
async def export_system_dict_data_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
dict_data_page_query: Annotated[DictDataPageQueryModel, Form()],
|
dict_data_page_query: Annotated[DictDataPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
dict_data_query_result = await DictDataService.get_dict_data_list_services(
|
dict_data_query_result = await DictDataService.get_dict_data_list_services(
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.job_vo import (
|
from module_admin.entity.vo.job_vo import (
|
||||||
DeleteJobLogModel,
|
DeleteJobLogModel,
|
||||||
DeleteJobModel,
|
DeleteJobModel,
|
||||||
@@ -20,22 +21,23 @@ from module_admin.entity.vo.job_vo import (
|
|||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.job_log_service import JobLogService
|
from module_admin.service.job_log_service import JobLogService
|
||||||
from module_admin.service.job_service import JobService
|
from module_admin.service.job_service import JobService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
job_controller = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService.get_current_user)])
|
job_controller = APIRouter(prefix='/monitor', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@job_controller.get(
|
@job_controller.get(
|
||||||
'/job/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:list'))]
|
'/job/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:list')],
|
||||||
)
|
)
|
||||||
async def get_system_job_list(
|
async def get_system_job_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_page_query: Annotated[JobPageQueryModel, Query()],
|
job_page_query: Annotated[JobPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
notice_page_query_result = await JobService.get_job_list_services(query_db, job_page_query, is_page=True)
|
notice_page_query_result = await JobService.get_job_list_services(query_db, job_page_query, is_page=True)
|
||||||
@@ -44,14 +46,17 @@ async def get_system_job_list(
|
|||||||
return ResponseUtil.success(model_content=notice_page_query_result)
|
return ResponseUtil.success(model_content=notice_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.post('/job', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:add'))])
|
@job_controller.post(
|
||||||
|
'/job',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_job')
|
@ValidateFields(validate_model='add_job')
|
||||||
@Log(title='定时任务', business_type=BusinessType.INSERT)
|
@Log(title='定时任务', business_type=BusinessType.INSERT)
|
||||||
async def add_system_job(
|
async def add_system_job(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_job: JobModel,
|
add_job: JobModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_job.create_by = current_user.user.user_name
|
add_job.create_by = current_user.user.user_name
|
||||||
add_job.create_time = datetime.now()
|
add_job.create_time = datetime.now()
|
||||||
@@ -63,14 +68,17 @@ async def add_system_job(
|
|||||||
return ResponseUtil.success(msg=add_job_result.message)
|
return ResponseUtil.success(msg=add_job_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.put('/job', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:edit'))])
|
@job_controller.put(
|
||||||
|
'/job',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_job')
|
@ValidateFields(validate_model='edit_job')
|
||||||
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_job(
|
async def edit_system_job(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_job: EditJobModel,
|
edit_job: EditJobModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_job.update_by = current_user.user.user_name
|
edit_job.update_by = current_user.user.user_name
|
||||||
edit_job.update_time = datetime.now()
|
edit_job.update_time = datetime.now()
|
||||||
@@ -80,13 +88,16 @@ async def edit_system_job(
|
|||||||
return ResponseUtil.success(msg=edit_job_result.message)
|
return ResponseUtil.success(msg=edit_job_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.put('/job/changeStatus', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:changeStatus'))])
|
@job_controller.put(
|
||||||
|
'/job/changeStatus',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:changeStatus')],
|
||||||
|
)
|
||||||
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
||||||
async def change_system_job_status(
|
async def change_system_job_status(
|
||||||
request: Request,
|
request: Request,
|
||||||
change_job: EditJobModel,
|
change_job: EditJobModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_job = EditJobModel(
|
edit_job = EditJobModel(
|
||||||
jobId=change_job.job_id,
|
jobId=change_job.job_id,
|
||||||
@@ -101,12 +112,15 @@ async def change_system_job_status(
|
|||||||
return ResponseUtil.success(msg=edit_job_result.message)
|
return ResponseUtil.success(msg=edit_job_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.put('/job/run', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:changeStatus'))])
|
@job_controller.put(
|
||||||
|
'/job/run',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:changeStatus')],
|
||||||
|
)
|
||||||
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
@Log(title='定时任务', business_type=BusinessType.UPDATE)
|
||||||
async def execute_system_job(
|
async def execute_system_job(
|
||||||
request: Request,
|
request: Request,
|
||||||
execute_job: JobModel,
|
execute_job: JobModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
execute_job_result = await JobService.execute_job_once_services(query_db, execute_job)
|
execute_job_result = await JobService.execute_job_once_services(query_db, execute_job)
|
||||||
logger.info(execute_job_result.message)
|
logger.info(execute_job_result.message)
|
||||||
@@ -114,12 +128,15 @@ async def execute_system_job(
|
|||||||
return ResponseUtil.success(msg=execute_job_result.message)
|
return ResponseUtil.success(msg=execute_job_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.delete('/job/{job_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:remove'))])
|
@job_controller.delete(
|
||||||
|
'/job/{job_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:remove')],
|
||||||
|
)
|
||||||
@Log(title='定时任务', business_type=BusinessType.DELETE)
|
@Log(title='定时任务', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_job(
|
async def delete_system_job(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_ids: Annotated[str, Path(description='需要删除的定时任务ID')],
|
job_ids: Annotated[str, Path(description='需要删除的定时任务ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_job = DeleteJobModel(jobIds=job_ids)
|
delete_job = DeleteJobModel(jobIds=job_ids)
|
||||||
delete_job_result = await JobService.delete_job_services(query_db, delete_job)
|
delete_job_result = await JobService.delete_job_services(query_db, delete_job)
|
||||||
@@ -129,12 +146,14 @@ async def delete_system_job(
|
|||||||
|
|
||||||
|
|
||||||
@job_controller.get(
|
@job_controller.get(
|
||||||
'/job/{job_id}', response_model=JobModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:query'))]
|
'/job/{job_id}',
|
||||||
|
response_model=JobModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_job(
|
async def query_detail_system_job(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_id: Annotated[int, Path(description='任务ID')],
|
job_id: Annotated[int, Path(description='任务ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
job_detail_result = await JobService.job_detail_services(query_db, job_id)
|
job_detail_result = await JobService.job_detail_services(query_db, job_id)
|
||||||
logger.info(f'获取job_id为{job_id}的信息成功')
|
logger.info(f'获取job_id为{job_id}的信息成功')
|
||||||
@@ -142,12 +161,15 @@ async def query_detail_system_job(
|
|||||||
return ResponseUtil.success(data=job_detail_result)
|
return ResponseUtil.success(data=job_detail_result)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.post('/job/export', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:export'))])
|
@job_controller.post(
|
||||||
|
'/job/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:export')],
|
||||||
|
)
|
||||||
@Log(title='定时任务', business_type=BusinessType.EXPORT)
|
@Log(title='定时任务', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_job_list(
|
async def export_system_job_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_page_query: Annotated[JobPageQueryModel, Form()],
|
job_page_query: Annotated[JobPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
job_query_result = await JobService.get_job_list_services(query_db, job_page_query, is_page=False)
|
job_query_result = await JobService.get_job_list_services(query_db, job_page_query, is_page=False)
|
||||||
@@ -158,12 +180,14 @@ async def export_system_job_list(
|
|||||||
|
|
||||||
|
|
||||||
@job_controller.get(
|
@job_controller.get(
|
||||||
'/jobLog/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:list'))]
|
'/jobLog/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:list')],
|
||||||
)
|
)
|
||||||
async def get_system_job_log_list(
|
async def get_system_job_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_log_page_query: Annotated[JobLogPageQueryModel, Query()],
|
job_log_page_query: Annotated[JobLogPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
job_log_page_query_result = await JobLogService.get_job_log_list_services(
|
job_log_page_query_result = await JobLogService.get_job_log_list_services(
|
||||||
@@ -174,11 +198,14 @@ async def get_system_job_log_list(
|
|||||||
return ResponseUtil.success(model_content=job_log_page_query_result)
|
return ResponseUtil.success(model_content=job_log_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.delete('/jobLog/clean', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:remove'))])
|
@job_controller.delete(
|
||||||
|
'/jobLog/clean',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:remove')],
|
||||||
|
)
|
||||||
@Log(title='定时任务调度日志', business_type=BusinessType.CLEAN)
|
@Log(title='定时任务调度日志', business_type=BusinessType.CLEAN)
|
||||||
async def clear_system_job_log(
|
async def clear_system_job_log(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
clear_job_log_result = await JobLogService.clear_job_log_services(query_db)
|
clear_job_log_result = await JobLogService.clear_job_log_services(query_db)
|
||||||
logger.info(clear_job_log_result.message)
|
logger.info(clear_job_log_result.message)
|
||||||
@@ -186,12 +213,15 @@ async def clear_system_job_log(
|
|||||||
return ResponseUtil.success(msg=clear_job_log_result.message)
|
return ResponseUtil.success(msg=clear_job_log_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.delete('/jobLog/{job_log_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:remove'))])
|
@job_controller.delete(
|
||||||
|
'/jobLog/{job_log_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:remove')],
|
||||||
|
)
|
||||||
@Log(title='定时任务调度日志', business_type=BusinessType.DELETE)
|
@Log(title='定时任务调度日志', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_job_log(
|
async def delete_system_job_log(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_log_ids: Annotated[str, Path(description='需要删除的定时任务日志ID')],
|
job_log_ids: Annotated[str, Path(description='需要删除的定时任务日志ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_job_log = DeleteJobLogModel(jobLogIds=job_log_ids)
|
delete_job_log = DeleteJobLogModel(jobLogIds=job_log_ids)
|
||||||
delete_job_log_result = await JobLogService.delete_job_log_services(query_db, delete_job_log)
|
delete_job_log_result = await JobLogService.delete_job_log_services(query_db, delete_job_log)
|
||||||
@@ -200,12 +230,15 @@ async def delete_system_job_log(
|
|||||||
return ResponseUtil.success(msg=delete_job_log_result.message)
|
return ResponseUtil.success(msg=delete_job_log_result.message)
|
||||||
|
|
||||||
|
|
||||||
@job_controller.post('/jobLog/export', dependencies=[Depends(CheckUserInterfaceAuth('monitor:job:export'))])
|
@job_controller.post(
|
||||||
|
'/jobLog/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:job:export')],
|
||||||
|
)
|
||||||
@Log(title='定时任务调度日志', business_type=BusinessType.EXPORT)
|
@Log(title='定时任务调度日志', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_job_log_list(
|
async def export_system_job_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
job_log_page_query: Annotated[JobLogPageQueryModel, Form()],
|
job_log_page_query: Annotated[JobLogPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
job_log_query_result = await JobLogService.get_job_log_list_services(query_db, job_log_page_query, is_page=False)
|
job_log_query_result = await JobLogService.get_job_log_list_services(query_db, job_log_page_query, is_page=False)
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.log_vo import (
|
from module_admin.entity.vo.log_vo import (
|
||||||
DeleteLoginLogModel,
|
DeleteLoginLogModel,
|
||||||
DeleteOperLogModel,
|
DeleteOperLogModel,
|
||||||
@@ -15,24 +16,23 @@ from module_admin.entity.vo.log_vo import (
|
|||||||
UnlockUser,
|
UnlockUser,
|
||||||
)
|
)
|
||||||
from module_admin.service.log_service import LoginLogService, OperationLogService
|
from module_admin.service.log_service import LoginLogService, OperationLogService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
log_controller = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService.get_current_user)])
|
log_controller = APIRouter(prefix='/monitor', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@log_controller.get(
|
@log_controller.get(
|
||||||
'/operlog/list',
|
'/operlog/list',
|
||||||
response_model=PageResponseModel,
|
response_model=PageResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('monitor:operlog:list'))],
|
dependencies=[UserInterfaceAuthDependency('monitor:operlog:list')],
|
||||||
)
|
)
|
||||||
async def get_system_operation_log_list(
|
async def get_system_operation_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
operation_log_page_query: Annotated[OperLogPageQueryModel, Query()],
|
operation_log_page_query: Annotated[OperLogPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
operation_log_page_query_result = await OperationLogService.get_operation_log_list_services(
|
operation_log_page_query_result = await OperationLogService.get_operation_log_list_services(
|
||||||
@@ -43,21 +43,29 @@ async def get_system_operation_log_list(
|
|||||||
return ResponseUtil.success(model_content=operation_log_page_query_result)
|
return ResponseUtil.success(model_content=operation_log_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@log_controller.delete('/operlog/clean', dependencies=[Depends(CheckUserInterfaceAuth('monitor:operlog:remove'))])
|
@log_controller.delete(
|
||||||
|
'/operlog/clean',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:operlog:remove')],
|
||||||
|
)
|
||||||
@Log(title='操作日志', business_type=BusinessType.CLEAN)
|
@Log(title='操作日志', business_type=BusinessType.CLEAN)
|
||||||
async def clear_system_operation_log(request: Request, query_db: Annotated[AsyncSession, Depends(get_db)]) -> Response:
|
async def clear_system_operation_log(
|
||||||
|
request: Request, query_db: Annotated[AsyncSession, DBSessionDependency()]
|
||||||
|
) -> Response:
|
||||||
clear_operation_log_result = await OperationLogService.clear_operation_log_services(query_db)
|
clear_operation_log_result = await OperationLogService.clear_operation_log_services(query_db)
|
||||||
logger.info(clear_operation_log_result.message)
|
logger.info(clear_operation_log_result.message)
|
||||||
|
|
||||||
return ResponseUtil.success(msg=clear_operation_log_result.message)
|
return ResponseUtil.success(msg=clear_operation_log_result.message)
|
||||||
|
|
||||||
|
|
||||||
@log_controller.delete('/operlog/{oper_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:operlog:remove'))])
|
@log_controller.delete(
|
||||||
|
'/operlog/{oper_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:operlog:remove')],
|
||||||
|
)
|
||||||
@Log(title='操作日志', business_type=BusinessType.DELETE)
|
@Log(title='操作日志', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_operation_log(
|
async def delete_system_operation_log(
|
||||||
request: Request,
|
request: Request,
|
||||||
oper_ids: Annotated[str, Path(description='需要删除的日志主键')],
|
oper_ids: Annotated[str, Path(description='需要删除的日志主键')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_operation_log = DeleteOperLogModel(operIds=oper_ids)
|
delete_operation_log = DeleteOperLogModel(operIds=oper_ids)
|
||||||
delete_operation_log_result = await OperationLogService.delete_operation_log_services(
|
delete_operation_log_result = await OperationLogService.delete_operation_log_services(
|
||||||
@@ -68,12 +76,15 @@ async def delete_system_operation_log(
|
|||||||
return ResponseUtil.success(msg=delete_operation_log_result.message)
|
return ResponseUtil.success(msg=delete_operation_log_result.message)
|
||||||
|
|
||||||
|
|
||||||
@log_controller.post('/operlog/export', dependencies=[Depends(CheckUserInterfaceAuth('monitor:operlog:export'))])
|
@log_controller.post(
|
||||||
|
'/operlog/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:operlog:export')],
|
||||||
|
)
|
||||||
@Log(title='操作日志', business_type=BusinessType.EXPORT)
|
@Log(title='操作日志', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_operation_log_list(
|
async def export_system_operation_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
operation_log_page_query: Annotated[OperLogPageQueryModel, Form()],
|
operation_log_page_query: Annotated[OperLogPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
operation_log_query_result = await OperationLogService.get_operation_log_list_services(
|
operation_log_query_result = await OperationLogService.get_operation_log_list_services(
|
||||||
@@ -90,12 +101,12 @@ async def export_system_operation_log_list(
|
|||||||
@log_controller.get(
|
@log_controller.get(
|
||||||
'/logininfor/list',
|
'/logininfor/list',
|
||||||
response_model=PageResponseModel,
|
response_model=PageResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('monitor:logininfor:list'))],
|
dependencies=[UserInterfaceAuthDependency('monitor:logininfor:list')],
|
||||||
)
|
)
|
||||||
async def get_system_login_log_list(
|
async def get_system_login_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
login_log_page_query: Annotated[LoginLogPageQueryModel, Query()],
|
login_log_page_query: Annotated[LoginLogPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
login_log_page_query_result = await LoginLogService.get_login_log_list_services(
|
login_log_page_query_result = await LoginLogService.get_login_log_list_services(
|
||||||
@@ -106,9 +117,14 @@ async def get_system_login_log_list(
|
|||||||
return ResponseUtil.success(model_content=login_log_page_query_result)
|
return ResponseUtil.success(model_content=login_log_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@log_controller.delete('/logininfor/clean', dependencies=[Depends(CheckUserInterfaceAuth('monitor:logininfor:remove'))])
|
@log_controller.delete(
|
||||||
|
'/logininfor/clean',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:logininfor:remove')],
|
||||||
|
)
|
||||||
@Log(title='登录日志', business_type=BusinessType.CLEAN)
|
@Log(title='登录日志', business_type=BusinessType.CLEAN)
|
||||||
async def clear_system_login_log(request: Request, query_db: Annotated[AsyncSession, Depends(get_db)]) -> Response:
|
async def clear_system_login_log(
|
||||||
|
request: Request, query_db: Annotated[AsyncSession, DBSessionDependency()]
|
||||||
|
) -> Response:
|
||||||
clear_login_log_result = await LoginLogService.clear_login_log_services(query_db)
|
clear_login_log_result = await LoginLogService.clear_login_log_services(query_db)
|
||||||
logger.info(clear_login_log_result.message)
|
logger.info(clear_login_log_result.message)
|
||||||
|
|
||||||
@@ -116,13 +132,14 @@ async def clear_system_login_log(request: Request, query_db: Annotated[AsyncSess
|
|||||||
|
|
||||||
|
|
||||||
@log_controller.delete(
|
@log_controller.delete(
|
||||||
'/logininfor/{info_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:logininfor:remove'))]
|
'/logininfor/{info_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:logininfor:remove')],
|
||||||
)
|
)
|
||||||
@Log(title='登录日志', business_type=BusinessType.DELETE)
|
@Log(title='登录日志', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_login_log(
|
async def delete_system_login_log(
|
||||||
request: Request,
|
request: Request,
|
||||||
info_ids: Annotated[str, Path(description='需要删除的访问ID')],
|
info_ids: Annotated[str, Path(description='需要删除的访问ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_login_log = DeleteLoginLogModel(infoIds=info_ids)
|
delete_login_log = DeleteLoginLogModel(infoIds=info_ids)
|
||||||
delete_login_log_result = await LoginLogService.delete_login_log_services(query_db, delete_login_log)
|
delete_login_log_result = await LoginLogService.delete_login_log_services(query_db, delete_login_log)
|
||||||
@@ -132,13 +149,14 @@ async def delete_system_login_log(
|
|||||||
|
|
||||||
|
|
||||||
@log_controller.get(
|
@log_controller.get(
|
||||||
'/logininfor/unlock/{user_name}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:logininfor:unlock'))]
|
'/logininfor/unlock/{user_name}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:logininfor:unlock')],
|
||||||
)
|
)
|
||||||
@Log(title='账户解锁', business_type=BusinessType.OTHER)
|
@Log(title='账户解锁', business_type=BusinessType.OTHER)
|
||||||
async def unlock_system_user(
|
async def unlock_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_name: Annotated[str, Path(description='用户名称')],
|
user_name: Annotated[str, Path(description='用户名称')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
unlock_user = UnlockUser(userName=user_name)
|
unlock_user = UnlockUser(userName=user_name)
|
||||||
unlock_user_result = await LoginLogService.unlock_user_services(request, unlock_user)
|
unlock_user_result = await LoginLogService.unlock_user_services(request, unlock_user)
|
||||||
@@ -147,12 +165,15 @@ async def unlock_system_user(
|
|||||||
return ResponseUtil.success(msg=unlock_user_result.message)
|
return ResponseUtil.success(msg=unlock_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@log_controller.post('/logininfor/export', dependencies=[Depends(CheckUserInterfaceAuth('monitor:logininfor:export'))])
|
@log_controller.post(
|
||||||
|
'/logininfor/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:logininfor:export')],
|
||||||
|
)
|
||||||
@Log(title='登录日志', business_type=BusinessType.EXPORT)
|
@Log(title='登录日志', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_login_log_list(
|
async def export_system_login_log_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
login_log_page_query: Annotated[LoginLogPageQueryModel, Form()],
|
login_log_page_query: Annotated[LoginLogPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
login_log_query_result = await LoginLogService.get_login_log_list_services(
|
login_log_query_result = await LoginLogService.get_login_log_list_services(
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ from fastapi import APIRouter, Depends, Request, Response
|
|||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency
|
||||||
from common.enums import BusinessType, RedisInitKeyConfig
|
from common.enums import BusinessType, RedisInitKeyConfig
|
||||||
from config.env import AppConfig, JwtConfig
|
from config.env import AppConfig, JwtConfig
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.common_vo import CrudResponseModel
|
from module_admin.entity.vo.common_vo import CrudResponseModel
|
||||||
from module_admin.entity.vo.login_vo import Token, UserLogin, UserRegister
|
from module_admin.entity.vo.login_vo import Token, UserLogin, UserRegister
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel, EditUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel, EditUserModel
|
||||||
@@ -26,7 +27,7 @@ login_controller = APIRouter()
|
|||||||
async def login(
|
async def login(
|
||||||
request: Request,
|
request: Request,
|
||||||
form_data: Annotated[CustomOAuth2PasswordRequestForm, Depends()],
|
form_data: Annotated[CustomOAuth2PasswordRequestForm, Depends()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
captcha_enabled = (
|
captcha_enabled = (
|
||||||
await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.account.captchaEnabled') == 'true'
|
await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.account.captchaEnabled') == 'true'
|
||||||
@@ -79,7 +80,7 @@ async def login(
|
|||||||
|
|
||||||
@login_controller.get('/getInfo', response_model=CurrentUserModel)
|
@login_controller.get('/getInfo', response_model=CurrentUserModel)
|
||||||
async def get_login_user_info(
|
async def get_login_user_info(
|
||||||
request: Request, current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)]
|
request: Request, current_user: Annotated[CurrentUserModel, CurrentUserDependency()]
|
||||||
) -> Response:
|
) -> Response:
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
|
|
||||||
@@ -89,8 +90,8 @@ async def get_login_user_info(
|
|||||||
@login_controller.get('/getRouters')
|
@login_controller.get('/getRouters')
|
||||||
async def get_login_user_routers(
|
async def get_login_user_routers(
|
||||||
request: Request,
|
request: Request,
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
user_routers = await LoginService.get_current_user_routers(current_user.user.user_id, query_db)
|
user_routers = await LoginService.get_current_user_routers(current_user.user.user_id, query_db)
|
||||||
@@ -102,7 +103,7 @@ async def get_login_user_routers(
|
|||||||
async def register_user(
|
async def register_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_register: UserRegister,
|
user_register: UserRegister,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
user_register_result = await LoginService.register_user_services(request, query_db, user_register)
|
user_register_result = await LoginService.register_user_services(request, query_db, user_register)
|
||||||
logger.info(user_register_result.message)
|
logger.info(user_register_result.message)
|
||||||
@@ -111,7 +112,7 @@ async def register_user(
|
|||||||
|
|
||||||
|
|
||||||
# @login_controller.post("/getSmsCode", response_model=SmsCode)
|
# @login_controller.post("/getSmsCode", response_model=SmsCode)
|
||||||
# async def get_sms_code(request: Request, user: ResetUserModel, query_db: AsyncSession = Depends(get_db)):
|
# async def get_sms_code(request: Request, user: ResetUserModel, query_db: AsyncSession = DBSessionDependency()):
|
||||||
# try:
|
# try:
|
||||||
# sms_result = await LoginService.get_sms_code_services(request, query_db, user)
|
# sms_result = await LoginService.get_sms_code_services(request, query_db, user)
|
||||||
# if sms_result.is_success:
|
# if sms_result.is_success:
|
||||||
@@ -126,7 +127,7 @@ async def register_user(
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
# @login_controller.post("/forgetPwd", response_model=CrudResponseModel)
|
# @login_controller.post("/forgetPwd", response_model=CrudResponseModel)
|
||||||
# async def forget_user_pwd(request: Request, forget_user: ResetUserModel, query_db: AsyncSession = Depends(get_db)):
|
# async def forget_user_pwd(request: Request, forget_user: ResetUserModel, query_db: AsyncSession = DBSessionDependency()):
|
||||||
# try:
|
# try:
|
||||||
# forget_user_result = await LoginService.forget_user_services(request, query_db, forget_user)
|
# forget_user_result = await LoginService.forget_user_services(request, query_db, forget_user)
|
||||||
# if forget_user_result.is_success:
|
# if forget_user_result.is_success:
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Query, Request, Response
|
from fastapi import APIRouter, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.menu_vo import DeleteMenuModel, MenuModel, MenuQueryModel
|
from module_admin.entity.vo.menu_vo import DeleteMenuModel, MenuModel, MenuQueryModel
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.menu_service import MenuService
|
from module_admin.service.menu_service import MenuService
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
menu_controller = APIRouter(prefix='/system/menu', dependencies=[Depends(LoginService.get_current_user)])
|
menu_controller = APIRouter(prefix='/system/menu', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@menu_controller.get('/treeselect')
|
@menu_controller.get('/treeselect')
|
||||||
async def get_system_menu_tree(
|
async def get_system_menu_tree(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
menu_query_result = await MenuService.get_menu_tree_services(query_db, current_user)
|
menu_query_result = await MenuService.get_menu_tree_services(query_db, current_user)
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
@@ -35,8 +35,8 @@ async def get_system_menu_tree(
|
|||||||
async def get_system_role_menu_tree(
|
async def get_system_role_menu_tree(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_id: Annotated[int, Path(description='角色ID')],
|
role_id: Annotated[int, Path(description='角色ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
role_menu_query_result = await MenuService.get_role_menu_tree_services(query_db, role_id, current_user)
|
role_menu_query_result = await MenuService.get_role_menu_tree_services(query_db, role_id, current_user)
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
@@ -45,13 +45,15 @@ async def get_system_role_menu_tree(
|
|||||||
|
|
||||||
|
|
||||||
@menu_controller.get(
|
@menu_controller.get(
|
||||||
'/list', response_model=list[MenuModel], dependencies=[Depends(CheckUserInterfaceAuth('system:menu:list'))]
|
'/list',
|
||||||
|
response_model=list[MenuModel],
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:menu:list')],
|
||||||
)
|
)
|
||||||
async def get_system_menu_list(
|
async def get_system_menu_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
menu_query: Annotated[MenuQueryModel, Query()],
|
menu_query: Annotated[MenuQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
menu_query_result = await MenuService.get_menu_list_services(query_db, menu_query, current_user)
|
menu_query_result = await MenuService.get_menu_list_services(query_db, menu_query, current_user)
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
@@ -59,14 +61,17 @@ async def get_system_menu_list(
|
|||||||
return ResponseUtil.success(data=menu_query_result)
|
return ResponseUtil.success(data=menu_query_result)
|
||||||
|
|
||||||
|
|
||||||
@menu_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:menu:add'))])
|
@menu_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:menu:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_menu')
|
@ValidateFields(validate_model='add_menu')
|
||||||
@Log(title='菜单管理', business_type=BusinessType.INSERT)
|
@Log(title='菜单管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_menu(
|
async def add_system_menu(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_menu: MenuModel,
|
add_menu: MenuModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_menu.create_by = current_user.user.user_name
|
add_menu.create_by = current_user.user.user_name
|
||||||
add_menu.create_time = datetime.now()
|
add_menu.create_time = datetime.now()
|
||||||
@@ -78,14 +83,17 @@ async def add_system_menu(
|
|||||||
return ResponseUtil.success(msg=add_menu_result.message)
|
return ResponseUtil.success(msg=add_menu_result.message)
|
||||||
|
|
||||||
|
|
||||||
@menu_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:menu:edit'))])
|
@menu_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:menu:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_menu')
|
@ValidateFields(validate_model='edit_menu')
|
||||||
@Log(title='菜单管理', business_type=BusinessType.UPDATE)
|
@Log(title='菜单管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_menu(
|
async def edit_system_menu(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_menu: MenuModel,
|
edit_menu: MenuModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_menu.update_by = current_user.user.user_name
|
edit_menu.update_by = current_user.user.user_name
|
||||||
edit_menu.update_time = datetime.now()
|
edit_menu.update_time = datetime.now()
|
||||||
@@ -95,12 +103,15 @@ async def edit_system_menu(
|
|||||||
return ResponseUtil.success(msg=edit_menu_result.message)
|
return ResponseUtil.success(msg=edit_menu_result.message)
|
||||||
|
|
||||||
|
|
||||||
@menu_controller.delete('/{menu_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:menu:remove'))])
|
@menu_controller.delete(
|
||||||
|
'/{menu_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:menu:remove')],
|
||||||
|
)
|
||||||
@Log(title='菜单管理', business_type=BusinessType.DELETE)
|
@Log(title='菜单管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_menu(
|
async def delete_system_menu(
|
||||||
request: Request,
|
request: Request,
|
||||||
menu_ids: Annotated[str, Path(description='需要删除的菜单ID')],
|
menu_ids: Annotated[str, Path(description='需要删除的菜单ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_menu = DeleteMenuModel(menuIds=menu_ids)
|
delete_menu = DeleteMenuModel(menuIds=menu_ids)
|
||||||
delete_menu_result = await MenuService.delete_menu_services(query_db, delete_menu)
|
delete_menu_result = await MenuService.delete_menu_services(query_db, delete_menu)
|
||||||
@@ -110,12 +121,14 @@ async def delete_system_menu(
|
|||||||
|
|
||||||
|
|
||||||
@menu_controller.get(
|
@menu_controller.get(
|
||||||
'/{menu_id}', response_model=MenuModel, dependencies=[Depends(CheckUserInterfaceAuth('system:menu:query'))]
|
'/{menu_id}',
|
||||||
|
response_model=MenuModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:menu:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_menu(
|
async def query_detail_system_menu(
|
||||||
request: Request,
|
request: Request,
|
||||||
menu_id: Annotated[int, Path(description='菜单ID')],
|
menu_id: Annotated[int, Path(description='菜单ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
menu_detail_result = await MenuService.menu_detail_services(query_db, menu_id)
|
menu_detail_result = await MenuService.menu_detail_services(query_db, menu_id)
|
||||||
logger.info(f'获取menu_id为{menu_id}的信息成功')
|
logger.info(f'获取menu_id为{menu_id}的信息成功')
|
||||||
|
|||||||
@@ -1,32 +1,34 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Query, Request, Response
|
from fastapi import APIRouter, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
|
from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.notice_service import NoticeService
|
from module_admin.service.notice_service import NoticeService
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
notice_controller = APIRouter(prefix='/system/notice', dependencies=[Depends(LoginService.get_current_user)])
|
notice_controller = APIRouter(prefix='/system/notice', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@notice_controller.get(
|
@notice_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:notice:list')],
|
||||||
)
|
)
|
||||||
async def get_system_notice_list(
|
async def get_system_notice_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
notice_page_query: Annotated[NoticePageQueryModel, Query()],
|
notice_page_query: Annotated[NoticePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
notice_page_query_result = await NoticeService.get_notice_list_services(query_db, notice_page_query, is_page=True)
|
notice_page_query_result = await NoticeService.get_notice_list_services(query_db, notice_page_query, is_page=True)
|
||||||
@@ -35,14 +37,17 @@ async def get_system_notice_list(
|
|||||||
return ResponseUtil.success(model_content=notice_page_query_result)
|
return ResponseUtil.success(model_content=notice_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@notice_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:add'))])
|
@notice_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:notice:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_notice')
|
@ValidateFields(validate_model='add_notice')
|
||||||
@Log(title='通知公告', business_type=BusinessType.INSERT)
|
@Log(title='通知公告', business_type=BusinessType.INSERT)
|
||||||
async def add_system_notice(
|
async def add_system_notice(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_notice: NoticeModel,
|
add_notice: NoticeModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_notice.create_by = current_user.user.user_name
|
add_notice.create_by = current_user.user.user_name
|
||||||
add_notice.create_time = datetime.now()
|
add_notice.create_time = datetime.now()
|
||||||
@@ -54,14 +59,17 @@ async def add_system_notice(
|
|||||||
return ResponseUtil.success(msg=add_notice_result.message)
|
return ResponseUtil.success(msg=add_notice_result.message)
|
||||||
|
|
||||||
|
|
||||||
@notice_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:edit'))])
|
@notice_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:notice:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_notice')
|
@ValidateFields(validate_model='edit_notice')
|
||||||
@Log(title='通知公告', business_type=BusinessType.UPDATE)
|
@Log(title='通知公告', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_notice(
|
async def edit_system_notice(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_notice: NoticeModel,
|
edit_notice: NoticeModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_notice.update_by = current_user.user.user_name
|
edit_notice.update_by = current_user.user.user_name
|
||||||
edit_notice.update_time = datetime.now()
|
edit_notice.update_time = datetime.now()
|
||||||
@@ -71,12 +79,15 @@ async def edit_system_notice(
|
|||||||
return ResponseUtil.success(msg=edit_notice_result.message)
|
return ResponseUtil.success(msg=edit_notice_result.message)
|
||||||
|
|
||||||
|
|
||||||
@notice_controller.delete('/{notice_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:remove'))])
|
@notice_controller.delete(
|
||||||
|
'/{notice_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:notice:remove')],
|
||||||
|
)
|
||||||
@Log(title='通知公告', business_type=BusinessType.DELETE)
|
@Log(title='通知公告', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_notice(
|
async def delete_system_notice(
|
||||||
request: Request,
|
request: Request,
|
||||||
notice_ids: Annotated[str, Path(description='需要删除的公告ID')],
|
notice_ids: Annotated[str, Path(description='需要删除的公告ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_notice = DeleteNoticeModel(noticeIds=notice_ids)
|
delete_notice = DeleteNoticeModel(noticeIds=notice_ids)
|
||||||
delete_notice_result = await NoticeService.delete_notice_services(query_db, delete_notice)
|
delete_notice_result = await NoticeService.delete_notice_services(query_db, delete_notice)
|
||||||
@@ -86,12 +97,14 @@ async def delete_system_notice(
|
|||||||
|
|
||||||
|
|
||||||
@notice_controller.get(
|
@notice_controller.get(
|
||||||
'/{notice_id}', response_model=NoticeModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:query'))]
|
'/{notice_id}',
|
||||||
|
response_model=NoticeModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:notice:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_post(
|
async def query_detail_system_post(
|
||||||
request: Request,
|
request: Request,
|
||||||
notice_id: Annotated[int, Path(description='公告ID')],
|
notice_id: Annotated[int, Path(description='公告ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
notice_detail_result = await NoticeService.notice_detail_services(query_db, notice_id)
|
notice_detail_result = await NoticeService.notice_detail_services(query_db, notice_id)
|
||||||
logger.info(f'获取notice_id为{notice_id}的信息成功')
|
logger.info(f'获取notice_id为{notice_id}的信息成功')
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Query, Request, Response
|
from fastapi import APIRouter, Path, Query, Request, Response
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.online_vo import DeleteOnlineModel, OnlineQueryModel
|
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 module_admin.service.online_service import OnlineService
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
online_controller = APIRouter(prefix='/monitor/online', dependencies=[Depends(LoginService.get_current_user)])
|
online_controller = APIRouter(prefix='/monitor/online', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@online_controller.get(
|
@online_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:online:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_online_list(
|
async def get_monitor_online_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
@@ -33,12 +35,15 @@ async def get_monitor_online_list(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@online_controller.delete('/{token_ids}', dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:forceLogout'))])
|
@online_controller.delete(
|
||||||
|
'/{token_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:online:forceLogout')],
|
||||||
|
)
|
||||||
@Log(title='在线用户', business_type=BusinessType.FORCE)
|
@Log(title='在线用户', business_type=BusinessType.FORCE)
|
||||||
async def delete_monitor_online(
|
async def delete_monitor_online(
|
||||||
request: Request,
|
request: Request,
|
||||||
token_ids: Annotated[str, Path(description='需要强退的会话编号')],
|
token_ids: Annotated[str, Path(description='需要强退的会话编号')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_online = DeleteOnlineModel(tokenIds=token_ids)
|
delete_online = DeleteOnlineModel(tokenIds=token_ids)
|
||||||
delete_online_result = await OnlineService.delete_online_services(request, delete_online)
|
delete_online_result = await OnlineService.delete_online_services(request, delete_online)
|
||||||
|
|||||||
@@ -1,33 +1,35 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
|
from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.post_service import PostService
|
from module_admin.service.post_service import PostService
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
post_controller = APIRouter(prefix='/system/post', dependencies=[Depends(LoginService.get_current_user)])
|
post_controller = APIRouter(prefix='/system/post', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@post_controller.get(
|
@post_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:list')],
|
||||||
)
|
)
|
||||||
async def get_system_post_list(
|
async def get_system_post_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
post_page_query: Annotated[PostPageQueryModel, Query()],
|
post_page_query: Annotated[PostPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
post_page_query_result = await PostService.get_post_list_services(query_db, post_page_query, is_page=True)
|
post_page_query_result = await PostService.get_post_list_services(query_db, post_page_query, is_page=True)
|
||||||
@@ -36,14 +38,17 @@ async def get_system_post_list(
|
|||||||
return ResponseUtil.success(model_content=post_page_query_result)
|
return ResponseUtil.success(model_content=post_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@post_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:add'))])
|
@post_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_post')
|
@ValidateFields(validate_model='add_post')
|
||||||
@Log(title='岗位管理', business_type=BusinessType.INSERT)
|
@Log(title='岗位管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_post(
|
async def add_system_post(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_post: PostModel,
|
add_post: PostModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_post.create_by = current_user.user.user_name
|
add_post.create_by = current_user.user.user_name
|
||||||
add_post.create_time = datetime.now()
|
add_post.create_time = datetime.now()
|
||||||
@@ -55,14 +60,17 @@ async def add_system_post(
|
|||||||
return ResponseUtil.success(msg=add_post_result.message)
|
return ResponseUtil.success(msg=add_post_result.message)
|
||||||
|
|
||||||
|
|
||||||
@post_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:edit'))])
|
@post_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_post')
|
@ValidateFields(validate_model='edit_post')
|
||||||
@Log(title='岗位管理', business_type=BusinessType.UPDATE)
|
@Log(title='岗位管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_post(
|
async def edit_system_post(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_post: PostModel,
|
edit_post: PostModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_post.update_by = current_user.user.user_name
|
edit_post.update_by = current_user.user.user_name
|
||||||
edit_post.update_time = datetime.now()
|
edit_post.update_time = datetime.now()
|
||||||
@@ -72,12 +80,15 @@ async def edit_system_post(
|
|||||||
return ResponseUtil.success(msg=edit_post_result.message)
|
return ResponseUtil.success(msg=edit_post_result.message)
|
||||||
|
|
||||||
|
|
||||||
@post_controller.delete('/{post_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:post:remove'))])
|
@post_controller.delete(
|
||||||
|
'/{post_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:remove')],
|
||||||
|
)
|
||||||
@Log(title='岗位管理', business_type=BusinessType.DELETE)
|
@Log(title='岗位管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_post(
|
async def delete_system_post(
|
||||||
request: Request,
|
request: Request,
|
||||||
post_ids: Annotated[str, Path(description='需要删除的岗位ID')],
|
post_ids: Annotated[str, Path(description='需要删除的岗位ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_post = DeletePostModel(postIds=post_ids)
|
delete_post = DeletePostModel(postIds=post_ids)
|
||||||
delete_post_result = await PostService.delete_post_services(query_db, delete_post)
|
delete_post_result = await PostService.delete_post_services(query_db, delete_post)
|
||||||
@@ -87,12 +98,14 @@ async def delete_system_post(
|
|||||||
|
|
||||||
|
|
||||||
@post_controller.get(
|
@post_controller.get(
|
||||||
'/{post_id}', response_model=PostModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:query'))]
|
'/{post_id}',
|
||||||
|
response_model=PostModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_post(
|
async def query_detail_system_post(
|
||||||
request: Request,
|
request: Request,
|
||||||
post_id: Annotated[int, Path(description='岗位ID')],
|
post_id: Annotated[int, Path(description='岗位ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
post_detail_result = await PostService.post_detail_services(query_db, post_id)
|
post_detail_result = await PostService.post_detail_services(query_db, post_id)
|
||||||
logger.info(f'获取post_id为{post_id}的信息成功')
|
logger.info(f'获取post_id为{post_id}的信息成功')
|
||||||
@@ -100,12 +113,15 @@ async def query_detail_system_post(
|
|||||||
return ResponseUtil.success(data=post_detail_result)
|
return ResponseUtil.success(data=post_detail_result)
|
||||||
|
|
||||||
|
|
||||||
@post_controller.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('system:post:export'))])
|
@post_controller.post(
|
||||||
|
'/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:post:export')],
|
||||||
|
)
|
||||||
@Log(title='岗位管理', business_type=BusinessType.EXPORT)
|
@Log(title='岗位管理', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_post_list(
|
async def export_system_post_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
post_page_query: Annotated[PostPageQueryModel, Form()],
|
post_page_query: Annotated[PostPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
post_query_result = await PostService.get_post_list_services(query_db, post_page_query, is_page=False)
|
post_query_result = await PostService.get_post_list_services(query_db, post_page_query, is_page=False)
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.data_scope import GetDataScope
|
from common.aspect.data_scope import DataScopeDependency
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.dept_vo import DeptModel
|
from module_admin.entity.vo.dept_vo import DeptModel
|
||||||
from module_admin.entity.vo.role_vo import AddRoleModel, DeleteRoleModel, RoleModel, RolePageQueryModel
|
from module_admin.entity.vo.role_vo import AddRoleModel, DeleteRoleModel, RoleModel, RolePageQueryModel
|
||||||
from module_admin.entity.vo.user_vo import CrudUserRoleModel, CurrentUserModel, UserRolePageQueryModel
|
from module_admin.entity.vo.user_vo import CrudUserRoleModel, CurrentUserModel, UserRolePageQueryModel
|
||||||
from module_admin.service.dept_service import DeptService
|
from module_admin.service.dept_service import DeptService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.role_service import RoleService
|
from module_admin.service.role_service import RoleService
|
||||||
from module_admin.service.user_service import UserService
|
from module_admin.service.user_service import UserService
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
@@ -22,15 +22,18 @@ from utils.log_util import logger
|
|||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
role_controller = APIRouter(prefix='/system/role', dependencies=[Depends(LoginService.get_current_user)])
|
role_controller = APIRouter(prefix='/system/role', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@role_controller.get('/deptTree/{role_id}', dependencies=[Depends(CheckUserInterfaceAuth('system:role:query'))])
|
@role_controller.get(
|
||||||
|
'/deptTree/{role_id}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:query')],
|
||||||
|
)
|
||||||
async def get_system_role_dept_tree(
|
async def get_system_role_dept_tree(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_id: Annotated[int, Path(description='角色ID')],
|
role_id: Annotated[int, Path(description='角色ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dept_query_result = await DeptService.get_dept_tree_services(query_db, DeptModel(), data_scope_sql)
|
dept_query_result = await DeptService.get_dept_tree_services(query_db, DeptModel(), data_scope_sql)
|
||||||
role_dept_query_result = await RoleService.get_role_dept_tree_services(query_db, role_id)
|
role_dept_query_result = await RoleService.get_role_dept_tree_services(query_db, role_id)
|
||||||
@@ -41,13 +44,15 @@ async def get_system_role_dept_tree(
|
|||||||
|
|
||||||
|
|
||||||
@role_controller.get(
|
@role_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:role:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:list')],
|
||||||
)
|
)
|
||||||
async def get_system_role_list(
|
async def get_system_role_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_page_query: Annotated[RolePageQueryModel, Query()],
|
role_page_query: Annotated[RolePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
role_page_query_result = await RoleService.get_role_list_services(
|
role_page_query_result = await RoleService.get_role_list_services(
|
||||||
query_db, role_page_query, data_scope_sql, is_page=True
|
query_db, role_page_query, data_scope_sql, is_page=True
|
||||||
@@ -57,14 +62,17 @@ async def get_system_role_list(
|
|||||||
return ResponseUtil.success(model_content=role_page_query_result)
|
return ResponseUtil.success(model_content=role_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:role:add'))])
|
@role_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_role')
|
@ValidateFields(validate_model='add_role')
|
||||||
@Log(title='角色管理', business_type=BusinessType.INSERT)
|
@Log(title='角色管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_role(
|
async def add_system_role(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_role: AddRoleModel,
|
add_role: AddRoleModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
add_role.create_by = current_user.user.user_name
|
add_role.create_by = current_user.user.user_name
|
||||||
add_role.create_time = datetime.now()
|
add_role.create_time = datetime.now()
|
||||||
@@ -76,15 +84,18 @@ async def add_system_role(
|
|||||||
return ResponseUtil.success(msg=add_role_result.message)
|
return ResponseUtil.success(msg=add_role_result.message)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_role')
|
@ValidateFields(validate_model='edit_role')
|
||||||
@Log(title='角色管理', business_type=BusinessType.UPDATE)
|
@Log(title='角色管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_role(
|
async def edit_system_role(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_role: AddRoleModel,
|
edit_role: AddRoleModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await RoleService.check_role_allowed_services(edit_role)
|
await RoleService.check_role_allowed_services(edit_role)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -97,14 +108,17 @@ async def edit_system_role(
|
|||||||
return ResponseUtil.success(msg=edit_role_result.message)
|
return ResponseUtil.success(msg=edit_role_result.message)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('/dataScope', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'/dataScope',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
||||||
async def edit_system_role_datascope(
|
async def edit_system_role_datascope(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_data_scope: AddRoleModel,
|
role_data_scope: AddRoleModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await RoleService.check_role_allowed_services(role_data_scope)
|
await RoleService.check_role_allowed_services(role_data_scope)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -123,14 +137,17 @@ async def edit_system_role_datascope(
|
|||||||
return ResponseUtil.success(msg=role_data_scope_result.message)
|
return ResponseUtil.success(msg=role_data_scope_result.message)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.delete('/{role_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:role:remove'))])
|
@role_controller.delete(
|
||||||
|
'/{role_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:remove')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.DELETE)
|
@Log(title='角色管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_role(
|
async def delete_system_role(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_ids: Annotated[str, Path(description='需要删除的角色ID')],
|
role_ids: Annotated[str, Path(description='需要删除的角色ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
role_id_list = role_ids.split(',') if role_ids else []
|
role_id_list = role_ids.split(',') if role_ids else []
|
||||||
if role_id_list:
|
if role_id_list:
|
||||||
@@ -146,14 +163,16 @@ async def delete_system_role(
|
|||||||
|
|
||||||
|
|
||||||
@role_controller.get(
|
@role_controller.get(
|
||||||
'/{role_id}', response_model=RoleModel, dependencies=[Depends(CheckUserInterfaceAuth('system:role:query'))]
|
'/{role_id}',
|
||||||
|
response_model=RoleModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_role(
|
async def query_detail_system_role(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_id: Annotated[int, Path(description='角色ID')],
|
role_id: Annotated[int, Path(description='角色ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await RoleService.check_role_data_scope_services(query_db, str(role_id), data_scope_sql)
|
await RoleService.check_role_data_scope_services(query_db, str(role_id), data_scope_sql)
|
||||||
@@ -163,13 +182,16 @@ async def query_detail_system_role(
|
|||||||
return ResponseUtil.success(data=role_detail_result.model_dump(by_alias=True))
|
return ResponseUtil.success(data=role_detail_result.model_dump(by_alias=True))
|
||||||
|
|
||||||
|
|
||||||
@role_controller.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('system:role:export'))])
|
@role_controller.post(
|
||||||
|
'/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:export')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.EXPORT)
|
@Log(title='角色管理', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_role_list(
|
async def export_system_role_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
role_page_query: Annotated[RolePageQueryModel, Form()],
|
role_page_query: Annotated[RolePageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
role_query_result = await RoleService.get_role_list_services(
|
role_query_result = await RoleService.get_role_list_services(
|
||||||
@@ -181,14 +203,17 @@ async def export_system_role_list(
|
|||||||
return ResponseUtil.streaming(data=bytes2file_response(role_export_result))
|
return ResponseUtil.streaming(data=bytes2file_response(role_export_result))
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('/changeStatus', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'/changeStatus',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.UPDATE)
|
@Log(title='角色管理', business_type=BusinessType.UPDATE)
|
||||||
async def reset_system_role_status(
|
async def reset_system_role_status(
|
||||||
request: Request,
|
request: Request,
|
||||||
change_role: AddRoleModel,
|
change_role: AddRoleModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await RoleService.check_role_allowed_services(change_role)
|
await RoleService.check_role_allowed_services(change_role)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -209,13 +234,13 @@ async def reset_system_role_status(
|
|||||||
@role_controller.get(
|
@role_controller.get(
|
||||||
'/authUser/allocatedList',
|
'/authUser/allocatedList',
|
||||||
response_model=PageResponseModel,
|
response_model=PageResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:role:list'))],
|
dependencies=[UserInterfaceAuthDependency('system:role:list')],
|
||||||
)
|
)
|
||||||
async def get_system_allocated_user_list(
|
async def get_system_allocated_user_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_role: Annotated[UserRolePageQueryModel, Query()],
|
user_role: Annotated[UserRolePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
role_user_allocated_page_query_result = await RoleService.get_role_user_allocated_list_services(
|
role_user_allocated_page_query_result = await RoleService.get_role_user_allocated_list_services(
|
||||||
query_db, user_role, data_scope_sql, is_page=True
|
query_db, user_role, data_scope_sql, is_page=True
|
||||||
@@ -228,13 +253,13 @@ async def get_system_allocated_user_list(
|
|||||||
@role_controller.get(
|
@role_controller.get(
|
||||||
'/authUser/unallocatedList',
|
'/authUser/unallocatedList',
|
||||||
response_model=PageResponseModel,
|
response_model=PageResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:role:list'))],
|
dependencies=[UserInterfaceAuthDependency('system:role:list')],
|
||||||
)
|
)
|
||||||
async def get_system_unallocated_user_list(
|
async def get_system_unallocated_user_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_role: Annotated[UserRolePageQueryModel, Query()],
|
user_role: Annotated[UserRolePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
role_user_unallocated_page_query_result = await RoleService.get_role_user_unallocated_list_services(
|
role_user_unallocated_page_query_result = await RoleService.get_role_user_unallocated_list_services(
|
||||||
query_db, user_role, data_scope_sql, is_page=True
|
query_db, user_role, data_scope_sql, is_page=True
|
||||||
@@ -244,14 +269,17 @@ async def get_system_unallocated_user_list(
|
|||||||
return ResponseUtil.success(model_content=role_user_unallocated_page_query_result)
|
return ResponseUtil.success(model_content=role_user_unallocated_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('/authUser/selectAll', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'/authUser/selectAll',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
||||||
async def add_system_role_user(
|
async def add_system_role_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_role_user: Annotated[CrudUserRoleModel, Query()],
|
add_role_user: Annotated[CrudUserRoleModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await RoleService.check_role_data_scope_services(query_db, str(add_role_user.role_id), data_scope_sql)
|
await RoleService.check_role_data_scope_services(query_db, str(add_role_user.role_id), data_scope_sql)
|
||||||
@@ -261,12 +289,15 @@ async def add_system_role_user(
|
|||||||
return ResponseUtil.success(msg=add_role_user_result.message)
|
return ResponseUtil.success(msg=add_role_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('/authUser/cancel', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'/authUser/cancel',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
||||||
async def cancel_system_role_user(
|
async def cancel_system_role_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
cancel_user_role: CrudUserRoleModel,
|
cancel_user_role: CrudUserRoleModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
cancel_user_role_result = await UserService.delete_user_role_services(query_db, cancel_user_role)
|
cancel_user_role_result = await UserService.delete_user_role_services(query_db, cancel_user_role)
|
||||||
logger.info(cancel_user_role_result.message)
|
logger.info(cancel_user_role_result.message)
|
||||||
@@ -274,12 +305,15 @@ async def cancel_system_role_user(
|
|||||||
return ResponseUtil.success(msg=cancel_user_role_result.message)
|
return ResponseUtil.success(msg=cancel_user_role_result.message)
|
||||||
|
|
||||||
|
|
||||||
@role_controller.put('/authUser/cancelAll', dependencies=[Depends(CheckUserInterfaceAuth('system:role:edit'))])
|
@role_controller.put(
|
||||||
|
'/authUser/cancelAll',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:role:edit')],
|
||||||
|
)
|
||||||
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
@Log(title='角色管理', business_type=BusinessType.GRANT)
|
||||||
async def batch_cancel_system_role_user(
|
async def batch_cancel_system_role_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
batch_cancel_user_role: Annotated[CrudUserRoleModel, Query()],
|
batch_cancel_user_role: Annotated[CrudUserRoleModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
batch_cancel_user_role_result = await UserService.delete_user_role_services(query_db, batch_cancel_user_role)
|
batch_cancel_user_role_result = await UserService.delete_user_role_services(query_db, batch_cancel_user_role)
|
||||||
logger.info(batch_cancel_user_role_result.message)
|
logger.info(batch_cancel_user_role_result.message)
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
from fastapi import APIRouter, Depends, Request, Response
|
from fastapi import APIRouter, Request, Response
|
||||||
|
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import PreAuthDependency
|
||||||
from module_admin.entity.vo.server_vo import ServerMonitorModel
|
from module_admin.entity.vo.server_vo import ServerMonitorModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.server_service import ServerService
|
from module_admin.service.server_service import ServerService
|
||||||
from utils.log_util import logger
|
from utils.log_util import logger
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
server_controller = APIRouter(prefix='/monitor/server', dependencies=[Depends(LoginService.get_current_user)])
|
server_controller = APIRouter(prefix='/monitor/server', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@server_controller.get(
|
@server_controller.get(
|
||||||
'', response_model=ServerMonitorModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:server:list'))]
|
'',
|
||||||
|
response_model=ServerMonitorModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('monitor:server:list')],
|
||||||
)
|
)
|
||||||
async def get_monitor_server_info(request: Request) -> Response:
|
async def get_monitor_server_info(request: Request) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
|
|||||||
@@ -3,16 +3,17 @@ from datetime import datetime
|
|||||||
from typing import Annotated, Literal, Optional, Union
|
from typing import Annotated, Literal, Optional, Union
|
||||||
|
|
||||||
import aiofiles
|
import aiofiles
|
||||||
from fastapi import APIRouter, Depends, File, Form, Path, Query, Request, Response, UploadFile
|
from fastapi import APIRouter, File, Form, Path, Query, Request, Response, UploadFile
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.data_scope import GetDataScope
|
from common.aspect.data_scope import DataScopeDependency
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.env import UploadConfig
|
from config.env import UploadConfig
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.dept_vo import DeptModel
|
from module_admin.entity.vo.dept_vo import DeptModel
|
||||||
from module_admin.entity.vo.user_vo import (
|
from module_admin.entity.vo.user_vo import (
|
||||||
AddUserModel,
|
AddUserModel,
|
||||||
@@ -31,7 +32,6 @@ from module_admin.entity.vo.user_vo import (
|
|||||||
UserRoleResponseModel,
|
UserRoleResponseModel,
|
||||||
)
|
)
|
||||||
from module_admin.service.dept_service import DeptService
|
from module_admin.service.dept_service import DeptService
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_admin.service.role_service import RoleService
|
from module_admin.service.role_service import RoleService
|
||||||
from module_admin.service.user_service import UserService
|
from module_admin.service.user_service import UserService
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
@@ -41,14 +41,17 @@ from utils.pwd_util import PwdUtil
|
|||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
from utils.upload_util import UploadUtil
|
from utils.upload_util import UploadUtil
|
||||||
|
|
||||||
user_controller = APIRouter(prefix='/system/user', dependencies=[Depends(LoginService.get_current_user)])
|
user_controller = APIRouter(prefix='/system/user', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@user_controller.get('/deptTree', dependencies=[Depends(CheckUserInterfaceAuth('system:user:list'))])
|
@user_controller.get(
|
||||||
|
'/deptTree',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:list')],
|
||||||
|
)
|
||||||
async def get_system_dept_tree(
|
async def get_system_dept_tree(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
dept_query_result = await DeptService.get_dept_tree_services(query_db, DeptModel(), data_scope_sql)
|
dept_query_result = await DeptService.get_dept_tree_services(query_db, DeptModel(), data_scope_sql)
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
@@ -57,13 +60,15 @@ async def get_system_dept_tree(
|
|||||||
|
|
||||||
|
|
||||||
@user_controller.get(
|
@user_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:user:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:list')],
|
||||||
)
|
)
|
||||||
async def get_system_user_list(
|
async def get_system_user_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_page_query: Annotated[UserPageQueryModel, Query()],
|
user_page_query: Annotated[UserPageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
user_page_query_result = await UserService.get_user_list_services(
|
user_page_query_result = await UserService.get_user_list_services(
|
||||||
@@ -74,16 +79,19 @@ async def get_system_user_list(
|
|||||||
return ResponseUtil.success(model_content=user_page_query_result)
|
return ResponseUtil.success(model_content=user_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:user:add'))])
|
@user_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:add')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='add_user')
|
@ValidateFields(validate_model='add_user')
|
||||||
@Log(title='用户管理', business_type=BusinessType.INSERT)
|
@Log(title='用户管理', business_type=BusinessType.INSERT)
|
||||||
async def add_system_user(
|
async def add_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_user: AddUserModel,
|
add_user: AddUserModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
dept_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
dept_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
role_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
role_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await DeptService.check_dept_data_scope_services(query_db, add_user.dept_id, dept_data_scope_sql)
|
await DeptService.check_dept_data_scope_services(query_db, add_user.dept_id, dept_data_scope_sql)
|
||||||
@@ -101,17 +109,20 @@ async def add_system_user(
|
|||||||
return ResponseUtil.success(msg=add_user_result.message)
|
return ResponseUtil.success(msg=add_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:user:edit'))])
|
@user_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_user')
|
@ValidateFields(validate_model='edit_user')
|
||||||
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
||||||
async def edit_system_user(
|
async def edit_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_user: EditUserModel,
|
edit_user: EditUserModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
user_data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
user_data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
dept_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
dept_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
role_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
role_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await UserService.check_user_allowed_services(edit_user)
|
await UserService.check_user_allowed_services(edit_user)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -128,14 +139,17 @@ async def edit_system_user(
|
|||||||
return ResponseUtil.success(msg=edit_user_result.message)
|
return ResponseUtil.success(msg=edit_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.delete('/{user_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:user:remove'))])
|
@user_controller.delete(
|
||||||
|
'/{user_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:remove')],
|
||||||
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.DELETE)
|
@Log(title='用户管理', business_type=BusinessType.DELETE)
|
||||||
async def delete_system_user(
|
async def delete_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_ids: Annotated[str, Path(description='需要删除的用户ID')],
|
user_ids: Annotated[str, Path(description='需要删除的用户ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
user_id_list = user_ids.split(',') if user_ids else []
|
user_id_list = user_ids.split(',') if user_ids else []
|
||||||
if user_id_list:
|
if user_id_list:
|
||||||
@@ -154,14 +168,17 @@ async def delete_system_user(
|
|||||||
return ResponseUtil.success(msg=delete_user_result.message)
|
return ResponseUtil.success(msg=delete_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.put('/resetPwd', dependencies=[Depends(CheckUserInterfaceAuth('system:user:resetPwd'))])
|
@user_controller.put(
|
||||||
|
'/resetPwd',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:resetPwd')],
|
||||||
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
||||||
async def reset_system_user_pwd(
|
async def reset_system_user_pwd(
|
||||||
request: Request,
|
request: Request,
|
||||||
reset_user: EditUserModel,
|
reset_user: EditUserModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await UserService.check_user_allowed_services(reset_user)
|
await UserService.check_user_allowed_services(reset_user)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -180,14 +197,17 @@ async def reset_system_user_pwd(
|
|||||||
return ResponseUtil.success(msg=edit_user_result.message)
|
return ResponseUtil.success(msg=edit_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.put('/changeStatus', dependencies=[Depends(CheckUserInterfaceAuth('system:user:edit'))])
|
@user_controller.put(
|
||||||
|
'/changeStatus',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:edit')],
|
||||||
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
@Log(title='用户管理', business_type=BusinessType.UPDATE)
|
||||||
async def change_system_user_status(
|
async def change_system_user_status(
|
||||||
request: Request,
|
request: Request,
|
||||||
change_user: EditUserModel,
|
change_user: EditUserModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
await UserService.check_user_allowed_services(change_user)
|
await UserService.check_user_allowed_services(change_user)
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
@@ -208,8 +228,8 @@ async def change_system_user_status(
|
|||||||
@user_controller.get('/profile', response_model=UserProfileModel)
|
@user_controller.get('/profile', response_model=UserProfileModel)
|
||||||
async def query_detail_system_user_profile(
|
async def query_detail_system_user_profile(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
profile_user_result = await UserService.user_profile_services(query_db, current_user.user.user_id)
|
profile_user_result = await UserService.user_profile_services(query_db, current_user.user.user_id)
|
||||||
logger.info(f'获取user_id为{current_user.user.user_id}的信息成功')
|
logger.info(f'获取user_id为{current_user.user.user_id}的信息成功')
|
||||||
@@ -218,16 +238,20 @@ async def query_detail_system_user_profile(
|
|||||||
|
|
||||||
|
|
||||||
@user_controller.get(
|
@user_controller.get(
|
||||||
'/{user_id}', response_model=UserDetailModel, dependencies=[Depends(CheckUserInterfaceAuth('system:user:query'))]
|
'/{user_id}',
|
||||||
|
response_model=UserDetailModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:query')],
|
||||||
)
|
)
|
||||||
@user_controller.get(
|
@user_controller.get(
|
||||||
'/', response_model=UserDetailModel, dependencies=[Depends(CheckUserInterfaceAuth('system:user:query'))]
|
'/',
|
||||||
|
response_model=UserDetailModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:query')],
|
||||||
)
|
)
|
||||||
async def query_detail_system_user(
|
async def query_detail_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
user_id: Optional[Union[int, Literal['']]] = '',
|
user_id: Optional[Union[int, Literal['']]] = '',
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if user_id and not current_user.user.admin:
|
if user_id and not current_user.user.admin:
|
||||||
@@ -243,8 +267,8 @@ async def query_detail_system_user(
|
|||||||
async def change_system_user_profile_avatar(
|
async def change_system_user_profile_avatar(
|
||||||
request: Request,
|
request: Request,
|
||||||
avatarfile: Annotated[bytes, File()],
|
avatarfile: Annotated[bytes, File()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if avatarfile:
|
if avatarfile:
|
||||||
relative_path = (
|
relative_path = (
|
||||||
@@ -278,8 +302,8 @@ async def change_system_user_profile_avatar(
|
|||||||
async def change_system_user_profile_info(
|
async def change_system_user_profile_info(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_info: UserInfoModel,
|
user_info: UserInfoModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_user = EditUserModel(
|
edit_user = EditUserModel(
|
||||||
**user_info.model_dump(exclude_unset=True, by_alias=True, exclude={'role_ids', 'post_ids'}),
|
**user_info.model_dump(exclude_unset=True, by_alias=True, exclude={'role_ids', 'post_ids'}),
|
||||||
@@ -302,8 +326,8 @@ async def change_system_user_profile_info(
|
|||||||
async def reset_system_user_password(
|
async def reset_system_user_password(
|
||||||
request: Request,
|
request: Request,
|
||||||
reset_password: ResetPasswordModel,
|
reset_password: ResetPasswordModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
reset_user = ResetUserModel(
|
reset_user = ResetUserModel(
|
||||||
userId=current_user.user.user_id,
|
userId=current_user.user.user_id,
|
||||||
@@ -319,16 +343,19 @@ async def reset_system_user_password(
|
|||||||
return ResponseUtil.success(msg=reset_user_result.message)
|
return ResponseUtil.success(msg=reset_user_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.post('/importData', dependencies=[Depends(CheckUserInterfaceAuth('system:user:import'))])
|
@user_controller.post(
|
||||||
|
'/importData',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:import')],
|
||||||
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.IMPORT)
|
@Log(title='用户管理', business_type=BusinessType.IMPORT)
|
||||||
async def batch_import_system_user(
|
async def batch_import_system_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
file: Annotated[UploadFile, File(...)],
|
file: Annotated[UploadFile, File(...)],
|
||||||
update_support: Annotated[bool, Query(alias='updateSupport')],
|
update_support: Annotated[bool, Query(alias='updateSupport')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
user_data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
user_data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
dept_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
dept_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
batch_import_result = await UserService.batch_import_user_services(
|
batch_import_result = await UserService.batch_import_user_services(
|
||||||
request, query_db, file, update_support, current_user, user_data_scope_sql, dept_data_scope_sql
|
request, query_db, file, update_support, current_user, user_data_scope_sql, dept_data_scope_sql
|
||||||
@@ -338,21 +365,29 @@ async def batch_import_system_user(
|
|||||||
return ResponseUtil.success(msg=batch_import_result.message)
|
return ResponseUtil.success(msg=batch_import_result.message)
|
||||||
|
|
||||||
|
|
||||||
@user_controller.post('/importTemplate', dependencies=[Depends(CheckUserInterfaceAuth('system:user:import'))])
|
@user_controller.post(
|
||||||
async def export_system_user_template(request: Request, query_db: Annotated[AsyncSession, Depends(get_db)]) -> Response:
|
'/importTemplate',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:import')],
|
||||||
|
)
|
||||||
|
async def export_system_user_template(
|
||||||
|
request: Request, query_db: Annotated[AsyncSession, DBSessionDependency()]
|
||||||
|
) -> Response:
|
||||||
user_import_template_result = await UserService.get_user_import_template_services()
|
user_import_template_result = await UserService.get_user_import_template_services()
|
||||||
logger.info('获取成功')
|
logger.info('获取成功')
|
||||||
|
|
||||||
return ResponseUtil.streaming(data=bytes2file_response(user_import_template_result))
|
return ResponseUtil.streaming(data=bytes2file_response(user_import_template_result))
|
||||||
|
|
||||||
|
|
||||||
@user_controller.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('system:user:export'))])
|
@user_controller.post(
|
||||||
|
'/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('system:user:export')],
|
||||||
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.EXPORT)
|
@Log(title='用户管理', business_type=BusinessType.EXPORT)
|
||||||
async def export_system_user_list(
|
async def export_system_user_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_page_query: Annotated[UserPageQueryModel, Form()],
|
user_page_query: Annotated[UserPageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
user_query_result = await UserService.get_user_list_services(
|
user_query_result = await UserService.get_user_list_services(
|
||||||
@@ -367,12 +402,12 @@ async def export_system_user_list(
|
|||||||
@user_controller.get(
|
@user_controller.get(
|
||||||
'/authRole/{user_id}',
|
'/authRole/{user_id}',
|
||||||
response_model=UserRoleResponseModel,
|
response_model=UserRoleResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:user:query'))],
|
dependencies=[UserInterfaceAuthDependency('system:user:query')],
|
||||||
)
|
)
|
||||||
async def get_system_allocated_role_list(
|
async def get_system_allocated_role_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_id: Annotated[int, Path(description='用户ID')],
|
user_id: Annotated[int, Path(description='用户ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
user_role_query = UserRoleQueryModel(userId=user_id)
|
user_role_query = UserRoleQueryModel(userId=user_id)
|
||||||
user_role_allocated_query_result = await UserService.get_user_role_allocated_list_services(
|
user_role_allocated_query_result = await UserService.get_user_role_allocated_list_services(
|
||||||
@@ -386,17 +421,17 @@ async def get_system_allocated_role_list(
|
|||||||
@user_controller.put(
|
@user_controller.put(
|
||||||
'/authRole',
|
'/authRole',
|
||||||
response_model=UserRoleResponseModel,
|
response_model=UserRoleResponseModel,
|
||||||
dependencies=[Depends(CheckUserInterfaceAuth('system:user:edit'))],
|
dependencies=[UserInterfaceAuthDependency('system:user:edit')],
|
||||||
)
|
)
|
||||||
@Log(title='用户管理', business_type=BusinessType.GRANT)
|
@Log(title='用户管理', business_type=BusinessType.GRANT)
|
||||||
async def update_system_role_user(
|
async def update_system_role_user(
|
||||||
request: Request,
|
request: Request,
|
||||||
user_id: Annotated[int, Query(alias='userId')],
|
user_id: Annotated[int, Query(alias='userId')],
|
||||||
role_ids: Annotated[str, Query(alias='roleIds')],
|
role_ids: Annotated[str, Query(alias='roleIds')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
user_data_scope_sql: Annotated[str, Depends(GetDataScope('SysUser'))],
|
user_data_scope_sql: Annotated[str, DataScopeDependency('SysUser')],
|
||||||
role_data_scope_sql: Annotated[str, Depends(GetDataScope('SysDept'))],
|
role_data_scope_sql: Annotated[str, DataScopeDependency('SysDept')],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not current_user.user.admin:
|
if not current_user.user.admin:
|
||||||
await UserService.check_user_data_scope_services(query_db, user_id, user_data_scope_sql)
|
await UserService.check_user_data_scope_services(query_db, user_id, user_data_scope_sql)
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Path, Query, Request, Response
|
from fastapi import APIRouter, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckRoleInterfaceAuth, CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import RoleInterfaceAuthDependency, UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.env import GenConfig
|
from config.env import GenConfig
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from module_generator.entity.vo.gen_vo import DeleteGenTableModel, EditGenTableModel, GenTablePageQueryModel
|
from module_generator.entity.vo.gen_vo import DeleteGenTableModel, EditGenTableModel, GenTablePageQueryModel
|
||||||
from module_generator.service.gen_service import GenTableColumnService, GenTableService
|
from module_generator.service.gen_service import GenTableColumnService, GenTableService
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
@@ -19,16 +19,18 @@ from utils.log_util import logger
|
|||||||
from utils.page_util import PageResponseModel
|
from utils.page_util import PageResponseModel
|
||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
gen_controller = APIRouter(prefix='/tool/gen', dependencies=[Depends(LoginService.get_current_user)])
|
gen_controller = APIRouter(prefix='/tool/gen', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get(
|
@gen_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:list')],
|
||||||
)
|
)
|
||||||
async def get_gen_table_list(
|
async def get_gen_table_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
gen_page_query: Annotated[GenTablePageQueryModel, Query()],
|
gen_page_query: Annotated[GenTablePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
gen_page_query_result = await GenTableService.get_gen_table_list_services(query_db, gen_page_query, is_page=True)
|
gen_page_query_result = await GenTableService.get_gen_table_list_services(query_db, gen_page_query, is_page=True)
|
||||||
@@ -38,12 +40,14 @@ async def get_gen_table_list(
|
|||||||
|
|
||||||
|
|
||||||
@gen_controller.get(
|
@gen_controller.get(
|
||||||
'/db/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:list'))]
|
'/db/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:list')],
|
||||||
)
|
)
|
||||||
async def get_gen_db_table_list(
|
async def get_gen_db_table_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
gen_page_query: Annotated[GenTablePageQueryModel, Query()],
|
gen_page_query: Annotated[GenTablePageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
gen_page_query_result = await GenTableService.get_gen_db_table_list_services(query_db, gen_page_query, is_page=True)
|
gen_page_query_result = await GenTableService.get_gen_db_table_list_services(query_db, gen_page_query, is_page=True)
|
||||||
@@ -52,13 +56,16 @@ async def get_gen_db_table_list(
|
|||||||
return ResponseUtil.success(model_content=gen_page_query_result)
|
return ResponseUtil.success(model_content=gen_page_query_result)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.post('/importTable', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:import'))])
|
@gen_controller.post(
|
||||||
|
'/importTable',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:import')],
|
||||||
|
)
|
||||||
@Log(title='代码生成', business_type=BusinessType.IMPORT)
|
@Log(title='代码生成', business_type=BusinessType.IMPORT)
|
||||||
async def import_gen_table(
|
async def import_gen_table(
|
||||||
request: Request,
|
request: Request,
|
||||||
tables: Annotated[str, Query()],
|
tables: Annotated[str, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
table_names = tables.split(',') if tables else []
|
table_names = tables.split(',') if tables else []
|
||||||
add_gen_table_list = await GenTableService.get_gen_db_table_list_by_name_services(query_db, table_names)
|
add_gen_table_list = await GenTableService.get_gen_db_table_list_by_name_services(query_db, table_names)
|
||||||
@@ -68,14 +75,17 @@ async def import_gen_table(
|
|||||||
return ResponseUtil.success(msg=add_gen_table_result.message)
|
return ResponseUtil.success(msg=add_gen_table_result.message)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:edit'))])
|
@gen_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:edit')],
|
||||||
|
)
|
||||||
@ValidateFields(validate_model='edit_gen_table')
|
@ValidateFields(validate_model='edit_gen_table')
|
||||||
@Log(title='代码生成', business_type=BusinessType.UPDATE)
|
@Log(title='代码生成', business_type=BusinessType.UPDATE)
|
||||||
async def edit_gen_table(
|
async def edit_gen_table(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_gen_table: EditGenTableModel,
|
edit_gen_table: EditGenTableModel,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
edit_gen_table.update_by = current_user.user.user_name
|
edit_gen_table.update_by = current_user.user.user_name
|
||||||
edit_gen_table.update_time = datetime.now()
|
edit_gen_table.update_time = datetime.now()
|
||||||
@@ -86,12 +96,15 @@ async def edit_gen_table(
|
|||||||
return ResponseUtil.success(msg=edit_gen_result.message)
|
return ResponseUtil.success(msg=edit_gen_result.message)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.delete('/{table_ids}', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:remove'))])
|
@gen_controller.delete(
|
||||||
|
'/{table_ids}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:remove')],
|
||||||
|
)
|
||||||
@Log(title='代码生成', business_type=BusinessType.DELETE)
|
@Log(title='代码生成', business_type=BusinessType.DELETE)
|
||||||
async def delete_gen_table(
|
async def delete_gen_table(
|
||||||
request: Request,
|
request: Request,
|
||||||
table_ids: Annotated[str, Path(description='需要删除的代码生成业务表ID')],
|
table_ids: Annotated[str, Path(description='需要删除的代码生成业务表ID')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_gen_table = DeleteGenTableModel(tableIds=table_ids)
|
delete_gen_table = DeleteGenTableModel(tableIds=table_ids)
|
||||||
delete_gen_table_result = await GenTableService.delete_gen_table_services(query_db, delete_gen_table)
|
delete_gen_table_result = await GenTableService.delete_gen_table_services(query_db, delete_gen_table)
|
||||||
@@ -100,13 +113,16 @@ async def delete_gen_table(
|
|||||||
return ResponseUtil.success(msg=delete_gen_table_result.message)
|
return ResponseUtil.success(msg=delete_gen_table_result.message)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.post('/createTable', dependencies=[Depends(CheckRoleInterfaceAuth('admin'))])
|
@gen_controller.post(
|
||||||
|
'/createTable',
|
||||||
|
dependencies=[RoleInterfaceAuthDependency('admin')],
|
||||||
|
)
|
||||||
@Log(title='创建表', business_type=BusinessType.OTHER)
|
@Log(title='创建表', business_type=BusinessType.OTHER)
|
||||||
async def create_table(
|
async def create_table(
|
||||||
request: Request,
|
request: Request,
|
||||||
sql: Annotated[str, Query()],
|
sql: Annotated[str, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
create_table_result = await GenTableService.create_table_services(query_db, sql, current_user)
|
create_table_result = await GenTableService.create_table_services(query_db, sql, current_user)
|
||||||
logger.info(create_table_result.message)
|
logger.info(create_table_result.message)
|
||||||
@@ -114,12 +130,15 @@ async def create_table(
|
|||||||
return ResponseUtil.success(msg=create_table_result.message)
|
return ResponseUtil.success(msg=create_table_result.message)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get('/batchGenCode', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:code'))])
|
@gen_controller.get(
|
||||||
|
'/batchGenCode',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:code')],
|
||||||
|
)
|
||||||
@Log(title='代码生成', business_type=BusinessType.GENCODE)
|
@Log(title='代码生成', business_type=BusinessType.GENCODE)
|
||||||
async def batch_gen_code(
|
async def batch_gen_code(
|
||||||
request: Request,
|
request: Request,
|
||||||
tables: Annotated[str, Query()],
|
tables: Annotated[str, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
table_names = tables.split(',') if tables else []
|
table_names = tables.split(',') if tables else []
|
||||||
batch_gen_code_result = await GenTableService.batch_gen_code_services(query_db, table_names)
|
batch_gen_code_result = await GenTableService.batch_gen_code_services(query_db, table_names)
|
||||||
@@ -128,12 +147,15 @@ async def batch_gen_code(
|
|||||||
return ResponseUtil.streaming(data=bytes2file_response(batch_gen_code_result))
|
return ResponseUtil.streaming(data=bytes2file_response(batch_gen_code_result))
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get('/genCode/{table_name}', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:code'))])
|
@gen_controller.get(
|
||||||
|
'/genCode/{table_name}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:code')],
|
||||||
|
)
|
||||||
@Log(title='代码生成', business_type=BusinessType.GENCODE)
|
@Log(title='代码生成', business_type=BusinessType.GENCODE)
|
||||||
async def gen_code_local(
|
async def gen_code_local(
|
||||||
request: Request,
|
request: Request,
|
||||||
table_name: Annotated[str, Path(description='表名称')],
|
table_name: Annotated[str, Path(description='表名称')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
if not GenConfig.allow_overwrite:
|
if not GenConfig.allow_overwrite:
|
||||||
logger.error('【系统预设】不允许生成文件覆盖到本地')
|
logger.error('【系统预设】不允许生成文件覆盖到本地')
|
||||||
@@ -144,11 +166,14 @@ async def gen_code_local(
|
|||||||
return ResponseUtil.success(msg=gen_code_local_result.message)
|
return ResponseUtil.success(msg=gen_code_local_result.message)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get('/{table_id}', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:query'))])
|
@gen_controller.get(
|
||||||
|
'/{table_id}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:query')],
|
||||||
|
)
|
||||||
async def query_detail_gen_table(
|
async def query_detail_gen_table(
|
||||||
request: Request,
|
request: Request,
|
||||||
table_id: Annotated[int, Path(description='表编号')],
|
table_id: Annotated[int, Path(description='表编号')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
gen_table = await GenTableService.get_gen_table_by_id_services(query_db, table_id)
|
gen_table = await GenTableService.get_gen_table_by_id_services(query_db, table_id)
|
||||||
gen_tables = await GenTableService.get_gen_table_all_services(query_db)
|
gen_tables = await GenTableService.get_gen_table_all_services(query_db)
|
||||||
@@ -159,11 +184,14 @@ async def query_detail_gen_table(
|
|||||||
return ResponseUtil.success(data=gen_table_detail_result)
|
return ResponseUtil.success(data=gen_table_detail_result)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get('/preview/{table_id}', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:preview'))])
|
@gen_controller.get(
|
||||||
|
'/preview/{table_id}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:preview')],
|
||||||
|
)
|
||||||
async def preview_code(
|
async def preview_code(
|
||||||
request: Request,
|
request: Request,
|
||||||
table_id: Annotated[int, Path(description='表编号')],
|
table_id: Annotated[int, Path(description='表编号')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
preview_code_result = await GenTableService.preview_code_services(query_db, table_id)
|
preview_code_result = await GenTableService.preview_code_services(query_db, table_id)
|
||||||
logger.info('获取预览代码成功')
|
logger.info('获取预览代码成功')
|
||||||
@@ -171,12 +199,15 @@ async def preview_code(
|
|||||||
return ResponseUtil.success(data=preview_code_result)
|
return ResponseUtil.success(data=preview_code_result)
|
||||||
|
|
||||||
|
|
||||||
@gen_controller.get('/synchDb/{table_name}', dependencies=[Depends(CheckUserInterfaceAuth('tool:gen:edit'))])
|
@gen_controller.get(
|
||||||
|
'/synchDb/{table_name}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('tool:gen:edit')],
|
||||||
|
)
|
||||||
@Log(title='代码生成', business_type=BusinessType.UPDATE)
|
@Log(title='代码生成', business_type=BusinessType.UPDATE)
|
||||||
async def sync_db(
|
async def sync_db(
|
||||||
request: Request,
|
request: Request,
|
||||||
table_name: Annotated[str, Path(description='表名称')],
|
table_name: Annotated[str, Path(description='表名称')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
sync_db_result = await GenTableService.sync_db_services(query_db, table_name)
|
sync_db_result = await GenTableService.sync_db_services(query_db, table_name)
|
||||||
logger.info(sync_db_result.message)
|
logger.info(sync_db_result.message)
|
||||||
|
|||||||
@@ -13,16 +13,16 @@ from datetime import datetime
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Form, Path, Query, Request, Response
|
from fastapi import APIRouter, Form, Path, Query, Request, Response
|
||||||
from pydantic_validation_decorator import ValidateFields
|
from pydantic_validation_decorator import ValidateFields
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from common.annotation.log_annotation import Log
|
from common.annotation.log_annotation import Log
|
||||||
from common.aspect.interface_auth import CheckUserInterfaceAuth
|
from common.aspect.db_seesion import DBSessionDependency
|
||||||
|
from common.aspect.interface_auth import UserInterfaceAuthDependency
|
||||||
|
from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency
|
||||||
from common.enums import BusinessType
|
from common.enums import BusinessType
|
||||||
from config.get_db import get_db
|
|
||||||
from module_admin.entity.vo.user_vo import CurrentUserModel
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||||||
from module_admin.service.login_service import LoginService
|
|
||||||
from {{ packageName }}.service.{{ businessName }}_service import {{ BusinessName }}Service
|
from {{ packageName }}.service.{{ businessName }}_service import {{ BusinessName }}Service
|
||||||
from {{ packageName }}.entity.vo.{{ businessName }}_vo import Delete{{ BusinessName }}Model, {{ BusinessName }}Model, {{ BusinessName }}PageQueryModel
|
from {{ packageName }}.entity.vo.{{ businessName }}_vo import Delete{{ BusinessName }}Model, {{ BusinessName }}Model, {{ BusinessName }}PageQueryModel
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
@@ -31,16 +31,18 @@ from utils.page_util import PageResponseModel
|
|||||||
from utils.response_util import ResponseUtil
|
from utils.response_util import ResponseUtil
|
||||||
|
|
||||||
|
|
||||||
{{ businessName }}_controller = APIRouter(prefix='/{{ moduleName }}/{{ businessName }}', dependencies=[Depends(LoginService.get_current_user)])
|
{{ businessName }}_controller = APIRouter(prefix='/{{ moduleName }}/{{ businessName }}', dependencies=[PreAuthDependency()])
|
||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.get(
|
@{{ businessName }}_controller.get(
|
||||||
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:list'))]
|
'/list',
|
||||||
|
response_model=PageResponseModel,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:list')],
|
||||||
)
|
)
|
||||||
async def get_{{ moduleName }}_{{ businessName }}_list(
|
async def get_{{ moduleName }}_{{ businessName }}_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
{% if table.crud or table.sub %}{{ businessName }}_page_query{% elif table.tree %}{{ businessName }}_query{% endif %}: Annotated[{{ BusinessName }}PageQueryModel, Query()],
|
{% if table.crud or table.sub %}{{ businessName }}_page_query{% elif table.tree %}{{ businessName }}_query{% endif %}: Annotated[{{ BusinessName }}PageQueryModel, Query()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
{% if table.crud or table.sub %}
|
{% if table.crud or table.sub %}
|
||||||
# 获取分页数据
|
# 获取分页数据
|
||||||
@@ -56,14 +58,16 @@ async def get_{{ moduleName }}_{{ businessName }}_list(
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.post('', dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:add'))])
|
@{{ businessName }}_controller.post(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:add')]),
|
||||||
@ValidateFields(validate_model='add_{{ businessName }}')
|
@ValidateFields(validate_model='add_{{ businessName }}')
|
||||||
@Log(title='{{ functionName }}', business_type=BusinessType.INSERT)
|
@Log(title='{{ functionName }}', business_type=BusinessType.INSERT)
|
||||||
async def add_{{ moduleName }}_{{ businessName }}(
|
async def add_{{ moduleName }}_{{ businessName }}(
|
||||||
request: Request,
|
request: Request,
|
||||||
add_{{ businessName }}: {{ BusinessName }}Model,
|
add_{{ businessName }}: {{ BusinessName }}Model,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
{% for column in columns %}
|
{% for column in columns %}
|
||||||
{% if column.python_field == "createBy" %}
|
{% if column.python_field == "createBy" %}
|
||||||
@@ -82,14 +86,16 @@ async def add_{{ moduleName }}_{{ businessName }}(
|
|||||||
return ResponseUtil.success(msg=add_{{ businessName }}_result.message)
|
return ResponseUtil.success(msg=add_{{ businessName }}_result.message)
|
||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.put('', dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:edit'))])
|
@{{ businessName }}_controller.put(
|
||||||
|
'',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:edit')]),
|
||||||
@ValidateFields(validate_model='edit_{{ businessName }}')
|
@ValidateFields(validate_model='edit_{{ businessName }}')
|
||||||
@Log(title='{{ functionName }}', business_type=BusinessType.UPDATE)
|
@Log(title='{{ functionName }}', business_type=BusinessType.UPDATE)
|
||||||
async def edit_{{ moduleName }}_{{ businessName }}(
|
async def edit_{{ moduleName }}_{{ businessName }}(
|
||||||
request: Request,
|
request: Request,
|
||||||
edit_{{ businessName }}: {{ BusinessName }}Model,
|
edit_{{ businessName }}: {{ BusinessName }}Model,
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
current_user: Annotated[CurrentUserModel, Depends(LoginService.get_current_user)],
|
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
{% for column in columns %}
|
{% for column in columns %}
|
||||||
{% if column.python_field == "updateBy" %}
|
{% if column.python_field == "updateBy" %}
|
||||||
@@ -104,12 +110,14 @@ async def edit_{{ moduleName }}_{{ businessName }}(
|
|||||||
return ResponseUtil.success(msg=edit_{{ businessName }}_result.message)
|
return ResponseUtil.success(msg=edit_{{ businessName }}_result.message)
|
||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.delete('/{% raw %}{{% endraw %}{{ pk_field }}s{% raw %}}{% endraw %}', dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:remove'))])
|
@{{ businessName }}_controller.delete(
|
||||||
|
'/{% raw %}{{% endraw %}{{ pk_field }}s{% raw %}}{% endraw %}',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:remove')]),
|
||||||
@Log(title='{{ functionName }}', business_type=BusinessType.DELETE)
|
@Log(title='{{ functionName }}', business_type=BusinessType.DELETE)
|
||||||
async def delete_{{ moduleName }}_{{ businessName }}(
|
async def delete_{{ moduleName }}_{{ businessName }}(
|
||||||
request: Request,
|
request: Request,
|
||||||
{{ pk_field }}s: Annotated[str, Path(description='需要删除的{{ pk_field_comment }}')],
|
{{ pk_field }}s: Annotated[str, Path(description='需要删除的{{ pk_field_comment }}')],
|
||||||
Annotated[AsyncSession, Depends(get_db)],
|
Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
delete_{{ businessName }} = Delete{{ BusinessName }}Model({{ pkField }}s={{ pk_field }}s)
|
delete_{{ businessName }} = Delete{{ BusinessName }}Model({{ pkField }}s={{ pk_field }}s)
|
||||||
delete_{{ businessName }}_result = await {{ BusinessName }}Service.delete_{{ businessName }}_services(query_db, delete_{{ businessName }})
|
delete_{{ businessName }}_result = await {{ BusinessName }}Service.delete_{{ businessName }}_services(query_db, delete_{{ businessName }})
|
||||||
@@ -119,12 +127,14 @@ async def delete_{{ moduleName }}_{{ businessName }}(
|
|||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.get(
|
@{{ businessName }}_controller.get(
|
||||||
'/{% raw %}{{% endraw %}{{ pk_field }}{% raw %}}{% endraw %}', response_model={{ BusinessName }}Model, dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:query'))]
|
'/{% raw %}{{% endraw %}{{ pk_field }}{% raw %}}{% endraw %}',
|
||||||
|
response_model={{ BusinessName }}Model,
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:query')]
|
||||||
)
|
)
|
||||||
async def query_detail_{{ moduleName }}_{{ businessName }}(
|
async def query_detail_{{ moduleName }}_{{ businessName }}(
|
||||||
request: Request,
|
request: Request,
|
||||||
{{ pk_field }}: Annotated[{{ pkColumn.python_type }}, Path(description='{{ pk_field_comment }}')],
|
{{ pk_field }}: Annotated[{{ pkColumn.python_type }}, Path(description='{{ pk_field_comment }}')],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
{{ businessName }}_detail_result = await {{ BusinessName }}Service.{{ businessName }}_detail_services(query_db, {{ pk_field }})
|
{{ businessName }}_detail_result = await {{ BusinessName }}Service.{{ businessName }}_detail_services(query_db, {{ pk_field }})
|
||||||
logger.info(f'获取{{ pk_field }}为{% raw %}{{% endraw %}{{ pk_field }}{% raw %}}{% endraw %}的信息成功')
|
logger.info(f'获取{{ pk_field }}为{% raw %}{{% endraw %}{{ pk_field }}{% raw %}}{% endraw %}的信息成功')
|
||||||
@@ -132,12 +142,14 @@ async def query_detail_{{ moduleName }}_{{ businessName }}(
|
|||||||
return ResponseUtil.success(data={{ businessName }}_detail_result)
|
return ResponseUtil.success(data={{ businessName }}_detail_result)
|
||||||
|
|
||||||
|
|
||||||
@{{ businessName }}_controller.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('{{ permissionPrefix }}:export'))])
|
@{{ businessName }}_controller.post(
|
||||||
|
'/export',
|
||||||
|
dependencies=[UserInterfaceAuthDependency('{{ permissionPrefix }}:export')])
|
||||||
@Log(title='{{ functionName }}', business_type=BusinessType.EXPORT)
|
@Log(title='{{ functionName }}', business_type=BusinessType.EXPORT)
|
||||||
async def export_{{ moduleName }}_{{ businessName }}_list(
|
async def export_{{ moduleName }}_{{ businessName }}_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
{{ businessName }}_page_query: Annotated[{{ BusinessName }}PageQueryModel, Form()],
|
{{ businessName }}_page_query: Annotated[{{ BusinessName }}PageQueryModel, Form()],
|
||||||
query_db: Annotated[AsyncSession, Depends(get_db)],
|
query_db: Annotated[AsyncSession, DBSessionDependency()],
|
||||||
) -> Response:
|
) -> Response:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
{{ businessName }}_query_result = await {{ BusinessName }}Service.get_{{ businessName }}_list_services(query_db, {{ businessName }}_page_query, is_page=False)
|
{{ businessName }}_query_result = await {{ BusinessName }}Service.get_{{ businessName }}_list_services(query_db, {{ businessName }}_page_query, is_page=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user