Browse Source

style: 使用ruff格式化岗位管理模块,优化导入

master
insistence 7 months ago
parent
commit
ca86c5ffb7
  1. 64
      ruoyi-fastapi-backend/module_admin/controller/post_controler.py
  2. 66
      ruoyi-fastapi-backend/module_admin/dao/post_dao.py
  3. 5
      ruoyi-fastapi-backend/module_admin/entity/do/post_do.py
  4. 10
      ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py
  5. 38
      ruoyi-fastapi-backend/module_admin/service/post_service.py

64
ruoyi-fastapi-backend/module_admin/controller/post_controler.py

@ -1,24 +1,32 @@
from fastapi import APIRouter, Request from datetime import datetime
from fastapi import Depends from fastapi import APIRouter, Depends, Request
from pydantic_validation_decorator import ValidateFields 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 config.get_db import get_db
from module_admin.service.login_service import LoginService, CurrentUserModel
from module_admin.service.post_service import *
from module_admin.entity.vo.post_vo import *
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.annotation.log_annotation import log_decorator from module_admin.annotation.log_annotation import log_decorator
from config.enums import BusinessType from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from utils.response_util import * from module_admin.service.login_service import LoginService
from utils.log_util import * from module_admin.service.post_service import PostService
from utils.page_util import * from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
from module_admin.entity.vo.user_vo import CurrentUserModel
from utils.common_util import bytes2file_response 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
postController = APIRouter(prefix='/system/post', dependencies=[Depends(LoginService.get_current_user)]) postController = APIRouter(prefix='/system/post', dependencies=[Depends(LoginService.get_current_user)])
@postController.get("/list", response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:list'))]) @postController.get(
async def get_system_post_list(request: Request, post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_query), query_db: AsyncSession = Depends(get_db)): '/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:list'))]
)
async def get_system_post_list(
request: Request,
post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据 # 获取分页数据
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)
logger.info('获取成功') logger.info('获取成功')
@ -26,10 +34,15 @@ async def get_system_post_list(request: Request, post_page_query: PostPageQueryM
return ResponseUtil.success(model_content=post_page_query_result) return ResponseUtil.success(model_content=post_page_query_result)
@postController.post("", dependencies=[Depends(CheckUserInterfaceAuth('system:post:add'))]) @postController.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:add'))])
@ValidateFields(validate_model='add_post') @ValidateFields(validate_model='add_post')
@log_decorator(title='岗位管理', business_type=BusinessType.INSERT) @log_decorator(title='岗位管理', business_type=BusinessType.INSERT)
async def add_system_post(request: Request, add_post: PostModel, query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)): async def add_system_post(
request: Request,
add_post: PostModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
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()
add_post.update_by = current_user.user.user_name add_post.update_by = current_user.user.user_name
@ -40,10 +53,15 @@ async def add_system_post(request: Request, add_post: PostModel, query_db: Async
return ResponseUtil.success(msg=add_post_result.message) return ResponseUtil.success(msg=add_post_result.message)
@postController.put("", dependencies=[Depends(CheckUserInterfaceAuth('system:post:edit'))]) @postController.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:edit'))])
@ValidateFields(validate_model='edit_post') @ValidateFields(validate_model='edit_post')
@log_decorator(title='岗位管理', business_type=BusinessType.UPDATE) @log_decorator(title='岗位管理', business_type=BusinessType.UPDATE)
async def edit_system_post(request: Request, edit_post: PostModel, query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)): async def edit_system_post(
request: Request,
edit_post: PostModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
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()
edit_post_result = await PostService.edit_post_services(query_db, edit_post) edit_post_result = await PostService.edit_post_services(query_db, edit_post)
@ -52,7 +70,7 @@ async def edit_system_post(request: Request, edit_post: PostModel, query_db: Asy
return ResponseUtil.success(msg=edit_post_result.message) return ResponseUtil.success(msg=edit_post_result.message)
@postController.delete("/{post_ids}", dependencies=[Depends(CheckUserInterfaceAuth('system:post:remove'))]) @postController.delete('/{post_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:post:remove'))])
@log_decorator(title='岗位管理', business_type=BusinessType.DELETE) @log_decorator(title='岗位管理', business_type=BusinessType.DELETE)
async def delete_system_post(request: Request, post_ids: str, query_db: AsyncSession = Depends(get_db)): async def delete_system_post(request: Request, post_ids: str, query_db: AsyncSession = Depends(get_db)):
delete_post = DeletePostModel(postIds=post_ids) delete_post = DeletePostModel(postIds=post_ids)
@ -62,7 +80,9 @@ async def delete_system_post(request: Request, post_ids: str, query_db: AsyncSes
return ResponseUtil.success(msg=delete_post_result.message) return ResponseUtil.success(msg=delete_post_result.message)
@postController.get("/{post_id}", response_model=PostModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:query'))]) @postController.get(
'/{post_id}', response_model=PostModel, dependencies=[Depends(CheckUserInterfaceAuth('system:post:query'))]
)
async def query_detail_system_post(request: Request, post_id: int, query_db: AsyncSession = Depends(get_db)): async def query_detail_system_post(request: Request, post_id: int, query_db: AsyncSession = Depends(get_db)):
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}的信息成功')
@ -70,9 +90,13 @@ async def query_detail_system_post(request: Request, post_id: int, query_db: Asy
return ResponseUtil.success(data=post_detail_result) return ResponseUtil.success(data=post_detail_result)
@postController.post("/export", dependencies=[Depends(CheckUserInterfaceAuth('system:post:export'))]) @postController.post('/export', dependencies=[Depends(CheckUserInterfaceAuth('system:post:export'))])
@log_decorator(title='岗位管理', business_type=BusinessType.EXPORT) @log_decorator(title='岗位管理', business_type=BusinessType.EXPORT)
async def export_system_post_list(request: Request, post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_form), query_db: AsyncSession = Depends(get_db)): async def export_system_post_list(
request: Request,
post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_form),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据 # 获取全量数据
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)
post_export_result = await PostService.export_post_list_services(post_query_result) post_export_result = await PostService.export_post_list_services(post_query_result)

