From 72b290bf33723b25c3cf522c92ab306d6f314de1 Mon Sep 17 00:00:00 2001 From: Parker Date: Sun, 20 Dec 2020 21:01:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Mybatis-plus=20=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A1=AB=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/opsli/core/aspect/SQLDataAop.java | 6 ++-- .../UserCachingOperationNameGenerator.java | 3 +- .../org/opsli/core/cache/local/CacheUtil.java | 18 +++------- .../conf/mybatis/AutoFillInterceptor.java | 34 +++++++++---------- 4 files changed, 25 insertions(+), 36 deletions(-) diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/SQLDataAop.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/SQLDataAop.java index c232d6df..b804c01a 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/SQLDataAop.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/SQLDataAop.java @@ -51,7 +51,7 @@ public class SQLDataAop { } @AfterReturning(returning = "ret", pointcut = "insert()") - public void insertHadnler(Object ret){ + public void insertHandler(Object ret){ try { if(ret == null){ throw new ServiceException(CoreMsg.SQL_EXCEPTION_INSERT); @@ -64,7 +64,7 @@ public class SQLDataAop { } @AfterReturning(returning = "ret", pointcut = "update()") - public void updateHadnler(Object ret){ + public void updateHandler(Object ret){ try { if(ret == null){ throw new ServiceException(CoreMsg.SQL_EXCEPTION_UPDATE); @@ -77,7 +77,7 @@ public class SQLDataAop { } @AfterReturning(returning = "ret", pointcut = "delete()") - public void deleteHadnler(Object ret){ + public void deleteHandler(Object ret){ try { if(ret != null){ Boolean retFlag = (Boolean) ret; diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/UserCachingOperationNameGenerator.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/UserCachingOperationNameGenerator.java index 6f953216..3ab4747f 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/UserCachingOperationNameGenerator.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/aspect/UserCachingOperationNameGenerator.java @@ -53,9 +53,8 @@ public class UserCachingOperationNameGenerator { private String startingWith(String prefix) { if (generated.containsKey(prefix)) { generated.put(prefix, generated.get(prefix) + 1); - String nextUniqueOperationName = String.format("%s_%s", prefix, generated.get(prefix)); //log.warn("组件中存在相同的方法名称,自动生成组件方法唯一名称进行替换: {}", nextUniqueOperationName); - return nextUniqueOperationName; + return String.format("%s_%s", prefix, generated.get(prefix)); } else { generated.put(prefix, 0); return prefix; diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/local/CacheUtil.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/local/CacheUtil.java index aaec7ff7..6e6a65f1 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/local/CacheUtil.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/local/CacheUtil.java @@ -15,15 +15,12 @@ */ package org.opsli.core.cache.local; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.io.file.FileReader; import cn.hutool.core.util.XmlUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; import org.opsli.common.constants.CacheConstants; import org.opsli.common.utils.Props; import org.opsli.core.aspect.CacheDataAop; @@ -39,7 +36,6 @@ import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import java.io.BufferedInputStream; import java.io.IOException; import java.util.List; @@ -219,7 +215,7 @@ public class CacheUtil { * @return V */ public static Object getHash(String key, String field){ - return CacheUtil.getHash(CacheConstants.EDEN_HASH_DATA,key,field,true); + return CacheUtil.getHash(key,field,true); } /** @@ -246,7 +242,7 @@ public class CacheUtil { * @return V */ public static Object getHashByKeyOriginal(String key, String field){ - return CacheUtil.getHash(CacheConstants.EDEN_HASH_DATA,key,field,false); + return CacheUtil.getHash(key,field,false); } /** @@ -449,16 +445,15 @@ public class CacheUtil { /** * 获得 Hash 缓存 - * @param cacheName 主缓存名 * @param key 键 * @param field 字段名 * @param keyFlag 是否处理key * @return */ - private static Object getHash(String cacheName, String key, String field, boolean keyFlag){ + private static Object getHash(String key, String field, boolean keyFlag){ // 自动处理 key if(keyFlag){ - key = CacheUtil.handleKey(cacheName, key); + key = CacheUtil.handleKey(CacheConstants.EDEN_HASH_DATA, key); } Object v = null; try { @@ -1065,10 +1060,7 @@ public class CacheUtil { try { // 判断Redis 是否 包含当前Nil值 Object o = redisPlugin.get(NIL_FLAG_PREFIX + key); - if(o != null){ - return true; - } - return false; + return o != null; }catch (Exception e){ log.error(e.getMessage(),e); } diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/conf/mybatis/AutoFillInterceptor.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/conf/mybatis/AutoFillInterceptor.java index 2b3778d0..b5592d9c 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/conf/mybatis/AutoFillInterceptor.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/conf/mybatis/AutoFillInterceptor.java @@ -17,6 +17,7 @@ package org.opsli.core.conf.mybatis; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ReflectUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -25,7 +26,6 @@ import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlCommandType; import org.apache.ibatis.plugin.*; -import org.opsli.api.wrapper.system.user.UserModel; import org.opsli.common.constants.MyBatisConstants; import org.opsli.core.utils.UserUtil; import org.springframework.stereotype.Component; @@ -67,10 +67,7 @@ public class AutoFillInterceptor implements Interceptor { private void fillField(Invocation invocation) { Object[] args = invocation.getArgs(); SqlCommandType sqlCommandType = null; - for (int i = 0; i < args.length; i++) { - Object arg = args[i]; - //String className = arg.getClass().getName(); - //log.info(i + " 参数类型:" + className); + for (Object arg : args) { //第一个参数处理。根据它判断是否给“操作属性”赋值。 //如果是第一个参数 MappedStatement if (arg instanceof MappedStatement) { @@ -103,7 +100,8 @@ public class AutoFillInterceptor implements Interceptor { if(arg == null ){ return; } - + // 当前时间 + Date currDate = DateUtil.date(); Field[] fields = ReflectUtil.getFields(arg.getClass()); for (Field f : fields) { f.setAccessible(true); @@ -112,25 +110,25 @@ public class AutoFillInterceptor implements Interceptor { case MyBatisConstants.FIELD_CREATE_BY: // 如果创建人 为空则进行默认赋值 Object createValue = ReflectUtil.getFieldValue(arg, f.getName()); - if(createValue == null){ + if(StringUtils.isBlank(Convert.toStr(createValue))){ setProperty(arg, MyBatisConstants.FIELD_CREATE_BY, UserUtil.getUser().getId()); } break; - // 创建日期 - case MyBatisConstants.FIELD_CREATE_TIME: - setProperty(arg, MyBatisConstants.FIELD_CREATE_TIME, new Date()); - break; // 更新人 case MyBatisConstants.FIELD_UPDATE_BY: // 如果更新人 为空则进行默认赋值 Object updateValue = ReflectUtil.getFieldValue(arg, f.getName()); - if(updateValue == null){ + if(StringUtils.isBlank(Convert.toStr(updateValue))){ setProperty(arg, MyBatisConstants.FIELD_UPDATE_BY, UserUtil.getUser().getId()); } break; + // 创建日期 + case MyBatisConstants.FIELD_CREATE_TIME: + setProperty(arg, MyBatisConstants.FIELD_CREATE_TIME, currDate); + break; // 更新日期 case MyBatisConstants.FIELD_UPDATE_TIME: - setProperty(arg, MyBatisConstants.FIELD_UPDATE_TIME, new Date()); + setProperty(arg, MyBatisConstants.FIELD_UPDATE_TIME, currDate); break; // 乐观锁 case MyBatisConstants.FIELD_OPTIMISTIC_LOCK: @@ -142,10 +140,10 @@ public class AutoFillInterceptor implements Interceptor { break; // 多租户设置 case MyBatisConstants.FIELD_TENANT: + // 2020-12-05 修复当前租户可能为空字符串报错问题 // 如果租户ID 为空则进行默认赋值 Object tenantValue = ReflectUtil.getFieldValue(arg, f.getName()); - String tenantValueStr = Convert.toStr(tenantValue); - if(StringUtils.isBlank(tenantValueStr)){ + if(StringUtils.isBlank(Convert.toStr(tenantValue))){ setProperty(arg, MyBatisConstants.FIELD_TENANT, UserUtil.getTenantId()); } break; @@ -187,13 +185,13 @@ public class AutoFillInterceptor implements Interceptor { case MyBatisConstants.FIELD_UPDATE_BY: // 如果更新人 为空则进行默认赋值 Object updateValue = ReflectUtil.getFieldValue(arg, f.getName()); - if(updateValue == null){ + if(StringUtils.isBlank(Convert.toStr(updateValue))){ setProperty(arg, MyBatisConstants.FIELD_UPDATE_BY, UserUtil.getUser().getId()); } break; // 更新日期 case MyBatisConstants.FIELD_UPDATE_TIME: - setProperty(arg, MyBatisConstants.FIELD_UPDATE_TIME, new Date()); + setProperty(arg, MyBatisConstants.FIELD_UPDATE_TIME, DateUtil.date()); break; default: break; @@ -207,7 +205,7 @@ public class AutoFillInterceptor implements Interceptor { /** * 为对象的操作属性赋值 * - * @param bean + * @param bean bean对象 */ private void setProperty(Object bean, String name, Object value) { //根据需要,将相关属性赋上默认值