package com.kidgrow.db.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.kidgrow.common.constant.SecurityConstants;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
*
* @Description: 自定义填充公共 name 字段
* @Project:
* @CreateDate: Created in 2020/2/4 16:05
* @Author: liuke
*/
public class DateMetaObjectHandler implements MetaObjectHandler {
@Autowired
private HttpServletRequest request;
private final static String UPDATE_TIME = "updateTime";
private final static String CREATE_TIME = "createTime";
private final static String CREATE_USER_ID="createUserId";
private final static String UPDATE_USER_ID="updateUserId";
private final static String CREATE_USER_NAME="createUserName";
private final static String UPDATE_USER_NAME="updateUserName";
/**
* 插入填充,字段为空自动填充
*/
@Override
public void insertFill(MetaObject metaObject) {
Object createTime = getFieldValByName(CREATE_TIME, metaObject);
Object updateTime = getFieldValByName(UPDATE_TIME, metaObject);
Object createUserId = getFieldValByName(CREATE_USER_ID, metaObject);
Object updateUserId = getFieldValByName(UPDATE_USER_ID, metaObject);
Object createUserName = getFieldValByName(CREATE_USER_NAME, metaObject);
Object updateUserName = getFieldValByName(UPDATE_USER_NAME, metaObject);
if (createTime == null || updateTime == null || createUserId==null || updateUserId==null || createUserName==null || updateUserName==null) {
Date date = new Date();
if (createTime == null) {
setFieldValByName(CREATE_TIME, date, metaObject);
}
if(request.getHeader(SecurityConstants.USER_ID_HEADER)!=null) {
setFieldValByName(CREATE_USER_ID, Long.valueOf(request.getHeader(SecurityConstants.USER_ID_HEADER).toString()), metaObject);
}
if (createUserName == null) {
if(request.getHeader(SecurityConstants.USER_HEADER)!=null) {
setFieldValByName(CREATE_USER_NAME, request.getHeader(SecurityConstants.USER_HEADER), metaObject);
}
}
}
}
/**
* 更新填充
*
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
//mybatis-plus版本2.0.9+
setFieldValByName(UPDATE_TIME, new Date(), metaObject);
setFieldValByName(UPDATE_USER_ID, Long.valueOf(request.getHeader(SecurityConstants.USER_ID_HEADER).toString()), metaObject);
setFieldValByName(UPDATE_USER_NAME, request.getHeader(SecurityConstants.USER_HEADER), metaObject);
}
}