Commit 7d26c1d00a2a041008b21dea1b3a140af170ebd7
Committed by
hexiaowu1993@mail.com
1 parent
cafb72b5
新增数据自动填充,如果没有显式的对通用字段进行赋值,则会自动填充参数
Showing
2 changed files
with
69 additions
and
4 deletions
src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.framework.mybatis.config; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | ||
| 4 | +import cn.iocoder.dashboard.framework.security.core.LoginUser; | ||
| 5 | +import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; | ||
| 6 | +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; | ||
| 7 | +import org.apache.ibatis.reflection.MetaObject; | ||
| 8 | +import org.springframework.stereotype.Component; | ||
| 9 | + | ||
| 10 | +import java.util.Date; | ||
| 11 | +import java.util.Objects; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 通用参数填充实现类 | ||
| 15 | + * | ||
| 16 | + * 如果没有显式的对通用参数进行赋值,这里会对通用参数进行填充、赋值 | ||
| 17 | + * | ||
| 18 | + * @author hexiaowu | ||
| 19 | + */ | ||
| 20 | +@Component | ||
| 21 | +public class DefaultParamHandler implements MetaObjectHandler { | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + public void insertFill(MetaObject metaObject) { | ||
| 25 | + if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) { | ||
| 26 | + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); | ||
| 27 | + BaseDO baseDO = (BaseDO) metaObject.getOriginalObject(); | ||
| 28 | + Date current = new Date(); | ||
| 29 | + | ||
| 30 | + // 创建时间为空,则以当前时间为插入时间 | ||
| 31 | + if (Objects.isNull(baseDO.getCreateTime())) { | ||
| 32 | + baseDO.setCreateTime(current); | ||
| 33 | + } | ||
| 34 | + // 更新时间为空,则以当前时间为更新时间 | ||
| 35 | + if (Objects.isNull(baseDO.getUpdateTime())) { | ||
| 36 | + baseDO.setUpdateTime(current); | ||
| 37 | + } | ||
| 38 | + // 当前登录用户不为空,创建人为空,则当前登录用户为创建人 | ||
| 39 | + if (Objects.nonNull(loginUser) && Objects.isNull(baseDO.getCreator())) { | ||
| 40 | + baseDO.setCreator(loginUser.getId().toString()); | ||
| 41 | + } | ||
| 42 | + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 | ||
| 43 | + if (Objects.nonNull(loginUser) && Objects.isNull(baseDO.getUpdater())) { | ||
| 44 | + baseDO.setUpdater(loginUser.getId().toString()); | ||
| 45 | + } | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + @Override | ||
| 50 | + public void updateFill(MetaObject metaObject) { | ||
| 51 | + Object modifyTime = getFieldValByName("updateTime", metaObject); | ||
| 52 | + Object modifier = getFieldValByName("updater", metaObject); | ||
| 53 | + // 获取登录用户信息 | ||
| 54 | + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); | ||
| 55 | + | ||
| 56 | + // 更新时间为空,则以当前时间为更新时间 | ||
| 57 | + if (Objects.isNull(modifyTime)) { | ||
| 58 | + setFieldValByName("updateTime", new Date(), metaObject); | ||
| 59 | + } | ||
| 60 | + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 | ||
| 61 | + if (Objects.nonNull(loginUser) && Objects.isNull(modifier)) { | ||
| 62 | + setFieldValByName("updater", loginUser.getId(), metaObject); | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | +} |
src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java
| @@ -21,13 +21,13 @@ public class BaseDO implements Serializable { | @@ -21,13 +21,13 @@ public class BaseDO implements Serializable { | ||
| 21 | */ | 21 | */ |
| 22 | private Date updateTime; | 22 | private Date updateTime; |
| 23 | /** | 23 | /** |
| 24 | - * 创建者 TODO 芋艿:迁移成编号 | 24 | + * 创建者 |
| 25 | */ | 25 | */ |
| 26 | - private String createBy; | 26 | + private String creator; |
| 27 | /** | 27 | /** |
| 28 | - * 更新者 TODO 芋艿:迁移成编号 | 28 | + * 更新者 |
| 29 | */ | 29 | */ |
| 30 | - private String updateBy; | 30 | + private String updater; |
| 31 | /** | 31 | /** |
| 32 | * 是否删除 | 32 | * 是否删除 |
| 33 | */ | 33 | */ |