예제 #1
0
def search_profit_loss_rank():
    start = request.args.get('beginDate')
    end = request.args.get('endDate')
    game = request.args.get('game')
    sort = request.args.get('profit_loss')
    channel_id = session['select_channel']

    if game == '0':
        game_str = ''
    else:
        game_str = ' AND t_player_subgame.gameid=%s' % game

    start_date = time_util.formatDatestamp(start)
    end_date = time_util.formatDatestamp(end)

    today0 = time_util.today0()
    if start_date == today0:
        return search_profit_loss_rank_today()

    if start_date > end_date:
        return jsonify(result='failed', msg=u"终止日期不能小于起始日期!")

    start_date = int(time_util.formatTimeWithDesc(start_date, "%Y%m%d"))
    end_date = int(time_util.formatTimeWithDesc(end_date + 86400, "%Y%m%d"))

    sort_str = ''
    if sort == '0':
        sort_str = "DESC"
    elif sort == '1':
        sort_str = "ASC"
    search_sql = """SELECT * FROM (SELECT pid, (SELECT nick FROM player WHERE pid=id), (SELECT last_login_ip FROM player WHERE pid=id),
                     sum(game_count), sum(stake_coin), sum(output_coin), (sum(output_coin) - sum(stake_coin)) total_win
                    FROM t_player_subgame
                    WHERE time>=%d 
                    AND time<%d%s 
                    GROUP BY pid ORDER BY time DESC) t
                    ORDER BY total_win %s LIMIT 100""" \
                 % (start_date, end_date, game_str, sort_str)

    game_db_qrl = LogQry(int(channel_id))
    alltime_search_datas = game_db_qrl.qry(search_sql)

    player_rank_list = []
    i = 1  # 用于记录排名
    for pid, nick, last_login_ip, game_count, stake_coin, output_coin, total_win in alltime_search_datas:
        player_dict = dict()
        player_dict['pid'] = pid
        player_dict['nick'] = nick
        player_dict['last_login_ip'] = last_login_ip
        player_dict['game_count'] = float(game_count)
        player_dict['stake_coin'] = float(stake_coin)
        player_dict['output_coin'] = float(output_coin)
        player_dict['total_win'] = float(total_win)
        player_dict['rank'] = i
        player_rank_list.append(player_dict)
        i += 1

    return jsonify(result='ok', data=player_rank_list)
예제 #2
0
def search_daily_topup():
    start = request.args.get('beginDate', '')
    end = request.args.get('endDate', '')

    start_date = time_util.formatDatestamp(start)
    end_date = time_util.formatDatestamp(end)

    today0 = time_util.today0()
    if start_date == today0:
        return get_today_topup()

    channel_id = session['select_channel']

    if start_date > end_date:
        return jsonify(result='fail', msg=u'结束日期不能小于开始日期!')

    start_date = int(time_util.formatTimeWithDesc(start_date, "%Y%m%d"))
    end_date = int(time_util.formatTimeWithDesc(end_date, "%Y%m%d"))
    search_sql = '''
        SELECT time, ifnull(sum(reg_count), 0), ifnull(sum(active_count), 0), 
                ifnull(sum(recharge_player_count), 0), ifnull(sum(recharge_count), 0),
            ifnull(sum(total_recharge), 0), ifnull(sum(withdraw), 0), ifnull(sum(withdraw_count), 0),
                ifnull(sum(recharge_count_reg), 0), ifnull(sum(total_recharge_reg), 0),
            ifnull(sum(recharge_count2_reg), 0)
        FROM t_system 
        WHERE time>=%d 
        AND time<=%d
        group by time
        ORDER BY time;
        ''' % (start_date, end_date)

    game_db_qrl = LogQry(int(channel_id))
    print search_sql
    alltime_search_datas = game_db_qrl.qry(search_sql)

    # 最终展示的数据列表
    allday_datas = []

    for line in alltime_search_datas:
        if not line[0]:
            continue
        pre_line = dict()
        pre_line['date_text'] = time_util.date_str(line[0])
        pre_line['reg_count'] = int(line[1])
        pre_line['active_count'] = int(line[2])
        pre_line['recharge_player_num'] = int(line[3])
        pre_line['recharge_count'] = int(line[4])
        pre_line['total_recharge'] = int(line[5])
        pre_line['withdraw'] = int(line[6])
        pre_line['withdraw_count'] = int(line[7])

        pre_line['recharge_count_reg'] = int(line[8])
        pre_line['total_recharge_reg'] = int(line[9])
        pre_line['recharge_count2_reg'] = int(line[10])
        allday_datas.append(pre_line)

    return jsonify(result='ok', data=allday_datas)
예제 #3
0
def search_profit_loss_rank_today():
    game = request.args.get('game')
    sort = request.args.get('profit_loss')
    channel_id = session['select_channel']

    today0 = time_util.today0()

    if game == '0':
        game_str = ''
    else:
        game_str = ' AND gameid=%s' % game

    sort_str = ''
    if sort == '0':
        sort_str = "DESC"
    elif sort == '1':
        sort_str = "ASC"
    search_sql = """
        SELECT * FROM 
            (SELECT pid, (SELECT nick FROM player WHERE pid=id), (SELECT last_login_ip FROM player WHERE pid=id),
                     count(1), sum(stake_coin), sum(output_coin), (sum(output_coin) - sum(stake_coin)) total_win
            FROM %s
            WHERE time>=%d 
            %s 
            GROUP BY pid 
            ORDER BY time DESC) t
        ORDER BY total_win %s 
        LIMIT 100
        """ % (get_table_log_player_subgame(today0), today0, game_str,
               sort_str)

    game_db_qrl = LogQry(int(channel_id))
    alltime_search_datas = game_db_qrl.qry(search_sql)

    player_rank_list = []
    i = 1  # 用于记录排名
    for pid, nick, last_login_ip, game_count, stake_coin, output_coin, total_win in alltime_search_datas:
        player_dict = dict()
        player_dict['pid'] = pid
        player_dict['nick'] = nick
        player_dict['last_login_ip'] = last_login_ip
        player_dict['game_count'] = float(game_count)
        player_dict['stake_coin'] = float(stake_coin)
        player_dict['output_coin'] = float(output_coin)
        player_dict['total_win'] = float(total_win)
        player_dict['rank'] = i
        player_rank_list.append(player_dict)
        i += 1

    return jsonify(result='ok', data=player_rank_list)
예제 #4
0
def search_gold_rank():
    user_type = request.args.get('user_type')
    channel_id = session['select_channel']

    backend_agent_sql = "SELECT pid FROM admin_agent_list"
    agent_tup = LogQry(channel_id).qry(backend_agent_sql)

    agent_id_list = list()
    for agent_id in agent_tup:
        agent_id_list.append(agent_id[0])

    if user_type == '0':
        user_type_str = "1=1"
    elif user_type == '1':
        if len(agent_id_list) == 0:
            user_type_str = '1=1'
        else:
            user_type_str = 'id NOT IN %s' % str(tuple(agent_id_list))
    else:
        if len(agent_id_list) == 0:
            user_type_str = '1=0'
        else:
            user_type_str = 'id IN %s' % str(tuple(agent_id_list))

    search_sql = """SELECT id, nick, total_recharge_rmb, total_withdraw, coin, counter, last_login_ip, delivery_address 
                    FROM player 
                    WHERE %s
                    ORDER BY coin DESC LIMIT 100;""" % user_type_str

    game_db_qrl = LogQry(channel_id)

    coin_rank_datas = game_db_qrl.qry(search_sql)

    player_rank_list = list()
    pid_list = list()
    player_dict = dict()
    i = 1  # 排名
    for pid, nick, total_recharge, total_withdraw, coin, counter, last_login_ip, delivery_address in coin_rank_datas:
        pid_list.append(pid)
        player_dict['pid'] = pid
        player_dict['nick'] = nick
        player_dict['total_recharge'] = total_recharge
        player_dict['total_withdraw'] = total_withdraw
        player_dict['coin'] = coin
        player_dict['last_login_ip'] = last_login_ip
        player_dict['counter'] = get_bank_coin(counter)
        player_dict['game_count'] = 0
        player_dict['rank'] = i
        player_rank_list.append(player_dict)
        player_dict = dict()
        i += 1

    if len(pid_list) == 1:
        pid_str = '(' + str(pid_list[0]) + ')'
    elif len(pid_list) == 0:
        pid_str = '(0)'
    else:
        pid_str = str(tuple(pid_list))

    game_count_sql = """SELECT pid, time, game_count
                        FROM t_player_subgame
                        WHERE pid IN %s
                        ORDER BY time desc""" \
                     % pid_str

    game_count_datas = game_db_qrl.qry(game_count_sql)

    game_count_dict = dict()
    for pid, time_stamp, game_count in game_count_datas:
        if not game_count_dict.has_key(pid):
            game_count_dict[pid] = game_count
        game_count_dict[pid] += game_count

    for pid, game_count in game_count_dict.items():
        for value_dict in player_rank_list:
            if value_dict['pid'] == pid:
                value_dict['game_count'] = game_count

    return jsonify(result='ok', data=player_rank_list)
