Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
F
fund_report
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭熊
fund_report
Commits
d309074e
Commit
d309074e
authored
Feb 06, 2021
by
赵杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增基金的数据联动接口3
parent
eb7f5f4d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
51 deletions
+56
-51
update_report.py
app/controller/update_report.py
+7
-6
folio_comment_service.py
app/service/folio_comment_service.py
+49
-45
No files found.
app/controller/update_report.py
View file @
d309074e
...
...
@@ -14,12 +14,7 @@ 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.folio_comment_service
import
recalculation_fund_comment
from
app.service.report_service
import
get_report_list
,
delete_report
,
get_one_report
,
edit_report
,
make_report
,
edit_report_name
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
...
...
@@ -40,7 +35,13 @@ class UpdateReportHandlers(Resource):
args
=
self
.
parser
.
parse_args
()
args
[
'ifa_id'
]
=
g
.
ifa_id
data
=
recalculation_fund_comment
(
args
)
# data = make_report(args)
if
data
is
False
:
resq
=
{
"statusCode"
:
"8888"
,
"message"
:
"内部错误"
,
"attributes"
:
data
}
return
resq
resp
=
{
"statusCode"
:
"0000"
,
"message"
:
"成功"
,
...
...
app/service/folio_comment_service.py
View file @
d309074e
from
app.service.portfolio_diagnose
import
PortfolioDiagnose
from
app.service.result_service_v2
import
UserCustomerResultAdaptor
import
datetime
import
json
from
app.utils.draw
import
draw_combination_chart
from
app.utils.format_transfer
import
npEncoder
def
recalculation_fund_comment
(
args
):
ifa_id
=
args
.
get
(
"ifa_id"
)
customer_id
=
args
.
get
(
"customer_id"
)
folio
=
args
.
get
(
"folio"
)
suggest_result
=
args
.
get
(
"suggest_data"
)
suggest_fund_dict
=
{}
suggest_fund_list
=
[]
suggest_amount_list
=
[]
for
key
,
value_list
in
suggest_result
.
items
():
for
value
in
value_list
:
if
value
[
"after_optimization"
]
<=
0
:
continue
suggest_fund_dict
[
value
[
"fund_id"
]]
=
value
[
"fund_type"
]
suggest_fund_list
.
append
(
value
[
"fund_id"
])
suggest_amount_list
.
append
(
value
[
"after_optimization"
])
sum_amount
=
sum
(
suggest_amount_list
)
suggest_weight_list
=
[
round
(
amount
/
sum_amount
,
4
)
for
amount
in
suggest_amount_list
]
user_customer
=
UserCustomerResultAdaptor
(
ifa_id
,
customer_id
,
end_date
=
datetime
.
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d"
))
group_result
=
user_customer
.
calculate_group_result_data
()
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"
]),
start_date
=
user_customer
.
start_date
)
portfolio_diagnose
.
proposal_customize
(
suggest_fund_list
,
suggest_weight_list
,
suggest_fund_dict
)
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"
]
=
\
portfolio_diagnose
.
new_evaluation
(
folio
,
group_result
,
user_customer
,
suggest_fund_dict
)
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"
])
return
finall_reslut
\ No newline at end of file
try
:
ifa_id
=
args
.
get
(
"ifa_id"
)
customer_id
=
args
.
get
(
"customer_id"
)
folio
=
args
.
get
(
"folio"
)
suggest_result
=
json
.
loads
(
args
.
get
(
"suggest_data"
))
suggest_fund_dict
=
{}
suggest_fund_list
=
[]
suggest_amount_list
=
[]
for
key
,
value_list
in
suggest_result
.
items
():
for
value
in
value_list
:
if
value
[
"after_optimization"
]
<=
0
:
continue
suggest_fund_dict
[
value
[
"fund_id"
]]
=
value
[
"fund_type"
]
suggest_fund_list
.
append
(
value
[
"fund_id"
])
suggest_amount_list
.
append
(
value
[
"after_optimization"
])
sum_amount
=
sum
(
suggest_amount_list
)
suggest_weight_list
=
[
round
(
amount
/
sum_amount
,
4
)
for
amount
in
suggest_amount_list
]
user_customer
=
UserCustomerResultAdaptor
(
ifa_id
,
customer_id
,
end_date
=
datetime
.
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d"
))
group_result
=
user_customer
.
calculate_group_result_data
()
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"
]),
start_date
=
user_customer
.
start_date
)
portfolio_diagnose
.
proposal_customize
(
suggest_fund_list
,
suggest_weight_list
,
suggest_fund_dict
)
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"
]
=
\
portfolio_diagnose
.
new_evaluation
(
folio
,
group_result
,
user_customer
,
suggest_fund_dict
)
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"
])
except
Exception
as
e
:
return
False
return
json
.
dumps
(
finall_reslut
,
cls
=
npEncoder
,
ensure_ascii
=
False
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment