MetaObjectHandlerConfig.java 2.25 KB
Newer Older
liqin's avatar
liqin committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
package cn.wisenergy.chnmuseum.party.common.mybatis;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 配置公共字段自动填充功能  @TableField(..fill = FieldFill.INSERT)
 * 特别注意,3.0-gamma之前的版本 MetaObjectHandler 是抽象类
 * 3.0-RC之后的版本MetaObjectHandler 是接口
 */
@Component
public class MetaObjectHandlerConfig implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        LocalDateTime now = LocalDateTime.now();
liqin's avatar
liqin committed
20 21
        Object createTime = getFieldValByName("createTime", metaObject);
        Object updateTime = getFieldValByName("updateTime", metaObject);
liqin's avatar
liqin committed
22
        if (createTime == null) {
liqin's avatar
liqin committed
23
            this.setFieldValByName("createTime", now, metaObject);
liqin's avatar
liqin committed
24 25
        }
        if (updateTime == null) {
liqin's avatar
liqin committed
26
            this.setFieldValByName("updateTime", now, metaObject);
liqin's avatar
liqin committed
27 28 29 30 31
        }
        this.setFieldValByName("version", 1, metaObject);
        // 创建人
//        Principal currentUser = getCurrentUser();
//        this.setFieldValByName("creatorId", currentUser.getId(), metaObject);
liqin's avatar
liqin committed
32
        this.setFieldValByName("userId", "1", metaObject);
liqin's avatar
liqin committed
33 34 35 36 37 38
//        this.setFieldValByName("creatorName", currentUser.getLoginName(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        LocalDateTime now = LocalDateTime.now();
liqin's avatar
liqin committed
39
        Object updateTime = getFieldValByName("updateTime", metaObject);
liqin's avatar
liqin committed
40
        if (updateTime == null) {
liqin's avatar
liqin committed
41
            this.setFieldValByName("updateTime", now, metaObject);
liqin's avatar
liqin committed
42 43 44 45 46 47
        }
        //操作人
//        this.setFieldValByName("createId", 111L, metaObject);
//        this.setFieldValByName("modifierBy", 111L, metaObject);
    }

liqin's avatar
liqin committed
48
    /*
liqin's avatar
liqin committed
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
     * 获取当前登录用户
     *
     * @return 用户对象
     */
//    private Principal getCurrentUser() {
//        Subject subject = SecurityUtils.getSubject();
//        if (subject != null) {
//            Principal user = (Principal) subject.getPrincipal();
//            if (user != null) {
//                return user;
//            }
//        }
//        return null;
//        return new Principal(1L, "admin");
//    }

}