package com.fkzy.warn.common.conf;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 自动填充类
 *
 * @author yuyantian
 * @date 2023/9/18 14:30
 */
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

	private MyMetaObjectHandler() {

	}

	// 新增的时候自动填充
	@Override
	public void insertFill(MetaObject metaObject) {
		//创建时间
		if (null == this.getFieldValByName("createTime", metaObject)) {
			this.setFieldValByName("createTime", new Date(), metaObject);
		}
		//判断是否删除类型为字符串
		Class<?> isDelType = metaObject.getGetterType("isDel");
		if (isDelType.getName().equals("java.lang.Integer")) {
			//是否删除
			this.setFieldValByName("isDel", 0, metaObject);
		}
	}

	// 更新的时候后自动填充
	@Override
	public void updateFill(MetaObject metaObject) {
		//修改时间
		this.setFieldValByName("updateTime", new Date(), metaObject);
		//操作时间
		this.setFieldValByName("operationTime", new Date(), metaObject);
	}

}