Exemple #1
0
def get_water_by_date_chart(request):
    start_time = request.POST.get('start_time')
    end_time = request.POST.get('end_time')
    # print 'start_time: %s\nend_time: %s' % (start_time, end_time, )

    if start_time is None or end_time is None:
        result = dict()
        result['message'] = u'时间日期为空, 请传入查询时间'.encode('utf-8')
        result['code'] = -1
        result['result'] = False
        return HttpResponse(content=json.dumps(obj=result, ensure_ascii=False),
                            content_type='application/json',
                            charset='utf-8')
    try:
        start = DateUtils.convert_str_to_date(str_date=start_time)
        end = DateUtils.convert_str_to_date(str_date=end_time)
        water_list = Water.objects.filter(curTime__range=(start, end))
        if water_list is None or len(water_list) == 0:
            result = dict()
            result['result'] = False
            result['message'] = u'数据为空'
            result['code'] = -1
            return HttpResponse(content=json.dumps(obj=result,
                                                   ensure_ascii=False),
                                content_type='application/json',
                                charset='utf-8')
        else:
            data = dict()
            x_time = list()
            phs = list()
            pressures = list()
            temperatures = list()
            electrolytics = list()
            for info in water_list:
                x_time.append(DateUtils.convert_date_to_str(info.curTime))
                phs.append(info.ph)
                pressures.append(info.pressure)
                temperatures.append(info.temperature)
                electrolytics.append(info.electrolytic)
            data['x_time'] = x_time
            data['phs'] = phs
            data['pressures'] = pressures
            data['temperatures'] = temperatures
            data['electrolytics'] = electrolytics
            result = dict()
            result['result'] = True
            result['message'] = 'success'
            result['code'] = 0
            result['data'] = data

            return JsonResponse(data=result, safe=False, status=200)
    except Exception, e:
        result = dict()
        result['message'] = e.message
        result['result'] = False
        result['code'] = -1
        return JsonResponse(data=result)
Exemple #2
0
 def encodeJwt(id, role, remember):
     '''
     生成jwt
     '''
     payload = {
         'iat': DateUtils.format(DateUtils.now()),
         'from_user': id,
         'role': role,
         'remember': remember
     }
     return Signature.s.dumps(payload, Signature.salt)
Exemple #3
0
def main():
    mysql = "SELECT exp_no '标准单号',exp_date '计费日期',seller_no  '商家编号',  system_source '来源系统',order_type '单据类型',transaction_type '交易类型' FROM  trans_standard_201807 ;"
    # 生成数据
    my_data = JdbcUtils.get_datas(mysql)
    # 生成字段名称
    my_fields = JdbcUtils.get_fields(mysql)
    yesterdayStr = DateUtils.getYesterdayStr()
    # 生成文件名称
    my_file_name = 'file_' + yesterdayStr + '.xlsx'
    # 生成文件路径
    my_file_path = 'E:/toolsResult/' + my_file_name
    # 生成excel
    ExcelUtils.get_excel(my_data, my_fields, my_file_path)

    my_email = mail.MyEmail(emailFrom='*****@*****.**',
                            emailTo='*****@*****.**',
                            emailSubject='【标准单数据】' + yesterdayStr,
                            emailText='Dear all:\n\t附件为昨天的标准单数据,请查收!',
                            annexPath=my_file_path,
                            annexName=my_file_name)

    # 生成邮件
    my_email_msg = EmailUtils.create_email(my_email)
    my_receiver = ['*****@*****.**']
    EmailUtils.send_email('*****@*****.**', 'Gqy1084', my_receiver,
                          my_email_msg)
Exemple #4
0
def get_compare_info(request):
    a_time = request.POST.get('a_time')
    b_time = request.POST.get('b_time')
    result = dict()
    if a_time is None or b_time is None:
        result['message'] = u'时间日期为空, 请传入查询时间'.encode('utf-8')
        result['code'] = -1
        result['result'] = False
        return HttpResponse(content=json.dumps(obj=result, ensure_ascii=False),
                            content_type='application/json',
                            charset='utf-8')
    try:
        a = DateUtils.convert_str_to_date(str_date=a_time)
        b = DateUtils.convert_str_to_date(str_date=b_time)
        water_list = Water.objects.filter(curTime__in=[a, b])
        if len(water_list) < 2:
            result['message'] = '查询时间数据为空, 请先把指定日期数据添加到数据库中'
            result['code'] = -1
            result['result'] = False
            return HttpResponse(content=json.dumps(obj=result,
                                                   ensure_ascii=False),
                                content_type='appllication/json',
                                charset='utf-8')
        data_list = list()
        for info in water_list:
            data = dict()
            data['pressure'] = info.pressure
            data['temperature'] = info.temperature
            data['ph'] = info.ph
            data['electrolytic'] = info.electrolytic
            data['curTime'] = DateUtils.convert_date_to_str(info.curTime)
            data_list.append(data)
        result['message'] = 'success'
        result['code'] = 0
        result['result'] = True
        result['data'] = data_list
        return JsonResponse(data=result, status=200, safe=False)
    except Exception, e:

        result['message'] = e.message
        result['result'] = False
        result['code'] = -1

        return JsonResponse(data=result, status=501)
Exemple #5
0
def get_market_cap_for_list_of_dates(ticker, list_of_dates):
    date_marketcap_map = TickersPricesDAO.get_market_cap_for_list_of_dates(ticker, list_of_dates)
    if len(date_marketcap_map) < len(list_of_dates):
        # get last_update
        last_updated = LastUpdatedDAO.get_last_updated("market_cap", ticker)
        if DateUtils.is_after(list_of_dates[-1], last_updated):
            print(f"market cap value for {ticker} is not up to date. retrieving from macrotrends")
            MarketCapBuilderBL.populate_single_ticker(ticker=ticker)
            market_cap = TickersPricesDAO.get_market_cap_for_list_of_dates(ticker, list_of_dates)
    return date_marketcap_map
