From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期五, 01 十一月 2024 15:11:19 +0800
Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成"

---
 Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/base/BaseServiceImpl.java |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/base/BaseServiceImpl.java b/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/base/BaseServiceImpl.java
new file mode 100644
index 0000000..4fee53b
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/base/BaseServiceImpl.java
@@ -0,0 +1,154 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 搴勯獮 (smallchill@163.com)
+ */
+package org.springblade.core.mp.base;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.SneakyThrows;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.utils.*;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotEmpty;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 涓氬姟灏佽鍩虹绫�
+ *
+ * @param <M> mapper
+ * @param <T> model
+ * @author Chill
+ */
+@Validated
+public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> extends ServiceImpl<M, T> implements BaseService<T> {
+
+	@Override
+	public boolean save(T entity) {
+		this.resolveEntity(entity);
+		return super.save(entity);
+	}
+
+	@Override
+	public boolean saveBatch(Collection<T> entityList, int batchSize) {
+		entityList.forEach(this::resolveEntity);
+		return super.saveBatch(entityList, batchSize);
+	}
+
+	@Override
+	public boolean updateById(T entity) {
+		this.resolveEntity(entity);
+		return super.updateById(entity);
+	}
+
+	@Override
+	public boolean updateBatchById(Collection<T> entityList, int batchSize) {
+		entityList.forEach(this::resolveEntity);
+		return super.updateBatchById(entityList, batchSize);
+	}
+
+	@Override
+	public boolean saveOrUpdate(T entity) {
+		if (entity.getId() == null) {
+			return this.save(entity);
+		} else {
+			return this.updateById(entity);
+		}
+	}
+
+	@Override
+	public boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize) {
+		entityList.forEach(this::resolveEntity);
+		return super.saveOrUpdateBatch(entityList, batchSize);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean deleteLogic(@NotEmpty List<Long> ids) {
+		BladeUser user = AuthUtil.getUser();
+		List<T> list = new ArrayList<>();
+		ids.forEach(id -> {
+			T entity = BeanUtil.newInstance(currentModelClass());
+			if (user != null) {
+				entity.setUpdateUser(user.getUserId());
+			}
+			entity.setUpdateTime(DateUtil.now());
+			entity.setId(id);
+			list.add(entity);
+		});
+		return super.updateBatchById(list) && super.removeByIds(ids);
+	}
+
+	@Override
+	public boolean changeStatus(@NotEmpty List<Long> ids, Integer status) {
+		BladeUser user = AuthUtil.getUser();
+		List<T> list = new ArrayList<>();
+		ids.forEach(id -> {
+			T entity = BeanUtil.newInstance(currentModelClass());
+			if (user != null) {
+				entity.setUpdateUser(user.getUserId());
+			}
+			entity.setUpdateTime(DateUtil.now());
+			entity.setId(id);
+			entity.setStatus(status);
+			list.add(entity);
+		});
+		return super.updateBatchById(list);
+	}
+
+	@SneakyThrows
+	private void resolveEntity(T entity) {
+		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(BladeConstant.DB_STATUS_NORMAL);
+			}
+			entity.setCreateTime(now);
+		} else if (user != null) {
+			// 澶勭悊淇敼閫昏緫
+			entity.setUpdateUser(user.getUserId());
+		}
+		// 澶勭悊閫氱敤閫昏緫
+		entity.setUpdateTime(now);
+		entity.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		// 澶勭悊澶氱鎴烽�昏緫锛岃嫢瀛楁鍊间负绌猴紝鍒欎笉杩涜鎿嶄綔
+		Field field = ReflectUtil.getField(entity.getClass(), BladeConstant.DB_TENANT_KEY);
+		if (ObjectUtil.isNotEmpty(field)) {
+			Method getTenantId = ClassUtil.getMethod(entity.getClass(), BladeConstant.DB_TENANT_KEY_GET_METHOD);
+			String tenantId = String.valueOf(getTenantId.invoke(entity));
+			if (ObjectUtil.isEmpty(tenantId)) {
+				Method setTenantId = ClassUtil.getMethod(entity.getClass(), BladeConstant.DB_TENANT_KEY_SET_METHOD, String.class);
+				setTenantId.invoke(entity, (Object) null);
+			}
+		}
+	}
+
+}

--
Gitblit v1.9.3