Пример #1
0
def user_level_stat(request):
    server_id = request.REQUEST.get('server_id', None)
    date = request.REQUEST.get('date', None)
    if not date:
        date = datetime.now().strftime("%Y-%m-%d")
    logging.debug(u"用户等级统计.date[%s], server_id[%s]" % (date, server_id))
    
    datas = {}
    
    if server_id:
        user_level_stat = stat_business.get_user_level_stat(server_id, date)
        if user_level_stat:
            stat_data = json.loads(user_level_stat.data)
            level_infos = []
            for i in range(1, 121):
                new_line = False
                if i % 10 == 0:
                    new_line = True
                level_infos.append({'level': i, 'total': stat_data.get(u'%s' % i, 0), 'new_line': new_line})
            datas['level_infos'] = level_infos
   
    datas['date'] = date 
    datas['server_id'] = server_id 
    
    return render_to_response(request, "stat/user_level_stat.html", datas)
Пример #2
0
def set_game_web_status(ucenter='android', status=0):
    
    white_ip_list = WhiteIp.query(condition="ucenter='%s'" % ucenter)
    ip_list = []
    for white_ip in white_ip_list:
        ip_list.append(white_ip.ip)
    
    info = {}
    timestamp = int(time.time() * 1000)
    info["timestamp"] = timestamp
    info["sign"] = md5mgr.mkmd5fromstr("%s%s" % (timestamp, "gCvKaE0tTcWtHsPkbRdE"))
    info["status"] = status
    info["id"] = 5 if ucenter == "android" else 6
    info["whiteList"] = ",".join(ip_list)

    if ucenter == "android":
        host = "wapi.android.3qchibi.com"
    elif ucenter == "ios":
        host = "wapi.ios.3qchibi.com"

    url = "http://" + host + ":8088//webApi//setServerStatus.do"
    success, ret_val = http_util.request(url, info)
    if success:
        logging.info(ret_val)
        result = json.loads(ret_val)
        return result.get("rc") == 1000
Пример #3
0
def fill_payment_order(ucenter, order_id, partner_order_id):
    info = {}
    timestamp = int(time.time() * 1000)
    info["timestamp"] = timestamp
    info["sign"] = md5mgr.mkmd5fromstr(
        "%s%s%s%s" %
        (timestamp, order_id, partner_order_id, "$#@$%%eweqwlkfef"))
    info["orderNo"] = order_id
    info["partnerOrderId"] = partner_order_id

    if ucenter == "android":
        host = "wapi.android.3qchibi.com"
    elif ucenter == "wapi" or ucenter == "bapi":
        host = "wapi.ldsg.tkp.wartown.com.tw"
    elif ucenter == "ios":
        host = "wapi.ios.3qchibi.com"

    url = "http://" + host + ":8088//webApi/fillOrder.do"
    logging.debug(url)
    success, ret_val = http_util.request(url, info)
    logging.debug(ret_val)
    if success:
        logging.info(ret_val)
        result = json.loads(ret_val)
        return result.get("rc") == 1000
Пример #4
0
def update_user_level(server_id, user_id, level):
    level = int(level)
    db_config = server_business.get_server_db_connect(server_id=server_id)
    connect = get_connection(db_config)
    cursor = connect.cursor()
    try:
        info = cursor.fetchone(
            "select exp from system_user_level where user_level = %s" %
            (level + 1))
        if info:
            exp = info["exp"] - 10
        else:
            exp = 10000 * 10000

        server = server_business.get_server(server_id)
        host = server.server_host

        path = "/gameApi/updateUserLevel.do"
        logging.debug("host:[%s], path[%s]" % (host, path))
        data = {"userId": user_id, "level": level, "exp": exp}

        post = Post(data, host, path, port=8088)
        content = post.submit(result_keyword=None,
                              get_content=True,
                              debug=True)
        try:
            info = json.loads(content)
            return info.get("rc", 3000) == 1000
        except:
            logging.debug("bad json format:[%s]" % content)
    finally:
        cursor.close()
