Commit 3ea6cf3d authored by pengxiong@wealthgrow.cn's avatar pengxiong@wealthgrow.cn

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

parents 4f0dd821 afb6928a
......@@ -6,16 +6,19 @@
# @Email : acepengxiong@163.com
# @Software : PyCharm
# -----------------------------------------------------------------------------
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.declarative import declarative_base, declared_attr
Base = declarative_base()
metadata = Base.metadata
class BaseModel():
"""."""
__abstract__ = True
def __init__(self):
pass
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
This diff is collapsed.
This diff is collapsed.
#!/usr/bin/python3.6
# -*- coding: utf-8 -*-
# @Time : 2020/11/18 19:12
# @Author : Jie. Z
# @Email : zhaojiestudy@163.com
# @File : data_service.py
# @Software: PyCharm
import pandas as pd
import numpy as np
from sqlalchemy import and_
from app.api.engine import tamp_user_session, tamp_product_session
from app.model.tamp_user_models import t_customer_order, t_customer_info
from app.model.tamp_product_models import t_fund_info
class UserCustomerDataAdaptor:
fund_nav_total = pd.DataFrame()
user_id = ""
customer_id = ""
def __init__(self, user_id, customer_id):
self.user_id = user_id
self.customer_id = customer_id
self.user_customer_order_df = self.get_user_customer_order_data()
# 获取理财师下该用户所有订单列表
def get_user_customer_order_data(self):
# data1 = tamp_user_session.query(t_customer_order)\
# .filter(user_id = self.user_id).all()
# data2 = tamp_user_session.query(t_customer_info).all()
# data3 = tamp_product_session.query(t_fund_info).all()
sql_user = """select f2.realname,f3.customer_name,fund_id,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 customer_order f1, user_info f2,customer_info f3 where f2.id=f1.user_id and f3.id=f1.customer_id and f1.user_id='{}' and f1.customer_id='{}'""".format(self.user_id, self.customer_id)
cur = tamp_user_session.execute(sql_user)
data = cur.fetchall()
order_df = pd.DataFrame(list(data), columns=['username', 'customer_name', 'fund_id', 'order_type', 'pay_date',
'subscription_fee', 'confirm_share_date', 'confirm_share',
'confirm_amount', 'nav', 'folio_name'])
sql_product = "select distinct `id`, `fund_short_name`, `nav_frequency`, `substrategy` from `fund_info`"
cur = tamp_product_session.execute(sql_product)
data = cur.fetchall()
product_df = pd.DataFrame(list(data), columns=['fund_id', 'fund_name', 'freq', 'substrategy'])
user_customer_order_df = order_df.set_index('fund_id').join(product_df.set_index('fund_id')).reset_index()
return user_customer_order_df
# 获取客户持有的基金净值数据
def get_customer_fund_nav_data(self):
for cur_fund_id in self.user_customer_order_df["fund_id"].unique():
# 对应基金净值
sql = """select distinct `price_date`, `nav`,`cumulative_nav` from `fund_nav` where `fund_id`='{}' order by `price_date` ASC""".format(cur_fund_id)
cur = tamp_product_session.execute(sql)
data = cur.fetchall()
cur_fund_nav_df = pd.DataFrame(list(data), columns=['price_date', 'nav', 'cnav'])
# 对应基金分红
sql = """select distinct `distribute_date`, `distribution` from `fund_distribution` where `fund_id`='{}' and `distribute_type`='1' order by `distribute_date` ASC""".format(
cur_fund_id)
cur = tamp_product_session.execute(sql)
data = cur.fetchall()
cur_fund_distribution_df = pd.DataFrame(list(data), columns=['price_date', 'distribution'])
print(cur_fund_id)
return
# 获取客户对比指数净值数据
def get_customer_index_nav_data(self, index_id):
pass
# 组合收益
def combine_ratio(self):
pass
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