开源准备

This commit is contained in:
zhangtao
2024-12-10 17:39:26 +08:00
commit cbaf324e19
315 changed files with 39314 additions and 0 deletions
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
from datetime import datetime
from app.core.validator import DateTimeStr
class OnlineQueryParams:
"""在线用户查询参数"""
def __init__(
self,
user_name: Optional[str] = Query(None, description="登录名称"),
ipaddr: Optional[str] = Query(None, description="登陆IP地址"),
login_location: Optional[str] = Query(None, description="登录所属地"),
) -> None:
super().__init__()
# 模糊查询字段
self.user_name = ("like", f"%{user_name}%") if user_name else None
self.login_location = ("like", f"%{login_location}%") if login_location else None
# 精确查询字段
self.ipaddr = ("eq", ipaddr) if ipaddr else None
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
from datetime import datetime
from app.core.validator import DateTimeStr
class DeptQueryParams:
"""部门管理查询参数"""
def __init__(
self,
name: Optional[str] = Query(None, description="部门名称", min_length=2, max_length=50),
available: Optional[bool] = Query(None, description="部门状态(True正常 False停用)"),
creator: Optional[str] = Query(None, description="创建者"),
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
) -> None:
super().__init__()
# 模糊查询字段
self.name = ("like", f"%{name}%") if name else None
self.creator = ("like", f"%{creator}%") if creator else None
# 精确查询字段
self.available = ("eq", available) if available is not None else None
# 时间范围查询
if start_time and end_time:
start_datetime = datetime.strptime(str(start_time), '%Y-%m-%d %H:%M:%S')
end_datetime = datetime.strptime(str(end_time), '%Y-%m-%d %H:%M:%S')
self.created_at = ("between", (start_datetime, end_datetime))
@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
from typing import Optional, Literal
from fastapi import Query
class MenuQueryParams:
"""菜单管理查询参数"""
def __init__(
self,
name: Optional[str] = Query(None, description="菜单名称", min_length=2, max_length=50),
route_path: Optional[str] = Query(None, description="路由地址", min_length=1, max_length=200),
component_path: Optional[str] = Query(None, description="组件路径", min_length=1, max_length=200),
type: Optional[Literal['M', 'C', 'F']] = Query(None, description="菜单类型(M目录 C菜单 F按钮)"),
permission: Optional[str] = Query(None, description="权限标识", min_length=1, max_length=100),
available: Optional[bool] = Query(None, description="菜单状态(True正常 False停用)"),
creator: Optional[str] = Query(None, description="创建者"),
) -> None:
super().__init__()
# 模糊查询字段
self.name = ("like", f"%{name}%") if name else None
self.route_path = ("like", f"%{route_path}%") if route_path else None
self.component_path = ("like", f"%{component_path}%") if component_path else None
self.permission = ("like", f"%{permission}%") if permission else None
self.creator = ("like", f"%{creator}%") if creator else None
# 精确查询字段
self.type = ("eq", type) if type else None
self.available = ("eq", available) if available is not None else None
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
class NoticeQueryParams:
"""字典管理查询参数"""
def __init__(
self,
notice_title: Optional[str] = Query(None, description="公告标题", min_length=2, max_length=20),
available: Optional[bool] = Query(None, description="是否可用"),
) -> None:
super().__init__()
# 模糊查询字段
self.notice_title = ("like", f"%{notice_title}%") if notice_title else None
# 精确查询字段
self.available = ("eq", available) if available is not None else None
@@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
from datetime import datetime
from app.core.validator import DateTimeStr
class OperationLogQueryParams:
"""操作日志查询参数"""
def __init__(
self,
request_path: Optional[str] = Query(None, description="请求路径"),
request_method: Optional[str] = Query(None, description="请求方法"),
request_ip: Optional[str] = Query(None, description="请求IP"),
response_code: Optional[int] = Query(None, description="响应状态码"),
creator: Optional[int] = Query(None, description="创建人"),
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
) -> None:
super().__init__()
# 模糊查询字段
self.request_path = ("like", f"%{request_path}%") if request_path else None
self.creator_id = creator
# 精确查询字段
self.request_method = ("eq", request_method) if request_method else None
self.request_ip = ("eq", request_ip) if request_ip else None
self.response_code = ("eq", response_code) if response_code else None
# 时间范围查询
if start_time and end_time:
start_datetime = datetime.strptime(str(start_time), '%Y-%m-%d %H:%M:%S')
end_datetime = datetime.strptime(str(end_time), '%Y-%m-%d %H:%M:%S')
self.created_at = ("between", (start_datetime, end_datetime))
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
class PositionQueryParams:
"""岗位管理查询参数"""
def __init__(
self,
name: Optional[str] = Query(None, description="岗位名称", min_length=2, max_length=20),
available: Optional[bool] = Query(None, description="是否可用"),
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
) -> None:
super().__init__()
# 模糊查询字段
self.name = ("like", f"%{name}%") if name else None
# 精确查询字段
self.available = ("eq", available) if available is not None else None
# 时间范围查询
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
class RoleQueryParams:
"""角色管理查询参数"""
def __init__(
self,
name: Optional[str] = Query(None, description="角色名称", min_length=2, max_length=20),
available: Optional[bool] = Query(None, description="是否可用"),
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
) -> None:
super().__init__()
# 模糊查询字段
self.name = ("like", f"%{name}%") if name else None
# 精确查询字段
self.available = ("eq", available) if available is not None else None
# 时间范围查询
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
class UserQueryParams:
"""用户管理查询参数"""
def __init__(
self,
username: Optional[str] = Query(None, description="用户名", min_length=2, max_length=20),
name: Optional[str] = Query(None, description="名称", min_length=2, max_length=20),
mobile: Optional[str] = Query(None, description="手机号", pattern=r'^1[3-9]\d{9}$'),
email: Optional[str] = Query(None, description="邮箱", pattern=r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'),
available: Optional[bool] = Query(None, description="是否可用"),
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
) -> None:
super().__init__()
# 模糊查询字段
self.username = ("like", f"%{username}%") if username else None
self.name = ("like", f"%{name}%") if name else None
self.mobile = ("like", f"%{mobile}%") if mobile else None
self.email = ("like", f"%{email}%") if email else None
# 精确查询字段
self.available = ("eq", available) if available is not None else None
# 时间范围查询
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None