/////////////////////////////////////////////////////////////// /////////////// cls_youle_platform_agent: 运营商 ///////////////// /////////////////////////////////////////////////////////////// var cls_youle_platform_agent = cls_youle_platform_agent || { //构造函数 new: function(agentid, name, logo, server, server_visitor, port_tcp, port_http, managecode){ var agent = {}; agent.agentid = agentid; agent.name = name; agent.logo = logo; agent.server = server; agent.server_visitor = server_visitor; agent.port_tcp = port_tcp; agent.port_http = port_http; agent.managecode = managecode; //渠道列表 agent.channels = []; //方法 agent.method = {}; //载入渠道(没找到则创建) agent.method.load_channel = function(channelid, func_return){ cls_youle_platform_agent.load_channel(agent, channelid, func_return); }; return agent; }, //载入渠道(没找到则创建) load_channel: function(o_agent, channelid, func_return){ var db_callback = function(dbdata) { var o_channel = {}; o_channel.channelid = dbdata[0].agch_channelid; o_channel.tel = dbdata[0].agch_sales_tel; o_channel.wechat = dbdata[0].agch_sales_wechat; o_channel.youle_appid = dbdata[0].agch_youle_appid; o_channel.youle_devkey = dbdata[0].agch_youle_devkey; o_channel.youle_busiid = dbdata[0].agch_youle_busiid; var idx = cls_youle_platform_agent.aryidx_channel(o_channel.channelid); if (o_agent.channels.length <= idx) { o_agent.channels.length = idx + 1; } o_agent.channels[idx] = o_channel; func_return(o_channel); } if (!channelid){ channelid = ""; } var sql = "call cp_platform_get_agentchannel(?,?);"; youle_platform.mysql.execsql("opensql", sql, [o_agent.agentid, channelid], db_callback); }, //计算渠道的数组下标 aryidx_channel: function(channelid){ //channelid的5、10、15、20四位组成数组下标 var idx = parseInt(channelid.substr(4, 1) + channelid.substr(9, 1) + channelid.substr(14, 1) + channelid.substr(19, 1)); if (isNaN(idx)){ return -1; } return idx; } } /////////////////////////////////////////////////////////////// /////////// cls_youle_platform_agentlist: 运营商列表 ////////// /////////////////////////////////////////////////////////////// var cls_youle_platform_agentlist = cls_youle_platform_agentlist || { //构造函数 new: function() { var agentlist = {}; //代理商列表 agentlist.list = []; //开启定时在每天凌晨3:00到4:00之间删除超时战绩的定时器 var do_del_grade = function(){ //判断时间是否在范围内 var time_range = function (beginTime, endTime) { var strb = beginTime.split (":"); if (strb.length != 2) { return false; } var stre = endTime.split (":"); if (stre.length != 2) { return false; } var b = new Date(); var e = new Date(); var n = new Date(); b.setHours(strb[0]); b.setMinutes(strb[1]); e.setHours(stre[0]); e.setMinutes(stre[1]); if (n.getTime() > b.getTime() && n.getTime() < e.getTime()){ return true; } else { return false; } } if (time_range("3:00", "4:00")){ var sql = "call cp_game_del_timeout_task(null);"; youle_platform.mysql.execsql("execsql", sql, []); } if (time_range("4:00", "5:00")){ var sql = "call cp_game_grade_del();"; youle_platform.mysql_grade.execsql("execsql", sql, []); } } agentlist.timer_delgrade = min_ontime(do_del_grade, 59 * 60 * 1000); //方法 agentlist.method = {}; //载入代理商(没找到则创建) agentlist.method.load_agent = function(agentid, func_return){ var o_agent = agentlist.method.find_agent(agentid); if (o_agent){ func_return(o_agent); } else { var db_callback = function(dbdata) { var db_agentid = dbdata[0].agen_agentid; var db_name = dbdata[0].agen_name; var db_logo = dbdata[0].agen_logo; var db_server = dbdata[0].agen_server; var db_server_visitor = dbdata[0].agen_server_visitor; var db_port_tcp = parseInt(dbdata[0].agen_port_tcp); var db_port_http = parseInt(dbdata[0].agen_port_http); var db_managecode = dbdata[0].agen_managecode; o_agent = cls_youle_platform_agent.new(db_agentid, db_name, db_logo, db_server, db_server_visitor, db_port_tcp, db_port_http, db_managecode); var idx = agentlist.method.aryidx_agent(db_agentid); agentlist.list[idx] = o_agent; func_return(o_agent); } var sql = "call cp_platform_get_agentserver(?);"; youle_platform.mysql.execsql("opensql", sql, [agentid], db_callback); } }; //查找运营商 agentlist.method.find_agent = function(agentid){ var idx = agentlist.method.aryidx_agent(agentid); if (idx == -1){ return null; } if (agentlist.list.length <= idx){ return null; } if (!agentlist.list[idx]){ return null; } if (agentlist.list[idx].agentid != agentid){ return null; } return agentlist.list[idx]; }; //计算运营商的数组下标 agentlist.method.aryidx_agent = function(agentid) { //agentid的5、10、15、20四位组成数组下标 var idx = parseInt(agentid.substr(4, 1) + agentid.substr(9, 1) + agentid.substr(14, 1) + agentid.substr(19, 1)); if (isNaN(idx)){ return -1; } return idx; }; return agentlist; } } //运营商列表 youle_platform.agents = cls_youle_platform_agentlist.new();