Beispiel #1
0
def getAccountHolding():
    start_ts = datetimeManager().getTimeStamp()
    # 缓存
    if cm.cacheAvailable(start_ts, request.path):
        data = cm.getCache(start_ts, request.path)
        return Response(data, status=200, mimetype='application/json')
    db = holdingDBHelper()
    records = []
    records = db.selectAllIsolatedFundHoldings()
    # 基金简称
    df = categoryManager.category_df
    for x in records:
        code = x['code']
        name = x['name']
        sub = df[df['基金代码'] == code]
        if len(sub) > 0:
            x['name'] = sub.基金简称.values[0]
            x['full_name'] = sub.基金名称.values[0]
        else:
            x['name'] = name
            x['full_name'] = name
    # data = json.dumps(records, ensure_ascii=False, indent=4)
    end_ts = dm.getTimeStamp()
    duration = dm.getDuration(start_ts, end_ts)
    data = packDataWithCommonInfo(duration=duration, data=records)
    cm.saveCache(request.path, data)
    return Response(data, status=200, mimetype='application/json')
Beispiel #2
0
def getFamilyEstimate():
    start_ts = datetimeManager().getTimeStamp()
    # 缓存
    if cm.cacheAvailable(start_ts, request.path):
        data = cm.getCache(start_ts, request.path)
        return Response(data, status=200, mimetype='application/json')
    # TODO 后面这里弄个缓存,1 天之内都不走数据库了
    output_path = os.path.join(folder, u'app', u'server', u'cache',
                               'codelist.json')
    params = []
    if os.path.exists(output_path) and os.path.getsize(output_path) > 0:
        # 读缓存
        with open(output_path, 'r', encoding=u'utf-8') as f:
            params = json.loads(f.read())
    else:
        db = holdingDBHelper()
        records = db.selectAllCombineFundHoldings()
        reload = request.args.get('reloadCategory', '')
        if reload and int(reload) == 1:
            categoryManager.loadNewestCategoryFile()
            categoryManager.loadNewsetCategory3ExtensionFile()
        # 基金简称
        df = categoryManager.category_df
        for x in records:
            values = []
            code = x['code']
            name = x['name']
            nav = x['holding_nav']
            sub = df[df['基金代码'] == code]
            if len(sub) > 0:
                name = sub.基金简称.values[0]
                fullName = sub.基金名称.values[0]
                market = sub.市场.values[0]
            elif u'货币' in name:
                name = name
                fullName = name
                market = u'货币'
            else:
                name = name
                fullName = name
                market = u'其他'
            item = {
                'code': code,
                'name': name,
                'fullName': fullName,
                'nav': nav,
                'market': market
            }
            params.append(item)
        # 后面采用新缓存机制
        # with open(output_path, 'w+', encoding=u'utf-8') as f:
        #     f.write(json.dumps(params, ensure_ascii=False, indent=4))
    em = estimateManager()
    end_ts = dm.getTimeStamp()
    duration = dm.getDuration(start_ts, end_ts)
    data = packDataWithCommonInfo(duration=duration, data=em.esitmate(params))
    cm.saveCache(request.path, data)
    return Response(data, status=200, mimetype='application/json')
Beispiel #3
0
def packDataWithCommonInfo(isCache=False,
                           isSuccess=True,
                           msg="success",
                           duration='0',
                           data={}):
    code = 0
    if not isSuccess:
        code = -1
    result = {
        'code': code,
        'msg': msg,
        'isCache': False,
        'aliyun_date': datetimeManager().getDateTimeString(),
        'data': data,
        'duration': duration
    }
    return json.dumps(result, ensure_ascii=False, indent=4)
Beispiel #4
0
def getMoneyInfos():
    start_ts = datetimeManager().getTimeStamp()
    # 资金文件路径
    output_path = os.path.join(folder, u'app', u'server', 'money.json')
    moneyinfo = {}
    data = {}
    if os.path.exists(output_path) and os.path.getsize(output_path) > 0:
        # 读缓存
        with open(output_path, 'r', encoding=u'utf-8') as f:
            moneyinfo = json.loads(f.read())
            if len(moneyinfo.keys()) > 0:
                data['cash'] = {
                    'name': '现金',
                    'value': np.sum([v for k, v in moneyinfo['现金'].items()])
                }
                data['freeze'] = {
                    'name': '冻结资金',
                    'value': np.sum([v for k, v in moneyinfo['冻结资金'].items()])
                }
    end_ts = dm.getTimeStamp()
    duration = dm.getDuration(start_ts, end_ts)
    data = packDataWithCommonInfo(duration=duration, data=data)
    return Response(data, status=200, mimetype='application/json')
Beispiel #5
0
from category.categoryManager import categoryManager
from database.fundDBHelper import fundDBHelper
from app.server.holdingDBHelper import *
from app.server.estimateManager import estimateManager
from app.server.evalManager import evalManager

from app.server.cacheManager import cacheManager
from app.server.datetimeManager import datetimeManager

folder = os.path.abspath(os.path.dirname(__file__))

categoryManager = categoryManager()
cm = cacheManager()
ev = evalManager()
dm = datetimeManager()

os.environ['GEVENT_SUPPORT'] = 'True'

app = Flask(__name__)
CORS(app, supports_credentials=True)


# 添加公共返回值
def packDataWithCommonInfo(isCache=False,
                           isSuccess=True,
                           msg="success",
                           duration='0',
                           data={}):
    code = 0
    if not isSuccess: