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<br>
|
*
|
* @Description: 自定义填充公共 name 字段<br>
|
* @Project: <br>
|
* @CreateDate: Created in 2020/2/4 16:05 <br>
|
* @Author: <a href="4345453@kidgrow.com">liuke</a>
|
*/
|
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<SysOrganization> 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);
|
}
|
}
|
}
|