Commit ddf49ec6 authored by 赵杰's avatar 赵杰

fix bug

parent d309074e
......@@ -33,6 +33,7 @@ class UpdateReportHandlers(Resource):
self.parser.add_argument('customer_id', type=str, required=True, help='customer_id不能为空')
self.parser.add_argument('suggest_data', type=str, required=True, help='组合建议数据')
args = self.parser.parse_args()
# print(args)
args['ifa_id'] = g.ifa_id
data = recalculation_fund_comment(args)
if data is False:
......
......@@ -2,6 +2,7 @@ from app.service.portfolio_diagnose import PortfolioDiagnose
from app.service.result_service_v2 import UserCustomerResultAdaptor
import datetime
import json
import traceback
from app.utils.draw import draw_combination_chart
from app.utils.format_transfer import npEncoder
......@@ -12,12 +13,16 @@ def recalculation_fund_comment(args):
customer_id = args.get("customer_id")
folio = args.get("folio")
suggest_result = json.loads(args.get("suggest_data"))
# ifa_id = "223164967317544960"
# customer_id = "app6755804805140590592"
suggest_fund_dict = {}
suggest_fund_list = []
suggest_amount_list = []
all_sug_amount_dict = {}
for key, value_list in suggest_result.items():
for value in value_list:
all_sug_amount_dict[value["fund_id"]] = value["after_optimization"]
if value["after_optimization"] <= 0:
continue
suggest_fund_dict[value["fund_id"]] = value["fund_type"]
......@@ -31,7 +36,7 @@ def recalculation_fund_comment(args):
cur_folio_result = group_result[folio]
portfolio_diagnose = PortfolioDiagnose(client_type=1, portfolio=user_customer.all_fund_type_dict,
invest_amount=float(cur_folio_result["total_cost"]),
invest_amount=float(sum_amount * 10000),
start_date=user_customer.start_date)
portfolio_diagnose.proposal_customize(suggest_fund_list, suggest_weight_list, suggest_fund_dict)
......@@ -39,18 +44,33 @@ def recalculation_fund_comment(args):
abandon_fund = list(set(cur_folio_result["fund_id_list"]) - set(suggest_fund_list))
portfolio_diagnose.abandon_fund_score = abandon_fund
finall_reslut = {}
finall_reslut["suggestions_result"], finall_reslut["suggestions_result_asset"], \
finall_reslut["return_compare_data"], \
finall_reslut["indicator_compare"], finall_reslut["new_group_evaluation"] = \
dict_result = {}
new_suggestions_result, new_suggestions_result_asset, return_compare_data, \
indicator_compare, new_group_evaluation = \
portfolio_diagnose.new_evaluation(folio, group_result, user_customer, suggest_fund_dict)
for key_, value_ in new_suggestions_result.items():
for new_sug in value_:
new_sug["after_optimization"] = all_sug_amount_dict.get(new_sug["fund_id"], 0)
finall_reslut["return_compare_pic"] = draw_combination_chart(
finall_reslut["return_compare_data"]["xlabels"],
finall_reslut["return_compare_data"]["new_combination"],
finall_reslut["return_compare_data"]["origin_combination"],
finall_reslut["return_compare_data"]["index"])
new_suggestions_result_asset["after"] = sum_amount
dict_result["suggestions_result"] = new_suggestions_result
dict_result["suggestions_result_asset"] = new_suggestions_result_asset
# dict_result["return_compare_data"] = return_compare_data
dict_result["indicator_compare"] = indicator_compare
dict_result["new_group_evaluation"] = new_group_evaluation
new_correlation = portfolio_diagnose.new_correlation
new_correlation_columns = new_correlation.columns.tolist()
new_correlation_values = new_correlation.values.tolist()
dict_result["new_correlation"] = list(zip(range(1, len(new_correlation_columns)+1), new_correlation_columns, new_correlation_values))
dict_result["return_compare_pic"] = draw_combination_chart(
return_compare_data["xlabels"],
return_compare_data["new_combination"],
return_compare_data["origin_combination"],
return_compare_data["index"])
except Exception as e:
print(traceback.print_exc())
return False
return json.dumps(finall_reslut, cls=npEncoder, ensure_ascii=False)
# print(json.dumps(dict_result, cls=npEncoder, ensure_ascii=False))
return json.dumps(dict_result, cls=npEncoder, ensure_ascii=False)
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