提交 | 用户 | 时间
|
e7c126
|
1 |
package com.iailab.framework.mybatis.core.handler; |
H |
2 |
|
|
3 |
import com.iailab.framework.mybatis.core.dataobject.BaseDO; |
|
4 |
import com.iailab.framework.web.core.util.WebFrameworkUtils; |
|
5 |
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; |
|
6 |
import org.apache.ibatis.reflection.MetaObject; |
|
7 |
|
|
8 |
import java.time.LocalDateTime; |
|
9 |
import java.util.Objects; |
|
10 |
|
|
11 |
/** |
|
12 |
* 通用参数填充实现类 |
|
13 |
* |
|
14 |
* 如果没有显式的对通用参数进行赋值,这里会对通用参数进行填充、赋值 |
|
15 |
* |
|
16 |
* @author hexiaowu |
|
17 |
*/ |
|
18 |
public class DefaultDBFieldHandler implements MetaObjectHandler { |
|
19 |
|
|
20 |
@Override |
|
21 |
public void insertFill(MetaObject metaObject) { |
|
22 |
if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) { |
|
23 |
BaseDO baseDO = (BaseDO) metaObject.getOriginalObject(); |
|
24 |
|
|
25 |
LocalDateTime current = LocalDateTime.now(); |
|
26 |
// 创建时间为空,则以当前时间为插入时间 |
|
27 |
if (Objects.isNull(baseDO.getCreateTime())) { |
|
28 |
baseDO.setCreateTime(current); |
|
29 |
} |
|
30 |
// 更新时间为空,则以当前时间为更新时间 |
|
31 |
if (Objects.isNull(baseDO.getUpdateTime())) { |
|
32 |
baseDO.setUpdateTime(current); |
|
33 |
} |
|
34 |
|
|
35 |
Long userId = WebFrameworkUtils.getLoginUserId(); |
|
36 |
// 当前登录用户不为空,创建人为空,则当前登录用户为创建人 |
|
37 |
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) { |
|
38 |
baseDO.setCreator(userId.toString()); |
|
39 |
} |
|
40 |
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人 |
|
41 |
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) { |
|
42 |
baseDO.setUpdater(userId.toString()); |
|
43 |
} |
|
44 |
} |
|
45 |
} |
|
46 |
|
|
47 |
@Override |
|
48 |
public void updateFill(MetaObject metaObject) { |
|
49 |
// 更新时间为空,则以当前时间为更新时间 |
|
50 |
Object modifyTime = getFieldValByName("updateTime", metaObject); |
|
51 |
if (Objects.isNull(modifyTime)) { |
|
52 |
setFieldValByName("updateTime", LocalDateTime.now(), metaObject); |
|
53 |
} |
|
54 |
|
|
55 |
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人 |
|
56 |
Object modifier = getFieldValByName("updater", metaObject); |
|
57 |
Long userId = WebFrameworkUtils.getLoginUserId(); |
|
58 |
if (Objects.nonNull(userId) && Objects.isNull(modifier)) { |
|
59 |
setFieldValByName("updater", userId.toString(), metaObject); |
|
60 |
} |
|
61 |
} |
|
62 |
} |