实体

@TableField(fill = FieldFill.INSERT)
private String createByName;
@TableField(fill = FieldFill.UPDATE)
private String updateBy;

填充类

package com.talents.application.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.talents.application.entity.dto.Account;
import com.talents.application.service.AccountService;
import com.talents.application.utils.SpringUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 自动填充处理类
 *
 **/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {


    @Override
    public void insertFill(MetaObject metaObject)
    {
        String userId = "system";
        String userName = "system";
        User user = null;
        try
        {
            user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

        } catch (Exception e)
        {

        }

        if (user != null)
        {
            AccountService accountService = SpringUtils.getBean(AccountService.class);
            Account account = accountService.findAccountByJobNumber(user.getUsername());
            if (account != null)
            {
                userId = account.getId();
                userName = account.getName();
            }
        }
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("createBy", userId, metaObject);
        this.setFieldValByName("createByName", userName, metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject)
    {
        String userId = "system";
        User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        if (user != null)
        {
            AccountService accountService = SpringUtils.getBean(AccountService.class);
            Account account = accountService.findAccountByJobNumber(user.getUsername());
            if (account != null)
            {
                userId = account.getId();
            }
        }
        this.setFieldValByName("updateTime", new Date(), metaObject);
        this.setFieldValByName("updateBy", userId, metaObject);
    }
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