diff --git a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/controller/HomePageController.java b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/controller/HomePageController.java index 05a1634fa..cc0602b3e 100644 --- a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/controller/HomePageController.java +++ b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/controller/HomePageController.java @@ -9,10 +9,10 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.system.api.pojo.home.HomeCompanyInfo; import cn.stylefeng.roses.kernel.system.api.pojo.resource.ResourceRequest; -import cn.stylefeng.roses.kernel.system.api.pojo.user.OnlineUserDTO; import cn.stylefeng.roses.kernel.system.api.pojo.user.request.OnlineUserRequest; -import org.springframework.web.bind.annotation.RestController; import cn.stylefeng.roses.kernel.system.modular.home.service.HomePageService; +import cn.stylefeng.roses.kernel.system.modular.statistic.pojo.OnlineUserStat; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @@ -58,8 +58,8 @@ public class HomePageController { * @author xixiaowei * @date 2022/1/25 14:11 */ - @GetResource(name = "查询在线用户列表", path = "/homePage/getOnlineUserList") - public ResponseData> getOnlineUserList(OnlineUserRequest onlineUserRequest) { + @GetResource(name = "查询在线用户列表", path = "/homePage/getOnlineUserList", requiredPermission = false) + public ResponseData getOnlineUserList(OnlineUserRequest onlineUserRequest) { return new SuccessResponseData<>(homePageService.getOnlineUserList(onlineUserRequest)); } @@ -69,7 +69,7 @@ public class HomePageController { * @author xixiaowei * @date 2022/2/9 10:12 */ - @GetResource(name = "获取首页企业和公司信息", path = "/homePage/getHomeCompanyInfo") + @GetResource(name = "获取首页企业和公司信息", path = "/homePage/getHomeCompanyInfo", requiredPermission = false) public ResponseData getHomeCompanyInfo() { return new SuccessResponseData<>(homePageService.getHomeCompanyInfo()); } diff --git a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/HomePageService.java b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/HomePageService.java index a80644672..8f813a666 100644 --- a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/HomePageService.java +++ b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/HomePageService.java @@ -5,9 +5,9 @@ import cn.stylefeng.roses.kernel.log.api.pojo.manage.LogManagerRequest; import cn.stylefeng.roses.kernel.log.api.pojo.record.LogRecordDTO; import cn.stylefeng.roses.kernel.system.api.pojo.home.HomeCompanyInfo; import cn.stylefeng.roses.kernel.system.api.pojo.resource.ResourceRequest; -import cn.stylefeng.roses.kernel.system.api.pojo.user.OnlineUserDTO; import cn.stylefeng.roses.kernel.system.api.pojo.user.request.OnlineUserRequest; import cn.stylefeng.roses.kernel.system.modular.home.entity.InterfaceStatistics; +import cn.stylefeng.roses.kernel.system.modular.statistic.pojo.OnlineUserStat; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -42,7 +42,7 @@ public interface HomePageService extends IService { * @author xixiaowei * @date 2022/1/25 14:06 */ - List getOnlineUserList(OnlineUserRequest onlineUserRequest); + OnlineUserStat getOnlineUserList(OnlineUserRequest onlineUserRequest); /** * 获取首页企业和公司信息 diff --git a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/Impl/HomePageServiceImpl.java b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/Impl/HomePageServiceImpl.java index e256ffcdf..6fd9c63c1 100644 --- a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/Impl/HomePageServiceImpl.java +++ b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/home/service/Impl/HomePageServiceImpl.java @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.system.modular.home.service.Impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; @@ -21,6 +22,7 @@ import cn.stylefeng.roses.kernel.system.modular.home.entity.InterfaceStatistics; import cn.stylefeng.roses.kernel.system.modular.home.mapper.InterfaceStatisticsMapper; import cn.stylefeng.roses.kernel.system.modular.home.service.HomePageService; import cn.stylefeng.roses.kernel.system.modular.statistic.entity.SysStatisticsCount; +import cn.stylefeng.roses.kernel.system.modular.statistic.pojo.OnlineUserStat; import cn.stylefeng.roses.kernel.system.modular.statistic.service.SysStatisticsCountService; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserOrg; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserOrgService; @@ -29,9 +31,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 首页服务实现类 @@ -85,16 +86,27 @@ public class HomePageServiceImpl extends ServiceImpl getOnlineUserList(OnlineUserRequest onlineUserRequest) { + public OnlineUserStat getOnlineUserList(OnlineUserRequest onlineUserRequest) { + + OnlineUserStat onlineUserStat = new OnlineUserStat(); + + // 获取在线总人数 List onlineUserDTOS = userServiceApi.onlineUserList(onlineUserRequest); - // 在线人数大于20人 - if (onlineUserDTOS.size() > 20) { - return onlineUserDTOS.subList(0, 19); + // 去重 + HashSet onlineUserList = new HashSet<>(); + for (OnlineUserDTO onlineUserDTO : onlineUserDTOS) { + if (ObjectUtil.isNotEmpty(onlineUserDTO.getRealName())) { + onlineUserList.add(onlineUserDTO.getRealName()); + } } + onlineUserStat.setTotalNum(onlineUserList.size()); - // 在线人数小于20人 - return onlineUserDTOS; + // 统计前20个人 + Set newSet = onlineUserList.stream().limit(20).collect(Collectors.toSet()); + onlineUserStat.setTotalUserNames(newSet); + + return onlineUserStat; } @Override diff --git a/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/statistic/pojo/OnlineUserStat.java b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/statistic/pojo/OnlineUserStat.java new file mode 100644 index 000000000..7e3986705 --- /dev/null +++ b/kernel-s-system/system-business-home/src/main/java/cn/stylefeng/roses/kernel/system/modular/statistic/pojo/OnlineUserStat.java @@ -0,0 +1,26 @@ +package cn.stylefeng.roses.kernel.system.modular.statistic.pojo; + +import lombok.Data; + +import java.util.Set; + +/** + * 在线用户统计 + * + * @author fengshuonan + * @date 2022/2/11 10:54 + */ +@Data +public class OnlineUserStat { + + /** + * 总在线用户 + */ + private Integer totalNum; + + /** + * 总的人员姓名汇总 + */ + private Set totalUserNames; + +}