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

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


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

    def __init__(self):
        """."""
30 31 32 33 34 35
        token = request.headers.get('Authorization', '')
        token = 's:sid:' + token.split(' ')[1]
        ifa_id = redis.get(token)
        if not ifa_id:
            return {"code":'9005', "message": "请登录", "attributes": []}
        self.ifa_id = ifa_id.decode().replace('\'', '')
pengxiong's avatar
pengxiong committed
36 37 38
        self.parser = reqparse.RequestParser()

    def get(self):
39 40
        """获取默认模版数据."""
        self.parser.add_argument('type', type=int, required=True, help='type不能为空')
pengxiong's avatar
pengxiong committed
41
        args = self.parser.parse_args()
42
        data = get_default_template(args)
pengxiong's avatar
pengxiong committed
43 44 45 46 47 48 49
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return json.dumps(resp, cls=npEncoder, ensure_ascii=False)

50

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

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
    def put(self):
        """更新模版."""
        self.parser.add_argument('update_type', type=int, required=True, help='1默认模版2自定义模版')
        self.parser.add_argument('type', type=int, required=True, help='1持仓报告2诊断报告')
        self.parser.add_argument('name', type=int, required=False, help='自定义模版名称')
        self.parser.add_argument('default_template', type=str, required=False, help='模版数据不能为空')
        self.parser.add_argument('custom_template', type=str, required=False, help='模版数据不能为空')
        args = self.parser.parse_args()
        args['ifa_id'] = self.ifa_id
        update_template(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
        return resp

    def delete(self):
        """删除模版."""
        self.parser.add_argument('id', type=str, required=True, help='模版id')
        args = self.parser.parse_args()
        args['ifa_id'] = self.ifa_id
pengxiong's avatar
pengxiong committed
88
        res = delete_template(args)
89 90 91 92 93
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
pengxiong's avatar
pengxiong committed
94 95 96 97 98 99
        if not res:
            resp = {
                "statusCode": "9002",
                "message": "删除失败",
                "attributes": []
            }
100 101 102 103 104
        return resp


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

106
    def __init__(self):
pengxiong's avatar
pengxiong committed
107
        """."""
108 109 110 111 112 113 114 115 116
        token = request.headers.get('Authorization', '')
        token = 's:sid:' + token.split(' ')[1]
        ifa_id = redis.get(token)
        if not ifa_id:
            return {"code":'9005', "message": "请登录", "attributes": []}
        self.ifa_id = ifa_id.decode().replace('\'', '')
        self.parser = reqparse.RequestParser()

    def get(self):
pengxiong's avatar
pengxiong committed
117
        """获取模版列表分页数据."""
118
        self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告')
pengxiong's avatar
pengxiong committed
119 120 121
        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)
122 123 124 125 126 127 128 129 130
        args = self.parser.parse_args()
        args['ifa_id'] = self.ifa_id
        data = get_template_list(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp