package com.kidgrow.db.config; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.SysOrganization; import org.apache.ibatis.reflection.MetaObject; import org.springframework.beans.factory.annotation.Autowired; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; /** * 石家庄喜高科技有限责任公司 版权所有 © 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"; // private final static String CREATE_USER_ORG_CODE = "createUserOrgCode"; /** * 插入填充,字段为空自动填充 */ @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); // Object createUserOrgCode = getFieldValByName(CREATE_USER_ORG_CODE, 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); } } // if (createUserOrgCode == null) { // if (request.getHeader(SecurityConstants.USER_ORGS_HEADER) != null) { // //获取orgLevel等级高的 // List sysOrganizations = JSON.parseArray(request.getHeader(SecurityConstants.USER_ORGS_HEADER), SysOrganization.class); // setFieldValByName(CREATE_USER_ORG_CODE,sysOrganizations.get(sysOrganizations.size()-1).getOrgCode() , metaObject); // } // } } } /** * 更新填充 * * @param metaObject */ @Override public void updateFill(MetaObject metaObject) { //mybatis-plus版本2.0.9+ Object updateTime = getFieldValByName(UPDATE_TIME, metaObject); Object updateUserId = getFieldValByName(UPDATE_USER_ID, metaObject); Object updateUserName = getFieldValByName(UPDATE_USER_NAME, metaObject); if (updateTime == null) { setFieldValByName(UPDATE_TIME, new Date(), metaObject); } if ((updateUserId == null) && (request.getHeader(SecurityConstants.USER_ID_HEADER) != null)) { setFieldValByName(UPDATE_USER_ID, Long.valueOf(request.getHeader(SecurityConstants.USER_ID_HEADER).toString()), metaObject); } if ((updateUserName == null) && (request.getHeader(SecurityConstants.USER_HEADER) != null)) { setFieldValByName(UPDATE_USER_NAME, request.getHeader(SecurityConstants.USER_HEADER), metaObject); } } }