目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View File

@@ -0,0 +1,190 @@
///////////////////////////////////////////////////////////////
/////////////// 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();

View File

@@ -0,0 +1,303 @@
///////////////////////////////////////////////////////////////
//////////// cls_youle_platform_config: 系统配置 //////////////
///////////////////////////////////////////////////////////////
var cls_youle_platform_config = cls_youle_platform_config || {
//构造函数
new: function(_url_config){
var config = {};
//方法
config.method = {};
//读取配置文件的内容
config.method.get_config = function(){
cls_youle_platform_config.get_config(config);
}
//获取参数配置
config.method.get_paravalue = function(paraname, agentid, gameid, channelid, marketid){
return cls_youle_platform_config.get_paravalue(config, paraname, agentid, gameid, channelid, marketid);
}
//获取游戏列表_下载页面
config.method.get_gamelist_downhtml = function(agentid, channelid){
return cls_youle_platform_config.get_gamelist_downhtml(config, agentid, channelid);
}
//获取游戏列表_游戏大厅
config.method.get_gamelist_gamehall = function(agentid, channelid, marketid){
return cls_youle_platform_config.get_gamelist_gamehall(config, agentid, channelid, marketid);
}
//获取代理城市列表
config.method.get_agentlist = function(agentid, channelid){
return cls_youle_platform_config.get_agentlist(config, agentid, channelid);
}
//获取子游戏服务器列表
config.method.get_gameserver_list = function(agentid){
return cls_youle_platform_config.get_gameserver_list(config, agentid);
}
//配置文件地址
config.url = _url_config;
//配置文件内容
config.data = null;
//定时器定时读取配置文件
config.timer_getdata = min_ontime(config.method.get_config, 30 * 1000);
return config;
},
//读取配置文件的内容
get_config: function(o_config){
var cfg = {};
cfg.url = o_config.url + "?" + min_timestamp();
cfg.type = "POST";
cfg.data = "";
cfg.success = function(str){
if (str){
try{
var data = JSON.parse(str);
o_config.data = data;
}
catch(e){
}
}
};
cfg.error = function(str){};
min_http(cfg);
},
//获取参数配置
get_paravalue: function(o_config, paraname, agentid, gameid, channelid, marketid){
var paravalue = null;
//遍历数组匹配key获取参数值
var do_get_para = function(arylist, keyname, keyvalue){
if (arylist && keyname && keyvalue){
for (var i = 0; i < arylist.length; i++){
if (arylist[i][keyname] == keyvalue){
if (arylist[i][paraname]){
paravalue = arylist[i][paraname];
}
return arylist[i];
}
}
}
return null;
}
if (!o_config.data){
return paravalue;
}
if (o_config.data[paraname]){
paravalue = o_config.data[paraname];
}
var _o_agent = do_get_para(o_config.data.agentlist, "agentid", agentid);
if (!_o_agent){
return paravalue;
}
var _o_game = do_get_para(_o_agent.gamelist, "gameid", gameid);
if (!_o_game){
return paravalue;
}
var _o_channel = do_get_para(_o_game.channellist, "channelid", channelid);
if (!_o_channel){
return paravalue;
}
var _o_market = do_get_para(_o_channel.marketlist, "marketid", marketid);
if (!_o_market){
return paravalue;
}
return paravalue;
},
//获取游戏列表_下载页面
get_gamelist_downhtml: function(o_config, agentid, channelid){
var gamelist = [];
if (!o_config.data){
return gamelist;
}
if (!o_config.data.agentlist){
return gamelist;
}
for (var i = 0; i < o_config.data.agentlist.length; i++){
if (o_config.data.agentlist[i].agentid == agentid){
var _o_agent = o_config.data.agentlist[i];
if (_o_agent.gamelist){
for (var j = 0; j < _o_agent.gamelist.length; j++) {
var _o_game = _o_agent.gamelist[j];
var o_game = {};
o_game.name = _o_game.gamename;
o_game.image = _o_game.game_down_image;
o_game.state = _o_game.game_down_state;
o_game.memo = _o_game.game_down_memo;
if (_o_game.channellist){
for (var k = 0; k < _o_game.channellist.length; k++) {
var _o_channel = _o_game.channellist[k];
if (_o_channel.channelid == channelid){
var _ios_marketid = _o_channel.ios_defdownload_marketid;
var _and_marketid = _o_channel.and_defdownload_marketid;
if (_o_channel.marketlist){
for (var m = 0; m < _o_channel.marketlist.length; m++) {
var _o_market = _o_channel.marketlist[m];
if (_o_market.marketid == _ios_marketid){
o_game.ios_down = _o_market.app_download;
o_game.ios_size = _o_market.app_size;
o_game.ios_marketid = _ios_marketid;
}
if (_o_market.marketid == _and_marketid){
o_game.android_down = _o_market.app_download;
o_game.android_size = _o_market.app_size;
}
}
}
if (o_game.ios_down && o_game.android_down){
gamelist.push(o_game);
}
break;
}
}
}
}
}
break;
}
}
return gamelist;
},
//获取游戏列表_游戏大厅
get_gamelist_gamehall: function(o_config, agentid, channelid, marketid){
var gamelist = [];
if (!o_config.data){
return gamelist;
}
if (!o_config.data.agentlist){
return gamelist;
}
for (var i = 0; i < o_config.data.agentlist.length; i++){
if (o_config.data.agentlist[i].agentid == agentid){
var _o_agent = o_config.data.agentlist[i];
if (_o_agent.gamelist){
for (var j = 0; j < _o_agent.gamelist.length; j++){
var _o_game = _o_agent.gamelist[j];
if (_o_game.gameid != "G2hw0ubng0zcoI0r4mx3H2yr4GejidwO"){
var o_game = {};
o_game.gameid = _o_game.gameid;
o_game.gamename = _o_game.gamename;
o_game.gamedir = _o_game.game_hall_dir;
o_game.gameimage = _o_game.game_hall_image;
o_game.gameversion = _o_game.game_version;
o_game.gamezip = _o_game.game_zip;
o_game.zipsize = _o_game.game_size;
if (_o_game.channellist){
for (var k = 0; k < _o_game.channellist.length; k++) {
var _o_channel = _o_game.channellist[k];
if (_o_channel.channelid == channelid){
if (_o_channel.game_version > 0){
o_game.gameversion = _o_channel.game_version;
}
if (_o_channel.game_zip){
o_game.gamezip = _o_channel.game_zip;
}
if (_o_channel.game_size){
o_game.zipsize = _o_channel.game_size;
}
if (_o_channel.marketlist){
for (var m = 0; m < _o_channel.marketlist.length; m++) {
var _o_market = _o_channel.marketlist[m];
if (_o_market.marketid == marketid){
if (_o_market.game_version > 0){
o_game.gameversion = _o_market.game_version;
}
if (_o_market.game_zip){
o_game.gamezip = _o_market.game_zip;
}
if (_o_market.game_size){
o_game.zipsize = _o_market.game_size;
}
break;
}
}
}
gamelist.push(o_game);
break;
}
}
}
}
}
}
break;
}
}
return gamelist;
},
//获取代理城市列表
get_agentlist: function(o_config, agentid, channelid){
var agentlist = [];
if (!o_config.data){
return gamelist;
}
if (!o_config.data.agentlist){
return gamelist;
}
for (var i = 0; i < o_config.data.agentlist.length; i++){
if (o_config.data.agentlist[i].agentid == agentid || o_config.data.agentlist[i].relagentid == agentid){
var o_agent = {};
o_agent.agentid = o_config.data.agentlist[i].agentid;
o_agent.name = o_config.data.agentlist[i].agentname;
o_agent.channelid = o_config.data.agentlist[i].gamelist[0].channellist[0].channelid;
agentlist.push(o_agent);
}
}
return agentlist;
},
//获取子游戏服务器列表
get_gameserver_list: function(o_config, agentid){
var iplist = [];
var paraname = "game_server_http";
var do_pushto_iplist = function(ip){
var idx = min_ary_indexof(iplist, ip);
if (idx == -1){
iplist.push(ip);
}
}
if (!o_config.data || !o_config.data.agentlist){
return iplist;
}
var idx_agent = min_ary_indexof(o_config.data.agentlist, agentid, "agentid");
if (idx_agent == -1){
return iplist;
}
var o_agent = o_config.data.agentlist[idx_agent];
if (!o_agent){
return iplist;
}
if (o_config.data[paraname]){
do_pushto_iplist(o_config.data[paraname]);
}
if (o_agent[paraname]){
do_pushto_iplist(o_agent.data[paraname]);
}
if (o_agent.gamelist){
for (var j = 0; j < o_agent.gamelist.length; j++) {
var o_game = o_agent.gamelist[j];
if (o_game[paraname]){
do_pushto_iplist(o_game[paraname]);
}
}
}
return iplist;
}
}
//系统配置
youle_platform.config = cls_youle_platform_config.new("http://testgame.youlehdyx.com/update_json/ceshi_json.txt");
youle_platform.config.method.get_config();

