From 689f6b7f55519874daca1a1ffb52dae6f456e360 Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Tue, 20 Sep 2022 16:29:33 +0800
Subject: [PATCH] 增加工具类解决重写save方法没有给技术字段赋值的问题

---
 src/main/java/org/springblade/modules/taskinfo/service/impl/TaskInfoServiceImpl.java |   12 ++++++
 src/main/java/org/springblade/common/tool/EnhancementServicesTool.java               |   63 +++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/common/tool/EnhancementServicesTool.java b/src/main/java/org/springblade/common/tool/EnhancementServicesTool.java
new file mode 100644
index 0000000..f98484f
--- /dev/null
+++ b/src/main/java/org/springblade/common/tool/EnhancementServicesTool.java
@@ -0,0 +1,63 @@
+package org.springblade.common.tool;
+
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.*;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Date;
+
+/**
+ * @ClassName EnhancementServicesTool
+ * @Description TODO 给框架重写save方法导致没有默认技术字段赋值的解决方法
+ * @Author aix
+ * @Date 2022/9/20 16:16
+ * @Version 1.0
+ */
+public class EnhancementServicesTool <T extends BaseEntity> {
+	public void resolveEntity(T entity) {
+		try {
+			BladeUser user = AuthUtil.getUser();
+			Date now = DateUtil.now();
+			if (entity.getId() == null) {
+				if (user != null) {
+					entity.setCreateUser(user.getUserId());
+					entity.setCreateDept(Func.firstLong(user.getDeptId()));
+					entity.setUpdateUser(user.getUserId());
+				}
+
+				if (entity.getStatus() == null) {
+					entity.setStatus(1);
+				}
+
+				entity.setCreateTime(now);
+			} else if (user != null) {
+				entity.setUpdateUser(user.getUserId());
+			}
+
+			entity.setUpdateTime(now);
+			entity.setIsDeleted(0);
+			Field field = ReflectUtil.getField(entity.getClass(), "tenantId");
+			if (ObjectUtil.isNotEmpty(field)) {
+				Method getTenantId = ClassUtil.getMethod(entity.getClass(), "getTenantId", new Class[0]);
+				String tenantId = String.valueOf(getTenantId.invoke(entity));
+				if (ObjectUtil.isEmpty(tenantId)) {
+					Method setTenantId = ClassUtil.getMethod(entity.getClass(), "setTenantId", new Class[]{String.class});
+					setTenantId.invoke(entity, null);
+				}
+			}
+
+		} catch (Throwable var8) {
+			try {
+				throw var8;
+			} catch (IllegalAccessException e) {
+				throw new RuntimeException(e);
+			} catch (InvocationTargetException e) {
+				throw new RuntimeException(e);
+			}
+		}
+	}
+}
diff --git a/src/main/java/org/springblade/modules/taskinfo/service/impl/TaskInfoServiceImpl.java b/src/main/java/org/springblade/modules/taskinfo/service/impl/TaskInfoServiceImpl.java
index dce45b2..a2df4b5 100644
--- a/src/main/java/org/springblade/modules/taskinfo/service/impl/TaskInfoServiceImpl.java
+++ b/src/main/java/org/springblade/modules/taskinfo/service/impl/TaskInfoServiceImpl.java
@@ -18,6 +18,10 @@
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import org.springblade.common.tool.EnhancementServicesTool;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.modules.taskinfo.entity.TaskInfoEntity;
 import org.springblade.modules.taskinfo.vo.TaskInfoVO;
 import org.springblade.modules.taskinfo.mapper.TaskInfoMapper;
@@ -25,6 +29,11 @@
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Date;
 
 /**
  * 日常巡检 服务实现类
@@ -42,6 +51,8 @@
 
 	@Override
 	public boolean save(TaskInfoEntity entity) {
+		EnhancementServicesTool tool = new EnhancementServicesTool<TaskInfoEntity>();
+		tool.resolveEntity(entity);
 		return SqlHelper.retBool(baseMapper.saveTask(entity));
 	}
 
@@ -54,4 +65,5 @@
 	public boolean updateById(TaskInfoEntity entity) {
 		return SqlHelper.retBool(baseMapper.updateTask(entity));
 	}
+
 }

--
Gitblit v1.9.3