Exemple #6
0
def get_market_cap(date_str, ticker):
    market_cap = TickersPricesDAO.get_market_cap(date_str, ticker)
    if market_cap is None:
        # get last_update
        last_updated = LastUpdatedDAO.get_last_updated("market_cap", ticker)
        if DateUtils.is_after(date_str, last_updated):
            print(f"market cap value for {ticker} and {date_str} is not up to date. retrieving from macrotrends")
            MarketCapBuilderBL.populate_single_ticker(ticker=ticker)
            market_cap = TickersPricesDAO.get_market_cap(date_str, ticker)
    return market_cap
Exemple #7
0
def fill_business_days(missing_dates):
    connection, cursor = get_connection_cursor()

    my_data = []
    for date in missing_dates:
        business_day = DateUtils.get_business_date(date)
        t = (date, business_day)
        my_data.append(t)

    sql = f"insert into shares.business_days (date, business_day) VALUES (%s, %s)"
    cursor.executemany(sql, my_data)
    connection.commit()
Exemple #8
0
def get_alert_water_info_chart(request):
    start_time = request.POST.get('start_time')
    end_time = request.POST.get('end_time')
    result = dict()
    if start_time is None or end_time is None:

        result['message'] = u'时间日期为空, 请传入查询时间'
        result['result'] = False
        result['code'] = -1
        return HttpResponse(content=json.dumps(obj=result, ensure_ascii=False),
                            content_type='application/json',
                            charset='utf-8')
    try:
        water_list = WaterDB.get_instance().query_specified_alert_by_date(
            start_time=start_time,
            end_time=end_time,
            alert_info=AlertValue.ALERT_INFO)
        if water_list is None or len(water_list) < 1:
            result['message'] = u'指定时间内, 报警数据为空'
            result['result'] = False
            result['code'] = -1
            return HttpResponse(content=json.dumps(obj=result,
                                                   ensure_ascii=False),
                                content_type='application/json',
                                charset='utf-8')
        data = dict()
        x_time = list()
        phs = list()
        pressures = list()
        temperatures = list()
        electrolytics = list()
        for info in water_list:
            x_time.append(DateUtils.convert_date_to_str(info.get('curTime')))
            phs.append(info.get('ph'))
            pressures.append(info.get('pressure'))
            temperatures.append(info.get('temperature'))
            electrolytics.append(True if info.get('electrolytic') ==
                                 1 else False)
        data['x_time'] = x_time
        data['phs'] = phs
        data['pressures'] = pressures
        data['temperatures'] = temperatures
        data['electrolytics'] = electrolytics
        result['message'] = 'success'
        result['result'] = True
        result['code'] = 0
        result['data'] = data
        return JsonResponse(data=result, safe=False, status=200)
    except Exception, e:
        result['message'] = e.message
        result['code'] = -1
        result['result'] = False
        return JsonResponse(data=result)
Exemple #9
0
def get_market_cap(date, ticker):
    connection, cursor = get_connection_cursor()
    business_day = DateUtils.get_business_date(date)
    sql = f"select t.market_cap from shares.tickers_prices t where t.ticker = '{ticker}' and t.date = '{business_day}';"

    # print(f"sql is: {sql}")
    cursor.execute(sql)
    single_result = cursor.fetchone()
    if single_result:
        (market_cap, ) = single_result
        return market_cap
    else:
        return None
Exemple #10
0
def get_market_cap_for_list_of_dates(ticker,
                                     list_of_dates,
                                     connection=None,
                                     cursor=None):
    if not connection:
        connection, cursor = get_connection_cursor()

    # (select 1 id, '2019-3-31' date union all select 2 id, '2019-6-30' date)
    original_dates_sql = create_dates_sql(list_of_dates)
    list_of_business_dates = DateUtils.get_business_dates(list_of_dates)
    business_dates_sql = create_dates_sql(list_of_business_dates)

    sql = f"select dates.date original_date, t.date business_day, t.market_cap from {original_dates_sql} as dates, {business_dates_sql} as business_dates, shares.tickers_prices t where t.ticker = '{ticker}' AND dates.id=business_dates.id AND t.date = business_dates.date;"
    cursor.execute(sql)
    return cursor.fetchall()
Exemple #11
0
def get_macrotrends_responses_method_b(companies_ids, date_str_list) -> object:
    dateticker_to_capprice_map = {}
    for date_str in tqdm(date_str_list, desc="looping over all given dates to get macrotrends responses", colour="CYAN"):
        ticker_list = get_tickers(companies_ids)
        business_day = get_business_date(date_str)
        dateticker_to_capprice_map_for_business_day = TickersPricesDAO.get_market_cap_list(date_str, business_day, ticker_list)
        for ticker in ticker_list:
            market_cap = dateticker_to_capprice_map_for_business_day.get((date_str, ticker))
            if market_cap is None:
                # get last_update
                last_updated = LastUpdatedDAO.get_last_updated("market_cap", ticker)
                if DateUtils.is_after(date_str, last_updated):
                    print(
                        f"market cap value for {ticker} and {date_str} is not up to date. retrieving from macrotrends")
                    MarketCapBuilderBL.populate_single_ticker(ticker=ticker)
                    market_cap = TickersPricesDAO.get_market_cap(date_str, ticker)
            dateticker_to_capprice_map[(date_str,ticker)] = market_cap
    return dateticker_to_capprice_map