View File

@@ -0,0 +1,210 @@
//////////////////////////////////////////////////////////////////
//////////////////////////游戏平台服务器//////////////////////////
//////////////////////////////////////////////////////////////////
//系统配置
min_loadJsFile("youle/server_platform/class.config.js", function(){
//运营商
min_loadJsFile("youle/server_platform/class.agent.js", function(){
});
});
var youle_platform = youle_platform || cls_mod.new("youle_platform", "platform", youle_app);
//运营商列表
youle_platform.agents = null;
//系统配置
youle_platform.config = null;
//mysql操作类
youle_platform.mysql = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql.php", youle_platform.app.SendPack);
youle_platform.mysql_grade = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql_grade.php", youle_platform.app.SendPack);
//游戏获取代理商服务器地址
youle_platform.agentserver_game = function(pack){
var agentid = pack.data.agentid;
var gameid = pack.data.gameid;
var channelid = pack.data.channelid;
var marketid = pack.data.marketid;
//返回运营商信息
var do_return_agentinfo = function(o_agent){
if (!o_agent){
return;
}
pack.data = {};
pack.data.state = 0;
pack.data.agentid = o_agent.agentid;
pack.data.urlserver = o_agent.server + ":" + o_agent.port_tcp;
pack.data.visitorserver = o_agent.server_visitor + ":" + o_agent.port_tcp;
pack.data.urlserver_http = o_agent.server + ":" + o_agent.port_http;
pack.data.visitorserver_http = o_agent.server_visitor + ":" + o_agent.port_http;
//系统配置json
pack.data.logimage = youle_platform.config.method.get_paravalue("logimage", agentid, gameid, channelid, marketid);
pack.data.loginimage = parseInt(youle_platform.config.method.get_paravalue("loginimage", agentid, gameid, channelid, marketid));
youle_platform.app.SendPack(pack);
}
youle_platform.agents.method.load_agent(agentid, do_return_agentinfo);
}
//公众号页面获取代理商的服务器地址
youle_platform.agentserver_web = function(pack){
var agentid = pack.data.agentid;
var channelid = pack.data.channelid;
//返回运营商信息
var do_return_agentinfo = function(o_agent){
if (!o_agent){
return;
}
pack.data = {};
pack.data.agentid = o_agent.agentid;
pack.data.agentname = o_agent.name;
pack.data.agentlogo = youle_platform.config.method.get_paravalue('logimage2', o_agent.agentid);
pack.data.html_buyroomcard = parseInt(youle_platform.config.method.get_paravalue('html_buyroomcard', o_agent.agentid));
pack.data.urlserver = "http://" + o_agent.server + ":" + o_agent.port_http;
//返回渠道商信息
var do_return_channelinfo = function(o_channel){
pack.data.channelid = o_channel.channelid;
pack.data.channeltel = o_channel.tel;
pack.data.channelwechat = o_channel.wechat;
pack.data.youle_appid = o_channel.youle_appid;
pack.data.youle_devkey = o_channel.youle_devkey;
pack.data.youle_busiid = o_channel.youle_busiid;
youle_platform.app.SendPack(pack);
}
o_agent.method.load_channel(channelid, do_return_channelinfo);
}
youle_platform.agents.method.load_agent(agentid, do_return_agentinfo);
}
//关闭服务器
youle_platform.close_agentserver = function(pack){
var agentid = pack.data.agentid;
var managecode = pack.data.managecode;
//返回运营商信息
var do_return_agentinfo = function(o_agent){
if (!o_agent){
return;
}
if (o_agent.managecode != managecode){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
}
var msg = {};
msg.app = "youle";
msg.route = "agent";
msg.rpc = "close_agentserver";
msg.data = {};
msg.data.agentid = agentid;
msg.data.managecode = managecode;
var cfg = {};
cfg.url = "http://" + o_agent.server + ":" + o_agent.port_http + "/index.html";
cfg.type = "POST";
cfg.data = JSON.stringify(msg);
cfg.success = function(str){
if (str){
var _msg = JSON.parse(str);
pack.data = _msg.data;
youle_agent.app.SendPack(pack);
}
};
cfg.error = function(str){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
};
min_http(cfg);
}
youle_platform.agents.method.load_agent(agentid, do_return_agentinfo);
}
//开启服务器
youle_platform.open_agentserver = function(pack){
var agentid = pack.data.agentid;
var managecode = pack.data.managecode;
//返回运营商信息
var do_return_agentinfo = function(o_agent){
if (!o_agent){
return;
}
if (o_agent.managecode != managecode){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
}
var msg = {};
msg.app = "youle";
msg.route = "agent";
msg.rpc = "open_agentserver";
msg.data = {};
msg.data.agentid = agentid;
msg.data.managecode = managecode;
var cfg = {};
cfg.url = "http://" + o_agent.server + ":" + o_agent.port_http + "/index.html";
cfg.type = "POST";
cfg.data = JSON.stringify(msg);
cfg.success = function(str){
if (str){
var _msg = JSON.parse(str);
pack.data = _msg.data;
youle_agent.app.SendPack(pack);
}
};
cfg.error = function(str){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
};
min_http(cfg);
}
youle_platform.agents.method.load_agent(agentid, do_return_agentinfo);
}
//广播即时消息
youle_platform.broadcast = function(pack){
var agentid = pack.data.agentid;
var managecode = pack.data.managecode;
var msgcontent = pack.data.msgcontent;
//返回运营商信息
var do_return_agentinfo = function(o_agent){
if (!o_agent){
return;
}
if (o_agent.managecode != managecode){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
}
var msg = {};
msg.app = "youle";
msg.route = "agent";
msg.rpc = "broadcast";
msg.data = {};
msg.data.agentid = agentid;
msg.data.managecode = managecode;
msg.data.msgcontent = msgcontent;
var cfg = {};
cfg.url = "http://" + o_agent.server + ":" + o_agent.port_http + "/index.html";
cfg.type = "POST";
cfg.data = JSON.stringify(msg);
cfg.success = function(str){
if (str){
var _msg = JSON.parse(str);
pack.data = _msg.data;
youle_agent.app.SendPack(pack);
}
};
cfg.error = function(str){
pack.data = {};
pack.data.state = 1;
youle_platform.app.SendPack(pack);
};
min_http(cfg);
}
youle_platform.agents.method.load_agent(agentid, do_return_agentinfo);
}