1. 系统新增用户标记为外部用户;e 办同步用户标记为系统用户

2. 业务表新增基础业务字段,创建人与更新人名称

(cherry picked from commit 9ee1100b29)
This commit is contained in:
chenbowen
2025-09-16 16:09:10 +08:00
committed by chenbowen
parent 988b4bd74f
commit 4004d4f691
19 changed files with 195 additions and 53 deletions

View File

@@ -34,6 +34,12 @@ public class BusinessBaseDO extends BaseDO {
* 多租户编号
*/
private Long tenantId;
/** 创建人名称 */
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
private String creatorName;
/** 更新人名称 */
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
private String updaterName;
@TableField(exist = false)
private List<String> inputStrs;
@@ -49,6 +55,8 @@ public class BusinessBaseDO extends BaseDO {
this.deptId = null;
this.deptName = null;
this.postId = null;
this.creatorName = null;
this.updaterName = null;
}
}

View File

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.annotation.BusinessCode;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import jakarta.annotation.Resource;
@@ -51,6 +52,7 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
}
Long userId = WebFrameworkUtils.getLoginUserId();
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
// 当前登录用户不为空,创建人为空,则当前登录用户为创建人
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) {
baseDO.setCreator(userId.toString());
@@ -65,6 +67,9 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
// 需要在业务层手动设置
autoFillDeptInfo(businessBaseDO);
// 自动填充用户名称字段
autoFillUserNames(businessBaseDO);
// 自动填充带 @BusinessCode 注解的字段序列
autoFillBusinessCode(businessBaseDO);
}
@@ -81,9 +86,32 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人
Object modifier = getFieldValByName("updater", metaObject);
Long userId = WebFrameworkUtils.getLoginUserId();
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
if (Objects.nonNull(userId) && Objects.isNull(modifier)) {
setFieldValByName("updater", userId.toString(), metaObject);
}
// 对于 BusinessBaseDO自动填充更新人名称
if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BusinessBaseDO) {
Object updaterNameVal = getFieldValByName("updaterName", metaObject);
if (Objects.nonNull(userNickname) && Objects.isNull(updaterNameVal)) {
setFieldValByName("updaterName", userNickname, metaObject);
}
}
}
private void autoFillUserNames(BusinessBaseDO businessBaseDO) {
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
if (Objects.nonNull(userNickname)) {
// 创建人名称为空,则填充当前用户昵称
if (Objects.isNull(businessBaseDO.getCreatorName())) {
businessBaseDO.setCreatorName(userNickname);
}
// 更新人名称为空,则填充当前用户昵称
if (Objects.isNull(businessBaseDO.getUpdaterName())) {
businessBaseDO.setUpdaterName(userNickname);
}
}
}
private void autoFillBusinessCode(BusinessBaseDO businessBaseDO) {