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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# -*- encoding: utf-8 -*-
# -----------------------------------------------------------------------------
# @File Name : template_manage.py
# @Time : 2021/1/6 下午6:25
# @Author : X. Peng
# @Email : acepengxiong@163.com
# @Software : PyCharm
# -----------------------------------------------------------------------------
import json
from flask_restful import Resource, reqparse
from flask import request, g
from app.api.engine import redis
from app.config.default_template_params import hold_default_template, hold_default_data, diagnose_default_data, \
diagnose_default_template
from app.service.template_manage_service import add_template, update_template, delete_template, get_template_list, \
get_default_template, set_default_template
from app.utils.auth import login_require
from app.utils.format_transfer import npEncoder
from flask import jsonify
from app.utils.jinjia2html_v2 import DataIntegrate
import numpy as np
class TemplateManage(Resource):
"""."""
def __init__(self):
"""."""
self.parser = reqparse.RequestParser()
@login_require
def get(self):
"""获取模版数据."""
self.parser.add_argument('id', type=str, required=True, help='id不能为空')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
data = get_default_template(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": data
}
return json.dumps(resp, cls=npEncoder, ensure_ascii=False)
@login_require
def post(self):
"""新建定义模版."""
self.parser.add_argument('name', type=str, required=True, help='模版名称不能为空')
self.parser.add_argument('custom_template', type=str, required=True, help='模版数据不能为空')
self.parser.add_argument('type', type=int, required=True, help='模版类型不能为空')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
add_template(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": []
}
return resp
@login_require
def put(self):
"""更新模版."""
self.parser.add_argument('id', type=str, required=True, help='模版id')
self.parser.add_argument('template_data', type=str, required=False, help='模版数据')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
update_template(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": []
}
return resp
@login_require
def delete(self):
"""删除模版."""
self.parser.add_argument('id', type=str, required=True, help='模版id')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
res = delete_template(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": []
}
if not res:
resp = {
"statusCode": "9002",
"message": "删除失败",
"attributes": []
}
return resp
class TemplateList(Resource):
"""."""
def __init__(self):
"""."""
self.parser = reqparse.RequestParser()
@login_require
def get(self):
"""获取模版列表分页数据."""
self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告')
self.parser.add_argument('name', type=str, required=False, help='模版名称')
self.parser.add_argument('pageNumber', type=int, required=False)
self.parser.add_argument('pageSize', type=int, required=False)
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
data = get_template_list(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": data
}
return resp
@login_require
def put(self):
"""设置默认模版"""
self.parser.add_argument('id', type=str, required=True, help='模版id')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
data = set_default_template(args)
resp = {
"statusCode": "0000",
"message": "成功",
"attributes": data
}
return resp