first commit

This commit is contained in:
2026-06-25 17:41:06 +08:00
commit b2f23a933b
370 changed files with 30526 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
from .finance_parse import parse_finance_data
from tortoise.expressions import Q
from tortoise.transactions import atomic
from app.models.automation import Task, TaskStatus
from app.schemas.task import TaskModel, DecodeTaskParams, DecodeTaskResult
class TaskController(object):
async def get_task(self, name, type):
q = Q()
# 获取所有未被软删除的任务
q &= Q(is_deleted=False)
if name: q &= Q(name__contains=name)
if type: q &= Q(type=type)
all_tasks = await self.model.filter(q).order_by("id")
return all_tasks
async def list(self, name, type, page: int = 1, page_size: int = 10, order: list[str] = ["id"]):
q = Q()
if name: q &= Q(name__contains=name)
if type: q &= Q(type=type)
query = Task.filter(q)
return await query.count(), await query.offset((page - 1) * page_size).limit(page_size).order_by(*order)
@atomic()
async def create_task(self, name: str, obj_in: DecodeTaskParams):
task_obj = TaskModel.create_decode_task(name, obj_in)
task_obj.result = task_obj.result or {}
obj = Task(**task_obj.model_dump())
await obj.save()
return obj, task_obj
@atomic()
async def update_task(self, obj_in: TaskModel, task_id: int, status: TaskStatus, result: DecodeTaskResult):
task_obj = await Task.get(id=task_id)
obj_in.status = status
obj_in.set_result(result)
# 更新任务信息
task_obj.update_from_dict(obj_in.model_dump(exclude_unset=True))
await task_obj.save()
task_controller = TaskController()