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); } }