Пример #5
0
def update_user_level(server_id, user_id, level):
    level = int(level)
    db_config = server_business.get_server_db_connect(server_id=server_id)
    connect = get_connection(db_config)
    cursor = connect.cursor()
    try:
        info = cursor.fetchone("select exp from system_user_level where user_level = %s" % (level + 1))
        if info:
            exp = info["exp"] - 10
        else:
            exp = 10000 * 10000
        
        server = server_business.get_server(server_id)
        host = server.server_host
    
        path = "/gameApi/updateUserLevel.do"
        logging.debug("host:[%s], path[%s]" % (host, path))
        data = {"userId": user_id, "level": level, "exp": exp}
    
        post = Post(data, host, path, port=8088)
        content = post.submit(result_keyword=None, get_content=True, debug=True)
        try:
            info = json.loads(content)
            return info.get("rc", 3000) == 1000
        except:
            logging.debug("bad json format:[%s]" % content)
    finally:
        cursor.close()
Пример #6
0
def user_level_stat(request):
    server_id = request.REQUEST.get("server_id", None)
    date = request.REQUEST.get("date", None)
    if not date:
        date = datetime.now().strftime("%Y-%m-%d")
    logging.debug(u"用户等级统计.date[%s], server_id[%s]" % (date, server_id))

    datas = {}

    if server_id:
        user_level_stat = stat_business.get_user_level_stat(server_id, date)
        if user_level_stat:
            stat_data = json.loads(user_level_stat.data)
            level_infos = []
            for i in range(1, 121):
                new_line = False
                if i % 10 == 0:
                    new_line = True
                level_infos.append({"level": i, "total": stat_data.get(u"%s" % i, 0), "new_line": new_line})
            datas["level_infos"] = level_infos

    datas["date"] = date
    datas["server_id"] = server_id

    return render_to_response(request, "stat/user_level_stat.html", datas)
Пример #7
0
def get_command(client_id):
    client = Client.load(id=client_id)
    if client and client.command:
        command = client.command
        client.command = ""
        client.last_command = command
        client.persist() 
        return json.loads(command)
Пример #8
0
    def get_partner_user_id(self, username):

        url = "http://42.62.4.167:9015/web/api/sdk/third/1/queryuidbyloginname"
        success, ret_val = http_util.request(url, {"param": username})
        if success:
            try:
                _ = json.loads(ret_val)
                return None
            except:
                return ret_val
Пример #9
0
def command_report_detail(detail):
    if not detail:
        return ""
    try:
        infos = json.loads(detail)
        info_list = []
        for info in infos:
            info_list.append("[%s][%s][%s]" % (info[0], info[1].split("/")[-1], u"<font color='green'>成功</font>" if info[2] == 1 else u"<font color='green'>失败</font>"))
        return "<br/>".join(info_list)
    except:
        return detail
Пример #10
0
def sync_server_status(server_zone):
    server_zone = int(server_zone)
    host = server_zone_api_url_map[server_zone]
    url = "http://" + host + ":8088//webApi//updateConfigs.do"
    success, ret_val = http_util.request(url, {})
    if success:
        result = json.loads(ret_val)
        success = result.get("rc") == 1000
    
    logging.debug("success sync url[%s], result[%s]" % (url, success))
    
    return success
Пример #11
0
def block_user(server_id, user_id, due_time):
    info = {}
    info["userId"] = user_id
    info["dueTime"] = due_time

    server = server_business.get_server(server_id=server_id)
    url = "http://" + server.server_host + ":8088//gameApiAdmin/banUser.do"
    success, ret_val = http_util.request(url, info)
    if success:
        result = json.loads(ret_val)
        return result.get("rt") == 1000

    return False
Пример #12
0
def update_user_vip_level(server_id, user_id, vip_level):
    info = {}
    info["userId"] = user_id
    info["vipLevel"] = vip_level

    server = server_business.get_server(server_id=server_id)
    url = "http://" + server.server_host + ":8088//gameApiAdmin/assignVipLevel.do"
    success, ret_val = http_util.request(url, info)
    if success:
        result = json.loads(ret_val)
        return result.get("rt") == 1000

    return False
Пример #13
0
def block_user(server_id, user_id, due_time):
    info = {}
    info["userId"] = user_id
    info["dueTime"] = due_time

    server = server_business.get_server(server_id=server_id)
    url = "http://" + server.server_host + ":8088//gameApiAdmin/banUser.do"
    success, ret_val = http_util.request(url, info)
    if success:
        result = json.loads(ret_val)
        return result.get("rt") == 1000
    
    return False
Пример #14
0
def update_user_vip_level(server_id, user_id, vip_level):
    info = {}
    info["userId"] = user_id
    info["vipLevel"] = vip_level

    server = server_business.get_server(server_id=server_id)
    url = "http://" + server.server_host + ":8088//gameApiAdmin/assignVipLevel.do"
    success, ret_val = http_util.request(url, info)
    if success:
        result = json.loads(ret_val)
        return result.get("rt") == 1000
    
    return False
Пример #15
0
    def send_notice_to_server(self, server_id, content):
        info = {}
        timestamp = int(time.time() * 1000)
        info["timestamp"] = timestamp
        info["sign"] = md5mgr.mkmd5fromstr("%s%s%s" % (content, timestamp, "gCvKaE0tTcWtHsPkbRdE"))
        info["partnerIds"] = "all"
        info["content"] = content

        server = server_business.get_server(server_id=server_id)
        url = "http://" + server.server_host + ":8088//gameApi/sendSysMsg.do"
        success, ret_val = http_util.request(url, info)
        if success:
            result = json.loads(ret_val)
            return result.get("rt") == 1000
Пример #16
0
def command_report_detail(detail):
    if not detail:
        return ""
    try:
        infos = json.loads(detail)
        info_list = []
        for info in infos:
            info_list.append("[%s][%s][%s]" %
                             (info[0], info[1].split("/")[-1],
                              u"<font color='green'>成功</font>" if info[2] == 1
                              else u"<font color='green'>失败</font>"))
        return "<br/>".join(info_list)
    except:
        return detail
Пример #17
0
def get_server_online(redis_connect):
    try:
        redis_cfg = server_util.str_to_redisconfig(redis_connect)
        logging.debug("host[%s], port[%s]" % (redis_cfg['host'], redis_cfg['port']))
        client = redis.Redis(host=redis_cfg['host'], port=redis_cfg['port'], socket_timeout=1)
        s = client.get("ldsg_local_system_status_key")
        if s:
            info = json.loads(s)
            online = info["connCount"]
            return online
    except:
        logging.debug(traceback.format_exc())
        pass
    return 0
Пример #18
0
def user_level_rank_stat(request):
    server_id = request.REQUEST.get("server_id", None)
    date = request.REQUEST.get("date", None)
    if not date:
        date = datetime.now().strftime("%Y-%m-%d")
    logging.debug(u"用户等级排名统计.date[%s], server_id[%s]" % (date, server_id))

    datas = {}

    if server_id:
        user_level_rank_stat = stat_business.get_user_level_rank_stat(server_id, date)
        if user_level_rank_stat:
            infos = json.loads(user_level_rank_stat.data)

    return render_to_response(request, "stat/user_level_rank_stat.html", locals())
Пример #19
0
def user_level_rank_stat(request):
    server_id = request.REQUEST.get('server_id', None)
    date = request.REQUEST.get('date', None)
    if not date:
        date = datetime.now().strftime("%Y-%m-%d")
    logging.debug(u"用户等级排名统计.date[%s], server_id[%s]" % (date, server_id))
    
    datas = {}
    
    if server_id:
        user_level_rank_stat = stat_business.get_user_level_rank_stat(server_id, date)
        if user_level_rank_stat:
            infos = json.loads(user_level_rank_stat.data)
   
    return render_to_response(request, "stat/user_level_rank_stat.html", locals())
Пример #20
0
def get_server_online(redis_connect):
    try:
        redis_cfg = server_util.str_to_redisconfig(redis_connect)
        logging.debug("host[%s], port[%s]" %
                      (redis_cfg['host'], redis_cfg['port']))
        client = redis.Redis(host=redis_cfg['host'],
                             port=redis_cfg['port'],
                             socket_timeout=1)
        s = client.get("ldsg_local_system_status_key")
        if s:
            info = json.loads(s)
            online = info["connCount"]
            return online
    except:
        logging.debug(traceback.format_exc())
        pass
    return 0
Пример #21
0
def get_online(server_id):
    servers = get_server_list(server_id)
    data = {}
    for server in servers:
        if not server:
            continue
        try:
            redis_cfg = str_to_redisconfig(server.redis_connect)
            client = redis.Redis(host=redis_cfg['host'], port=redis_cfg['port'])
            s = client.get("ldsg_local_system_status_key")
            if s:
                info = json.loads(s)
                online = info["connCount"]
                data[server.server_id] = online
        except:
            pass
        
    return data
Пример #22
0
def get_online(server_id):
    servers = get_server_list(server_id)
    data = {}
    for server in servers:
        if not server:
            continue
        try:
            redis_cfg = str_to_redisconfig(server.redis_connect)
            client = redis.Redis(host=redis_cfg['host'],
                                 port=redis_cfg['port'])
            s = client.get("ldsg_local_system_status_key")
            if s:
                info = json.loads(s)
                online = info["connCount"]
                data[server.server_id] = online
        except:
            pass

    return data
Пример #23
0
def user_draw_power_rank(request):
    
    server_id = request.REQUEST.get('server_id', None)
    to_excel = int(request.REQUEST.get('to_excel', 0))
    now = datetime.now()
    date = request.REQUEST.get('start_date', now.strftime("%Y-%m-%d"))
    if server_id:
        infos = stat_business.get_user_draw_power_rank(server_id,date)
        for info in infos:
            jsoninfo = json.loads(info["rank_data"])
        if to_excel == 1:
            datas = []
            datas.append(u"排名,玩家名称,战力")
            for i, info in enumerate(jsoninfo):
                datas.append(u"%s,%s,%s" % (i + 1, info["username"], info["power"]))    
            response = HttpResponse("\n".join(datas), mimetype='application/vnd.ms-excel')
            response['Content-Disposition'] = 'attachment; filename=user_draw_rank_%s.csv' % server_id
            return response

    return render_to_response(request, "stat/user_draw_power_rank.html", locals())
Пример #24
0
def user_draw_power_rank(request):

    server_id = request.REQUEST.get("server_id", None)
    to_excel = int(request.REQUEST.get("to_excel", 0))
    now = datetime.now()
    date = request.REQUEST.get("start_date", now.strftime("%Y-%m-%d"))
    if server_id:
        infos = stat_business.get_user_draw_power_rank(server_id, date)
        for info in infos:
            jsoninfo = json.loads(info["rank_data"])
        if to_excel == 1:
            datas = []
            datas.append(u"排名,玩家名称,战力")
            for i, info in enumerate(jsoninfo):
                datas.append(u"%s,%s,%s" % (i + 1, info["username"], info["power"]))
            response = HttpResponse("\n".join(datas), mimetype="application/vnd.ms-excel")
            response["Content-Disposition"] = "attachment; filename=user_draw_rank_%s.csv" % server_id
            return response

    return render_to_response(request, "stat/user_draw_power_rank.html", locals())
