优化代码
This commit is contained in:
parent
92900c7f01
commit
e8865522ba
|
@ -13,7 +13,7 @@
|
||||||
> [设计目标](https://segmentfault.com/a/1190000020906742):面向开发人员的低代码开发平台,将重复性的工作自动化,提高质量、效率、可维护性。
|
> [设计目标](https://segmentfault.com/a/1190000020906742):面向开发人员的低代码开发平台,将重复性的工作自动化,提高质量、效率、可维护性。
|
||||||
|
|
||||||
![diboot平台组成结构图](diboot-docs/.vuepress/public/structure.png)
|
![diboot平台组成结构图](diboot-docs/.vuepress/public/structure.png)
|
||||||
diboot v2版本,目前实现: diboot-core全新内核 + diboot-devtools开发助理 + IAM身份认证、file文件处理等基础组件 + diboot-admin基础后台。
|
diboot v2版本,目前实现: diboot-core全新内核 + diboot-devtools开发助理 + IAM身份认证、file文件处理等基础组件 + diboot-*-admin基础后台。
|
||||||
|
|
||||||
## 一、 diboot-core: 精简优化内核
|
## 一、 diboot-core: 精简优化内核
|
||||||
全新精简内核,(基于diboot-core 2.x版本的CRUD和简单关联的常规功能实现,代码量比1.x版本减少70%+),主要实现:
|
全新精简内核,(基于diboot-core 2.x版本的CRUD和简单关联的常规功能实现,代码量比1.x版本减少70%+),主要实现:
|
||||||
|
@ -40,7 +40,7 @@ diboot v2版本,目前实现: diboot-core全新内核 + diboot-devtools开发
|
||||||
#### 5. SQL与代码很标准(devtools标准化了数据结构定义与代码实现,降低维护成本)
|
#### 5. SQL与代码很标准(devtools标准化了数据结构定义与代码实现,降低维护成本)
|
||||||
> [我要试试](https://www.diboot.com/guide/diboot-devtools/%E4%BB%8B%E7%BB%8D.html)
|
> [我要试试](https://www.diboot.com/guide/diboot-devtools/%E4%BB%8B%E7%BB%8D.html)
|
||||||
|
|
||||||
## 三、iam-base 身份认证基础组件 及 配套VUE前端框架(diboot-admin-antd、diboot-admib-element)
|
## 三、iam-base 身份认证基础组件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin)
|
||||||
|
|
||||||
#### 1. RBAC角色权限模型 + JWT的认证授权 实现,支持刷新token
|
#### 1. RBAC角色权限模型 + JWT的认证授权 实现,支持刷新token
|
||||||
#### 2. 简化的BindPermission注解,支持兼容shiro的简化权限绑定与自动鉴权
|
#### 2. 简化的BindPermission注解,支持兼容shiro的简化权限绑定与自动鉴权
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class BeanUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e){
|
catch (Exception e){
|
||||||
log.warn("对象转换异常, class="+clazz.getName());
|
log.warn("对象转换异常, class: {}, error: {}", clazz.getName(), e.getMessage());
|
||||||
}
|
}
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
@ -158,6 +158,10 @@ public class BeanUtils {
|
||||||
log.warn("类型不一致,暂无法自动绑定,请手动转型一致后调用!字段类型: {} vs {} ", value.getClass().getTypeName(), fieldType);
|
log.warn("类型不一致,暂无法自动绑定,请手动转型一致后调用!字段类型: {} vs {} ", value.getClass().getTypeName(), fieldType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// boolean vs Boolean
|
||||||
|
else if(value.getClass().getTypeName().equalsIgnoreCase(Boolean.class.getName()) && fieldType.equalsIgnoreCase(Boolean.class.getName())){
|
||||||
|
//args[0] = (Boolean).valueOf();
|
||||||
|
}
|
||||||
// Integer 向上转型为 Long 绑定
|
// Integer 向上转型为 Long 绑定
|
||||||
else if(value.getClass().getTypeName().equals(Integer.class.getName()) && fieldType.equals(Long.class.getName())){
|
else if(value.getClass().getTypeName().equals(Integer.class.getName()) && fieldType.equals(Long.class.getName())){
|
||||||
Integer intValue = (Integer)value;
|
Integer intValue = (Integer)value;
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class D extends DateUtils{
|
||||||
/***
|
/***
|
||||||
* 星期
|
* 星期
|
||||||
*/
|
*/
|
||||||
protected static final String[] WEEK = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
|
public static final String[] WEEK = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 当前的日期时间
|
* 当前的日期时间
|
||||||
|
|
|
@ -17,4 +17,4 @@
|
||||||
|
|
||||||
> 组件包含了与此模型相关的后端代码,且依赖的数据结构在组件starter初次启动时将自动初始化。
|
> 组件包含了与此模型相关的后端代码,且依赖的数据结构在组件starter初次启动时将自动初始化。
|
||||||
|
|
||||||
> 配套的前端基础框架有antd、element-ui,前端代码参考: diboot-admin-antd 及 diboot-admin-element
|
> 配套的前端基础框架有antd、element-ui,前端代码参考: diboot-antd-admin 及 diboot-element-admin
|
|
@ -189,11 +189,12 @@ public class FileHelper{
|
||||||
* 删除文件
|
* 删除文件
|
||||||
* @param fileStoragePath
|
* @param fileStoragePath
|
||||||
*/
|
*/
|
||||||
public static void deleteFile(String fileStoragePath) {
|
public static boolean deleteFile(String fileStoragePath) {
|
||||||
File file = new File(fileStoragePath);
|
File file = new File(fileStoragePath);
|
||||||
if(file.exists()){
|
if(file.exists()){
|
||||||
file.delete();
|
return file.delete();
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -71,7 +71,6 @@ public class ZipHelper {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
childFileList[n].getAbsolutePath().indexOf(file.getAbsolutePath());
|
|
||||||
zipFile(srcRootDir, childFileList[n], zos, matchKeyword);
|
zipFile(srcRootDir, childFileList[n], zos, matchKeyword);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# IAM-base: 身份认证组件 (基础版)
|
# IAM-base: 身份认证组件 (基础版)
|
||||||
> 该组件配套的前端基础框架有antd、element-ui,前端代码参考: diboot-admin-antd 及 diboot-admin-element
|
> 该组件配套的前端基础框架有antd、element-ui,前端代码参考: diboot-antd-admin 及 diboot-element-admin
|
||||||
## 组件特性
|
## 组件特性
|
||||||
* 开箱即用的RBAC角色权限模型
|
* 开箱即用的RBAC角色权限模型
|
||||||
* 基于JWT的认证授权,支持申请token、刷新token
|
* 基于JWT的认证授权,支持申请token、刷新token
|
||||||
|
|
|
@ -95,11 +95,17 @@ public class IamUserRoleServiceImpl extends BaseIamServiceImpl<IamUserRoleMapper
|
||||||
|
|
||||||
Long superAdminRoleId = getSuperAdminRoleId();
|
Long superAdminRoleId = getSuperAdminRoleId();
|
||||||
boolean hasSuperAdmin = false;
|
boolean hasSuperAdmin = false;
|
||||||
|
String userType = null;
|
||||||
|
Long userId = null;
|
||||||
for(Object entity : entityList){
|
for(Object entity : entityList){
|
||||||
IamUserRole iamUserRole = (IamUserRole)entity;
|
IamUserRole iamUserRole = (IamUserRole)entity;
|
||||||
if(superAdminRoleId != null && superAdminRoleId.equals(iamUserRole.getRoleId())){
|
if(superAdminRoleId != null && superAdminRoleId.equals(iamUserRole.getRoleId())){
|
||||||
hasSuperAdmin = true;
|
hasSuperAdmin = true;
|
||||||
}
|
}
|
||||||
|
if(userId == null){
|
||||||
|
userType = iamUserRole.getUserType();
|
||||||
|
userId = iamUserRole.getUserId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(hasSuperAdmin){
|
if(hasSuperAdmin){
|
||||||
checkSuperAdminIdentity();
|
checkSuperAdminIdentity();
|
||||||
|
@ -107,8 +113,7 @@ public class IamUserRoleServiceImpl extends BaseIamServiceImpl<IamUserRoleMapper
|
||||||
boolean success = super.createEntities(entityList);
|
boolean success = super.createEntities(entityList);
|
||||||
if(success){
|
if(success){
|
||||||
// 清空用户缓存
|
// 清空用户缓存
|
||||||
IamUserRole entity = ((List<IamUserRole>) entityList).get(0);
|
clearUserAuthCache(userType, userId);
|
||||||
clearUserAuthCache(entity.getUserType(), entity.getUserId());
|
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue