You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
9.2 KiB

from datetime import datetime
from fastapi import APIRouter, Depends, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
from config.get_db import get_db
from module_admin.entity.vo.user_vo import CurrentUserModel
from module_admin.annotation.log_annotation import Log
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.entity.vo.metasecurity_vo import MetaSecurityColModel, MetaSecurityRowModel, MetaSecurityColPageQueryModel, MetaSecurityRowPageQueryModel, DeleteMetaSecurityModel
from module_admin.service.metasecurity_service import MetaSecurityService
from module_admin.service.login_service import LoginService
from utils.common_util import bytes2file_response
from utils.log_util import logger
from utils.page_util import PageResponseModel
from utils.response_util import ResponseUtil
import uuid
metaSecurityController = APIRouter(prefix='/meta/metaSecurity', dependencies=[Depends(LoginService.get_current_user)])
# MetaSecurity Column相关API
@metaSecurityController.get(
'/col/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:list'))]
)
async def get_meta_security_col_list(
request: Request,
col_page_query: MetaSecurityColPageQueryModel = Depends(MetaSecurityColPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
col_page_query_result = await MetaSecurityService.get_meta_security_col_list_services(query_db, col_page_query, is_page=True)
logger.info('获取列配置列表成功')
return ResponseUtil.success(model_content=col_page_query_result)
@metaSecurityController.get('/row/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:list'))]
)
async def get_meta_security_row_list(
request: Request,
row_page_query: MetaSecurityRowPageQueryModel = Depends(MetaSecurityRowPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
row_page_query_result = await MetaSecurityService.get_meta_security_row_list_services(query_db, row_page_query, is_page=True)
logger.info('获取行配置列表成功')
return ResponseUtil.success(model_content=row_page_query_result)
@metaSecurityController.get(
'/row/{row_id}', response_model=MetaSecurityRowModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:query'))]
)
async def query_detail_row(request: Request, row_id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await MetaSecurityService.row_detail_services(query_db, row_id)
logger.info(f'获取config_id为{row_id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@metaSecurityController.get(
'/col/{col_id}', response_model=MetaSecurityColModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:query'))]
)
async def query_detail_col(request: Request, col_id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await MetaSecurityService.col_detail_services(query_db, col_id)
logger.info(f'获取config_id为{col_id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@metaSecurityController.post('/col', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:add'))])
@ValidateFields(validate_model='add_meta_security_col')
@Log(title='列配置管理', business_type=BusinessType.INSERT)
async def add_meta_security_col(
request: Request,
add_meta_security_col: MetaSecurityColModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
add_meta_security_col.create_by = current_user.user.user_name
add_meta_security_col.create_time = datetime.now()
add_meta_security_col.update_by = current_user.user.user_name
add_meta_security_col.update_time = datetime.now()
add_meta_security_col_result = await MetaSecurityService.add_meta_security_col_services(request, query_db, add_meta_security_col)
logger.info(add_meta_security_col_result.message)
return ResponseUtil.success(msg=add_meta_security_col_result.message)
@metaSecurityController.put('/col', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:edit'))])
@ValidateFields(validate_model='edit_meta_security_col')
@Log(title='列配置管理', business_type=BusinessType.UPDATE)
async def edit_meta_security_col(
request: Request,
edit_meta_security_col: MetaSecurityColModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
edit_meta_security_col.update_by = current_user.user.user_name
edit_meta_security_col.update_time = datetime.now()
edit_meta_security_col_result = await MetaSecurityService.edit_meta_security_col_services(request, query_db, edit_meta_security_col)
logger.info(edit_meta_security_col_result.message)
return ResponseUtil.success(msg=edit_meta_security_col_result.message)
@metaSecurityController.delete('/col/{col_ids}', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:remove'))])
@Log(title='列配置管理', business_type=BusinessType.DELETE)
async def delete_meta_security_col(
request: Request,
col_ids: str,
query_db: AsyncSession = Depends(get_db),
):
delete_meta_security_col = DeleteMetaSecurityModel(metasecurityIds =col_ids)
delete_meta_security_col_result = await MetaSecurityService.delete_meta_security_col_services(request, query_db, delete_meta_security_col)
logger.info(delete_meta_security_col_result.message)
return ResponseUtil.success(msg=delete_meta_security_col_result.message)
# @metaSecurityController.get('/col/{col_id}', response_model=MetaSecurityColModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityCol:query'))])
# async def query_meta_security_col_detail(
# request: Request,
# col_id: str,
# query_db: AsyncSession = Depends(get_db),
# ):
# col_detail_result = await MetaSecurityService.get_meta_security_col_by_id_services(query_db, col_id)
# logger.info(f'获取col_id为{col_id}的列配置信息成功')
# return ResponseUtil.success(data=col_detail_result)
# MetaSecurity Row相关API
@metaSecurityController.post('/row', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:add'))])
@ValidateFields(validate_model='add_meta_security_row')
@Log(title='行配置管理', business_type=BusinessType.INSERT)
async def add_meta_security_row(
request: Request,
add_meta_security_row: MetaSecurityRowModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
add_meta_security_row.create_by = current_user.user.user_name
add_meta_security_row.create_time = datetime.now()
add_meta_security_row.update_by = current_user.user.user_name
add_meta_security_row.update_time = datetime.now()
add_meta_security_row_result = await MetaSecurityService.add_meta_security_row_services(request, query_db, add_meta_security_row)
logger.info(add_meta_security_row_result.message)
return ResponseUtil.success(msg=add_meta_security_row_result.message)
@metaSecurityController.put('/row', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:edit'))])
@ValidateFields(validate_model='edit_meta_security_row')
@Log(title='行配置管理', business_type=BusinessType.UPDATE)
async def edit_meta_security_row(
request: Request,
edit_meta_security_row: MetaSecurityRowModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
edit_meta_security_row.update_by = current_user.user.user_name
edit_meta_security_row.update_time = datetime.now()
edit_meta_security_row_result = await MetaSecurityService.edit_meta_security_row_services(request, query_db, edit_meta_security_row)
logger.info(edit_meta_security_row_result.message)
return ResponseUtil.success(msg=edit_meta_security_row_result.message)
@metaSecurityController.delete('/row/{row_ids}', dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:remove'))])
@Log(title='行配置管理', business_type=BusinessType.DELETE)
async def delete_meta_security_row(
request: Request,
row_ids: str,
query_db: AsyncSession = Depends(get_db),
):
delete_meta_security_row = DeleteMetaSecurityModel(metasecurityIds=row_ids)
delete_meta_security_row_result = await MetaSecurityService.delete_meta_security_row_services(request, query_db, delete_meta_security_row)
logger.info(delete_meta_security_row_result.message)
return ResponseUtil.success(msg=delete_meta_security_row_result.message)
@metaSecurityController.get('/row/{row_id}', response_model=MetaSecurityRowModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metaSecurityRow:query'))])
async def query_meta_security_row_detail(
request: Request,
row_id: int,
query_db: AsyncSession = Depends(get_db),
):
row_detail_result = await MetaSecurityService.get_meta_security_row_by_id_services(query_db, row_id)
logger.info(f'获取row_id为{row_id}的行配置信息成功')
return ResponseUtil.success(data=row_detail_result)