Пример #25
0
def data_sync(server_id, sync_type=1, table=None, sqls=[]):
    """数据同步"
    @param sync_type: 同步类型1:修改 ;2:新增 ;3:删除;4:全表同步 
    @param table:同步的表
    @param sqls:同步的sql
    """
    server = Server.load(server_id=server_id)
    host = server.server_host

    path = "/gameApi/dataSync.do"
    logging.debug("host:[%s], path[%s]" % (host, path))
    data = {"syncType": sync_type, "table": table, "sqls": json.dumps(sqls)}

    post = Post(data, host, path, port=8088)
    content = post.submit(result_keyword=None, get_content=True, debug=True)
    try:
        info = json.loads(content)
        return info.get("rc", 3000) == 1000
    except:
        logging.debug("bad json format:[%s]" % content)
        return False
Пример #26
0
def data_sync(server_id, sync_type=1, table=None, sqls=[]):
    """数据同步"
    @param sync_type: 同步类型1:修改 ;2:新增 ;3:删除;4:全表同步 
    @param table:同步的表
    @param sqls:同步的sql
    """
    server = Server.load(server_id=server_id)
    host = server.server_host

    path = "/gameApi/dataSync.do"
    logging.debug("host:[%s], path[%s]" % (host, path))
    data = {"syncType": sync_type, "table": table, "sqls": json.dumps(sqls)}

    post = Post(data, host, path, port=8088)
    content = post.submit(result_keyword=None, get_content=True, debug=True)
    try:
        info = json.loads(content)
        return info.get("rc", 3000) == 1000
    except:
        logging.debug("bad json format:[%s]" % content)
        return False
Пример #27
0
def main():
    """main"""
    servers = server_business.get_all_server_list()
    date = get_time()
    for server in servers:
        if not server:
            continue
        redis_cfg = str_to_redisconfig(server.redis_connect)
        logging.debug("host[%s], port[%s]" %
                      (redis_cfg['host'], redis_cfg['port']))
        client = redis.Redis(host=redis_cfg['host'], port=redis_cfg['port'])
        s = client.get("ldsg_local_system_status_key")
        if s:
            info = json.loads(s)
            online = info["connCount"]
            cursor = connection.cursor()
            try:
                cursor.execute(
                    "INSERT INTO stat_online(online, stat_time,server_id) VALUES(%d, '%s','%s')"
                    % (online, date, server.server_id))
            finally:
                connection.close()
Пример #28
0
def fill_payment_order(ucenter, order_id, partner_order_id):
    info = {}
    timestamp = int(time.time() * 1000)
    info["timestamp"] = timestamp
    info["sign"] = md5mgr.mkmd5fromstr("%s%s%s%s" % (timestamp, order_id, partner_order_id, "$#@$%%eweqwlkfef"))
    info["orderNo"] = order_id
    info["partnerOrderId"] = partner_order_id


    if ucenter == "android":
        host = "wapi.android.3qchibi.com"
    elif ucenter == "wapi" or ucenter == "bapi":
        host = "wapi.ldsg.tkp.wartown.com.tw"
    elif ucenter == "ios":
        host = "wapi.ios.3qchibi.com"

    url = "http://" + host + ":8088//webApi/fillOrder.do"
    logging.debug(url)
    success, ret_val = http_util.request(url, info)
    logging.debug(ret_val)
    if success:
        logging.info(ret_val)
        result = json.loads(ret_val)
        return result.get("rc") == 1000
Пример #29
0
def system_mail_approve(system_mail_id, approve_user, approve=False):
    system_mail = get_system_mail(system_mail_id)
    if system_mail.status != 0:
        return
    else:
        system_mail.status = 3
        system_mail.persist()
    system_mail.approve_user = approve_user
    system_mail.approve_time = datetime.now()
    result_map = {}
    if approve:
        server_ids = system_mail.server_ids.split(",")
        send_server_ids = []
        for server_id in server_ids:
            mail_info = {}
            mail_info["title"] = system_mail.title
            mail_info["content"] = system_mail.content
            mail_info["toolIds"] = system_mail.tool_ids
            mail_info["lodoIds"] = system_mail.lodo_ids
            mail_info["target"] = system_mail.target
            mail_info["sourceId"] = system_mail.system_mail_id 
            if system_mail.date:
                mail_info["date"] = int(time.mktime(system_mail.date.timetuple())) * 1000
            else:
                mail_info["date"] = int(time.time())
                
            mail_info["partner"] = system_mail.partner_id 
            server = Server.load(server_id=server_id)
            url = "http://" + server.server_host + ":8088/gameApi/sendMail.do?"
            params = {}
            for k, v in mail_info.iteritems():
                if isbasestring(v):
                    params[k] = v.encode("utf8")
                else:
                    params[k] = v
            url = url + urllib.urlencode(params)
            logging.info("server:%s,url:%s" % (server_id, url))
            
            result_map[server_id] = 0
            approve_info = {}
            try:
                ret_val = urllib.urlopen(url).read()
                approve_info[server_id] = ret_val
                result = json.loads(ret_val)
                if result.get("rt") == 1000:
                    send_server_ids.append(server_id)
                    result_map[server_id] = 1
                else:
                    logging.warn(u"邮件发送失败.server_id[%s], msg[%s]" % (server_id, result.get("msg")))
            except:
                approve_info[server_id] = traceback.format_exc()
                logging.error(traceback.format_exc())
                
                
                
        system_mail.status = 1
        system_mail.send_server_ids = ",".join(send_server_ids)
        system_mail.approve_info = json.dumps(approve_info)
    else:
        system_mail.status = 2
        
    system_mail.persist()
    
    return 1, result_map
Пример #30
0
def system_mail_approve(system_mail_id, approve_user, approve=False):
    system_mail = get_system_mail(system_mail_id)
    if system_mail.status != 0:
        return
    else:
        system_mail.status = 3
        system_mail.persist()
    system_mail.approve_user = approve_user
    system_mail.approve_time = datetime.now()
    result_map = {}
    if approve:
        server_ids = system_mail.server_ids.split(",")
        send_server_ids = []
        for server_id in server_ids:
            mail_info = {}
            mail_info["title"] = system_mail.title
            mail_info["content"] = system_mail.content
            mail_info["toolIds"] = system_mail.tool_ids
            mail_info["lodoIds"] = system_mail.lodo_ids
            mail_info["target"] = system_mail.target
            mail_info["sourceId"] = system_mail.system_mail_id
            if system_mail.date:
                mail_info["date"] = int(
                    time.mktime(system_mail.date.timetuple())) * 1000
            else:
                mail_info["date"] = int(time.time())

            mail_info["partner"] = system_mail.partner_id
            server = Server.load(server_id=server_id)
            url = "http://" + server.server_host + ":8088/gameApi/sendMail.do?"
            params = {}
            for k, v in mail_info.iteritems():
                if isbasestring(v):
                    params[k] = v.encode("utf8")
                else:
                    params[k] = v
            url = url + urllib.urlencode(params)
            logging.info("server:%s,url:%s" % (server_id, url))

            result_map[server_id] = 0
            approve_info = {}
            try:
                ret_val = urllib.urlopen(url).read()
                approve_info[server_id] = ret_val
                result = json.loads(ret_val)
                if result.get("rt") == 1000:
                    send_server_ids.append(server_id)
                    result_map[server_id] = 1
                else:
                    logging.warn(u"邮件发送失败.server_id[%s], msg[%s]" %
                                 (server_id, result.get("msg")))
            except:
                approve_info[server_id] = traceback.format_exc()
                logging.error(traceback.format_exc())

        system_mail.status = 1
        system_mail.send_server_ids = ",".join(send_server_ids)
        system_mail.approve_info = json.dumps(approve_info)
    else:
        system_mail.status = 2

    system_mail.persist()

    return 1, result_map