# -*- encoding: utf-8 -*- # ----------------------------------------------------------------------------- # @File Name : report.py # @Time : 2020/11/18 下午3:19 # @Author : X. Peng # @Email : acepengxiong@163.com # @Software : PyCharm # ----------------------------------------------------------------------------- import datetime import json import time import uuid import oss2 from flask_restful import Resource, reqparse from flask import request, render_template, g from flask import make_response from app.api.engine import config from app.service.report_service import get_report_list, delete_report, \ get_one_report, edit_report, make_report, edit_report_name, make_app_report from app.service.template_manage_service import get_make_report_data from app.utils.auth import login_require from app.utils.format_transfer import npEncoder class ReportHandlers(Resource): """.""" def __init__(self): """.""" self.parser = reqparse.RequestParser() @login_require def get(self): """获取新建报告数据.""" self.parser.add_argument('id', type=str, required=True, help='模版id不能为空') self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空') args = self.parser.parse_args() args['ifa_id'] = g.ifa_id data = get_make_report_data(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('type', type=int, required=True, help='1为持仓报告2为诊断报告3周期报告') self.parser.add_argument('name', type=str, required=False, help='报告名称') self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空') self.parser.add_argument('report_data', type=str, required=True, help='report_data不能为空') args = self.parser.parse_args() args['ifa_id'] = g.ifa_id data = make_report(args) resp = { "statusCode": "0000", "message": "成功", "attributes": data } return resp @login_require 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('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 @login_require def delete(self, id): """.""" pass class ReportList(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为诊断报告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() args['ifa_id'] = g.ifa_id data = get_report_list(args) resp = { "statusCode": "0000", "message": "成功", "attributes": data } return resp @login_require def post(self): """保存报告.""" pass @login_require 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() args['ifa_id'] = g.ifa_id data = edit_report(args) resp = { "statusCode": "0000", "message": "成功", "attributes": data } return resp @login_require 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() args['ifa_id'] = g.ifa_id delete_report(args) resp = { "statusCode": "0000", "message": "成功", "attributes": [] } return resp class FindReport(Resource): """.""" def __init__(self): """.""" self.parser = reqparse.RequestParser() @login_require 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() args['ifa_id'] = g.ifa_id data = get_one_report(args) resp = { "statusCode": "0000", "message": "成功", "attributes": data } return resp class AppReportHandlers(Resource): """.""" def __init__(self): """.""" self.parser = reqparse.RequestParser() @login_require def get(self): """.""" self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空') self.parser.add_argument('custom_time', type=str, required=True, help='custom_time不能为空') args = self.parser.parse_args() args['ifa_id'] = g.ifa_id # 默认模版制作持仓报告 data = make_app_report(args) if data: url = data resp = { "code": 0, "data": data, "lang": "zh_CN", "msg": "成功" } else: resp = { "code": 8888, "data": '', "lang": "zh_CN", "msg": "失败" } return resp def post(self): """.""" pass def put(self, id): """.""" pass def delete(self, id): """.""" pass