From d28391ce056f03cf48399299df74d95dc34dd863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 6 Mar 2023 15:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91MybatisInterceptor?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/mybatis/MybatisInterceptor.java | 69 ++++++++----------- 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/mybatis/MybatisInterceptor.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/mybatis/MybatisInterceptor.java index 8af57233..c8d2a645 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/mybatis/MybatisInterceptor.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/mybatis/MybatisInterceptor.java @@ -10,6 +10,7 @@ import org.apache.shiro.SecurityUtils; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.oConvertUtils; import org.springframework.stereotype.Component; +import org.springframework.util.ReflectionUtils; import java.lang.reflect.Field; import java.util.Date; @@ -44,51 +45,42 @@ public class MybatisInterceptor implements Interceptor { for (Field field : fields) { log.debug("------field.name------" + field.getName()); try { - if ("createBy".equals(field.getName())) { - field.setAccessible(true); - Object local_createBy = field.get(parameter); - field.setAccessible(false); - if (local_createBy == null || local_createBy.equals("")) { - if (sysUser != null) { - // 登录人账号 - field.setAccessible(true); - field.set(parameter, sysUser.getUsername()); - field.setAccessible(false); - } + if ("createBy".equals(field.getName()) && sysUser != null) { + ReflectionUtils.makeAccessible(field); + Object localCreateBy = ReflectionUtils.getField(field,parameter); + if (localCreateBy == null || "".equals(localCreateBy)) { + // 登录人账号 + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field,parameter,sysUser.getUsername()); } } // 注入创建时间 if ("createTime".equals(field.getName())) { - field.setAccessible(true); - Object local_createDate = field.get(parameter); - field.setAccessible(false); - if (local_createDate == null || local_createDate.equals("")) { - field.setAccessible(true); - field.set(parameter, new Date()); - field.setAccessible(false); + ReflectionUtils.makeAccessible(field); + Object localCreateDate = ReflectionUtils.getField(field,parameter); + if (localCreateDate == null || "".equals(localCreateDate)) { + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field,parameter,new Date()); } } //注入部门编码 - if ("sysOrgCode".equals(field.getName())) { - field.setAccessible(true); - Object local_sysOrgCode = field.get(parameter); - field.setAccessible(false); - if (local_sysOrgCode == null || local_sysOrgCode.equals("")) { + if ("sysOrgCode".equals(field.getName()) && sysUser != null) { + ReflectionUtils.makeAccessible(field); + Object localSysOrgCode = ReflectionUtils.getField(field,parameter); + if (localSysOrgCode == null || "".equals(localSysOrgCode)) { // 获取登录用户信息 - if (sysUser != null) { - field.setAccessible(true); - field.set(parameter, sysUser.getOrgCode()); - field.setAccessible(false); - } + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field,parameter,sysUser.getOrgCode()); } } } catch (Exception e) { + log.error("异常", e); } } } if (SqlCommandType.UPDATE == sqlCommandType) { LoginUser sysUser = this.getLoginUser(); - Field[] fields = null; + Field[] fields; if (parameter instanceof ParamMap) { ParamMap p = (ParamMap) parameter; //update-begin-author:scott date:20190729 for:批量更新报错issues/IZA3Q-- @@ -113,22 +105,18 @@ public class MybatisInterceptor implements Interceptor { for (Field field : fields) { log.debug("------field.name------" + field.getName()); try { - if ("updateBy".equals(field.getName())) { + if ("updateBy".equals(field.getName()) && sysUser != null) { //获取登录用户信息 - if (sysUser != null) { - // 登录账号 - field.setAccessible(true); - field.set(parameter, sysUser.getUsername()); - field.setAccessible(false); - } + // 登录账号 + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field,parameter,sysUser.getUsername()); } if ("updateTime".equals(field.getName())) { - field.setAccessible(true); - field.set(parameter, new Date()); - field.setAccessible(false); + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field,parameter,new Date()); } } catch (Exception e) { - e.printStackTrace(); + log.error("异常", e); } } } @@ -151,7 +139,6 @@ public class MybatisInterceptor implements Interceptor { try { sysUser = SecurityUtils.getSubject().getPrincipal() != null ? (LoginUser) SecurityUtils.getSubject().getPrincipal() : null; } catch (Exception e) { - //e.printStackTrace(); sysUser = null; } return sysUser;