From 43d1a63577f9d5347924355708429a2d210e29f7 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 16 Dec 2020 21:48:40 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=89=E7=BA=A7?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE=E7=BB=84?= =?UTF-8?q?=E4=BB=B6&=E7=BC=93=E5=AD=98=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhengjie/modules/system/service/impl/MenuServiceImpl.java | 2 ++ sql/eladmin.sql | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index 1e3e257f..35cae9ad 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -269,6 +269,8 @@ public class MenuServiceImpl implements MenuService { if(!menuDTO.getIFrame()){ if(menuDTO.getPid() == null){ menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent())?"Layout":menuDTO.getComponent()); + }else if(menuDTO.getPid() != null && menuDTO.getType() == 0){ + menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent())?"ParentView":menuDTO.getComponent()); }else if(!StrUtil.isEmpty(menuDTO.getComponent())){ menuVo.setComponent(menuDTO.getComponent()); } diff --git a/sql/eladmin.sql b/sql/eladmin.sql index 601cfc95..61cb36e9 100644 --- a/sql/eladmin.sql +++ b/sql/eladmin.sql @@ -369,7 +369,7 @@ INSERT INTO `sys_menu` VALUES (15, 10, 0, 1, '富文本', 'Editor', 'components/ INSERT INTO `sys_menu` VALUES (18, 36, 3, 1, '存储管理', 'Storage', 'tools/storage/index', 34, 'qiniu', 'storage', b'0', b'0', b'0', 'storage:list', NULL, NULL, '2018-12-31 11:12:15', NULL); INSERT INTO `sys_menu` VALUES (19, 36, 0, 1, '支付宝工具', 'AliPay', 'tools/aliPay/index', 37, 'alipay', 'aliPay', b'0', b'0', b'0', NULL, NULL, NULL, '2018-12-31 14:52:38', NULL); INSERT INTO `sys_menu` VALUES (21, NULL, 2, 0, '多级菜单', NULL, '', 900, 'menu', 'nested', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:22:03', '2020-06-21 17:27:35'); -INSERT INTO `sys_menu` VALUES (22, 21, 2, 1, '二级菜单1', NULL, 'nested/menu1/index', 999, 'menu', 'menu1', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:23:29', '2020-06-21 17:27:20'); +INSERT INTO `sys_menu` VALUES (22, 21, 2, 0, '二级菜单1', NULL, '', 999, 'menu', 'menu1', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:23:29', '2020-06-21 17:27:20'); INSERT INTO `sys_menu` VALUES (23, 21, 0, 1, '二级菜单2', NULL, 'nested/menu2/index', 999, 'menu', 'menu2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:23:57', NULL); INSERT INTO `sys_menu` VALUES (24, 22, 0, 1, '三级菜单1', NULL, 'nested/menu1/menu1-1', 999, 'menu', 'menu1-1', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:24:48', NULL); INSERT INTO `sys_menu` VALUES (27, 22, 0, 1, '三级菜单2', NULL, 'nested/menu1/menu1-2', 999, 'menu', 'menu1-2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-07 17:27:32', NULL); From 46393875148fcca5eaa327d4073f72edb3752f5c Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 16 Dec 2020 22:45:40 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=B8=89=E7=BA=A7=E8=8F=9C=E5=8D=951?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9A=84=E5=91=BD=E5=90=8D=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/eladmin.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/eladmin.sql b/sql/eladmin.sql index 61cb36e9..1cc6ff7e 100644 --- a/sql/eladmin.sql +++ b/sql/eladmin.sql @@ -371,7 +371,7 @@ INSERT INTO `sys_menu` VALUES (19, 36, 0, 1, '支付宝工具', 'AliPay', 'tools INSERT INTO `sys_menu` VALUES (21, NULL, 2, 0, '多级菜单', NULL, '', 900, 'menu', 'nested', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:22:03', '2020-06-21 17:27:35'); INSERT INTO `sys_menu` VALUES (22, 21, 2, 0, '二级菜单1', NULL, '', 999, 'menu', 'menu1', b'0', b'0', b'0', NULL, NULL, 'admin', '2019-01-04 16:23:29', '2020-06-21 17:27:20'); INSERT INTO `sys_menu` VALUES (23, 21, 0, 1, '二级菜单2', NULL, 'nested/menu2/index', 999, 'menu', 'menu2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:23:57', NULL); -INSERT INTO `sys_menu` VALUES (24, 22, 0, 1, '三级菜单1', NULL, 'nested/menu1/menu1-1', 999, 'menu', 'menu1-1', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:24:48', NULL); +INSERT INTO `sys_menu` VALUES (24, 22, 0, 1, '三级菜单1', 'Test', 'nested/menu1/menu1-1', 999, 'menu', 'menu1-1', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-04 16:24:48', NULL); INSERT INTO `sys_menu` VALUES (27, 22, 0, 1, '三级菜单2', NULL, 'nested/menu1/menu1-2', 999, 'menu', 'menu1-2', b'0', b'0', b'0', NULL, NULL, NULL, '2019-01-07 17:27:32', NULL); INSERT INTO `sys_menu` VALUES (28, 1, 3, 1, '任务调度', 'Timing', 'system/timing/index', 999, 'timing', 'timing', b'0', b'0', b'0', 'timing:list', NULL, NULL, '2019-01-07 20:34:40', NULL); INSERT INTO `sys_menu` VALUES (30, 36, 0, 1, '代码生成', 'GeneratorIndex', 'generator/index', 32, 'dev', 'generator', b'0', b'1', b'0', NULL, NULL, NULL, '2019-01-11 15:45:55', NULL); From 9883854211d19d37a160eb46a438cf02549f0838 Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Sat, 19 Dec 2020 17:59:16 +0800 Subject: [PATCH 3/7] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96](v2.6?= =?UTF-8?q?)=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GenConfigServiceImpl.java | 37 +++++++++---------- .../main/java/me/zhengjie/utils/GenUtil.java | 3 +- .../system/service/impl/MenuServiceImpl.java | 13 ++++--- .../template/generator/admin/Entity.ftl | 2 +- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java index 50319e1c..bc2d061d 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java @@ -44,27 +44,24 @@ public class GenConfigServiceImpl implements GenConfigService { @Override public GenConfig update(String tableName, GenConfig genConfig) { - // 如果 api 路径为空,则自动生成路径 - if(StringUtils.isBlank(genConfig.getApiPath())){ - String separator = File.separator; - String[] paths; - String symbol = "\\"; - if (symbol.equals(separator)) { - paths = genConfig.getPath().split("\\\\"); - } else { - paths = genConfig.getPath().split(File.separator); - } - StringBuilder api = new StringBuilder(); - for (String path : paths) { - api.append(path); - api.append(separator); - if ("src".equals(path)) { - api.append("api"); - break; - } - } - genConfig.setApiPath(api.toString()); + String separator = File.separator; + String[] paths; + String symbol = "\\"; + if (symbol.equals(separator)) { + paths = genConfig.getPath().split("\\\\"); + } else { + paths = genConfig.getPath().split(File.separator); } + StringBuilder api = new StringBuilder(); + for (String path : paths) { + api.append(path); + api.append(separator); + if ("src".equals(path)) { + api.append("api"); + break; + } + } + genConfig.setApiPath(api.toString()); return genConfigRepository.save(genConfig); } } diff --git a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java index 0fe677e1..566b6d8e 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java +++ b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java @@ -152,7 +152,8 @@ public class GenUtil { List templates = getAdminTemplateNames(); for (String templateName : templates) { Template template = engine.getTemplate("generator/admin/" + templateName + ".ftl"); - String filePath = getAdminFilePath(templateName, genConfig, genMap.get("className").toString(), System.getProperty("user.dir")); + String rootPath = System.getProperty("user.dir"); + String filePath = getAdminFilePath(templateName, genConfig, genMap.get("className").toString(), rootPath); assert filePath != null; File file = new File(filePath); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index 35cae9ad..e4656a63 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -15,8 +15,8 @@ */ package me.zhengjie.modules.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.modules.system.domain.Role; @@ -268,15 +268,16 @@ public class MenuServiceImpl implements MenuService { // 如果不是外链 if(!menuDTO.getIFrame()){ if(menuDTO.getPid() == null){ - menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent())?"Layout":menuDTO.getComponent()); - }else if(menuDTO.getPid() != null && menuDTO.getType() == 0){ - menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent())?"ParentView":menuDTO.getComponent()); - }else if(!StrUtil.isEmpty(menuDTO.getComponent())){ + menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent())?"Layout":menuDTO.getComponent()); + // 如果不是一级菜单,并且菜单类型为目录,则代表是多级菜单 + }else if(menuDTO.getType() == 0){ + menuVo.setComponent(StringUtils.isEmpty(menuDTO.getComponent())?"ParentView":menuDTO.getComponent()); + }else if(StringUtils.isNoneBlank(menuDTO.getComponent())){ menuVo.setComponent(menuDTO.getComponent()); } } menuVo.setMeta(new MenuMetaVo(menuDTO.getTitle(),menuDTO.getIcon(),!menuDTO.getCache())); - if(menuDtoList !=null && menuDtoList.size()!=0){ + if(CollectionUtil.isNotEmpty(menuDtoList)){ menuVo.setAlwaysShow(true); menuVo.setRedirect("noredirect"); menuVo.setChildren(buildMenus(menuDtoList)); diff --git a/eladmin-system/src/main/resources/template/generator/admin/Entity.ftl b/eladmin-system/src/main/resources/template/generator/admin/Entity.ftl index 38396cd7..9d8b1e71 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/Entity.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/Entity.ftl @@ -63,7 +63,7 @@ public class ${className} implements Serializable { @NotNull - <#if (column.dateAnnotation)??> + <#if (column.dateAnnotation)?? && column.dateAnnotation != ''> <#if column.dateAnnotation = 'CreationTimestamp'> @CreationTimestamp <#else> From 81dd91f5736ddd707466c209beead416004689ed Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Mon, 21 Dec 2020 08:42:43 +0800 Subject: [PATCH 4/7] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96](v2.6?= =?UTF-8?q?)=EF=BC=9A=E7=94=B1=E4=BA=8E=E7=B3=BB=E7=BB=9F=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8=20fastjson=20?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=EF=BC=8C=E5=AF=BC=E8=87=B4=E4=BA=86?= =?UTF-8?q?=20@JsonIgnore=20=E5=A4=B1=E6=95=88=EF=BC=8C=E7=8E=B0=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20@JSONField(serialize=20=3D=20false)=20=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close https://github.com/elunez/eladmin/issues/548 --- .../me/zhengjie/config/ConfigurerAdapter.java | 1 + .../modules/security/service/dto/JwtUserDto.java | 16 ++++++++-------- .../me/zhengjie/modules/system/domain/Dept.java | 4 ++-- .../me/zhengjie/modules/system/domain/Menu.java | 4 ++-- .../me/zhengjie/modules/system/domain/Role.java | 4 ++-- .../modules/system/service/dto/UserDto.java | 6 +++--- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java b/eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java index 3a338d71..e76512b7 100644 --- a/eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java +++ b/eladmin-system/src/main/java/me/zhengjie/config/ConfigurerAdapter.java @@ -73,6 +73,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer { @Override public void configureMessageConverters(List> converters) { + // 使用 fastjson 序列化,会导致 @JsonIgnore 失效,可以使用 @JSONField(serialize = false) 替换 FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); List supportMediaTypeList = new ArrayList<>(); supportMediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto/JwtUserDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto/JwtUserDto.java index 0a59a5dc..00f4372c 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto/JwtUserDto.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto/JwtUserDto.java @@ -15,7 +15,7 @@ */ package me.zhengjie.modules.security.service.dto; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.alibaba.fastjson.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Getter; import me.zhengjie.modules.system.service.dto.UserDto; @@ -37,7 +37,7 @@ public class JwtUserDto implements UserDetails { private final List dataScopes; - @JsonIgnore + @JSONField(serialize = false) private final List authorities; public Set getRoles() { @@ -45,37 +45,37 @@ public class JwtUserDto implements UserDetails { } @Override - @JsonIgnore + @JSONField(serialize = false) public String getPassword() { return user.getPassword(); } @Override - @JsonIgnore + @JSONField(serialize = false) public String getUsername() { return user.getUsername(); } - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isAccountNonExpired() { return true; } - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isAccountNonLocked() { return true; } - @JsonIgnore + @JSONField(serialize = false) @Override public boolean isCredentialsNonExpired() { return true; } @Override - @JsonIgnore + @JSONField(serialize = false) public boolean isEnabled() { return user.getEnabled(); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Dept.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Dept.java index 1ca7f178..9f28af21 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Dept.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Dept.java @@ -15,7 +15,7 @@ */ package me.zhengjie.modules.system.domain; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.alibaba.fastjson.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -44,7 +44,7 @@ public class Dept extends BaseEntity implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @JsonIgnore + @JSONField(serialize = false) @ManyToMany(mappedBy = "depts") @ApiModelProperty(value = "角色") private Set roles; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java index c5f80385..b2ea225d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java @@ -15,7 +15,7 @@ */ package me.zhengjie.modules.system.domain; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.alibaba.fastjson.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -44,7 +44,7 @@ public class Menu extends BaseEntity implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @JsonIgnore + @JSONField(serialize = false) @ManyToMany(mappedBy = "menus") @ApiModelProperty(value = "菜单角色") private Set roles; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java index 0dffa3c4..8b3ad19e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Role.java @@ -15,7 +15,7 @@ */ package me.zhengjie.modules.system.domain; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.alibaba.fastjson.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -47,7 +47,7 @@ public class Role extends BaseEntity implements Serializable { @ApiModelProperty(value = "ID", hidden = true) private Long id; - @JsonIgnore + @JSONField(serialize = false) @ManyToMany(mappedBy = "roles") @ApiModelProperty(value = "用户", hidden = true) private Set users; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java index 4af03b98..923e2d42 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserDto.java @@ -15,7 +15,7 @@ */ package me.zhengjie.modules.system.service.dto; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.alibaba.fastjson.annotation.JSONField; import lombok.Getter; import lombok.Setter; import me.zhengjie.base.BaseDTO; @@ -55,12 +55,12 @@ public class UserDto extends BaseDTO implements Serializable { private String avatarPath; - @JsonIgnore + @JSONField(serialize = false) private String password; private Boolean enabled; - @JsonIgnore + @JSONField(serialize = false) private Boolean isAdmin = false; private Date pwdResetTime; From 2a3e4cd9bc79fd70080f542cc98b47d395d00d7b Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Mon, 21 Dec 2020 13:31:31 +0800 Subject: [PATCH 5/7] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96](v2.6?= =?UTF-8?q?)=EF=BC=9A=E7=BC=93=E5=AD=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/me/zhengjie/utils/CacheKey.java | 11 ----------- .../modules/system/service/impl/UserServiceImpl.java | 10 ---------- 2 files changed, 21 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java b/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java index 24ad0c59..d1b4810b 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java @@ -22,21 +22,10 @@ package me.zhengjie.utils; */ public interface CacheKey { - /** - * 内置 用户、岗位、应用、菜单、角色 相关key - */ - String USER_MODIFY_TIME_KEY = "user:modify:time:key:"; - String APP_MODIFY_TIME_KEY = "app:modify:time:key:"; - String JOB_MODIFY_TIME_KEY = "job:modify:time:key:"; - String MENU_MODIFY_TIME_KEY = "menu:modify:time:key:"; - String ROLE_MODIFY_TIME_KEY = "role:modify:time:key:"; - String DEPT_MODIFY_TIME_KEY = "dept:modify:time:key:"; - /** * 用户 */ String USER_ID = "user::id:"; - String USER_NAME = "user::username:"; /** * 数据 */ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java index fbcce258..c206f67f 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java @@ -37,7 +37,6 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; - import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotBlank; import java.io.File; @@ -120,10 +119,6 @@ public class UserServiceImpl implements UserService { redisUtils.del(CacheKey.MENU_USER + resources.getId()); redisUtils.del(CacheKey.ROLE_AUTH + resources.getId()); } - // 如果用户名称修改 - if(!resources.getUsername().equals(user.getUsername())){ - redisUtils.del("user::username:" + user.getUsername()); - } // 如果用户被禁用,则清除用户登录信息 if(!resources.getEnabled()){ onlineUserService.kickOutForUsername(resources.getUsername()); @@ -170,7 +165,6 @@ public class UserServiceImpl implements UserService { } @Override - @Cacheable(key = "'username:' + #p0") public UserDto findByName(String userName) { User user = userRepository.findByUsername(userName); if (user == null) { @@ -184,7 +178,6 @@ public class UserServiceImpl implements UserService { @Transactional(rollbackFor = Exception.class) public void updatePass(String username, String pass) { userRepository.updatePass(username, pass, new Date()); - redisUtils.del("user::username:" + username); flushCache(username); } @@ -201,7 +194,6 @@ public class UserServiceImpl implements UserService { FileUtil.del(oldPath); } @NotBlank String username = user.getUsername(); - redisUtils.del(CacheKey.USER_NAME + username); flushCache(username); return new HashMap(1) {{ put("avatar", file.getName()); @@ -212,7 +204,6 @@ public class UserServiceImpl implements UserService { @Transactional(rollbackFor = Exception.class) public void updateEmail(String username, String email) { userRepository.updateEmail(username, email); - redisUtils.del(CacheKey.USER_NAME + username); flushCache(username); } @@ -243,7 +234,6 @@ public class UserServiceImpl implements UserService { */ public void delCaches(Long id, String username) { redisUtils.del(CacheKey.USER_ID + id); - redisUtils.del(CacheKey.USER_NAME + username); flushCache(username); } From 1556f13379b25d15daba1b7414b1dcf8f1b24080 Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Tue, 22 Dec 2020 20:03:50 +0800 Subject: [PATCH 6/7] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96](v2.6?= =?UTF-8?q?)=EF=BC=9A=E4=BD=BF=E7=94=A8=20fastJson=20=E9=98=B2=E6=AD=A2=20?= =?UTF-8?q?Long=20=E7=B2=BE=E5=BA=A6=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhengjie/modules/system/domain/vo/MenuVo.java | 1 - .../src/main/resources/template/generator/admin/Dto.ftl | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/MenuVo.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/MenuVo.java index f3352a0e..82fc0cc5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/MenuVo.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo/MenuVo.java @@ -17,7 +17,6 @@ package me.zhengjie.modules.system.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; - import java.io.Serializable; import java.util.List; diff --git a/eladmin-system/src/main/resources/template/generator/admin/Dto.ftl b/eladmin-system/src/main/resources/template/generator/admin/Dto.ftl index e4e1242f..e388a0b4 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/Dto.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/Dto.ftl @@ -24,8 +24,8 @@ import java.math.BigDecimal; import java.io.Serializable; <#if !auto && pkColumnType = 'Long'> -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.alibaba.fastjson.annotation.JSONField; +import com.alibaba.fastjson.serializer.ToStringSerializer; /** @@ -45,7 +45,7 @@ public class ${className}Dto implements Serializable { <#if column.columnKey = 'PRI'> <#if !auto && pkColumnType = 'Long'> /** 防止精度丢失 */ - @JsonSerialize(using= ToStringSerializer.class) + @JSONField(serializeUsing = ToStringSerializer.class) private ${column.columnType} ${column.changeColumnName}; From a90bfac2cf3324ca47f155e6a90a02280fc7fcd9 Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Thu, 24 Dec 2020 16:45:08 +0800 Subject: [PATCH 7/7] =?UTF-8?q?[=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96](v2.6?= =?UTF-8?q?)=EF=BC=9A=E7=A6=81=E7=94=A8=E7=94=A8=E6=88=B7=E5=90=8E?= =?UTF-8?q?=E8=B8=A2=E5=87=BA=E7=94=A8=E6=88=B7Bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close https://github.com/elunez/eladmin/issues/551 --- .../zhengjie/modules/security/service/OnlineUserService.java | 5 +++-- .../java/me/zhengjie/modules/system/rest/UserController.java | 2 +- .../java/me/zhengjie/modules/system/service/UserService.java | 2 +- .../modules/system/service/impl/UserServiceImpl.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java index e9eeb8be..af8d2986 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/OnlineUserService.java @@ -179,11 +179,12 @@ public class OnlineUserService { * @param username / */ @Async - public void kickOutForUsername(String username) { + public void kickOutForUsername(String username) throws Exception { List onlineUsers = getAll(username); for (OnlineUserDto onlineUser : onlineUsers) { if (onlineUser.getUserName().equals(username)) { - kickOut(onlineUser.getKey()); + String token =EncryptUtils.desDecrypt(onlineUser.getKey()); + kickOut(token); } } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java index df326f90..2e885a71 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java @@ -114,7 +114,7 @@ public class UserController { @ApiOperation("修改用户") @PutMapping @PreAuthorize("@el.check('user:edit')") - public ResponseEntity update(@Validated(User.Update.class) @RequestBody User resources){ + public ResponseEntity update(@Validated(User.Update.class) @RequestBody User resources) throws Exception { checkLevel(resources); userService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java index dfe1bd4a..814af925 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java @@ -49,7 +49,7 @@ public interface UserService { * 编辑用户 * @param resources / */ - void update(User resources); + void update(User resources) throws Exception; /** * 删除用户 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java index c206f67f..145b8af7 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java @@ -98,7 +98,7 @@ public class UserServiceImpl implements UserService { @Override @Transactional(rollbackFor = Exception.class) - public void update(User resources) { + public void update(User resources) throws Exception { User user = userRepository.findById(resources.getId()).orElseGet(User::new); ValidationUtil.isNull(user.getId(), "User", "id", resources.getId()); User user1 = userRepository.findByUsername(resources.getUsername());