def sign_create_function(request):
    """
        日志豪华签到产出统计
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:

        head_lst = [
            {'width':50,'name':u'我是产出统计!!!!'},
        ]
        if request.method == 'POST':
            start_date = request.POST.get("search_start_date")
            end_date = request.POST.get("search_end_date")
            # uid = request.POST.get("uid_id")
            start_date_date = datetime.datetime.strptime(start_date,"%m/%d/%Y").date()
            end_date_date = datetime.datetime.strptime(end_date,"%m/%d/%Y").date()
            server_id = int(request.POST.get("server_id"))
            channel_id = int(request.POST.get("channel_id"))

            # row_lst, head_lst = sign_create_py.get_table(start_date_date, end_date_date, server_id, channel_id)# uid)
            row_lst,head_lst = []
            server_list, platform_list = server_config._get_server_list()
            return render_to_response("gm/cost_search.html", {'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst, 'head_lst': head_lst,  'search_start_date': start_date, 'search_end_date': end_date, 'channel_list': platform_list, 'server_list': server_list,'cur_server_id':server_id}, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            start_date = now_date_str
            end_date = now_date_str
            server_list, platform_list = server_config._get_server_list()
            return render_to_response("gm/cost_search.html", {'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst, 'head_lst': head_lst,  'search_start_date': start_date, 'search_end_date': end_date,'channel_list': platform_list, 'server_list': server_list}, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #2
0
def cost_search(request):
    """
        GM消费查询
    """
    head_lst = [
        {"width": 50, "name": u"消费时间"},
        {"width": 50, "name": u"账号UID"},
        {"width": 50, "name": u"消耗金币"},
        {"width": 50, "name": u"消耗钻石"},
        {"width": 50, "name": u"消耗物品"},
        {"width": 50, "name": u"服务器ID"},
        {"width": 50, "name": u"平台ID"},
    ]
    if request.method == "POST":
        search_start_date = request.POST.get("search_start_date")
        search_end_date = request.POST.get("search_end_date")
        uid_id = request.POST.get("uid_id")
        start_date = datetime.datetime.strptime(search_start_date, "%m/%d/%Y").date()
        end_date = datetime.datetime.strptime(search_end_date, "%m/%d/%Y").date()
        server_id = int(request.POST.get("server_id"))
        # channel_id = int(request.POST.get("channel_id"))

        row_lst, head_lst = get_cost_search.get_table(start_date, end_date, server_id, uid_id)

        server_list, platform_list = server_config._get_server_list()
        return render_to_response("gm/cost_search.html", locals(), RequestContext(request))
    else:
        row_lst = []
        now_date_str = datetime.date.today().strftime("%m/%d/%Y")
        search_start_date = now_date_str
        search_end_date = now_date_str
        server_list, platform_list = server_config._get_server_list()
        return render_to_response("gm/cost_search.html", locals(), RequestContext(request))
Пример #3
0
def sign_create_function(request):
    """
        日志豪华签到产出统计
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:

        head_lst = [
            {
                'width': 50,
                'name': u'我是产出统计!!!!'
            },
        ]
        if request.method == 'POST':
            start_date = request.POST.get("search_start_date")
            end_date = request.POST.get("search_end_date")
            # uid = request.POST.get("uid_id")
            start_date_date = datetime.datetime.strptime(
                start_date, "%m/%d/%Y").date()
            end_date_date = datetime.datetime.strptime(end_date,
                                                       "%m/%d/%Y").date()
            server_id = int(request.POST.get("server_id"))
            channel_id = int(request.POST.get("channel_id"))

            # row_lst, head_lst = sign_create_py.get_table(start_date_date, end_date_date, server_id, channel_id)# uid)
            row_lst, head_lst = []
            server_list, platform_list = server_config._get_server_list()
            return render_to_response(
                "gm/cost_search.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'search_start_date': start_date,
                    'search_end_date': end_date,
                    'channel_list': platform_list,
                    'server_list': server_list,
                    'cur_server_id': server_id
                }, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            start_date = now_date_str
            end_date = now_date_str
            server_list, platform_list = server_config._get_server_list()
            return render_to_response(
                "gm/cost_search.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'search_start_date': start_date,
                    'search_end_date': end_date,
                    'channel_list': platform_list,
                    'server_list': server_list
                }, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #4
0
def cost_search(request):
    """
        GM消费查询
    """
    head_lst = [
        {
            'width': 50,
            'name': u'消费时间'
        },
        {
            'width': 50,
            'name': u'账号UID'
        },
        {
            'width': 50,
            'name': u'消耗金币'
        },
        {
            'width': 50,
            'name': u'消耗钻石'
        },
        {
            'width': 50,
            'name': u'消耗物品'
        },
        {
            'width': 50,
            'name': u'服务器ID'
        },
        {
            'width': 50,
            'name': u'平台ID'
        },
    ]
    if request.method == 'POST':
        search_start_date = request.POST.get("search_start_date")
        search_end_date = request.POST.get("search_end_date")
        uid_id = request.POST.get("uid_id")
        start_date = datetime.datetime.strptime(search_start_date,
                                                "%m/%d/%Y").date()
        end_date = datetime.datetime.strptime(search_end_date,
                                              "%m/%d/%Y").date()
        server_id = int(request.POST.get("server_id"))
        # channel_id = int(request.POST.get("channel_id"))

        row_lst, head_lst = get_cost_search.get_table(start_date, end_date,
                                                      server_id, uid_id)

        server_list, platform_list = server_config._get_server_list()
        return render_to_response("gm/cost_search.html", locals(),
                                  RequestContext(request))
    else:
        row_lst = []
        now_date_str = datetime.date.today().strftime("%m/%d/%Y")
        search_start_date = now_date_str
        search_end_date = now_date_str
        server_list, platform_list = server_config._get_server_list()
        return render_to_response("gm/cost_search.html", locals(),
                                  RequestContext(request))
Пример #5
0
def get_handbook_info(request):
    """
    {'data_version': '1', 'uid': '1000070187', 'monster_tid_set': set([32, 66, 4, 104, 93, 146, 52, 126, 25, 27, 92, 125, 94, 127])}
    """

    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        # user_name = request.POST.get('user_name').encode('utf-8')
        # user_openid = request.POST.get('user_openid')
        server_id = request.POST.get('server_id')
        # type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        handbook_model = memcache.get_cmem_val(
            cmem_url,
            model_define.HAND_BOOK_MODEL.format(user_id=int(user_uid)))
        print handbook_model
        table_lst = []
        for uid in handbook_model['monster_tid_set']:
            monster_name_lst = []
            _monster_config = game_config.get_monster_config(uid)
            monster_name_lst.append(uid)
            monster_name_lst.append(_monster_config['name'])
            table_lst.append(monster_name_lst)

        return render_to_response("data_edit/handbook_info.html",
                                  {'row_lst': table_lst},
                                  RequestContext(request))

    else:
        # row_list = []
        # type_hidden = 'hidden'
        return render_to_response("data_edit/handbook_info.html", locals(),
                                  RequestContext(request))
Пример #6
0
def change_equip_to_html(request,equip_edit):
    """
        ②
        编辑装备信息
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        will_edit_tid_level = edit_data['level']
        will_edit_tid = int(edit_data['tid'])
        old_edit_data = edit_data
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        item_id_name, item_id_type = game_config.get_item_config_with_id_name()
        monster_id_name = game_config.get_monster_config_with_id_name()
        item_tid_name_lst = []
        for (tid, name) in item_id_name.items():
            item_type = item_id_type[tid]
            if item_type == game_define.ITEM_TYPE_EQUIP:
                content = dict()
                content['tid'] = tid
                content['name'] = name
                item_tid_name_lst.append(content)

    return render_to_response(equip_edit,locals(),RequestContext(request))
Пример #7
0
def change_equip_to_html(request, equip_edit):
    """
        ②
        编辑装备信息
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        will_edit_tid_level = edit_data['level']
        will_edit_tid = int(edit_data['tid'])
        old_edit_data = edit_data
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        item_id_name, item_id_type = game_config.get_item_config_with_id_name()
        monster_id_name = game_config.get_monster_config_with_id_name()
        item_tid_name_lst = []
        for (tid, name) in item_id_name.items():
            item_type = item_id_type[tid]
            if item_type == game_define.ITEM_TYPE_EQUIP:
                content = dict()
                content['tid'] = tid
                content['name'] = name
                item_tid_name_lst.append(content)

    return render_to_response(equip_edit, locals(), RequestContext(request))
Пример #8
0
def add_equip_to_html(request,equip_add):
    """
        ④
        添加装备
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        will_edit_tid_level = edit_data['level']
        will_edit_tid = int(edit_data['tid'])
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        item_id_name, item_id_type = game_config.get_item_config_with_id_name()
        monster_id_name = game_config.get_monster_config_with_id_name()
        item_tid_name_lst = []
        for (tid, name) in item_id_name.items():
            item_type = item_id_type[tid]
            if item_type == game_define.ITEM_TYPE_EQUIP:
                content = dict()
                content['tid'] = tid
                content['name'] = name
                item_tid_name_lst.append(content)
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=int(user_uid)))
        add_data = source['seq_id']
        return render_to_response(equip_add,locals(),RequestContext(request))
Пример #9
0
def get_handbook_info(request):
    """
    {'data_version': '1', 'uid': '1000070187', 'monster_tid_set': set([32, 66, 4, 104, 93, 146, 52, 126, 25, 27, 92, 125, 94, 127])}
    """

    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        # user_name = request.POST.get('user_name').encode('utf-8')
        # user_openid = request.POST.get('user_openid')
        server_id = request.POST.get('server_id')
        # type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        handbook_model = memcache.get_cmem_val(cmem_url, model_define.HAND_BOOK_MODEL.format(user_id=int(user_uid)))
        print handbook_model
        table_lst = []
        for uid in handbook_model['monster_tid_set']:
            monster_name_lst = []
            _monster_config = game_config.get_monster_config(uid)
            monster_name_lst.append(uid)
            monster_name_lst.append(_monster_config['name'])
            table_lst.append(monster_name_lst)

        return render_to_response("data_edit/handbook_info.html", {'row_lst': table_lst}, RequestContext(request))

    else:
        # row_list = []
        # type_hidden = 'hidden'
        return render_to_response("data_edit/handbook_info.html", locals(), RequestContext(request))
Пример #10
0
def add_equip_to_html(request, equip_add):
    """
        ④
        添加装备
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        will_edit_tid_level = edit_data['level']
        will_edit_tid = int(edit_data['tid'])
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        item_id_name, item_id_type = game_config.get_item_config_with_id_name()
        monster_id_name = game_config.get_monster_config_with_id_name()
        item_tid_name_lst = []
        for (tid, name) in item_id_name.items():
            item_type = item_id_type[tid]
            if item_type == game_define.ITEM_TYPE_EQUIP:
                content = dict()
                content['tid'] = tid
                content['name'] = name
                item_tid_name_lst.append(content)
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        source = memcache.get_cmem_val(
            cmem_url, model_define.EQUIP_MODEL.format(user_id=int(user_uid)))
        add_data = source['seq_id']
        return render_to_response(equip_add, locals(), RequestContext(request))
Пример #11
0
def expense_sort_view(request,dir_name,file_name):
    """
    消费排行榜
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        server_list, platform_list = daily_log._get_server_list()
        head_lst = [
            {'width': 50, 'name': u'排名'},
            {'width': 50, 'name': u'UID'},
            {'width': 50, 'name': u'消耗钻石'},
            ]
        if request.method == 'POST':
            search_date = request.POST.get("search_date")
            server_id = int(request.POST.get('server_id'))
            search_date_date = datetime.datetime.strptime(search_date, "%m/%d/%Y").date()
            row_lst = default_get_table.get_table(search_date_date,dir_name,file_name,server_id)
            return render_to_response("gm/expense_sort.html", {'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst,'head_lst': head_lst,'search_date': search_date,'server_list':server_list, 'server_id': server_id}, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            search_date = now_date_str
            return render_to_response("gm/expense_sort.html",{'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst, 'head_lst': head_lst, 'search_date': search_date,'server_list':server_list}, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #12
0
def level_rank_list(request):
    """
        等级排行榜
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        server_list, platform_list = daily_log._get_server_list()
        head_lst = [
        {'width': 50, 'name': u'排名'},
        {'width': 50, 'name': u'角色ID'},
        {'width': 50, 'name': u'等级'},
    ]
        if request.method == 'POST':
            start_date = request.POST.get("start_date")

            start_date_date = datetime.datetime.strptime(start_date, "%m/%d/%Y").date()
            server_id = int(request.POST.get("server_id"))

            # 分表设置显示
            # 总表行
            row_lst =level_rank_list_table.get_table(start_date_date,server_id)

            # server_list, platform_list = daily_log._get_server_list()
            return render_to_response("gm/level_rank_list.html", {'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst, 'head_lst': head_lst, 'start_date': start_date,'server_list': server_list,'server_id': server_id }, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            start_date = now_date_str
            # end_date = now_date_str
            # server_list, platform_list = daily_log._get_server_list()
            return render_to_response("gm/level_rank_list.html", {'account':manager.account,'btn_lst':btn_lst,'row_lst': row_lst, 'head_lst': head_lst, 'start_date': start_date, 'server_list': server_list}, RequestContext(request))

    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #13
0
def index(request, template):
    """  玩家宝物
    author : 全勇男
    {'treasure_items': [
    {'tid': 20006, 'phase': 1, 'level': 43, 'uid': 4, 'level_exp': 1000},
    {'tid': 20005, 'phase': 0, 'level_exp': 0, 'uid': 15, 'level': 1},
    {'tid': 20001, 'phase': 0, 'level': 20, 'uid': 24, 'level_exp': 30400},
    {'tid': 20007, 'phase': 0, 'level': 1, 'uid': 46, 'level_exp': 0},
    {'tid': 20008, 'phase': 0, 'level_exp': 0, 'uid': 47, 'level': 1},
    {'tid': 20004, 'phase': 0, 'level': 1, 'uid': 50, 'level_exp': 0},
    {'tid': 20001, 'phase': 0, 'level': 1, 'uid': 52, 'level_exp': 0}],
    'uid': '1000000950', 'seq': 53}
    """
    add_item_function = 'data_edit.treasure_item_model.{function}'.format(function=add_item.__name__)
    function_name = 'data_edit.treasure_item_model.{function}'.format(function=set_memcache.__name__)
    del_item_function = 'data_edit.treasure_item_model.{function}'.format(function=del_item.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    item_dict_name, item_lst_type = game_config.get_item_config_with_id_name()
    item_dict_name = { key:value for key, value in item_dict_name.items() if item_lst_type[key] == 6}

    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        try:
            if cmem_url:
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_uid))

                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,
                                                   model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=result['uid']))
                    user_uid = user_id = result['uid']
                user_uid = source['uid']
                item_lst = source['treasure_items']

                return render_to_response(template, locals(), RequestContext(request))

        except UnicodeEncodeError:
            return render_to_response(template, locals(), RequestContext(request))

        except TypeError:
            return render_to_response(template, locals(), RequestContext(request))

        except UnboundLocalError:
            return render_to_response(template, locals(), RequestContext(request))

    else:
        row_dict = {}
        return render_to_response(template, locals(), RequestContext(request))
Пример #14
0
def mysql_filter(mysql_dist):
    global CUR_SERVER_ID, CUR_UID_ID
    temp_lst = []

    # if CUR_CHANNEL_ID >= 0:
    #     log_dist = daily_log_dat.filter_logs(log_dist, function=lambda x: x['platform_id'] == CUR_CHANNEL_ID)
    if CUR_SERVER_ID >= 0:
        mysql_dist = daily_log_dat.filter_logs(
            mysql_dist, function=lambda x: x['server_id'] == CUR_SERVER_ID)
    if -1 == CUR_SERVER_ID:
        mysql_dist = mysql_dist

    ser_lst, platform_lst = daily_log._get_server_list(None, None)
    for each_item in mysql_dist:
        user_log_time = each_item['log_time'].strftime("%Y-%m-%d %H:%M:%S")
        user_uid = int(each_item['uid'])
        user_add_rmb = each_item['add_rmb']
        user_order_id = each_item['order_id']
        user_old_rmb = int(each_item['old_rmb'])
        user_server_id = int(each_item['server_id'])
        user_platform_id = int(each_item['platform_id'])

        if user_old_rmb == 0:
            user_first_cost = "是"
        else:
            user_first_cost = "否"
        # 取服务器 平台名字
        user_ser_str, user_platform_str = "", ""
        for each_ser_dict, each_plat_dict in zip(ser_lst, platform_lst):
            if user_platform_id == int(each_plat_dict['id']):
                user_platform_str = each_plat_dict['name']
            if user_server_id == int(each_ser_dict['id']):
                user_ser_str = each_ser_dict['name']
        if CUR_UID_ID:
            if user_uid == CUR_UID_ID:
                row_lst = [
                    user_log_time,
                    user_uid,
                    user_add_rmb,
                    user_order_id,
                    user_first_cost,
                    user_ser_str,
                    user_platform_str,
                ]
                temp_lst.append(row_lst)
        else:
            row_lst = [
                user_log_time,
                user_uid,
                user_add_rmb,
                user_order_id,
                user_first_cost,
                user_ser_str,
                user_platform_str,
            ]
            temp_lst.append(row_lst)

    return temp_lst
Пример #15
0
def mysql_filter(mysql_dist):
    global CUR_SERVER_ID, CUR_UID_ID
    temp_lst = []

    # if CUR_CHANNEL_ID >= 0:
    #     log_dist = daily_log_dat.filter_logs(log_dist, function=lambda x: x['platform_id'] == CUR_CHANNEL_ID)
    if CUR_SERVER_ID >= 0:
        mysql_dist = daily_log_dat.filter_logs(mysql_dist, function=lambda x: x['server_id'] == CUR_SERVER_ID)
    if -1 == CUR_SERVER_ID:
        mysql_dist = mysql_dist

    ser_lst, platform_lst = daily_log._get_server_list(None, None)
    for each_item in mysql_dist:
        user_log_time = each_item['log_time'].strftime("%Y-%m-%d %H:%M:%S")
        user_uid = int(each_item['uid'])
        user_add_rmb = each_item['add_rmb']
        user_order_id = each_item['order_id']
        user_old_rmb = int(each_item['old_rmb'])
        user_server_id = int(each_item['server_id'])
        user_platform_id = int(each_item['platform_id'])

        if user_old_rmb == 0:
            user_first_cost = "是"
        else:
            user_first_cost = "否"
        # 取服务器 平台名字
        user_ser_str, user_platform_str = "", ""
        for each_ser_dict, each_plat_dict in zip(ser_lst, platform_lst):
            if user_platform_id == int(each_plat_dict['id']):
                user_platform_str = each_plat_dict['name']
            if user_server_id == int(each_ser_dict['id']):
                user_ser_str = each_ser_dict['name']
        if CUR_UID_ID:
            if user_uid == CUR_UID_ID:
                row_lst = [
                    user_log_time,
                    user_uid,
                    user_add_rmb,
                    user_order_id,
                    user_first_cost,
                    user_ser_str,
                    user_platform_str,
                ]
                temp_lst.append(row_lst)
        else:
            row_lst = [
                user_log_time,
                user_uid,
                user_add_rmb,
                user_order_id,
                user_first_cost,
                user_ser_str,
                user_platform_str,
            ]
            temp_lst.append(row_lst)

    return temp_lst
Пример #16
0
def sort_rmb_view(request, dir_name, file_name):
    """
    充值排行榜
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        server_list, platform_list = daily_log._get_server_list()
        head_lst = [
            {
                'width': 50,
                'name': u'排名'
            },
            {
                'width': 50,
                'name': u'UID'
            },
            {
                'width': 50,
                'name': u'金额'
            },
        ]
        if request.method == 'POST':
            search_date = request.POST.get("search_date")
            server_id = int(request.POST.get('server_id'))

            search_date_date = datetime.datetime.strptime(
                search_date, "%m/%d/%Y").date()
            row_lst = default_get_table.get_table(search_date_date, dir_name,
                                                  file_name, server_id)
            return render_to_response(
                "gm/sort_rmb.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'server_id': server_id,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'server_list': server_list,
                    'search_date': search_date
                }, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            search_date = now_date_str
            return render_to_response(
                "gm/sort_rmb.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'search_date': search_date,
                    'server_list': server_list
                }, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
def get_player_reward_seven_level_info(request):
    """
        玩家开服七天等级
    """
    server_list, platform_list = daily_log._get_server_list(None,None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        if cmem_url:

                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url,model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(user_id=user_uid))
                    print source

                if source:
                    each_config_dic ={}
                    reward_lst = source['single_activity_has_reward_lst']
                    new_reward_config_lst = game_config.get_all_reward_seven_level_config()
                    each_config_dic = new_reward_config_lst[str(1)]
                    if reward_lst:
                        for reward_id in reward_lst:
                            each_config_dic = new_reward_config_lst[str(reward_id)]
                            key_lst = new_reward_config_lst['1'].keys()
                            dic = {}
                            lst = []
                            print "沙发沙发沙发",key_lst
                            for each_key in key_lst:
                                lst = []
                                for _key ,_val in new_reward_config_lst.items():
                                    lst.append(_val[each_key])
                                dic[each_key] = lst
                            print "好了没",dic

        return render_to_response("data_edit/player_reward_seven_level_info.html",locals(),RequestContext(request))
    else:
        return render_to_response("data_edit/player_reward_seven_level_info.html",locals(),RequestContext(request))
Пример #18
0
def index(request, template):
    """  类型看格式
    author : 全勇男
    7天登录


    """

    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        try:
            if cmem_url:
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.LOGIN_7_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url, model_define.LOGIN_7_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,
                                                   model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    source = memcache.get_cmem_val(cmem_url, model_define.LOGIN_7_MODEL.format(user_id=result['uid']))
                    user_uid = user_id = result['uid']
                row_dict = collections.OrderedDict()

                row_dict = {u'7天登录ID列表': source['reward_id_lst']}
                return render_to_response(template, locals(), RequestContext(request))

        except UnicodeEncodeError:
            return render_to_response(template, locals(), RequestContext(request))

        except TypeError:
            return render_to_response(template, locals(), RequestContext(request))

        except UnboundLocalError:
            return render_to_response(template, locals(), RequestContext(request))

    else:
        row_dict = {}
        return render_to_response(template, locals(), RequestContext(request))
Пример #19
0
def stage_player_behavior(request, dir_name):
    """
        玩家行为分析
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        event_list = []
        for i in game_define.EVENT_LOG_ACTION_DICT:
            event_list.append({
                'id':
                int(game_define.EVENT_LOG_ACTION_DICT[i].split('-')[0]),
                'name':
                game_define.EVENT_LOG_ACTION_DICT[i].split('-')[1]
            })
        head_lst = []

        server_list, platform_list = daily_log._get_server_list()
        if request.method == 'POST':
            uid = request.POST.get('search_player_id')
            event = request.POST.get('event_id')
            sreach_data = request.POST.get("sreach_data")
            server_id = int(request.POST.get('server_id'))
            search_player_id = request.POST.get('search_player_id')
            cur_event_id = int(event.split('-')[0])
            try:
                start_date_date = datetime.datetime.strptime(
                    sreach_data, "%m/%d/%Y").date()
            except UnicodeEncodeError:
                return HttpResponseRedirect(
                    '/Tyranitar6/gm/stage_player_behavior/')
            except ValueError:
                return HttpResponseRedirect(
                    '/Tyranitar6/gm/stage_player_behavior/')
            head_lst, row_lst = behevior.get_table(uid, event, start_date_date,
                                                   server_id, dir_name)

            return render_to_response("gm/stage_player_behevior.html",
                                      locals(), RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            sreach_data = now_date_str
            return render_to_response("gm/stage_player_behevior.html",
                                      locals(), RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #20
0
def delete_equip_to_html(request, equip_del):
    """
        ☂ (3)
        删除装备
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        delete_data = edit_data
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        return render_to_response(equip_del, locals(), RequestContext(request))
Пример #21
0
def delete_equip_to_html(request, equip_del):
    """
        ☂ (3)
        删除装备
    """
    if request.method == 'POST':
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        edit_data = eval(request.POST.get("edit_data"))
        delete_data = edit_data
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        return render_to_response(equip_del,locals(),RequestContext(request))
Пример #22
0
def set_user_memcache(request, template):
    '''
    返回修改后的数据
    '''
    server_list, platform_list = daily_log._get_server_list(None, None)

    if request.method == 'POST':
        state = int(request.POST.get('state'))
        uid = request.POST.get('uid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            source = memcache.get_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=uid))
            source['state'] = state
            a = memcache.put_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=uid), source)
        type_hidden = 'hidden'
        return render_to_response(template, locals(), RequestContext(request))
    else:
        row_list = []
        return render_to_response(template, locals(), RequestContext(request))
Пример #23
0
def stage_player_behavior(request,dir_name):
    """
        玩家行为分析
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        event_list = []
        for i in game_define.EVENT_LOG_ACTION_DICT:
            event_list.append({'id':int(game_define.EVENT_LOG_ACTION_DICT[i].split('-')[0]),
                                'name':game_define.EVENT_LOG_ACTION_DICT[i].split('-')[1]
                                })
        head_lst = []

        server_list, platform_list = daily_log._get_server_list()
        if request.method == 'POST':
            uid = request.POST.get('search_player_id')
            event = request.POST.get('event_id')
            sreach_data = request.POST.get("sreach_data")
            server_id = int(request.POST.get('server_id'))
            search_player_id = request.POST.get('search_player_id')
            cur_event_id = int(event.split('-')[0])
            try:
                start_date_date = datetime.datetime.strptime(sreach_data, "%m/%d/%Y").date()
            except UnicodeEncodeError:
                return HttpResponseRedirect('/Tyranitar6/gm/stage_player_behavior/')
            except ValueError:
                return HttpResponseRedirect('/Tyranitar6/gm/stage_player_behavior/')
            head_lst,row_lst = behevior.get_table(uid,event,start_date_date,server_id,dir_name)

            return render_to_response("gm/stage_player_behevior.html", locals(), RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            sreach_data = now_date_str
            return render_to_response("gm/stage_player_behevior.html",locals(), RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #24
0
def get_player_treasure_function(request, player_treasure_edit):
    """
        玩家夺宝数据编辑
        source {
        'grab_msg_lst': [{'id': 100001, 'name': '\xe8\xbd\xbb\xe7\xa6\xbb', 'time': 1435990209.13243}, {'id': 100002, 'name': '400501g', 'time': 1436947184.663864}],
        'last_refresh_time': 1437884014.024381,
        'reset_treasure_date': datetime.date(2015, 7, 26),
        'uid': '1000000950',
        'open_synthesize_set': set([20001, 20004, 20005]),

        'treasure_point': 8,
        'reset_treasure_count': 0,
        'treasure_fragment_dict': {100001: 0, 100002: 1, 100003: 2, 100014: 2, 100015: 1, 83001: 1, 100026: 0, 83003: 1, 100028: 0, 100029: 0, 100030: 0, 100031: 0, 100032: 0, 100033: 0, 100034: 0, 100035: 0, 100036: 0, 100037: 2, 100038: 0, 100039: 2, 100040: 0, 100041: 0, 100042: 1, 100043: 0, 100044: 0, 100045: 0, 100046: 0, 100047: 0, 100048: 0, 100025: 0, 100027: 0}}
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_treasure.{function}'.format(function=set_player_treasure_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'数量'},
        ]
        if cmem_url:
            try:
                source = dict()

                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=user_uid))
                if source:
                    # print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    treasure_lst = []
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ----------------- 已合成宝石 注:没有数目
                    open_synthesize_set = source.get('open_synthesize_set', [])
                    for treasure_id in open_synthesize_set:
                        treasure_lst.append(game_config.get_item_config(treasure_id)['name'])
                    treasure_lst = [[u'已合成宝石', u' '.join(treasure_lst)]]
                    # ------------------重置夺宝时间
                    try:
                        reset_treasure_date = source['reset_treasure_date'].strftime('%Y-%m-%d')   # 重置夺宝时间
                        reset_treasure_date_lst = [[u'重置夺宝时间', reset_treasure_date]]
                    except:
                        reset_treasure_date_lst = []
                    # ------------------最后刷新时间
                    try:
                        last_refresh_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(source['last_refresh_time']))  # 最后刷新时间
                        last_refresh_time_lst = [[u'最后刷新时间', last_refresh_time]]
                    except:
                        last_refresh_time_lst = []

                    # ---------------- 被抢夺信息
                    try:
                        grab_msg_lst = source.get('grab_msg_lst', [])   # 被抢夺信息 [{'id':x,name:'','time':3}{}]
                        _tmp_grab_lst = []
                        num = 0
                        for each_msg_dict in grab_msg_lst:
                            num += 1
                            # 字符串拼接 例如:“在时间:2015-07-04 14:10:09 被玩家:轻离 掠夺物品:100001一个”
                            _tmp_grab_lst.append([u'被抢夺信息0'+str(num), '在时间:'+str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(each_msg_dict['time'])))+' 被玩家:'+each_msg_dict['name']+' 掠夺物品:'+str(each_msg_dict['id']) + '一个'])
                        new_grab_msg_lst = [_tmp_grab_lst]
                    except:
                        new_grab_msg_lst = []
                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if treasure_lst:
                        all_immutable_lst.append(treasure_lst)
                    if reset_treasure_date_lst:
                        all_immutable_lst.append(reset_treasure_date_lst)
                    if last_refresh_time_lst:
                        all_immutable_lst.append(last_refresh_time_lst)
                    if new_grab_msg_lst:
                        all_immutable_lst.extend(new_grab_msg_lst)

                    # -------------------------------------------------------------------------------------------------------------------#
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}
                    treasure_point = source.get('treasure_point', 0)  # 夺宝次数
                    reset_treasure_count = source.get('reset_treasure_count', 0)  # 夺宝刷新次数
                    # 宝石碎片id + num
                    treasure_fragment_dict = source.get('treasure_fragment_dict', {})  # 夺宝宝石碎片字典 暂时没有物品名字列表 TODO 加上宝石碎片物品列表
                    if treasure_fragment_dict:
                        for treasure_debris_id, _value in treasure_fragment_dict.items():
                            row_dict[treasure_debris_id] = {'name': '宝石碎片_' + str(treasure_debris_id), 'num': _value}
                    # 夺宝剩余次数
                    row_dict['treasure_point'] = {'name': u'夺宝剩余次数', 'num': treasure_point}
                    # 夺宝刷新次数
                    row_dict['reset_treasure_count'] = {'name': u'夺宝刷新次数', 'num': reset_treasure_count}
                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(player_treasure_edit, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(player_treasure_edit, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(player_treasure_edit, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(player_treasure_edit, locals(), RequestContext(request))
Пример #25
0
def get_player_reward_seven_level_info(request):
    """
        玩家开服七天等级
    """
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        if cmem_url:

            source = {}
            if len(user_uid):
                source = memcache.get_cmem_val(
                    cmem_url,
                    model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(
                        user_id=user_uid))
            elif len(user_name):
                name = hashlib.md5(
                    user_name.encode('utf-8')).hexdigest().upper()
                key = model_define.PLAYER_NICK_NAME_MODEL.format(
                    player_nick_md5=name)
                user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                source = memcache.get_cmem_val(
                    cmem_url,
                    model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(
                        user_id=user_uid))
            elif len(user_openid):
                result = memcache.get_cmem_val(
                    cmem_url,
                    model_define.ACCOUNT_MAPPING_MODEL.format(
                        open_id=user_openid))
                user_uid = result['uid']
                source = memcache.get_cmem_val(
                    cmem_url,
                    model_define.PLAYER_REWARD_SEVEN_LEVEL_MODEL.format(
                        user_id=user_uid))
                print source

            if source:
                each_config_dic = {}
                reward_lst = source['single_activity_has_reward_lst']
                new_reward_config_lst = game_config.get_all_reward_seven_level_config(
                )
                each_config_dic = new_reward_config_lst[str(1)]
                if reward_lst:
                    for reward_id in reward_lst:
                        each_config_dic = new_reward_config_lst[str(reward_id)]
                        key_lst = new_reward_config_lst['1'].keys()
                        dic = {}
                        lst = []
                        print "沙发沙发沙发", key_lst
                        for each_key in key_lst:
                            lst = []
                            for _key, _val in new_reward_config_lst.items():
                                lst.append(_val[each_key])
                            dic[each_key] = lst
                        print "好了没", dic

        return render_to_response(
            "data_edit/player_reward_seven_level_info.html", locals(),
            RequestContext(request))
    else:
        return render_to_response(
            "data_edit/player_reward_seven_level_info.html", locals(),
            RequestContext(request))
Пример #26
0
def get_player_activity_one_charge_function(request, templates):
    """
        玩家运营数据编辑 单笔充值

        source {'reward_end_date': datetime.date(2015, 8, 15),
                'one_charge_complete': [2], # 可完成
                'version': u'20150716_14_09',
                'has_reward_lst': [2],      # 完成并交接
                'uid': '1000103005'}

        reward_time_recharge_short_config
                {"monsterId": 0, "stone": 0, "pokeBall": 5, "num1": 1000,
                 "gold": 200000000, "num3": 0, "item2": 0, "money": 20000,
                  "item1": 80008, "equipmentId": 0, "experience": 0,
                   "item3": 0, "monsterStar": 0, "num2": 0, "id": 16}
    """

    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_activity_one_charge.{function}'.format(function=set_player_activity_one_charge_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'1代表已有——0代表没有'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_ONE_RECHARGE_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_ONE_RECHARGE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_ONE_RECHARGE_MODEL.format(user_id=user_uid))
                if source:
                    print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime('%Y-%m-%d')   # 运营活动奖励结束时间
                        reward_end_date_lst = [[u'运营活动奖励结束时间', reward_end_date]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']   # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []

                    # ---------------- 玩家领取的奖励
                    try:
                        reward_lst = source.get('has_reward_lst', [])                   # [1,2,3,4,5]
                        reward_str = ''                                                                 # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_one_recharge_config()  # 策划填的配置表
                        if reward_lst:
                            for reward_id in reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(reward_id)]       # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items():           # 遍历每个key 值
                                    if each_int_value:                                      # 有值
                                        if key in CUR_CON_STR_DIT:                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():           # 是特殊处理key
                                                each_item_str = game_config.get_item_config(each_int_value)['name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[SPECIAL_CON_STR_LST[key]]              # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            reward_lst = [[u'玩家已奖励信息',reward_str]]
                            # print reward_lst
                    except:
                        reward_lst = []
                    # ---------------- 玩家已完成充值
                    try:
                        complete_reward_lst = source.get('one_charge_complete', [])                   # [1,2,3,4,5]
                        reward_str = ''                                                                 # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_one_recharge_config()  # 策划填的配置表
                        if complete_reward_lst:
                            for reward_id in complete_reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(reward_id)]       # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items():           # 遍历每个key 值
                                    if each_int_value:                                      # 有值
                                        if key in CUR_CON_STR_DIT:                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():           # 是特殊处理key
                                                each_item_str = game_config.get_item_config(each_int_value)['name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[SPECIAL_CON_STR_LST[key]]              # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            complete_reward_lst = [[u'玩家可领取奖励信息',reward_str]]
                            # print complete_reward_lst
                    except:
                        complete_reward_lst = []
                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    if complete_reward_lst:
                        all_immutable_lst.append(complete_reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}
                    # one_charge_complete has_reward_lst
                    # 单笔充值 可改元素 完成未交任务表 完成并交任务表
                    _one_charge_complete = source.get('one_charge_complete', [])
                    _has_reward_lst = source.get('has_reward_lst', [])
                    cur_reward_config_lst = game_config.get_all_reward_one_recharge_config()        # 策划填的配置表

                    # key1 ==> "has_reward_lst$$1"
                    for i in xrange(1, len(cur_reward_config_lst)+1):
                        key_str = string.join(['has_reward_lst', str(i)], '$$')
                        key_str1 = string.join(['one_charge_complete', str(i)], '$$')
                        if i in _one_charge_complete:
                            row_dict[key_str1] = {'name': u'可领奖励%s状态(单笔充值%s元)'%(str(i), cur_reward_config_lst[str(i)]['money']), 'num': 1}
                        else:
                            row_dict[key_str1] = {'name': u'可领奖励%s状态(单笔充值%s元)'%(str(i), cur_reward_config_lst[str(i)]['money']), 'num': 0}
                        if i in _has_reward_lst:
                            row_dict[key_str] = {'name': u'已领奖励%s状态(单笔充值%s元)'%(str(i), cur_reward_config_lst[str(i)]['money']), 'num': 1}
                        else:
                            row_dict[key_str] = {'name': u'已领奖励%s状态(单笔充值%s元)'%(str(i), cur_reward_config_lst[str(i)]['money']), 'num': 0}
                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(templates, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
Пример #27
0
def index(request, equip_info_edit):
    """
        ①
        玩家装备数据
        此函数功能:1.显示最新数据 2.修改装备 3.删除装备 4.添加装备
    """
    # 获取当前管理员
    # 1.公用代码部分 即每次修改 删除 添加 数据后 显示最新数据
    manager = GameManager.get_by_request(request)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':

        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))

        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            print 'cmem_url', cmem_url
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_name):
                    name = hashlib.md5(
                        user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                if source:
                    """以上是公用部分,以下是修改 删除 添加"""
                    # 2.修改装备
                    try:
                        old_edit_data = eval(request.POST.get("old_edit_data"))
                        old_edit_data.pop('name')  # 得到编辑的源数据
                        will_edit_tid = request.POST.get(
                            "will_edit_tid")  # 要改成装备tid
                        will_edit_tid_level = request.POST.get(
                            "will_edit_tid_level")  # 要改的装备的等级
                        result = edit_function(cmem_url, source, old_edit_data,
                                               int(will_edit_tid),
                                               int(will_edit_tid_level))
                        if result:
                            # 操作日志记录
                            insert_action_change_equip(manager, str(server_id),
                                                       str(source['uid']),
                                                       old_edit_data['uid'],
                                                       old_edit_data['tid'],
                                                       will_edit_tid,
                                                       old_edit_data['level'],
                                                       will_edit_tid_level)
                    except:
                        # 不是编辑 或 数据不对 跳过
                        pass

                    # 3.删除装备 删除比较简单不单写函数
                    try:
                        delete_data = eval(request.POST.get('delete_data'))
                        delete_data.pop('name')
                        if delete_data:
                            # 操作日志记录
                            insert_action_delete_equip(manager, str(server_id),
                                                       str(user_uid),
                                                       delete_data['uid'],
                                                       delete_data['tid'],
                                                       delete_data['level'])

                            source['equips'].remove(delete_data)
                            result = memcache.put_cmem_val(
                                cmem_url,
                                model_define.EQUIP_MODEL.format(
                                    user_id=int(user_uid)), source)
                    except:
                        # 不是删除 或 数据不对 跳过
                        pass

                    # 4.添加装备 添加比较简单不单写函数
                    try:
                        add_data = eval(request.POST.get('add_data'))
                        if add_data:
                            will_edit_tid = request.POST.get("will_edit_tid")
                            will_edit_tid_level = request.POST.get(
                                "will_edit_tid_level")
                            if will_edit_tid and will_edit_tid_level:
                                equip_config = game_config.get_equipment_config(
                                    int(will_edit_tid))
                                source['equips'].append({
                                    'uid':
                                    int(add_data),
                                    'tid':
                                    int(will_edit_tid),
                                    'level':
                                    int(will_edit_tid_level),
                                    'type':
                                    int(equip_config['type'])
                                })
                                # 下个装备序列计数加1
                                source['seq_id'] = int(add_data) + 1
                                result = memcache.put_cmem_val(
                                    cmem_url,
                                    model_define.EQUIP_MODEL.format(
                                        user_id=int(user_uid)), source)
                                # 操作日志记录
                                insert_action_add_equip(
                                    manager, str(server_id), str(user_uid),
                                    add_data, will_edit_tid,
                                    will_edit_tid_level)
                                print "Finish"
                    except:
                        # 不是添加 或 数据不对 跳过
                        pass
                """以下是公用部分,以上是修改 删除 添加"""
                if source:
                    row_list = source['equips']
                    for each_value in row_list:
                        equip_config = game_config.get_item_config(
                            each_value['tid'])
                        each_value['name'] = equip_config['name']

                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))
            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        return render_to_response(equip_info_edit, locals(),
                                  RequestContext(request))
Пример #28
0
def index(request, equip_info_edit):
    """
        ①
        玩家装备数据
        此函数功能:1.显示最新数据 2.修改装备 3.删除装备 4.添加装备
    """
    # 获取当前管理员
    # 1.公用代码部分 即每次修改 删除 添加 数据后 显示最新数据
    manager = GameManager.get_by_request(request)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':

        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))

        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            print 'cmem_url', cmem_url
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_name):
                    name = hashlib.md5(user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                if source:
                    """以上是公用部分,以下是修改 删除 添加"""
                    # 2.修改装备
                    try:
                        old_edit_data = eval(request.POST.get("old_edit_data"))
                        old_edit_data.pop('name')                                       # 得到编辑的源数据
                        will_edit_tid = request.POST.get("will_edit_tid")               # 要改成装备tid
                        will_edit_tid_level = request.POST.get("will_edit_tid_level")   # 要改的装备的等级
                        result = edit_function(cmem_url, source, old_edit_data, int(will_edit_tid), int(will_edit_tid_level))
                        if result:
                            # 操作日志记录
                            insert_action_change_equip(manager, str(server_id), str(source['uid']), old_edit_data['uid'], old_edit_data['tid'], will_edit_tid, old_edit_data['level'], will_edit_tid_level)
                    except:
                        # 不是编辑 或 数据不对 跳过
                        pass

                    # 3.删除装备 删除比较简单不单写函数
                    try:
                        delete_data = eval(request.POST.get('delete_data'))
                        delete_data.pop('name')
                        if delete_data:
                            # 操作日志记录
                            insert_action_delete_equip(manager, str(server_id), str(user_uid), delete_data['uid'], delete_data['tid'], delete_data['level'])

                            source['equips'].remove(delete_data)
                            result = memcache.put_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=int(user_uid)), source)
                    except:
                        # 不是删除 或 数据不对 跳过
                        pass

                    # 4.添加装备 添加比较简单不单写函数
                    try:
                        add_data = eval(request.POST.get('add_data'))
                        if add_data:
                            will_edit_tid = request.POST.get("will_edit_tid")
                            will_edit_tid_level = request.POST.get("will_edit_tid_level")
                            if will_edit_tid and will_edit_tid_level:
                                equip_config = game_config.get_equipment_config(int(will_edit_tid))
                                source['equips'].append({
                                    'uid': int(add_data),
                                    'tid': int(will_edit_tid),
                                    'level': int(will_edit_tid_level),
                                    'type': int(equip_config['type'])
                                    })
                                # 下个装备序列计数加1
                                source['seq_id'] = int(add_data) + 1
                                result = memcache.put_cmem_val(cmem_url,model_define.EQUIP_MODEL.format(user_id=int(user_uid)), source)
                                # 操作日志记录
                                insert_action_add_equip(manager, str(server_id), str(user_uid), add_data, will_edit_tid, will_edit_tid_level)
                                print "Finish"
                    except:
                        # 不是添加 或 数据不对 跳过
                        pass

                """以下是公用部分,以上是修改 删除 添加"""
                if source:
                    row_list = source['equips']
                    for each_value in row_list:
                        equip_config = game_config.get_item_config(each_value['tid'])
                        each_value['name'] = equip_config['name']

                return render_to_response(equip_info_edit, locals(), RequestContext(request))
            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(), RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        return render_to_response(equip_info_edit, locals(), RequestContext(request))
Пример #29
0
def get_player_team_function(request, templates):
    """
        玩家队伍数据编辑
        source {
        'team_equips': [[182, 94, 1430, 524, 1723], [190, 1344, 1353, 370, 488], [114, 1716, 1715, 461, 489], [113, 1343, 1352, 193, 487], [497, 1342, 1354, 523, 0]],
        'team_treasure_2': [[52, 4], [0, 50], [0, 0], [0, 0], [24, 0]],
        'team_monsters': [6536, 448, 0, 0, 7747],
        'active_band_id_lst': [],
        'uid': '1000000950'
        }
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_team.{function}'.format(function=set_player_team_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'队伍位置'},
            {'name': u'宠物'},
            {'name': u'装备1'},
            {'name': u'装备2'},
            {'name': u'装备3'},
            {'name': u'装备4'},
            {'name': u'装备5'},
            {'name': u'宝石1'},
            {'name': u'宝石2'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=user_uid))
                if source:
                    print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # 只修改队伍装备 队伍宝石 宠物
                    # 队伍位置信息 五个位置
                    for i in xrange(5):
                        try:
                            row_dict[i] = {'name': u'队伍位置' + '_' + str(i + 1),                         # 位置i
                                                  'monsters': source['team_monsters'][i],                 # 宠物i
                                                  'equips_1': source['team_equips'][i][0],                # 装备1
                                                  'equips_2': source['team_equips'][i][1],                # 装备2
                                                  'equips_3': source['team_equips'][i][2],                # 装备3
                                                  'equips_4': source['team_equips'][i][3],                # 装备4
                                                  'equips_5': source['team_equips'][i][4],                # 装备5
                                                  'treasures_1': source['team_treasure_2'][i][0],         # 宝石1
                                                  'treasures_2': source['team_treasure_2'][i][1],         # 宝石2
                                          }
                        except:
                            print i

                    # 取玩家现有宠物表 装备表 宝石表
                    # ------------宠物表
                    # monsters_id_name_dict = {}
                    # monsters_source = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=user_uid))
                    # print 'monsters_source', monsters_source

                    # ------------装备表
                    equips_id_name_dict = {}
                    equips_source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    print 'equips_source_start', equips_source, 'equips_source_end'
                    # diec = collections.OrderedDict()
                    # for each_euqip_dict in equips_source['equips']:
                    #         diec[each_euqip_dict['uid']] = {
                    #             each_euqip_dict['tid'],
                    #             each_euqip_dict['type'],
                    #
                    #         }
                    # print diec

                return render_to_response(templates, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
Пример #30
0
def add_monster(request):
    """
        增加宠物数据
        {'generation': 1,  'star_level_rate': 0.02083, 'createTime': datetime.datetime(2015, 5, 31, 9, 12, 51, 761554)}

        evo_level 4 <type 'int'>
        star_level_exp 16 <type 'int'>
        skillsExp [0, 0] <type 'list'>
        level 54 <type 'int'>
        playerID 1000095298 <type 'str'>
        effort 2 <type 'int'>
        starLevel 3 <type 'int'> "4"
        sex 0 <type 'int'>
        generation 1 <type 'int'>
        individual [1, 0, 1, 0, 0, 0] <type 'list'>
        evo_sun_stone 96 <type 'int'>
        skillsLevel [6, 10] <type 'list'>
        exp 11739 <type 'int'>
        personality 11 <type 'int'>
        tid 25 <type 'int'>
        uid 1 <type 'int'>
        star_level_rate 0.02083 <type 'float'>
        maxLevel 60 <type 'int'>
        createTime 2015-05-31 09:12:51.761554 <type 'datetime.datetime'>
        evo_fail_count 0 <type 'int'>
    """
    manager = GameManager.get_by_request(request)
    if request.method == 'GET':
        user_id = request.GET.get('user_id')
        server_id = request.GET.get('server_id')
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        # 获取宠物tid和名字对应列表
        monster_id_name = game_config.get_monster_config_with_id_name()
        monster_id_name_lst = []
        for (tid, name) in monster_id_name.items():
            content = dict()
            content['tid'] = tid
            content['name'] = name + "_" + str(tid)
            monster_id_name_lst.append(content)
        monster_id_name_lst = sorted(monster_id_name_lst,
                                     cmp=lambda x, y: cmp(x['tid'], y['tid']))

        monster_model = memcache.get_cmem_val(
            cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))
        monster_uid = monster_model['seq_id']

        return render_to_response(
            "data_edit/add_monster.html", {
                'user_id': user_id,
                'server_id': server_id,
                'monster_uid': monster_uid,
                'monster_id_name_lst': monster_id_name_lst
            }, RequestContext(request))
    elif request.method == 'POST':
        # 获取对应值
        user_id = str(request.POST.get('user_id'))
        monster_uid = int(request.POST.get('monster_uid'))
        server_id = int(request.POST.get('server_id'))
        monster_tid = int(request.POST.get("tid"))
        star_level = int(request.POST.get("star_level"))
        level = int(request.POST.get("level"))

        # 创建一个新宠物
        result = create_monster(user_id, monster_uid, server_id, monster_tid,
                                star_level, level)
        # 操作日志记录
        insert_action_create_monster(manager, server_id, user_id, monster_uid,
                                     monster_tid, star_level, level)

        # 创建完成返回宠物查询页面
        function_name = 'data_edit.monster_info_edit.{function}'.format(
            function=set_memcache.__name__)
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        cmem_url = server_define.CMEM_MAP[int(server_id)]
        monster_model = memcache.get_cmem_val(
            cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))

        # 获取宠物相关最高值
        uid = monster_model['uid']
        monster_high_star_level = monster_model['monster_high_star_level']
        monster_kind = monster_model['monster_kind']
        monster_high_level = monster_model['monster_high_level']
        monster_high_quality = monster_model['monster_high_quality']

        all_monsters = monster_model['monsters']
        table_lst = []
        head_lst = [
            {
                'width': 50,
                'name': u'玩家ID'
            },
            {
                'width': 50,
                'name': u'宠物最高星级'
            },
            {
                'width': 50,
                'name': u'宠物最高等级'
            },
            {
                'width': 50,
                'name': u'宠物最高品质'
            },
            {
                'width': 50,
                'name': u'宠物种类个数'
            },
        ]
        row_lst = [
            uid, monster_high_star_level, monster_high_level,
            monster_high_quality,
            len(monster_kind)
        ]
        table_lst.append(row_lst)

        for _monster in all_monsters:
            _monster_config = game_config.get_monster_config(_monster['tid'])
            _monster['name'] = _monster_config['name']

        type_hidden = 'visible'
        # return HttpResponseRedirect("data_edit/monster_info_edit.html")
        return render_to_response(
            "data_edit/monster_info_edit.html", {
                "server_list": server_list,
                "user_id": user_id,
                'server_id': int(server_id),
                'row_lst': table_lst,
                'head_lst': head_lst,
                'monster_lst': all_monsters,
                'function_name': function_name,
                'type_hidden': type_hidden
            }, RequestContext(request))
Пример #31
0
def get_player_activity_holiday_shop_function(request, templates):
    """
        玩家运营数据编辑 假日商店
        source {'reward_end_date': datetime.date(2015, 8, 15),
                'num_dict': {2: 3, 3: 2, 5: 1, 7: 1},
                'version': u'20150716_22_09',
                'uid': '1000103005'}
        holiday_shop_config
                {"goldGet": 0, "stoneGet": 0, "stoneNeed": 50, "idItemGet": 86001, "numItemGet": 50,
                 "numItemNeed": 0, "idItemNeed": 0, "leftTimes": 1, "freeDrawGet": 0, "goldNeed": 0, "id": 12}}
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_activity_holiday_shop.{function}'.format(function=set_player_activity_holiday_shop_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'数量'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_HOLIDAY_SHOP_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_HOLIDAY_SHOP_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_HOLIDAY_SHOP_MODEL.format(user_id=user_uid))
                if source:
                    # print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime('%Y-%m-%d')   # 运营活动奖励结束时间
                        reward_end_date_lst = [[u'运营活动奖励结束时间', reward_end_date]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']   # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []
                    # ---------------- 玩家已触发购买信息-------------------------------------
                    try:
                        completed_dic = source.get('num_dict', {})                # 已兑换信息表
                        reward_lst = []
                        for shop_even_id, get_item_num in completed_dic.items():  # 事件字典
                            reward_str = ''                                       # 字符串
                            if completed_dic:
                                cur_shop_even_id_config_dic = game_config.get_holiday_shop_config_with_id(int(shop_even_id))  # 策划填的配置表中的一条
                                for key, each_int_value in cur_shop_even_id_config_dic.items():             # 遍历每个key 与 值
                                    if each_int_value:                                                      # 有值
                                        if key in CUR_CON_STR_DIT:                                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():                           # 特殊处理key
                                                if u'idItemGet' == key:  # 商城兑换物品要加“兑换”字符串
                                                    each_item_str = u'兑换——'
                                                    each_item_str += game_config.get_item_config(each_int_value)['name']    # 取物品名
                                                    each_item_str += u": "
                                                    each_item_val = cur_shop_even_id_config_dic[SPECIAL_CON_STR_LST[key]]  # 取数量
                                                else:
                                                    each_item_str = game_config.get_item_config(each_int_value)['name']    # 取物品名
                                                    each_item_str += u": "
                                                    each_item_val = cur_shop_even_id_config_dic[SPECIAL_CON_STR_LST[key]]  # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += u'已经兑换次数:' + str(get_item_num)
                                reward_str += '-----------'

                            reward_lst.append([u'玩家已触发商城事件ID_'+str(shop_even_id),reward_str])
                            # print reward_lst
                    except:
                        completed_dic = {}
                    # ---------------- 玩家已触发购买信息-------------------------------------

                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#

                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}

                    # ---------------- 商城所有可购买次数修改-------------------------------------
                    player_completed_dic = source.get('num_dict', {})
                    # 便利商店购买次数
                    for each_eve_id, each_eve_dic in (game_config.get_all_holiday_shop_config()).items():
                        _each_item_str = ""
                        # 1.已触发的购买事件 修改
                        if int(each_eve_id) in player_completed_dic.keys():     # 玩家已触发商城购买ID事件
                            for _each_key, _each_value in each_eve_dic.items():
                                if _each_value:
                                    if u"idItemGet" == _each_key:  # 物品
                                        _each_item_str += game_config.get_item_config(_each_value)['name']    # 取物品名
                                    elif _each_key in SHOP_BUY_NOT_ITEM_LST:  # 非物品
                                        _each_item_str = SHOP_BUY_NOT_ITEM_LST[_each_key]

                            row_dict[int(each_eve_id)] = {'name': u'便利商店事件__%s__<%s>__<购买次数上限%s>' % (str(each_eve_id), _each_item_str, each_eve_dic.get('leftTimes',-1)), 'num': player_completed_dic[int(each_eve_id)]}
                        # 2.未触发的购买事件 修改
                        else:                                                   # 玩家未触发商城购买ID事件 要显示未触发的所有
                            for _each_key, _each_value in each_eve_dic.items():
                                if _each_value:  # 物品
                                    if u"idItemGet" == _each_key:  # 物品
                                        _each_item_str += game_config.get_item_config(_each_value)['name']    # 取物品名
                                    elif _each_key in SHOP_BUY_NOT_ITEM_LST:  # 非物品
                                        _each_item_str = SHOP_BUY_NOT_ITEM_LST[_each_key]
                            row_dict[int(each_eve_id)] = {'name': u'便利商店事件__%s__<%s>__<购买次数上限%s>' % (str(each_eve_id), _each_item_str, each_eve_dic.get('leftTimes',-1)), 'num': 0}

                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(templates, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
Пример #32
0
def level_rank_list(request):
    """
        等级排行榜
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        server_list, platform_list = daily_log._get_server_list()
        head_lst = [
            {
                'width': 50,
                'name': u'排名'
            },
            {
                'width': 50,
                'name': u'角色ID'
            },
            {
                'width': 50,
                'name': u'等级'
            },
        ]
        if request.method == 'POST':
            start_date = request.POST.get("start_date")

            start_date_date = datetime.datetime.strptime(
                start_date, "%m/%d/%Y").date()
            server_id = int(request.POST.get("server_id"))

            # 分表设置显示
            # 总表行
            row_lst = level_rank_list_table.get_table(start_date_date,
                                                      server_id)

            # server_list, platform_list = daily_log._get_server_list()
            return render_to_response(
                "gm/level_rank_list.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'start_date': start_date,
                    'server_list': server_list,
                    'server_id': server_id
                }, RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            start_date = now_date_str
            # end_date = now_date_str
            # server_list, platform_list = daily_log._get_server_list()
            return render_to_response(
                "gm/level_rank_list.html", {
                    'account': manager.account,
                    'btn_lst': btn_lst,
                    'row_lst': row_lst,
                    'head_lst': head_lst,
                    'start_date': start_date,
                    'server_list': server_list
                }, RequestContext(request))

    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #33
0
def index(request, template):
    """
    数据后台 --- 用户管理

    搜索 显示 memcahe 抓去到的信息

    source['openid']                    <type 'str'>
    source['last_login_time']           <type 'int'>
    source['last_login_cookie_time']    <type 'int'>
    source['platform_id']               <type 'int'>
    source['state']                     <type 'int'>
    source['last_login_distance_days']  <type 'int'>
    source['add_time']                  <type 'datetime.datetime'>
    source['last_player_time']          <type 'float'>
    source['name']                      <type 'str'>
    source['uid']                       <type 'int'>
    """

    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':

        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))

        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        state_list = game_define.USER_STATE_NAME_DICT


        if cmem_url:
            try:
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url,model_define.USER_MODEL.format(user_id=user_uid))
                    print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    source = memcache.get_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=result['uid']))

                state_id = source['state']

                date_array = datetime.datetime.utcfromtimestamp(source.get('last_player_time',0))
                last_player_time = date_array.strftime("%Y-%m-%d %H:%M:%S")
                if last_player_time == '1970-01-01 00:00:00':
                    last_player_time = 'None'
                row_dict = collections.OrderedDict()
                row_dict[u'uid'] = {'name': u'UID', 'value': source.get('uid','None')}
                row_dict[u'openid'] = {'name': u'OpenID', 'value': source.get('openid','None')}
                row_dict[u'add_time'] = {'name': u'安装时间', 'value': source.get('add_time','None')}
                row_dict[u'platform_id'] = {'name': u'玩家平台', 'value': source.get('platform_id','None')}
                row_dict[u'last_player_time'] = {'name': u'最后游戏时间', 'value': last_player_time}
                row_dict[u'state'] = {'name': u'当前状态', 'value': source.get('state','None')}
                return render_to_response(template, locals(), RequestContext(request))
            except UnicodeEncodeError:
                return render_to_response(template, locals(), RequestContext(request))

            except TypeError:
                return render_to_response(template, locals(), RequestContext(request))

            except UnboundLocalError:
                return render_to_response(template, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(template, locals(), RequestContext(request))
Пример #34
0
def index(request, template):
    """  类型看格式
    {'data_version': '3',
    'uid': '1000105733',
    #循环取出物品中文名字在前台显示。
    'items': {
    81025: 2,
    80008: 21,
    80009: 31,
    80010: 4,
    80011: 2,
    80012: 1,
    80013: 1,
    80014: 0,
    80015: 0,
    81056: 13,
    80302: 198,
    80303: 1087,
    80048: 125,
    80306: 297,
    81086: 16,
    81098: 10,
    82006: 11,
    82007: 20,
    82008: 20,
    81113: 9,
    80101: 3,
    80102: 5,
    80103: 0,
    81010: 11
    }}
    """
    item_lst = collections.OrderedDict()
    item_dict_name, item_lst_type = game_config.get_item_config_with_id_name()
    add_item_function = 'data_edit.items_info.{function}'.format(
        function=add_item.__name__)
    function_name = 'data_edit.items_info.{function}'.format(
        function=set_memcache.__name__)
    del_item_function = 'data_edit.items_info.{function}'.format(
        function=del_item.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        if cmem_url:
            try:
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ITEM_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ITEM_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ITEM_MODEL.format(user_id=result['uid']))
                    user_uid = user_id = result['uid']
                row_dict = collections.OrderedDict()

                for _key, _value in source['items'].items():
                    row_dict[_key] = {
                        'name': game_config.get_item_config(_key)['name'],
                        'num': _value
                    }

                return render_to_response(template, locals(),
                                          RequestContext(request))

            except UnicodeEncodeError:
                return render_to_response(template, locals(),
                                          RequestContext(request))

            except TypeError:
                return render_to_response(template, locals(),
                                          RequestContext(request))
            except UnboundLocalError:
                return render_to_response(template, locals(),
                                          RequestContext(request))
    else:
        row_list = []

    return render_to_response(template, locals(), RequestContext(request))
def get_player_catch_monster_function(request, player_catch_monster_edit):
    """
        玩家抓宠副本编辑
        source
        {'catch_monster_stage_id_lst': [40501, 40801, 40802],
         'catch_monster_stage_lst': [1, 6, 1],
          'last_refresh_date': datetime.date(2015, 7, 25),
           'uid': '1000101754'
            }
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_catch_monster.{function}'.format(function=set_player_catch_monster_function.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'副本名称'},
            {'name': u'攻打次数'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=user_uid))
                if source:
                    # print 'source', source

                    row_dict = collections.OrderedDict()  # 有序字典
                    return_uid = user_uid
                    last_refresh_date = source.get('last_refresh_date', datetime.date(0001, 01, 01)).strftime('%Y-%m-%d')
                    for stage_id, stage_count in zip(source['catch_monster_stage_id_lst'], source['catch_monster_stage_lst']):
                        stage_config = game_config.get_stages_config(int(stage_id))
                        try:
                            row_dict[stage_id] = {'name': stage_config['stageInfo'] + '_' + str(stage_config['id']),
                                                  'num': stage_count,
                                                  }
                        except:
                            print stage_id, stage_count
                else:
                    # 数据为空 返回空表
                    if user_uid:
                        return_uid = user_uid
                    else:
                        user_uid = "None"
                    last_refresh_date = 'None'
                    row_dict = {'name': 'None', 'num': 'None'}
                # print row_dict
                return render_to_response(player_catch_monster_edit, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(player_catch_monster_edit, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(player_catch_monster_edit, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(player_catch_monster_edit, locals(), RequestContext(request))
Пример #36
0
def index(request,zone_info_edit):
    """
        玩家区域查询
    """
    # reload(sys)
    # sys.setdefaultencoding('utf-8')
    # manager = GameManager.get_by_request(request)
    # btn_lst = manager.check_admin_permission()

    server_list, platform_list = daily_log._get_server_list(None,None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")

        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        # state_list = game_define.USER_STATE_NAME_DICT
        # print state_list

        if cmem_url:
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.ZONE_MODEL.format(user_id=user_uid))
                    print source
                elif len(user_name):
                    name = hashlib.md5(user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url,model_define.ZONE_MODEL.format(user_id=user_uid))
                    print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    source = memcache.get_cmem_val(cmem_url, model_define.ZONE_MODEL.format(user_id=result['uid']))
                    print source

                if source:
                    row_dict = collections.OrderedDict()
                    # row_dict = {1001:{'id':222}}
                    for _key,_value in source['zones_dict'].items():
                        print _key , _value
                        # if _value['normal_rank'] == 0:
                        #     _value['normal_rank'] = "娃娃完美金冠通关"      或者可以换成  u'娃娃完美金冠通关’
                        # elif _value['normal_rank'] == -1:
                        #     _value['normal_rank'] = "娃儿"                      同上
                        # elif _value['normal_rank'] == None:
                        #     _value['normal_rank'] = "瓜娃子你不是金冠啊"               同上
                                         #两种方法转换成汉字输出   字典或者if判断    都是以normal为例
                        row_dict[_key] ={'name':game_config.get_zones_config(_key)['name'],
                                         'normal_pass_reward':REWARD_NAME.get(_value['normal_pass_reward']),
                                         'normal_gold_crown_reward':REWARD_NAME.get(_value['normal_gold_crown_reward']),
                                         'hard_pass_reward':REWARD_NAME.get(_value['hard_pass_reward']),
                                         'hard_gold_crown_reward':REWARD_NAME.get(_value['hard_gold_crown_reward']),
                                         # 'normal_rank':STAGE_PASS_NAME.get(_value['normal_rank'],u'已通关'),
                                         # 'hero_rank':STAGE_PASS_NAME.get(_value['hero_rank'],u'已通关'),
                                         'normal_rank':STAGE_PASS_NAME.get(_value['normal_rank'],u'已通关'),
                                         'hero_rank':STAGE_PASS_NAME.get(_value['hero_rank'],u'已通关'),
                                         }

                return render_to_response(zone_info_edit, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(zone_info_edit, locals(), RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(zone_info_edit, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        # print locals()
        return render_to_response(zone_info_edit, locals(), RequestContext(request))
Пример #37
0
def get_stage_data_function(request, player_stage_edit):
    """
        玩家关卡数据编辑
        {
        'data_version': '2',
         'stages': {30211: {'num': 0, 'id': 30211, 'rank': -1, 'buy_count': 0},30085: {'num': 0, 'id': 30085, 'rank': 0, 'buy_count': 0},}
        'uid': '1000099826',
        'last_reset_time': datetime.date(2015, 7, 24)
        }
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_stage_edit.{function}'.format(
        function=set_stage_data_function.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {
                'name': u'副本名称'
            },
            {
                'name': u'攻打次数'
            },
            {
                'name': u'是否已开启'
            },
            {
                'name': u'重置次数'
            },
        ]
        if cmem_url:
            try:
                source = dict()

                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.STAGE_MODEL.format(user_id=user_uid))
                    return_uid = user_uid
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_uid = user_uid
                    return_name = user_name
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.STAGE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    user_uid = result['uid']
                    return_uid = user_uid
                    return_openid = user_openid
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.STAGE_MODEL.format(user_id=return_uid))
                if source:
                    # print 'source', source

                    row_dict = collections.OrderedDict()  # 有序字典

                    for stage_id, stage_state in source['stages'].items():
                        stage_config = game_config.get_stages_config(
                            int(stage_id))
                        try:
                            row_dict[stage_id] = {
                                'name':
                                stage_config['stageInfo'] + '_' +
                                str(stage_config['id']),
                                'num':
                                stage_state.get('num', 'None'),
                                'rank':
                                stage_state.get('rank', 'None'),
                                'buy_count':
                                stage_state.get('buy_count', 'None'),
                            }
                        except:
                            print stage_id, stage_state
                return render_to_response(player_stage_edit, locals(),
                                          RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(player_stage_edit, locals(),
                                          RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(player_stage_edit, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(player_stage_edit, locals(),
                                  RequestContext(request))
Пример #38
0
def get_everyday_vip_reward_function(request, everyday_vip_reward):
    """
        每日VIP奖励时间
        {'uid': '1000099826', 'reward_date': None}
    """
    # 以函数的指针方式传递函数并调用
    """注: 每日vip不处理数据只显示"""
    # function_name = 'data_edit.everyday_vip_reward.{function}'.format(function=set_everyday_vip_reward_data_function.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {
                'name': u'VIP_uid'
            },
            {
                'name': u'领取时间'
            },
        ]
        if cmem_url:
            try:
                source = dict()

                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.DAILY_VIP_REWARD_MODEL.format(
                            user_id=user_uid))
                    return_uid = user_uid
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_uid = user_uid
                    return_name = user_name
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.DAILY_VIP_REWARD_MODEL.format(
                            user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    user_uid = result['uid']
                    return_uid = user_uid
                    return_openid = user_openid
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.DAILY_VIP_REWARD_MODEL.format(
                            user_id=return_uid))
                if source:
                    # print 'source', source
                    import copy
                    _source = copy.deepcopy(source)
                    if _source['reward_date']:
                        _source['reward_date'] = _source[
                            'reward_date'].strftime('%Y-%m-%d')
                    else:
                        _source['reward_date'] = u'今天还未领取'
                    row_dict = collections.OrderedDict()  # 有序字典
                    row_dict = [_source]
                    # print row_dict, "llllllllllllllllllllllll", source
                return render_to_response(everyday_vip_reward, locals(),
                                          RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(everyday_vip_reward, locals(),
                                          RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(everyday_vip_reward, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(everyday_vip_reward, locals(),
                                  RequestContext(request))
Пример #39
0
def get_everyday_vip_reward_function(request, everyday_vip_reward):
    """
        每日VIP奖励时间
        {'uid': '1000099826', 'reward_date': None}
    """
    # 以函数的指针方式传递函数并调用
    """注: 每日vip不处理数据只显示"""
    # function_name = 'data_edit.everyday_vip_reward.{function}'.format(function=set_everyday_vip_reward_data_function.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = "请输入uid"
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == "POST":
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name").encode("utf-8")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [{"name": u"VIP_uid"}, {"name": u"领取时间"}]
        if cmem_url:
            try:
                source = dict()

                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=user_uid)
                    )
                    return_uid = user_uid
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_uid = user_uid
                    return_name = user_name
                    source = memcache.get_cmem_val(
                        cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=user_uid)
                    )
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid)
                    )
                    user_uid = result["uid"]
                    return_uid = user_uid
                    return_openid = user_openid
                    source = memcache.get_cmem_val(
                        cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=return_uid)
                    )
                if source:
                    # print 'source', source
                    import copy

                    _source = copy.deepcopy(source)
                    if _source["reward_date"]:
                        _source["reward_date"] = _source["reward_date"].strftime("%Y-%m-%d")
                    else:
                        _source["reward_date"] = u"今天还未领取"
                    row_dict = collections.OrderedDict()  # 有序字典
                    row_dict = [_source]
                    # print row_dict, "llllllllllllllllllllllll", source
                return render_to_response(everyday_vip_reward, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = "hidden"
                return render_to_response(everyday_vip_reward, locals(), RequestContext(request))

            except TypeError:
                type_hidden = "hidden"
                return render_to_response(everyday_vip_reward, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = "hidden"
        return render_to_response(everyday_vip_reward, locals(), RequestContext(request))
Пример #40
0
def add_monster(request):
    """
        增加宠物数据
        {'generation': 1,  'star_level_rate': 0.02083, 'createTime': datetime.datetime(2015, 5, 31, 9, 12, 51, 761554)}

        evo_level 4 <type 'int'>
        star_level_exp 16 <type 'int'>
        skillsExp [0, 0] <type 'list'>
        level 54 <type 'int'>
        playerID 1000095298 <type 'str'>
        effort 2 <type 'int'>
        starLevel 3 <type 'int'> "4"
        sex 0 <type 'int'>
        generation 1 <type 'int'>
        individual [1, 0, 1, 0, 0, 0] <type 'list'>
        evo_sun_stone 96 <type 'int'>
        skillsLevel [6, 10] <type 'list'>
        exp 11739 <type 'int'>
        personality 11 <type 'int'>
        tid 25 <type 'int'>
        uid 1 <type 'int'>
        star_level_rate 0.02083 <type 'float'>
        maxLevel 60 <type 'int'>
        createTime 2015-05-31 09:12:51.761554 <type 'datetime.datetime'>
        evo_fail_count 0 <type 'int'>
    """
    manager = GameManager.get_by_request(request)
    if request.method == "GET":
        user_id = request.GET.get("user_id")
        server_id = request.GET.get("server_id")
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        # 获取宠物tid和名字对应列表
        monster_id_name = game_config.get_monster_config_with_id_name()
        monster_id_name_lst = []
        for (tid, name) in monster_id_name.items():
            content = dict()
            content["tid"] = tid
            content["name"] = name + "_" + str(tid)
            monster_id_name_lst.append(content)
        monster_id_name_lst = sorted(monster_id_name_lst, cmp=lambda x, y: cmp(x["tid"], y["tid"]))

        monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))
        monster_uid = monster_model["seq_id"]

        return render_to_response(
            "data_edit/add_monster.html",
            {
                "user_id": user_id,
                "server_id": server_id,
                "monster_uid": monster_uid,
                "monster_id_name_lst": monster_id_name_lst,
            },
            RequestContext(request),
        )
    elif request.method == "POST":
        # 获取对应值
        user_id = str(request.POST.get("user_id"))
        monster_uid = int(request.POST.get("monster_uid"))
        server_id = int(request.POST.get("server_id"))
        monster_tid = int(request.POST.get("tid"))
        star_level = int(request.POST.get("star_level"))
        level = int(request.POST.get("level"))

        # 创建一个新宠物
        result = create_monster(user_id, monster_uid, server_id, monster_tid, star_level, level)
        # 操作日志记录
        insert_action_create_monster(manager, server_id, user_id, monster_uid, monster_tid, star_level, level)

        # 创建完成返回宠物查询页面
        function_name = "data_edit.monster_info_edit.{function}".format(function=set_memcache.__name__)
        server_list, platform_list = daily_log._get_server_list(None, None)
        server_list.remove(server_list[0])

        cmem_url = server_define.CMEM_MAP[int(server_id)]
        monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))

        # 获取宠物相关最高值
        uid = monster_model["uid"]
        monster_high_star_level = monster_model["monster_high_star_level"]
        monster_kind = monster_model["monster_kind"]
        monster_high_level = monster_model["monster_high_level"]
        monster_high_quality = monster_model["monster_high_quality"]

        all_monsters = monster_model["monsters"]
        table_lst = []
        head_lst = [
            {"width": 50, "name": u"玩家ID"},
            {"width": 50, "name": u"宠物最高星级"},
            {"width": 50, "name": u"宠物最高等级"},
            {"width": 50, "name": u"宠物最高品质"},
            {"width": 50, "name": u"宠物种类个数"},
        ]
        row_lst = [uid, monster_high_star_level, monster_high_level, monster_high_quality, len(monster_kind)]
        table_lst.append(row_lst)

        for _monster in all_monsters:
            _monster_config = game_config.get_monster_config(_monster["tid"])
            _monster["name"] = _monster_config["name"]

        type_hidden = "visible"
        # return HttpResponseRedirect("data_edit/monster_info_edit.html")
        return render_to_response(
            "data_edit/monster_info_edit.html",
            {
                "server_list": server_list,
                "user_id": user_id,
                "server_id": int(server_id),
                "row_lst": table_lst,
                "head_lst": head_lst,
                "monster_lst": all_monsters,
                "function_name": function_name,
                "type_hidden": type_hidden,
            },
            RequestContext(request),
        )
