2
0

feat: 注册用户数和在线用户数

This commit is contained in:
caiyuchao
2025-01-07 20:56:39 +08:00
parent 59be8b6237
commit 594f416b77
2 changed files with 31 additions and 0 deletions

View File

@@ -49,4 +49,8 @@ public class SysDashboardVo {
private Integer wirelessClientNum = 0;
private Integer guestNum = 0;
private Long registerUserNum = 0L;
private Integer onlineUserNum = 0;
}

View File

@@ -1,25 +1,32 @@
package org.wfc.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.wfc.common.core.constant.CacheConstants;
import org.wfc.common.core.constant.HttpStatus;
import org.wfc.common.core.domain.LoginUser;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.common.redis.service.RedisService;
import org.wfc.omada.api.monitor.OmadaDashboardApi;
import org.wfc.omada.api.monitor.model.GetDashboardOverview;
import org.wfc.omada.api.monitor.model.OperationResponseGetDashboardOverview;
import org.wfc.omada.api.organization.OmadaSiteApi;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.SiteSummaryInfo;
import org.wfc.system.api.domain.SysUser;
import org.wfc.system.domain.convert.SysDashboardConvert;
import org.wfc.system.domain.vo.SysDashboardSiteVo;
import org.wfc.system.domain.vo.SysDashboardVo;
import org.wfc.system.mapper.UUserMapper;
import org.wfc.system.service.ISysDashboardService;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -36,6 +43,12 @@ public class SysDashboardServiceImpl implements ISysDashboardService {
@Autowired
private OmadaDashboardApi omadaDashboardApi;
@Autowired
private RedisService redisService;
@Autowired
private UUserMapper userMapper;
@Override
public TableDataInfo getSiteList(String searchKey) {
ResponseEntity<OperationResponseGridVoSiteSummaryInfo> siteList = omadaSiteApi.getSiteList(PageHelper.getLocalPage().getPageNum(), PageHelper.getLocalPage().getPageSize(), searchKey);
@@ -96,6 +109,20 @@ public class SysDashboardServiceImpl implements ISysDashboardService {
sysDashboardVo.setTotalGatewayNum(dashboardOverviews.stream().filter(c -> ObjectUtil.isNotNull(c.getTotalGatewayNum())).mapToInt(GetDashboardOverview::getTotalGatewayNum).sum());
sysDashboardVo.setSiteNum(sites.size());
// 注册用户数和在线用户数
Long registerUserNum = userMapper.selectCount(Wrappers.lambdaQuery());
Integer onlineUserNum = 0;
Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
for (String key : keys) {
LoginUser user = redisService.getCacheObject(key);
Object userObj = user.getUser();
if (!(userObj instanceof SysUser)) {
onlineUserNum++;
}
}
sysDashboardVo.setRegisterUserNum(registerUserNum);
sysDashboardVo.setOnlineUserNum(onlineUserNum);
return sysDashboardVo;
}