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/')
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))
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/')
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))
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))
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))
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))
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))
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))
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))
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/')
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/')
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))
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
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
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))
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))
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/')
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))
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))
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))
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/')
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))
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))
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))
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))
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))
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))
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))
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))
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/')
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))
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))
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))
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))
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))
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))
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), )
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))
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))
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))
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))
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 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/')
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))
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))
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))
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))