report.py 5.78 KB
Newer Older
pengxiong's avatar
pengxiong committed
1 2 3 4 5 6 7 8 9
# -*- encoding: utf-8 -*-
# -----------------------------------------------------------------------------
# @File Name  : report.py
# @Time       : 2020/11/18 下午3:19
# @Author     : X. Peng
# @Email      : acepengxiong@163.com
# @Software   : PyCharm
# -----------------------------------------------------------------------------
import datetime
pengxiong's avatar
pengxiong committed
10
import json
pengxiong's avatar
pengxiong committed
11 12 13 14 15
import time
import uuid

import oss2
from flask_restful import Resource, reqparse
pengxiong's avatar
pengxiong committed
16
from flask import request, render_template, g
pengxiong's avatar
pengxiong committed
17 18 19
from flask import make_response

from app.api.engine import config
20
from app.service.report_service import get_report_list, delete_report, get_one_report, edit_report, make_report, edit_report_name
pengxiong's avatar
pengxiong committed
21
from app.service.template_manage_service import get_make_report_data
pengxiong's avatar
pengxiong committed
22
from app.utils.auth import login_require
pengxiong's avatar
pengxiong committed
23
from app.utils.format_transfer import npEncoder
pengxiong's avatar
pengxiong committed
24 25 26 27 28 29 30 31 32


class ReportHandlers(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
pengxiong committed
36
        self.parser.add_argument('id', type=str, required=True, help='模版id不能为空')
pengxiong's avatar
pengxiong committed
37 38
        self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
39
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
40
        data = get_make_report_data(args)
pengxiong's avatar
pengxiong committed
41
        resp = {
pengxiong's avatar
pengxiong committed
42 43 44
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
pengxiong's avatar
pengxiong committed
45
        }
pengxiong's avatar
pengxiong committed
46
        return json.dumps(resp, cls=npEncoder, ensure_ascii=False)
pengxiong's avatar
pengxiong committed
47

pengxiong's avatar
pengxiong committed
48
    @login_require
pengxiong's avatar
pengxiong committed
49
    def post(self):
pengxiong's avatar
pengxiong committed
50 51
        """保存报告."""
        self.parser.add_argument('type', type=int, required=True, help='1为持仓报告2为诊断报告3周期报告')
52
        self.parser.add_argument('name', type=str, required=False, help='报告名称')
pengxiong's avatar
pengxiong committed
53
        self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空')
pengxiong's avatar
pengxiong committed
54
        self.parser.add_argument('report_data', type=str, required=True, help='report_data不能为空')
pengxiong's avatar
pengxiong committed
55
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
56
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
57
        data = make_report(args)
pengxiong's avatar
pengxiong committed
58 59 60
        resp = {
            "statusCode": "0000",
            "message": "成功",
pengxiong's avatar
pengxiong committed
61
            "attributes": data
pengxiong's avatar
pengxiong committed
62 63
        }
        return resp
pengxiong's avatar
pengxiong committed
64

pengxiong's avatar
pengxiong committed
65
    @login_require
wang zhengwei's avatar
wang zhengwei committed
66
    def put(self):
67 68 69 70 71 72 73 74 75 76 77 78 79
        """编辑报告名称."""
        self.parser.add_argument('type', type=int, required=True, help='1为持仓报告2为诊断报告3周期报告')
        self.parser.add_argument('id', type=int, required=True, help='报告id不能为空')
        self.parser.add_argument('name', type=str, required=True, help='报告名称不能为空')
        args = self.parser.parse_args()
        args['ifa_id'] = g.ifa_id
        data = edit_report_name(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp
pengxiong's avatar
pengxiong committed
80

pengxiong's avatar
pengxiong committed
81
    @login_require
pengxiong's avatar
pengxiong committed
82 83 84
    def delete(self, id):
        """."""
        pass
pengxiong's avatar
pengxiong committed
85 86 87 88 89 90 91 92 93


class ReportList(Resource):
    """报告列表."""

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

pengxiong's avatar
pengxiong committed
94
    @login_require
pengxiong's avatar
pengxiong committed
95 96 97 98 99 100 101 102 103
    def get(self):
        """获取我的报告列表."""
        self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告3周期报告')
        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)
        self.parser.add_argument('start_time', type=str, required=False)
        self.parser.add_argument('end_time', type=str, required=False)
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
104
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
105 106 107 108 109 110 111 112
        data = get_report_list(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp

pengxiong's avatar
pengxiong committed
113
    @login_require
pengxiong's avatar
pengxiong committed
114
    def post(self):
pengxiong's avatar
pengxiong committed
115
        """保存报告."""
pengxiong's avatar
pengxiong committed
116
        pass
pengxiong's avatar
pengxiong committed
117

pengxiong's avatar
pengxiong committed
118
    @login_require
pengxiong's avatar
pengxiong committed
119 120 121 122 123 124
    def put(self):
        """编辑报告."""
        self.parser.add_argument('type', type=int, required=True, help='1为持仓报告2为诊断报告3周期报告')
        self.parser.add_argument('id', type=int, required=True, help='报告id不能为空')
        self.parser.add_argument('report_data', type=str, required=True, help='报告数据不能为空')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
125
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
126 127 128 129 130 131 132 133
        data = edit_report(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
        return resp

pengxiong's avatar
pengxiong committed
134
    @login_require
pengxiong's avatar
pengxiong committed
135 136 137 138 139
    def delete(self):
        """."""
        self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告3周期报告')
        self.parser.add_argument('id', type=int, required=True, help='报告id不能为空')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
140
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
141 142 143 144 145 146
        delete_report(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": []
        }
pengxiong's avatar
pengxiong committed
147 148 149 150 151 152 153 154 155 156
        return resp


class FindReport(Resource):
    """."""

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

pengxiong's avatar
pengxiong committed
157
    @login_require
pengxiong's avatar
pengxiong committed
158 159 160 161 162
    def get(self):
        """获取单个报告."""
        self.parser.add_argument('type', type=int, required=True, help='1为持仓报告2为诊断报告3周期报告')
        self.parser.add_argument('id', type=str, required=False, help='')
        args = self.parser.parse_args()
pengxiong's avatar
pengxiong committed
163
        args['ifa_id'] = g.ifa_id
pengxiong's avatar
pengxiong committed
164 165 166 167 168 169
        data = get_one_report(args)
        resp = {
            "statusCode": "0000",
            "message": "成功",
            "attributes": data
        }
pengxiong's avatar
pengxiong committed
170
        return resp