def notice_del_confirm(request): """ 删除广播确认 """ if request.method == 'POST': uid = str(request.POST.get("uid")) del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) print server_notice_box_model check_notice_expiry(server_notice_box_model) notices_lst = server_notice_box_model['notices'] if notices_lst: for notice_dict in notices_lst: if notice_dict: if uid == str(notice_dict['uid']): del_notice_dict = notice_dict break del_notice_dict['start_time'] = str(del_notice_dict['start_time'].strftime('%Y-%m-%d %H:%M:%S')) del_notice_dict['expiry_date'] = str(del_notice_dict['expiry_date'].strftime('%Y-%m-%d %H:%M:%S')) return render_to_response("notice/notice_del_confirm.html", {'notice_info': del_notice_dict,'head_lst': head_lst}, RequestContext(request)) else: return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
def system_mail_del(request): """ 删除系统邮件 """ if request.method == "POST": version = str(request.POST.get("version")) del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) print server_notice_box_model check_system_expiry(server_notice_box_model) notices_lst = server_notice_box_model["mails"] if notices_lst: for notice_dict in notices_lst: if notice_dict: if version == str(notice_dict["version"]): server_notice_box_model["mails"].remove(notice_dict) memcache.put_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model ) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_delete_mail(manager, version) break return HttpResponseRedirect("/Tyranitar6/server/system_mail_lst/") else: return render_to_response("system_mail/system_mail_add.html", RequestContext(request))
def notice_del(request): """ 删除广播 """ if request.method == 'POST': uid = str(request.POST.get("uid")) # del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL) if server_notice_box_model: print server_notice_box_model check_notice_expiry(server_notice_box_model) notices_lst = server_notice_box_model['notices'] if notices_lst: for notice_dict in notices_lst: if notice_dict: if uid == str(notice_dict['uid']): # del_notice_dict = notice_dict server_notice_box_model['notices'].remove(notice_dict) memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_delete_notice(manager, uid) break return HttpResponseRedirect('/Tyranitar6/server/notice_lst/') else: return render_to_response("notice/notice_add.html",RequestContext(request))
def notice_lst(request): """ 广播列表 """ data = {} table_list = [] all_background_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL) if server_notice_box_model: # server_notice_box_model = { # 'uid': 'game_notice', # 'notices': [], # 'player_notices': [], # 'seq_id': 1 # } # server_notice_box_model = memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) print server_notice_box_model check_notice_expiry(server_notice_box_model) notices_lst = server_notice_box_model['notices'] if notices_lst: for notice_dict in notices_lst: if notice_dict: notice_uid = notice_dict['uid'] # if notice_uid in all_background_notice_dict: # print("notice_uid: "+str(notice_uid)) # notice_dict['server_id'] = notice_dict.get('server_id','')+","+str(key) # else: # notice_dict['server_id'] = str(key) all_background_notice_dict[notice_uid] = notice_dict print("all_background_notice_dict: "+str(all_background_notice_dict)) for key_uid, value in all_background_notice_dict.items(): if value: temp_content = [] temp_content.insert(0,str(key_uid)) temp_content.insert(1,value['server_id']) temp_content.insert(2,str(value['content'])) temp_content.insert(3,value['start_time'].strftime('%Y-%m-%d %H:%M:%S')) temp_content.insert(4,value['expiry_date'].strftime('%Y-%m-%d %H:%M:%S')) temp_content.insert(5,str(value['distance_time'])) table_list.append(temp_content) data['notice_info'] = table_list data['head_lst'] = head_lst return render_to_response("notice/notice_lst.html", data, RequestContext(request))
def remove_monster(manager, user_id, server_id, uid, star_level, level): """ 移除一个怪 """ 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))) for mon in monster_model["monsters"]: if mon["uid"] == int(uid): monster_tid = mon["tid"] monster_model["monsters"].remove(mon) memcache.put_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)), monster_model) # 操作日志记录 insert_action_delete_monster(manager, server_id, user_id, uid, monster_tid, star_level, level) break
def set_player_activity_regist_recharge_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] has_reward_lst$$0 complete_id$$-1 active_id$$-1 value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(user_id=value_dict['user_id'])) try: print 'this is source is: ', source # second_key 是int类型 input_value = int(value_dict['input_value']) (first_key, second_key) = value_dict['item_id'].split('$$') second_key = int(second_key) if second_key >= 0: # has_reward_lst if input_value == 0: source[first_key].remove(second_key) elif input_value == 1: source[first_key].append(second_key) else: return False elif second_key == -1: # complete_id active_id source[first_key] = input_value else: return False except: return False # source = {'uid': '1000103005', 'complete_id': 2, 'recharge_date': datetime.date(2015, 8, 1), 'has_reward_lst': [1], 'reward_end_date': datetime.date(2015, 7, 25), 'active_id': 4} # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(user_id=value_dict['user_id']), source) return result
def add_item(value_dict): ''' 增加物品push memcache ''' user_id = int(value_dict['user_id']) item_tid = int(value_dict['item_id']) server_id = int(value_dict['server_id']) cmem_url = server_define.CMEM_MAP[server_id] if cmem_url: if user_id: source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id)) for _dict in source['treasure_items']: if item_tid == _dict['tid']: print ' same' return False print source source['treasure_items'].append( {'tid': item_tid, 'phase': 0, 'level': 1, 'uid': source['seq'], 'level_exp': 0} ) source['seq'] += 1 result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id),source) return result
def set_player_activity_time_limited_shift_shop_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] u'2'$$'num_dict' value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=value_dict['user_id'])) # print 'source__', source try: input_int_val = int(value_dict['input_value']) (second_key, first_key) = (value_dict['item_id']).split('$$') # 要修改的key second_key = int(second_key) if input_int_val > 0 and second_key > 0: if second_key in source[first_key].keys(): source[first_key][second_key] = input_int_val else: source[first_key].update({second_key: input_int_val}) elif input_int_val == 0 and second_key > 0: if second_key in source[first_key].keys(): source[first_key].pop(second_key) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=value_dict['user_id']), source) return result
def set_player_catch_monster_function(value_dict): """ 修改memcache数据 tem_id 40801 value_dict['input_value'] num """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=value_dict['user_id'])) try: stage_id = int(value_dict['item_id']) input_value = int(value_dict['input_value']) print stage_id, input_value if 0 <= input_value: index_id = source['catch_monster_stage_id_lst'].index(stage_id) source['catch_monster_stage_lst'][index_id] = input_value else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=value_dict['user_id']), source) return result
def set_player_treasure_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] 100001 or 'treasure_point' or 'reset_treasure_count' """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=value_dict['user_id'])) try: treasure_debris_id = int(value_dict['item_id']) if int(value_dict['input_value']) >= 0: source['treasure_fragment_dict'][treasure_debris_id] = int(value_dict['input_value']) else: return False except: try: key = str(value_dict['item_id']) if isinstance(source[key], int): if int(value_dict['input_value']) >= 0: source[key] = int(value_dict['input_value']) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=value_dict['user_id']), source) return result
def set_union_stage_function(value_dict): """ 修改memcache数据 tem_id 30057$$num """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']):# 注 此处user_id 是union_id source = memcache.get_cmem_val(cmem_url, model_define.UNION_STAGE_CAS_MODEL.format(union_id=value_dict['union_id'])) # try: # (first_key, second_key) = value_dict['item_id'].split('$$') # first_key = int(first_key) # input_value = int(value_dict['input_value']) # second_key = str(second_key) # # print first_key, second_key, input_value # # if 'num' == second_key and 0 <= input_value: # source['stages'][first_key][second_key] = input_value # elif 'rank' == second_key and (0 == input_value or -1 == input_value): # source['stages'][first_key][second_key] = input_value # elif 'buy_count' == second_key and 0 <= input_value: # source['stages'][first_key][second_key] = input_value # else: # return False # except: # return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.UNION_STAGE_CAS_MODEL.format(union_id=value_dict['union_id']), source) return result
def set_player_activity_weixin_share_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] has_reward_lst&&1 or complete$$1 value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=value_dict['user_id'])) # print 'source_neww', source,"ss" try: input_val = int(value_dict['input_value']) (first_key, second_val) = value_dict['item_id'].split('$$') second_val = int(second_val) if 0 == input_val: if second_val in source[first_key]: source[first_key].remove(second_val) elif 1 == input_val: if second_val not in source[first_key]: source[first_key].append(second_val) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=value_dict['user_id']), source) return result
def set_stage_data_function(value_dict): """ 修改memcache数据 tem_id 30057$$num """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id'])) try: (first_key, second_key) = value_dict['item_id'].split('$$') first_key = int(first_key) input_value = int(value_dict['input_value']) second_key = str(second_key) # print first_key, second_key, input_value if 'num' == second_key and 0 <= input_value: source['stages'][first_key][second_key] = input_value elif 'rank' == second_key and (0 == input_value or -1 == input_value): source['stages'][first_key][second_key] = input_value elif 'buy_count' == second_key and 0 <= input_value: source['stages'][first_key][second_key] = input_value else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id']), source) return result
def system_mail_del_confirm(request): """ 删除邮件确认 """ if request.method == "POST": version = str(request.POST.get("version")) del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) print server_notice_box_model check_system_expiry(server_notice_box_model) notices_lst = server_notice_box_model["mails"] if notices_lst: for notice_dict in notices_lst: if notice_dict: if version == str(notice_dict["version"]): del_notice_dict = notice_dict break del_notice_dict["send_time"] = str(del_notice_dict["send_time"].strftime("%Y-%m-%d %H:%M:%S")) del_notice_dict["expiry_date"] = str(del_notice_dict["expiry_date"].strftime("%Y-%m-%d %H:%M:%S")) item_config = game_config.get_item_config(del_notice_dict["item"]) if item_config: del_notice_dict["item"] = str(item_config["name"]) else: del_notice_dict["item"] = str(u"") monster_config = game_config.get_monster_config(del_notice_dict["monster"]) if monster_config: del_notice_dict["monster"] = str(monster_config["name"]) else: del_notice_dict["monster"] = str(u"") return render_to_response( "system_mail/system_mail_del_confirm.html", {"system_mail_info": del_notice_dict, "head_lst": head_lst}, RequestContext(request), ) else: return HttpResponseRedirect("/Tyranitar6/server/system_mail_lst/")
def notice_update(request): """ 更新广播 """ if request.method == 'POST': content = str(request.POST.get('content')) start_time = datetime.datetime.strptime(request.POST.get('start_time'),"%Y-%m-%d %H:%M:%S") end_time = datetime.datetime.strptime(request.POST.get('end_time'),"%Y-%m-%d %H:%M:%S") distance_time = int(request.POST.get('distance_time')) str_server_id = str(request.POST.get('server_id')) uid = str(request.POST.get('uid')) #插入系统邮件 notice = dict() notice['content'] = content notice['start_time'] = start_time notice['distance_time'] = distance_time notice['expiry_date'] = end_time notice['server_id'] = str_server_id notice['uid'] = uid print("notice: "+str(notice)) server_int_lst = string_split_to_int_list(str_server_id,',') for server_int in server_int_lst: cmem_url = server_define.CMEM_MAP[int(server_int)] if cmem_url: server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL) if not server_notice_box_model: server_notice_box_model = { 'uid': 'game_notice', 'notices': [], 'player_notices': [], 'seq_id': '20150729_1' } add_background_notice(server_notice_box_model,notice) print("server_notice_box_model: "+str(server_notice_box_model)) memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_update_notice(manager, notice) return HttpResponseRedirect('/Tyranitar6/server/notice_lst/') else: return render_to_response("notice/notice_add.html",RequestContext(request))
def body_forbiden(request): server_id = request.POST.get('server_id') # manager = GameManager.get_by_request(request) # btn_lst = manager.check_admin_permission() # if btn_lst: head_lst = [ {'width': 70, 'name': u'日期'}, {'width': 50, 'name': u'UID'}, {'width': 55, 'name': u'昵称'}, {'width': 50, 'name': u'等级'}, {'width': 50, 'name': u'VIP等级'}, {'width': 50, 'name': u'聊天内容'}, {'width': 50, 'name': u'服务器ID'}, {'width': 50, 'name': u'封禁'}, ] server_list_dat = server_list.get_server_list_dat() if request.method == 'POST': server_id = request.POST.get('server') user_id = request.POST.get('user_id') cmem_url=server_define.CMEM_MAP[int(server_id)] row_lst = _get_chat_content(server_id) for i in range(len(row_lst)): row_lst[i-1].append(server_id) if cmem_url: try: source=memcache.get_cmem_val(cmem_url,model_define.USER_MODEL.format(user_id=user_id)) source['state']=USER_STATE_FREEZE memcache.put_cmem_val(cmem_url,model_define.USER_MODEL.format(user_id=user_id),source) except: print 'Error: not Forzen' return render_to_response("gm/get_chat_content.html", # {'account': manager.account, 'btn_lst': btn_lst, {'row_lst': row_lst, 'head_lst': head_lst, 'server_list': server_list_dat,'cur_server_id':server_id}, RequestContext(request)) else: server_id = request.POST.get('server') row_lst = _get_chat_content(server_id) for i in range(len(row_lst)): row_lst[i-1].append(server_id) return render_to_response("gm/get_chat_content.html", # {'account': manager.account, 'btn_lst': btn_lst, { 'row_lst': row_lst, 'head_lst': head_lst, 'server_list': server_list_dat,'cur_server_id':server_id,}, RequestContext(request))
def player_commit_bugs_del_all(request): """ 删除玩家提交的BUG """ if request.method == 'POST': server_id = int(request.POST.get("server_id")) cmem_url = str(server_define.CMEM_MAP.get(server_id)) if cmem_url: player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL) if player_commit_bugs_model: print player_commit_bugs_model remove_all_bugs(player_commit_bugs_model) memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_delete_bug_all(manager) return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
def set_player_team_function(value_dict): """ 修改memcache数据 key2$$key1$$key3(>=0才有) value_dict['tem_id'] 0$$team_monsters$$None value_dict['tem_id'] 0$$team_equips$$0 value_dict['input_value'] int """ print "PWPIASD" cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=value_dict['user_id'])) try: (second_key, first_key, three_key) = value_dict['item_id'].split('$$') input_value = int(value_dict['input_value']) print first_key, second_key, three_key, input_value, "A" first_key, second_key, three_key = str(first_key), int(second_key), int(three_key) print first_key, second_key, three_key, input_value, "B" print "PWPIASD111114" if 0 <= second_key and 0 <= input_value: if 0 <= three_key: # 装备宝石 二维数组 if input_value not in source[first_key][second_key] and 0 < input_value: # 重复UID检测 print "PWPIASD111116" source[first_key][second_key][three_key] = input_value print "PWPIASD111117" elif 0 == input_value: source[first_key][second_key][three_key] = input_value else: print 'repetition' return False else: # 宠物 一维数组 """注:宠物tid uid 都不能重复""" if input_value not in source[first_key] and 0 < input_value: # 重复 UID 检测 print "PWPIASD11111511" # if three_key <= 0: source[first_key][second_key] = input_value print "PWPIASD111115" elif 0 == input_value: source[first_key][second_key] = input_value else: print 'repetition' return False else: print "PWPIASD111113" return False print "PWPIASD111111" except: print "PWPIASD111112" return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=value_dict['user_id']), source) return result
def system_mail_del(request): """ 删除系统邮件 """ if request.method == 'POST': version = str(request.POST.get("version")) del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) print server_notice_box_model check_system_expiry(server_notice_box_model) notices_lst = server_notice_box_model['mails'] if notices_lst: for notice_dict in notices_lst: if notice_dict: if version == str(notice_dict['version']): server_notice_box_model['mails'].remove( notice_dict) memcache.put_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request( request) insert_action_delete_mail(manager, version) break return HttpResponseRedirect('/Tyranitar6/server/system_mail_lst/') else: return render_to_response("system_mail/system_mail_add.html", RequestContext(request))
def set_memcache(value_dict): """ 修改memcache数据 """ server_id = int(value_dict["server_id"]) user_id = value_dict["user_id"] item_id = value_dict["item_id"] old_value = int(value_dict["value"]) new_value = int(value_dict["input_value"]) manager = value_dict["manager"] data = item_id.split("&&") monster_uid = int(data[0]) change_key = str(data[1]) cmem_url = server_define.CMEM_MAP[int(server_id)] monster_tid = 0 if cmem_url: if len(user_id): if int(new_value) < 0: return False monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=int(user_id))) for _monster in monster_model["monsters"]: if monster_uid == _monster["uid"]: monster_tid = _monster["tid"] if change_key in ["individual", "skillsLevel", "skillsExp"]: change_index = int(data[2]) _monster[change_key][change_index] = int(new_value) else: _monster[change_key] = int(new_value) break memcache.put_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=user_id), monster_model) # 操作日志记录 insert_action_change_monster( manager, server_id, user_id, monster_uid, monster_tid, change_key, old_value, new_value ) return True return False
def player_commit_bugs_del(request): """ 删除玩家提交的BUG """ if request.method == 'POST': user_uid = str(request.POST.get("uid")) time = str(request.POST.get("time")) server_id = int(request.POST.get("server_id")) cmem_url = str(server_define.CMEM_MAP.get(server_id)) if cmem_url: player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL) if player_commit_bugs_model: print player_commit_bugs_model bug_dict = get_bug_uid_time(player_commit_bugs_model,user_uid, time) remove_bug(player_commit_bugs_model,bug_dict) memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_delete_bug(manager, bug_dict) return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
def notice_del(request): """ 删除广播 """ if request.method == 'POST': uid = str(request.POST.get("uid")) # del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.NOTICE_MODEL) if server_notice_box_model: print server_notice_box_model check_notice_expiry(server_notice_box_model) notices_lst = server_notice_box_model['notices'] if notices_lst: for notice_dict in notices_lst: if notice_dict: if uid == str(notice_dict['uid']): # del_notice_dict = notice_dict server_notice_box_model['notices'].remove( notice_dict) memcache.put_cmem_val( cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request( request) insert_action_delete_notice(manager, uid) break return HttpResponseRedirect('/Tyranitar6/server/notice_lst/') else: return render_to_response("notice/notice_add.html", RequestContext(request))
def notice_del_confirm(request): """ 删除广播确认 """ if request.method == 'POST': uid = str(request.POST.get("uid")) del_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.NOTICE_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model) print server_notice_box_model check_notice_expiry(server_notice_box_model) notices_lst = server_notice_box_model['notices'] if notices_lst: for notice_dict in notices_lst: if notice_dict: if uid == str(notice_dict['uid']): del_notice_dict = notice_dict break del_notice_dict['start_time'] = str( del_notice_dict['start_time'].strftime('%Y-%m-%d %H:%M:%S')) del_notice_dict['expiry_date'] = str( del_notice_dict['expiry_date'].strftime('%Y-%m-%d %H:%M:%S')) return render_to_response("notice/notice_del_confirm.html", { 'notice_info': del_notice_dict, 'head_lst': head_lst }, RequestContext(request)) else: return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
def set_memcache(value_dict): ''' 修改memcache数据 ''' cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): if 0 > int(value_dict['input_value']) > 60800: return False source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=value_dict['user_id'])) for _dict in source['treasure_items']: if _dict['uid'] == int(value_dict['item_id']): _dict['level_exp'] = int(value_dict['input_value']) result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=value_dict['user_id']), source) return result
def del_item(value_dict): ''' 删除物品 ''' user_id = int(value_dict['user_id']) item_tid = int(value_dict['item_id']) server_id = int(value_dict['server_id']) cmem_url = server_define.CMEM_MAP[server_id] if cmem_url: source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id)) for _dict in source['treasure_items']: if item_tid == _dict['uid']: source['treasure_items'].remove(_dict) result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id),source) return result else: return False
def set_everyday_vip_reward_data_function(value_dict): """ 修改memcache数据 每日VIP奖励 不修改 """ cmem_url = server_define.CMEM_MAP[int(value_dict["server_id"])] if cmem_url: if len(value_dict["user_id"]): source = memcache.get_cmem_val( cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=value_dict["user_id"]) ) # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=value_dict["user_id"]), source ) return result
def set_memcache(value_dict): ''' 修改memcache数据 ''' cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): if int(value_dict['input_value']) < 0: return False source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=value_dict['user_id'])) old_value = source['items'][int(value_dict['item_id'])] source['items'][int(value_dict['item_id'])] = int(value_dict['input_value']) result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=value_dict['user_id']), source) # 操作日志记录 insert_action_change_item(value_dict['manager'], str(value_dict['server_id']), str(value_dict['user_id']), value_dict['item_id'], old_value, value_dict['input_value']) return result
def set_gym_zone_star(request): print request.POST if request.POST: ps=request.POST.get('ps') server_id=request.POST.get('server_id') user_id=request.POST.get('user_id') print user_id value=request.POST.get('value') key=request.POST.get('key') cmem_url = server_define.CMEM_MAP[int(server_id)] source = memcache.get_cmem_val(cmem_url, model_define.GYM_MODEL.format(user_id=user_id)) source[key][int(ps)-1] = int(value) data=memcache.put_cmem_val(cmem_url,model_define.GYM_MODEL.format(user_id=user_id),source) if data==True: data='True' elif data==False: data='False' return HttpResponse(data)
def set_everyday_vip_reward_data_function(value_dict): """ 修改memcache数据 每日VIP奖励 不修改 """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val( cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format( user_id=value_dict['user_id'])) # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format( user_id=value_dict['user_id']), source) return result
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 edit_function(_cmem_url, _source, _will_edit_data, _will_edit_tid, _will_edit_tid_level,): try: # 如果有数据 求要修改数据的下标 修改数据 if _cmem_url and _source and _will_edit_data and _will_edit_tid and _will_edit_tid_level: equip_data = _source['equips'] # 求list下标 index = equip_data.index(_will_edit_data) # 修改装备tid equip_data[index]['tid'] = _will_edit_tid # 修改等级 equip_data[index]['level'] = _will_edit_tid_level # 修改装备类型 equip_config = game_config.get_equipment_config(int(_will_edit_tid)) equip_data[index]['type'] = equip_config['type'] # 外层检测 返回TRUE FALSE result = memcache.put_cmem_val(_cmem_url, model_define.EQUIP_MODEL.format(user_id=int(_source['uid'])), _source) return result else: return False except: return False
def set_player_activity_regist_recharge_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] has_reward_lst$$0 complete_id$$-1 active_id$$-1 value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val( cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format( user_id=value_dict['user_id'])) try: print 'this is source is: ', source # second_key 是int类型 input_value = int(value_dict['input_value']) (first_key, second_key) = value_dict['item_id'].split('$$') second_key = int(second_key) if second_key >= 0: # has_reward_lst if input_value == 0: source[first_key].remove(second_key) elif input_value == 1: source[first_key].append(second_key) else: return False elif second_key == -1: # complete_id active_id source[first_key] = input_value else: return False except: return False # source = {'uid': '1000103005', 'complete_id': 2, 'recharge_date': datetime.date(2015, 8, 1), 'has_reward_lst': [1], 'reward_end_date': datetime.date(2015, 7, 25), 'active_id': 4} # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format( user_id=value_dict['user_id']), source) return result
def set_player_activity_normal_stage_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] normal_win_count value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=value_dict['user_id'])) try: key = value_dict['item_id'] if int(value_dict['input_value']) >= 0 and 'normal_win_count' == key: source['num'] = int(value_dict['input_value']) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=value_dict['user_id']), source) return result
def add_item(value_dict): ''' 增加物品push memcache ''' user_id = int(value_dict['user_id']) item_tid = int(value_dict['item_id']) server_id = int(value_dict['server_id']) cmem_url = server_define.CMEM_MAP[server_id] if cmem_url: if user_id: source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id)) if item_tid in source['items']: return False else: source['items'][item_tid] = 0 result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id),source) # 操作日志记录 insert_action_add_item(value_dict['manager'], str(server_id), str(user_id), item_tid, 0) return result
def set_player_activity_recharge_long_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] recharge_num value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_RECHARGE_LONG_MODEL.format(user_id=value_dict['user_id'])) try: key = value_dict['item_id'] if int(value_dict['input_value']) >= 0 and 'recharge_num' == key: source['recharge_rmb_num'] = int(value_dict['input_value']) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_RECHARGE_LONG_MODEL.format(user_id=value_dict['user_id']), source) return result
def set_player_activity_time_limited_shop_function(value_dict): """ 修改memcache数据 value_dict['tem_id'] u'2'$$'num_dict' value_dict['input_value'] int """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val( cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHOP_MODEL.format( user_id=value_dict['user_id'])) # print 'source__', source try: input_int_val = int(value_dict['input_value']) (second_key, first_key) = (value_dict['item_id']).split('$$') # 要修改的key second_key = int(second_key) if input_int_val > 0 and second_key > 0: if second_key in source[first_key].keys(): source[first_key][second_key] = input_int_val else: source[first_key].update({second_key: input_int_val}) elif input_int_val == 0 and second_key > 0: if second_key in source[first_key].keys(): source[first_key].pop(second_key) else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHOP_MODEL.format( user_id=value_dict['user_id']), source) return result
def set_gym_value(request): print request.POST key=request.POST.get('key') server_id=request.POST.get('server_id') user_id=request.POST.get('user_id') value=request.POST.get('value') junge=0 alert_info='' print value cmem_url = server_define.CMEM_MAP[int(server_id)] source = memcache.get_cmem_val(cmem_url, model_define.GYM_MODEL.format(user_id=user_id)) if key=='cur_reset_gym_count': if int(value) not in [0,1,2,3]: alert_info='应取值0~3之间' elif key=='cur_gym_id': if get_gym_stage_config(int(value))==None: alert_info='道馆关卡ID应取值1~60之间' else: value=((get_gym_stage_config(int(value))['zone']-1)*3)+1 print value,'value' elif key=='cur_use_star': if int(value) > source['cur_star_num']: alert_info='‘当前已使用星级’不可大于‘当前星级’' if alert_info!='': return HttpResponse(alert_info) else: if value =='False' or value=='True': if value=='False': source[key]=False else: source[key]=True else: source[key]=int(value) print source data=memcache.put_cmem_val(cmem_url,model_define.GYM_MODEL.format(user_id=user_id),source) if data: return HttpResponse(alert_info)
def del_item(value_dict): ''' 删除物品 ''' user_id = int(value_dict['user_id']) item_tid = int(value_dict['item_id']) server_id = int(value_dict['server_id']) cmem_url = server_define.CMEM_MAP[server_id] if cmem_url: if user_id and item_tid: source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id)) if item_tid in source['items']: print item_tid del_num = source['items'][item_tid] source['items'].pop(item_tid) result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id),source) # 操作日志记录 insert_action_delete_item(value_dict['manager'], str(server_id), str(user_id), item_tid, del_num) return result else: return False
def set_union_stage_function(value_dict): """ 修改memcache数据 tem_id 30057$$num """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): # 注 此处user_id 是union_id source = memcache.get_cmem_val( cmem_url, model_define.UNION_STAGE_CAS_MODEL.format( union_id=value_dict['union_id'])) # try: # (first_key, second_key) = value_dict['item_id'].split('$$') # first_key = int(first_key) # input_value = int(value_dict['input_value']) # second_key = str(second_key) # # print first_key, second_key, input_value # # if 'num' == second_key and 0 <= input_value: # source['stages'][first_key][second_key] = input_value # elif 'rank' == second_key and (0 == input_value or -1 == input_value): # source['stages'][first_key][second_key] = input_value # elif 'buy_count' == second_key and 0 <= input_value: # source['stages'][first_key][second_key] = input_value # else: # return False # except: # return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.UNION_STAGE_CAS_MODEL.format( union_id=value_dict['union_id']), source) return result
def set_stage_data_function(value_dict): """ 修改memcache数据 tem_id 30057$$num """ cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])] if cmem_url: if len(value_dict['user_id']): source = memcache.get_cmem_val( cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id'])) try: (first_key, second_key) = value_dict['item_id'].split('$$') first_key = int(first_key) input_value = int(value_dict['input_value']) second_key = str(second_key) # print first_key, second_key, input_value if 'num' == second_key and 0 <= input_value: source['stages'][first_key][second_key] = input_value elif 'rank' == second_key and (0 == input_value or -1 == input_value): source['stages'][first_key][second_key] = input_value elif 'buy_count' == second_key and 0 <= input_value: source['stages'][first_key][second_key] = input_value else: return False except: return False # 传回 url uid 以及数据 做外层检测 result = memcache.put_cmem_val( cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id']), source) return result
def system_mail_update(request): """ 更新广播 """ if request.method == 'POST': version = str(request.POST.get('version')) server_id_str = str(request.POST.get('server_id')) target_user_uid = str(request.POST.get('target_user_uid')) title = str(request.POST.get('title')) send_time = datetime.datetime.strptime(request.POST.get('send_time'), "%Y-%m-%d %H:%M:%S") indate = datetime.datetime.strptime(request.POST.get('indate'), "%Y-%m-%d %H:%M:%S") gold = int(request.POST.get('gold')) stone = int(request.POST.get('stone')) free_draw_material = int(request.POST.get('free_draw_material')) item = int(request.POST.get('item')) item_num = int(request.POST.get('item_num')) monster = int(request.POST.get('monster')) star = int(request.POST.get('star')) # 插入系统邮件 mail = dict() mail['version'] = version mail['server_id'] = server_id_str mail['target_user_uid'] = target_user_uid mail['title'] = title mail['indate'] = indate mail['send_time'] = send_time mail['gold'] = gold mail['stone'] = stone mail['free_draw_material'] = free_draw_material mail['item'] = item mail['item_num'] = item_num mail['monster'] = monster mail['monster_star_level'] = star print("mail: " + str(mail)) if not server_id_str: all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if not server_notice_box_model: server_notice_box_model = { 'uid': 'game_system_mail_box', 'mails': [], 'seq_id': '20150729_1' } add_system_mail(server_notice_box_model, mail) print("server_notice_box_model: " + str(server_notice_box_model)) memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_add_mail(manager, mail) else: server_int_lst = string_split_to_int_list(server_id_str, ',') for server_int in server_int_lst: cmem_url = server_define.CMEM_MAP[int(server_int)] if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if not server_notice_box_model: server_notice_box_model = { 'uid': 'game_system_mail_box', 'mails': [], 'seq_id': '20150729_1' } add_system_mail(server_notice_box_model, mail) print("server_notice_box_model: " + str(server_notice_box_model)) memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_add_mail(manager, mail) return HttpResponseRedirect('/Tyranitar6/server/system_mail_lst/') else: return render_to_response("system_mail/system_mail_add.html", RequestContext(request))
def create_monster(user_id, monster_uid, server_id, monster_tid, star_level, level): """ 创建一个宠物 """ try: 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))) mon_config = game_config.get_monster_config(monster_tid) mon = dict() mon["uid"] = int(monster_uid) # 序号 mon["playerID"] = str(user_id) # 所属玩家ID mon["tid"] = int(monster_tid) # 数据表ID rand_sex = _random_sex(monster_tid) mon["sex"] = rand_sex # 性别(0-1) mon["individual"] = [0] * 6 # 个体值 mon["effort"] = 0 # 努力值 (变化: 突破) mon["personality"] = random.randint(1, 25) # 性格 (1-25) mon["generation"] = 1 # 世代值 (1-6) mon["createTime"] = datetime.datetime.now() mon["exp"] = 0 # 经验 mon["level"] = int(level) # 等级 mon["maxLevel"] = 30 # 等级上限 # 技能等级 skills_level = [] # 技能经验 skills_exp = [] for index in range(1, 3): skills_level.append(1) skills_exp.append(0) mon["skillsLevel"] = skills_level # 技能等级 mon["skillsExp"] = skills_exp # 技能经验 # 星级部分 mon["starLevel"] = int(star_level) # 星级 mon['star_level_exp'] = get_monster_star_num( mon['starLevel']) # 星级对应的吃卡 mon['star_level_rate'] = 0 # 升星比率 # 进化部分 mon['evo_sun_stone'] = 0 # 进化太阳石 mon['evo_level'] = mon_config['defeatEvoClass'] # 进化等级 mon['evo_fail_count'] = 0 # 进化失败次数 monster_model['seq_id'] += 1 monster_model['monsters'].append(mon) # 检测最高数值 if monster_model['monster_high_level'] < mon['level']: monster_model['monster_high_level'] = mon['level'] if monster_model['monster_high_star_level'] < mon['starLevel']: monster_model['monster_high_star_level'] = mon['starLevel'] if monster_model['monster_high_quality'] < mon_config['color']: monster_model['monster_high_quality'] = mon_config['color'] if monster_tid not in monster_model['monster_kind']: monster_model['monster_kind'].append(monster_tid) memcache.put_cmem_val( cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)), monster_model) return True except: return False
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 player_commit_bugs_mail_update(request): """ 回信 """ time = str(request.POST.get("time")) version = str(request.POST.get('version')) server_id_str = str(request.POST.get('server_id')) target_user_uid = str(request.POST.get('target_user_uid')) title = str(request.POST.get('title')) send_time = datetime.datetime.strptime(request.POST.get('send_time'),"%Y-%m-%d %H:%M:%S") indate = datetime.datetime.strptime(request.POST.get('indate'),"%Y-%m-%d %H:%M:%S") gold = int(request.POST.get('gold')) stone = int(request.POST.get('stone')) free_draw_material = int(request.POST.get('free_draw_material')) item = int(request.POST.get('item')) item_num = int(request.POST.get('item_num')) monster = int(request.POST.get('monster')) star = int(request.POST.get('star')) # 插入系统邮件 mail = dict() mail['version'] = version mail['server_id'] = server_id_str mail['target_user_uid'] = target_user_uid mail['title'] = title mail['indate'] = indate mail['send_time'] = send_time mail['gold'] = gold mail['stone'] = stone mail['free_draw_material'] = free_draw_material mail['item'] = item mail['item_num'] = item_num mail['monster'] = monster mail['monster_star_level'] = star print("mail: "+str(mail)) cmem_url = server_define.CMEM_MAP[int(server_id_str)] if cmem_url: player_mail_box_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_MAIL_BOX_MODEL.format(user_id=target_user_uid)) if not player_mail_box_model: player_mail_box_model = { 'uid': target_user_uid, 'system_mail': [], 'seq': '1000' } # 给玩家发送邮件 告知返还事宜 add_system_mail(player_mail_box_model, mail) print("player_mail_box_model: "+str(player_mail_box_model)) memcache.put_cmem_val(cmem_url, model_define.PLAYER_MAIL_BOX_MODEL.format(user_id=target_user_uid), player_mail_box_model) # 操作日志记录 manager = GameManager.get_by_request(request) insert_action_add_bug_mail(manager, mail) player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL) if player_commit_bugs_model: print player_commit_bugs_model mail_bug = get_bug_uid_time(player_commit_bugs_model,target_user_uid, time) mail_bug['handle'] = True memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model) return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
def system_mail_lst(request): """ 广播列表 """ data = {} table_list = [] all_background_notice_dict = dict() all_cmem_dict = server_define.CMEM_MAP for key, val in all_cmem_dict.items(): cmem_url = str(val) if cmem_url: server_notice_box_model = memcache.get_cmem_val( cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL) if server_notice_box_model: memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model) print server_notice_box_model check_system_expiry(server_notice_box_model) notices_lst = server_notice_box_model['mails'] if notices_lst: for mail_dict in notices_lst: if mail_dict: print mail_dict mail_dict['version'] = mail_dict.get('version', 0) if 'send_time' in mail_dict: send_time = mail_dict['send_time'] mail_dict['send_time'] = send_time.strftime( "%Y-%m-%d %H:%M:%S") if send_time <= datetime.datetime.now(): mail_dict['send_time'] += " (已开始)" else: mail_dict['send_time'] = " 错误 " if 'expiry_date' in mail_dict: expiry_date = mail_dict['expiry_date'] mail_dict[ 'expiry_date'] = expiry_date.strftime( "%Y-%m-%d %H:%M:%S") if expiry_date <= datetime.datetime.now(): mail_dict['expiry_date'] += " (已开始)" else: mail_dict['expiry_date'] = " 错误 " all_background_notice_dict[ mail_dict['version']] = mail_dict print("all_background_notice_dict: " + str(all_background_notice_dict)) for key_uid, value in all_background_notice_dict.items(): if value: temp_content = [] temp_content.insert(0, str(key_uid)) temp_content.insert(1, value.get('server_id', '')) temp_content.insert(2, value['target_user_uid']) temp_content.insert(3, str(value['title'])) temp_content.insert(4, value['send_time']) temp_content.insert(5, value['expiry_date']) temp_content.insert(6, str(value['gold'])) temp_content.insert(7, str(value['stone'])) temp_content.insert(8, str(value['free_draw_material'])) item_config = game_config.get_item_config(value['item']) if item_config: temp_content.insert(9, str(item_config['name'])) else: temp_content.insert(9, str(u'')) temp_content.insert(10, str(value['item_num'])) monster_config = game_config.get_monster_config(value['monster']) if monster_config: temp_content.insert(11, str(monster_config['name'])) else: temp_content.insert(11, str(u'')) temp_content.insert(12, str(value['monster_star_level'])) table_list.append(temp_content) data['system_mail_info'] = table_list data['head_lst'] = head_lst return render_to_response("system_mail/system_mail_lst.html", data, RequestContext(request))
def set_player_data(request): # 获取管理员信息 manager = GameManager.get_by_request(request) head_lst = [ #{'width': 50, 'name': u'UID'}, { 'width': 50, 'name': u'名称' }, { 'width': 50, 'name': u'当前值' }, { 'width': 50, 'name': u'修改' }, ] server_list_dat = get_server_list_dat() if request.method == 'POST': print request.POST, 'post' user_id = request.POST.get('user_id') server_id = int(request.POST.get('server_id')) typ = request.POST.get('type') value = request.POST.get('value') #print 'value',value if value <> '': if typ <> 'str': if typ == 'bool': value = eval(typ)(eval(value)) else: value = eval(typ)(value) #print value key = request.POST.get('key') data = '' if key == 'newbie': # print 'newbie' # print int(value) # print get_newbie_phase_config(int(value)) if get_newbie_phase_config(int(value)) == None: data = '新手引导ID应在1~5之间' elif key == 'gold': pass elif key == 'champion_index': if int(value) not in [1, 2, 3, 4, 0]: data = '冠军宠物位置应该在0~4之间' elif key == 'reward_cur_monster_star_level_id': if get_reward_monster_star_level_config(int(value)) == None: data = u'宠物等级奖励序列应在1~18之间' elif key == 'universal_fragment': pass elif key == 'title': if get_the_title_config(int(value)) == None: data = '玩家爵位应在1~21之间' elif key == 'consumption_point': pass elif key == 'role_id': pass elif key == 'reward_login_series_id': pass elif key == 'reward_cur_monster_kind_id': if get_reward_monster_kind_config(int(value)) == None: data = '宠物种类奖励序列应在1~18之间' elif key == 'has_first_recharge_lst': pass elif key == 'is_stone_one_draw': if int(value) not in [0, 1]: data = '首次钻石单抽状态取值应为0或1,0代表未抽过,1代表抽过' elif key == 'is_ten_draw': if int(value) not in [0, 1]: data = '首次钻石十连抽状态取值应为0或1,0代表未抽过,1代表抽过' elif key == 'champion_tid': cmem_url = server_define.CMEM_MAP[int(server_id)] source = memcache.get_cmem_val( cmem_url, model_define.MONSTER_MODEL.format(user_id=user_id)) # print source['monsters'] sign = 0 for i in source['monsters']: if int(value) == i['tid']: sign = 1 # print sign if sign == 0: data = u'输入的宠物id不属于玩家拥有的宠物之一,请正确输入,玩家现有宠物:' for i in source['monsters']: a = '(%s:%s)' % (i['tid'], get_monster_config( i['tid'])['name']) data += a elif key == 'champion_power': pass elif key == 'name': pass elif key == 'level': if int(value) > 120 or int(value) < 1: data = u'玩家等级应在1~120级之间,请输入正确的值' elif key == 'cur_stage': if get_stages_config(int(value)) == None: data = u'关卡ID输入错误' elif key == 'reward_cur_monster_quality_id': if get_reward_monster_quality_config(int(value)) == None: data = u'当前宠物品质奖励序列应在1~3之间' elif key == 'reward_cur_team_combat_power_id': if get_reward_team_power(int(value)) == None: data = u'当前队伍战斗力奖励序列应在1~47之间' elif key == 'reward_friend_num_id': if get_fried_num_config(int(value)) == None: data = u'好友数量奖励序列应在1~6之间' elif key == 'reward_cur_monster_level_id': if get_reward_monster_level_config(int(value)) == None: data = u'宠物等级奖励序列应在1~10之间' if value <> '' and data == '': # print "i'work" cmem_url = server_define.CMEM_MAP[int(server_id)] if cmem_url: source = memcache.get_cmem_val( cmem_url, model_define.PLAYER_MODEL.format(user_id=user_id)) if eval(typ) == type(value) or (typ == 'str' and type(value) == unicode): #print source,key,value,user_id,type(user_id) old_value = source[key] source[key] = value memcache.put_cmem_val( cmem_url, model_define.PLAYER_MODEL.format(user_id=user_id), source) # 操作日志记录 insert_action_edit_player(manager, str(server_id), str(user_id), key, old_value, value) return HttpResponse(data)