liurunyu
2024-08-03 3e4fb6b20cdb85b1bf290a88f68a4646915da78d
pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
@@ -9,6 +9,8 @@
import org.apache.ibatis.plugin.*;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
@Intercepts(
    {
@@ -38,7 +40,7 @@
            Object entity = invocation.getArgs()[PARAMETER_INDEX];
            if (entity instanceof BaseEntity) {
                Class<?> entityClass = entity.getClass();
                Method setIdMt = null ;
                 Method setIdMt = null ;
                try{
                    setIdMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ;
                }catch (Exception e){
@@ -49,6 +51,25 @@
                }
                invocation.getArgs()[PARAMETER_INDEX] = entity;
            }else if(entity instanceof Map){
                try {
                    ((List)((Map<?, ?>) entity).get("list")).forEach(e -> {
                        if (e instanceof BaseEntity) {
                            Class<?> entityClass = e.getClass();
                            Method setIdMt = null ;
                            try{
                                setIdMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ;
                                if(setIdMt != null){
                                    setIdMt.invoke(e, new IDLongGenerator().generate());
                                }
                            }catch (Exception e1){
                                //当entityClass没有setId方法时,会抛出异常
                            }
                        }
                    });
                }catch (Exception e){
                }
            }
        }
        return invocation.proceed();