From 914bc07f2ff447f916b736da84d766cda8c6f67b Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 11 六月 2024 14:04:12 +0800
Subject: [PATCH] 优化代码

---
 pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java |   41 +++++++++++++++++++++++++----------------
 1 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java b/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
index 6265e27..5c3b4e0 100644
--- a/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
@@ -1,8 +1,6 @@
 package com.dy.common.mybatis;
 
 
-import com.alibaba.fastjson2.JSONObject;
-import com.alibaba.fastjson2.JSONWriter;
 import com.dy.common.po.BaseEntity;
 import com.dy.common.util.IDLongGenerator;
 import org.apache.ibatis.executor.Executor;
@@ -11,6 +9,8 @@
 import org.apache.ibatis.plugin.*;
 
 import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
 
 @Intercepts(
     {
@@ -26,7 +26,6 @@
     static int MAPPED_STATEMENT_INDEX = 0;
     static int PARAMETER_INDEX = 1;
     static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME = "setId";
-    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME2 = "setUserId";
 
     /**
      * 鎷︽埅閫昏緫瀹炵幇
@@ -40,27 +39,37 @@
         if (commandType.equals(SqlCommandType.INSERT)) {
             Object entity = invocation.getArgs()[PARAMETER_INDEX];
             if (entity instanceof BaseEntity) {
-                //Class<? extends Object> entityClass = entity.getClass();
                 Class<?> entityClass = entity.getClass();
-                Method setMt = null ;
+                 Method setIdMt = null ;
                 try{
-                    // 娣诲姞鐢ㄦ埛鏃秛serId涓鸿嚜鍔ㄧ敓鎴愪富閿�俽oleId瀛樺湪鏃舵槸涓虹敤鎴风粦瑙掕壊
-                    String jsonString = JSONObject.toJSONString(entity, JSONWriter.Feature.WriteMapNullValue);
-                    JSONObject jsonObject = JSONObject.parseObject(jsonString);
-                    if(jsonObject.containsKey("userId") && !jsonObject.containsKey("roleId")) {
-                        setMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME2, Long.class) ;
-                    }else {
-                        //鏈変竴浜涘疄浣撴病鏈塱d锛屼緥濡備腑闂磋〃
-                        setMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ;
-                    }
+                    setIdMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ;
                 }catch (Exception e){
                     //褰揺ntityClass娌℃湁setId鏂规硶鏃讹紝浼氭姏鍑哄紓甯�
                 }
-                if(setMt != null){
-                    setMt.invoke(entity, new IDLongGenerator().generate());
+                if(setIdMt != null){
+                    setIdMt.invoke(entity, new IDLongGenerator().generate());
                 }
 
                 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){
+                                //褰揺ntityClass娌℃湁setId鏂规硶鏃讹紝浼氭姏鍑哄紓甯�
+                            }
+                        }
+                    });
+                }catch (Exception e){
+
+                }
             }
         }
         return invocation.proceed();

--
Gitblit v1.8.0