66
ruoyi-fastapi-backend/module_admin/dao/post_dao.py

@ -1,8 +1,8 @@
from sqlalchemy import select, update, delete, func from sqlalchemy import delete, func, select, update
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.do.post_do import SysPost from module_admin.entity.do.post_do import SysPost
from module_admin.entity.do.user_do import SysUserPost from module_admin.entity.do.user_do import SysUserPost
from module_admin.entity.vo.post_vo import * from module_admin.entity.vo.post_vo import PostModel, PostPageQueryModel
from utils.page_util import PageUtil from utils.page_util import PageUtil
@ -19,11 +19,11 @@ class PostDao:
:param post_id: 岗位id :param post_id: 岗位id
:return: 在用岗位信息对象 :return: 在用岗位信息对象
""" """
post_info = (await db.execute( post_info = (
select(SysPost) (await db.execute(select(SysPost).where(SysPost.post_id == post_id, SysPost.status == '0')))
.where(SysPost.post_id == post_id, .scalars()
SysPost.status == '0') .first()
)).scalars().first() )
return post_info return post_info
@ -35,10 +35,7 @@ class PostDao:
:param post_id: 岗位id :param post_id: 岗位id
:return: 岗位信息对象 :return: 岗位信息对象
""" """
post_info = (await db.execute( post_info = (await db.execute(select(SysPost).where(SysPost.post_id == post_id))).scalars().first()
select(SysPost)
.where(SysPost.post_id == post_id)
)).scalars().first()
return post_info return post_info
@ -50,12 +47,19 @@ class PostDao:
:param post: 岗位参数对象 :param post: 岗位参数对象
:return: 岗位信息对象 :return: 岗位信息对象
""" """
post_info = (await db.execute( post_info = (
select(SysPost) (
.where(SysPost.post_name == post.post_name if post.post_name else True, await db.execute(
select(SysPost).where(
SysPost.post_name == post.post_name if post.post_name else True,
SysPost.post_code == post.post_code if post.post_code else True, SysPost.post_code == post.post_code if post.post_code else True,
SysPost.post_sort == post.post_sort if post.post_sort else True) SysPost.post_sort == post.post_sort if post.post_sort else True,
)).scalars().first() )
)
)
.scalars()
.first()
)
return post_info return post_info
@ -68,12 +72,16 @@ class PostDao:
:param is_page: 是否开启分页 :param is_page: 是否开启分页
:return: 岗位列表信息对象 :return: 岗位列表信息对象
""" """
query = select(SysPost) \ query = (
.where(SysPost.post_code.like(f'%{query_object.post_code}%') if query_object.post_code else True, select(SysPost)
.where(
SysPost.post_code.like(f'%{query_object.post_code}%') if query_object.post_code else True,
SysPost.post_name.like(f'%{query_object.post_name}%') if query_object.post_name else True, SysPost.post_name.like(f'%{query_object.post_name}%') if query_object.post_name else True,
SysPost.status == query_object.status if query_object.status else True) \ SysPost.status == query_object.status if query_object.status else True,
.order_by(SysPost.post_sort) \ )
.order_by(SysPost.post_sort)
.distinct() .distinct()
)
post_list = await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) post_list = await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
return post_list return post_list
@ -100,10 +108,7 @@ class PostDao:
:param post: 需要更新的岗位字典 :param post: 需要更新的岗位字典
:return: :return:
""" """
await db.execute( await db.execute(update(SysPost), [post])
update(SysPost),
[post]
)
@classmethod @classmethod
async def delete_post_dao(cls, db: AsyncSession, post: PostModel): async def delete_post_dao(cls, db: AsyncSession, post: PostModel):
@ -113,10 +118,7 @@ class PostDao:
:param post: 岗位对象 :param post: 岗位对象
:return: :return:
""" """
await db.execute( await db.execute(delete(SysPost).where(SysPost.post_id.in_([post.post_id])))
delete(SysPost)
.where(SysPost.post_id.in_([post.post_id]))
)
@classmethod @classmethod
async def count_user_post_dao(cls, db: AsyncSession, post_id: int): async def count_user_post_dao(cls, db: AsyncSession, post_id: int):
@ -126,10 +128,8 @@ class PostDao:
:param post_id: 岗位id :param post_id: 岗位id
:return: 岗位关联的用户数量 :return: 岗位关联的用户数量
""" """
user_post_count = (await db.execute( user_post_count = (
select(func.count('*')) await db.execute(select(func.count('*')).select_from(SysUserPost).where(SysUserPost.post_id == post_id))
.select_from(SysUserPost) ).scalar()
.where(SysUserPost.post_id == post_id)
)).scalar()
return user_post_count return user_post_count