예제 #5
0
def search_withdraw_topup_rank():
    start = request.args.get('beginDate')
    end = request.args.get('endDate')
    sort = request.args.get('recharge_withdraw')
    channel_id = session['select_channel']

    start_date = time_util.start(start)
    end_date = time_util.end(end)

    if start_date > end_date:
        return jsonify(result='failed', msg=u'终止日期不能小于起始日期!')

    if sort == '0':
        sort_str = 'total_withdraw'
    else:
        sort_str = 'total_recharge'

    search_sql = """SELECT * FROM (SELECT pid, (SELECT nick FROM player WHERE pid=id), (SELECT last_login_ip FROM player WHERE pid=id),
                    sum(coin) as total_withdraw, sum(cost) as total_recharge
                    FROM admin_recharge
                    WHERE time>=%d 
                    AND time<%d 
                    GROUP BY pid)t 
                    ORDER BY t.%s desc LIMIT 100""" \
                 % (start_date, end_date, sort_str)

    game_db_qrl = LogQry(int(channel_id))
    give_search_sql = game_db_qrl.qry(search_sql)

    player_rank_list = list()
    pid_list = list()
    i = 1  # 排名
    for pid, nick, last_login_ip, total_withdraw, total_recharge in give_search_sql:
        pid_list.append(pid)
        player_dict = dict()
        player_dict['pid'] = pid
        player_dict['nick'] = nick
        player_dict['last_login_ip'] = last_login_ip
        player_dict['game_count'] = 0
        player_dict['withdraw'] = float(total_withdraw)
        player_dict['recharge'] = float(total_recharge)
        player_dict['rank'] = i
        player_rank_list.append(player_dict)
        i += 1

    if len(pid_list) == 1:
        pid_str = '(' + str(pid_list[0]) + ')'
    elif len(pid_list) == 0:
        pid_str = '(0)'
    else:
        pid_str = str(tuple(pid_list))

    start_ymd = int(time_util.formatTimeWithDesc(start_date, "%Y%m%d"))
    end_ymd = int(time_util.formatTimeWithDesc(end_date + 86400, "%Y%m%d"))
    game_count_sql = """SELECT pid, time, game_count
                        FROM t_player_subgame
                        WHERE time>=%d 
                        AND time<%d
                        AND pid IN %s
                        ORDER BY time desc""" \
                     % (start_ymd, end_ymd, pid_str)

    game_count_datas = game_db_qrl.qry(game_count_sql)

    game_count_dict = dict()
    for pid, time_stamp, game_count in game_count_datas:
        if not game_count_dict.has_key(pid):
            game_count_dict[pid] = game_count
        game_count_dict[pid] += game_count

    for pid, game_count in game_count_dict.items():
        for value_dict in player_rank_list:
            if value_dict['pid'] == pid:
                value_dict['game_count'] = game_count

    return jsonify(result='ok', data=player_rank_list)
예제 #6
0
def search_sell_buy_point_rank():
    start = request.args.get('beginDate', '')
    end = request.args.get('endDate', '')
    user_type = request.args.get('user_type', '')
    sort = request.args.get('point', '')
    channel_id = session['select_channel']

    start_date = time_util.start(start)
    end_date = time_util.end(end)

    if start_date > end_date:
        return jsonify(result='failed', msg=u'终止日期不能小于起始日期!')

    # 卖分排行榜
    if sort == '1':

        if user_type == '1':
            user_type_str = " AND give_agent=0"
        elif user_type == '2':
            user_type_str = " AND give_agent=1"
        else:
            user_type_str = ""

        give_search_sql = """SELECT * FROM (SELECT give_id, sum(money) as total_money, 
                        (SELECT nick FROM player WHERE give_id=id), (SELECT last_login_ip FROM player WHERE give_id=id)
                        FROM log_bank_give 
                        WHERE time>=%d 
                        AND time<%d
                        AND ((give_agent=1 AND recv_agent=0) OR (give_agent=0 AND recv_agent=1))
                        %s
                        GROUP BY give_id) as t
                        ORDER BY t.total_money desc LIMIT 100""" \
                          % (start_date, end_date, user_type_str)

        game_db_qrl = LogQry(int(channel_id))
        bank_search_data = game_db_qrl.qry(give_search_sql)

        player_rank_list = list()
        player_dict = dict()
        gid_list = list()
        i = 1  # 排名
        for give_id, total_money, nick, last_login_ip in bank_search_data:
            gid_list.append(give_id)
            player_dict['pid'] = give_id
            player_dict['nick'] = nick
            player_dict['last_login_ip'] = last_login_ip
            player_dict['total_down_coin'] = float(total_money)
            player_dict['game_count'] = 0
            player_dict['total_up_coin'] = 0
            player_dict['rank'] = i
            player_rank_list.append(player_dict)
            player_dict = dict()
            i += 1

        if len(gid_list) == 1:
            pid_str = '(' + str(gid_list[0]) + ')'
        elif len(gid_list) == 0:
            pid_str = '(0)'
        else:
            pid_str = str(tuple(gid_list))

        recv_search_sql = """SELECT recv_id, sum(money) 
                            FROM log_bank_give
                            WHERE time>=%d 
                            AND time<%d 
                            AND recv_id IN %s 
                            GROUP BY recv_id""" \
                          % (start_date, end_date, pid_str)
        recv_player_datas = game_db_qrl.qry(recv_search_sql)

        for rid, total_money in recv_player_datas:
            for value_dict in player_rank_list:
                if value_dict['pid'] == rid:
                    value_dict['total_up_coin'] = float(total_money)

        start_ymd = int(time_util.formatTimeWithDesc(start_date, "%Y%m%d"))
        end_ymd = int(time_util.formatTimeWithDesc(end_date + 86400, "%Y%m%d"))
        game_count_sql = """SELECT pid, time, game_count
                            FROM t_player_subgame
                            WHERE time>=%d 
                            AND time<%d
                            AND pid IN %s
                            ORDER BY time desc""" \
                         % (start_ymd, end_ymd, pid_str)

        game_count_datas = game_db_qrl.qry(game_count_sql)

        game_count_dict = dict()
        for pid, time_stamp, game_count in game_count_datas:
            if not game_count_dict.has_key(pid):
                game_count_dict[pid] = game_count
            game_count_dict[pid] += game_count

        for pid, game_count in game_count_dict.items():
            for value_dict in player_rank_list:
                if value_dict['pid'] == pid:
                    value_dict['game_count'] = game_count
    # 买分排行榜
    else:
        if user_type == '1':
            user_type_str = " AND recv_agent=0"
        elif user_type == '2':
            user_type_str = " AND recv_agent=1"
        else:
            user_type_str = ""

        recv_search_sql = """SELECT * FROM (SELECT recv_id, sum(money) as total_money, 
                        (SELECT nick FROM player WHERE recv_id=id), (SELECT last_login_ip FROM player WHERE recv_id=id)
                        FROM log_bank_give 
                        WHERE time>=%d 
                        AND time<%d
                        AND ((give_agent=1 AND recv_agent=0) OR (give_agent=0 AND recv_agent=1))
                        %s
                        GROUP BY recv_id)t
                        ORDER BY t.total_money desc LIMIT 100""" \
                          % (start_date, end_date + 86400, user_type_str)

        game_db_qrl = LogQry(int(channel_id))
        bank_search_data = game_db_qrl.qry(recv_search_sql)

        player_rank_list = list()
        player_dict = dict()
        rid_list = list()
        i = 1  # 排名
        for recv_id, total_money, nick, last_login_ip in bank_search_data:
            rid_list.append(recv_id)
            player_dict['pid'] = recv_id
            player_dict['nick'] = nick
            player_dict['last_login_ip'] = last_login_ip
            player_dict['total_up_coin'] = float(total_money)
            player_dict['game_count'] = 0
            player_dict['total_down_coin'] = 0
            player_dict['rank'] = i
            player_rank_list.append(player_dict)
            player_dict = dict()
            i += 1

        if len(rid_list) == 1:
            pid_str = '(' + str(rid_list[0]) + ')'
        elif len(rid_list) == 0:
            pid_str = '(0)'
        else:
            pid_str = str(tuple(rid_list))

        give_search_sql = """SELECT give_id, sum(money) 
                            FROM log_bank_give
                            WHERE time>=%d 
                            AND time<%d
                            AND give_id IN %s 
                            GROUP BY give_id""" \
                          % (start_date, end_date, pid_str)

        recv_player_datas = game_db_qrl.qry(give_search_sql)

        for gid, total_money in recv_player_datas:
            for value_dict in player_rank_list:
                if value_dict['pid'] == gid:
                    value_dict['total_down_coin'] = float(total_money)

        start_ymd = int(time_util.formatTimeWithDesc(start_date, "%Y%m%d"))
        end_ymd = int(time_util.formatTimeWithDesc(end_date + 86400, "%Y%m%d"))
        game_count_sql = """SELECT pid, time, game_count
                            FROM t_player_subgame
                            WHERE time>=%d 
                            AND time<%d
                            AND  pid IN %s
                            ORDER BY time desc""" \
                         % (start_ymd, end_ymd, pid_str)

        game_count_datas = game_db_qrl.qry(game_count_sql)

        game_count_dict = dict()
        for pid, time_stamp, game_count in game_count_datas:
            if not game_count_dict.has_key(pid):
                game_count_dict[pid] = game_count
            game_count_dict[pid] += game_count

        for pid, game_count in game_count_dict.items():
            for value_dict in player_rank_list:
                if value_dict['pid'] == pid:
                    value_dict['game_count'] = game_count

    return jsonify(result=0, data=player_rank_list)
예제 #7
0
def search_coin_change_data():
    player_id = request.args.get('PlayerID', '')
    Account = request.args.get('Account', '')
    gameid = request.args.get('game')
    start = request.args.get('beginDate', '')
    end = request.args.get('endDate', '')
    channel = session['select_channel']
    size = int(request.args.get('size', ''))
    offset = int(request.args.get('offset', ''))

    start_date = time_util.formatTimestamp(start)
    end_date = time_util.formatTimestamp(end)

    use_index = "force index(time)"
    if player_id:
        use_index = "force index(pid)"
        play_id_str = " AND pid=%s" % player_id
    else:
        play_id_str = ''

    if Account:
        use_index = "force index(pid)"
        play_id_str = " AND pid = (select id from player where account_id = '%s') " % Account

    if gameid == '0':
        subgame_str = ""
    else:
        subgame_ename = game_parameter.get_subgame_enname(int(gameid))
        subgame_str = " AND subgame LIKE '%s%%'" % subgame_ename

    search_sql = """
        SELECT time, pid, (SELECT nick FROM player WHERE id=pid), log_type, subgame, val, rest
        FROM %s
        %s
        WHERE time>=%d 
        AND time<%d%s%s 
        ORDER BY time DESC LIMIT %s,%s;
        """ % (get_table_log_coin(start_date), use_index, start_date, end_date, play_id_str, subgame_str, offset, size)

    count_sql = """
        SELECT count(1), ifnull(sum(val) , 0)
        FROM %s 
        %s
        WHERE time >= %d
        AND time < %d%s%s
    """ % (get_table_log_coin(start_date), use_index, start_date, end_date, play_id_str, subgame_str)

    log_db = LogQry(channel)
    item_change_data = log_db.qry(search_sql)
    total_count = log_db.qry(count_sql)[0][0]
    total_val = int(log_db.qry(count_sql)[0][1])

    page_datas = list()
    log_coin_dict = game_parameter.get_coin_log_define()
    subgame_dict = game_parameter.get_subgame_name_enname_d()
    for timeStamp, pid, nick, log_type, subgame, \
        val, rest in item_change_data:
        item_change_dict = dict()
        item_change_dict['timeStamp'] = time_util.formatDateTime(timeStamp)
        item_change_dict['pid'] = pid
        item_change_dict['nick'] = nick
        item_change_dict['log_type'] = game_parameter.get_coin_log_name(log_coin_dict, log_type)

        if subgame:
            subgame_k = subgame.split('-')[0]
            room = subgame.split('-')[1]
            subgame_name = game_parameter.get_subgame_name_by_ename(subgame_dict, subgame_k)
            item_change_dict['subgame'] = "%s(%s)" % (subgame_name, room)
        else:
            subgame_k = ""
            room = ""
            item_change_dict['subgame'] = ""

        item_change_dict['val'] = val
        item_change_dict['rest'] = rest
        page_datas.append(item_change_dict)

    ## 做下特殊处理 排序下
    page_datas.sort(key=lambda x: [x['timeStamp'], x['val']], reverse=True)

    return jsonify({"errcode": 0, "dataLength": total_count, "rowDatas": page_datas, "total_val": total_val})
예제 #8
0
def search_item_change_data():
    player_id = request.args.get('PlayerID', '')
    item_id = request.args.get('game_item', '')
    start = request.args.get('beginDate', '')
    end = request.args.get('endDate', '')
    offset = request.args.get('offset')
    size = request.args.get('size')
    channel = session['select_channel']

    start_date = time_util.start(start)
    end_date = time_util.end(end)

    if start_date > end_date:
        return jsonify(result='fail', msg=u'结束日期不能小于开始日期!')

    if player_id:
        play_id_str = " AND pid='%s'" % player_id
    else:
        play_id_str = ''

    if item_id:
        item_id_str = " AND itemid='%s'" % item_id
    else:
        item_id_str = ''

    search_sql = """SELECT time, pid, (SELECT nick FROM player WHERE id=pid), log_type, itemid, rest
                    FROM log_item
                    WHERE time>=%d 
                    AND time<%d%s%s 
                    ORDER BY time DESC LIMIT %s,%s;""" \
                 % (start_date, end_date, play_id_str, item_id_str, offset, size)

    search_count = """SELECT count(1) 
                      FROM log_item
                      WHERE time>=%d 
                      AND time<%d%s;""" \
                   % (start_date, end_date, play_id_str)

    log_db = LogQry(channel)
    item_change_data = log_db.qry(search_sql)
    page_count = log_db.qry(search_count)[0][0]

    log_coin_dict = game_parameter.get_coin_log_define()

    page_datas = list()
    item_change_dict = dict()
    for timeStamp, pid, nick, log_type, itemid, rest in item_change_data:
        item_change_dict['timeStamp'] = timeStamp
        item_change_dict['pid'] = pid
        item_change_dict['nick'] = nick
        item_change_dict['log_type'] = game_parameter.get_coin_log_name(log_coin_dict, log_type)
        item_change_dict['itemid'] = items_dict.get(itemid)
        item_change_dict['rest'] = rest
        page_datas.append(item_change_dict)
        item_change_dict = dict()

    pages_dict = dict()
    pages_dict['page_count'] = page_count
    pages_dict['page_datas'] = page_datas

    return jsonify(result='ok', data=pages_dict)
