Browse Source

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

master
insistence 7 months ago
parent
commit
ca86c5ffb7
  1. 64
      ruoyi-fastapi-backend/module_admin/controller/post_controler.py
  2. 70
      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 fastapi import Depends
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.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 config.enums import BusinessType
from utils.response_util import *
from utils.log_util import *
from utils.page_util import *
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.service.login_service import LoginService
from module_admin.service.post_service import PostService
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.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.get("/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)):
@postController.get(
'/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)
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)
@postController.post("", dependencies=[Depends(CheckUserInterfaceAuth('system:post:add'))])
@postController.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:add'))])
@ValidateFields(validate_model='add_post')
@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_time = datetime.now()
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)
@postController.put("", dependencies=[Depends(CheckUserInterfaceAuth('system:post:edit'))])
@postController.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:post:edit'))])
@ValidateFields(validate_model='edit_post')
@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_time = datetime.now()
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)
@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)
async def delete_system_post(request: Request, post_ids: str, query_db: AsyncSession = Depends(get_db)):
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)
@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)):
post_detail_result = await PostService.post_detail_services(query_db, 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)
@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)
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_export_result = await PostService.export_post_list_services(post_query_result)

70
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 module_admin.entity.do.post_do import SysPost
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
@ -19,11 +19,11 @@ class PostDao:
:param post_id: 岗位id
:return: 在用岗位信息对象
"""
post_info = (await db.execute(
select(SysPost)
.where(SysPost.post_id == post_id,
SysPost.status == '0')
)).scalars().first()
post_info = (
(await db.execute(select(SysPost).where(SysPost.post_id == post_id, SysPost.status == '0')))
.scalars()
.first()
)
return post_info
@ -35,10 +35,7 @@ class PostDao:
:param post_id: 岗位id
:return: 岗位信息对象
"""
post_info = (await db.execute(
select(SysPost)
.where(SysPost.post_id == post_id)
)).scalars().first()
post_info = (await db.execute(select(SysPost).where(SysPost.post_id == post_id))).scalars().first()
return post_info
@ -50,12 +47,19 @@ class PostDao:
:param post: 岗位参数对象
:return: 岗位信息对象
"""
post_info = (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_sort == post.post_sort if post.post_sort else True)
)).scalars().first()
post_info = (
(
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_sort == post.post_sort if post.post_sort else True,
)
)
)
.scalars()
.first()
)
return post_info
@ -68,12 +72,16 @@ class PostDao:
:param is_page: 是否开启分页
:return: 岗位列表信息对象
"""
query = 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.status == query_object.status if query_object.status else True) \
.order_by(SysPost.post_sort) \
query = (
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.status == query_object.status if query_object.status else True,
)
.order_by(SysPost.post_sort)
.distinct()
)
post_list = await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
return post_list
@ -100,10 +108,7 @@ class PostDao:
:param post: 需要更新的岗位字典
:return:
"""
await db.execute(
update(SysPost),
[post]
)
await db.execute(update(SysPost), [post])
@classmethod
async def delete_post_dao(cls, db: AsyncSession, post: PostModel):
@ -113,10 +118,7 @@ class PostDao:
:param post: 岗位对象
:return:
"""
await db.execute(
delete(SysPost)
.where(SysPost.post_id.in_([post.post_id]))
)
await db.execute(delete(SysPost).where(SysPost.post_id.in_([post.post_id])))
@classmethod
async def count_user_post_dao(cls, db: AsyncSession, post_id: int):
@ -126,10 +128,8 @@ class PostDao:
:param post_id: 岗位id
:return: 岗位关联的用户数量
"""
user_post_count = (await db.execute(
select(func.count('*'))
.select_from(SysUserPost)
.where(SysUserPost.post_id == post_id)
)).scalar()
user_post_count = (
await db.execute(select(func.count('*')).select_from(SysUserPost).where(SysUserPost.post_id == post_id))
).scalar()
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 sqlalchemy import Column, DateTime, Integer, String
from config.database import Base
class SysPost(Base):
"""
岗位信息表
"""
__tablename__ = 'sys_post'
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.alias_generators import to_camel
from pydantic_validation_decorator import NotBlank, Size
from typing import Union, Optional, List, Literal
from datetime import datetime
from module_admin.annotation.pydantic_annotation import as_query, as_form
from typing import Literal, Optional
from module_admin.annotation.pydantic_annotation import as_form, as_query
class PostModel(BaseModel):
"""
岗位信息表对应pydantic模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
post_id: Optional[int] = Field(default=None, description='岗位ID')
@ -47,6 +48,7 @@ class PostQueryModel(PostModel):
"""
岗位管理不分页查询模型
"""
begin_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_size: int = Field(default=10, description='每页记录数')
@ -65,6 +68,7 @@ class DeletePostModel(BaseModel):
"""
删除岗位模型
"""
model_config = ConfigDict(alias_generator=to_camel)
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 module_admin.entity.vo.common_vo import CrudResponseModel
from sqlalchemy.ext.asyncio import AsyncSession
from typing import List
from config.constant import CommonConstant
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:
"""
岗位管理模块服务层
"""
@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
:param query_db: orm对象
@ -146,16 +152,16 @@ class PostService:
"""
# 创建一个映射字典,将英文键映射到中文键
mapping_dict = {
"postId": "岗位编号",
"postCode": "岗位编码",
"postName": "岗位名称",
"postSort": "显示顺序",
"status": "状态",
"createBy": "创建者",
"createTime": "创建时间",
"updateBy": "更新者",
"updateTime": "更新时间",
"remark": "备注",
'postId': '岗位编号',
'postCode': '岗位编码',
'postName': '岗位名称',
'postSort': '显示顺序',
'status': '状态',
'createBy': '创建者',
'createTime': '创建时间',
'updateBy': '更新者',
'updateTime': '更新时间',
'remark': '备注',
}
data = post_list
@ -165,7 +171,9 @@ class PostService:
item['status'] = '正常'
else:
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)
return binary_data

Loading…
Cancel
Save