5
ruoyi-fastapi-backend/module_admin/entity/do/post_do.py

@ -1,12 +1,13 @@
from sqlalchemy import Column, Integer, String, DateTime
from config.database import Base
from datetime import datetime from datetime import datetime
from sqlalchemy import Column, DateTime, Integer, String
from config.database import Base
class SysPost(Base): class SysPost(Base):
""" """
岗位信息表 岗位信息表
""" """
__tablename__ = 'sys_post' __tablename__ = 'sys_post'
post_id = Column(Integer, primary_key=True, autoincrement=True, comment='岗位ID') post_id = Column(Integer, primary_key=True, autoincrement=True, comment='岗位ID')

10
ruoyi-fastapi-backend/module_admin/entity/vo/post_vo.py

@ -1,15 +1,16 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel from pydantic.alias_generators import to_camel
from pydantic_validation_decorator import NotBlank, Size from pydantic_validation_decorator import NotBlank, Size
from typing import Union, Optional, List, Literal from typing import Literal, Optional
from datetime import datetime from module_admin.annotation.pydantic_annotation import as_form, as_query
from module_admin.annotation.pydantic_annotation import as_query, as_form
class PostModel(BaseModel): class PostModel(BaseModel):
""" """
岗位信息表对应pydantic模型 岗位信息表对应pydantic模型
""" """
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
post_id: Optional[int] = Field(default=None, description='岗位ID') post_id: Optional[int] = Field(default=None, description='岗位ID')
@ -47,6 +48,7 @@ class PostQueryModel(PostModel):
""" """
岗位管理不分页查询模型 岗位管理不分页查询模型
""" """
begin_time: Optional[str] = Field(default=None, description='开始时间') begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间') end_time: Optional[str] = Field(default=None, description='结束时间')
@ -57,6 +59,7 @@ class PostPageQueryModel(PostQueryModel):
""" """
岗位管理分页查询模型 岗位管理分页查询模型
""" """
page_num: int = Field(default=1, description='当前页码') page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数') page_size: int = Field(default=10, description='每页记录数')
@ -65,6 +68,7 @@ class DeletePostModel(BaseModel):
""" """
删除岗位模型 删除岗位模型
""" """
model_config = ConfigDict(alias_generator=to_camel) model_config = ConfigDict(alias_generator=to_camel)
post_ids: str = Field(description='需要删除的岗位ID') post_ids: str = Field(description='需要删除的岗位ID')

38
ruoyi-fastapi-backend/module_admin/service/post_service.py

@ -1,16 +1,22 @@
from module_admin.dao.post_dao import * from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.vo.common_vo import CrudResponseModel from typing import List
from config.constant import CommonConstant from config.constant import CommonConstant
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from utils.common_util import export_list2excel, CamelCaseUtil from module_admin.dao.post_dao import PostDao
from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
from utils.common_util import CamelCaseUtil, export_list2excel
class PostService: class PostService:
""" """
岗位管理模块服务层 岗位管理模块服务层
""" """
@classmethod @classmethod
async def get_post_list_services(cls, query_db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False): async def get_post_list_services(
cls, query_db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False
):
""" """
获取岗位列表信息service 获取岗位列表信息service
:param query_db: orm对象 :param query_db: orm对象
@ -146,16 +152,16 @@ class PostService:
""" """
# 创建一个映射字典,将英文键映射到中文键 # 创建一个映射字典,将英文键映射到中文键
mapping_dict = { mapping_dict = {
"postId": "岗位编号", 'postId': '岗位编号',
"postCode": "岗位编码", 'postCode': '岗位编码',
"postName": "岗位名称", 'postName': '岗位名称',
"postSort": "显示顺序", 'postSort': '显示顺序',
"status": "状态", 'status': '状态',
"createBy": "创建者", 'createBy': '创建者',
"createTime": "创建时间", 'createTime': '创建时间',
"updateBy": "更新者", 'updateBy': '更新者',
"updateTime": "更新时间", 'updateTime': '更新时间',
"remark": "备注", 'remark': '备注',
} }
data = post_list data = post_list
@ -165,7 +171,9 @@ class PostService:
item['status'] = '正常' item['status'] = '正常'
else: else:
item['status'] = '停用' item['status'] = '停用'
new_data = [{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data] new_data = [
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
]
binary_data = export_list2excel(new_data) binary_data = export_list2excel(new_data)
return binary_data return binary_data

Loading…
Cancel
Save