generated from root/miduo_server
master
parent
20e9346d4f
commit
0d63b09da6
|
|
@ -40,7 +40,6 @@ public class WebSecurityConfig extends WebMvcConfigurerAdapter{
|
||||||
addInterceptor.excludePathPatterns("/error");
|
addInterceptor.excludePathPatterns("/error");
|
||||||
addInterceptor.excludePathPatterns("/login**");
|
addInterceptor.excludePathPatterns("/login**");
|
||||||
addInterceptor.excludePathPatterns("/req/**");
|
addInterceptor.excludePathPatterns("/req/**");
|
||||||
addInterceptor.excludePathPatterns("/webGetChannelInfo**");
|
|
||||||
|
|
||||||
addInterceptor.addPathPatterns("/**");
|
addInterceptor.addPathPatterns("/**");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -38,6 +39,8 @@ public class ServerInfoController {
|
||||||
@Resource
|
@Resource
|
||||||
private AutoServerManager autoServerManager;
|
private AutoServerManager autoServerManager;
|
||||||
|
|
||||||
|
private static int state = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 各服参数
|
* 各服参数
|
||||||
*/
|
*/
|
||||||
|
|
@ -48,6 +51,7 @@ public class ServerInfoController {
|
||||||
* value : [0]:游戏服端口状态, [1]:支付端口状态
|
* value : [0]:游戏服端口状态, [1]:支付端口状态
|
||||||
*/
|
*/
|
||||||
private static ExpiryMap<String,int[]> portStatusMap = new ExpiryMap<>();
|
private static ExpiryMap<String,int[]> portStatusMap = new ExpiryMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务器信息界面
|
* 服务器信息界面
|
||||||
* @param map
|
* @param map
|
||||||
|
|
@ -55,14 +59,9 @@ public class ServerInfoController {
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/findServerInfo", method = {RequestMethod.POST, RequestMethod.GET})
|
@RequestMapping(value = "/findServerInfo", method = {RequestMethod.POST, RequestMethod.GET})
|
||||||
public String loginVerify(ModelMap map, int quick) throws Exception {
|
public String findServerInfo(ModelMap map, int quick) throws Exception {
|
||||||
List<ServerInfo> serverInfos = serverInfoDao.getAllServerInfo();
|
|
||||||
List<ServerInfoVo> serverInfoVos = new ArrayList<>();
|
List<ServerInfoVo> serverInfoVos = new ArrayList<>();
|
||||||
// 端口验证
|
List<ServerInfo> serverInfos = serverInfoDao.getAllServerInfo();
|
||||||
if (quick == 1){
|
|
||||||
// 更新端口状态
|
|
||||||
portListenHandler();
|
|
||||||
}
|
|
||||||
for (ServerInfo serverInfo : serverInfos) {
|
for (ServerInfo serverInfo : serverInfos) {
|
||||||
if (null == serverInfo.getServer_id()) {
|
if (null == serverInfo.getServer_id()) {
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -71,12 +70,44 @@ public class ServerInfoController {
|
||||||
serverInfoVos.add(serverInfoVo);
|
serverInfoVos.add(serverInfoVo);
|
||||||
}
|
}
|
||||||
map.addAttribute("serverInfos", serverInfoVos);
|
map.addAttribute("serverInfos", serverInfoVos);
|
||||||
|
map.addAttribute("state", state);
|
||||||
return "findServerInfo";
|
return "findServerInfo";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务器信息界面
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/findServerInfoNotCache", method = {RequestMethod.POST, RequestMethod.GET})
|
||||||
|
public String findServerInfoNotCache(ModelMap map) throws Exception {
|
||||||
|
TaskKit.scheduleWithFixedOne(this::refreshCache,0);
|
||||||
|
return findServerInfo(map,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新缓存
|
||||||
|
*/
|
||||||
|
private void refreshCache(){
|
||||||
|
state = 1;
|
||||||
|
try {
|
||||||
|
// 更新全部服务器得信息
|
||||||
|
List<ServerInfo> allServerInfo = serverInfoDao.getAllServerInfo();
|
||||||
|
for (ServerInfo info : allServerInfo) {
|
||||||
|
getServerOpenTime(info.getServer_id(),1);
|
||||||
|
}
|
||||||
|
// 更新端口信息
|
||||||
|
portListenHandler();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
state = 0;
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void onstart(){
|
public void onstart(){
|
||||||
TaskKit.scheduleAtFixedRate(this::portListenHandler,60*30);
|
// 定时任务延迟1分钟执行,每隔俩小时执行一次
|
||||||
|
TaskKit.scheduleAtFixedRate(this::refreshCache,60,7200,TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -67,12 +67,7 @@ public class GMHandler extends BaseHandler {
|
||||||
/**
|
/**
|
||||||
* 天眼禁言封禁
|
* 天眼禁言封禁
|
||||||
*/
|
*/
|
||||||
public static final int SKYEYE_BAN = 7;
|
public static final int SKYEYE_BAN = 11;
|
||||||
/**
|
|
||||||
* 天眼禁言解禁
|
|
||||||
*/
|
|
||||||
public static final int CANCEL_SKYEYE_BAN = 8;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重置公会名称
|
* 重置公会名称
|
||||||
*/
|
*/
|
||||||
|
|
@ -182,23 +177,19 @@ public class GMHandler extends BaseHandler {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取天眼封禁类型
|
* 获取天眼封禁类型
|
||||||
|
* 天眼类型目前只有9、10、11
|
||||||
* @param channel
|
* @param channel
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private int getSkyEyeType(int channel){
|
private int getSkyEyeType(int channel){
|
||||||
int result = 0;
|
int result;
|
||||||
switch (channel){
|
switch (channel){
|
||||||
case 1:
|
case GMHandler.RESET_GUILD_NAME:
|
||||||
case 2:
|
case GMHandler.RESET_GUILD_ANNOUNCEMENT:
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
result = 7;
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
case 10:
|
|
||||||
result = channel;
|
result = channel;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
result = GMHandler.SKYEYE_BAN;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -240,18 +231,18 @@ public class GMHandler extends BaseHandler {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SKYEYE_BAN:
|
case SKYEYE_BAN:
|
||||||
|
// 天眼用户禁言
|
||||||
String banTime = Optional.ofNullable(jsonObject.getString("banTime")).orElse("0");
|
String banTime = Optional.ofNullable(jsonObject.getString("banTime")).orElse("0");
|
||||||
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),SKYEYE_BAN,banTime);
|
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),SKYEYE_BAN,banTime);
|
||||||
break;
|
break;
|
||||||
case CANCEL_SKYEYE_BAN:
|
|
||||||
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),CANCEL_SKYEYE_BAN,0);
|
|
||||||
break;
|
|
||||||
case RESET_GUILD_NAME:
|
case RESET_GUILD_NAME:
|
||||||
|
// 天眼,公会名重置
|
||||||
String banTime1 = jsonObject.getString("banTime");
|
String banTime1 = jsonObject.getString("banTime");
|
||||||
String guildId = jsonObject.getString("guildId");
|
String guildId = jsonObject.getString("guildId");
|
||||||
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),RESET_GUILD_NAME,banTime1,guildId);
|
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),RESET_GUILD_NAME,banTime1,guildId);
|
||||||
break;
|
break;
|
||||||
case RESET_GUILD_ANNOUNCEMENT:
|
case RESET_GUILD_ANNOUNCEMENT:
|
||||||
|
// 天眼 公会宣言重置
|
||||||
String banTime2 = jsonObject.getString("banTime");
|
String banTime2 = jsonObject.getString("banTime");
|
||||||
String guildId2 = jsonObject.getString("guildId");
|
String guildId2 = jsonObject.getString("guildId");
|
||||||
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),RESET_GUILD_ANNOUNCEMENT,banTime2,guildId2);
|
cmd = getCmdContent("skyeye",coreUserInfo.getUserId(),RESET_GUILD_ANNOUNCEMENT,banTime2,guildId2);
|
||||||
|
|
@ -290,12 +281,6 @@ public class GMHandler extends BaseHandler {
|
||||||
private void updateUserBanner(CUserInfo cUser,HttpSession session,JSONObject jsonObject) throws Exception {
|
private void updateUserBanner(CUserInfo cUser,HttpSession session,JSONObject jsonObject) throws Exception {
|
||||||
int type = jsonObject.getIntValue("treat_type");
|
int type = jsonObject.getIntValue("treat_type");
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case GMHandler.SKYEYE_BAN:
|
|
||||||
UserBanned skyeyebanned = userBannedDao.getUserBannedByBannedType(cUser.getUserId(),type);
|
|
||||||
if(skyeyebanned != null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GMHandler.BANNED_TO_POST:
|
case GMHandler.BANNED_TO_POST:
|
||||||
case GMHandler.BANNED_LOGIN:
|
case GMHandler.BANNED_LOGIN:
|
||||||
// 封禁用户
|
// 封禁用户
|
||||||
|
|
@ -308,7 +293,6 @@ public class GMHandler extends BaseHandler {
|
||||||
throw new Exception("该用户已经处于封禁状态,请删除后重新操作");
|
throw new Exception("该用户已经处于封禁状态,请删除后重新操作");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GMHandler.CANCEL_SKYEYE_BAN:
|
|
||||||
case GMHandler.CANCEL_BANNED_TO_POST:
|
case GMHandler.CANCEL_BANNED_TO_POST:
|
||||||
case GMHandler.CANCEL_BANNED_LOGIN:
|
case GMHandler.CANCEL_BANNED_LOGIN:
|
||||||
// 封禁用户
|
// 封禁用户
|
||||||
|
|
@ -383,12 +367,9 @@ public class GMHandler extends BaseHandler {
|
||||||
case GMHandler.BANNED_TO_POST:
|
case GMHandler.BANNED_TO_POST:
|
||||||
resultType = GMHandler.CANCEL_BANNED_TO_POST;
|
resultType = GMHandler.CANCEL_BANNED_TO_POST;
|
||||||
break;
|
break;
|
||||||
case GMHandler.BANNED_LOGIN:
|
case GMHandler.BANNED_LOGIN:
|
||||||
resultType = GMHandler.CANCEL_BANNED_LOGIN;
|
resultType = GMHandler.CANCEL_BANNED_LOGIN;
|
||||||
break;
|
break;
|
||||||
case GMHandler.SKYEYE_BAN:
|
|
||||||
resultType = GMHandler.CANCEL_SKYEYE_BAN;
|
|
||||||
break;
|
|
||||||
default:break;
|
default:break;
|
||||||
}
|
}
|
||||||
return resultType;
|
return resultType;
|
||||||
|
|
|
||||||
|
|
@ -80,10 +80,10 @@ public class UserBanned {
|
||||||
case GMHandler.BANNED_TO_POST:
|
case GMHandler.BANNED_TO_POST:
|
||||||
string = "禁言";
|
string = "禁言";
|
||||||
break;
|
break;
|
||||||
case GMHandler.BANNED_LOGIN:
|
case GMHandler.BANNED_LOGIN:
|
||||||
string = "禁登录";
|
string = "禁登录";
|
||||||
break;
|
break;
|
||||||
case GMHandler.SKYEYE_BAN:
|
case GMHandler.SKYEYE_BAN:
|
||||||
string = "天眼禁言";
|
string = "天眼禁言";
|
||||||
break;
|
break;
|
||||||
default:break;
|
default:break;
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
<span class="c-gray en">></span> 服务器管理
|
<span class="c-gray en">></span> 服务器管理
|
||||||
<span class="c-gray en">></span> 服务器信息
|
<span class="c-gray en">></span> 服务器信息
|
||||||
<a class="btn btn-success radius r" style="margin-top:3px;padding-bottom: 3px;"
|
<a class="btn btn-success radius r" style="margin-top:3px;padding-bottom: 3px;"
|
||||||
href="javascript:location.replace('/findServerInfo?quick=1');" title="刷新缓存">
|
href="javascript:location.replace('/findServerInfo?quick=0');" title="刷新">
|
||||||
<i class="Hui-iconfont"></i>
|
<i class="Hui-iconfont"></i>
|
||||||
</a>
|
</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
@ -54,6 +54,11 @@
|
||||||
<option value="4">爆满</option>
|
<option value="4">爆满</option>
|
||||||
</select>
|
</select>
|
||||||
<button class="btn btn-primary" type="button" onclick="updateServers()">批量修改服务器状态</button>
|
<button class="btn btn-primary" type="button" onclick="updateServers()">批量修改服务器状态</button>
|
||||||
|
<div th:switch="${state}" style="float: right">
|
||||||
|
缓存状态【<a href="/findServerInfoNotCache" title="缓存状态刷新后不会自动修改,需要重新获取界面">刷新</a>】:
|
||||||
|
<span th:case="0" class="Hui-iconfont" style="color:green;">检测完成 </span>
|
||||||
|
<span th:case="1" class="Hui-iconfont" style="color:red">检测中</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-20">
|
<div class="mt-20">
|
||||||
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
|
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,21 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="page-container">
|
<div class="page-container">
|
||||||
<h1><p class="f-20 text-success">太初行管理后台</p></h1>
|
<h1 class="f-20 text-success">太初行管理后台</h1>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-left: 20px;font-size: 18px">
|
<div style="margin-left: 20px;font-size: 18px">
|
||||||
<p style="color: red">更新日志[2021-11-02]</p>
|
<h2 style="color: red" class="f-18">更新日志[2021-11-09]</h2>
|
||||||
<p>1、渠道管理添加是否和谐参数</p>
|
<p class="f-16"> 1、天眼封禁优化</p>
|
||||||
<p>2、天眼公会监控</p>
|
<p class="f-16"> 2、服务器列表优化,新增缓存刷新按钮</p>
|
||||||
<p>3、服务器列表使用缓存功能,可以使用列表右上角的刷新按钮更新最新数据(快速刷新响应较慢,勿重复点击,请耐心等待)</p>
|
<p class="f-16">
|
||||||
<p>4、订单功能无法使用0秒参数bug修改</p>
|
ps:{ 开服时间、版本号、上次重启时间、游戏端口状态、支付端口状态 }为缓存数据,可以通过刷新缓存获取最新数据,其他数据没有缓存
|
||||||
|
<br>
|
||||||
|
ps:缓存刷新为后台执行,点击刷新后缓存状态会更改为
|
||||||
|
<span style="color: red">检测中</span>,前端无法立即获得结果,刷新结果需要重新获取界面信息
|
||||||
|
<br>
|
||||||
|
ps:想要快速获得数据,可以在点击刷新按钮后,间隔1-2分钟后点击右上角绿色刷新按钮,缓存状态变为
|
||||||
|
<span style="color: green">检测完成</span>代表是数据刷新成功,为目前最新数据
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="footer mt-20">
|
<footer class="footer mt-20">
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue