fix: 🐛 fix total asset data

main
jackluson 3 years ago
parent 04171c3c6c
commit 8ebc5c9c36

@ -39,6 +39,7 @@ def get_total_asset(fund_code, platform):
print("fund_code", total_asset, fund_code)
each_fund = FundApier(fund_code, end_date='2021-05-10', platform='zh_fund')
total_asset = each_fund.get_total_asset()
return total_asset
if __name__ == '__main__':
each_fund_query = FundQuery()
@ -185,10 +186,12 @@ if __name__ == '__main__':
quarterly_dict['fund_code'] = item_code
quarterly_dict['total_asset'] = total_asset
quarterly_dict['id'] = snow_flake_id + i + 1
#入库
fund_insert.fund_quarterly_info(quarterly_dict)
if float(stock_position_total) > 0:
stock_dict['fund_code'] = item_code
stock_dict['id'] = snow_flake_id + i + 1
#入库
fund_insert.fund_stock_info(stock_dict)
# pprint(fundDict)
page_start = page_start + page_limit

@ -22,11 +22,9 @@ class FundSupplement:
def update_archive_status(self):
fund_query = FundQuery()
print("fund_query", fund_query)
each_fund_update = FundUpdate()
funds = fund_query.select_quarter_fund(0, 10000)
for fund_item in funds:
print("fund_item", fund_item)
fund_code = fund_item[0]
fund_api = FundApier(fund_code, platform='zh_fund')
fund_api.get_analyse_info_zh()
@ -35,3 +33,23 @@ class FundSupplement:
each_fund_update.update_archive_status(1, fund_code=fund_code)
continue
print('fund_api', fund_api.buy_status, fund_api.sell_status)
def update_c_class_fund_total_asset(self):
fund_query = FundQuery()
each_fund_update = FundUpdate()
# 获取所有的A类基金
all_total_asset_is_null_results = fund_query.select_total_asset_is_null()
for fund_item in all_total_asset_is_null_results:
fund_code = fund_item[0]
platform = 'ai_fund'
end_date = '2021-06-11'
each_fund = FundApier(fund_code, end_date=end_date, platform=platform)
total_asset = each_fund.get_total_asset()
# 如果在爱基金平台找不到,则到展恒基金找
if total_asset == None and platform == 'ai_fund':
print("fund_code", fund_code)
each_fund = FundApier(fund_code, end_date=end_date, platform='zh_fund')
total_asset = each_fund.get_total_asset()
if total_asset:
each_fund_update.update_fund_total_asset(fund_code, total_asset)

@ -14,4 +14,8 @@ from fund_info.supplement import FundSupplement
if __name__ == '__main__':
fund_supplement = FundSupplement()
fund_supplement.update_archive_status()
#补充基金清算维度信息
#fund_supplement.update_archive_status()
#补充除了A类基金的其他类基金的总资产信息
fund_supplement.update_c_class_fund_total_asset()

@ -224,12 +224,6 @@ class FundQuery:
c_class_result = self.cursor.fetchone()
return c_class_result
# 更新基金资产 -- fund_morning_quarter
def update_fund_total_asset(self, fund_code, total_asset):
sql_update = "UPDATE fund_morning_quarter SET total_asset = %s WHERE fund_code = %s;"
self.cursor.execute(sql_update, [total_asset, fund_code])
self.connect_instance.commit()
def select_top_10_stock(self, quarter_index=None, fund_code_pool=None):
stock_sql_join = ''
for index in range(10):
@ -278,3 +272,12 @@ class FundQuery:
# print(self.cursor._last_executed)
results = self.cursor.fetchall() # 获取查询的所有记录
return results
# total_asset 为null的基金
def select_total_asset_is_null(self, quarter_index=None):
if quarter_index == None:
quarter_index = self.quarter_index
sql = 'SELECT fund_code FROM fund_morning_quarter as a WHERE a.quarter_index = %s AND a.total_asset IS NULL'
self.cursor.execute(sql, [quarter_index]) # 执行sql语句
results = self.cursor.fetchall() # 获取查询的所有记录
return results

@ -34,3 +34,11 @@ class FundUpdate:
sql_update_archive = "UPDATE fund_morning_base SET is_archive = %s WHERE fund_code = %s;"
self.cursor.execute(sql_update_archive, (archive_value, code))
self.connect_instance.commit()
# 更新基金资产 -- fund_morning_quarter
def update_fund_total_asset(self, fund_code, total_asset, quarter_index=None):
if quarter_index == None:
quarter_index = self.quarter_index
sql_update = "UPDATE fund_morning_quarter SET total_asset = %s WHERE fund_code = %s AND quarter_index = %s ;"
self.cursor.execute(sql_update, [total_asset, fund_code, quarter_index])
self.connect_instance.commit()

@ -12,6 +12,7 @@ from db.connect import connect
from time import sleep
import os
from sql_model.fund_query import FundQuery
from sql_model.fund_update import FundUpdate
from fund_info.api import FundApier
@ -19,6 +20,7 @@ if __name__ == '__main__':
page_start = 3600
page_limit = 10000
fund_query = FundQuery()
fund_update = FundUpdate()
# 获取所有的A类基金
all_a_results = fund_query.select_all_a_class_fund(
page_start, page_limit) # 获取查询的所有记录
@ -39,4 +41,4 @@ if __name__ == '__main__':
each_fund = FundApier(fund_code, end_date='2021-05-07', platform='zh_fund')
total_asset = each_fund.get_total_asset()
fund_query.update_fund_total_asset(fund_code, total_asset)
fund_update.update_fund_total_asset(fund_code, total_asset)

Loading…
Cancel
Save