task_list.py
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# coding=utf-8
# author: 4N
# createtime: 2020/9/4
# email: nheweijun@sina.com
import datetime
from ..models import Task
from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor
import json
from app.modules.auth.models import User
from app.util.component.UserAlias import UserAlias
class Api(ApiTemplate):
api_name = "任务列表"
def para_check(self):
pass
def process(self):
res = {}
res["data"] = {}
try:
parameter = self.para
page_index = int(parameter.get("page_index", "0"))
page_size = int(parameter.get("page_size", "10"))
name = parameter.get("name")
tasks = Task.query.order_by(Task.create_time.desc())
start_time = parameter.get("start_time")
end_time = parameter.get("end_time")
creator = parameter.get("creator")
state = parameter.get("state")
if creator and creator !="admin":
tasks = tasks.filter_by(creator=creator)
if start_time and end_time:
tasks = tasks.filter(Task.create_time.between(start_time, end_time))
if name:
tasks = tasks.filter(Task.name.like("%" + name + "%"))
if state is not None:
state_list = state.split(",")
state_list =[int(x) for x in state_list]
tasks = tasks.filter(Task.state.in_(state_list))
res["data"]["count"] = tasks.count()
tasks = tasks.limit(page_size).offset(page_index * page_size).all()
res["data"]["list"] = [ModelVisitor.task_to_json(task) for task in tasks]
try:
user_alias = UserAlias()
for task_info in res["data"]["list"]:
if task_info["task_type"]==1:
task_info["layers"] = []
meta = json.loads(json.loads(task_info.get("parameter")).get("meta"))
for m in meta:
for key in m.get("layer").keys():
task_info["layers"].append({"name":key,"new_name":m.get("layer").get(key)})
task_info["display_name"] = user_alias.get_alias(task_info["creator"])
except:
pass
res["result"] = True
except Exception as e:
raise e
return res
api_doc={
"tags":["任务接口"],
"parameters":[
{"name": "page_index",
"in": "formData",
"type": "int",
"default": "0"},
{"name": "page_size",
"in": "formData",
"type": "int",
"default": "10"},
{"name": "start_time",
"in": "formData",
"type": "string"},
{"name": "end_time",
"in": "formData",
"type": "string"},
{"name": "name",
"in": "formData",
"type": "string"},
{"name": "creator",
"in": "formData",
"type": "string"},
{"name": "state",
"in": "formData",
"type": "string"}
],
"responses":{
200:{
"schema":{
"properties":{
}
}
}
}
}