mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-27 06:41:12 +00:00
fix(mcp): 优化智能对话流式响应并增强异常处理
- 确保智能对话流式响应返回字节串,防止类型错误 - 在流式响应异常时返回友好错误信息,避免连接中断 - WebSocket聊天控制器中添加异常处理,保证异常信息反馈客户端 - WebSocket连接异常后使用finally确保连接正确关闭 refactor(resource): 统一资源接口返回HTTP URL路径 - 资源控制器新增Request参数,传递base_url实现URL转换 - 资源服务中所有路径替换为返回基于base_url的HTTP URL路径 - 文件信息、目录列表、文件上传下载接口均返回HTTP URL,提升前端友好度 - 移除递归参数及相关逻辑,简化目录统计实现 fix(database): 简化数据库依赖生成器,避免不必要的事务开启 - dependencies中db_getter取消多余事务管理,仅yield数据库会话 style(router_class): 优化操作日志路由异常处理,去除多余事务 - 简化操作日志写入流程,移除嵌套事务开启,提升代码可读性 refactor(initialize): 优化数据库初始化逻辑并增强日志与事务管理 - 初始化数据插入前打印日志,插入后标记是否需要提交事务 - PostgreSQL序列更新拆分成单独方法,针对有id字段的表执行 - 增加完整的异常捕获和回滚,保证初始化失败时事务回滚 - 读取初始化数据文件时增加日志及异常处理 fix(ai_client): 修正AI客户端HTTP连接管理及异常处理 - 使用自定义httpx AsyncClient替代默认客户端,确保连接配置 - 增加关闭客户端连接方法,避免资源泄露 - 流式响应时检查选择器内容有效性,提升稳定性 chore(cleanup): 移除MySQL快照SQL文件,保持仓库整洁 - 删除无用的SQL数据转储文件,减小仓库体积并维护清洁度
This commit is contained in:
@@ -24,10 +24,16 @@ async def chat_controller(
|
|||||||
logger.info(f"用户 {auth.user.name} 发起智能对话: {query.message[:50]}...")
|
logger.info(f"用户 {auth.user.name} 发起智能对话: {query.message[:50]}...")
|
||||||
|
|
||||||
async def generate_response():
|
async def generate_response():
|
||||||
async for chunk in MCPService.chat_query(query.message):
|
try:
|
||||||
yield chunk
|
async for chunk in MCPService.chat_query(query.message):
|
||||||
|
# 确保返回的是字节串
|
||||||
|
if chunk:
|
||||||
|
yield chunk.encode('utf-8') if isinstance(chunk, str) else chunk
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"流式响应出错: {str(e)}")
|
||||||
|
yield f"抱歉,处理您的请求时出现了错误: {str(e)}".encode('utf-8')
|
||||||
|
|
||||||
return StreamingResponse(generate_response(), media_type="text/plain")
|
return StreamingResponse(generate_response(), media_type="text/plain; charset=utf-8")
|
||||||
|
|
||||||
|
|
||||||
@MCPRouter.websocket("/ws/chat", name="WebSocket聊天")
|
@MCPRouter.websocket("/ws/chat", name="WebSocket聊天")
|
||||||
@@ -43,8 +49,14 @@ async def websocket_chat_controller(
|
|||||||
while True:
|
while True:
|
||||||
data = await websocket.receive_text()
|
data = await websocket.receive_text()
|
||||||
# 流式发送响应
|
# 流式发送响应
|
||||||
async for chunk in MCPService.chat_query(data):
|
try:
|
||||||
await websocket.send_text(chunk)
|
async for chunk in MCPService.chat_query(data):
|
||||||
|
if chunk:
|
||||||
|
await websocket.send_text(chunk)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"处理聊天查询出错: {str(e)}")
|
||||||
|
await websocket.send_text(f"抱歉,处理您的请求时出现了错误: {str(e)}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"WebSocket聊天出错: {str(e)}")
|
logger.error(f"WebSocket聊天出错: {str(e)}")
|
||||||
|
finally:
|
||||||
await websocket.close()
|
await websocket.close()
|
||||||
@@ -6,4 +6,11 @@ from typing import Optional
|
|||||||
|
|
||||||
class ChatQuerySchema(BaseModel):
|
class ChatQuerySchema(BaseModel):
|
||||||
"""聊天查询模型"""
|
"""聊天查询模型"""
|
||||||
message: str = Field(..., min_length=1, max_length=4000, description="聊天消息")
|
message: str = Field(..., min_length=1, max_length=4000, description="聊天消息", example="你好,你能帮我什么?")
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
json_schema_extra = {
|
||||||
|
"example": {
|
||||||
|
"message": "你好,你能帮我什么?"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,10 @@ class MCPService:
|
|||||||
"""处理聊天查询"""
|
"""处理聊天查询"""
|
||||||
# 创建MCP客户端实例
|
# 创建MCP客户端实例
|
||||||
mcp_client = AIClient()
|
mcp_client = AIClient()
|
||||||
# 处理消息
|
try:
|
||||||
async for response in mcp_client.process(message):
|
# 处理消息
|
||||||
yield response
|
async for response in mcp_client.process(message):
|
||||||
|
yield response
|
||||||
|
finally:
|
||||||
|
# 确保关闭客户端连接
|
||||||
|
await mcp_client.close()
|
||||||
@@ -26,19 +26,19 @@ from .service import ResourceService
|
|||||||
ResourceRouter = APIRouter(route_class=OperationLogRoute, prefix="/resource", tags=["资源管理"])
|
ResourceRouter = APIRouter(route_class=OperationLogRoute, prefix="/resource", tags=["资源管理"])
|
||||||
|
|
||||||
|
|
||||||
@ResourceRouter.get("/list", summary="获取目录列表", description="获取指定目录的文件列表")
|
@ResourceRouter.get("/list", summary="获取目录列表", description="获取指定目录下的文件和子目录列表")
|
||||||
async def get_directory_list_controller(
|
async def get_directory_list_controller(
|
||||||
|
request: Request,
|
||||||
path: Optional[str] = Query(None, description="目录路径"),
|
path: Optional[str] = Query(None, description="目录路径"),
|
||||||
recursive: bool = Query(False, description="递归获取"),
|
include_hidden: bool = Query(False, description="是否包含隐藏文件"),
|
||||||
include_hidden: bool = Query(False, description="包含隐藏文件"),
|
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:query"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:query"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
"""获取目录列表"""
|
"""获取目录列表"""
|
||||||
result_dict = await ResourceService.get_directory_list_service(
|
result_dict = await ResourceService.get_directory_list_service(
|
||||||
auth=auth,
|
auth=auth,
|
||||||
path=path,
|
path=path,
|
||||||
recursive=recursive,
|
include_hidden=include_hidden,
|
||||||
include_hidden=include_hidden
|
base_url=str(request.base_url)
|
||||||
)
|
)
|
||||||
logger.info(f"获取目录列表成功: {path or 'default'}")
|
logger.info(f"获取目录列表成功: {path or 'default'}")
|
||||||
return SuccessResponse(data=result_dict, msg="获取目录列表成功")
|
return SuccessResponse(data=result_dict, msg="获取目录列表成功")
|
||||||
@@ -46,11 +46,16 @@ async def get_directory_list_controller(
|
|||||||
|
|
||||||
@ResourceRouter.post("/search", summary="搜索资源", description="根据条件搜索资源")
|
@ResourceRouter.post("/search", summary="搜索资源", description="根据条件搜索资源")
|
||||||
async def search_resources_controller(
|
async def search_resources_controller(
|
||||||
|
request: Request,
|
||||||
search: ResourceSearchSchema,
|
search: ResourceSearchSchema,
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:search"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:search"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
"""搜索资源"""
|
"""搜索资源"""
|
||||||
result_list = await ResourceService.search_resources_service(auth=auth, search=search)
|
result_list = await ResourceService.search_resources_service(
|
||||||
|
auth=auth,
|
||||||
|
search=search,
|
||||||
|
base_url=str(request.base_url)
|
||||||
|
)
|
||||||
logger.info(f"搜索资源成功,找到 {len(result_list)} 个结果")
|
logger.info(f"搜索资源成功,找到 {len(result_list)} 个结果")
|
||||||
return SuccessResponse(data=result_list, msg=f"搜索成功,找到 {len(result_list)} 个结果")
|
return SuccessResponse(data=result_list, msg=f"搜索成功,找到 {len(result_list)} 个结果")
|
||||||
|
|
||||||
@@ -58,6 +63,7 @@ async def search_resources_controller(
|
|||||||
@ResourceRouter.post("/upload", summary="上传文件", description="上传文件到指定目录")
|
@ResourceRouter.post("/upload", summary="上传文件", description="上传文件到指定目录")
|
||||||
async def upload_file_controller(
|
async def upload_file_controller(
|
||||||
file: UploadFile,
|
file: UploadFile,
|
||||||
|
request: Request,
|
||||||
target_path: Optional[str] = Form(None, description="目标目录路径"),
|
target_path: Optional[str] = Form(None, description="目标目录路径"),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:upload"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:upload"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
@@ -65,7 +71,8 @@ async def upload_file_controller(
|
|||||||
result_dict = await ResourceService.upload_file_service(
|
result_dict = await ResourceService.upload_file_service(
|
||||||
auth=auth,
|
auth=auth,
|
||||||
file=file,
|
file=file,
|
||||||
target_path=target_path
|
target_path=target_path,
|
||||||
|
base_url=str(request.base_url)
|
||||||
)
|
)
|
||||||
logger.info(f"上传文件成功: {result_dict['filename']}")
|
logger.info(f"上传文件成功: {result_dict['filename']}")
|
||||||
return SuccessResponse(data=result_dict, msg="上传文件成功")
|
return SuccessResponse(data=result_dict, msg="上传文件成功")
|
||||||
@@ -73,11 +80,16 @@ async def upload_file_controller(
|
|||||||
|
|
||||||
@ResourceRouter.get("/download", summary="下载文件", description="下载指定文件")
|
@ResourceRouter.get("/download", summary="下载文件", description="下载指定文件")
|
||||||
async def download_file_controller(
|
async def download_file_controller(
|
||||||
|
request: Request,
|
||||||
path: str = Query(..., description="文件路径"),
|
path: str = Query(..., description="文件路径"),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:download"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:download"]))
|
||||||
) -> FileResponse:
|
) -> FileResponse:
|
||||||
"""下载文件"""
|
"""下载文件"""
|
||||||
file_path = await ResourceService.download_file_service(auth=auth, file_path=path)
|
file_path = await ResourceService.download_file_service(
|
||||||
|
auth=auth,
|
||||||
|
file_path=path,
|
||||||
|
base_url=str(request.base_url)
|
||||||
|
)
|
||||||
|
|
||||||
# 获取文件名
|
# 获取文件名
|
||||||
import os
|
import os
|
||||||
@@ -148,22 +160,31 @@ async def create_directory_controller(
|
|||||||
|
|
||||||
@ResourceRouter.get("/stats", summary="获取资源统计", description="获取资源统计信息")
|
@ResourceRouter.get("/stats", summary="获取资源统计", description="获取资源统计信息")
|
||||||
async def get_resource_stats_controller(
|
async def get_resource_stats_controller(
|
||||||
|
request: Request,
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:query"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:query"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
"""获取资源统计"""
|
"""获取资源统计"""
|
||||||
result_dict = await ResourceService.get_stats_service(auth=auth)
|
result_dict = await ResourceService.get_stats_service(
|
||||||
|
auth=auth,
|
||||||
|
base_url=str(request.base_url)
|
||||||
|
)
|
||||||
logger.info("获取资源统计成功")
|
logger.info("获取资源统计成功")
|
||||||
return SuccessResponse(data=result_dict, msg="获取资源统计成功")
|
return SuccessResponse(data=result_dict, msg="获取资源统计成功")
|
||||||
|
|
||||||
|
|
||||||
@ResourceRouter.post("/export", summary="导出资源列表", description="导出资源列表")
|
@ResourceRouter.post("/export", summary="导出资源列表", description="导出资源列表")
|
||||||
async def export_resource_list_controller(
|
async def export_resource_list_controller(
|
||||||
|
request: Request,
|
||||||
search: ResourceSearchSchema,
|
search: ResourceSearchSchema,
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:export"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:export"]))
|
||||||
) -> StreamingResponse:
|
) -> StreamingResponse:
|
||||||
"""导出资源列表"""
|
"""导出资源列表"""
|
||||||
# 获取搜索结果
|
# 获取搜索结果
|
||||||
result_list = await ResourceService.search_resources_service(auth=auth, search=search)
|
result_list = await ResourceService.search_resources_service(
|
||||||
|
auth=auth,
|
||||||
|
search=search,
|
||||||
|
base_url=str(request.base_url)
|
||||||
|
)
|
||||||
export_result = await ResourceService.export_resource_service(data_list=result_list)
|
export_result = await ResourceService.export_resource_service(data_list=result_list)
|
||||||
|
|
||||||
logger.info("导出资源列表成功")
|
logger.info("导出资源列表成功")
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class ResourceService:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_file_info(cls, file_path: str) -> Dict[str, Any]:
|
def _get_file_info(cls, file_path: str, base_url: Optional[str] = None) -> Dict[str, Any]:
|
||||||
"""获取文件信息"""
|
"""获取文件信息"""
|
||||||
try:
|
try:
|
||||||
safe_path = cls._get_safe_path(file_path)
|
safe_path = cls._get_safe_path(file_path)
|
||||||
@@ -143,9 +143,16 @@ class ResourceService:
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
depth = 0
|
depth = 0
|
||||||
|
|
||||||
|
# 生成HTTP URL路径而不是文件系统路径
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
http_url = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{relative_path}".lstrip('/')).replace('\\', '/').replace('//', '/')
|
||||||
|
else:
|
||||||
|
http_url = f"{settings.STATIC_URL}/{relative_path}".replace('\\', '/').replace('//', '/')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'name': path_obj.name,
|
'name': path_obj.name,
|
||||||
'path': safe_path,
|
'path': http_url, # 返回HTTP URL而不是文件系统路径
|
||||||
'relative_path': relative_path,
|
'relative_path': relative_path,
|
||||||
'is_file': os.path.isfile(safe_path),
|
'is_file': os.path.isfile(safe_path),
|
||||||
'is_dir': os.path.isdir(safe_path),
|
'is_dir': os.path.isdir(safe_path),
|
||||||
@@ -168,16 +175,37 @@ class ResourceService:
|
|||||||
cls,
|
cls,
|
||||||
auth: AuthSchema,
|
auth: AuthSchema,
|
||||||
path: Optional[str] = None,
|
path: Optional[str] = None,
|
||||||
recursive: bool = False,
|
include_hidden: bool = False,
|
||||||
include_hidden: bool = False
|
base_url: Optional[str] = None
|
||||||
) -> Dict:
|
) -> Dict:
|
||||||
"""获取目录列表"""
|
"""获取目录列表"""
|
||||||
try:
|
try:
|
||||||
# 如果没有指定路径,使用静态文件根目录
|
# 如果没有指定路径,使用静态文件根目录
|
||||||
if path is None:
|
if path is None:
|
||||||
safe_path = cls._get_resource_root()
|
safe_path = cls._get_resource_root()
|
||||||
|
# 对于根目录,返回静态URL路径
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
display_path = urljoin(base_url.rstrip('/') + '/', settings.STATIC_URL.lstrip('/'))
|
||||||
|
else:
|
||||||
|
display_path = settings.STATIC_URL
|
||||||
else:
|
else:
|
||||||
safe_path = cls._get_safe_path(path)
|
safe_path = cls._get_safe_path(path)
|
||||||
|
# 对于子目录,生成相对于静态URL的路径
|
||||||
|
resource_root = cls._get_resource_root()
|
||||||
|
try:
|
||||||
|
relative_path = os.path.relpath(safe_path, resource_root)
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
display_path = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{relative_path}".lstrip('/')).replace('\\', '/').replace('//', '/')
|
||||||
|
else:
|
||||||
|
display_path = f"{settings.STATIC_URL}/{relative_path}".replace('\\', '/').replace('//', '/')
|
||||||
|
except ValueError:
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
display_path = urljoin(base_url.rstrip('/') + '/', settings.STATIC_URL.lstrip('/'))
|
||||||
|
else:
|
||||||
|
display_path = settings.STATIC_URL
|
||||||
|
|
||||||
if not os.path.exists(safe_path):
|
if not os.path.exists(safe_path):
|
||||||
raise CustomException(msg='目录不存在')
|
raise CustomException(msg='目录不存在')
|
||||||
@@ -197,7 +225,7 @@ class ResourceService:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
item_path = os.path.join(safe_path, item_name)
|
item_path = os.path.join(safe_path, item_name)
|
||||||
file_info = cls._get_file_info(item_path)
|
file_info = cls._get_file_info(item_path, base_url)
|
||||||
|
|
||||||
if file_info:
|
if file_info:
|
||||||
items.append(ResourceItemSchema(**file_info))
|
items.append(ResourceItemSchema(**file_info))
|
||||||
@@ -208,18 +236,11 @@ class ResourceService:
|
|||||||
elif file_info['is_dir']:
|
elif file_info['is_dir']:
|
||||||
total_dirs += 1
|
total_dirs += 1
|
||||||
|
|
||||||
# 递归统计子目录
|
|
||||||
if recursive:
|
|
||||||
sub_stats = await cls._get_directory_stats(item_path, include_hidden)
|
|
||||||
total_files += sub_stats['files']
|
|
||||||
total_dirs += sub_stats['dirs']
|
|
||||||
total_size += sub_stats['size']
|
|
||||||
|
|
||||||
except PermissionError:
|
except PermissionError:
|
||||||
raise CustomException(msg='没有权限访问此目录')
|
raise CustomException(msg='没有权限访问此目录')
|
||||||
|
|
||||||
return ResourceDirectorySchema(
|
return ResourceDirectorySchema(
|
||||||
path=safe_path,
|
path=display_path, # 返回HTTP URL路径而不是文件系统路径
|
||||||
name=os.path.basename(safe_path),
|
name=os.path.basename(safe_path),
|
||||||
items=items,
|
items=items,
|
||||||
total_files=total_files,
|
total_files=total_files,
|
||||||
@@ -264,7 +285,8 @@ class ResourceService:
|
|||||||
async def search_resources_service(
|
async def search_resources_service(
|
||||||
cls,
|
cls,
|
||||||
auth: AuthSchema,
|
auth: AuthSchema,
|
||||||
search: ResourceSearchSchema
|
search: ResourceSearchSchema,
|
||||||
|
base_url: Optional[str] = None
|
||||||
) -> List[Dict]:
|
) -> List[Dict]:
|
||||||
"""搜索资源"""
|
"""搜索资源"""
|
||||||
try:
|
try:
|
||||||
@@ -302,7 +324,7 @@ class ResourceService:
|
|||||||
if file_ext not in search.extensions:
|
if file_ext not in search.extensions:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
file_info = cls._get_file_info(file_path)
|
file_info = cls._get_file_info(file_path, base_url)
|
||||||
|
|
||||||
if cls._match_search_criteria(file_info, search):
|
if cls._match_search_criteria(file_info, search):
|
||||||
results.append(file_info)
|
results.append(file_info)
|
||||||
@@ -387,7 +409,8 @@ class ResourceService:
|
|||||||
cls,
|
cls,
|
||||||
auth: AuthSchema,
|
auth: AuthSchema,
|
||||||
file: UploadFile,
|
file: UploadFile,
|
||||||
target_path: Optional[str] = None
|
target_path: Optional[str] = None,
|
||||||
|
base_url: Optional[str] = None
|
||||||
) -> Dict:
|
) -> Dict:
|
||||||
"""上传文件到指定目录"""
|
"""上传文件到指定目录"""
|
||||||
if not file or not file.filename:
|
if not file or not file.filename:
|
||||||
@@ -432,7 +455,7 @@ class ResourceService:
|
|||||||
f.write(content)
|
f.write(content)
|
||||||
|
|
||||||
# 获取文件信息
|
# 获取文件信息
|
||||||
file_info = cls._get_file_info(file_path)
|
file_info = cls._get_file_info(file_path, base_url)
|
||||||
|
|
||||||
# 生成相对于资源根目录的URL路径
|
# 生成相对于资源根目录的URL路径
|
||||||
resource_root = cls._get_resource_root()
|
resource_root = cls._get_resource_root()
|
||||||
@@ -440,16 +463,25 @@ class ResourceService:
|
|||||||
relative_path = os.path.relpath(file_path, resource_root)
|
relative_path = os.path.relpath(file_path, resource_root)
|
||||||
# 确保路径使用正斜杠(URL格式)
|
# 确保路径使用正斜杠(URL格式)
|
||||||
file_url_path = relative_path.replace(os.sep, '/')
|
file_url_path = relative_path.replace(os.sep, '/')
|
||||||
file_url = f"/resource/download?path={file_url_path}"
|
# 如果提供了base_url,使用它生成完整URL,否则使用settings.STATIC_URL
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
file_url = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{file_url_path}".lstrip('/'))
|
||||||
|
else:
|
||||||
|
file_url = f"{settings.STATIC_URL}/{file_url_path}".replace('//', '/')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# 如果无法计算相对路径,使用文件名
|
# 如果无法计算相对路径,使用文件名
|
||||||
file_url = f"/resource/download?path={filename}"
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
file_url = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{filename}".lstrip('/'))
|
||||||
|
else:
|
||||||
|
file_url = f"{settings.STATIC_URL}/{filename}"
|
||||||
|
|
||||||
logger.info(f"文件上传成功: {filename}")
|
logger.info(f"文件上传成功: {filename}")
|
||||||
|
|
||||||
return ResourceUploadSchema(
|
return ResourceUploadSchema(
|
||||||
filename=filename,
|
filename=filename,
|
||||||
file_path=file_path,
|
file_path=file_url, # 返回HTTP URL而不是文件系统路径
|
||||||
file_url=file_url,
|
file_url=file_url,
|
||||||
file_size=file_info.get('size', 0),
|
file_size=file_info.get('size', 0),
|
||||||
resource_type=file_info.get('resource_type', ResourceType.OTHER),
|
resource_type=file_info.get('resource_type', ResourceType.OTHER),
|
||||||
@@ -461,7 +493,7 @@ class ResourceService:
|
|||||||
raise CustomException(msg=f"文件上传失败: {str(e)}")
|
raise CustomException(msg=f"文件上传失败: {str(e)}")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def download_file_service(cls, auth: AuthSchema, file_path: str) -> str:
|
async def download_file_service(cls, auth: AuthSchema, file_path: str, base_url: Optional[str] = None) -> str:
|
||||||
"""下载文件(返回文件路径)"""
|
"""下载文件(返回文件路径)"""
|
||||||
try:
|
try:
|
||||||
safe_path = cls._get_safe_path(file_path)
|
safe_path = cls._get_safe_path(file_path)
|
||||||
@@ -472,8 +504,28 @@ class ResourceService:
|
|||||||
if not os.path.isfile(safe_path):
|
if not os.path.isfile(safe_path):
|
||||||
raise CustomException(msg='路径不是文件')
|
raise CustomException(msg='路径不是文件')
|
||||||
|
|
||||||
logger.info(f"下载文件: {safe_path}")
|
# 生成HTTP URL路径而不是返回文件系统路径
|
||||||
return safe_path
|
resource_root = cls._get_resource_root()
|
||||||
|
try:
|
||||||
|
relative_path = os.path.relpath(safe_path, resource_root)
|
||||||
|
# 生成HTTP URL
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
http_url = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{relative_path}".lstrip('/')).replace('\\', '/').replace('//', '/')
|
||||||
|
else:
|
||||||
|
http_url = f"{settings.STATIC_URL}/{relative_path}".replace('\\', '/').replace('//', '/')
|
||||||
|
logger.info(f"生成文件访问URL: {http_url}")
|
||||||
|
return http_url
|
||||||
|
except ValueError:
|
||||||
|
# 如果无法计算相对路径,使用文件名
|
||||||
|
filename = os.path.basename(safe_path)
|
||||||
|
if base_url:
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
http_url = urljoin(base_url.rstrip('/') + '/', f"{settings.STATIC_URL.lstrip('/')}/{filename}".lstrip('/'))
|
||||||
|
else:
|
||||||
|
http_url = f"{settings.STATIC_URL}/{filename}"
|
||||||
|
logger.info(f"生成文件访问URL: {http_url}")
|
||||||
|
return http_url
|
||||||
|
|
||||||
except CustomException:
|
except CustomException:
|
||||||
raise
|
raise
|
||||||
@@ -628,7 +680,7 @@ class ResourceService:
|
|||||||
raise CustomException(msg=f"创建目录失败: {str(e)}")
|
raise CustomException(msg=f"创建目录失败: {str(e)}")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_stats_service(cls, auth: AuthSchema) -> Dict:
|
async def get_stats_service(cls, auth: AuthSchema, base_url: Optional[str] = None) -> Dict:
|
||||||
"""获取资源统计信息"""
|
"""获取资源统计信息"""
|
||||||
try:
|
try:
|
||||||
# 使用静态文件根目录
|
# 使用静态文件根目录
|
||||||
@@ -653,7 +705,7 @@ class ResourceService:
|
|||||||
for file in files:
|
for file in files:
|
||||||
file_path = os.path.join(root, file)
|
file_path = os.path.join(root, file)
|
||||||
try:
|
try:
|
||||||
file_info = cls._get_file_info(file_path)
|
file_info = cls._get_file_info(file_path, base_url)
|
||||||
if file_info:
|
if file_info:
|
||||||
total_files += 1
|
total_files += 1
|
||||||
total_size += file_info.get('size', 0) or 0
|
total_size += file_info.get('size', 0) or 0
|
||||||
|
|||||||
@@ -150,4 +150,3 @@ async def mongodb_connect(app: FastAPI, status: bool) -> AsyncIOMotorClient:
|
|||||||
else:
|
else:
|
||||||
app.state.mongo_client.close()
|
app.state.mongo_client.close()
|
||||||
logger.info("MongoDB连接已关闭")
|
logger.info("MongoDB连接已关闭")
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,7 @@ from app.api.v1.module_system.auth.schema import AuthSchema
|
|||||||
async def db_getter() -> AsyncGenerator[AsyncSession, None]:
|
async def db_getter() -> AsyncGenerator[AsyncSession, None]:
|
||||||
"""获取数据库会话连接"""
|
"""获取数据库会话连接"""
|
||||||
async with session_connect() as session:
|
async with session_connect() as session:
|
||||||
async with session.begin():
|
yield session
|
||||||
yield session
|
|
||||||
|
|
||||||
async def redis_getter(request: Request) -> Redis:
|
async def redis_getter(request: Request) -> Redis:
|
||||||
"""获取Redis连接"""
|
"""获取Redis连接"""
|
||||||
|
|||||||
@@ -105,20 +105,18 @@ class OperationLogRoute(APIRoute):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
async with session_connect() as session:
|
async with session_connect() as session:
|
||||||
async with session.begin():
|
auth = AuthSchema(db=session)
|
||||||
auth = AuthSchema(db=session)
|
await OperationLogService.create_log_service(data=OperationLogCreateSchema(
|
||||||
|
type = log_type,
|
||||||
await OperationLogService.create_log_service(data=OperationLogCreateSchema(
|
request_path = request.url.path,
|
||||||
type = log_type,
|
request_method = request.method,
|
||||||
request_path = request.url.path,
|
request_payload = payload,
|
||||||
request_method = request.method,
|
request_ip = request_ip,
|
||||||
request_payload = payload,
|
login_location=login_location,
|
||||||
request_ip = request_ip,
|
request_os = user_agent.os.family,
|
||||||
login_location=login_location,
|
request_browser = user_agent.browser.family,
|
||||||
request_os = user_agent.os.family,
|
response_code = response.status_code,
|
||||||
request_browser = user_agent.browser.family,
|
response_json = response_data.decode(),
|
||||||
response_code = response.status_code,
|
|
||||||
response_json = response_data.decode(),
|
|
||||||
process_time = process_time,
|
process_time = process_time,
|
||||||
description = route.summary,
|
description = route.summary,
|
||||||
creator_id = current_user_id
|
creator_id = current_user_id
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[Any, Any]:
|
|||||||
logger.info(settings.BANNER + '\n' + f'{settings.TITLE} 服务开始启动...')
|
logger.info(settings.BANNER + '\n' + f'{settings.TITLE} 服务开始启动...')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 在单独的会话中完成其他初始化操作
|
# 使用单个会话完成所有初始化操作
|
||||||
async with session_connect() as session:
|
async with session_connect() as session:
|
||||||
# 测试数据库连接
|
# 测试数据库连接
|
||||||
await test_db_connection(session)
|
await test_db_connection(session)
|
||||||
|
|||||||
@@ -103,77 +103,90 @@ class InitializeData:
|
|||||||
|
|
||||||
async def __init_data(self, db: AsyncSession) -> None:
|
async def __init_data(self, db: AsyncSession) -> None:
|
||||||
"""初始化基础数据"""
|
"""初始化基础数据"""
|
||||||
for model in self.prepare_init_models:
|
|
||||||
table_name = model.__tablename__
|
|
||||||
|
|
||||||
# 检查表中是否已经有数据
|
|
||||||
count_result = await db.execute(select(func.count()).select_from(model))
|
|
||||||
existing_count = count_result.scalar()
|
|
||||||
|
|
||||||
if existing_count > 0:
|
|
||||||
logger.warning(f"跳过 {table_name} 表数据初始化(表已存在 {existing_count} 条记录)")
|
|
||||||
continue
|
|
||||||
|
|
||||||
data = await self.__get_data(table_name)
|
|
||||||
if not data:
|
|
||||||
logger.warning(f"跳过 {table_name} 表,无初始化数据")
|
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
|
||||||
# 表为空,直接插入全部数据
|
|
||||||
objs = [model(**item) for item in data]
|
|
||||||
db.add_all(objs)
|
|
||||||
await db.flush()
|
|
||||||
logger.info(f"已向 {table_name} 表写入 {len(objs)} 条记录")
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"初始化 {table_name} 表数据失败: {str(e)}")
|
|
||||||
raise
|
|
||||||
|
|
||||||
# 更新 PostgreSQL 序列值,确保自增 ID 正确
|
|
||||||
if settings.DATABASE_TYPE == "postgresql":
|
|
||||||
await self.__update_postgresql_sequences(db)
|
|
||||||
|
|
||||||
async def __update_postgresql_sequences(self, db: AsyncSession) -> None:
|
|
||||||
"""更新 PostgreSQL 序列值,确保自增 ID 正确"""
|
|
||||||
try:
|
try:
|
||||||
# 为每个有初始化数据的表更新序列值(只处理有id字段的模型)
|
inserted_data = False # 标记是否有数据插入
|
||||||
for model in self.models_with_id:
|
|
||||||
|
for model in self.prepare_init_models:
|
||||||
table_name = model.__tablename__
|
table_name = model.__tablename__
|
||||||
|
|
||||||
# 检查表中是否有数据
|
# 检查表中是否已经有数据
|
||||||
count_result = await db.execute(select(func.count()).select_from(model))
|
count_result = await db.execute(select(func.count()).select_from(model))
|
||||||
existing_count = count_result.scalar()
|
existing_count = count_result.scalar()
|
||||||
|
|
||||||
|
logger.info(f"检查表 {table_name} 数据: 已存在 {existing_count} 条记录")
|
||||||
|
|
||||||
if existing_count > 0:
|
if existing_count > 0:
|
||||||
# 检查模型是否有id属性
|
logger.warning(f"跳过 {table_name} 表数据初始化(表已存在 {existing_count} 条记录)")
|
||||||
if not hasattr(model, 'id'):
|
continue
|
||||||
continue
|
|
||||||
|
|
||||||
# 获取表中最大的 ID 值
|
data = await self.__get_data(table_name)
|
||||||
max_id_result = await db.execute(select(func.max(model.id)).select_from(model))
|
if not data:
|
||||||
max_id = max_id_result.scalar()
|
logger.warning(f"跳过 {table_name} 表,无初始化数据")
|
||||||
|
continue
|
||||||
|
|
||||||
if max_id is not None:
|
try:
|
||||||
# 更新序列值
|
# 表为空,直接插入全部数据
|
||||||
sequence_name = f"{table_name}_id_seq"
|
logger.info(f"准备向 {table_name} 表插入 {len(data)} 条记录")
|
||||||
await db.execute(text(f"SELECT setval('{sequence_name}', {max_id}, true)"))
|
objs = [model(**item) for item in data]
|
||||||
logger.info(f"已更新 {table_name} 表的序列 {sequence_name} 值为 {max_id}")
|
db.add_all(objs)
|
||||||
|
inserted_data = True
|
||||||
|
|
||||||
|
# 对于 PostgreSQL,更新序列值
|
||||||
|
if settings.DATABASE_TYPE == "postgresql" and model in self.models_with_id and len(objs) > 0:
|
||||||
|
await self.__update_postgresql_sequence_for_model(db, model, table_name)
|
||||||
|
|
||||||
|
logger.info(f"已向 {table_name} 表写入 {len(objs)} 条记录")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"初始化 {table_name} 表数据失败: {str(e)}")
|
||||||
|
raise
|
||||||
|
|
||||||
|
# 只有在有数据插入时才提交事务
|
||||||
|
if inserted_data:
|
||||||
|
await db.commit()
|
||||||
|
logger.info("数据初始化事务已提交")
|
||||||
|
else:
|
||||||
|
logger.info("没有新数据需要插入,跳过事务提交")
|
||||||
|
|
||||||
await db.commit()
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"更新 PostgreSQL 序列值失败: {str(e)}")
|
logger.error(f"初始化数据过程中出现错误: {str(e)}")
|
||||||
|
# 如果出现错误,回滚事务
|
||||||
|
await db.rollback()
|
||||||
raise
|
raise
|
||||||
|
|
||||||
async def __get_data(self, filename: str) -> List[Dict]:
|
async def __update_postgresql_sequence_for_model(self, db: AsyncSession, model, table_name: str) -> None:
|
||||||
|
"""为特定模型更新 PostgreSQL 序列值"""
|
||||||
|
try:
|
||||||
|
# 检查模型是否有id属性
|
||||||
|
if not hasattr(model, 'id'):
|
||||||
|
return
|
||||||
|
|
||||||
|
# 获取表中最大的 ID 值
|
||||||
|
max_id_result = await db.execute(select(func.max(model.id)).select_from(model))
|
||||||
|
max_id = max_id_result.scalar()
|
||||||
|
|
||||||
|
if max_id is not None and max_id > 0:
|
||||||
|
# 更新序列值
|
||||||
|
sequence_name = f"{table_name}_id_seq"
|
||||||
|
await db.execute(text(f"SELECT setval('{sequence_name}', {max_id}, true)"))
|
||||||
|
logger.info(f"已更新 {table_name} 表的序列 {sequence_name} 值为 {max_id}")
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"更新 {table_name} 表的 PostgreSQL 序列值失败: {str(e)}")
|
||||||
|
# 不抛出异常,因为序列更新失败不应该导致整个初始化失败
|
||||||
|
|
||||||
|
async def __get_data(self, table_name: str) -> List[Dict]:
|
||||||
"""读取初始化数据文件"""
|
"""读取初始化数据文件"""
|
||||||
json_path = Path.joinpath(settings.SCRIPT_DIR, f'{filename}.json')
|
json_path = Path.joinpath(settings.SCRIPT_DIR, f'{table_name}.json')
|
||||||
|
logger.info(f"尝试读取初始化数据文件: {json_path}")
|
||||||
if not json_path.exists():
|
if not json_path.exists():
|
||||||
|
logger.warning(f"初始化数据文件不存在: {json_path}")
|
||||||
return []
|
return []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(json_path, 'r', encoding='utf-8') as f:
|
with open(json_path, 'r', encoding='utf-8') as f:
|
||||||
return json.loads(f.read())
|
data = json.loads(f.read())
|
||||||
|
logger.info(f"成功读取 {table_name} 数据文件,包含 {len(data)} 条记录")
|
||||||
|
return data
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
logger.error(f"解析 {json_path} 失败: {str(e)}")
|
logger.error(f"解析 {json_path} 失败: {str(e)}")
|
||||||
raise
|
raise
|
||||||
@@ -185,4 +198,8 @@ class InitializeData:
|
|||||||
"""
|
"""
|
||||||
执行完整初始化流程
|
执行完整初始化流程
|
||||||
"""
|
"""
|
||||||
|
logger.info("开始执行数据库初始化流程")
|
||||||
await self.__init_model(db)
|
await self.__init_model(db)
|
||||||
|
# 刷新session以确保数据可见性
|
||||||
|
await db.flush()
|
||||||
|
logger.info("数据库初始化流程完成")
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
from openai import AsyncOpenAI, OpenAI
|
from openai import AsyncOpenAI, OpenAI
|
||||||
from openai.types.chat.chat_completion import ChatCompletion
|
from openai.types.chat.chat_completion import ChatCompletion
|
||||||
|
import httpx
|
||||||
|
|
||||||
from app.config.setting import settings
|
from app.config.setting import settings
|
||||||
from app.core.logger import logger
|
from app.core.logger import logger
|
||||||
@@ -11,10 +12,17 @@ class AIClient:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.model = settings.QWEN_MODEL
|
self.model = settings.QWEN_MODEL
|
||||||
# 使用默认的http客户端,避免资源管理问题
|
# 创建一个不带冲突参数的httpx客户端
|
||||||
|
self.http_client = httpx.AsyncClient(
|
||||||
|
timeout=30.0,
|
||||||
|
follow_redirects=True
|
||||||
|
)
|
||||||
|
|
||||||
|
# 使用自定义的http客户端
|
||||||
self.client = AsyncOpenAI(
|
self.client = AsyncOpenAI(
|
||||||
api_key=settings.QWEN_API_KEY,
|
api_key=settings.QWEN_API_KEY,
|
||||||
base_url=settings.QWEN_BASE_URL,
|
base_url=settings.QWEN_BASE_URL,
|
||||||
|
http_client=self.http_client
|
||||||
)
|
)
|
||||||
|
|
||||||
async def process(self, query: str):
|
async def process(self, query: str):
|
||||||
@@ -34,9 +42,16 @@ class AIClient:
|
|||||||
|
|
||||||
# 流式返回响应
|
# 流式返回响应
|
||||||
async for chunk in response:
|
async for chunk in response:
|
||||||
if chunk.choices[0].delta.content is not None:
|
if chunk.choices and chunk.choices[0].delta.content:
|
||||||
yield chunk.choices[0].delta.content
|
yield chunk.choices[0].delta.content
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"AI处理查询失败: {str(e)}")
|
logger.error(f"AI处理查询失败: {str(e)}")
|
||||||
yield f"抱歉,处理您的请求时出现了错误: {str(e)}"
|
yield f"抱歉,处理您的请求时出现了错误: {str(e)}"
|
||||||
|
|
||||||
|
async def close(self):
|
||||||
|
"""关闭客户端连接"""
|
||||||
|
if hasattr(self, 'client'):
|
||||||
|
await self.client.close()
|
||||||
|
if hasattr(self, 'http_client'):
|
||||||
|
await self.http_client.aclose()
|
||||||
@@ -1,593 +0,0 @@
|
|||||||
-- MySQL dump 10.13 Distrib 8.4.3, for macos14.5 (arm64)
|
|
||||||
--
|
|
||||||
-- Host: 127.0.0.1 Database: fastapiadmin
|
|
||||||
-- ------------------------------------------------------
|
|
||||||
-- Server version 8.4.3
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
||||||
/*!50503 SET NAMES utf8mb4 */;
|
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
||||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `application_myapp`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `application_myapp`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `application_myapp` (
|
|
||||||
`name` varchar(64) NOT NULL COMMENT '应用名称',
|
|
||||||
`access_url` varchar(500) NOT NULL COMMENT '访问地址',
|
|
||||||
`icon_url` varchar(300) DEFAULT NULL COMMENT '应用图标URL',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `name` (`name`),
|
|
||||||
KEY `ix_application_myapp_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='应用系统表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `application_myapp`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `application_myapp` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `application_myapp` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `example_demo`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `example_demo`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `example_demo` (
|
|
||||||
`name` varchar(64) DEFAULT NULL COMMENT '名称',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `ix_example_demo_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='示例表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `example_demo`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `example_demo` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `example_demo` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `monitor_job`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `monitor_job`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `monitor_job` (
|
|
||||||
`name` varchar(64) DEFAULT NULL COMMENT '任务名称',
|
|
||||||
`jobstore` varchar(64) DEFAULT NULL COMMENT '存储器',
|
|
||||||
`executor` varchar(64) DEFAULT NULL COMMENT '执行器:将运行此作业的执行程序的名称',
|
|
||||||
`trigger` varchar(64) NOT NULL COMMENT '触发器:控制此作业计划的 trigger 对象',
|
|
||||||
`trigger_args` text COMMENT '触发器参数',
|
|
||||||
`func` text NOT NULL COMMENT '任务函数',
|
|
||||||
`args` text COMMENT '位置参数',
|
|
||||||
`kwargs` text COMMENT '关键字参数',
|
|
||||||
`coalesce` tinyint(1) DEFAULT NULL COMMENT '是否合并运行:是否在多个运行时间到期时仅运行作业一次',
|
|
||||||
`max_instances` int DEFAULT NULL COMMENT '最大实例数:允许的最大并发执行实例数 工作',
|
|
||||||
`start_date` varchar(64) DEFAULT NULL COMMENT '开始时间',
|
|
||||||
`end_date` varchar(64) DEFAULT NULL COMMENT '结束时间',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `ix_monitor_job_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `monitor_job`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `monitor_job` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `monitor_job` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `monitor_job_log`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `monitor_job_log`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `monitor_job_log` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`job_name` varchar(64) NOT NULL COMMENT '任务名称',
|
|
||||||
`job_group` varchar(64) NOT NULL COMMENT '任务组名',
|
|
||||||
`job_executor` varchar(64) NOT NULL COMMENT '任务执行器',
|
|
||||||
`invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',
|
|
||||||
`job_args` varchar(255) DEFAULT NULL COMMENT '位置参数',
|
|
||||||
`job_kwargs` varchar(255) DEFAULT NULL COMMENT '关键字参数',
|
|
||||||
`job_trigger` varchar(255) DEFAULT NULL COMMENT '任务触发器',
|
|
||||||
`job_message` varchar(500) DEFAULT NULL COMMENT '日志信息',
|
|
||||||
`exception_info` varchar(2000) DEFAULT NULL COMMENT '异常信息',
|
|
||||||
`job_id` int DEFAULT NULL COMMENT '任务ID',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `job_id` (`job_id`),
|
|
||||||
CONSTRAINT `monitor_job_log_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `monitor_job` (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度日志表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `monitor_job_log`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `monitor_job_log` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `monitor_job_log` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_config`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_config`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_config` (
|
|
||||||
`config_name` varchar(500) NOT NULL COMMENT '参数名称',
|
|
||||||
`config_key` varchar(500) NOT NULL COMMENT '参数键名',
|
|
||||||
`config_value` varchar(500) DEFAULT NULL COMMENT '参数键值',
|
|
||||||
`config_type` tinyint(1) DEFAULT NULL COMMENT '系统内置(True:是 False:否)',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `config_name` (`config_name`),
|
|
||||||
UNIQUE KEY `config_key` (`config_key`),
|
|
||||||
KEY `ix_system_config_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统配置表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_config`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_config` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_config` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_dept`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_dept`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_dept` (
|
|
||||||
`name` varchar(40) NOT NULL COMMENT '部门名称',
|
|
||||||
`order` int NOT NULL COMMENT '显示排序',
|
|
||||||
`parent_id` int DEFAULT NULL COMMENT '父级部门ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `name` (`name`),
|
|
||||||
KEY `ix_system_dept_parent_id` (`parent_id`),
|
|
||||||
CONSTRAINT `system_dept_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `system_dept` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_dept`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_dept` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_dept` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_dict_data`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_dict_data`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_dict_data` (
|
|
||||||
`dict_sort` int NOT NULL COMMENT '字典排序',
|
|
||||||
`dict_label` varchar(100) NOT NULL COMMENT '字典标签',
|
|
||||||
`dict_value` varchar(100) NOT NULL COMMENT '字典键值',
|
|
||||||
`dict_type` varchar(100) NOT NULL COMMENT '字典类型',
|
|
||||||
`css_class` varchar(100) DEFAULT NULL COMMENT '样式属性(其他样式扩展)',
|
|
||||||
`list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式',
|
|
||||||
`is_default` tinyint(1) NOT NULL COMMENT '是否默认(True是 False否)',
|
|
||||||
`dict_type_id` int DEFAULT NULL COMMENT '字典类型ID',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `dict_type_id` (`dict_type_id`),
|
|
||||||
KEY `ix_system_dict_data_creator_id` (`creator_id`),
|
|
||||||
CONSTRAINT `system_dict_data_ibfk_1` FOREIGN KEY (`dict_type_id`) REFERENCES `system_dict_type` (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典数据表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_dict_data`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_dict_data` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_dict_data` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_dict_type`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_dict_type`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_dict_type` (
|
|
||||||
`dict_name` varchar(100) NOT NULL COMMENT '字典名称',
|
|
||||||
`dict_type` varchar(100) NOT NULL COMMENT '字典类型',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `dict_name` (`dict_name`),
|
|
||||||
UNIQUE KEY `dict_type` (`dict_type`),
|
|
||||||
KEY `ix_system_dict_type_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典类型表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_dict_type`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_dict_type` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_dict_type` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_log`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_log`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_log` (
|
|
||||||
`type` int NOT NULL COMMENT '日志类型(1登录日志 2操作日志)',
|
|
||||||
`request_path` varchar(255) NOT NULL COMMENT '请求路径',
|
|
||||||
`request_method` varchar(10) NOT NULL COMMENT '请求方式',
|
|
||||||
`request_payload` text COMMENT '请求体',
|
|
||||||
`request_ip` varchar(50) DEFAULT NULL COMMENT '请求IP地址',
|
|
||||||
`login_location` varchar(255) DEFAULT NULL COMMENT '登录位置',
|
|
||||||
`request_os` varchar(64) DEFAULT NULL COMMENT '操作系统',
|
|
||||||
`request_browser` varchar(64) DEFAULT NULL COMMENT '浏览器',
|
|
||||||
`response_code` int NOT NULL COMMENT '响应状态码',
|
|
||||||
`response_json` text COMMENT '响应体',
|
|
||||||
`process_time` varchar(20) DEFAULT NULL COMMENT '处理时间',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `ix_system_log_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统日志表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_log`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_log` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_log` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_menu`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_menu`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_menu` (
|
|
||||||
`name` varchar(50) NOT NULL COMMENT '菜单名称',
|
|
||||||
`type` int NOT NULL COMMENT '菜单类型(1:目录 2:菜单 3:按钮/权限 4:链接)',
|
|
||||||
`order` int NOT NULL COMMENT '显示排序',
|
|
||||||
`permission` varchar(100) DEFAULT NULL COMMENT '权限标识(如:system:user:list)',
|
|
||||||
`icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
|
|
||||||
`route_name` varchar(100) DEFAULT NULL COMMENT '路由名称',
|
|
||||||
`route_path` varchar(200) DEFAULT NULL COMMENT '路由路径',
|
|
||||||
`component_path` varchar(200) DEFAULT NULL COMMENT '组件路径',
|
|
||||||
`redirect` varchar(200) DEFAULT NULL COMMENT '重定向地址',
|
|
||||||
`hidden` tinyint(1) NOT NULL COMMENT '是否隐藏(True:隐藏 False:显示)',
|
|
||||||
`keep_alive` tinyint(1) NOT NULL COMMENT '是否缓存(True:是 False:否)',
|
|
||||||
`always_show` tinyint(1) NOT NULL COMMENT '是否始终显示(True:是 False:否)',
|
|
||||||
`title` varchar(50) DEFAULT NULL COMMENT '菜单标题',
|
|
||||||
`params` json DEFAULT NULL COMMENT '路由参数(JSON对象)',
|
|
||||||
`affix` tinyint(1) NOT NULL COMMENT '是否固定标签页(True:是 False:否)',
|
|
||||||
`parent_id` int DEFAULT NULL COMMENT '父菜单ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `name` (`name`),
|
|
||||||
KEY `ix_system_menu_parent_id` (`parent_id`),
|
|
||||||
CONSTRAINT `system_menu_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `system_menu` (`id`) ON DELETE SET NULL
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_menu`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_menu` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_menu` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_notice`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_notice`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_notice` (
|
|
||||||
`notice_title` varchar(50) NOT NULL COMMENT '公告标题',
|
|
||||||
`notice_type` varchar(50) NOT NULL COMMENT '公告类型(1通知 2公告)',
|
|
||||||
`notice_content` text COMMENT '公告内容',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `ix_system_notice_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通知公告表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_notice`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_notice` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_notice` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_position`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_position`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_position` (
|
|
||||||
`name` varchar(40) NOT NULL COMMENT '岗位名称',
|
|
||||||
`order` int NOT NULL COMMENT '显示排序',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `name` (`name`),
|
|
||||||
KEY `ix_system_position_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='岗位表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_position`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_position` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_position` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_role`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_role`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_role` (
|
|
||||||
`name` varchar(40) NOT NULL COMMENT '角色名称',
|
|
||||||
`code` varchar(20) DEFAULT NULL COMMENT '角色编码',
|
|
||||||
`order` int NOT NULL COMMENT '显示排序',
|
|
||||||
`data_scope` int NOT NULL COMMENT '数据权限范围',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `name` (`name`),
|
|
||||||
UNIQUE KEY `code` (`code`),
|
|
||||||
KEY `ix_system_role_creator_id` (`creator_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_role`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_role` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_role` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_role_depts`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_role_depts`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_role_depts` (
|
|
||||||
`role_id` int NOT NULL COMMENT '角色ID',
|
|
||||||
`dept_id` int NOT NULL COMMENT '部门ID',
|
|
||||||
PRIMARY KEY (`role_id`,`dept_id`),
|
|
||||||
KEY `dept_id` (`dept_id`),
|
|
||||||
CONSTRAINT `system_role_depts_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `system_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT `system_role_depts_ibfk_2` FOREIGN KEY (`dept_id`) REFERENCES `system_dept` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色部门关联表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_role_depts`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_role_depts` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_role_depts` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_role_menus`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_role_menus`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_role_menus` (
|
|
||||||
`role_id` int NOT NULL COMMENT '角色ID',
|
|
||||||
`menu_id` int NOT NULL COMMENT '菜单ID',
|
|
||||||
PRIMARY KEY (`role_id`,`menu_id`),
|
|
||||||
KEY `menu_id` (`menu_id`),
|
|
||||||
CONSTRAINT `system_role_menus_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `system_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT `system_role_menus_ibfk_2` FOREIGN KEY (`menu_id`) REFERENCES `system_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色菜单关联表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_role_menus`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_role_menus` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_role_menus` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_user_positions`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_user_positions`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_user_positions` (
|
|
||||||
`user_id` int NOT NULL COMMENT '用户ID',
|
|
||||||
`position_id` int NOT NULL COMMENT '岗位ID',
|
|
||||||
PRIMARY KEY (`user_id`,`position_id`),
|
|
||||||
KEY `position_id` (`position_id`),
|
|
||||||
CONSTRAINT `system_user_positions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `system_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT `system_user_positions_ibfk_2` FOREIGN KEY (`position_id`) REFERENCES `system_position` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户岗位关联表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_user_positions`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_user_positions` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_user_positions` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_user_roles`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_user_roles`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_user_roles` (
|
|
||||||
`user_id` int NOT NULL COMMENT '用户ID',
|
|
||||||
`role_id` int NOT NULL COMMENT '角色ID',
|
|
||||||
PRIMARY KEY (`user_id`,`role_id`),
|
|
||||||
KEY `role_id` (`role_id`),
|
|
||||||
CONSTRAINT `system_user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `system_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT `system_user_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `system_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户角色关联表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_user_roles`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_user_roles` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_user_roles` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `system_users`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `system_users`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!50503 SET character_set_client = utf8mb4 */;
|
|
||||||
CREATE TABLE `system_users` (
|
|
||||||
`username` varchar(32) NOT NULL COMMENT '用户名/登录账号',
|
|
||||||
`password` varchar(255) NOT NULL COMMENT '密码哈希',
|
|
||||||
`name` varchar(32) NOT NULL COMMENT '昵称',
|
|
||||||
`mobile` varchar(20) DEFAULT NULL COMMENT '手机号',
|
|
||||||
`email` varchar(64) DEFAULT NULL COMMENT '邮箱',
|
|
||||||
`gender` varchar(1) DEFAULT NULL COMMENT '性别(0:男 1:女 2:未知)',
|
|
||||||
`avatar` varchar(500) DEFAULT NULL COMMENT '头像URL地址',
|
|
||||||
`is_superuser` tinyint(1) NOT NULL COMMENT '是否超管',
|
|
||||||
`last_login` datetime DEFAULT NULL COMMENT '最后登录时间',
|
|
||||||
`dept_id` int DEFAULT NULL COMMENT '部门ID',
|
|
||||||
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`status` tinyint(1) NOT NULL COMMENT '是否启用(True:启用 False:禁用)',
|
|
||||||
`description` text COMMENT '备注说明',
|
|
||||||
`created_at` datetime NOT NULL COMMENT '创建时间',
|
|
||||||
`updated_at` datetime NOT NULL COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `username` (`username`),
|
|
||||||
UNIQUE KEY `mobile` (`mobile`),
|
|
||||||
UNIQUE KEY `email` (`email`),
|
|
||||||
KEY `ix_system_users_creator_id` (`creator_id`),
|
|
||||||
KEY `ix_system_users_dept_id` (`dept_id`),
|
|
||||||
CONSTRAINT `system_users_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `system_dept` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表';
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `system_users`
|
|
||||||
--
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `system_users` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `system_users` ENABLE KEYS */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping routines for database 'fastapiadmin'
|
|
||||||
--
|
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-09-08 22:01:38
|
|
||||||
File diff suppressed because one or more lines are too long
+191
-194
@@ -2146,9 +2146,9 @@ COPY public.example_demo (name, creator_id, id, status, description, created_at,
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.monitor_job (name, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.monitor_job (name, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
系统默认(无参) default default cron 0 0 12 * * ? scheduler_test.job \N \N f 1 \N \N 1 1 f \N 2025-09-08 21:32:24.32889 2025-09-08 21:32:24.328891
|
系统默认(无参) default default cron 0 0 12 * * ? scheduler_test.job \N \N f 1 \N \N 1 1 f \N 2025-09-09 00:30:45.274334 2025-09-09 00:30:45.274335
|
||||||
系统默认(有参) default default cron 0 0 12 * * ? scheduler_test.job test \N f 1 \N \N 1 2 f \N 2025-09-08 21:32:24.328892 2025-09-08 21:32:24.328892
|
系统默认(有参) default default cron 0 0 12 * * ? scheduler_test.job test \N f 1 \N \N 1 2 f \N 2025-09-09 00:30:45.274336 2025-09-09 00:30:45.274336
|
||||||
系统默认(多参) default default cron 0 0 12 * * ? scheduler_test.job new {"test": 111} f 1 \N \N 1 3 f \N 2025-09-08 21:32:24.328893 2025-09-08 21:32:24.328893
|
系统默认(多参) default default cron 0 0 12 * * ? scheduler_test.job new {"test": 111} f 1 \N \N 1 3 f \N 2025-09-09 00:30:45.274336 2025-09-09 00:30:45.274337
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2165,18 +2165,18 @@ COPY public.monitor_job_log (id, job_name, job_group, job_executor, invoke_targe
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_config (config_name, config_key, config_value, config_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_config (config_name, config_key, config_value, config_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
网站名称 sys_web_title FastAPI Vue3 Admin t 1 1 t 网站名称 2025-09-08 21:32:24.319675 2025-09-08 21:32:24.319676
|
网站名称 sys_web_title FastAPI Vue3 Admin t 1 1 t 网站名称 2025-09-09 00:30:45.260096 2025-09-09 00:30:45.260097
|
||||||
网站描述 sys_web_description FastAPI Vue3 Admin 是完全开源的权限管理系统 t 1 2 t 网站描述 2025-09-08 21:32:24.319677 2025-09-08 21:32:24.319677
|
网站描述 sys_web_description FastAPI Vue3 Admin 是完全开源的权限管理系统 t 1 2 t 网站描述 2025-09-09 00:30:45.260097 2025-09-09 00:30:45.260098
|
||||||
网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 1 3 t 网页图标 2025-09-08 21:32:24.319678 2025-09-08 21:32:24.319678
|
网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 1 3 t 网页图标 2025-09-09 00:30:45.260098 2025-09-09 00:30:45.260098
|
||||||
网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 1 4 t 网站Logo 2025-09-08 21:32:24.319679 2025-09-08 21:32:24.319679
|
网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 1 4 t 网站Logo 2025-09-09 00:30:45.260099 2025-09-09 00:30:45.260099
|
||||||
登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 1 5 t 登录背景 2025-09-08 21:32:24.319679 2025-09-08 21:32:24.31968
|
登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 1 5 t 登录背景 2025-09-09 00:30:45.2601 2025-09-09 00:30:45.2601
|
||||||
版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 1 6 t 版权信息 2025-09-08 21:32:24.31968 2025-09-08 21:32:24.319681
|
版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 1 6 t 版权信息 2025-09-09 00:30:45.2601 2025-09-09 00:30:45.260101
|
||||||
备案信息 sys_keep_record 陕ICP备2025069493号-1 t 1 7 t 备案信息 2025-09-08 21:32:24.319681 2025-09-08 21:32:24.319681
|
备案信息 sys_keep_record 陕ICP备2025069493号-1 t 1 7 t 备案信息 2025-09-09 00:30:45.260101 2025-09-09 00:30:45.260102
|
||||||
帮助文档 sys_help_doc https://service.fastapiadmin.com t 1 8 t 帮助文档 2025-09-08 21:32:24.319682 2025-09-08 21:32:24.319682
|
帮助文档 sys_help_doc https://service.fastapiadmin.com t 1 8 t 帮助文档 2025-09-09 00:30:45.260102 2025-09-09 00:30:45.260102
|
||||||
隐私政策 sys_web_privacy https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 9 t 隐私政策 2025-09-08 21:32:24.319682 2025-09-08 21:32:24.319683
|
隐私政策 sys_web_privacy https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 9 t 隐私政策 2025-09-09 00:30:45.260103 2025-09-09 00:30:45.260103
|
||||||
用户协议 sys_web_clause https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 10 t 用户协议 2025-09-08 21:32:24.319683 2025-09-08 21:32:24.319683
|
用户协议 sys_web_clause https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 10 t 用户协议 2025-09-09 00:30:45.260104 2025-09-09 00:30:45.260104
|
||||||
源码代码 sys_git_code https://github.com/1014TaoTao/fastapi_vue3_admin.git t 1 11 t 源码代码 2025-09-08 21:32:24.319684 2025-09-08 21:32:24.319684
|
源码代码 sys_git_code https://github.com/1014TaoTao/fastapi_vue3_admin.git t 1 11 t 源码代码 2025-09-09 00:30:45.260104 2025-09-09 00:30:45.260105
|
||||||
项目版本 sys_web_version 2.0.0 t 1 12 t 项目版本 2025-09-08 21:32:24.319685 2025-09-08 21:32:24.319685
|
项目版本 sys_web_version 2.0.0 t 1 12 t 项目版本 2025-09-09 00:30:45.260105 2025-09-09 00:30:45.260105
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2185,17 +2185,17 @@ COPY public.system_config (config_name, config_key, config_value, config_type, c
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dept (name, "order", parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dept (name, "order", parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
集团总公司 1 \N 1 t 集团总公司 2025-09-08 21:32:24.300179 2025-09-08 21:32:24.300183
|
集团总公司 1 \N 1 t 集团总公司 2025-09-09 00:30:45.234741 2025-09-09 00:30:45.234745
|
||||||
西安分公司 1 1 2 t 西安分公司 2025-09-08 21:32:24.300184 2025-09-08 21:32:24.300185
|
西安分公司 1 1 2 t 西安分公司 2025-09-09 00:30:45.234746 2025-09-09 00:30:45.234746
|
||||||
深圳分公司 2 1 3 t 深圳分公司 2025-09-08 21:32:24.300185 2025-09-08 21:32:24.300185
|
深圳分公司 2 1 3 t 深圳分公司 2025-09-09 00:30:45.234747 2025-09-09 00:30:45.234747
|
||||||
开发组 1 2 4 t 开发组 2025-09-08 21:32:24.300186 2025-09-08 21:32:24.300186
|
开发组 1 2 4 t 开发组 2025-09-09 00:30:45.234747 2025-09-09 00:30:45.234748
|
||||||
测试组 2 2 5 t 测试组 2025-09-08 21:32:24.300187 2025-09-08 21:32:24.300187
|
测试组 2 2 5 t 测试组 2025-09-09 00:30:45.234748 2025-09-09 00:30:45.234749
|
||||||
演示组 3 2 6 t 演示组 2025-09-08 21:32:24.300187 2025-09-08 21:32:24.300188
|
演示组 3 2 6 t 演示组 2025-09-09 00:30:45.234749 2025-09-09 00:30:45.234749
|
||||||
销售部 1 3 7 t 销售部 2025-09-08 21:32:24.300188 2025-09-08 21:32:24.300188
|
销售部 1 3 7 t 销售部 2025-09-09 00:30:45.23475 2025-09-09 00:30:45.23475
|
||||||
市场部 2 3 8 t 市场部 2025-09-08 21:32:24.300189 2025-09-08 21:32:24.300189
|
市场部 2 3 8 t 市场部 2025-09-09 00:30:45.234751 2025-09-09 00:30:45.234751
|
||||||
财务部 3 3 9 t 财务部 2025-09-08 21:32:24.300189 2025-09-08 21:32:24.30019
|
财务部 3 3 9 t 财务部 2025-09-09 00:30:45.234751 2025-09-09 00:30:45.234752
|
||||||
研发部 4 3 10 t 研发部 2025-09-08 21:32:24.30019 2025-09-08 21:32:24.30019
|
研发部 4 3 10 t 研发部 2025-09-09 00:30:45.234752 2025-09-09 00:30:45.234753
|
||||||
运维部 5 3 11 t 研发部 2025-09-08 21:32:24.300191 2025-09-08 21:32:24.300191
|
运维部 5 3 11 t 研发部 2025-09-09 00:30:45.234753 2025-09-09 00:30:45.234753
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2204,40 +2204,40 @@ COPY public.system_dept (name, "order", parent_id, id, status, description, crea
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, dict_type_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, dict_type_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
1 男 0 sys_user_sex blue \N t \N 1 1 t 性别男 2025-09-08 21:32:24.326678 2025-09-08 21:32:24.326678
|
1 男 0 sys_user_sex blue \N t \N 1 1 t 性别男 2025-09-09 00:30:45.270878 2025-09-09 00:30:45.270879
|
||||||
2 女 1 sys_user_sex pink \N f \N 1 2 t 性别女 2025-09-08 21:32:24.326679 2025-09-08 21:32:24.32668
|
2 女 1 sys_user_sex pink \N f \N 1 2 t 性别女 2025-09-09 00:30:45.270879 2025-09-09 00:30:45.27088
|
||||||
3 未知 2 sys_user_sex red \N f \N 1 3 t 性别未知 2025-09-08 21:32:24.32668 2025-09-08 21:32:24.32668
|
3 未知 2 sys_user_sex red \N f \N 1 3 t 性别未知 2025-09-09 00:30:45.27088 2025-09-09 00:30:45.270881
|
||||||
1 启用 1 sys_common_status primary f \N 1 4 t 启用状态 2025-09-08 21:32:24.326681 2025-09-08 21:32:24.326681
|
1 启用 1 sys_common_status primary f \N 1 4 t 启用状态 2025-09-09 00:30:45.270881 2025-09-09 00:30:45.270881
|
||||||
2 停用 0 sys_common_status danger f \N 1 5 t 停用状态 2025-09-08 21:32:24.326681 2025-09-08 21:32:24.326682
|
2 停用 0 sys_common_status danger f \N 1 5 t 停用状态 2025-09-09 00:30:45.270882 2025-09-09 00:30:45.270882
|
||||||
1 是 1 sys_yes_no primary t \N 1 6 t 是 2025-09-08 21:32:24.326682 2025-09-08 21:32:24.326682
|
1 是 1 sys_yes_no primary t \N 1 6 t 是 2025-09-09 00:30:45.270882 2025-09-09 00:30:45.270883
|
||||||
2 否 0 sys_yes_no danger f \N 1 7 t 否 2025-09-08 21:32:24.326683 2025-09-08 21:32:24.326683
|
2 否 0 sys_yes_no danger f \N 1 7 t 否 2025-09-09 00:30:45.270883 2025-09-09 00:30:45.270884
|
||||||
99 其他 0 sys_oper_type info f \N 1 8 t 其他操作 2025-09-08 21:32:24.326683 2025-09-08 21:32:24.326684
|
99 其他 0 sys_oper_type info f \N 1 8 t 其他操作 2025-09-09 00:30:45.270884 2025-09-09 00:30:45.270884
|
||||||
1 新增 1 sys_oper_type info f \N 1 9 t 新增操作 2025-09-08 21:32:24.326684 2025-09-08 21:32:24.326684
|
1 新增 1 sys_oper_type info f \N 1 9 t 新增操作 2025-09-09 00:30:45.270885 2025-09-09 00:30:45.270885
|
||||||
2 修改 2 sys_oper_type info f \N 1 10 t 修改操作 2025-09-08 21:32:24.326685 2025-09-08 21:32:24.326685
|
2 修改 2 sys_oper_type info f \N 1 10 t 修改操作 2025-09-09 00:30:45.270885 2025-09-09 00:30:45.270886
|
||||||
3 删除 3 sys_oper_type danger f \N 1 11 t 删除操作 2025-09-08 21:32:24.326685 2025-09-08 21:32:24.326686
|
3 删除 3 sys_oper_type danger f \N 1 11 t 删除操作 2025-09-09 00:30:45.270886 2025-09-09 00:30:45.270886
|
||||||
4 分配权限 4 sys_oper_type primary f \N 1 12 t 授权操作 2025-09-08 21:32:24.326686 2025-09-08 21:32:24.326686
|
4 分配权限 4 sys_oper_type primary f \N 1 12 t 授权操作 2025-09-09 00:30:45.270887 2025-09-09 00:30:45.270887
|
||||||
5 导出 5 sys_oper_type warning f \N 1 13 t 导出操作 2025-09-08 21:32:24.326687 2025-09-08 21:32:24.326687
|
5 导出 5 sys_oper_type warning f \N 1 13 t 导出操作 2025-09-09 00:30:45.270887 2025-09-09 00:30:45.270888
|
||||||
6 导入 6 sys_oper_type warning f \N 1 14 t 导入操作 2025-09-08 21:32:24.326687 2025-09-08 21:32:24.326688
|
6 导入 6 sys_oper_type warning f \N 1 14 t 导入操作 2025-09-09 00:30:45.270888 2025-09-09 00:30:45.270888
|
||||||
7 强退 7 sys_oper_type danger f \N 1 15 t 强退操作 2025-09-08 21:32:24.326688 2025-09-08 21:32:24.326688
|
7 强退 7 sys_oper_type danger f \N 1 15 t 强退操作 2025-09-09 00:30:45.270889 2025-09-09 00:30:45.270889
|
||||||
8 生成代码 8 sys_oper_type warning f \N 1 16 t 生成操作 2025-09-08 21:32:24.326689 2025-09-08 21:32:24.326689
|
8 生成代码 8 sys_oper_type warning f \N 1 16 t 生成操作 2025-09-09 00:30:45.27089 2025-09-09 00:30:45.27089
|
||||||
9 清空数据 9 sys_oper_type danger f \N 1 17 t 清空操作 2025-09-08 21:32:24.326689 2025-09-08 21:32:24.32669
|
9 清空数据 9 sys_oper_type danger f \N 1 17 t 清空操作 2025-09-09 00:30:45.27089 2025-09-09 00:30:45.270891
|
||||||
1 通知 1 sys_notice_type blue warning t \N 1 18 t 通知 2025-09-08 21:32:24.32669 2025-09-08 21:32:24.32669
|
1 通知 1 sys_notice_type blue warning t \N 1 18 t 通知 2025-09-09 00:30:45.270891 2025-09-09 00:30:45.270891
|
||||||
2 公告 2 sys_notice_type orange success f \N 1 19 t 公告 2025-09-08 21:32:24.326691 2025-09-08 21:32:24.326691
|
2 公告 2 sys_notice_type orange success f \N 1 19 t 公告 2025-09-09 00:30:45.270892 2025-09-09 00:30:45.270892
|
||||||
1 默认(Memory) default sys_job_store \N t \N 1 20 t 默认分组 2025-09-08 21:32:24.326691 2025-09-08 21:32:24.326692
|
1 默认(Memory) default sys_job_store \N t \N 1 20 t 默认分组 2025-09-09 00:30:45.270892 2025-09-09 00:30:45.270893
|
||||||
2 数据库(Sqlalchemy) sqlalchemy sys_job_store \N f \N 1 21 t 数据库分组 2025-09-08 21:32:24.326692 2025-09-08 21:32:24.326692
|
2 数据库(Sqlalchemy) sqlalchemy sys_job_store \N f \N 1 21 t 数据库分组 2025-09-09 00:30:45.270893 2025-09-09 00:30:45.270893
|
||||||
3 数据库(Redis) redis sys_job_store \N f \N 1 22 t reids分组 2025-09-08 21:32:24.326693 2025-09-08 21:32:24.326693
|
3 数据库(Redis) redis sys_job_store \N f \N 1 22 t reids分组 2025-09-09 00:30:45.270894 2025-09-09 00:30:45.270894
|
||||||
1 线程池 default sys_job_executor \N f \N 1 23 t 线程池 2025-09-08 21:32:24.326693 2025-09-08 21:32:24.326694
|
1 线程池 default sys_job_executor \N f \N 1 23 t 线程池 2025-09-09 00:30:45.270894 2025-09-09 00:30:45.270895
|
||||||
2 进程池 processpool sys_job_executor \N f \N 1 24 t 进程池 2025-09-08 21:32:24.326694 2025-09-08 21:32:24.326694
|
2 进程池 processpool sys_job_executor \N f \N 1 24 t 进程池 2025-09-09 00:30:45.270895 2025-09-09 00:30:45.270896
|
||||||
1 演示函数 scheduler_test.job sys_job_function \N t \N 1 25 t 演示函数 2025-09-08 21:32:24.326695 2025-09-08 21:32:24.326695
|
1 演示函数 scheduler_test.job sys_job_function \N t \N 1 25 t 演示函数 2025-09-09 00:30:45.270896 2025-09-09 00:30:45.270896
|
||||||
1 指定日期(date) date sys_job_trigger \N t \N 1 26 t 指定日期任务触发器 2025-09-08 21:32:24.326695 2025-09-08 21:32:24.326696
|
1 指定日期(date) date sys_job_trigger \N t \N 1 26 t 指定日期任务触发器 2025-09-09 00:30:45.270897 2025-09-09 00:30:45.270897
|
||||||
2 间隔触发器(interval) interval sys_job_trigger \N f \N 1 27 t 间隔触发器任务触发器 2025-09-08 21:32:24.326696 2025-09-08 21:32:24.326696
|
2 间隔触发器(interval) interval sys_job_trigger \N f \N 1 27 t 间隔触发器任务触发器 2025-09-09 00:30:45.270897 2025-09-09 00:30:45.270898
|
||||||
3 cron表达式 cron sys_job_trigger \N f \N 1 28 t 间隔触发器任务触发器 2025-09-08 21:32:24.326697 2025-09-08 21:32:24.326697
|
3 cron表达式 cron sys_job_trigger \N f \N 1 28 t 间隔触发器任务触发器 2025-09-09 00:30:45.270898 2025-09-09 00:30:45.270898
|
||||||
1 默认(default) default sys_list_class \N t \N 1 29 t 默认表格回显样式 2025-09-08 21:32:24.326697 2025-09-08 21:32:24.326698
|
1 默认(default) default sys_list_class \N t \N 1 29 t 默认表格回显样式 2025-09-09 00:30:45.270899 2025-09-09 00:30:45.270899
|
||||||
2 主要(primary) primary sys_list_class \N f \N 1 30 t 主要表格回显样式 2025-09-08 21:32:24.326698 2025-09-08 21:32:24.326698
|
2 主要(primary) primary sys_list_class \N f \N 1 30 t 主要表格回显样式 2025-09-09 00:30:45.270899 2025-09-09 00:30:45.2709
|
||||||
3 成功(success) success sys_list_class \N f \N 1 31 t 成功表格回显样式 2025-09-08 21:32:24.326699 2025-09-08 21:32:24.326699
|
3 成功(success) success sys_list_class \N f \N 1 31 t 成功表格回显样式 2025-09-09 00:30:45.2709 2025-09-09 00:30:45.2709
|
||||||
4 信息(info) info sys_list_class \N f \N 1 32 t 信息表格回显样式 2025-09-08 21:32:24.326699 2025-09-08 21:32:24.3267
|
4 信息(info) info sys_list_class \N f \N 1 32 t 信息表格回显样式 2025-09-09 00:30:45.270901 2025-09-09 00:30:45.270901
|
||||||
5 警告(warning) warning sys_list_class \N f \N 1 33 t 警告表格回显样式 2025-09-08 21:32:24.3267 2025-09-08 21:32:24.3267
|
5 警告(warning) warning sys_list_class \N f \N 1 33 t 警告表格回显样式 2025-09-09 00:30:45.270901 2025-09-09 00:30:45.270902
|
||||||
6 危险(danger) danger sys_list_class \N f \N 1 34 t 危险表格回显样式 2025-09-08 21:32:24.326701 2025-09-08 21:32:24.326701
|
6 危险(danger) danger sys_list_class \N f \N 1 34 t 危险表格回显样式 2025-09-09 00:30:45.270902 2025-09-09 00:30:45.270902
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2246,16 +2246,16 @@ COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dict_type (dict_name, dict_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dict_type (dict_name, dict_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
用户性别 sys_user_sex 1 1 t 用户性别列表 2025-09-08 21:32:24.321778 2025-09-08 21:32:24.321778
|
用户性别 sys_user_sex 1 1 t 用户性别列表 2025-09-09 00:30:45.263362 2025-09-09 00:30:45.263363
|
||||||
系统是否 sys_yes_no 1 2 t 系统是否列表 2025-09-08 21:32:24.321779 2025-09-08 21:32:24.321779
|
系统是否 sys_yes_no 1 2 t 系统是否列表 2025-09-09 00:30:45.263363 2025-09-09 00:30:45.263364
|
||||||
系统状态 sys_common_status 1 3 t 系统状态 2025-09-08 21:32:24.32178 2025-09-08 21:32:24.32178
|
系统状态 sys_common_status 1 3 t 系统状态 2025-09-09 00:30:45.263364 2025-09-09 00:30:45.263365
|
||||||
通知类型 sys_notice_type 1 4 t 通知类型列表 2025-09-08 21:32:24.321781 2025-09-08 21:32:24.321781
|
通知类型 sys_notice_type 1 4 t 通知类型列表 2025-09-09 00:30:45.263365 2025-09-09 00:30:45.263365
|
||||||
操作类型 sys_oper_type 1 5 t 操作类型列表 2025-09-08 21:32:24.321781 2025-09-08 21:32:24.321782
|
操作类型 sys_oper_type 1 5 t 操作类型列表 2025-09-09 00:30:45.263366 2025-09-09 00:30:45.263366
|
||||||
任务存储器 sys_job_store 1 6 t 任务分组列表 2025-09-08 21:32:24.321782 2025-09-08 21:32:24.321782
|
任务存储器 sys_job_store 1 6 t 任务分组列表 2025-09-09 00:30:45.263366 2025-09-09 00:30:45.263367
|
||||||
任务执行器 sys_job_executor 1 7 t 任务执行器列表 2025-09-08 21:32:24.321783 2025-09-08 21:32:24.321783
|
任务执行器 sys_job_executor 1 7 t 任务执行器列表 2025-09-09 00:30:45.263367 2025-09-09 00:30:45.263368
|
||||||
任务函数 sys_job_function 1 8 t 任务函数列表 2025-09-08 21:32:24.321783 2025-09-08 21:32:24.321784
|
任务函数 sys_job_function 1 8 t 任务函数列表 2025-09-09 00:30:45.263368 2025-09-09 00:30:45.263369
|
||||||
任务触发器 sys_job_trigger 1 9 t 任务触发器列表 2025-09-08 21:32:24.321784 2025-09-08 21:32:24.321784
|
任务触发器 sys_job_trigger 1 9 t 任务触发器列表 2025-09-09 00:30:45.263369 2025-09-09 00:30:45.26337
|
||||||
表格回显样式 sys_list_class 1 10 t 表格回显样式列表 2025-09-08 21:32:24.321785 2025-09-08 21:32:24.321785
|
表格回显样式 sys_list_class 1 10 t 表格回显样式列表 2025-09-09 00:30:45.26337 2025-09-09 00:30:45.263371
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2264,9 +2264,6 @@ COPY public.system_dict_type (dict_name, dict_type, creator_id, id, status, desc
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_log (type, request_path, request_method, request_payload, request_ip, login_location, request_os, request_browser, response_code, response_json, process_time, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_log (type, request_path, request_method, request_payload, request_ip, login_location, request_os, request_browser, response_code, response_json, process_time, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
1 /api/v1/system/auth/login POST username: admin\npassword: 123456\ncaptcha: 2\ncaptcha_key: f37fe63ce95c43149d269ba4a73d4c0e\nremember: true\nlogin_type: PC端 127.0.0.1 内网IP Mac OS X Edge 200 {"code":0,"msg":"登录成功","data":{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImZlNGUxZDg0LTUyZDctNGVjOC05OWNiLWZkYzY5ODA0OGM3MlwiLFwidXNlcl9pZFwiOjIsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjEyNy4wLjAuMVwiLFwibG9naW5fbG9jYXRpb25cIjpcIlx1NTE4NVx1N2Y1MUlQXCIsXCJvc1wiOlwiTWFjIE9TIFhcIixcImJyb3dzZXJcIjpcIkVkZ2VcIixcImxvZ2luX3RpbWVcIjpcIjIwMjUtMDktMDggMTM6MzM6NDdcIixcImxvZ2luX3R5cGVcIjpcIlBDXHU3YWVmXCJ9IiwiaXNfcmVmcmVzaCI6ZmFsc2UsImV4cCI6MTc2MjU1MTIyN30.GAQgUupfabFEoDh2z0_AHKK9mQ-3F_KxbLfjzQ2bja0","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImZlNGUxZDg0LTUyZDctNGVjOC05OWNiLWZkYzY5ODA0OGM3MlwiLFwidXNlcl9pZFwiOjIsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjEyNy4wLjAuMVwiLFwibG9naW5fbG9jYXRpb25cIjpcIlx1NTE4NVx1N2Y1MUlQXCIsXCJvc1wiOlwiTWFjIE9TIFhcIixcImJyb3dzZXJcIjpcIkVkZ2VcIixcImxvZ2luX3RpbWVcIjpcIjIwMjUtMDktMDggMTM6MzM6NDdcIixcImxvZ2luX3R5cGVcIjpcIlBDXHU3YWVmXCJ9IiwiaXNfcmVmcmVzaCI6dHJ1ZSwiZXhwIjoxNzkzNjU1MjI3fQ.QuxQBc7YJMhlb-qeZoFHdmTJ2t87f70GWbQen4aca5E","token_type":"bearer","expires_in":5184000},"status_code":200,"success":true} 0.3625s \N 1 t 登录 2025-09-08 21:33:47.676346 2025-09-08 21:33:47.676348
|
|
||||||
2 /api/v1/system/auth/logout POST {"body": {"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImZlNGUxZDg0LTUyZDctNGVjOC05OWNiLWZkYzY5ODA0OGM3MlwiLFwidXNlcl9pZFwiOjIsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjEyNy4wLjAuMVwiLFwibG9naW5fbG9jYXRpb25cIjpcIlx1NTE4NVx1N2Y1MUlQXCIsXCJvc1wiOlwiTWFjIE9TIFhcIixcImJyb3dzZXJcIjpcIkVkZ2VcIixcImxvZ2luX3RpbWVcIjpcIjIwMjUtMDktMDggMTM6MzM6NDdcIixcImxvZ2luX3R5cGVcIjpcIlBDXHU3YWVmXCJ9IiwiaXNfcmVmcmVzaCI6ZmFsc2UsImV4cCI6MTc2MjU1MTIyN30.GAQgUupfabFEoDh2z0_AHKK9mQ-3F_KxbLfjzQ2bja0"}} 127.0.0.1 内网IP Mac OS X Edge 200 {"code":0,"msg":"退出成功","data":null,"status_code":200,"success":true} 0.0375s 2 2 t 退出登录 2025-09-08 21:34:03.492645 2025-09-08 21:34:03.492648
|
|
||||||
1 /api/v1/system/auth/login POST username: superadmin\npassword: super@admin123\ncaptcha: 8\ncaptcha_key: dd7b4041b865436a894430ba0ff94299\nremember: true\nlogin_type: PC端 127.0.0.1 内网IP Mac OS X Edge 200 {"code":0,"msg":"登录成功","data":{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdThkODVcdTdlYTdcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImI1NGUyM2FhLWQ3YWEtNGMxOC04YmQ5LWQyMTQzMDBlMjkzOFwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcInN1cGVyYWRtaW5cIixcImlwYWRkclwiOlwiMTI3LjAuMC4xXCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU1MTg1XHU3ZjUxSVBcIixcIm9zXCI6XCJNYWMgT1MgWFwiLFwiYnJvd3NlclwiOlwiRWRnZVwiLFwibG9naW5fdGltZVwiOlwiMjAyNS0wOS0wOCAxMzozNDoyM1wiLFwibG9naW5fdHlwZVwiOlwiUENcdTdhZWZcIn0iLCJpc19yZWZyZXNoIjpmYWxzZSwiZXhwIjoxNzYyNTUxMjYzfQ.XiqBKxv3923zKyaXFWy8jwrOhmqWJJ-nJc2Wma5BxvA","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdThkODVcdTdlYTdcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImI1NGUyM2FhLWQ3YWEtNGMxOC04YmQ5LWQyMTQzMDBlMjkzOFwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcInN1cGVyYWRtaW5cIixcImlwYWRkclwiOlwiMTI3LjAuMC4xXCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU1MTg1XHU3ZjUxSVBcIixcIm9zXCI6XCJNYWMgT1MgWFwiLFwiYnJvd3NlclwiOlwiRWRnZVwiLFwibG9naW5fdGltZVwiOlwiMjAyNS0wOS0wOCAxMzozNDoyM1wiLFwibG9naW5fdHlwZVwiOlwiUENcdTdhZWZcIn0iLCJpc19yZWZyZXNoIjp0cnVlLCJleHAiOjE3OTM2NTUyNjN9.fGjr-yg9OkNGOC3R1XWObyXGy9ZyJqlJ4sA57sGM5Q8","token_type":"bearer","expires_in":5184000},"status_code":200,"success":true} 0.3519s \N 3 t 登录 2025-09-08 21:34:23.399114 2025-09-08 21:34:23.399116
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2275,110 +2272,110 @@ COPY public.system_log (type, request_path, request_method, request_payload, req
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_menu (name, type, "order", permission, icon, route_name, route_path, component_path, redirect, hidden, keep_alive, always_show, title, params, affix, parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_menu (name, type, "order", permission, icon, route_name, route_path, component_path, redirect, hidden, keep_alive, always_show, title, params, affix, parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 t 初始化数据 2025-09-08 21:32:24.307881 2025-09-08 21:32:24.307883
|
仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 t 初始化数据 2025-09-09 00:30:45.244688 2025-09-09 00:30:45.24469
|
||||||
工作台 2 1 dashboard:workplace:query homepage Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null t 1 2 t 初始化数据 2025-09-08 21:32:24.307884 2025-09-08 21:32:24.307884
|
工作台 2 1 dashboard:workplace:query homepage Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null t 1 2 t 初始化数据 2025-09-09 00:30:45.24469 2025-09-09 00:30:45.244691
|
||||||
分析页 2 2 dashboard:analysis:query el-icon-PieChart Analysis /dashboard/analysis dashboard/analysis \N f t f 分析页 null f 1 3 t 初始化数据 2025-09-08 21:32:24.307885 2025-09-08 21:32:24.307885
|
分析页 2 2 dashboard:analysis:query el-icon-PieChart Analysis /dashboard/analysis dashboard/analysis \N f t f 分析页 null f 1 3 t 初始化数据 2025-09-09 00:30:45.244691 2025-09-09 00:30:45.244692
|
||||||
系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 4 t 初始化数据 2025-09-08 21:32:24.307885 2025-09-08 21:32:24.307886
|
系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 4 t 初始化数据 2025-09-09 00:30:45.244692 2025-09-09 00:30:45.244692
|
||||||
菜单管理 2 1 system:menu:query menu Menu /system/menu system/menu/index \N f t f 菜单管理 null f 4 5 t 初始化数据 2025-09-08 21:32:24.307886 2025-09-08 21:32:24.307886
|
菜单管理 2 1 system:menu:query menu Menu /system/menu system/menu/index \N f t f 菜单管理 null f 4 5 t 初始化数据 2025-09-09 00:30:45.244693 2025-09-09 00:30:45.244693
|
||||||
部门管理 2 2 system:dept:query tree Dept /system/dept system/dept/index \N f t f 部门管理 null f 4 6 t 初始化数据 2025-09-08 21:32:24.307887 2025-09-08 21:32:24.307887
|
部门管理 2 2 system:dept:query tree Dept /system/dept system/dept/index \N f t f 部门管理 null f 4 6 t 初始化数据 2025-09-09 00:30:45.244694 2025-09-09 00:30:45.244694
|
||||||
岗位管理 2 3 system:position:query el-icon-Coordinate Position /system/position system/position/index \N f t f 岗位管理 null f 4 7 t 初始化数据 2025-09-08 21:32:24.307887 2025-09-08 21:32:24.307888
|
岗位管理 2 3 system:position:query el-icon-Coordinate Position /system/position system/position/index \N f t f 岗位管理 null f 4 7 t 初始化数据 2025-09-09 00:30:45.244694 2025-09-09 00:30:45.244695
|
||||||
角色管理 2 4 system:role:query role Role /system/role system/role/index \N f t f 角色管理 null f 4 8 t 初始化数据 2025-09-08 21:32:24.307888 2025-09-08 21:32:24.307889
|
角色管理 2 4 system:role:query role Role /system/role system/role/index \N f t f 角色管理 null f 4 8 t 初始化数据 2025-09-09 00:30:45.244695 2025-09-09 00:30:45.244696
|
||||||
用户管理 2 5 system:user:query el-icon-User User /system/user system/user/index \N f t f 用户管理 null f 4 9 t 初始化数据 2025-09-08 21:32:24.307889 2025-09-08 21:32:24.307889
|
用户管理 2 5 system:user:query el-icon-User User /system/user system/user/index \N f t f 用户管理 null f 4 9 t 初始化数据 2025-09-09 00:30:45.244696 2025-09-09 00:30:45.244696
|
||||||
日志管理 2 6 system:log:query el-icon-Aim Log /system/log system/log/index \N f t f 日志管理 null f 4 10 t 初始化数据 2025-09-08 21:32:24.30789 2025-09-08 21:32:24.30789
|
日志管理 2 6 system:log:query el-icon-Aim Log /system/log system/log/index \N f t f 日志管理 null f 4 10 t 初始化数据 2025-09-09 00:30:45.244697 2025-09-09 00:30:45.244697
|
||||||
公告管理 2 7 system:notice:query bell Notice /system/notice system/notice/index \N f t f 公告管理 null f 4 11 t 初始化数据 2025-09-08 21:32:24.30789 2025-09-08 21:32:24.307891
|
公告管理 2 7 system:notice:query bell Notice /system/notice system/notice/index \N f t f 公告管理 null f 4 11 t 初始化数据 2025-09-09 00:30:45.244697 2025-09-09 00:30:45.244698
|
||||||
配置管理 2 8 system:config:query setting Config /system/config system/config/index \N f t f 配置管理 null f 4 12 t 初始化数据 2025-09-08 21:32:24.307891 2025-09-08 21:32:24.307891
|
配置管理 2 8 system:config:query setting Config /system/config system/config/index \N f t f 配置管理 null f 4 12 t 初始化数据 2025-09-09 00:30:45.244698 2025-09-09 00:30:45.244699
|
||||||
字典管理 2 9 system:dict_type:query dict Dict /system/dict system/dict/index \N f t f 字典管理 null f 4 13 t 初始化数据 2025-09-08 21:32:24.307892 2025-09-08 21:32:24.307892
|
字典管理 2 9 system:dict_type:query dict Dict /system/dict system/dict/index \N f t f 字典管理 null f 4 13 t 初始化数据 2025-09-09 00:30:45.244699 2025-09-09 00:30:45.244699
|
||||||
创建菜单 3 1 system:menu:create \N \N \N \N \N f t f 创建菜单 null f 5 14 t 初始化数据 2025-09-08 21:32:24.307893 2025-09-08 21:32:24.307893
|
创建菜单 3 1 system:menu:create \N \N \N \N \N f t f 创建菜单 null f 5 14 t 初始化数据 2025-09-09 00:30:45.2447 2025-09-09 00:30:45.2447
|
||||||
修改菜单 3 2 system:menu:update \N \N \N \N \N f t f 修改菜单 null f 5 15 t 初始化数据 2025-09-08 21:32:24.307893 2025-09-08 21:32:24.307894
|
修改菜单 3 2 system:menu:update \N \N \N \N \N f t f 修改菜单 null f 5 15 t 初始化数据 2025-09-09 00:30:45.2447 2025-09-09 00:30:45.244701
|
||||||
删除菜单 3 3 system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 5 16 t 初始化数据 2025-09-08 21:32:24.307894 2025-09-08 21:32:24.307894
|
删除菜单 3 3 system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 5 16 t 初始化数据 2025-09-09 00:30:45.244701 2025-09-09 00:30:45.244701
|
||||||
批量修改菜单状态 3 4 system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 5 17 t 初始化数据 2025-09-08 21:32:24.307895 2025-09-08 21:32:24.307895
|
批量修改菜单状态 3 4 system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 5 17 t 初始化数据 2025-09-09 00:30:45.244702 2025-09-09 00:30:45.244702
|
||||||
创建部门 3 1 system:dept:create \N \N \N \N \N f t f 创建部门 null f 6 18 t 初始化数据 2025-09-08 21:32:24.307896 2025-09-08 21:32:24.307896
|
创建部门 3 1 system:dept:create \N \N \N \N \N f t f 创建部门 null f 6 18 t 初始化数据 2025-09-09 00:30:45.244703 2025-09-09 00:30:45.244703
|
||||||
修改部门 3 2 system:dept:update \N \N \N \N \N f t f 修改部门 null f 6 19 t 初始化数据 2025-09-08 21:32:24.307896 2025-09-08 21:32:24.307896
|
修改部门 3 2 system:dept:update \N \N \N \N \N f t f 修改部门 null f 6 19 t 初始化数据 2025-09-09 00:30:45.244703 2025-09-09 00:30:45.244704
|
||||||
删除部门 3 3 system:dept:delete \N \N \N \N \N f t f 删除部门 null f 6 20 t 初始化数据 2025-09-08 21:32:24.307897 2025-09-08 21:32:24.307897
|
删除部门 3 3 system:dept:delete \N \N \N \N \N f t f 删除部门 null f 6 20 t 初始化数据 2025-09-09 00:30:45.244704 2025-09-09 00:30:45.244704
|
||||||
批量修改部门状态 3 4 system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 6 21 t 初始化数据 2025-09-08 21:32:24.307897 2025-09-08 21:32:24.307898
|
批量修改部门状态 3 4 system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 6 21 t 初始化数据 2025-09-09 00:30:45.244705 2025-09-09 00:30:45.244705
|
||||||
创建岗位 3 1 system:position:create \N \N \N \N \N f t f 创建岗位 null f 7 22 t 初始化数据 2025-09-08 21:32:24.307898 2025-09-08 21:32:24.307898
|
创建岗位 3 1 system:position:create \N \N \N \N \N f t f 创建岗位 null f 7 22 t 初始化数据 2025-09-09 00:30:45.244705 2025-09-09 00:30:45.244706
|
||||||
修改岗位 3 2 system:position:update \N \N \N \N \N f t f 修改岗位 null f 7 23 t 初始化数据 2025-09-08 21:32:24.307899 2025-09-08 21:32:24.307899
|
修改岗位 3 2 system:position:update \N \N \N \N \N f t f 修改岗位 null f 7 23 t 初始化数据 2025-09-09 00:30:45.244706 2025-09-09 00:30:45.244706
|
||||||
删除岗位 3 3 system:position:delete \N \N \N \N \N f t f 修改岗位 null f 7 24 t 初始化数据 2025-09-08 21:32:24.307899 2025-09-08 21:32:24.3079
|
删除岗位 3 3 system:position:delete \N \N \N \N \N f t f 修改岗位 null f 7 24 t 初始化数据 2025-09-09 00:30:45.244707 2025-09-09 00:30:45.244707
|
||||||
批量修改岗位状态 3 4 system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 7 25 t 初始化数据 2025-09-08 21:32:24.3079 2025-09-08 21:32:24.3079
|
批量修改岗位状态 3 4 system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 7 25 t 初始化数据 2025-09-09 00:30:45.244708 2025-09-09 00:30:45.244708
|
||||||
岗位导出 3 5 system:position:export \N \N \N \N \N f t f 岗位导出 null f 7 26 t 初始化数据 2025-09-08 21:32:24.307901 2025-09-08 21:32:24.307901
|
岗位导出 3 5 system:position:export \N \N \N \N \N f t f 岗位导出 null f 7 26 t 初始化数据 2025-09-09 00:30:45.244708 2025-09-09 00:30:45.244709
|
||||||
创建角色 3 1 system:role:create \N \N \N \N \N f t f 创建角色 null f 8 27 t 初始化数据 2025-09-08 21:32:24.307901 2025-09-08 21:32:24.307902
|
创建角色 3 1 system:role:create \N \N \N \N \N f t f 创建角色 null f 8 27 t 初始化数据 2025-09-09 00:30:45.244709 2025-09-09 00:30:45.244709
|
||||||
修改角色 3 2 system:role:update \N \N \N \N \N f t f 修改角色 null f 8 28 t 初始化数据 2025-09-08 21:32:24.307902 2025-09-08 21:32:24.307902
|
修改角色 3 2 system:role:update \N \N \N \N \N f t f 修改角色 null f 8 28 t 初始化数据 2025-09-09 00:30:45.24471 2025-09-09 00:30:45.24471
|
||||||
删除角色 3 3 system:role:delete \N \N \N \N \N f t f 删除角色 null f 8 29 t 初始化数据 2025-09-08 21:32:24.307903 2025-09-08 21:32:24.307903
|
删除角色 3 3 system:role:delete \N \N \N \N \N f t f 删除角色 null f 8 29 t 初始化数据 2025-09-09 00:30:45.244711 2025-09-09 00:30:45.244711
|
||||||
批量修改角色状态 3 4 system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 8 30 t 初始化数据 2025-09-08 21:32:24.307903 2025-09-08 21:32:24.307904
|
批量修改角色状态 3 4 system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 8 30 t 初始化数据 2025-09-09 00:30:45.244711 2025-09-09 00:30:45.244712
|
||||||
设置角色权限 3 8 system:role:permission \N \N \N \N \N f t f 设置角色权限 null f 7 31 t 初始化数据 2025-09-08 21:32:24.307904 2025-09-08 21:32:24.307904
|
设置角色权限 3 8 system:role:permission \N \N \N \N \N f t f 设置角色权限 null f 7 31 t 初始化数据 2025-09-09 00:30:45.244712 2025-09-09 00:30:45.244712
|
||||||
角色导出 3 6 system:role:export \N \N \N \N \N f t f 角色导出 null f 8 32 t 初始化数据 2025-09-08 21:32:24.307905 2025-09-08 21:32:24.307905
|
角色导出 3 6 system:role:export \N \N \N \N \N f t f 角色导出 null f 8 32 t 初始化数据 2025-09-09 00:30:45.244713 2025-09-09 00:30:45.244713
|
||||||
创建用户 3 1 system:user:create \N \N \N \N \N f t f 创建用户 null f 9 33 t 初始化数据 2025-09-08 21:32:24.307905 2025-09-08 21:32:24.307906
|
创建用户 3 1 system:user:create \N \N \N \N \N f t f 创建用户 null f 9 33 t 初始化数据 2025-09-09 00:30:45.244714 2025-09-09 00:30:45.244714
|
||||||
修改用户 3 2 system:user:update \N \N \N \N \N f t f 修改用户 null f 9 34 t 初始化数据 2025-09-08 21:32:24.307906 2025-09-08 21:32:24.307906
|
修改用户 3 2 system:user:update \N \N \N \N \N f t f 修改用户 null f 9 34 t 初始化数据 2025-09-09 00:30:45.244714 2025-09-09 00:30:45.244715
|
||||||
删除用户 3 3 system:user:delete \N \N \N \N \N f t f 删除用户 null f 9 35 t 初始化数据 2025-09-08 21:32:24.307907 2025-09-08 21:32:24.307907
|
删除用户 3 3 system:user:delete \N \N \N \N \N f t f 删除用户 null f 9 35 t 初始化数据 2025-09-09 00:30:45.244715 2025-09-09 00:30:45.244715
|
||||||
批量修改用户状态 3 4 system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 9 36 t 初始化数据 2025-09-08 21:32:24.307907 2025-09-08 21:32:24.307908
|
批量修改用户状态 3 4 system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 9 36 t 初始化数据 2025-09-09 00:30:45.244716 2025-09-09 00:30:45.244716
|
||||||
导出用户 3 5 system:user:export \N \N \N \N \N f t f 导出用户 null f 9 37 t 初始化数据 2025-09-08 21:32:24.307908 2025-09-08 21:32:24.307908
|
导出用户 3 5 system:user:export \N \N \N \N \N f t f 导出用户 null f 9 37 t 初始化数据 2025-09-09 00:30:45.244716 2025-09-09 00:30:45.244717
|
||||||
导入用户 3 6 system:user:import \N \N \N \N \N f t f 导入用户 null f 9 38 t 初始化数据 2025-09-08 21:32:24.307909 2025-09-08 21:32:24.307909
|
导入用户 3 6 system:user:import \N \N \N \N \N f t f 导入用户 null f 9 38 t 初始化数据 2025-09-09 00:30:45.244717 2025-09-09 00:30:45.244717
|
||||||
日志删除 3 1 system:operation_log:delete \N \N \N \N \N f t f 日志删除 null f 10 39 t 初始化数据 2025-09-08 21:32:24.307909 2025-09-08 21:32:24.30791
|
日志删除 3 1 system:operation_log:delete \N \N \N \N \N f t f 日志删除 null f 10 39 t 初始化数据 2025-09-09 00:30:45.244718 2025-09-09 00:30:45.244718
|
||||||
日志导出 3 2 system:operation_log:export \N \N \N \N \N f t f 日志导出 null f 10 40 t 初始化数据 2025-09-08 21:32:24.30791 2025-09-08 21:32:24.30791
|
日志导出 3 2 system:operation_log:export \N \N \N \N \N f t f 日志导出 null f 10 40 t 初始化数据 2025-09-09 00:30:45.244719 2025-09-09 00:30:45.244719
|
||||||
公告创建 3 1 system:notice:create \N \N \N \N \N f t f 公告创建 null f 11 41 t 初始化数据 2025-09-08 21:32:24.307911 2025-09-08 21:32:24.307911
|
公告创建 3 1 system:notice:create \N \N \N \N \N f t f 公告创建 null f 11 41 t 初始化数据 2025-09-09 00:30:45.244719 2025-09-09 00:30:45.24472
|
||||||
公告修改 3 2 system:notice:update \N \N \N \N \N f t f 修改用户 null f 11 42 t 初始化数据 2025-09-08 21:32:24.307911 2025-09-08 21:32:24.307912
|
公告修改 3 2 system:notice:update \N \N \N \N \N f t f 修改用户 null f 11 42 t 初始化数据 2025-09-09 00:30:45.24472 2025-09-09 00:30:45.24472
|
||||||
公告删除 3 3 system:notice:delete \N \N \N \N \N f t f 公告删除 null f 11 43 t 初始化数据 2025-09-08 21:32:24.307912 2025-09-08 21:32:24.307912
|
公告删除 3 3 system:notice:delete \N \N \N \N \N f t f 公告删除 null f 11 43 t 初始化数据 2025-09-09 00:30:45.244721 2025-09-09 00:30:45.244721
|
||||||
公告导出 3 4 system:notice:export \N \N \N \N \N f t f 公告导出 null f 11 44 t 初始化数据 2025-09-08 21:32:24.307913 2025-09-08 21:32:24.307913
|
公告导出 3 4 system:notice:export \N \N \N \N \N f t f 公告导出 null f 11 44 t 初始化数据 2025-09-09 00:30:45.244721 2025-09-09 00:30:45.244722
|
||||||
公告批量修改状态 3 5 system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 11 45 t 初始化数据 2025-09-08 21:32:24.307913 2025-09-08 21:32:24.307914
|
公告批量修改状态 3 5 system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 11 45 t 初始化数据 2025-09-09 00:30:45.244722 2025-09-09 00:30:45.244722
|
||||||
创建配置 3 1 system:config:create \N \N \N \N \N f t f 创建配置 null f 12 46 t 初始化数据 2025-09-08 21:32:24.307914 2025-09-08 21:32:24.307914
|
创建配置 3 1 system:config:create \N \N \N \N \N f t f 创建配置 null f 12 46 t 初始化数据 2025-09-09 00:30:45.244723 2025-09-09 00:30:45.244723
|
||||||
修改配置 3 2 system:config:update \N \N \N \N \N f t f 修改配置 null f 12 47 t 初始化数据 2025-09-08 21:32:24.307915 2025-09-08 21:32:24.307915
|
修改配置 3 2 system:config:update \N \N \N \N \N f t f 修改配置 null f 12 47 t 初始化数据 2025-09-09 00:30:45.244723 2025-09-09 00:30:45.244724
|
||||||
删除配置 3 3 system:config:delete \N \N \N \N \N f t f 删除配置 null f 12 48 t 初始化数据 2025-09-08 21:32:24.307915 2025-09-08 21:32:24.307915
|
删除配置 3 3 system:config:delete \N \N \N \N \N f t f 删除配置 null f 12 48 t 初始化数据 2025-09-09 00:30:45.244724 2025-09-09 00:30:45.244724
|
||||||
导出配置 3 4 system:config:export \N \N \N \N \N f t f 导出配置 null f 12 49 t 初始化数据 2025-09-08 21:32:24.307916 2025-09-08 21:32:24.307916
|
导出配置 3 4 system:config:export \N \N \N \N \N f t f 导出配置 null f 12 49 t 初始化数据 2025-09-09 00:30:45.244725 2025-09-09 00:30:45.244725
|
||||||
配置上传 3 5 system:config:upload \N \N \N \N \N f t f 配置上传 null f 12 50 t 初始化数据 2025-09-08 21:32:24.307916 2025-09-08 21:32:24.307917
|
配置上传 3 5 system:config:upload \N \N \N \N \N f t f 配置上传 null f 12 50 t 初始化数据 2025-09-09 00:30:45.244725 2025-09-09 00:30:45.244726
|
||||||
创建字典类型 3 1 system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 13 51 t 初始化数据 2025-09-08 21:32:24.307917 2025-09-08 21:32:24.307917
|
创建字典类型 3 1 system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 13 51 t 初始化数据 2025-09-09 00:30:45.244726 2025-09-09 00:30:45.244726
|
||||||
修改字典类型 3 2 system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 13 52 t 初始化数据 2025-09-08 21:32:24.307918 2025-09-08 21:32:24.307918
|
修改字典类型 3 2 system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 13 52 t 初始化数据 2025-09-09 00:30:45.244727 2025-09-09 00:30:45.244727
|
||||||
删除字典类型 3 3 system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 13 53 t 初始化数据 2025-09-08 21:32:24.307918 2025-09-08 21:32:24.307919
|
删除字典类型 3 3 system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 13 53 t 初始化数据 2025-09-09 00:30:45.244727 2025-09-09 00:30:45.244728
|
||||||
导出字典类型 3 4 system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 13 54 t 初始化数据 2025-09-08 21:32:24.307919 2025-09-08 21:32:24.307919
|
导出字典类型 3 4 system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 13 54 t 初始化数据 2025-09-09 00:30:45.244728 2025-09-09 00:30:45.244729
|
||||||
批量修改字典状态 3 5 system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 13 55 t 初始化数据 2025-09-08 21:32:24.30792 2025-09-08 21:32:24.30792
|
批量修改字典状态 3 5 system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 13 55 t 初始化数据 2025-09-09 00:30:45.244729 2025-09-09 00:30:45.244729
|
||||||
字典数据查询 3 6 system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 13 56 t 初始化数据 2025-09-08 21:32:24.307921 2025-09-08 21:32:24.307921
|
字典数据查询 3 6 system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 13 56 t 初始化数据 2025-09-09 00:30:45.24473 2025-09-09 00:30:45.24473
|
||||||
创建字典数据 3 7 system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 13 57 t 初始化数据 2025-09-08 21:32:24.307921 2025-09-08 21:32:24.307922
|
创建字典数据 3 7 system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 13 57 t 初始化数据 2025-09-09 00:30:45.24473 2025-09-09 00:30:45.244731
|
||||||
修改字典数据 3 8 system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 13 58 t 初始化数据 2025-09-08 21:32:24.307922 2025-09-08 21:32:24.307922
|
修改字典数据 3 8 system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 13 58 t 初始化数据 2025-09-09 00:30:45.244731 2025-09-09 00:30:45.244731
|
||||||
删除字典数据 3 9 system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 13 59 t 初始化数据 2025-09-08 21:32:24.307923 2025-09-08 21:32:24.307923
|
删除字典数据 3 9 system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 13 59 t 初始化数据 2025-09-09 00:30:45.244732 2025-09-09 00:30:45.244732
|
||||||
导出字典数据 3 10 system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 13 60 t 初始化数据 2025-09-08 21:32:24.307923 2025-09-08 21:32:24.307924
|
导出字典数据 3 10 system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 13 60 t 初始化数据 2025-09-09 00:30:45.244732 2025-09-09 00:30:45.244733
|
||||||
批量修改字典数据状态 3 11 system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 13 61 t 初始化数据 2025-09-08 21:32:24.307924 2025-09-08 21:32:24.307924
|
批量修改字典数据状态 3 11 system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 13 61 t 初始化数据 2025-09-09 00:30:45.244733 2025-09-09 00:30:45.244733
|
||||||
监控管理 1 3 \N monitor Monitor /monitor \N /monitor/online f f f 监控管理 null f \N 62 t 初始化数据 2025-09-08 21:32:24.307925 2025-09-08 21:32:24.307925
|
监控管理 1 3 \N monitor Monitor /monitor \N /monitor/online f f f 监控管理 null f \N 62 t 初始化数据 2025-09-09 00:30:45.244734 2025-09-09 00:30:45.244734
|
||||||
任务管理 2 1 monitor:job:query el-icon-DataLine Job /monitor/job monitor/job/index \N f t f 任务管理 null f 62 63 t 初始化数据 2025-09-08 21:32:24.307925 2025-09-08 21:32:24.307926
|
任务管理 2 1 monitor:job:query el-icon-DataLine Job /monitor/job monitor/job/index \N f t f 任务管理 null f 62 63 t 初始化数据 2025-09-09 00:30:45.244734 2025-09-09 00:30:45.244735
|
||||||
创建任务 3 1 monitor:job:create \N \N \N \N \N f t f 创建任务 null f 63 64 t 初始化数据 2025-09-08 21:32:24.307926 2025-09-08 21:32:24.307926
|
创建任务 3 1 monitor:job:create \N \N \N \N \N f t f 创建任务 null f 63 64 t 初始化数据 2025-09-09 00:30:45.244735 2025-09-09 00:30:45.244735
|
||||||
修改和操作任务 3 2 monitor:job:update \N \N \N \N \N f t f 修改和操作任务 null f 63 65 t 初始化数据 2025-09-08 21:32:24.307927 2025-09-08 21:32:24.307927
|
修改和操作任务 3 2 monitor:job:update \N \N \N \N \N f t f 修改和操作任务 null f 63 65 t 初始化数据 2025-09-09 00:30:45.244736 2025-09-09 00:30:45.244736
|
||||||
删除和清除任务 3 3 monitor:job:delete \N \N \N \N \N f t f 删除和清除任务 null f 63 66 t 初始化数据 2025-09-08 21:32:24.307927 2025-09-08 21:32:24.307927
|
删除和清除任务 3 3 monitor:job:delete \N \N \N \N \N f t f 删除和清除任务 null f 63 66 t 初始化数据 2025-09-09 00:30:45.244736 2025-09-09 00:30:45.244737
|
||||||
导出定时任务 3 4 monitor:job:export \N \N \N \N \N f t f 导出定时任务 null f 63 67 t 初始化数据 2025-09-08 21:32:24.307928 2025-09-08 21:32:24.307928
|
导出定时任务 3 4 monitor:job:export \N \N \N \N \N f t f 导出定时任务 null f 63 67 t 初始化数据 2025-09-09 00:30:45.244737 2025-09-09 00:30:45.244737
|
||||||
在线用户 2 2 monitor:online:query el-icon-Headset MonitorOnline /monitor/online monitor/online/index \N f f f 在线用户 null f 62 68 t 初始化数据 2025-09-08 21:32:24.307929 2025-09-08 21:32:24.307929
|
在线用户 2 2 monitor:online:query el-icon-Headset MonitorOnline /monitor/online monitor/online/index \N f f f 在线用户 null f 62 68 t 初始化数据 2025-09-09 00:30:45.244738 2025-09-09 00:30:45.244738
|
||||||
在线用户强制下线 3 1 monitor:online:delete \N \N \N \N \N f f f 在线用户强制下线 null f 68 69 t 初始化数据 2025-09-08 21:32:24.307929 2025-09-08 21:32:24.307929
|
在线用户强制下线 3 1 monitor:online:delete \N \N \N \N \N f f f 在线用户强制下线 null f 68 69 t 初始化数据 2025-09-09 00:30:45.244739 2025-09-09 00:30:45.244739
|
||||||
服务器监控 2 3 monitor:server:query el-icon-Odometer MonitorServer /monitor/server monitor/server/index \N f f f 服务器监控 null f 62 70 t 初始化数据 2025-09-08 21:32:24.30793 2025-09-08 21:32:24.30793
|
服务器监控 2 3 monitor:server:query el-icon-Odometer MonitorServer /monitor/server monitor/server/index \N f f f 服务器监控 null f 62 70 t 初始化数据 2025-09-09 00:30:45.244739 2025-09-09 00:30:45.24474
|
||||||
缓存监控 2 4 monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache monitor/cache/index \N f f f 缓存监控 null f 62 71 t 初始化数据 2025-09-08 21:32:24.30793 2025-09-08 21:32:24.307931
|
缓存监控 2 4 monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache monitor/cache/index \N f f f 缓存监控 null f 62 71 t 初始化数据 2025-09-09 00:30:45.24474 2025-09-09 00:30:45.24474
|
||||||
清除缓存 3 1 monitor:cache:delete \N \N \N \N \N f f f 清除缓存 null f 71 72 t 初始化数据 2025-09-08 21:32:24.307931 2025-09-08 21:32:24.307931
|
清除缓存 3 1 monitor:cache:delete \N \N \N \N \N f f f 清除缓存 null f 71 72 t 初始化数据 2025-09-09 00:30:45.244741 2025-09-09 00:30:45.244741
|
||||||
公共模块 1 4 \N document Common /common \N /common/docs f f f 公共模块 null f \N 73 t 初始化数据 2025-09-08 21:32:24.307932 2025-09-08 21:32:24.307932
|
公共模块 1 4 \N document Common /common \N /common/docs f f f 公共模块 null f \N 73 t 初始化数据 2025-09-09 00:30:45.244741 2025-09-09 00:30:45.244742
|
||||||
接口管理 4 1 common:docs:query api Docs /common/docs common/docs/index \N f f f 接口管理 null f 73 74 t 初始化数据 2025-09-08 21:32:24.307932 2025-09-08 21:32:24.307933
|
接口管理 4 1 common:docs:query api Docs /common/docs common/docs/index \N f f f 接口管理 null f 73 74 t 初始化数据 2025-09-09 00:30:45.244742 2025-09-09 00:30:45.244742
|
||||||
文档管理 4 2 common:redoc:query el-icon-Document Redoc /common/redoc common/redoc/index \N f f f 文档管理 null f 73 75 t 初始化数据 2025-09-08 21:32:24.307933 2025-09-08 21:32:24.307933
|
文档管理 4 2 common:redoc:query el-icon-Document Redoc /common/redoc common/redoc/index \N f f f 文档管理 null f 73 75 t 初始化数据 2025-09-09 00:30:45.244743 2025-09-09 00:30:45.244743
|
||||||
演示模块 1 5 \N el-icon-Document Demo /demo \N /demo/example f f f 演示模块 null f \N 76 t 初始化数据 2025-09-08 21:32:24.307934 2025-09-08 21:32:24.307934
|
演示模块 1 5 \N el-icon-Document Demo /demo \N /demo/example f f f 演示模块 null f \N 76 t 初始化数据 2025-09-09 00:30:45.244743 2025-09-09 00:30:45.244744
|
||||||
示例管理 2 1 demo:example:query el-icon-DataLine Example /demo/example demo/example/index \N f t f 示例管理 null f 76 77 t 初始化数据 2025-09-08 21:32:24.307934 2025-09-08 21:32:24.307935
|
示例管理 2 1 demo:example:query el-icon-DataLine Example /demo/example demo/example/index \N f t f 示例管理 null f 76 77 t 初始化数据 2025-09-09 00:30:45.244744 2025-09-09 00:30:45.244744
|
||||||
创建示例 3 1 demo:example:create \N \N \N \N \N f t f 创建示例 null f 77 78 t 初始化数据 2025-09-08 21:32:24.307935 2025-09-08 21:32:24.307935
|
创建示例 3 1 demo:example:create \N \N \N \N \N f t f 创建示例 null f 77 78 t 初始化数据 2025-09-09 00:30:45.244745 2025-09-09 00:30:45.244745
|
||||||
更新示例 3 2 demo:example:update \N \N \N \N \N f t f 更新示例 null f 77 79 t 初始化数据 2025-09-08 21:32:24.307936 2025-09-08 21:32:24.307936
|
更新示例 3 2 demo:example:update \N \N \N \N \N f t f 更新示例 null f 77 79 t 初始化数据 2025-09-09 00:30:45.244745 2025-09-09 00:30:45.244746
|
||||||
删除示例 3 3 demo:example:delete \N \N \N \N \N f t f 删除示例 null f 77 80 t 初始化数据 2025-09-08 21:32:24.307936 2025-09-08 21:32:24.307937
|
删除示例 3 3 demo:example:delete \N \N \N \N \N f t f 删除示例 null f 77 80 t 初始化数据 2025-09-09 00:30:45.244746 2025-09-09 00:30:45.244746
|
||||||
批量修改示例状态 3 4 demo:example:patch \N \N \N \N \N f t f 批量修改示例状态 null f 77 81 t 初始化数据 2025-09-08 21:32:24.307937 2025-09-08 21:32:24.307937
|
批量修改示例状态 3 4 demo:example:patch \N \N \N \N \N f t f 批量修改示例状态 null f 77 81 t 初始化数据 2025-09-09 00:30:45.244747 2025-09-09 00:30:45.244747
|
||||||
导出示例 3 5 demo:example:export \N \N \N \N \N f t f 导出示例 null f 77 82 t 初始化数据 2025-09-08 21:32:24.307938 2025-09-08 21:32:24.307938
|
导出示例 3 5 demo:example:export \N \N \N \N \N f t f 导出示例 null f 77 82 t 初始化数据 2025-09-09 00:30:45.244748 2025-09-09 00:30:45.244748
|
||||||
导入示例 3 6 demo:example:import \N \N \N \N \N f t f 导入示例 null f 77 83 t 初始化数据 2025-09-08 21:32:24.307938 2025-09-08 21:32:24.307939
|
导入示例 3 6 demo:example:import \N \N \N \N \N f t f 导入示例 null f 77 83 t 初始化数据 2025-09-09 00:30:45.244748 2025-09-09 00:30:45.244749
|
||||||
下载导入示例模版 3 7 demo:example:download \N \N \N \N \N f t f 下载导入示例模版 null f 77 84 t 初始化数据 2025-09-08 21:32:24.307939 2025-09-08 21:32:24.307939
|
下载导入示例模版 3 7 demo:example:download \N \N \N \N \N f t f 下载导入示例模版 null f 77 84 t 初始化数据 2025-09-09 00:30:45.244749 2025-09-09 00:30:45.244749
|
||||||
应用管理 1 6 \N captcha Application /application \N /application/myapp f f f 应用管理 null f \N 85 t 初始化数据 2025-09-08 21:32:24.30794 2025-09-08 21:32:24.30794
|
应用管理 1 6 \N captcha Application /application \N /application/myapp f f f 应用管理 null f \N 85 t 初始化数据 2025-09-09 00:30:45.24475 2025-09-09 00:30:45.24475
|
||||||
我的应用 2 1 application:myapp:query el-icon-DataLine ApplicationSystem /application/myapp application/myapp/index \N f t f 应用系统管理 null f 85 86 t 初始化数据 2025-09-08 21:32:24.30794 2025-09-08 21:32:24.307941
|
我的应用 2 1 application:myapp:query el-icon-DataLine ApplicationSystem /application/myapp application/myapp/index \N f t f 应用系统管理 null f 85 86 t 初始化数据 2025-09-09 00:30:45.24475 2025-09-09 00:30:45.244751
|
||||||
创建应用 3 1 application:myapp:create \N \N \N \N \N f t f 创建应用 null f 86 87 t 初始化数据 2025-09-08 21:32:24.307941 2025-09-08 21:32:24.307941
|
创建应用 3 1 application:myapp:create \N \N \N \N \N f t f 创建应用 null f 86 87 t 初始化数据 2025-09-09 00:30:45.244751 2025-09-09 00:30:45.244751
|
||||||
修改应用 3 2 application:myapp:update \N \N \N \N \N f t f 修改应用 null f 86 88 t 初始化数据 2025-09-08 21:32:24.307942 2025-09-08 21:32:24.307942
|
修改应用 3 2 application:myapp:update \N \N \N \N \N f t f 修改应用 null f 86 88 t 初始化数据 2025-09-09 00:30:45.244752 2025-09-09 00:30:45.244752
|
||||||
删除应用 3 3 application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 86 89 t 初始化数据 2025-09-08 21:32:24.307942 2025-09-08 21:32:24.307942
|
删除应用 3 3 application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 86 89 t 初始化数据 2025-09-09 00:30:45.244752 2025-09-09 00:30:45.244753
|
||||||
批量修改应用状态 3 4 application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 86 90 t 初始化数据 2025-09-08 21:32:24.307943 2025-09-08 21:32:24.307943
|
批量修改应用状态 3 4 application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 86 90 t 初始化数据 2025-09-09 00:30:45.244753 2025-09-09 00:30:45.244753
|
||||||
资源管理 1 7 \N document Resource /resource \N /resource/file f f f 资源管理 null f \N 91 t 初始化数据 2025-09-08 21:32:24.307943 2025-09-08 21:32:24.307944
|
资源管理 1 7 \N document Resource /resource \N /resource/file f f f 资源管理 null f \N 91 t 初始化数据 2025-09-09 00:30:45.244754 2025-09-09 00:30:45.244754
|
||||||
文件管理 2 1 resource:file:query el-icon-Files ResourceFile /resource/file resource/file/index \N f t f 文件管理 null f 91 92 t 初始化数据 2025-09-08 21:32:24.307944 2025-09-08 21:32:24.307944
|
文件管理 2 1 resource:file:query el-icon-Files ResourceFile /resource/file resource/file/index \N f t f 文件管理 null f 91 92 t 初始化数据 2025-09-09 00:30:45.244755 2025-09-09 00:30:45.244755
|
||||||
文件上传 3 1 resource:file:upload \N \N \N \N \N f t f 文件上传 null f 92 93 t 初始化数据 2025-09-08 21:32:24.307945 2025-09-08 21:32:24.307945
|
文件上传 3 1 resource:file:upload \N \N \N \N \N f t f 文件上传 null f 92 93 t 初始化数据 2025-09-09 00:30:45.244755 2025-09-09 00:30:45.244756
|
||||||
文件下载 3 2 resource:file:download \N \N \N \N \N f t f 文件下载 null f 92 94 t 初始化数据 2025-09-08 21:32:24.307945 2025-09-08 21:32:24.307946
|
文件下载 3 2 resource:file:download \N \N \N \N \N f t f 文件下载 null f 92 94 t 初始化数据 2025-09-09 00:30:45.244756 2025-09-09 00:30:45.244756
|
||||||
文件删除 3 3 resource:file:delete \N \N \N \N \N f t f 文件删除 null f 92 95 t 初始化数据 2025-09-08 21:32:24.307946 2025-09-08 21:32:24.307946
|
文件删除 3 3 resource:file:delete \N \N \N \N \N f t f 文件删除 null f 92 95 t 初始化数据 2025-09-09 00:30:45.244757 2025-09-09 00:30:45.244757
|
||||||
文件移动 3 4 resource:file:move \N \N \N \N \N f t f 文件移动 null f 92 96 t 初始化数据 2025-09-08 21:32:24.307947 2025-09-08 21:32:24.307947
|
文件移动 3 4 resource:file:move \N \N \N \N \N f t f 文件移动 null f 92 96 t 初始化数据 2025-09-09 00:30:45.244757 2025-09-09 00:30:45.244758
|
||||||
文件复制 3 5 resource:file:copy \N \N \N \N \N f t f 文件复制 null f 92 97 t 初始化数据 2025-09-08 21:32:24.307947 2025-09-08 21:32:24.307948
|
文件复制 3 5 resource:file:copy \N \N \N \N \N f t f 文件复制 null f 92 97 t 初始化数据 2025-09-09 00:30:45.244758 2025-09-09 00:30:45.244758
|
||||||
文件重命名 3 6 resource:file:rename \N \N \N \N \N f t f 文件重命名 null f 92 98 t 初始化数据 2025-09-08 21:32:24.307948 2025-09-08 21:32:24.307948
|
文件重命名 3 6 resource:file:rename \N \N \N \N \N f t f 文件重命名 null f 92 98 t 初始化数据 2025-09-09 00:30:45.244759 2025-09-09 00:30:45.244759
|
||||||
创建目录 3 7 resource:file:create_dir \N \N \N \N \N f t f 创建目录 null f 92 99 t 初始化数据 2025-09-08 21:32:24.307949 2025-09-08 21:32:24.307949
|
创建目录 3 7 resource:file:create_dir \N \N \N \N \N f t f 创建目录 null f 92 99 t 初始化数据 2025-09-09 00:30:45.244759 2025-09-09 00:30:45.24476
|
||||||
文件搜索 3 8 resource:file:search \N \N \N \N \N f t f 文件搜索 null f 92 100 t 初始化数据 2025-09-08 21:32:24.307949 2025-09-08 21:32:24.30795
|
文件搜索 3 8 resource:file:search \N \N \N \N \N f t f 文件搜索 null f 92 100 t 初始化数据 2025-09-09 00:30:45.24476 2025-09-09 00:30:45.24476
|
||||||
导出文件列表 3 9 resource:file:export \N \N \N \N \N f t f 导出文件列表 null f 92 101 t 初始化数据 2025-09-08 21:32:24.30795 2025-09-08 21:32:24.30795
|
导出文件列表 3 9 resource:file:export \N \N \N \N \N f t f 导出文件列表 null f 92 101 t 初始化数据 2025-09-09 00:30:45.244761 2025-09-09 00:30:45.244761
|
||||||
AI大模型 1 8 \N el-icon-DataLine AI /ai \N /ai/mcp f f f AI大模型 null f \N 102 t AI大模型管理 2025-09-08 21:32:24.307951 2025-09-08 21:32:24.307951
|
AI大模型 1 8 \N el-icon-DataLine AI /ai \N /ai/mcp f f f AI大模型 null f \N 102 t AI大模型管理 2025-09-09 00:30:45.244761 2025-09-09 00:30:45.244762
|
||||||
MCP智能助手 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t f MCP智能助手 null f 102 103 t MCP智能助手 2025-09-08 21:32:24.307951 2025-09-08 21:32:24.307952
|
MCP智能助手 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t f MCP智能助手 null f 102 103 t MCP智能助手 2025-09-09 00:30:45.244762 2025-09-09 00:30:45.244762
|
||||||
智能对话 3 1 ai:mcp:chat \N \N \N \N \N f t f 智能对话 null f 103 104 t 智能对话 2025-09-08 21:32:24.307952 2025-09-08 21:32:24.307952
|
智能对话 3 1 ai:mcp:chat \N \N \N \N \N f t f 智能对话 null f 103 104 t 智能对话 2025-09-09 00:30:45.244763 2025-09-09 00:30:45.244763
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2387,10 +2384,10 @@ MCP智能助手 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_notice (notice_title, notice_type, notice_content, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_notice (notice_title, notice_type, notice_content, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
系统更新 1 2099年9月9日,晚上12:00,系统更新 1 1 t 系统更新 2025-09-08 21:32:24.32348 2025-09-08 21:32:24.323481
|
系统更新 1 2099年9月9日,晚上12:00,系统更新 1 1 t 系统更新 2025-09-09 00:30:45.266852 2025-09-09 00:30:45.266853
|
||||||
系统维护 2 2099年9月9日,晚上12:00,系统维护 1 2 t 系统维护 2025-09-08 21:32:24.323482 2025-09-08 21:32:24.323482
|
系统维护 2 2099年9月9日,晚上12:00,系统维护 1 2 t 系统维护 2025-09-09 00:30:45.266853 2025-09-09 00:30:45.266854
|
||||||
系统更新完成 1 2099年9月9日,晚上12:00,系统更新完成 1 3 f 系统更新完成 2025-09-08 21:32:24.323482 2025-09-08 21:32:24.323483
|
系统更新完成 1 2099年9月9日,晚上12:00,系统更新完成 1 3 f 系统更新完成 2025-09-09 00:30:45.266854 2025-09-09 00:30:45.266855
|
||||||
系统维护完成 2 2099年9月9日,晚上12:00,系统维护完成 1 4 f 系统维护完成 2025-09-08 21:32:24.323483 2025-09-08 21:32:24.323483
|
系统维护完成 2 2099年9月9日,晚上12:00,系统维护完成 1 4 f 系统维护完成 2025-09-09 00:30:45.266855 2025-09-09 00:30:45.266855
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2399,13 +2396,13 @@ COPY public.system_notice (notice_title, notice_type, notice_content, creator_id
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_position (name, "order", creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_position (name, "order", creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
董事长岗 1 1 1 t 董事长岗位 2025-09-08 21:32:24.316837 2025-09-08 21:32:24.316838
|
董事长岗 1 1 1 t 董事长岗位 2025-09-09 00:30:45.256949 2025-09-09 00:30:45.25695
|
||||||
运营岗 2 1 2 t 运营岗位 2025-09-08 21:32:24.316839 2025-09-08 21:32:24.316839
|
运营岗 2 1 2 t 运营岗位 2025-09-09 00:30:45.256951 2025-09-09 00:30:45.256951
|
||||||
销售岗 3 1 3 t 销售岗 2025-09-08 21:32:24.316839 2025-09-08 21:32:24.31684
|
销售岗 3 1 3 t 销售岗 2025-09-09 00:30:45.256952 2025-09-09 00:30:45.256952
|
||||||
人事行政岗 4 1 4 t 人事行政岗 2025-09-08 21:32:24.31684 2025-09-08 21:32:24.316841
|
人事行政岗 4 1 4 t 人事行政岗 2025-09-09 00:30:45.256952 2025-09-09 00:30:45.256953
|
||||||
开发岗 5 1 5 t 开发岗 2025-09-08 21:32:24.316841 2025-09-08 21:32:24.316841
|
开发岗 5 1 5 t 开发岗 2025-09-09 00:30:45.256953 2025-09-09 00:30:45.256954
|
||||||
测试岗 6 1 6 t 测试岗 2025-09-08 21:32:24.316842 2025-09-08 21:32:24.316842
|
测试岗 6 1 6 t 测试岗 2025-09-09 00:30:45.256954 2025-09-09 00:30:45.256954
|
||||||
演示岗 7 1 7 t 演示岗 2025-09-08 21:32:24.316842 2025-09-08 21:32:24.316843
|
演示岗 7 1 7 t 演示岗 2025-09-09 00:30:45.256955 2025-09-09 00:30:45.256955
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2414,8 +2411,8 @@ COPY public.system_position (name, "order", creator_id, id, status, description,
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_role (name, code, "order", data_scope, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_role (name, code, "order", data_scope, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
管理员角色 \N 1 4 1 1 t 管理员 2025-09-08 21:32:24.31507 2025-09-08 21:32:24.315071
|
管理员角色 \N 1 4 1 1 t 管理员 2025-09-09 00:30:45.254073 2025-09-09 00:30:45.254074
|
||||||
普通角色 \N 2 1 1 2 t 普通角色 2025-09-08 21:32:24.315072 2025-09-08 21:32:24.315072
|
普通角色 \N 2 1 1 2 t 普通角色 2025-09-09 00:30:45.254074 2025-09-09 00:30:45.254075
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2571,9 +2568,9 @@ COPY public.system_user_roles (user_id, role_id) FROM stdin;
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_users (username, password, name, mobile, email, gender, avatar, is_superuser, last_login, dept_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_users (username, password, name, mobile, email, gender, avatar, is_superuser, last_login, dept_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
demo $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 演示用户 15382112121 demo@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 6 1 3 t 演示用户 2025-09-08 21:32:24.31318 2025-09-08 21:32:24.31318
|
superadmin $2b$12$/Df5YczDGF41zCh2F8Xbu.yHTJXGm3tONgsXz1KLUdG0mtpKUOLD2 超级管理员 15382112620 948080782@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t \N 1 \N 1 t 超级管理员 2025-09-09 00:30:45.251329 2025-09-09 00:30:45.25133
|
||||||
admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 管理员 15382112222 admin@qq.com 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f 2025-09-08 13:33:47.640825+00 1 1 2 t 管理员 2025-09-08 21:32:24.313179 2025-09-08 21:33:47.65267
|
admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 管理员 15382112222 admin@qq.com 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 1 1 2 t 管理员 2025-09-09 00:30:45.25133 2025-09-09 00:30:45.251331
|
||||||
superadmin $2b$12$/Df5YczDGF41zCh2F8Xbu.yHTJXGm3tONgsXz1KLUdG0mtpKUOLD2 超级管理员 15382112620 948080782@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t 2025-09-08 13:34:23.3699+00 1 \N 1 t 超级管理员 2025-09-08 21:32:24.313177 2025-09-08 21:34:23.382389
|
demo $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 演示用户 15382112121 demo@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 6 1 3 t 演示用户 2025-09-09 00:30:45.251331 2025-09-09 00:30:45.251331
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2637,7 +2634,7 @@ SELECT pg_catalog.setval('public.system_dict_type_id_seq', 10, true);
|
|||||||
-- Name: system_log_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_log_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_log_id_seq', 3, true);
|
SELECT pg_catalog.setval('public.system_log_id_seq', 1, false);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -46,10 +46,6 @@ pnpm install
|
|||||||
pnpm run dev
|
pnpm run dev
|
||||||
# 构建前端, 生成 `frontend/dist` 目录
|
# 构建前端, 生成 `frontend/dist` 目录
|
||||||
pnpm run build
|
pnpm run build
|
||||||
# 运行文档工程
|
|
||||||
pnpm run docs:dev
|
|
||||||
# 构建文档工程, 生成 `public/docs` 目录
|
|
||||||
pnpm run docs:build
|
|
||||||
# 运行命令,查看未用到的依赖
|
# 运行命令,查看未用到的依赖
|
||||||
depcheck
|
depcheck
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user