Commit c08dd684 authored by pengxiong's avatar pengxiong

鉴权

parent 99e026b9
......@@ -13,7 +13,10 @@ dev:
host: localhost
port: 6379
db: 0
password:
oss:
imgs_url_prefix: https://devtamper.tanpuyun.com/hangjiapc/report/productionenv/ReportTempImg/
pdf_url_prefix: https://devtamper.tanpuyun.com/hangjiapc/report/productionenv/AppHoldReport/
account: LTAI4FzkGhAMecinBCKwuoUW
password: KJpPWg9U0kYO71yB41gqYbrFNJ4hso
log:
......
......@@ -6,32 +6,28 @@
# @Email : acepengxiong@163.com
# @Software : PyCharm
# -----------------------------------------------------------------------------
from flask import request
from flask import request, g
from flask_restful import Resource, reqparse
from app.api.engine import redis
from app.service.customer import get_customer_list
from app.utils.auth import login_require
class CustomerList(Resource):
""""""
def __init__(self):
"""."""
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()
@login_require
def get(self):
"""获取客户列表分页数据."""
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)
args = self.parser.parse_args()
args['ifa_id'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_customer_list(args)
resp = {
"statusCode": "0000",
......
......@@ -13,16 +13,14 @@ import uuid
import oss2
from flask_restful import Resource, reqparse
from flask import request, render_template
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
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
from app.utils.html_to_pdf import html_to_pdf
from app.api.engine import pdf_folder, redis, env, TAMP_SQL, tamp_diagnose_app_engine
from app.utils.jinjia2html_v2 import DataIntegrate
class ReportHandlers(Resource):
......@@ -30,20 +28,15 @@ class ReportHandlers(Resource):
def __init__(self):
"""."""
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()
@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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_make_report_data(args)
resp = {
"statusCode": "0000",
......@@ -52,6 +45,7 @@ class ReportHandlers(Resource):
}
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周期报告')
......@@ -59,7 +53,7 @@ class ReportHandlers(Resource):
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
make_report(args)
resp = {
"statusCode": "0000",
......@@ -68,11 +62,12 @@ class ReportHandlers(Resource):
}
return resp
@login_require
def put(self, id):
"""."""
pass
@login_require
def delete(self, id):
"""."""
pass
......@@ -83,14 +78,9 @@ class ReportList(Resource):
def __init__(self):
"""."""
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()
@login_require
def get(self):
"""获取我的报告列表."""
self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告3周期报告')
......@@ -100,7 +90,7 @@ class ReportList(Resource):
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_report_list(args)
resp = {
"statusCode": "0000",
......@@ -109,17 +99,19 @@ class ReportList(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = edit_report(args)
resp = {
"statusCode": "0000",
......@@ -128,13 +120,13 @@ class ReportList(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
delete_report(args)
resp = {
"statusCode": "0000",
......@@ -149,20 +141,15 @@ class FindReport(Resource):
def __init__(self):
"""."""
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()
@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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_one_report(args)
resp = {
"statusCode": "0000",
......
......@@ -9,13 +9,14 @@
import json
from flask_restful import Resource, reqparse
from flask import request
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
......@@ -27,19 +28,14 @@ class TemplateManage(Resource):
def __init__(self):
"""."""
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()
@login_require
def get(self):
"""获取默认模版数据."""
self.parser.add_argument('type', type=int, required=True, help='type不能为空')
args = self.parser.parse_args()
args['ifa_id'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_default_template(args)
resp = {
"statusCode": "0000",
......@@ -48,14 +44,14 @@ class TemplateManage(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
add_template(args)
resp = {
"statusCode": "0000",
......@@ -64,12 +60,13 @@ class TemplateManage(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
update_template(args)
resp = {
"statusCode": "0000",
......@@ -78,11 +75,12 @@ class TemplateManage(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
res = delete_template(args)
resp = {
"statusCode": "0000",
......@@ -103,14 +101,9 @@ class TemplateList(Resource):
def __init__(self):
"""."""
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()
@login_require
def get(self):
"""获取模版列表分页数据."""
self.parser.add_argument('type', type=int, required=True, help='0为全部1为持仓报告2为诊断报告')
......@@ -118,7 +111,7 @@ class TemplateList(Resource):
self.parser.add_argument('pageNumber', type=int, required=True)
self.parser.add_argument('pageSize', type=int, required=True)
args = self.parser.parse_args()
args['ifa_id'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = get_template_list(args)
resp = {
"statusCode": "0000",
......@@ -127,11 +120,12 @@ class TemplateList(Resource):
}
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'] = self.ifa_id
args['ifa_id'] = g.ifa_id
data = set_default_template(args)
resp = {
"statusCode": "0000",
......
# -*- encoding: utf-8 -*-
# -----------------------------------------------------------------------------
# @File Name : auth.py
# @Time : 2021/1/15 下午4:54
# @Author : X. Peng
# @Email : acepengxiong@163.com
# @Software : PyCharm
# -----------------------------------------------------------------------------
from flask import request, g
from app.api.engine import redis
def login_require(func):
def auth(*args, **kwargs):
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": []}
g.ifa_id = ifa_id.decode().replace('\'', '')
return func(*args, **kwargs)
return auth
\ No newline at end of file
......@@ -10705,3 +10705,59 @@ MySQLdb._exceptions.OperationalError: (2013, 'Lost connection to MySQL server du
2021-01-15 14:19:40 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 15:48:44 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/api/engine.py', reloading
2021-01-15 15:48:44 Fri werkzeug INFO * Restarting with stat
2021-01-15 16:37:26 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 16:37:26 Fri werkzeug INFO * Restarting with stat
2021-01-15 16:37:31 Fri werkzeug WARNING * Debugger is active!
2021-01-15 16:37:31 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:12:55 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/template_manage.py', reloading
2021-01-15 17:12:55 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:13:36 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 17:13:36 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:13:41 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:13:41 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:16:29 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:16:29] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:16:36 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:16:36] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:16:51 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:16:51] "GET /api/customer_list?pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:17:03 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:17:03] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:17:07 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:17:07] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:17:14 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:17:14] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:18:03 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/template_manage.py', reloading
2021-01-15 17:18:03 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:18:07 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:18:07 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:18:42 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 17:18:42 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:18:46 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:18:46 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:18:47 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:18:47] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:18:48 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:18:48] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:20:25 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/api/engine.py', reloading
2021-01-15 17:20:25 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:20:34 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 17:20:34 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:20:37 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:20:37 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:21:09 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/utils/auth.py', reloading
2021-01-15 17:21:10 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:21:14 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:21:14 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:21:23 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/utils/auth.py', reloading
2021-01-15 17:21:24 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:21:30 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 17:21:30 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:21:34 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:21:34 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:21:37 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:21:37] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:21:43 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 17:21:43] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 17:23:30 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/report.py', reloading
2021-01-15 17:23:31 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:23:36 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:23:36 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:23:37 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/report.py', reloading
2021-01-15 17:23:37 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:23:42 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:23:42 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:24:25 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/customer.py', reloading
2021-01-15 17:24:26 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:24:30 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:24:30 Fri werkzeug INFO * Debugger PIN: 191-123-093
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment