template_manage.py 4.38 KB
Newer Older
pengxiong's avatar
pengxiong committed
1 2 3 4 5 6 7 8 9 10 11
# -*- 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
pengxiong's avatar
pengxiong committed
12
from flask import request, g
pengxiong's avatar
pengxiong committed
13 14

from app.api.engine import redis
15 16 17
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, \
pengxiong's avatar
pengxiong committed
18
    get_default_template, set_default_template
pengxiong's avatar
pengxiong committed
19
from app.utils.auth import login_require
pengxiong's avatar
pengxiong committed
20
from app.utils.format_transfer import npEncoder
21
from flask import jsonify
pengxiong's avatar
pengxiong committed
22 23 24 25 26 27 28 29 30 31 32
from app.utils.jinjia2html_v2 import DataIntegrate
import numpy as np


class TemplateManage(Resource):
    """."""

    def __init__(self):
        """."""
        self.parser = reqparse.RequestParser()

pengxiong's avatar
pengxiong committed
33
    @login_require
pengxiong's avatar
pengxiong committed
34
    def get(self):
pengxiong's avatar
pengxiong committed
35
        """获取模版数据."""
pengxiong's avatar
2  
pengxiong committed
36
        self.parser.add_argument('id', type=str, required=True, help='id不能为空')
pengxiong's avatar
pengxiong committed
37
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
38
        args['ifa_id'] = g.ifa_id
39
        data = get_default_template(args)
pengxiong's avatar
pengxiong committed
40 41 42 43 44 45 46
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return json.dumps(resp, cls=npEncoder, ensure_ascii=False)

pengxiong's avatar
pengxiong committed
47
    @login_require
pengxiong's avatar
pengxiong committed
48
    def post(self):
49 50 51 52 53
        """新建定义模版."""
        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()
pengxiong's avatar
pengxiong committed
54
        args['ifa_id'] = g.ifa_id
55
        add_template(args)
pengxiong's avatar
pengxiong committed
56 57 58 59 60 61
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
        return resp
pengxiong's avatar
pengxiong committed
62

pengxiong's avatar
pengxiong committed
63
    @login_require
64 65
    def put(self):
        """更新模版."""
pengxiong's avatar
pengxiong committed
66 67
        self.parser.add_argument('id', type=str, required=True, help='模版id')
        self.parser.add_argument('template_data', type=str, required=False, help='模版数据')
68
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
69
        args['ifa_id'] = g.ifa_id
70 71 72 73 74 75 76 77
        update_template(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
        return resp

pengxiong's avatar
pengxiong committed
78
    @login_require
79 80 81 82
    def delete(self):
        """删除模版."""
        self.parser.add_argument('id', type=str, required=True, help='模版id')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
83
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
84
        res = delete_template(args)
85 86 87 88 89
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
pengxiong's avatar
pengxiong committed
90 91 92 93 94 95
        if not res:
            resp = {
                "statusCode": "9002",
                "message": "删除失败",
                "attributes": []
            }
96 97 98 99 100
        return resp


class TemplateList(Resource):
    """."""
pengxiong's avatar
pengxiong committed
101

102
    def __init__(self):
pengxiong's avatar
pengxiong committed
103
        """."""
104 105
        self.parser = reqparse.RequestParser()

pengxiong's avatar
pengxiong committed
106
    @login_require
107
    def get(self):
pengxiong's avatar
pengxiong committed
108
        """获取模版列表分页数据."""
109
        self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告')
pengxiong's avatar
pengxiong committed
110 111 112
        self.parser.add_argument('name', type=str, required=False, help='模版名称')
        self.parser.add_argument('pageNumber', type=int, required=True)
        self.parser.add_argument('pageSize', type=int, required=True)
113
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
114
        args['ifa_id'] = g.ifa_id
115 116 117 118 119 120 121
        data = get_template_list(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp
pengxiong's avatar
pengxiong committed
122

pengxiong's avatar
pengxiong committed
123
    @login_require
pengxiong's avatar
pengxiong committed
124 125 126 127
    def put(self):
        """设置默认模版"""
        self.parser.add_argument('id', type=str, required=True, help='模版id')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
128
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
129 130 131 132 133 134 135
        data = set_default_template(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp