获取服务器在线人数和注册人数

master
gaojie 2019-06-03 18:36:40 +08:00
parent 5d9edb1a0d
commit 4e85c674d7
9 changed files with 140 additions and 49 deletions

View File

@ -38,8 +38,7 @@ public class MailController {
private static final Logger LOGGER = LoggerFactory.getLogger(MailController.class);
@RequestMapping(value = "/sendMail", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody
int getSendMail(HttpSession session, HttpServletRequest request) throws Exception {
public @ResponseBody int getSendMail(HttpSession session, HttpServletRequest request) throws Exception {
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
// int serverId = Integer.parseInt(parameterMap.get("serverId"));
String[] userIds = parameterMap.get("userIds").split("#");

View File

@ -34,7 +34,7 @@ public class ServerInfoController {
List<ServerInfoVo> serverInfoVos = new ArrayList<>();
for (ServerInfo serverInfo :serverInfos){
ServerInfoVo serverInfoVo = new ServerInfoVo();
serverInfoVo.setServer_id(serverInfo.getServer_id());
serverInfoVo.setServer_id(String.valueOf(serverInfo.getServer_id()));
serverInfoVo.setName(serverInfo.getName());
serverInfoVo.setStatus(serverInfo.getStatus());
serverInfoVo.setIsWhite(serverInfo.getIsWhite());
@ -70,7 +70,7 @@ public class ServerInfoController {
ServerInfo serverInfo = serverInfoDao.getServerinfo(server_id);
if (serverInfo != null){
ServerInfoVo serverInfoVo = new ServerInfoVo();
serverInfoVo.setServer_id(serverInfo.getServer_id());
serverInfoVo.setServer_id(String.valueOf(serverInfo.getServer_id()));
serverInfoVo.setName(serverInfo.getName());
serverInfoVo.setStatus(serverInfo.getStatus());
serverInfoVo.setIsWhite(serverInfo.getIsWhite());
@ -111,4 +111,30 @@ public class ServerInfoController {
return 1;
}
}
@RequestMapping(value = "/serverNumberInfo", method = {RequestMethod.POST, RequestMethod.GET})
public String serverNumberInfo(HttpSession session, ModelMap map) throws Exception {
List<ServerInfo> serverInfos = serverInfoDao.getAllServerInfo();
List<ServerInfoVo> serverInfoVos = new ArrayList<>();
int totalRegisterNum = 0;
int totalOnlineNum = 0;
for (ServerInfo serverInfo :serverInfos){
ServerInfoVo serverInfoVo = new ServerInfoVo();
serverInfoVo.setServer_id(String.valueOf(serverInfo.getServer_id()));
long registerNum = serverInfoDao.getRegisterNum(serverInfo.getServer_id());
totalRegisterNum += registerNum;
serverInfoVo.setRegisterNum(registerNum);
long onlineNum = serverInfoDao.getOnlineNum(serverInfo.getServer_id());
totalOnlineNum += onlineNum;
serverInfoVo.setOnlineNum(onlineNum);
serverInfoVos.add(serverInfoVo);
}
ServerInfoVo serverInfoVo = new ServerInfoVo();
serverInfoVo.setServer_id("总人数");
serverInfoVo.setRegisterNum(totalRegisterNum);
serverInfoVo.setOnlineNum(totalOnlineNum);
serverInfoVos.add(serverInfoVo);
map.addAttribute("serverInfos", serverInfoVos);
return "serverNumberInfo";
}
}

View File

@ -23,4 +23,7 @@ public interface ServerInfoDao {
void addOpenServerTime(CServerOpenTime cServerOpenTime) throws Exception;
long getRegisterNum(int server_id) throws Exception;
long getOnlineNum(int server_id);
}

View File

@ -2,6 +2,7 @@ package com.jmfy.dao.impl;
import com.jmfy.dao.ServerInfoDao;
import com.jmfy.model.CServerOpenTime;
import com.jmfy.model.CUserInfo;
import com.jmfy.model.ServerInfo;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.utils.Connect;
@ -95,4 +96,21 @@ public class ServerInfoDaoImpl implements ServerInfoDao {
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
mongoTemplate.insert(cServerOpenTime);
}
@Override
public long getRegisterNum(int server_id) throws Exception {
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
Query query = new Query(Criteria.where("serverid").is(server_id));
return mongoTemplate.count(query, CUserInfo.class);
}
@Override
public long getOnlineNum(int server_id) {
Integer num = RedisUtil.getInstence().getObject(String.valueOf(server_id), "OnlineNum:core1", Integer.class, -1);
if (num == null){
num = 0;
}
return num;
}
}

View File

@ -2,7 +2,7 @@ package com.jmfy.model.vo;
public class ServerInfoVo{
public int server_id;
public String server_id;
public String name;
@ -14,7 +14,11 @@ public class ServerInfoVo{
public int isCommend;
public void setServer_id(int server_id) {
public long registerNum;
public long onlineNum;
public void setServer_id(String server_id) {
this.server_id = server_id;
}
@ -37,6 +41,14 @@ public class ServerInfoVo{
public void setIs_commend(int is_commend) {
this.isCommend = is_commend;
}
public void setRegisterNum(long registerNum) {
this.registerNum = registerNum;
}
public void setOnlineNum(long onlineNum) {
this.onlineNum = onlineNum;
}
}

View File

@ -181,8 +181,7 @@
});
function sendMail() {
var erroCode = $('.SERVERID');
var serverId = $("input[name='serverId']").val();
var erroCode = $('.USERIDS');
var userIds = $("textarea[name='userIds']").val();
var mailTitle = $("input[name='mailTitle']").val();
var mailContent = $("textarea[name='mailContent']").val();
@ -199,10 +198,6 @@ function sendMail() {
$("input[name='itemType']").each(function(){
itemTypes.push($(this).val());
});
if (serverId === '' || serverId == null) {
erroCode.html('<span style="color: red; ">服务器id不能为空!</span>');
return false;
}
if (userIds === '' || userIds == null) {
erroCode = $('.USERIDS');
erroCode.html('<span style="color: red; ">用户id不能为空!</span>');
@ -221,7 +216,6 @@ function sendMail() {
$.ajax({
type: "POST",
data: {
"serverId": serverId,
"userIds": userIds,
"mailTitle": mailTitle,
"mailContent": mailContent,

View File

@ -24,7 +24,7 @@
<span class="c-gray en">&gt;</span> 宗門信息管理
<span class="c-gray en">&gt;</span> 宗門信息查询
<span class="c-gray en">&gt;</span> 宗門成员信息查询
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace('/findServerInfo');" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace('/findFamilyLeaguerInfo');" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
</nav>
<div class="page-container" style="text-align: center">
<h2><span style="color:red;">宗門成员信息</span></h2>
@ -76,41 +76,6 @@ $('.table-sort').dataTable({
{"orderable":false,"aTargets":[0,5]}// 不参与排序的列
]
});
/*开启白名单*/
function picture_start(obj,server_id){
server_id = $(obj).attr("id");
layer.confirm('确认要开启吗?',function(){
$(obj).parents("tr").find(".td-status").html('<a th:id="${obj.server_id}" onClick="product_stop(this)" href="javascript:;" title="关闭白名单"><span class="label label-success radius">已开启</span></a>');
$.post("/openWhite",{"server_id":server_id},function(data){
if (data == 1){
$(obj).remove();
$.post("/findServerInfo",function(){
});
layer.msg('已开启!',{icon: 6,time:1000});
}
if (data == 2){
layer.msg('操作失败!',{icon: 6,time:1000});
}
});
});
}
/*关闭白名单*/
function product_stop(obj,server_id){
server_id = $(obj).attr("id");
layer.confirm('确认要关闭吗?', function (index) {
$(obj).parents("tr").find(".td-status").html('<a th:id="${obj.server_id}" onClick="picture_start(this)" href="javascript:;" title="开启白名单"> <span class="label label-defaunt radius">已关闭</span></a>');
$.post("/closeWhite", {"server_id": server_id}, function (data) {
if (data == 1){
$(obj).remove();
layer.msg('已关闭!', {icon: 5, time: 1000});
}
if (data ==2){
layer.msg('操作失败!',{icon: 6,time:1000});
}
});
});
}
</script>
</body>
</html>

View File

@ -71,6 +71,7 @@
<dd>
<ul>
<li><a data-href="findServerInfo" data-title="服务器列表" href="javascript:void(0)">服务器信息</a></li>
<li><a data-href="serverNumberInfo" data-title="服务器列表" href="javascript:void(0)">服务器注册,在线人数</a></li>
</ul>
</dd>
</dl>

View File

@ -0,0 +1,73 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<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"/>
<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"/>
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js"></script>
<script>DD_belatedPNG.fix('*');</script>
<title>服务器列表信息</title>
</head>
<body>
<nav class="breadcrumb">
<a href="javascript:;" onclick="history.go(-1)"><i class="Hui-iconfont">&#xe67f;</i> 首页</a>
<span class="c-gray en">&gt;</span> 服务器管理
<span class="c-gray en">&gt;</span> 服务器信息
<span class="c-gray en">&gt;</span> 服务器注册在线人数查询
<a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace('/serverNumberInfo');" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
</nav>
<div class="page-container" style="text-align: center">
<h2><span style="color:red;">服务器注册在线人数查询</span></h2>
<div class="text-c">
<div class="mt-20">
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
<thead>
<tr class="text-c">
<th width="200">服务器id</th>
<th width="200">注册人数</th>
<th width="200">在线人数</th>
</tr>
</thead>
<tbody>
<tr th:each="obj:${serverInfos}">
<td th:text="${obj.server_id}" style="text-align: center;"></td>
<td th:text="${obj.registerNum}" style="text-align: center;"></td>
<td th:text="${obj.onlineNum}" style="text-align: center;"></td>
</tr>
</tbody>
</table>
</div>
</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/datatables/1.10.0/jquery.dataTables.min.js"></script>-->
<script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript">
$('.table-sort').dataTable({
"aaSorting": [[ 1, "desc" ]],//默认第几个排序
"bStateSave": true,//状态保存
"pading":false,
"aoColumnDefs": [
//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
{"orderable":false,"aTargets":[0,0]}// 不参与排序的列
]
});
</script>
</body>
</html>