Пример #41
0
def get_monster_lst(request):
    """
    数据后台 --- 宠物信息

    seq_id  <type 'int'>
    uid  <type 'str'>
    monster_high_star_level  <type 'int'>
    monster_kind <type 'list'>
    data_version  <type 'str'>
    monster_high_level  <type 'int'>
    monster_high_quality  <type 'int'>
    monsters <type 'str'>
    [
        evo_level 4 <type 'int'>
        star_level_exp 16 <type 'int'>
        skillsExp [0, 0] <type 'list'>
        level 54 <type 'int'>
        playerID 1000095298 <type 'str'>
        effort 2 <type 'int'>
        starLevel 3 <type 'int'>
        sex 0 <type 'int'>
        generation 1 <type 'int'>
        individual [1, 0, 1, 0, 0, 0] <type 'list'>
        evo_sun_stone 96 <type 'int'>
        skillsLevel [6, 10] <type 'list'>
        exp 11739 <type 'int'>
        personality 11 <type 'int'>
        tid 25 <type 'int'>
        uid 1 <type 'int'>
        star_level_rate 0.02083 <type 'float'>
        maxLevel 60 <type 'int'>
        createTime 2015-05-31 09:12:51.761554 <type 'datetime.datetime'>
        evo_fail_count 0 <type 'int'>
    ]
    list中都是int
    HpIndividual = 0
    AttackIndividual = 1
    DefenceIndividual = 2
    SpcAttackIndividual = 3
    SpcDefenceIndividual = 4
    SpeedIndividual = 5
    """
    # 获取当前管理员
    manager = GameManager.get_by_request(request)

    function_name = "data_edit.monster_info_edit.{function}".format(function=set_memcache.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == "POST":
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name").encode("utf-8")
        user_openid = request.POST.get("user_openid")
        server_id = request.POST.get("server_id")
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        table_lst = []

        if len(user_uid):
            monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=int(user_uid)))
        elif len(user_name):
            name = hashlib.md5(user_name).hexdigest().upper()
            key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
            user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
            monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=user_uid))
        elif len(user_openid):
            result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
            monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=result["uid"]))
        # 宠物相关最高值
        uid = monster_model["uid"]
        monster_high_star_level = monster_model["monster_high_star_level"]
        monster_kind = monster_model["monster_kind"]
        monster_high_level = monster_model["monster_high_level"]
        monster_high_quality = monster_model["monster_high_quality"]
        all_monsters = monster_model["monsters"]
        head_lst = [
            {"width": 50, "name": u"玩家ID"},
            {"width": 50, "name": u"宠物最高星级"},
            {"width": 50, "name": u"宠物最高等级"},
            {"width": 50, "name": u"宠物最高品质"},
            {"width": 50, "name": u"宠物种类个数"},
        ]
        row_lst = [uid, monster_high_star_level, monster_high_level, monster_high_quality, len(monster_kind)]
        table_lst.append(row_lst)

        for _monster in all_monsters:
            _monster_config = game_config.get_monster_config(_monster["tid"])
            _monster["name"] = _monster_config["name"]

        type_hidden = "visible"
        return render_to_response(
            "data_edit/monster_info_edit.html",
            {
                "server_list": server_list,
                "user_uid": user_uid,
                "server_id": int(server_id),
                "row_lst": table_lst,
                "head_lst": head_lst,
                "monster_lst": all_monsters,
                "function_name": function_name,
                "type_hidden": type_hidden,
            },
            RequestContext(request),
        )

    else:
        # row_list = []
        type_hidden = "hidden"
        return render_to_response("data_edit/monster_info_edit.html", locals(), RequestContext(request))
Пример #42
0
def index(request, zone_info_edit):
    """
        玩家区域查询
    """
    # reload(sys)
    # sys.setdefaultencoding('utf-8')
    # manager = GameManager.get_by_request(request)
    # btn_lst = manager.check_admin_permission()

    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")

        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        # state_list = game_define.USER_STATE_NAME_DICT
        # print state_list

        if cmem_url:
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ZONE_MODEL.format(user_id=user_uid))
                    print source
                elif len(user_name):
                    name = hashlib.md5(
                        user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ZONE_MODEL.format(user_id=user_uid))
                    print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ZONE_MODEL.format(user_id=result['uid']))
                    print source

                if source:
                    row_dict = collections.OrderedDict()
                    # row_dict = {1001:{'id':222}}
                    for _key, _value in source['zones_dict'].items():
                        print _key, _value
                        # if _value['normal_rank'] == 0:
                        #     _value['normal_rank'] = "娃娃完美金冠通关"      或者可以换成  u'娃娃完美金冠通关’
                        # elif _value['normal_rank'] == -1:
                        #     _value['normal_rank'] = "娃儿"                      同上
                        # elif _value['normal_rank'] == None:
                        #     _value['normal_rank'] = "瓜娃子你不是金冠啊"               同上
                        #两种方法转换成汉字输出   字典或者if判断    都是以normal为例
                        row_dict[_key] = {
                            'name':
                            game_config.get_zones_config(_key)['name'],
                            'normal_pass_reward':
                            REWARD_NAME.get(_value['normal_pass_reward']),
                            'normal_gold_crown_reward':
                            REWARD_NAME.get(
                                _value['normal_gold_crown_reward']),
                            'hard_pass_reward':
                            REWARD_NAME.get(_value['hard_pass_reward']),
                            'hard_gold_crown_reward':
                            REWARD_NAME.get(_value['hard_gold_crown_reward']),
                            # 'normal_rank':STAGE_PASS_NAME.get(_value['normal_rank'],u'已通关'),
                            # 'hero_rank':STAGE_PASS_NAME.get(_value['hero_rank'],u'已通关'),
                            'normal_rank':
                            STAGE_PASS_NAME.get(_value['normal_rank'], u'已通关'),
                            'hero_rank':
                            STAGE_PASS_NAME.get(_value['hero_rank'], u'已通关'),
                        }

                return render_to_response(zone_info_edit, locals(),
                                          RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(zone_info_edit, locals(),
                                          RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(zone_info_edit, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        # print locals()
        return render_to_response(zone_info_edit, locals(),
                                  RequestContext(request))
Пример #43
0
def get_union_stage_function(request, templates):
    """
        联盟关卡:
        source {
        'union_stage_chest':  #通关宝箱个数=当前人数+10 [{'id': 9, 'name': '', 'uid': 0}, {'id': 14, 'name': '', 'uid': 0},
                                                      {'id': 14, 'name': '', 'uid': 0}, {'id': 16, 'name': '', 'uid': 0}, {'id': 1, 'name': '', 'uid': 0},
                                                      {'id': 14, 'name': '', 'uid': 0}, {'id': 7, 'name': '', 'uid': 0}, {'id': 19, 'name': '', 'uid': 0},
                                                      {'id': 3, 'name': '', 'uid': 0}, {'id': 25, 'name': '', 'uid': 0}, {'id': 19, 'name': '', 'uid': 0}
                                                    ],
          'stage_dat': {70001: [50000, 50000, 50000, 50000, 100000], 70002: [50000, 50000, 50000, 50000, 100000], 70003: [50000, 50000, 50000, 50000, 100000], 70004: [50000, 50000, 50000, 50000, 100000], 70005: [50000, 50000, 50000, 50000, 100000], 70006: [0, 150000, 0, 0, 0]},
          'union_stage_damage': {'1000110497': {'uid': '1000110497', 'dmg': 450000}},
          'damage_rank': [{'uid': '1000099479', 'dmg': 0}],
          'union_stage_killer': {70002: '1000110497', 70006: '1000110497'},
          'union_stage_reward_config_lst': None,

          'union_top_pass_stage_level_time': 0,
          'union_max_user_num': 30,
          'uid': '3016',
          'union_next_target_stage_level': 1,
          'stage_cur_hp': 1650000,
          'stage_total_hp': 1650000,
          'union_target_stage_level': 1,
          'union_open_stage_level': 1,
          'union_top_pass_stage_level': 0,
          'last_union_stage_refresh_datetime': datetime.datetime(2015, 8, 3, 18, 0),
          'union_user_num': 6
          }

    def_attrs = dict(
            uid=None,
            union_user_num=1,   # 联盟人数
            union_max_user_num=1,   # 联盟最高人数
            # 关卡部分
            last_union_stage_refresh_datetime=None,   # 联盟关卡刷新时间
            union_target_stage_level=1,        # 联盟目标关卡
            union_next_target_stage_level=1,   # 盟主设定的目标关卡
            union_top_pass_stage_level=0,      # 联盟通关的最高级关卡
            union_top_pass_stage_level_time=0,  # 联盟最高关卡完成时间
            stage_dat=dict(),  # 关卡数据
            stage_total_hp=0,  # 总体生命值(几个关卡的HP总和)
            stage_cur_hp=0,  # 当前生命值(几个关卡的当前HP总和)
            union_open_stage_level=1,   # 公会开启关卡

            union_stage_chest=[],   # 关卡宝箱
            union_stage_reward_config_lst=None,    # 宝箱部分配置表

            union_stage_damage=dict(),      # 联盟关卡伤害数据
            damage_rank=[],      # 伤害排行

            # 击杀显示
            union_stage_killer=dict(),      # 联盟关卡击杀
    )

    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.union_stage.{function}'.format(
        function=set_union_stage_function.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        union_uid = request.POST.get('union_uid')
        union_name = request.POST.get('union_name').encode('utf-8')
        print union_name
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {
                'name': u'条目'
            },
            {
                'name': u'内容'
            },
        ]
        if cmem_url:
            try:
                source = dict()
                if len(union_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.UNION_STAGE_CAS_MODEL.format(
                            union_id=union_uid))
                    return_uid = union_uid
                elif len(union_name):
                    name = hashlib.md5(union_name).hexdigest().upper()
                    key = model_define.UNION_NAME_MODEL.format(
                        union_name_md5=name)
                    union_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_uid = union_uid
                    return_name = union_name
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.UNION_STAGE_CAS_MODEL.format(
                            union_id=union_uid))
                if source:
                    print 'source', source

                    row_dict = collections.OrderedDict()  # 有序字典
                    # --------------------------------------显示部分------------------------------------------------
                    # 17条
                    # 普通选项(key:单值) 11条 其中2条需要取公会名字 2条需要转换时间
                    nor_lst = []
                    for _each_nor_key, _each_name in NORMAL_DICT.items():
                        # 1.处理日期
                        _value = source[_each_nor_key]
                        if 'union_top_pass_stage_level_time' == _each_nor_key:
                            if _value:
                                _value = time.strftime('%Y-%m-%d %H:%M:%S',
                                                       time.localtime(_value))
                        if 'last_union_stage_refresh_datetime' == _each_nor_key:
                            if _value:
                                _value = _value.strftime('%Y-%m-%d %H:%M:%S')
                        # 2.处理关卡id

                        nor_lst.extend([[_each_name, _value]])

                    all_immutable_lst = []
                    if nor_lst:
                        all_immutable_lst.append(nor_lst)
                    # --------------------------------------可修改部分----------------------------------------------

                return render_to_response(templates, locals(),
                                          RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(),
                                          RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
Пример #44
0
def index(request, template):
    """  玩家私信
    author : 全勇男
    {'new_label': True, #已读未读
    'private_mail': [{'content': u'\u6211\u5df2\u7ecf\u63a5\u53d7\u4e86\u60a8\u7684\u597d\u53cb\u9080\u8bf7\uff0c\u5927\u5bb6\u4e00\u8d77\u73a9\u800d\u5427\uff01',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328576.698478},
    {'content': 'fkjdshfkdsfdsf ',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328605.817033},
    {'content': 'wenni fdfg dg dg dgd',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328616.180619},
    {'content': 'dgdf gdfg d',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328619.498057},
    {'content': 'dg dgdg dgdgd d',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328623.004101},
    {'content': 'gfhgfhfh gfhfh d h',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328626.179098},
    {'content': 'hgf hf hgf ',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328629.125485}],
    'uid': '1000110564'}
    """
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        try:
            if cmem_url:
                if len(user_uid):
                    mail_dict = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PRIVATE_MAIL_MODEL.format(
                            user_id=user_uid))

                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    mail_dict = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PRIVATE_MAIL_MODEL.format(
                            user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    mail_dict = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PRIVATE_MAIL_MODEL.format(
                            user_id=result['uid']))

                return render_to_response(template, locals(),
                                          RequestContext(request))

        except UnicodeEncodeError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

        except TypeError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

        except UnboundLocalError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

    else:
        row_dict = {}
        return render_to_response(template, locals(), RequestContext(request))
Пример #45
0
def index(request, template):
    """  类型看格式
    {'data_version': '3',
    'uid': '1000105733',
    #循环取出物品中文名字在前台显示。
    'items': {
    81025: 2,
    80008: 21,
    80009: 31,
    80010: 4,
    80011: 2,
    80012: 1,
    80013: 1,
    80014: 0,
    80015: 0,
    81056: 13,
    80302: 198,
    80303: 1087,
    80048: 125,
    80306: 297,
    81086: 16,
    81098: 10,
    82006: 11,
    82007: 20,
    82008: 20,
    81113: 9,
    80101: 3,
    80102: 5,
    80103: 0,
    81010: 11
    }}
    """
    item_lst = collections.OrderedDict()
    item_dict_name, item_lst_type = game_config.get_item_config_with_id_name()
    add_item_function = 'data_edit.items_info.{function}'.format(function=add_item.__name__)
    function_name = 'data_edit.items_info.{function}'.format(function=set_memcache.__name__)
    del_item_function = 'data_edit.items_info.{function}'.format(function=del_item.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        if cmem_url:
            try:
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,
                                                   model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=result['uid']))
                    user_uid = user_id = result['uid']
                row_dict = collections.OrderedDict()

                for _key, _value in source['items'].items():
                    row_dict[_key] = {'name': game_config.get_item_config(_key)['name'],
                                      'num': _value}

                return render_to_response(template, locals(), RequestContext(request))

            except UnicodeEncodeError:
                return render_to_response(template, locals(), RequestContext(request))

            except TypeError:
                return render_to_response(template, locals(), RequestContext(request))
            except UnboundLocalError:
                return render_to_response(template, locals(), RequestContext(request))
    else:
        row_list = []

    return render_to_response(template, locals(), RequestContext(request))
Пример #46
0
def activity_view(request, template, dir_name, file_name):
    """
        7天冲级
    """
    manager = GameManager.get_by_request(request)
    btn_lst = manager.check_admin_permission()
    if btn_lst:
        if file_name == 'SEVEN_DAYS_LV':
            head_lst = [
                {'width': 50, 'name': u'时间'},
                {'width': 50, 'name': u'Lv30领取次数'},
                {'width': 50, 'name': u'Lv40领取次数'},
                {'width': 50, 'name': u'Lv50领取次数'},
                {'width': 50, 'name': u'Lv60领取次数'},
                ]

        #七天战力
        elif file_name == 'SEVENT_DAY_FIGHT':
            head_lst = [
                {'width': 50, 'name': u'时间'},
                {'width': 50, 'name': u'3万战力领取次数'},
                {'width': 50, 'name': u'5万战力领取次数'},
                {'width': 50, 'name': u'8万战力领取次数'},
                {'width': 50, 'name': u'10万战力领取次数'},
                ]

        #满额福利
        elif file_name == 'MAX_WILL':
            head_lst = [
                {'width': 50, 'name': u'时间'},
                {'width': 50, 'name': u'充值30元档充值次数'},
                {'width': 50, 'name': u'充值100元档领取次数'},
                {'width': 50, 'name': u'充值300元档领取次数'},
                {'width': 50, 'name': u'充值600元档领取次数'},
                ]
        #消费有礼
        elif file_name == 'GIVE_ME_GIVE_YOU':
            head_lst = [
                {'width': 50, 'name': u'时间'},
                {'width': 50, 'name': u'消费1000钻领取次数'},
                {'width': 50, 'name': u'消费3000钻领取次数'},
                {'width': 50, 'name': u'消费5000钻领取次数'},
                {'width': 50, 'name': u'消费8000钻领取次数'},
                {'width': 50, 'name': u'消费10000钻领取次数'},
                {'width': 50, 'name': u'消费15000钻领取次数'},
                {'width': 50, 'name': u'消费24000钻领取次数'},
                ]
        #友好商店
        elif file_name == 'FRIENDLY_SHOP':
            head_lst = [
                {'width': 50, 'name': u'兑换物品'},
                {'width': 50, 'name': u'兑换次数'},
                {'width': 50, 'name': u'兑换人数'},
                {'width': 50, 'name': u'参与率'},
                {'width': 50, 'name': u'人数占比'},
                ]

        #微信分享
        elif file_name == 'WEI_CHAT_SHARE':
            head_lst = [
                {'width': 50, 'name': u'达到30级'},
                {'width': 50, 'name': u'战力达到10万'},
                {'width': 50, 'name': u'通关普通副本第八章'},
                {'width': 50, 'name': u'道馆挑战30星'},
                {'width': 50, 'name': u'达到50级'},
                ]

        server_list, platform_list = daily_log._get_server_list()

        if request.method == 'POST':
            search_date = request.POST.get("search_data")
            server_id = int(request.POST.get('server_id'))
            start_date_date = datetime.datetime.strptime(search_date, "%m/%d/%Y").date()
            if file_name == 'MAX_WILL' or file_name == 'FRIENDLY_SHOP':
                row_lst = default_get_table.get_table_one_list(start_date_date,dir_name,file_name,server_id)
            else:
                row_lst = default_get_table.get_table(start_date_date,dir_name,file_name,server_id)
            return render_to_response(template, {'row_lst': row_lst,
                                                 'head_lst': head_lst,
                                                 'server_list':server_list,
                                                 'search_data': search_date,
                                                 'server_id':server_id,
                                                 'btn_lst':btn_lst,
                                                 'account':manager.account,},RequestContext(request))
        else:
            row_lst = []
            now_date_str = datetime.date.today().strftime("%m/%d/%Y")
            search_date = now_date_str
            return render_to_response(template,{'server_list':server_list,
                                                'row_lst': row_lst,
                                                'head_lst': head_lst,
                                                'search_data':search_date,
                                                'btn_lst':btn_lst,
                                                'account':manager.account,}, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/login/')
Пример #47
0
def get_monster_lst(request):
    """
    数据后台 --- 宠物信息

    seq_id  <type 'int'>
    uid  <type 'str'>
    monster_high_star_level  <type 'int'>
    monster_kind <type 'list'>
    data_version  <type 'str'>
    monster_high_level  <type 'int'>
    monster_high_quality  <type 'int'>
    monsters <type 'str'>
    [
        evo_level 4 <type 'int'>
        star_level_exp 16 <type 'int'>
        skillsExp [0, 0] <type 'list'>
        level 54 <type 'int'>
        playerID 1000095298 <type 'str'>
        effort 2 <type 'int'>
        starLevel 3 <type 'int'>
        sex 0 <type 'int'>
        generation 1 <type 'int'>
        individual [1, 0, 1, 0, 0, 0] <type 'list'>
        evo_sun_stone 96 <type 'int'>
        skillsLevel [6, 10] <type 'list'>
        exp 11739 <type 'int'>
        personality 11 <type 'int'>
        tid 25 <type 'int'>
        uid 1 <type 'int'>
        star_level_rate 0.02083 <type 'float'>
        maxLevel 60 <type 'int'>
        createTime 2015-05-31 09:12:51.761554 <type 'datetime.datetime'>
        evo_fail_count 0 <type 'int'>
    ]
    list中都是int
    HpIndividual = 0
    AttackIndividual = 1
    DefenceIndividual = 2
    SpcAttackIndividual = 3
    SpcDefenceIndividual = 4
    SpeedIndividual = 5
    """
    # 获取当前管理员
    manager = GameManager.get_by_request(request)

    function_name = 'data_edit.monster_info_edit.{function}'.format(
        function=set_memcache.__name__)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = request.POST.get('server_id')
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        table_lst = []

        if len(user_uid):
            monster_model = memcache.get_cmem_val(
                cmem_url,
                model_define.MONSTER_MODEL.format(user_id=int(user_uid)))
        elif len(user_name):
            name = hashlib.md5(user_name).hexdigest().upper()
            key = model_define.PLAYER_NICK_NAME_MODEL.format(
                player_nick_md5=name)
            user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
            monster_model = memcache.get_cmem_val(
                cmem_url, model_define.MONSTER_MODEL.format(user_id=user_uid))
        elif len(user_openid):
            result = memcache.get_cmem_val(
                cmem_url,
                model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
            monster_model = memcache.get_cmem_val(
                cmem_url,
                model_define.MONSTER_MODEL.format(user_id=result['uid']))
        # 宠物相关最高值
        uid = monster_model['uid']
        monster_high_star_level = monster_model['monster_high_star_level']
        monster_kind = monster_model['monster_kind']
        monster_high_level = monster_model['monster_high_level']
        monster_high_quality = monster_model['monster_high_quality']
        all_monsters = monster_model['monsters']
        head_lst = [
            {
                'width': 50,
                'name': u'玩家ID'
            },
            {
                'width': 50,
                'name': u'宠物最高星级'
            },
            {
                'width': 50,
                'name': u'宠物最高等级'
            },
            {
                'width': 50,
                'name': u'宠物最高品质'
            },
            {
                'width': 50,
                'name': u'宠物种类个数'
            },
        ]
        row_lst = [
            uid, monster_high_star_level, monster_high_level,
            monster_high_quality,
            len(monster_kind)
        ]
        table_lst.append(row_lst)

        for _monster in all_monsters:
            _monster_config = game_config.get_monster_config(_monster['tid'])
            _monster['name'] = _monster_config['name']

        type_hidden = 'visible'
        return render_to_response(
            "data_edit/monster_info_edit.html", {
                "server_list": server_list,
                "user_uid": user_uid,
                'server_id': int(server_id),
                'row_lst': table_lst,
                'head_lst': head_lst,
                'monster_lst': all_monsters,
                'function_name': function_name,
                'type_hidden': type_hidden
            }, RequestContext(request))

    else:
        # row_list = []
        type_hidden = 'hidden'
        return render_to_response("data_edit/monster_info_edit.html", locals(),
                                  RequestContext(request))
Пример #48
0
def get_player_activity_hard_stage_function(request,
                                            player_activity_hard_stage):
    """
        玩家困难运营数据编辑
        source {'reward_end_date': datetime.date(2015, 8, 14),
                'single_activity_has_reward_lst': [1, 2],
                'version': u'20150715_5_35',
                'uid': '1000000950'

                'num': 35,
                }
        config_dict   {"stone": 50, "pokeBall": 1, "num1": 0, "gold": 0, "num3": 0, "item2": 0, "item3": 0, "item1": 0,
                        "equipmentId": 0, "experience": 100, "times": 10, "num2": 0, "id": 1},
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.PlayerActivityHardStage.{function}'.format(
        function=set_player_activity_hard_stage_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {
                'name': u'名称'
            },
            {
                'name': u'数量'
            },
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PLAYER_ACTIVITY_HARD_STAGE_MODEL.format(
                            user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PLAYER_ACTIVITY_HARD_STAGE_MODEL.format(
                            user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.PLAYER_ACTIVITY_HARD_STAGE_MODEL.format(
                            user_id=user_uid))
                if source:
                    # print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime(
                            '%Y-%m-%d')  # 运营活动奖励结束时间
                        reward_end_date_lst = [[
                            u'运营活动奖励结束时间', reward_end_date
                        ]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']  # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []
                    # ---------------- 玩家奖励信息
                    try:
                        reward_lst = source.get(
                            'single_activity_has_reward_lst',
                            [])  # [1,2,3,4,5]
                        reward_str = ''  # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_times_hard_stage_config(
                        )  # 策划填的配置表
                        if reward_lst:
                            for reward_id in reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(
                                    reward_id)]  # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items(
                                ):  # 遍历每个key 值
                                    if each_int_value:  # 有值
                                        if key in CUR_CON_STR_DIT:  # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys(
                                            ):  # 是特殊处理key
                                                each_item_str = game_config.get_item_config(
                                                    each_int_value)[
                                                        'name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[
                                                    SPECIAL_CON_STR_LST[
                                                        key]]  # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[
                                                    key]  # 取物品名
                                                each_item_val = each_int_value  # 取数量
                                            reward_str += each_item_str  # 字符串拼接名字
                                            reward_str += str(
                                                each_item_val
                                            ) + ";   "  # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            reward_lst = [[u'玩家奖励信息', reward_str]]
                            # print reward_lst
                    except:
                        reward_lst = []
                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}
                    # 困难副本战胜次数
                    hard_win_count = source.get('num', 'None')
                    if hard_win_count != 'None':
                        row_dict['hard_win_count'] = {
                            'name': u'困难副本战胜次数',
                            'num': hard_win_count
                        }
                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(player_activity_hard_stage, locals(),
                                          RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(player_activity_hard_stage, locals(),
                                          RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(player_activity_hard_stage, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(player_activity_hard_stage, locals(),
                                  RequestContext(request))
def get_player_activity_normal_stage_function(request, player_activity_normal_stage):
    """
        玩家普通运营数据编辑
        source {'reward_end_date': datetime.date(2015, 8, 14),
                'single_activity_has_reward_lst': [1, 2],
                'version': u'20150715_5_35',
                'uid': '1000000950'

                'num': 35,
                }
        config_dict   {"stone": 50, "pokeBall": 1, "num1": 0, "gold": 0, "num3": 0, "item2": 0, "item3": 0, "item1": 0,
                        "equipmentId": 0, "experience": 100, "times": 10, "num2": 0, "id": 1},
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.PlayerActivityNormalStage.{function}'.format(function=set_player_activity_normal_stage_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'数量'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=user_uid))
                if source:
                    # print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime('%Y-%m-%d')   # 运营活动奖励结束时间
                        reward_end_date_lst = [[u'运营活动奖励结束时间', reward_end_date]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']   # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []
                    # ---------------- 玩家奖励信息
                    try:
                        reward_lst = source.get('single_activity_has_reward_lst', [])                   # [1,2,3,4,5]
                        reward_str = ''                                                                 # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_times_normal_stage_config()  # 策划填的配置表
                        if reward_lst:
                            for reward_id in reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(reward_id)]       # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items():           # 遍历每个key 值
                                    if each_int_value:                                      # 有值
                                        if key in CUR_CON_STR_DIT:                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():           # 是特殊处理key
                                                each_item_str = game_config.get_item_config(each_int_value)['name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[SPECIAL_CON_STR_LST[key]]              # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            reward_lst = [[u'玩家奖励信息',reward_str]]
                            # print reward_lst
                    except:
                        reward_lst = []
                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}
                    # 普通副本战胜次数
                    normal_win_count = source.get('num', 'None')
                    if normal_win_count != 'None':
                        row_dict['normal_win_count'] = {'name': u'普通副本战胜次数', 'num': normal_win_count}
                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(player_activity_normal_stage, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(player_activity_normal_stage, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(player_activity_normal_stage, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(player_activity_normal_stage, locals(), RequestContext(request))
def get_player_activity_weixin_share_function(request, templates):
    """
        玩家运营数据编辑 单笔充值

        source {'reward_end_date': datetime.date(2015, 8, 15),
                'complete': [2,3],          # 可完成   #微信分享没有用
                'version': u'20150716_14_09',
                'has_reward_lst': [2],      # 完成并交接
                'uid': '1000103005'}

        reward_share_weixin_config
                {"itemId": 0, "stone": 500, "star": 0, "power": 0,"gold": 0, "freeDrop": 0,
                 "itemNum": 0, "playerLevel": 50, "id": 5, "stage": 0}
    """

    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_activity_weixin_share.{function}'.format(function=set_player_activity_weixin_share_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'1代表已有——0代表没有'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=user_uid))
                if source:
                    print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime('%Y-%m-%d')   # 运营活动奖励结束时间
                        reward_end_date_lst = [[u'运营活动奖励结束时间', reward_end_date]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']   # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []

                    # ---------------- 玩家领取的奖励
                    try:
                        reward_lst = source.get('has_reward_lst', [])                   # [1,2,3,4,5]
                        reward_str = ''                                                                 # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_share_weixin_config()  # 策划填的配置表
                        if reward_lst:
                            for reward_id in reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(reward_id)]       # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items():           # 遍历每个key 值
                                    if each_int_value:                                      # 有值
                                        if key in CUR_CON_STR_DIT:                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():           # 是特殊处理key
                                                each_item_str = game_config.get_item_config(each_int_value)['name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[SPECIAL_CON_STR_LST[key]]              # 取数量
                                            else:
                                                if u'stage' == key:
                                                    stage_dic = game_config.get_stages_config(each_int_value)
                                                    each_item_str = u'通过副本_' + stage_dic['stageInfo'] + u'_'
                                                    each_item_val = each_int_value
                                                else:
                                                    each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                    each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            reward_lst = [[u'玩家已奖励信息',reward_str]]
                            # print reward_lst
                    except:
                        reward_lst = []
                    # ---------------- 玩家已完成充值
                    try:
                        complete_reward_lst = source.get('complete', [])                   # [1,2,3,4,5]
                        reward_str = ''                                                                 # 字符串
                        cur_reward_config_lst = game_config.get_all_reward_share_weixin_config()  # 策划填的配置表
                        if complete_reward_lst:
                            for reward_id in complete_reward_lst:
                                each_conf_lst = cur_reward_config_lst[str(reward_id)]       # 取出每条配置表
                                for key, each_int_value in each_conf_lst.items():           # 遍历每个key 值
                                    if each_int_value:                                      # 有值
                                        if key in CUR_CON_STR_DIT:                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():           # 是特殊处理key
                                                each_item_str = game_config.get_item_config(each_int_value)['name']  # 取物品名
                                                each_item_str += u": "
                                                each_item_val = each_conf_lst[SPECIAL_CON_STR_LST[key]]              # 取数量
                                            else:
                                                if u'stage' == key:
                                                    stage_dic = game_config.get_stages_config(each_int_value)
                                                    each_item_str = u'通过副本_' + stage_dic['stageInfo'] + u'_'
                                                    each_item_val = each_int_value
                                                else:
                                                    each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                    each_item_val = each_int_value                               # 取数量                         # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += '-----------'
                            complete_reward_lst = [[u'玩家可领取奖励信息',reward_str]]
                            # print complete_reward_lst
                    except:
                        complete_reward_lst = []
                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    if complete_reward_lst:
                        all_immutable_lst.append(complete_reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#
                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}
                    # complete has_reward_lst
                    # 单笔充值 可改元素 完成未交任务表 完成并交任务表
                    # _complete = source.get('complete', [])
                    _has_reward_lst = source.get('has_reward_lst', [])
                    cur_reward_config_lst = game_config.get_all_reward_share_weixin_config()        # 策划填的配置表
                    # key1 ==> "has_reward_lst$$1"
                    for i in xrange(1, len(cur_reward_config_lst)+1):
                        key_str = string.join(['has_reward_lst', str(i)], '$$')
                        key_str1 = string.join(['complete', str(i)], '$$')
                        # if i in _complete:
                        #     row_dict[key_str1] = {'name': u'可领奖励%s'%(str(i)), 'num': 1}
                        # else:
                        #     row_dict[key_str1] = {'name': u'可领奖励%s'%(str(i)), 'num': 0}
                        if i in _has_reward_lst:
                            row_dict[key_str] = {'name': u'已领奖励%s'%(str(i)), 'num': 1}
                        else:
                            row_dict[key_str] = {'name': u'已领奖励%s'%(str(i)), 'num': 0}
                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(templates, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
def get_player_trial_essence_info(request):
    """
        玩家熔炼精华
    """
    server_list, platform_list = daily_log._get_server_list(None,None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        if cmem_url:

                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_TRIAL_ESSENCE_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url,model_define.PLAYER_TRIAL_ESSENCE_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_TRIAL_ESSENCE_MODEL.format(user_id=user_uid))
                    print source

                if source:
                    refresh_datetime = source['refresh_datetime'].strftime('%Y-%m-%d %H:%M:%S')
                    refresh_datetime_lst = [refresh_datetime]

                    new_row_lst = []
                    row_lst = source['cur_enemy_dat']
                    print row_lst
                    refresh_time = row_lst[0]
                    last_refresh_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(float(refresh_time)))
                    last_refresh_time_lst = [last_refresh_time]
                    rand_enemy_num = int(row_lst[1])
                    rand_level_result = row_lst[2]
                    rand_individual = row_lst[3]
                    rand_star_result = row_lst[4]
                    new_member_lst = ""
                    member_lst = [row_lst[5],row_lst[6],row_lst[7],row_lst[8],row_lst[9]]
                    for i in member_lst:
                        new_member_lst += (game_config.get_monster_config(int(i))['name']).encode('utf-8')+'\t、'

                    row_list_append = [rand_enemy_num,rand_level_result,rand_individual,rand_star_result,str(new_member_lst)]
                    new_row_lst.extend(row_list_append)

                    print new_row_lst
                    all_items_lst = []
                    if refresh_datetime_lst:
                        all_items_lst.append(refresh_datetime_lst)
                    if last_refresh_time_lst:
                        all_items_lst.append(last_refresh_time_lst)
                    if new_row_lst:
                        all_items_lst.extend(new_row_lst)



        return render_to_response("data_edit/player_trial_essence_info.html",locals(),RequestContext(request))
    else:
        return render_to_response("data_edit/player_trial_essence_info.html",locals(),RequestContext(request))
Пример #52
0
def index(request, template):
    """  玩家联盟商店
    author : 全勇男
    get_union_shop_items_config

    {'uid': '1000110564',
    'union_item_lst': [12, 15, 35, 53, 70, 76], # 商店商品列表
    'union_item_state_dict': {35: 0, 70: 0, 12: 0, 76: 0, 15: 0, 53: 0}, # 物品状态
    'reward_date': datetime.date(2015, 8, 1),
    'refresh_date': datetime.datetime(2015, 8, 1, 13, 3, 25, 588918), #最后刷新时间
    'refresh_num': 4} #刷新次数

    """
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        row_lst = []
        try:
            if cmem_url:
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.UNION_SHOP_MODEL.format(user_id=user_uid))

                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.UNION_SHOP_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.UNION_SHOP_MODEL.format(
                            user_id=result['uid']))
                for item_num in source['union_item_lst']:
                    item_name = game_config.get_item_config(
                        game_config.get_union_shop_items_by_num(
                            item_num))['name']

                    print item_name
                    row_lst.append([
                        source['reward_date'], item_name,
                        source['union_item_state_dict'][item_num]
                    ])
                    print row_lst
                last_refresh = source['refresh_date']
                refresh_count = source['refresh_num']
                return render_to_response(template, locals(),
                                          RequestContext(request))

        except UnicodeEncodeError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

        except TypeError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

        except UnboundLocalError:
            return render_to_response(template, locals(),
                                      RequestContext(request))

    else:
        row_dict = {}
        return render_to_response(template, locals(), RequestContext(request))
def get_player_activity_time_limited_shift_shop_function(request, templates):
    """
        玩家运营数据编辑 友好商店
        source {'reward_end_date': datetime.date(2015, 8, 15),
                'num_dict': {2: 3, 3: 2, 5: 1, 7: 1},
                'version': u'20150716_22_09',
                'uid': '1000103005'}
        time_limited_shift_shop_config
             {"goldGet": 0, "stoneGet": 0, "stoneNeed": 100, "idItemGet": 80303,
              "numItemGet": 120, "freeDrawGet": 0, "numItemNeed2": 0, "leftTimes": 1,
              "idItemNeed1": 81143, "idItemNeed2": 0, "goldNeed": 0, "id": 12, "numItemNeed1": 5}
    """
    # 以函数的指针方式传递函数并调用
    function_name = 'data_edit.player_activity_time_limited_shift_shop.{function}'.format(function=set_player_activity_time_limited_shift_shop_function.__name__)
    print 'function_name', function_name
    server_list, platform_list = daily_log._get_server_list(None, None)
    try:
        server_list.remove(server_list[0])
    except:
        pass

    return_uid = '请输入uid'
    return_openid = "请输入openid"
    return_name = "请输入玩家昵称"
    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]

        head_lst = [
            {'name': u'名称'},
            {'name': u'数量'},
        ]
        if cmem_url:
            try:
                source = dict()
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=user_uid))
                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    return_name = user_name
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url, model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    return_openid = user_openid
                    source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=user_uid))
                if source:
                    # print 'source', source
                    row_dict = collections.OrderedDict()  # 有序字典
                    # -----------------------------------不可改元素---------------------------------------------------------------#
                    # [[[0,1],[0,1]],[[0,1],[0,1]]] 三层[]
                    # ------------------------用户UID
                    uid = source.get('uid', 'None')
                    if uid != 'None':
                        uid_lst = [[u'用户UID', uid]]
                    else:
                        uid_lst = []
                    # ------------------运营活动奖励结束时间
                    try:
                        reward_end_date = source['reward_end_date'].strftime('%Y-%m-%d')   # 运营活动奖励结束时间
                        reward_end_date_lst = [[u'运营活动奖励结束时间', reward_end_date]]
                    except:
                        reward_end_date_lst = []
                    # ------------------运营活动当前版本
                    try:
                        version = source['version']   # 运营活动当前版本
                        version_lst = [[u'运营活动当前版本', version]]
                    except:
                        version_lst = []
                    # ---------------- 玩家已触发购买信息-------------------------------------
                    try:
                        completed_dic = source.get('num_dict', {})                # 已兑换信息表
                        reward_lst = []
                        for shop_even_id, get_item_num in completed_dic.items():  # 事件字典
                            reward_str = ''                                       # 字符串
                            if completed_dic:
                                cur_shop_even_id_config_dic = game_config.get_time_limited_shift_shop_config_with_id(int(shop_even_id))  # 策划填的配置表中的一条
                                for key, each_int_value in cur_shop_even_id_config_dic.items():             # 遍历每个key 与 值
                                    if each_int_value:                                                      # 有值
                                        if key in CUR_CON_STR_DIT:                                          # 且在配置字典
                                            if key in SPECIAL_CON_STR_LST.keys():                           # 特殊处理key
                                                if u'idItemGet' == key:  # 商城兑换物品要加“兑换”字符串
                                                    each_item_str = u'兑换——'
                                                    each_item_str += game_config.get_item_config(each_int_value)['name']    # 取物品名
                                                    each_item_str += u": "
                                                    each_item_val = cur_shop_even_id_config_dic[SPECIAL_CON_STR_LST[key]]  # 取数量
                                                else:
                                                    each_item_str = game_config.get_item_config(each_int_value)['name']    # 取物品名
                                                    each_item_str += u": "
                                                    each_item_val = cur_shop_even_id_config_dic[SPECIAL_CON_STR_LST[key]]  # 取数量
                                            else:
                                                each_item_str = CUR_CON_STR_DIT[key]                         # 取物品名
                                                each_item_val = each_int_value                               # 取数量
                                            reward_str += each_item_str                                      # 字符串拼接名字
                                            reward_str += str(each_item_val) + ";   "                        # 字符串拼接值
                                        else:
                                            continue
                                    else:
                                        continue
                                reward_str += u'已经兑换次数:' + str(get_item_num)
                                reward_str += '-----------'

                            reward_lst.append([u'玩家已触发商城事件ID_'+str(shop_even_id),reward_str])
                            # print reward_lst
                    except:
                        completed_dic = {}
                    # ---------------- 玩家已触发购买信息-------------------------------------

                    # ------------------- 汇总 有就加入总表(三层列表 [[[],[]],[[],[]]])
                    all_immutable_lst = []
                    if uid_lst:
                        all_immutable_lst.append(uid_lst)
                    if reward_end_date_lst:
                        all_immutable_lst.append(reward_end_date_lst)
                    if version_lst:
                        all_immutable_lst.append(version_lst)
                    if reward_lst:
                        all_immutable_lst.append(reward_lst)
                    # -------------------------------------------------------------------------------------------------------------------#

                    # -----------------------------------可改元素-------------------------------------------------------------------------#
                    # {key1:{'name':X,'num':X},key2:{'name':X,'num':X}}

                    # ---------------- 商城所有可购买次数修改-------------------------------------
                    player_completed_dic = source.get('num_dict', {})
                    # 友好商店购买次数
                    for each_eve_id, each_eve_dic in (game_config.get_all_time_limited_shift_shop_config()).items():
                        _each_item_str = ""
                        # 1.已触发的购买事件 修改
                        if int(each_eve_id) in player_completed_dic.keys():     # 玩家已触发商城购买ID事件
                            for _each_key, _each_value in each_eve_dic.items():
                                if _each_value:
                                    if u"idItemGet" == _each_key:  # 物品
                                        _each_item_str += game_config.get_item_config(_each_value)['name']    # 取物品名
                                    elif _each_key in SHOP_BUY_NOT_ITEM_LST:  # 非物品
                                        _each_item_str = SHOP_BUY_NOT_ITEM_LST[_each_key]

                            row_dict[int(each_eve_id)] = {'name': u'友好商店事件__%s__<%s>__<购买次数上限%s>' % (str(each_eve_id), _each_item_str, each_eve_dic.get('leftTimes',-1)), 'num': player_completed_dic[int(each_eve_id)]}
                        # 2.未触发的购买事件 修改
                        else:                                                   # 玩家未触发商城购买ID事件 要显示未触发的所有
                            for _each_key, _each_value in each_eve_dic.items():
                                if _each_value:  # 物品
                                    if u"idItemGet" == _each_key:  # 物品
                                        _each_item_str += game_config.get_item_config(_each_value)['name']    # 取物品名
                                    elif _each_key in SHOP_BUY_NOT_ITEM_LST:  # 非物品
                                        _each_item_str = SHOP_BUY_NOT_ITEM_LST[_each_key]
                            row_dict[int(each_eve_id)] = {'name': u'友好商店事件__%s__<%s>__<购买次数上限%s>' % (str(each_eve_id), _each_item_str, each_eve_dic.get('leftTimes',-1)), 'num': 0}

                    # -----------------------------------------------------------------------------------------------------------------------#
                else:
                    if user_uid:
                        return_uid = user_uid
                        if user_openid:
                            return_openid = user_openid
                        if user_name:
                            return_name = user_name

                return render_to_response(templates, locals(), RequestContext(request))

            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(templates, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        return render_to_response(templates, locals(), RequestContext(request))
Пример #54
0
def index(request, template):
    """  玩家私信
    author : 全勇男
    {'new_label': True, #已读未读
    'private_mail': [{'content': u'\u6211\u5df2\u7ecf\u63a5\u53d7\u4e86\u60a8\u7684\u597d\u53cb\u9080\u8bf7\uff0c\u5927\u5bb6\u4e00\u8d77\u73a9\u800d\u5427\uff01',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328576.698478},
    {'content': 'fkjdshfkdsfdsf ',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328605.817033},
    {'content': 'wenni fdfg dg dg dgd',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328616.180619},
    {'content': 'dgdf gdfg d',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328619.498057},
    {'content': 'dg dgdg dgdgd d',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328623.004101},
    {'content': 'gfhgfhfh gfhfh d h',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328626.179098},
    {'content': 'hgf hf hgf ',
    'name': '\xe4\xb8\xa4\xe5\x9d\x97\xe4\xba\x94',
    'time': 1438328629.125485}],
    'uid': '1000110564'}
    """
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])

    if request.method == 'POST':
        user_uid = request.POST.get('user_uid')
        user_name = request.POST.get('user_name').encode('utf-8')
        user_openid = request.POST.get('user_openid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        try:
            if cmem_url:
                if len(user_uid):
                    mail_dict = memcache.get_cmem_val(cmem_url, model_define.PRIVATE_MAIL_MODEL.format(user_id=user_uid))

                elif len(user_name):
                    name = hashlib.md5(user_name).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    mail_dict = memcache.get_cmem_val(cmem_url, model_define.PRIVATE_MAIL_MODEL.format(user_id=user_uid))
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,
                                                   model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    mail_dict = memcache.get_cmem_val(cmem_url, model_define.PRIVATE_MAIL_MODEL.format(user_id=result['uid']))

                return render_to_response(template, locals(), RequestContext(request))

        except UnicodeEncodeError:
            return render_to_response(template, locals(), RequestContext(request))

        except TypeError:
            return render_to_response(template, locals(), RequestContext(request))

        except UnboundLocalError:
            return render_to_response(template, locals(), RequestContext(request))

    else:
        row_dict = {}
        return render_to_response(template, locals(), RequestContext(request))