From 5d4ea1d3b9557873420fe6f693b23a1c4a70f269 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Mon, 12 Sep 2022 14:32:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E9=87=8D?= =?UTF-8?q?=E6=9E=84=20MyBatis=20Plus=20=E8=87=AA=E5=8A=A8=E5=A1=AB?= =?UTF-8?q?=E5=85=85=EF=BC=88=E6=B3=A8=E5=85=A5=EF=BC=89=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=99=A8=E9=80=BB=E8=BE=91=EF=BC=8C=E5=8D=B3=E4=BD=BF=E6=9C=AA?= =?UTF-8?q?=E7=BB=A7=E6=89=BF=20BaseEntity=EF=BC=8C=E5=8F=AA=E8=A6=81?= =?UTF-8?q?=E6=A0=87=E6=B3=A8=E4=BA=86=20@TableField(fill=20=3D=20FieldFil?= =?UTF-8?q?l.xxxx)=20=E5=B0=B1=E6=94=AF=E6=8C=81=E5=A1=AB=E5=85=85?= =?UTF-8?q?=EF=BC=88=E6=B3=A8=E5=85=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateAndUpdateMetaObjectHandler.java | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java index 6d7c977de..fe9057892 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java @@ -17,27 +17,32 @@ import java.util.Date; * MP注入处理器 * * @author Lion Li + * @author Charles7c * @date 2021/4/25 */ @Slf4j public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { + /** 创建人 */ + private static final String CREATE_BY = "createBy"; + /** 创建时间 */ + private static final String CREATE_TIME = "createTime"; + /** 更新人 */ + private static final String UPDATE_BY = "updateBy"; + /** 更新时间 */ + private static final String UPDATE_TIME = "updateTime"; + @Override public void insertFill(MetaObject metaObject) { try { - if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) { - BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject(); - Date current = ObjectUtil.isNotNull(baseEntity.getCreateTime()) - ? baseEntity.getCreateTime() : new Date(); - baseEntity.setCreateTime(current); - baseEntity.setUpdateTime(current); - String username = StringUtils.isNotBlank(baseEntity.getCreateBy()) - ? baseEntity.getCreateBy() : getLoginUsername(); - // 当前已登录 且 创建人为空 则填充 - baseEntity.setCreateBy(username); - // 当前已登录 且 更新人为空 则填充 - baseEntity.setUpdateBy(username); + if (ObjectUtil.isNull(metaObject)) { + return; } + + this.fillFieldValue(metaObject, CREATE_BY, this.getLoginUsername(), false); + this.fillFieldValue(metaObject, CREATE_TIME, new Date(), false); + this.fillFieldValue(metaObject, UPDATE_BY, this.getLoginUsername(), false); + this.fillFieldValue(metaObject, UPDATE_TIME, new Date(), false); } catch (Exception e) { throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); } @@ -46,22 +51,32 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { @Override public void updateFill(MetaObject metaObject) { try { - if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) { - BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject(); - Date current = new Date(); - // 更新时间填充(不管为不为空) - baseEntity.setUpdateTime(current); - String username = getLoginUsername(); - // 当前已登录 更新人填充(不管为不为空) - if (StringUtils.isNotBlank(username)) { - baseEntity.setUpdateBy(username); - } + if (ObjectUtil.isNull(metaObject)) { + return; } + + this.fillFieldValue(metaObject, UPDATE_BY, this.getLoginUsername(), true); + this.fillFieldValue(metaObject, UPDATE_TIME, new Date(), true); } catch (Exception e) { throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); } } + /** + * 填充(注入)属性值 + * + * @param metaObject 元数据对象 + * @param fieldName 要填充的属性名 + * @param fillFieldValue 要填充的属性值 + * @param isOverride 如果属性值不为空,是否覆盖(true 覆盖、false 不覆盖) + */ + private void fillFieldValue(MetaObject metaObject, String fieldName, Object fillFieldValue, boolean isOverride) { + if (metaObject.hasSetter(fieldName)) { + Object fieldValue = metaObject.getValue(fieldName); + setFieldValByName(fieldName, ObjectUtil.isNotNull(fieldValue) && !isOverride ? fieldValue : fillFieldValue, metaObject); + } + } + /** * 获取登录用户名 */ @@ -75,5 +90,4 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { } return loginUser.getUsername(); } - } From cc0c72236f312940c9c10d212f7e94ff3947ac1e Mon Sep 17 00:00:00 2001 From: Charles7c Date: Mon, 12 Sep 2022 15:05:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8D=87=E7=BA=A7=EF=BC=9A=E5=8D=87?= =?UTF-8?q?=E7=BA=A7sa-token=E5=88=B0=E6=9C=80=E6=96=B0=E7=89=881.31.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../controller/monitor/SysUserOnlineController.java | 2 +- .../ruoyi/framework/listener/UserActionListener.java | 11 ++++++++--- .../ruoyi/framework/satoken/dao/PlusSaTokenDao.java | 5 ++--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 23d3d3c25..0f1cc5fd8 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 5.2.2 3.1.1 2.3 - 1.30.0 + 1.31.0 3.5.2 3.9.1 5.8.5 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java index c43055f45..786214712 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java @@ -42,7 +42,7 @@ public class SysUserOnlineController extends BaseController { @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { // 获取所有未过期的 token - List keys = StpUtil.searchTokenValue("", -1, 0); + List keys = StpUtil.searchTokenValue("", -1, 0, false); List userOnlineDTOList = new ArrayList<>(); for (String key : keys) { String token = key.replace(CacheConstants.LOGIN_TOKEN_KEY, ""); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java index 1e3c22c35..0f29c9c4b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java @@ -88,14 +88,14 @@ public class UserActionListener implements SaTokenListener { * 每次被封禁时触发 */ @Override - public void doDisable(String loginType, Object loginId, long disableTime) { + public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) { } /** * 每次被解封时触发 */ @Override - public void doUntieDisable(String loginType, Object loginId) { + public void doUntieDisable(String loginType, Object loginId, String service) { } /** @@ -112,5 +112,10 @@ public class UserActionListener implements SaTokenListener { public void doLogoutSession(String id) { } - + /** + * 每次Token续期时触发 + */ + @Override + public void doRenewTimeout(String tokenValue, Object loginId, long timeout) { + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java index 68df5a646..83c3d5455 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java @@ -170,10 +170,9 @@ public class PlusSaTokenDao implements SaTokenDao { * 搜索数据 */ @Override - public List searchData(String prefix, String keyword, int start, int size) { + public List searchData(String prefix, String keyword, int start, int size, boolean sortType) { Collection keys = RedisUtils.keys(prefix + "*" + keyword + "*"); List list = new ArrayList<>(keys); - return SaFoxUtil.searchList(list, start, size); + return SaFoxUtil.searchList(list, start, size, sortType); } - }