From d175d9c401fb97ebe6a580005a8c9ad5fedccb6b Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期一, 29 七月 2024 17:02:41 +0800
Subject: [PATCH] add other method
---
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