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>
This commit is contained in:
Claude
2026-08-07 10:06:53 +08:00
co-authored by Claude
parent bde742c7a8
commit b2c7b93786
40 changed files with 1594 additions and 0 deletions
View File
+100
View File
@@ -0,0 +1,100 @@
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)