- 18 个模块目录、25 个模型按业务域聚合(user+user_role、role+role_menu、dict+dict_item、config+config_item、member+member_level、job+job_log、login_log+operation_log 合并) - 表名/字段/继承关系原样保留(含 DictItem=dict_data、JobLog 用 del_flag) - apps/models/*.py 全部改为 re-export 垫片,旧导入路径保持兼容 Co-Authored-By: Claude <noreply@anthropic.com>
101 lines
4.2 KiB
Python
101 lines
4.2 KiB
Python
from sqlalchemy import Column, String, Integer, Text
|
||
|
||
from shared.base_db import base_db
|
||
from shared.base_model import base_model
|
||
from config import DB_PREFIX
|
||
|
||
|
||
# 定时任务模型
|
||
class Job(base_model, base_db):
|
||
# 设置表名
|
||
__tablename__ = DB_PREFIX + "job"
|
||
# 任务名称
|
||
job_name = Column(String(255), nullable=False, comment="任务名称")
|
||
# 任务别名
|
||
job_alias = Column(String(255), nullable=True, comment="任务别名")
|
||
# 任务分组
|
||
job_group = Column(String(255), nullable=True, comment="任务分组")
|
||
# 任务触发器
|
||
job_trigger = Column(String(255), nullable=True, comment="任务触发器")
|
||
# 任务状态:0-未发布 1-运行中 2-暂停 3-删除
|
||
status = Column(Integer, nullable=False, default=0, comment="任务状态:0-未发布 1-运行中 2-暂停 3-删除")
|
||
# Cron表达式
|
||
cron_expression = Column(String(255), nullable=True, comment="Cron表达式")
|
||
# 执行策略:1-立即执行 2-执行一次 3-放弃执行
|
||
execute_policy = Column(Integer, nullable=False, default=1, comment="执行策略:1-立即执行 2-执行一次 3-放弃执行")
|
||
# 是否同步任务:0-否 1-是
|
||
is_sync = Column(Integer, nullable=False, default=0, comment="是否同步任务:0-否 1-是")
|
||
# 任务URL
|
||
url = Column(String(255), nullable=True, comment="任务URL")
|
||
# 任务参数
|
||
params = Column(Text, nullable=True, comment="任务参数")
|
||
# 任务备注
|
||
note = Column(String(255), nullable=True, comment="任务备注")
|
||
|
||
def __str__(self):
|
||
return "定时任务:{}".format(self.job_name)
|
||
|
||
|
||
from datetime import datetime
|
||
|
||
from sqlalchemy import Column, String, Integer, BigInteger, Text, DATETIME
|
||
|
||
from shared.base_db import base_db
|
||
from config import DB_PREFIX
|
||
from core.database import Base
|
||
|
||
|
||
# 定时任务日志模型
|
||
class JobLog(base_db, Base):
|
||
# 设置表名
|
||
__tablename__ = DB_PREFIX + "job_log"
|
||
# 任务日志ID
|
||
id = Column(Integer, primary_key=True, autoincrement=True, comment="任务日志ID")
|
||
# 任务ID
|
||
job_id = Column(Integer, nullable=False, default=0, comment="任务ID")
|
||
# 任务名称
|
||
job_name = Column(String(255), nullable=False, comment="任务名称")
|
||
# 任务分组
|
||
job_group = Column(String(255), nullable=True, comment="任务分组")
|
||
# 任务触发器
|
||
job_trigger = Column(String(255), nullable=True, comment="任务触发器")
|
||
# 任务日志信息
|
||
job_message = Column(String(500), nullable=True, comment="任务日志信息")
|
||
# Cron表达式
|
||
cron_expression = Column(String(255), nullable=True, comment="Cron表达式")
|
||
# 执行状态:0-正常 1-失败
|
||
status = Column(Integer, nullable=False, default=0, comment="执行状态:0-正常 1-失败")
|
||
# 执行开始时间
|
||
start_time = Column(DATETIME, nullable=True, comment="执行开始时间")
|
||
# 执行结束时间
|
||
end_time = Column(DATETIME, nullable=True, comment="执行结束时间")
|
||
# 执行耗时,单位:毫秒
|
||
consume_time = Column(BigInteger, nullable=False, default=0, comment="执行耗时,单位:毫秒")
|
||
# 异常信息
|
||
exception_info = Column(Text, nullable=True, comment="异常信息")
|
||
# 添加人
|
||
create_user = Column(String(50), nullable=True, comment="添加人")
|
||
# 添加时间
|
||
create_time = Column(DATETIME, nullable=True, default=datetime.now, comment="添加时间")
|
||
# 更新人
|
||
update_user = Column(String(50), nullable=True, comment="更新人")
|
||
# 更新时间
|
||
update_time = Column(DATETIME, nullable=True, comment="更新时间")
|
||
# 删除标识:0-有效 1-删除
|
||
del_flag = Column(Integer, nullable=False, default=0, comment="删除标识:0-有效 1-删除")
|
||
|
||
def to_dict(self):
|
||
"""序列化为字典(排除del_flag,datetime转为字符串)"""
|
||
result = {}
|
||
for column in self.__table__.columns:
|
||
if column.name == 'del_flag':
|
||
continue
|
||
value = getattr(self, column.name)
|
||
if isinstance(value, datetime):
|
||
value = value.strftime('%Y-%m-%d %H:%M:%S')
|
||
result[column.name] = value
|
||
return result
|
||
|
||
def __str__(self):
|
||
return "定时任务日志:{}".format(self.job_name)
|