예제 #9
0
def search_distribution_detail():
    date = request.args.get('date')
    start = request.args.get('beginDate')
    end = request.args.get('endDate')
    agent_id = request.args.get('agent_id', '')
    channel_id = session['select_channel']

    if date:
        start_date = time_util.formatDatestamp(date)
        end_date = time_util.formatDatestamp(date)
    elif start and end:
        start_date = time_util.formatDatestamp(start)
        end_date = time_util.formatDatestamp(end)

    status_msg = init_status_msg(begin=start_date,
                                 end=end_date,
                                 channel=channel_id,
                                 OThers_list=[{
                                     'agent_id': agent_id
                                 }])

    if start_date > end_date:
        status_msg['errmsg'] = u"终止日期不能小于起始日期"
        return render_template('distribution_detail.html',
                               status_msg=status_msg)

    if agent_id:
        agent_str = ' AND pid=%s' % agent_id
    else:
        status_msg['errmsg'] = u"请输入代理游戏ID查询"
        return render_template('distribution_detail.html',
                               status_msg=status_msg)

    search_t_sql = """SELECT time, pid, pump, pump1, pump2, pump3, nick
                    FROM t_distribution_day 
                    LEFT JOIN 
                    player ON pid=id 
                    WHERE time>=%d 
                    AND time<%d 
                    %s;""" \
                   % (start_date, end_date + 86400, agent_str)
    print search_t_sql

    game_db_qrl = LogQry(int(channel_id))
    t_pump_datas = game_db_qrl.qry(search_t_sql)
    print t_pump_datas

    allday_datas = []
    for day_stamp, pid, pump, pump1, pump2, pump3, nick in t_pump_datas:
        day_dict = dict()
        day_dict['date'] = time_util.formatDate(day_stamp)
        day_dict['channel_id'] = channel_id
        day_dict['pid'] = pid
        day_dict['nick'] = nick
        day_dict['pump'] = pump
        day_dict['pump1'] = 0
        day_dict['pump2'] = 0
        day_dict['pump3'] = 0
        day_dict['pump1_list'] = []
        day_dict['pump2_list'] = []
        day_dict['pump3_list'] = []
        for pid_1, pump11 in json.loads(pump1).items():
            pump1_dict = dict()
            day_dict['pump1'] += pump11

            select_sql = """SELECT nick from player WHERE id=%s""" % pid_1
            player_nick = game_db_qrl.qry(select_sql)[0][0]
            pump1_dict['pid'] = pid_1
            pump1_dict['nick'] = player_nick
            pump1_dict['pump'] = pump11
            day_dict['pump1_list'].append(pump1_dict)

        for pid_2, pump22 in json.loads(pump2).items():
            pump2_dict = dict()
            day_dict['pump2'] += pump22

            select_sql = """SELECT nick from player WHERE id=%s""" % pid_2
            player_nick = game_db_qrl.qry(select_sql)[0][0]
            pump2_dict['pid'] = pid_2
            pump2_dict['nick'] = player_nick
            pump2_dict['pump'] = pump22
            day_dict['pump2_list'].append(pump2_dict)

        for pid_3, pump33 in json.loads(pump3).items():
            pump3_dict = dict()
            day_dict['pump3'] += pump33

            select_sql = """SELECT nick from player WHERE id=%s""" % pid_3
            player_nick = game_db_qrl.qry(select_sql)[0][0]
            pump3_dict['pid'] = pid_3
            pump3_dict['nick'] = player_nick
            pump3_dict['pump'] = pump33
            day_dict['pump3_list'].append(pump3_dict)
        allday_datas.append(day_dict)

    return render_template('distribution_detail.html',
                           status_msg=status_msg,
                           datas=allday_datas)
예제 #10
0
def search_distribution_daily():
    start = request.args.get('beginDate')
    end = request.args.get('endDate')
    agent_id = request.args.get('agent_id', '')
    channel_id = session['select_channel']

    if agent_id:
        agent_str = ' AND pid=%s' % agent_id
    else:
        agent_str = ''

    start_date = time_util.formatDatestamp(start)
    end_date = time_util.formatDatestamp(end)

    status_msg = init_status_msg(begin=start_date,
                                 end=end_date,
                                 channel=channel_id,
                                 OThers_list=[{
                                     'agent_id': agent_id
                                 }])

    if start_date > end_date:
        status_msg['errmsg'] = u"终止日期不能小于起始日期"
        return render_template('distribution_daily.html',
                               status_msg=status_msg)

    search_t_sql = """SELECT time, pid, pump, pump1, pump2, pump3, nick
                    FROM t_distribution_day 
                    LEFT JOIN player 
                    ON pid=id 
                    WHERE time>=%d 
                    AND time<%d 
                    %s ORDER BY time;""" \
                   % (start_date, end_date + 86400, agent_str)

    game_db_qrl = LogQry(int(channel_id))
    t_pump_datas = game_db_qrl.qry(search_t_sql)

    allday_datas = []
    day_dict = dict()
    for day_stamp, pid, pump, pump1, pump2, pump3, nick in t_pump_datas:
        day_dict['date'] = time_util.formatDate(day_stamp)
        day_dict['channel_id'] = channel_id
        day_dict['pid'] = pid
        day_dict['nick'] = nick
        day_dict['pump'] = pump
        day_dict['pump1'] = 0
        day_dict['pump2'] = 0
        day_dict['pump3'] = 0
        for pid_1, pump11 in json.loads(pump1).items():
            day_dict['pump1'] += pump11
        for pid_2, pump22 in json.loads(pump2).items():
            day_dict['pump2'] += pump22
        for pid_3, pump33 in json.loads(pump3).items():
            day_dict['pump3'] += pump33
        allday_datas.append(day_dict)
        day_dict = {}

    return render_template('distribution_daily.html',
                           status_msg=status_msg,
                           datas=allday_datas)
