Commit 184b3a5d authored by 李宗熹's avatar 李宗熹

Merge remote-tracking branch 'origin/manage' into manage

parents 8d657e2c 6bc337fc
......@@ -22,6 +22,8 @@ CFG_FILEPATH = work_dir + '/app/config/config.yaml'
config = yaml.load(open(CFG_FILEPATH, 'r'), Loader=yaml.FullLoader)
temp_img_save_folder = work_dir + '/app/templates/temp_img/productionenv/ReportTempImg/'
pdf_save_folder = work_dir + '/app/pdf/productionenv/AppHoldReport/'
template_folder = config[env]['oss']['imgs_url_prefix']
pdf_folder = config[env]['oss']['pdf_url_prefix']
......
......@@ -33,6 +33,7 @@ test:
tamp_user_db: tamp_user
tamp_fund_db: tamp_fund
tamp_diagnose_app_db: tamp_diagnose_app
# host: 118.190.63.109
host: tools.caixiaoquan.com
port: 3306
user: root
......
......@@ -32,8 +32,8 @@ class TemplateManage(Resource):
@login_require
def get(self):
"""获取默认模版数据."""
self.parser.add_argument('type', type=int, required=True, help='type不能为空')
"""获取模版数据."""
self.parser.add_argument('id', type=str, required=True, help='id不能为空')
args = self.parser.parse_args()
args['ifa_id'] = g.ifa_id
data = get_default_template(args)
......
......@@ -5,7 +5,7 @@ from sqlalchemy import Column, DECIMAL, Date, DateTime, Index, String, Table, Te
from sqlalchemy.dialects.mysql import BIGINT, INTEGER
from sqlalchemy.ext.declarative import declarative_base
from app.api.engine import TAMP_SQL, tamp_user_engine, tamp_diagnose_app_engine
from app.api.engine import TAMP_SQL, tamp_user_engine, tamp_diagnose_app_engine, pdf_folder
from app.model.base import Base
from app.model.base import BaseModel
......@@ -138,6 +138,8 @@ class HoldDiagnoseReport(Base, BaseModel):
allow_field = set(allow_field) & set(allow_field)
else:
allow_field = all_field
if self.file:
self.file = pdf_folder + self.file
data = {c: int(getattr(self, c).timestamp()) if isinstance(getattr(self, c), datetime.datetime) else getattr(self, c) for c in allow_field}
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_user_session = tamp_user.session
......@@ -146,15 +148,18 @@ class HoldDiagnoseReport(Base, BaseModel):
res = tamp_user_session.execute(sql)
sql2 = "select customer_name from tamp_diagnose_app.customer_view where id = '{}'".format(self.customer_id)
res2 = tamp_diagnose_app_session.execute(sql2)
if res:
data['author_name'] = res.fetchone()[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2.fetchone()[0]
else:
data['customer_name'] = ''
data['type'] = 2
res = res.fetchone()
res2 = res2.fetchone()
if data:
if res:
data['author_name'] = res[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2[0]
else:
data['customer_name'] = ''
data['type'] = 2
return data
......@@ -177,6 +182,8 @@ class HoldReport(Base, BaseModel):
allow_field = set(allow_field) & set(allow_field)
else:
allow_field = all_field
if self.file:
self.file = pdf_folder + self.file
data = {c: int(getattr(self, c).timestamp()) if isinstance(getattr(self, c), datetime.datetime) else getattr(self, c) for c in allow_field}
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_user_session = tamp_user.session
......@@ -185,15 +192,18 @@ class HoldReport(Base, BaseModel):
res = tamp_user_session.execute(sql)
sql2 = "select customer_name from tamp_diagnose_app.customer_view where id = '{}'".format(self.customer_id)
res2 = tamp_diagnose_app_session.execute(sql2)
if res:
data['author_name'] = res.fetchone()[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2.fetchone()[0]
else:
data['customer_name'] = ''
data['type'] = 1
res = res.fetchone()
res2 = res2.fetchone()
if data:
if res:
data['author_name'] = res[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2[0]
else:
data['customer_name'] = ''
data['type'] = 1
return data
......@@ -216,6 +226,8 @@ class PeriodicReport(Base, BaseModel):
allow_field = set(allow_field) & set(allow_field)
else:
allow_field = all_field
if self.file:
self.file = pdf_folder + self.file
data = {c: int(getattr(self, c).timestamp()) if isinstance(getattr(self, c), datetime.datetime) else getattr(self, c) for c in allow_field}
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_user_session = tamp_user.session
......@@ -224,15 +236,18 @@ class PeriodicReport(Base, BaseModel):
res = tamp_user_session.execute(sql)
sql2 = "select customer_name from tamp_diagnose_app.customer_view where id = '{}'".format(self.customer_id)
res2 = tamp_diagnose_app_session.execute(sql2)
if res:
data['author_name'] = res.fetchone()[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2.fetchone()[0]
else:
data['customer_name'] = ''
data['type'] = 3
res = res.fetchone()
res2 = res2.fetchone()
if data:
if res:
data['author_name'] = res[0]
else:
data['author_name'] = ''
if res2:
data['customer_name'] = res2[0]
else:
data['customer_name'] = ''
data['type'] = 3
return data
......
......@@ -81,7 +81,7 @@ class UserCustomerDataAdaptor:
tamp_diagnose_app_session = tamp_diagnose_app.session
tamp_product_session = tamp_product.session
tamp_fund_session = tamp_fund.session
sql_user = """select f1.fund_id, f2.realname,f3.customer_name,f3.valueSex,f1.type,f1.order_type,f1.pay_date,f1.subscription_fee,f1.confirm_share_date,f1.confirm_share,f1.confirm_amount,f1.nav,f1.folio_name from tamp_order.customer_order_view f1, tamp_user.user_info f2,tamp_order.customer f3 where f2.id=f1.user_id and f3.id=f1.customer_id and f1.delete_tag=0 and user_id='{}' and customer_id='{}'""".format(self.user_id, self.customer_id)
sql_user = """select f1.fund_id, f2.realname,f3.customer_name,f3.valueSex,f1.type,f1.order_type,f1.pay_date,f1.subscription_fee,f1.confirm_share_date,f1.confirm_share,f1.confirm_amount,f1.nav,f1.folio_name from tamp_diagnose_app.customer_order_view f1, tamp_user.user_info f2,tamp_diagnose_app.customer_view f3 where f2.id=f1.user_id and f3.id=f1.customer_id and f1.delete_tag=0 and user_id='{}' and customer_id='{}'""".format(self.user_id, self.customer_id)
cur = tamp_diagnose_app_session.execute(sql_user)
data = cur.fetchall()
order_df = pd.DataFrame(list(data), columns=['fund_id', 'username', 'customer_name', 'valueSex', 'type', 'order_type', 'pay_date',
......
......@@ -7,6 +7,7 @@
# @Software : PyCharm
# -----------------------------------------------------------------------------
import datetime
import json
import os
import uuid
......@@ -165,7 +166,7 @@ def make_report(args):
customer_id = args.get('customer_id')
type = args.get('type')
name = args.get('name')
report_data = args.get('report_data')
report_data = json.loads(args.get('report_data'))
pdf_name = str(uuid.uuid4()) + '.pdf'
args['update_time'] = datetime.datetime.now()
args['update_status'] = 1
......@@ -186,13 +187,13 @@ def make_report(args):
tamp_diagnose_session.add(report_record)
tamp_diagnose_session.flush()
record_id = report_record.id
pid = os.fork()
if pid == 0:
try:
dt = DataIntegrate(ifa_id=ifa_id, customer_id=customer_id, pdf_name=pdf_name, type=type)
dt.render_data(data=report_data)
except:
pass
# pid = os.fork()
if 0 == 0:
# try:
dt = DataIntegrate(ifa_id=ifa_id, customer_id=customer_id, pdf_name=pdf_name, type=type)
dt.render_data(data=report_data)
# except:
# pass
with TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_diagnose_session = tamp_diagnose_app.session
hold_report = tamp_diagnose_session.query(HoldReport).filter(and_(
......@@ -220,5 +221,6 @@ def make_report(args):
'update_status': 2,
'update_time': datetime.datetime.now()
})
return True
else:
return True
......@@ -117,7 +117,10 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
if len(last_profit_ratio) <= 0:
cur_month_profit_ratio = cur_profit_ratio[-1] - 1
else:
cur_month_profit_ratio = (cur_profit_ratio[-1] - last_profit_ratio[-1]) / last_profit_ratio[-1]
if len(cur_profit_ratio) < 1:
cur_month_profit_ratio = 0
else:
cur_month_profit_ratio = (cur_profit_ratio[-1] - last_profit_ratio[-1]) / last_profit_ratio[-1]
folio_report_data["cur_month_profit_ratio"] = float(cur_month_profit_ratio)
# 今年累积收益
......@@ -268,7 +271,10 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
if len(last_profit_ratio) <= 0:
cur_month_profit_ratio = cur_profit_ratio[-1] - 1
else:
cur_month_profit_ratio = (cur_profit_ratio[-1] - last_profit_ratio[-1]) / last_profit_ratio[-1]
if len(cur_profit_ratio) < 1:
cur_month_profit_ratio = 0
else:
cur_month_profit_ratio = (cur_profit_ratio[-1] - last_profit_ratio[-1]) / last_profit_ratio[-1]
report_data["cur_month_profit_ratio"] = float(cur_month_profit_ratio)
# 今年累积收益
......@@ -320,10 +326,10 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
now_year = self.end_date.year
month_return_data_dict = {}
for i in range(now_year-start_year+1):
month_return_data_dict[start_year+i] = {j+1: {"profit": "-", "net_amount": "-"} for j in range(12)}
month_return_data_dict[str(start_year+i)] = {str(j+1): {"profit": "-", "net_amount": "-"} for j in range(12)}
for d_index, d_row in month_sum.items():
cur_year = int(d_index[:4])
cur_month = int(d_index[5:])
cur_year = str(int(d_index[:4]))
cur_month = str(int(d_index[5:]))
cur_profit = round(d_row/10000.0, 2)
cur_net_amount = round(month_amount_sum.loc[d_index]/10000, 2)
month_return_data_dict[cur_year][cur_month]["profit"] = "%.2f"%cur_profit
......
......@@ -22,45 +22,46 @@ from app.utils.jinjia2html_v2 import DataIntegrate
def get_default_template(args):
""""""
type = args.get('type')
data = []
data = {}
with TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_diagnose_session = tamp_diagnose_app.session
res = tamp_diagnose_session.query(FundReportManange).filter(and_(
FundReportManange.ifa_id == args.get('ifa_id'),
FundReportManange.type == type,
FundReportManange.id == args.get('id'),
FundReportManange.delete_tag == 0,
FundReportManange.default_template.isnot(None)
)).first()
if not res:
return False
type = res.type
default_template, default_data = None, None
if res.default_template:
default_template = res.default_template
elif res.custom_template:
default_template = res.custom_template
if type == 1:
args['name'] = '持仓报告默认模版'
default_template = hold_default_template
default_data = hold_default_data
elif type == 2:
args['name'] = '诊断报告默认模版'
default_template = diagnose_default_template
default_data = diagnose_default_data
if res.default_template:
data = {'id': res.id, 'template_data': {**json.loads(res.default_template), **default_data}}
else:
args['id'] = str(uuid.uuid4())
args['default_template'] = json.dumps(default_template)
args['create_by'] = args.get('ifa_id')
args['create_time'] = datetime.datetime.now()
new_template = FundReportManange(**args)
tamp_diagnose_session.add(new_template)
data = {**default_template, **default_data}
data = {**json.loads(default_template), **default_data}
return data
def add_template(args):
"""新建模版"""
type = args.get('type')
custom_template = json.loads(args.get('custom_template'))
with TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_diagnose_session = tamp_diagnose_app.session
args['id'] = str(uuid.uuid4())
args['default_template'] = json.dumps(hold_default_template)
if type == 1:
allowed_keys = hold_default_template.keys()
for key in list(custom_template.keys()):
if key not in allowed_keys:
custom_template.pop(key)
elif type == 2:
allowed_keys = diagnose_default_template.keys()
for key in list(custom_template.keys()):
if key not in allowed_keys:
custom_template.pop(key)
args['custom_template'] = json.dumps(custom_template)
args['create_by'] = args.get('ifa_id')
args['create_time'] = datetime.datetime.now()
fund_report_manange = FundReportManange(**args)
......@@ -68,7 +69,7 @@ def add_template(args):
def update_template(args):
"""更新模版"""
template_data = args.get('template_data')
template_data = json.loads(args.get('template_data'))
with TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_diagnose_session = tamp_diagnose_app.session
res = tamp_diagnose_session.query(FundReportManange).filter(and_(
......@@ -79,7 +80,7 @@ def update_template(args):
return False
if res[0].default_template:
allowed_keys = json.loads(res[0].default_template).keys()
for key, value in template_data.items():
for key in list(template_data.keys()):
if key not in allowed_keys:
template_data.pop(key)
# 更新默认模版
......@@ -90,7 +91,7 @@ def update_template(args):
})
else:
allowed_keys = json.loads(res[0].custom_template).keys()
for key, value in template_data.items():
for key in list(template_data.keys()):
if key not in allowed_keys:
template_data.pop(key)
# 更新自定义模版
......@@ -218,7 +219,7 @@ def set_default_template(args):
))
if not res:
return False
type = res.type
type = res.first().type
tamp_diagnose_session.query(FundReportManange).filter(FundReportManange.type==type).update({
'default': 0
})
......
......@@ -1201,40 +1201,40 @@
盈亏
</td>
<td class="text_red">
{{value[1]["profit"]}}
{{value["1"]["profit"]}}
</td>
<td class="text_green">
{{value[2]["profit"]}}
{{value["2"]["profit"]}}
</td>
<td>
{{value[3]["profit"]}}
{{value["3"]["profit"]}}
</td>
<td>
{{value[4]["profit"]}}
{{value["4"]["profit"]}}
</td>
<td>
{{value[5]["profit"]}}
{{value["5"]["profit"]}}
</td>
<td>
{{value[6]["profit"]}}
{{value["6"]["profit"]}}
</td>
<td>
{{value[7]["profit"]}}
{{value["7"]["profit"]}}
</td>
<td>
{{value[8]["profit"]}}
{{value["8"]["profit"]}}
</td>
<td>
{{value[9]["profit"]}}
{{value["9"]["profit"]}}
</td>
<td>
{{value[10]["profit"]}}
{{value["10"]["profit"]}}
</td>
<td>
{{value[11]["profit"]}}
{{value["11"]["profit"]}}
</td>
<td>
{{value[12]["profit"]}}
{{value["12"]["profit"]}}
</td>
</tr>
<tr>
......@@ -1242,40 +1242,40 @@
期末资产
</td>
<td class="text_red">
{{value[1]["net_amount"]}}
{{value["1"]["net_amount"]}}
</td>
<td class="text_green">
{{value[2]["net_amount"]}}
{{value["2"]["net_amount"]}}
</td>
<td>
{{value[3]["net_amount"]}}
{{value["3"]["net_amount"]}}
</td>
<td>
{{value[4]["net_amount"]}}
{{value["4"]["net_amount"]}}
</td>
<td>
{{value[5]["net_amount"]}}
{{value["5"]["net_amount"]}}
</td>
<td>
{{value[6]["net_amount"]}}
{{value["6"]["net_amount"]}}
</td>
<td>
{{value[7]["net_amount"]}}
{{value["7"]["net_amount"]}}
</td>
<td>
{{value[8]["net_amount"]}}
{{value["8"]["net_amount"]}}
</td>
<td>
{{value[9]["net_amount"]}}
{{value["9"]["net_amount"]}}
</td>
<td>
{{value[10]["net_amount"]}}
{{value["10"]["net_amount"]}}
</td>
<td>
{{value[11]["net_amount"]}}
{{value["11"]["net_amount"]}}
</td>
<td>
{{value[12]["net_amount"]}}
{{value["12"]["net_amount"]}}
</td>
</tr>
{%endfor%}
......
......@@ -18,6 +18,6 @@ def login_require(func):
ifa_id = redis.get(token)
if not ifa_id:
return {"code": '9005', "message": "请登录", "attributes": []}
g.ifa_id = ifa_id.decode().replace('\'', '')
g.ifa_id = ifa_id.decode().replace('\"', '')
return func(*args, **kwargs)
return auth
\ No newline at end of file
......@@ -19,7 +19,7 @@ from matplotlib import ticker
from matplotlib.ticker import FuncFormatter
from matplotlib.font_manager import FontProperties
from app.api.engine import template_folder
from app.api.engine import template_folder, work_dir, temp_img_save_folder
matplotlib.use('Agg')
# 中文字体初始化
......@@ -98,9 +98,9 @@ def draw_month_return_chart(xlabels, product_list, cumulative):
# imgdata.seek(0) # rewind the data
# month_return_img = 'data:image/png;base64,' + base64.b64encode(imgdata.getvalue()).decode('utf-8')
filename = str(uuid.uuid4()) + '.png'
filepath = template_folder + filename
fig.savefig(filepath, format='png', bbox_inches='tight')
return filepath
fig.savefig(temp_img_save_folder + filename, format='png', bbox_inches='tight')
return_path = template_folder + filename
return return_path
def draw_contribution_chart(xlabels, product_list, cumulative):
......@@ -165,9 +165,9 @@ def draw_contribution_chart(xlabels, product_list, cumulative):
# month_return_img = 'data:image/png;base64,' + base64.b64encode(imgdata.getvalue()).decode('utf-8')
# return month_return_img
filename = str(uuid.uuid4()) + '.png'
filepath = template_folder + filename
fig.savefig(filepath, format='png', bbox_inches='tight')
return filepath
fig.savefig(temp_img_save_folder + filename, format='png', bbox_inches='tight')
return_path = template_folder + filename
return return_path
# def draw_contribution_chart(xlabels, product_list, cumulative):
# """贡献分解图"""
......@@ -309,9 +309,9 @@ def draw_old_combination_chart(xlabels, origin_combination, index):
# return_compare_img = 'data:image/png;base64,' + base64.b64encode(imgdata.getvalue()).decode('utf-8')
# return return_compare_img
filename = str(uuid.uuid4()) + '.png'
filepath = template_folder + filename
fig.savefig(filepath, format='png', bbox_inches='tight')
return filepath
fig.savefig(temp_img_save_folder + filename, format='png', bbox_inches='tight')
return_path = template_folder + filename
return return_path
def draw_combination_chart(xlabels, new_combination, origin_combination, index):
......@@ -359,9 +359,9 @@ def draw_combination_chart(xlabels, new_combination, origin_combination, index):
# return_compare_img = 'data:image/png;base64,' + base64.b64encode(imgdata.getvalue()).decode('utf-8')
# return return_compare_img
filename = str(uuid.uuid4()) + '.png'
filepath = template_folder + filename
fig.savefig(filepath, format='png', bbox_inches='tight')
return filepath
fig.savefig(temp_img_save_folder + filename, format='png', bbox_inches='tight')
return_path = template_folder + filename
return return_path
def draw_index_combination_chart(compare_data):
......@@ -415,9 +415,9 @@ def draw_index_combination_chart(compare_data):
# return_compare_img = 'data:image/png;base64,' + base64.b64encode(imgdata.getvalue()).decode('utf-8')
# return return_compare_img
filename = str(uuid.uuid4()) + '.png'
filepath = template_folder + filename
fig.savefig(filepath, format='png', bbox_inches='tight')
return filepath
fig.savefig(temp_img_save_folder + filename, format='png', bbox_inches='tight')
return_path = template_folder + filename
return return_path
if __name__ == '__main__':
# xlabels = ('2020-1', '2020-2', '2020-3', '2020-4', '2020-5', '2020-6', '2020-7', '2020-8', '2020-9', '2020-10', '2020-11', '2020-12')
......
......@@ -17,6 +17,10 @@ class npEncoder(json.JSONEncoder):
return obj.tolist()
elif isinstance(obj, decimal.Decimal):
return obj.__str__()
elif isinstance(obj, np.int64):
return int(obj)
elif isinstance(obj, np.float64):
return float(obj)
return json.JSONEncoder.default(self, obj)
def img_transfer(url):
......
......@@ -4,7 +4,7 @@ import uuid
from jinja2 import PackageLoader, Environment
from app.api.engine import work_dir, pdf_folder, template_folder
from app.api.engine import work_dir, pdf_folder, template_folder, pdf_save_folder
from app.config.default_template_params import hold_default_template, diagnose_default_template
from app.service.portfolio_diagnose import PortfolioDiagnose
from app.service.result_service_v2 import UserCustomerResultAdaptor
......@@ -305,13 +305,12 @@ class DataIntegrate:
# save_file = "app/html/v2/monthReportV2.html"
# with open(save_file, 'w', encoding="utf-8") as f:
# f.write(monthReport_html)
html_to_pdf(monthReport_html, pdf_folder + self.pdf_name)
html_to_pdf(monthReport_html, pdf_save_folder + self.pdf_name)
if __name__ == '__main__':
start = time.time()
dt = DataIntegrate(ifa_id='USER_INFO15917850824287', customer_id='6716613802534121472', type=1)
data = dt.get_template_data()
print(data)
# dt.render_data()
dt.render_data()
print('耗时{}秒'.format(round(time.time()-start, 2)))
......@@ -10761,3 +10761,85 @@ MySQLdb._exceptions.OperationalError: (2013, 'Lost connection to MySQL server du
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
2021-01-15 17:48:57 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/utils/auth.py', reloading
2021-01-15 17:48:57 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:49:02 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:49:02 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:54:22 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/model/tamp_diagnose_app.py', reloading
2021-01-15 17:54:22 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:54:27 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:54:27 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:54:41 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 17:54:41 Fri werkzeug INFO * Restarting with stat
2021-01-15 17:54:46 Fri werkzeug WARNING * Debugger is active!
2021-01-15 17:54:46 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 17:58:21 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 17:58:21] "GET /api/user/customer-data/ HTTP/1.1" 404 -
2021-01-15 17:58:21 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 17:58:21] "GET /api/user/fund-return-list/ HTTP/1.1" 404 -
2021-01-15 17:58:22 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 17:58:22] "GET /api/scan/getQrcode HTTP/1.1" 404 -
2021-01-15 17:58:26 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 17:58:26] "GET /api/scan/getQrcode HTTP/1.1" 404 -
2021-01-15 17:59:22 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 17:59:22] "GET /api/scan/getQrcode HTTP/1.1" 404 -
2021-01-15 18:00:01 Fri werkzeug INFO 172.168.0.114 - - [15/Jan/2021 18:00:01] "GET /api/scan/getQrcode HTTP/1.1" 404 -
2021-01-15 18:00:37 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:00:37] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:00:47 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:00:47] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:01:00 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:01:00] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:02:33 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 18:02:33 Fri werkzeug INFO * Restarting with stat
2021-01-15 18:02:39 Fri werkzeug WARNING * Debugger is active!
2021-01-15 18:02:39 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 18:02:39 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:02:39] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:03:15 Fri werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2021-01-15 18:03:15 Fri werkzeug INFO * Restarting with stat
2021-01-15 18:03:20 Fri werkzeug WARNING * Debugger is active!
2021-01-15 18:03:20 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 18:03:23 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:03:23] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:04:07 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:07] "GET /api/template_list?type=1&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:04:12 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:12] "GET /api/template_list?type=2&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:04:17 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:17] "GET /api/template_list?type=3&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:04:22 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:22] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:04:54 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:54] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 500 -
2021-01-15 18:04:57 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:04:57] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:05:07 Fri werkzeug INFO 127.0.0.1 - - [15/Jan/2021 18:05:07] "GET /api/template_list?type=0&pageNumber=1&pageSize=10 HTTP/1.1" 200 -
2021-01-15 18:06:24 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/model/tamp_diagnose_app.py', reloading
2021-01-15 18:06:24 Fri werkzeug INFO * Restarting with stat
2021-01-15 18:06:28 Fri werkzeug WARNING * Debugger is active!
2021-01-15 18:06:28 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:02:45 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:02:46 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:02:51 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:02:51 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:07:14 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:07:14 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:07:19 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:07:19 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:27:41 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:27:41 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:27:48 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:27:48 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:40:39 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:40:39 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:40:46 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:40:46 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:42:40 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:42:41 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:42:46 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:42:46 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:46:33 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:46:33 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:46:38 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:46:38 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:47:28 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:47:29 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:47:35 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:47:35 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:48:39 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/service/template_manage_service.py', reloading
2021-01-15 19:48:39 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:48:45 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:48:45 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:49:17 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/template_manage.py', reloading
2021-01-15 19:49:17 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:49:22 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:49:22 Fri werkzeug INFO * Debugger PIN: 191-123-093
2021-01-15 19:49:24 Fri werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_workspace/fund_report/app/controller/template_manage.py', reloading
2021-01-15 19:49:24 Fri werkzeug INFO * Restarting with stat
2021-01-15 19:49:29 Fri werkzeug WARNING * Debugger is active!
2021-01-15 19:49:29 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