|
|
|
@ -1,15 +1,20 @@
|
|
|
|
|
package cc.yunxi.common.config;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
|
|
|
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
|
|
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
|
|
|
|
import org.apache.ibatis.reflection.MetaObject;
|
|
|
|
|
import org.mybatis.spring.annotation.MapperScan;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
|
|
@Configuration
|
|
|
|
|
@ConditionalOnClass({MybatisPlusInterceptor.class, BaseMapper.class})
|
|
|
|
|
@MapperScan(basePackages = "cc.yunxi.mapper")
|
|
|
|
@ -24,4 +29,25 @@ public class MyBatisConfig {
|
|
|
|
|
interceptor.addInnerInterceptor(paginationInnerInterceptor);
|
|
|
|
|
return interceptor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
@ConditionalOnMissingBean
|
|
|
|
|
public MetaObjectHandler metaObjectHandler() {
|
|
|
|
|
// 通用字段自动填充实现
|
|
|
|
|
return new MetaObjectHandler() {
|
|
|
|
|
@Override
|
|
|
|
|
public void insertFill(MetaObject metaObject) {
|
|
|
|
|
String userId = (String) getFieldValByName("userId", metaObject);
|
|
|
|
|
// 有值则不覆盖、无值自动填充、填充null时不填充
|
|
|
|
|
this.strictInsertFill(metaObject, "createTime", LocalDateTime::now, LocalDateTime.class);
|
|
|
|
|
this.strictInsertFill(metaObject, "creator", () -> userId, String.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void updateFill(MetaObject metaObject) {
|
|
|
|
|
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|