예제 #11
0
def search_presentation_detail():
    """赠送订单详情查询"""

    date = request.args.get('date')
    start = request.args.get('beginDate', '')
    end = request.args.get('endDate', '')
    player_id = request.args.get('PlayerID', '')
    nick = request.args.get('NickName', '')
    money = request.args.get('present_amount', '')
    present_type = request.args.get('present_type', '')
    channel = session['select_channel']
    size = request.args.get('size')
    offset = request.args.get('offset')

    start_date = time_util.start(start)
    end_date = time_util.end(end)
    if date:
        start_date = time_util.formatDatestamp(date)
        end_date = time_util.formatDatestamp(date)

    if start_date > end_date:
        return jsonify(result=0, msg=u'开始时间不能大于结束时间!')
    if nick and player_id:
        return jsonify(result=0, msg=u'玩家昵称与玩家ID只能输入其一!')

    game_log_db = LogQry(channel)

    if nick:
        nick_sql = "SELECT id FROM player WHERE nick='%s'" % nick
        if len(game_log_db.qry(nick_sql)) != 0:
            player_id = game_log_db.qry(nick_sql)[0][0]
        else:
            player_id = -1
    if player_id:
        play_id_str = " AND (give_id=%s or recv_id=%s)" % (player_id,
                                                           player_id)
    else:
        play_id_str = ''

    if money:
        try:
            money = int(money)
            money_str = " AND money>=%s" % money
        except Exception as e:
            money_str = ''
    else:
        money_str = ''

    present_type_str = ''
    if present_type == '0':
        present_type_str = ''
    elif present_type == '1':
        present_type_str = ' AND (give_agent=0 AND recv_agent=0)'
    elif present_type == '2':
        present_type_str = ' AND (give_agent=0 AND recv_agent=1)'
    elif present_type == '3':
        present_type_str = ' AND (give_agent=1 AND recv_agent=1)'
    elif present_type == '4':
        present_type_str = ' AND (give_agent=1 AND recv_agent=0)'

    # 总数据条数、总赠送金币、总缴纳税收
    retrieve_sql = """SELECT count(*),sum(money),sum(pump)
                      FROM log_bank_give
                      WHERE time>=%s AND time<%s
                      AND 1=1 %s%s%s;""" \
                   % (start_date, end_date + 86399, play_id_str, money_str, present_type_str)
    total_data = LogQry(channel).qry(retrieve_sql)[0]
    total_dict = dict()
    total_dict['total_data'] = total_data[0]
    try:
        total_dict['total_money'] = float(total_data[1])
    except TypeError:
        total_dict['total_money'] = 0
    try:
        total_dict['total_pump'] = float(total_data[2])
    except TypeError:
        total_dict['total_pump'] = 0

    give_sql = '''
        SELECT time, give_id, give_agent, 
                (select nick from player where id = give_id), 
                (select last_login_ip from player where id=give_id),
            recv_id, recv_agent, (select nick from player where id = recv_id), 
                 (select last_login_ip from player where id=recv_id), money, 
            pump
        FROM log_bank_give 
        WHERE time>=%d AND time<%d 
        AND 1=1 %s%s%s 
        ORDER BY time DESC
        LIMIT %s,%s;
    ''' % (start_date, end_date + 86399, play_id_str, money_str,
           present_type_str, offset, size)

    alltime_datas = LogQry(channel).qry(give_sql)

    time_search_data = []
    recvid_list = []
    for time_stamp, give_id, give_agent, give_nick, give_last_login_ip, \
        recv_id, recv_agent, recv_nick, recv_last_login_ip, money, \
        pump in alltime_datas:
        recvid_list.append(recv_id)
        present_dict = dict()
        present_dict['time'] = time_util.formatDateTime(time_stamp)
        present_dict['give_id'] = give_id
        present_dict['give_nick'] = give_nick
        present_dict['give_last_login_ip'] = give_last_login_ip
        present_dict['recv_id'] = recv_id
        present_dict['recv_nick'] = recv_nick
        present_dict['recv_last_login_ip'] = recv_last_login_ip
        present_dict['money'] = money
        present_dict['pump'] = pump
        if give_agent == 0:
            if recv_agent == 0:
                present_dict['present_type'] = u"玩家与玩家"
            elif recv_agent == 1:
                present_dict['present_type'] = u"玩家与代理"
        elif give_agent == 1:
            if recv_agent == 0:
                present_dict['present_type'] = u"代理与玩家"
            elif recv_agent == 1:
                present_dict['present_type'] = u"代理与代理"
        time_search_data.append(present_dict)

    return jsonify(result=1, data=time_search_data, total=total_dict)