Files
smartDriveEE/src/main/java/com/rj/config/MybatisPlusMetaObjectHandler.java
2025-12-16 23:34:07 +08:00

42 lines
1.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.rj.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.rj.tenant.TenantContextHolder;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
/**
* MyBatis-Plus 公共字段自动填充处理器
*
* <p>
* 仅负责在插入时为带有 tenantId 字段的实体自动填充当前租户ID<br/>
* 更新时不修改 tenantId确保租户ID一旦写入不可被业务层随意修改。
* </p>
*/
@Component
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
private static final String TENANT_FIELD = "tenantId";
@Override
public void insertFill(MetaObject metaObject) {
// 仅在实体中存在 tenantId 字段且当前值为空时进行填充
if (metaObject.hasSetter(TENANT_FIELD)) {
Object currentValue = getFieldValByName(TENANT_FIELD, metaObject);
if (currentValue == null) {
String tenantId = TenantContextHolder.getTenantId();
if (tenantId != null) {
this.strictInsertFill(metaObject, TENANT_FIELD, String.class, tenantId);
}
}
}
}
@Override
public void updateFill(MetaObject metaObject) {
// 不自动更新 tenantId保持租户ID稳定
}
}