Files
DjangoAdmin_FastAPI_EleVue/modules/job/models.py
T
ClaudeandClaude b2c7b93786 feat(phase3): 全部模型迁移到 modules/,apps/models 改垫片
- 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>
2026-08-07 10:06:53 +08:00

101 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)