diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SysDashboardVo.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SysDashboardVo.java index bd589cb..a8aa7be 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SysDashboardVo.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SysDashboardVo.java @@ -49,4 +49,8 @@ public class SysDashboardVo { private Integer wirelessClientNum = 0; private Integer guestNum = 0; + + private Long registerUserNum = 0L; + + private Integer onlineUserNum = 0; } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDashboardServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDashboardServiceImpl.java index 0026dc8..a356d57 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDashboardServiceImpl.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDashboardServiceImpl.java @@ -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 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 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; }