初始提交

This commit is contained in:
焦龙言
2026-07-24 09:43:10 +08:00
commit b5b4721456
793 changed files with 116305 additions and 0 deletions
@@ -0,0 +1,32 @@
from datetime import datetime
from sqlalchemy import CHAR, Column, DateTime, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysConfig(Base):
"""
参数配置表
"""
__tablename__ = 'sys_config'
__table_args__ = {'comment': '参数配置表'}
config_id = Column(Integer, primary_key=True, nullable=False, autoincrement=True, comment='参数主键')
config_name = Column(String(100), nullable=True, server_default="''", comment='参数名称')
config_key = Column(String(100), nullable=True, server_default="''", comment='参数键名')
config_value = Column(String(500), nullable=True, server_default="''", comment='参数键值')
config_type = Column(CHAR(1), nullable=True, server_default='N', comment='系统内置(Y是 N否)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
@@ -0,0 +1,46 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysDept(Base):
"""
部门表
"""
__tablename__ = 'sys_dept'
__table_args__ = {'comment': '部门表'}
dept_id = Column(BigInteger, primary_key=True, autoincrement=True, comment='部门id')
parent_id = Column(BigInteger, server_default='0', comment='父部门id')
ancestors = Column(String(50), nullable=True, server_default="''", comment='祖级列表')
dept_name = Column(String(30), nullable=True, server_default="''", comment='部门名称')
order_num = Column(Integer, server_default='0', comment='显示顺序')
leader = Column(
String(20),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='负责人',
)
phone = Column(
String(11),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='联系电话',
)
email = Column(
String(50),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='邮箱',
)
status = Column(CHAR(1), nullable=True, server_default='0', comment='部门状态(0正常 1停用)')
del_flag = Column(CHAR(1), nullable=True, server_default='0', comment='删除标志(0代表存在 2代表删除)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
@@ -0,0 +1,70 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysDictType(Base):
"""
字典类型表
"""
__tablename__ = 'sys_dict_type'
__table_args__ = {'comment': '字典类型表'}
dict_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='字典主键')
dict_name = Column(String(100), nullable=True, server_default="''", comment='字典名称')
dict_type = Column(String(100), unique=True, nullable=True, server_default="''", comment='字典类型')
status = Column(CHAR(1), nullable=True, server_default='0', comment='状态(0正常 1停用)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
class SysDictData(Base):
"""
字典数据表
"""
__tablename__ = 'sys_dict_data'
__table_args__ = {'comment': '字典数据表'}
dict_code = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='字典编码')
dict_sort = Column(Integer, nullable=True, server_default='0', comment='字典排序')
dict_label = Column(String(100), nullable=True, server_default="''", comment='字典标签')
dict_value = Column(String(100), nullable=True, server_default="''", comment='字典键值')
dict_type = Column(String(100), nullable=True, server_default="''", comment='字典类型')
css_class = Column(
String(100),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='样式属性(其他样式扩展)',
)
list_class = Column(
String(100),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='表格回显样式',
)
is_default = Column(CHAR(1), nullable=True, server_default='N', comment='是否默认(Y是 N否)')
status = Column(CHAR(1), nullable=True, server_default='0', comment='状态(0正常 1停用)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
@@ -0,0 +1,58 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, String
from config.database import Base
class SysJob(Base):
"""
定时任务调度表
"""
__tablename__ = 'sys_job'
__table_args__ = {'comment': '定时任务调度表'}
job_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='任务ID')
job_name = Column(String(64), primary_key=True, nullable=False, server_default="''", comment='任务名称')
job_group = Column(String(64), primary_key=True, nullable=False, server_default='default', comment='任务组名')
job_executor = Column(String(64), nullable=True, server_default='default', comment='任务执行器')
invoke_target = Column(String(500), nullable=False, comment='调用目标字符串')
job_args = Column(String(255), nullable=True, server_default="''", comment='位置参数')
job_kwargs = Column(String(255), nullable=True, server_default="''", comment='关键字参数')
cron_expression = Column(String(255), nullable=True, server_default="''", comment='cron执行表达式')
misfire_policy = Column(
String(20),
nullable=True,
server_default='3',
comment='计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
)
concurrent = Column(CHAR(1), nullable=True, server_default='1', comment='是否并发执行(0允许 1禁止)')
status = Column(CHAR(1), nullable=True, server_default='0', comment='状态(0正常 1暂停)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(String(500), nullable=True, server_default="''", comment='备注信息')
class SysJobLog(Base):
"""
定时任务调度日志表
"""
__tablename__ = 'sys_job_log'
__table_args__ = {'comment': '定时任务调度日志表'}
job_log_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='任务日志ID')
job_name = Column(String(64), nullable=False, comment='任务名称')
job_group = Column(String(64), nullable=False, comment='任务组名')
job_executor = Column(String(64), nullable=False, comment='任务执行器')
invoke_target = Column(String(500), nullable=False, comment='调用目标字符串')
job_args = Column(String(255), nullable=True, server_default="''", comment='位置参数')
job_kwargs = Column(String(255), nullable=True, server_default="''", comment='关键字参数')
job_trigger = Column(String(255), nullable=True, server_default="''", comment='任务触发器')
job_message = Column(String(500), nullable=True, comment='日志信息')
status = Column(CHAR(1), nullable=True, server_default='0', comment='执行状态(0正常 1失败)')
exception_info = Column(String(2000), nullable=True, server_default="''", comment='异常信息')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
@@ -0,0 +1,60 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Index, Integer, String
from config.database import Base
class SysLogininfor(Base):
"""
系统访问记录
"""
__tablename__ = 'sys_logininfor'
__table_args__ = {'comment': '系统访问记录'}
info_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='访问ID')
user_name = Column(String(50), nullable=True, server_default="''", comment='用户账号')
ipaddr = Column(String(128), nullable=True, server_default="''", comment='登录IP地址')
login_location = Column(String(255), nullable=True, server_default="''", comment='登录地点')
browser = Column(String(50), nullable=True, server_default="''", comment='浏览器类型')
os = Column(String(50), nullable=True, server_default="''", comment='操作系统')
status = Column(CHAR(1), nullable=True, server_default='0', comment='登录状态(0成功 1失败)')
msg = Column(String(255), nullable=True, server_default="''", comment='提示消息')
login_time = Column(DateTime, nullable=True, default=datetime.now(), comment='访问时间')
idx_sys_logininfor_s = Index('idx_sys_logininfor_s', status)
idx_sys_logininfor_lt = Index('idx_sys_logininfor_lt', login_time)
class SysOperLog(Base):
"""
操作日志记录
"""
__tablename__ = 'sys_oper_log'
__table_args__ = {'comment': '操作日志记录'}
oper_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='日志主键')
title = Column(String(50), nullable=True, server_default="''", comment='模块标题')
business_type = Column(Integer, nullable=True, server_default='0', comment='业务类型(0其它 1新增 2修改 3删除)')
method = Column(String(100), nullable=True, server_default="''", comment='方法名称')
request_method = Column(String(10), nullable=True, server_default="''", comment='请求方式')
operator_type = Column(
Integer, nullable=True, server_default='0', comment='操作类别(0其它 1后台用户 2手机端用户)'
)
oper_name = Column(String(50), nullable=True, server_default="''", comment='操作人员')
dept_name = Column(String(50), nullable=True, server_default="''", comment='部门名称')
oper_url = Column(String(255), nullable=True, server_default="''", comment='请求URL')
oper_ip = Column(String(128), nullable=True, server_default="''", comment='主机地址')
oper_location = Column(String(255), nullable=True, server_default="''", comment='操作地点')
oper_param = Column(String(2000), nullable=True, server_default="''", comment='请求参数')
json_result = Column(String(2000), nullable=True, server_default="''", comment='返回参数')
status = Column(Integer, nullable=True, server_default='0', comment='操作状态(0正常 1异常)')
error_msg = Column(String(2000), nullable=True, server_default="''", comment='错误消息')
oper_time = Column(DateTime, nullable=True, default=datetime.now(), comment='操作时间')
cost_time = Column(BigInteger, nullable=True, server_default='0', comment='消耗时间')
idx_sys_oper_log_bt = Index('idx_sys_oper_log_bt', business_type)
idx_sys_oper_log_s = Index('idx_sys_oper_log_s', status)
idx_sys_oper_log_ot = Index('idx_sys_oper_log_ot', oper_time)
@@ -0,0 +1,52 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysMenu(Base):
"""
菜单权限表
"""
__tablename__ = 'sys_menu'
__table_args__ = {'comment': '菜单权限表'}
menu_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='菜单ID')
menu_name = Column(String(50), nullable=False, comment='菜单名称')
parent_id = Column(BigInteger, nullable=True, server_default='0', comment='父菜单ID')
order_num = Column(Integer, server_default='0', comment='显示顺序')
path = Column(String(200), nullable=True, server_default="''", comment='路由地址')
component = Column(
String(255),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='组件路径',
)
query = Column(
String(255),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='路由参数',
)
route_name = Column(String(50), nullable=True, server_default="''", comment='路由名称')
is_frame = Column(Integer, nullable=True, server_default='1', comment='是否为外链(0是 1否)')
is_cache = Column(Integer, nullable=True, server_default='0', comment='是否缓存(0缓存 1不缓存)')
menu_type = Column(CHAR(1), nullable=True, server_default="''", comment='菜单类型(M目录 C菜单 F按钮)')
visible = Column(CHAR(1), nullable=True, server_default='0', comment='菜单状态(0显示 1隐藏)')
status = Column(CHAR(1), nullable=True, server_default='0', comment='菜单状态(0正常 1停用)')
perms = Column(
String(100),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='权限标识',
)
icon = Column(String(100), nullable=True, server_default='#', comment='菜单图标')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(String(500), nullable=True, server_default="''", comment='备注')
@@ -0,0 +1,38 @@
from datetime import datetime
from sqlalchemy import CHAR, Column, DateTime, Integer, LargeBinary, String
from sqlalchemy.dialects import mysql
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysNotice(Base):
"""
通知公告表
"""
__tablename__ = 'sys_notice'
__table_args__ = {'comment': '通知公告表'}
notice_id = Column(Integer, primary_key=True, nullable=False, autoincrement=True, comment='公告ID')
notice_title = Column(String(50), nullable=False, comment='公告标题')
notice_type = Column(CHAR(1), nullable=False, comment='公告类型(1通知 2公告)')
notice_content = Column(
mysql.LONGBLOB if DataBaseConfig.db_type == 'mysql' else LargeBinary,
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type, False),
comment='公告内容',
)
status = Column(CHAR(1), nullable=True, server_default='0', comment='公告状态(0正常 1关闭)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, comment='创建时间', default=datetime.now())
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, comment='更新时间', default=datetime.now())
remark = Column(
String(255),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
@@ -0,0 +1,32 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysPost(Base):
"""
岗位信息表
"""
__tablename__ = 'sys_post'
__table_args__ = {'comment': '岗位信息表'}
post_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='岗位ID')
post_code = Column(String(64), nullable=False, comment='岗位编码')
post_name = Column(String(50), nullable=False, comment='岗位名称')
post_sort = Column(Integer, nullable=False, comment='显示顺序')
status = Column(CHAR(1), nullable=False, comment='状态(0正常 1停用)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
@@ -0,0 +1,76 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, SmallInteger, String
from sqlalchemy.dialects import mysql
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysRole(Base):
"""
角色信息表
"""
__tablename__ = 'sys_role'
__table_args__ = {'comment': '角色信息表'}
role_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='角色ID')
role_name = Column(String(30), nullable=False, comment='角色名称')
role_key = Column(String(100), nullable=False, comment='角色权限字符串')
role_sort = Column(Integer, nullable=False, comment='显示顺序')
data_scope = Column(
CHAR(1),
nullable=True,
server_default='1',
comment='数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
)
menu_check_strictly = Column(
mysql.TINYINT(display_width=1) if DataBaseConfig.db_type == 'mysql' else SmallInteger,
nullable=True,
server_default='1',
comment='菜单树选择项是否关联显示',
)
dept_check_strictly = Column(
mysql.TINYINT(display_width=1) if DataBaseConfig.db_type == 'mysql' else SmallInteger,
nullable=True,
server_default='1',
comment='部门树选择项是否关联显示',
)
status = Column(CHAR(1), nullable=False, comment='角色状态(0正常 1停用)')
del_flag = Column(CHAR(1), nullable=True, server_default='0', comment='删除标志(0代表存在 2代表删除)')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
class SysRoleDept(Base):
"""
角色和部门关联表
"""
__tablename__ = 'sys_role_dept'
__table_args__ = {'comment': '角色和部门关联表'}
role_id = Column(BigInteger, primary_key=True, nullable=False, comment='角色ID')
dept_id = Column(BigInteger, primary_key=True, nullable=False, comment='部门ID')
class SysRoleMenu(Base):
"""
角色和菜单关联表
"""
__tablename__ = 'sys_role_menu'
__table_args__ = {'comment': '角色和菜单关联表'}
role_id = Column(BigInteger, primary_key=True, nullable=False, comment='角色ID')
menu_id = Column(BigInteger, primary_key=True, nullable=False, comment='菜单ID')
@@ -0,0 +1,71 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, String
from config.database import Base
from config.env import DataBaseConfig
from utils.common_util import SqlalchemyUtil
class SysUser(Base):
"""
用户信息表
"""
__tablename__ = 'sys_user'
__table_args__ = {'comment': '用户信息表'}
user_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='用户ID')
dept_id = Column(
BigInteger,
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type, False),
comment='部门ID',
)
user_name = Column(String(30), nullable=False, comment='用户账号')
nick_name = Column(String(30), nullable=False, comment='用户昵称')
user_type = Column(String(2), nullable=True, server_default='00', comment='用户类型(00系统用户)')
email = Column(String(50), nullable=True, server_default="''", comment='用户邮箱')
phonenumber = Column(String(11), nullable=True, server_default="''", comment='手机号码')
sex = Column(CHAR(1), nullable=True, server_default='0', comment='用户性别(0男 1女 2未知)')
avatar = Column(String(100), nullable=True, server_default="''", comment='头像地址')
password = Column(String(100), nullable=True, server_default="''", comment='密码')
status = Column(CHAR(1), nullable=True, server_default='0', comment='帐号状态(0正常 1停用)')
del_flag = Column(CHAR(1), nullable=True, server_default='0', comment='删除标志(0代表存在 2代表删除)')
login_ip = Column(String(128), nullable=True, server_default="''", comment='最后登录IP')
login_date = Column(DateTime, nullable=True, comment='最后登录时间')
pwd_update_date = Column(DateTime, nullable=True, comment='密码最后更新时间')
create_by = Column(String(64), nullable=True, server_default="''", comment='创建者')
create_time = Column(DateTime, nullable=True, comment='创建时间', default=datetime.now())
update_by = Column(String(64), nullable=True, server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, comment='更新时间', default=datetime.now())
remark = Column(
String(500),
nullable=True,
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
comment='备注',
)
class SysUserRole(Base):
"""
用户和角色关联表
"""
__tablename__ = 'sys_user_role'
__table_args__ = {'comment': '用户和角色关联表'}
user_id = Column(BigInteger, primary_key=True, nullable=False, comment='用户ID')
role_id = Column(BigInteger, primary_key=True, nullable=False, comment='角色ID')
class SysUserPost(Base):
"""
用户与岗位关联表
"""
__tablename__ = 'sys_user_post'
__table_args__ = {'comment': '用户与岗位关联表'}
user_id = Column(BigInteger, primary_key=True, nullable=False, comment='用户ID')
post_id = Column(BigInteger, primary_key=True, nullable=False, comment='岗位ID')