添加迁服功能页签

master
duhui 2021-11-18 15:09:24 +08:00
parent ff527f4e5b
commit fde633bd58
4 changed files with 195 additions and 1 deletions

View File

@ -205,6 +205,39 @@ public class ServerInfoController {
return 1;
}
/**
*
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/transferServer", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody
int transferServer(HttpServletRequest request) throws Exception {
boolean power = commonManager.verifyPower(request, PowersEnum.TRANSFER_SERVER_PERMISSIONS);
if (!power){
return 0;
}
int serverId = Integer.parseInt(request.getParameter("serverId"));
String ip = request.getParameter("ip");
int port = Integer.parseInt(request.getParameter("port"));
int coreNum = Integer.parseInt(request.getParameter("coreName"));
int count = Integer.parseInt(request.getParameter("count"));
Map<String, ServerInfo> serverMap = serverInfoDao.getAllServerMap();
for (int i = 0; i < count; i++) {
ServerInfo info = serverMap.get(String.valueOf(serverId+i));
if (info == null){
continue;
}
info.setIp(ip);
info.setPort(String.valueOf(port+i));
info.setCoreName("core"+(coreNum+i));
serverInfoDao.updateServerInfo(info);
}
return 1;
}
/**
*
* @param serverInfo

View File

@ -14,6 +14,7 @@ import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -38,7 +39,11 @@ public class ServerInfoDaoImpl implements ServerInfoDao {
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
Query query = new Query();
List<ServerInfo> serverInfos = mongoTemplate.find(query, ServerInfo.class);
return serverInfos.stream().collect(Collectors.toMap(ServerInfo::getServer_id, v -> v));
HashMap<String, ServerInfo> map = new HashMap<>();
for (ServerInfo info : serverInfos) {
map.put(info.getServer_id(),info);
}
return map;
}
@Override

View File

@ -21,6 +21,7 @@ public enum PowersEnum {
AUTO_START_SERVER(205,"自动开服配置",200,1,"autoStartServerSetting"),
AUTO_START_SERVER_PERMISSIONS(206,"权限:自动开服配置",200,0,""),
DELETE_SERVER_PERMISSIONS(207,"权限:删除服务器",200,0,""),
TRANSFER_SERVER_PERMISSIONS(208,"迁服",200,1,"/html/transferServer.html"),
// 序列号管理300-399
SERIAL_NUMBER_MANAGER(300,"序列号管理",300,1,""),

View File

@ -0,0 +1,155 @@
<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<meta name="renderer" content="webkit|ie-comp|ie-stand"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<link rel="Bookmark" href="../favicon.ico"/>
<link rel="Shortcut Icon" href="../favicon.ico"/>
<!--[if lt IE 9]>
<script type="text/javascript" src="../lib/html5shiv.js"></script>
<script type="text/javascript" src="../lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../h-ui/css/H-ui.min.css"/>
<link rel="stylesheet" type="text/css" href="../h-ui.admin/css/H-ui.admin.css"/>
<link rel="stylesheet" type="text/css" href="../lib/Hui-iconfont/1.0.8/iconfont.css"/>
<link rel="stylesheet" type="text/css" href="../h-ui.admin/skin/default/skin.css" id="skin"/>
<link rel="stylesheet" type="text/css" href="../h-ui.admin/css/style.css"/>
<!--[if IE 6]>
<script type="text/javascript" src="../lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<!--/meta 作为公共模版分离出去-->
<title>基本设置</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
<span class="c-gray en">&gt;</span>
服务器管理
<span class="c-gray en">&gt;</span>
迁服使用
</nav>
<div class="page-container">
<form class="form form-horizontal" id="form-article-add" action="http://60.1.1.212:9076/idip/manager" method="post">
<div id="tab-system" class="HuiTab">
<div class="tabBar cl">
<span>迁服</span>
</div>
<div class="tabCon">
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span> serverId</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="number" name="serverId" style="width: 200px;" class="input-text"/>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span> ip</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" name="ip" style="width: 200px;" class="input-text"/>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span> port</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="number" name="port" style="width: 200px;" class="input-text"/>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span> core</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="number" name="coreName" style="width: 200px;" class="input-text"/>
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">
<span class="c-red">*</span>数量:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="number" name="count" style="width: 200px;" value="0" class="input-text"/>
</div>
</div>
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
<button onClick="return transferServer();" class="btn btn-primary radius" type="button"><i
class="Hui-iconfont">&#xe632;</i> 开始
</button>
</div>
</div>
</form>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="../lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="../h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="../h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="../lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="../lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
$(function () {
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#tab-system").Huitab({
index: 0
});
});
function transferServer() {
var serverId = $("input[name='serverId']").val();
var ip = $("input[name='ip']").val();
var port = $("input[name='port']").val();
var coreName = $("input[name='coreName']").val();
var count = $("input[name='count']").val();
var reg = new RegExp(/[\s\S]/i);
if (!reg.test(serverId)||!reg.test(ip)||!reg.test(port)||!reg.test(coreName)||!reg.test(count)){
alert("参数不能为空,或者特殊字符");
return false;
}
$.ajax({
type: "POST",
data:{
"serverId":serverId,
"ip": ip,
"port": port,
"coreName":coreName,
"count":count
},
url: "/transferServer",
success: function (data) {
if (data === 1) {
layer.msg('成功!', {icon: 6, time: 1000});
}
if (data === 0) {
layer.msg('失败!', {icon: 6, time: 1000});
}
}
}
)
}
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>