From 926497a18acbb6ef170de9f68bd97e025e212f3e Mon Sep 17 00:00:00 2001 From: Charles7c Date: Tue, 14 May 2024 00:01:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=80=E5=90=8E=E6=B4=BB=E8=B7=83=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../continew/admin/auth/model/resp/OnlineUserResp.java | 10 ++++++++++ .../admin/auth/service/impl/OnlineUserServiceImpl.java | 9 ++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/continew-admin-system/src/main/java/top/continew/admin/auth/model/resp/OnlineUserResp.java b/continew-admin-system/src/main/java/top/continew/admin/auth/model/resp/OnlineUserResp.java index f86a33c7..9e138092 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/auth/model/resp/OnlineUserResp.java +++ b/continew-admin-system/src/main/java/top/continew/admin/auth/model/resp/OnlineUserResp.java @@ -16,8 +16,11 @@ package top.continew.admin.auth.model.resp; +import cn.crane4j.annotation.Assemble; +import cn.crane4j.annotation.Mapping; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import top.continew.starter.extension.crud.constant.ContainerPool; import java.io.Serial; import java.io.Serializable; @@ -40,6 +43,7 @@ public class OnlineUserResp implements Serializable { * ID */ @Schema(description = "ID", example = "1") + @Assemble(container = ContainerPool.USER_NICKNAME, props = @Mapping(ref = "nickname")) private Long id; /** @@ -89,4 +93,10 @@ public class OnlineUserResp implements Serializable { */ @Schema(description = "登录时间", example = "2023-08-08 08:08:08", type = "string") private LocalDateTime loginTime; + + /** + * 最后活跃时间 + */ + @Schema(description = "最后活跃时间", example = "2023-08-08 08:08:08", type = "string") + private LocalDateTime lastActiveTime; } diff --git a/continew-admin-system/src/main/java/top/continew/admin/auth/service/impl/OnlineUserServiceImpl.java b/continew-admin-system/src/main/java/top/continew/admin/auth/service/impl/OnlineUserServiceImpl.java index acadc394..e14b2f16 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/auth/service/impl/OnlineUserServiceImpl.java +++ b/continew-admin-system/src/main/java/top/continew/admin/auth/service/impl/OnlineUserServiceImpl.java @@ -16,6 +16,7 @@ package top.continew.admin.auth.service.impl; +import cn.crane4j.annotation.AutoOperate; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; @@ -49,11 +50,17 @@ import java.util.List; public class OnlineUserServiceImpl implements OnlineUserService { @Override + @AutoOperate(type = OnlineUserResp.class, on = "list") public PageResp page(OnlineUserQuery query, PageQuery pageQuery) { List loginUserList = this.list(query); List list = BeanUtil.copyToList(loginUserList, OnlineUserResp.class); PageResp pageResp = PageResp.build(pageQuery.getPage(), pageQuery.getSize(), list); - pageResp.getList().forEach(u -> u.setNickname(LoginHelper.getNickname(u.getId()))); + pageResp.getList().forEach(u -> { + long lastActiveTime = StpUtil.getStpLogic().getTokenLastActiveTime(u.getToken()); + if (SaTokenDao.NOT_VALUE_EXPIRE != lastActiveTime) { + u.setLastActiveTime(DateUtil.toLocalDateTime(new Date(lastActiveTime))); + } + }); return pageResp; }