Browse Source

style: 使用ruff格式化通知公告管理模块,优化导入

master
insistence 7 months ago
parent
commit
2c86992cac
  1. 55
      ruoyi-fastapi-backend/module_admin/controller/notice_controller.py
  2. 52
      ruoyi-fastapi-backend/module_admin/dao/notice_dao.py
  3. 5
      ruoyi-fastapi-backend/module_admin/entity/do/notice_do.py
  4. 10
      ruoyi-fastapi-backend/module_admin/entity/vo/notice_vo.py
  5. 12
      ruoyi-fastapi-backend/module_admin/service/notice_service.py

55
ruoyi-fastapi-backend/module_admin/controller/notice_controller.py

@ -1,22 +1,31 @@
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.notice_service 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.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
from utils.log_util import * from module_admin.entity.vo.user_vo import CurrentUserModel
from utils.page_util import * from module_admin.service.login_service import LoginService
from module_admin.service.notice_service import NoticeService
from utils.log_util import logger
from utils.page_util import PageResponseModel
from utils.response_util import ResponseUtil
noticeController = APIRouter(prefix='/system/notice', dependencies=[Depends(LoginService.get_current_user)]) noticeController = APIRouter(prefix='/system/notice', dependencies=[Depends(LoginService.get_current_user)])
@noticeController.get("/list", response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:list'))]) @noticeController.get(
async def get_system_notice_list(request: Request, notice_page_query: NoticePageQueryModel = Depends(NoticePageQueryModel.as_query), query_db: AsyncSession = Depends(get_db)): '/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:list'))]
)
async def get_system_notice_list(
request: Request,
notice_page_query: NoticePageQueryModel = Depends(NoticePageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据 # 获取分页数据
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)
logger.info('获取成功') logger.info('获取成功')
@ -24,10 +33,15 @@ async def get_system_notice_list(request: Request, notice_page_query: NoticePage
return ResponseUtil.success(model_content=notice_page_query_result) return ResponseUtil.success(model_content=notice_page_query_result)
@noticeController.post("", dependencies=[Depends(CheckUserInterfaceAuth('system:notice:add'))]) @noticeController.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:add'))])
@ValidateFields(validate_model='add_notice') @ValidateFields(validate_model='add_notice')
@log_decorator(title='通知公告管理', business_type=BusinessType.INSERT) @log_decorator(title='通知公告管理', business_type=BusinessType.INSERT)
async def add_system_notice(request: Request, add_notice: NoticeModel, query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)): async def add_system_notice(
request: Request,
add_notice: NoticeModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
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()
add_notice.update_by = current_user.user.user_name add_notice.update_by = current_user.user.user_name
@ -38,10 +52,15 @@ async def add_system_notice(request: Request, add_notice: NoticeModel, query_db:
return ResponseUtil.success(msg=add_notice_result.message) return ResponseUtil.success(msg=add_notice_result.message)
@noticeController.put("", dependencies=[Depends(CheckUserInterfaceAuth('system:notice:edit'))]) @noticeController.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:edit'))])
@ValidateFields(validate_model='edit_notice') @ValidateFields(validate_model='edit_notice')
@log_decorator(title='通知公告管理', business_type=BusinessType.UPDATE) @log_decorator(title='通知公告管理', business_type=BusinessType.UPDATE)
async def edit_system_notice(request: Request, edit_notice: NoticeModel, query_db: AsyncSession = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)): async def edit_system_notice(
request: Request,
edit_notice: NoticeModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
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()
edit_notice_result = await NoticeService.edit_notice_services(query_db, edit_notice) edit_notice_result = await NoticeService.edit_notice_services(query_db, edit_notice)
@ -50,7 +69,7 @@ async def edit_system_notice(request: Request, edit_notice: NoticeModel, query_d
return ResponseUtil.success(msg=edit_notice_result.message) return ResponseUtil.success(msg=edit_notice_result.message)
@noticeController.delete("/{notice_ids}", dependencies=[Depends(CheckUserInterfaceAuth('system:notice:remove'))]) @noticeController.delete('/{notice_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:notice:remove'))])
@log_decorator(title='通知公告管理', business_type=BusinessType.DELETE) @log_decorator(title='通知公告管理', business_type=BusinessType.DELETE)
async def delete_system_notice(request: Request, notice_ids: str, query_db: AsyncSession = Depends(get_db)): async def delete_system_notice(request: Request, notice_ids: str, query_db: AsyncSession = Depends(get_db)):
delete_notice = DeleteNoticeModel(noticeIds=notice_ids) delete_notice = DeleteNoticeModel(noticeIds=notice_ids)
@ -60,7 +79,9 @@ async def delete_system_notice(request: Request, notice_ids: str, query_db: Asyn
return ResponseUtil.success(msg=delete_notice_result.message) return ResponseUtil.success(msg=delete_notice_result.message)
@noticeController.get("/{notice_id}", response_model=NoticeModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:query'))]) @noticeController.get(
'/{notice_id}', response_model=NoticeModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:query'))]
)
async def query_detail_system_post(request: Request, notice_id: int, query_db: AsyncSession = Depends(get_db)): async def query_detail_system_post(request: Request, notice_id: int, query_db: AsyncSession = Depends(get_db)):
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}的信息成功')

52
ruoyi-fastapi-backend/module_admin/dao/notice_dao.py

@ -1,9 +1,9 @@
from sqlalchemy import select, update, delete from datetime import datetime, time
from sqlalchemy import delete, select, update
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.do.notice_do import SysNotice from module_admin.entity.do.notice_do import SysNotice
from module_admin.entity.vo.notice_vo import * from module_admin.entity.vo.notice_vo import NoticeModel, NoticePageQueryModel
from utils.page_util import PageUtil from utils.page_util import PageUtil
from datetime import datetime, time
class NoticeDao: class NoticeDao:
@ -19,10 +19,7 @@ class NoticeDao:
:param notice_id: 通知公告id :param notice_id: 通知公告id
:return: 通知公告信息对象 :return: 通知公告信息对象
""" """
notice_info = (await db.execute( notice_info = (await db.execute(select(SysNotice).where(SysNotice.notice_id == notice_id))).scalars().first()
select(SysNotice)
.where(SysNotice.notice_id == notice_id)
)).scalars().first()
return notice_info return notice_info
@ -34,12 +31,19 @@ class NoticeDao:
:param notice: 通知公告参数对象 :param notice: 通知公告参数对象
:return: 通知公告信息对象 :return: 通知公告信息对象
""" """
notice_info = (await db.execute( notice_info = (
select(SysNotice) (
.where(SysNotice.notice_title == notice.notice_title, await db.execute(
select(SysNotice).where(
SysNotice.notice_title == notice.notice_title,
SysNotice.notice_type == notice.notice_type, SysNotice.notice_type == notice.notice_type,
SysNotice.notice_content == notice.notice_content) SysNotice.notice_content == notice.notice_content,
)).scalars().first() )
)
)
.scalars()
.first()
)
return notice_info return notice_info
@ -52,15 +56,21 @@ class NoticeDao:
:param is_page: 是否开启分页 :param is_page: 是否开启分页
:return: 通知公告列表信息对象 :return: 通知公告列表信息对象
""" """
query = select(SysNotice) \ query = (
.where(SysNotice.notice_title.like(f'%{query_object.notice_title}%') if query_object.notice_title else True, select(SysNotice)
.where(
SysNotice.notice_title.like(f'%{query_object.notice_title}%') if query_object.notice_title else True,
SysNotice.create_by.like(f'%{query_object.create_by}%') if query_object.create_by else True, SysNotice.create_by.like(f'%{query_object.create_by}%') if query_object.create_by else True,
SysNotice.notice_type == query_object.notice_type if query_object.notice_type else True, SysNotice.notice_type == query_object.notice_type if query_object.notice_type else True,
SysNotice.create_time.between( SysNotice.create_time.between(
datetime.combine(datetime.strptime(query_object.begin_time, '%Y-%m-%d'), time(00, 00, 00)), datetime.combine(datetime.strptime(query_object.begin_time, '%Y-%m-%d'), time(00, 00, 00)),
datetime.combine(datetime.strptime(query_object.end_time, '%Y-%m-%d'), time(23, 59, 59))) datetime.combine(datetime.strptime(query_object.end_time, '%Y-%m-%d'), time(23, 59, 59)),
if query_object.begin_time and query_object.end_time else True) \ )
if query_object.begin_time and query_object.end_time
else True,
)
.distinct() .distinct()
)
notice_list = await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) notice_list = await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
return notice_list return notice_list
@ -87,10 +97,7 @@ class NoticeDao:
:param notice: 需要更新的通知公告字典 :param notice: 需要更新的通知公告字典
:return: :return:
""" """
await db.execute( await db.execute(update(SysNotice), [notice])
update(SysNotice),
[notice]
)
@classmethod @classmethod
async def delete_notice_dao(cls, db: AsyncSession, notice: NoticeModel): async def delete_notice_dao(cls, db: AsyncSession, notice: NoticeModel):
@ -100,7 +107,4 @@ class NoticeDao:
:param notice: 通知公告对象 :param notice: 通知公告对象
:return: :return:
""" """
await db.execute( await db.execute(delete(SysNotice).where(SysNotice.notice_id.in_([notice.notice_id])))
delete(SysNotice)
.where(SysNotice.notice_id.in_([notice.notice_id]))
)

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

@ -1,12 +1,13 @@
from sqlalchemy import Column, Integer, String, DateTime, LargeBinary
from config.database import Base
from datetime import datetime from datetime import datetime
from sqlalchemy import Column, DateTime, Integer, LargeBinary, String
from config.database import Base
class SysNotice(Base): class SysNotice(Base):
""" """
通知公告表 通知公告表
""" """
__tablename__ = 'sys_notice' __tablename__ = 'sys_notice'
notice_id = Column(Integer, primary_key=True, autoincrement=True, comment='公告ID') notice_id = Column(Integer, primary_key=True, autoincrement=True, comment='公告ID')

10
ruoyi-fastapi-backend/module_admin/entity/vo/notice_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, Xss from pydantic_validation_decorator import NotBlank, Size, Xss
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 NoticeModel(BaseModel): class NoticeModel(BaseModel):
""" """
通知公告表对应pydantic模型 通知公告表对应pydantic模型
""" """
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
notice_id: Optional[int] = Field(default=None, description='公告ID') notice_id: Optional[int] = Field(default=None, description='公告ID')
@ -37,6 +38,7 @@ class NoticeQueryModel(NoticeModel):
""" """
通知公告管理不分页查询模型 通知公告管理不分页查询模型
""" """
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='结束时间')
@ -47,6 +49,7 @@ class NoticePageQueryModel(NoticeQueryModel):
""" """
通知公告管理分页查询模型 通知公告管理分页查询模型
""" """
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='每页记录数')
@ -55,6 +58,7 @@ class DeleteNoticeModel(BaseModel):
""" """
删除通知公告模型 删除通知公告模型
""" """
model_config = ConfigDict(alias_generator=to_camel) model_config = ConfigDict(alias_generator=to_camel)
notice_ids: str = Field(description='需要删除的公告ID') notice_ids: str = Field(description='需要删除的公告ID')

12
ruoyi-fastapi-backend/module_admin/service/notice_service.py

@ -1,8 +1,10 @@
from module_admin.dao.notice_dao import * from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.vo.common_vo import CrudResponseModel
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.notice_dao import NoticeDao
from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
from utils.common_util import CamelCaseUtil
class NoticeService: class NoticeService:
@ -11,7 +13,9 @@ class NoticeService:
""" """
@classmethod @classmethod
async def get_notice_list_services(cls, query_db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = True): async def get_notice_list_services(
cls, query_db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = True
):
""" """
获取通知公告列表信息service 获取通知公告列表信息service
:param query_db: orm对象 :param query_db: orm对象

Loading…
Cancel
Save