Browse Source

客户ID自动填充

dev
zhaoqifeng 4 years ago
parent
commit
b0c728c99e
  1. 2
      tduck-common/src/main/java/com/tduck/cloud/common/constant/CommonConstants.java
  2. 8
      tduck-common/src/main/java/com/tduck/cloud/common/constant/FieldConstant.java
  3. 27
      tduck-common/src/main/java/com/tduck/cloud/common/entity/BaseEntity.java
  4. 51
      tduck-common/src/main/java/com/tduck/cloud/common/mybatis/handler/AutoFillMetaInfoHandler.java

2
tduck-common/src/main/java/com/tduck/cloud/common/constant/CommonConstants.java

@ -44,7 +44,7 @@ public interface CommonConstants {
* @Fields ZERO : ( 0 )
*/
Integer ZERO = 0;
String ZERO_STR = "0";
/**
* @Fields ONE : ( 1 )
*/

8
tduck-common/src/main/java/com/tduck/cloud/common/constant/FieldConstant.java

@ -16,14 +16,14 @@ public interface FieldConstant {
String REVISION = "REVISION";
String REVISION_HUMP = "revision";
String CREATED_BY = "CREATED_BY";
String CREATED_BY_HUMP = "createdBy";
String CREATED_BY = "CREATE_BY";
String CREATED_BY_HUMP = "createBy";
String CREATED_TIME = "CREATED_TIME";
String CREATED_TIME_HUMP = "createdTime";
String UPDATED_BY = "UPDATED_BY";
String UPDATED_BY_HUMP = "updatedBy";
String UPDATED_BY = "UPDATE_BY";
String UPDATED_BY_HUMP = "updateBy";
String UPDATED_TIME = "UPDATED_TIME";
String UPDATED_TIME_HUMP = "updatedTime";

27
tduck-common/src/main/java/com/tduck/cloud/common/entity/BaseEntity.java

@ -3,6 +3,7 @@ package com.tduck.cloud.common.entity;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -22,12 +23,32 @@ import java.time.LocalDateTime;
public class BaseEntity<T> extends Model {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
@TableField(fill = FieldFill.INSERT)
protected String customerId;
/**
* 乐观锁
*/
@TableField(fill = FieldFill.INSERT)
private Integer revision;
/**
* 是否已删除(0-未删除1-已删除)
*/
@TableField(fill = FieldFill.INSERT)
@TableLogic
private String delFlag;
/**
* 创建人ID
*/
@TableField(fill = FieldFill.INSERT)
protected String createBy;
/**
* 更新人ID
*/
@TableField(fill = FieldFill.INSERT)
protected String userId;
protected String updateBy;
/**
* 创建时间

51
tduck-common/src/main/java/com/tduck/cloud/common/mybatis/handler/AutoFillMetaInfoHandler.java

@ -1,6 +1,7 @@
package com.tduck.cloud.common.mybatis.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.tduck.cloud.common.constant.CommonConstants;
import com.tduck.cloud.common.constant.FieldConstant;
import com.tduck.cloud.common.entity.BaseEntity;
import com.tduck.cloud.common.util.LoginUserUtil;
@ -9,6 +10,7 @@ import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Optional;
/**
* @author smalljop
@ -21,21 +23,19 @@ public class AutoFillMetaInfoHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 如果该entity对象,有customerId属性,那么自动填充;
if (metaObject.hasSetter(FieldConstant.CUSTOMER_ID_HUMP)) {
this.setFieldValByName(FieldConstant.CUSTOMER_ID_HUMP, getCustomerIdByFieldValue(metaObject), metaObject);
}
// 如果该entity对象,有userId属性,那么自动填充;
if (metaObject.hasSetter(FieldConstant.USER_ID_HUMP)) {
this.setFieldValByName(FieldConstant.USER_ID_HUMP, getUserIdByFieldValue(metaObject), metaObject);
}
this.setFieldValByName(BaseEntity.Fields.customerId, getCustomerIdByFieldValue(metaObject), metaObject);
this.setFieldValByName(BaseEntity.Fields.createBy, getCreatedByFieldValue(metaObject), metaObject);
this.setFieldValByName(BaseEntity.Fields.updateBy, getUpdatedByFieldValue(metaObject), metaObject);
this.setFieldValByName(BaseEntity.Fields.createTime, LocalDateTime.now(), metaObject);
this.setFieldValByName(BaseEntity.Fields.updateTime, LocalDateTime.now(), metaObject);
this.setFieldValByName(BaseEntity.Fields.revision, CommonConstants.ConstantNumber.ZERO, metaObject);
this.setFieldValByName(BaseEntity.Fields.delFlag, CommonConstants.ConstantNumber.ZERO_STR, metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName(BaseEntity.Fields.updateTime, LocalDateTime.now(), metaObject);
this.setFieldValByName(BaseEntity.Fields.updateBy, getUpdatedByFieldValue(metaObject), metaObject);
}
public Object getCustomerIdByFieldValue(MetaObject metaObject) {
@ -58,4 +58,39 @@ public class AutoFillMetaInfoHandler implements MetaObjectHandler {
}
return LoginUserUtil.get().getUserId();
}
public Object getCreatedByFieldValue(MetaObject metaObject) {
Object value = null;
if (metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) {
value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP);
}
if (value == null) {
value = Optional.ofNullable(LoginUserUtil.get().getUserId()).orElse("APP_USER");
}
return value;
}
public Object getUpdatedByFieldValue(MetaObject metaObject) {
Object value = null;
if (metaObject.hasGetter(FieldConstant.UPDATED_BY_HUMP)) {
value = metaObject.getValue(FieldConstant.UPDATED_BY_HUMP);
}
if (value == null) {
if(metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) {
value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP);
}
if(null == value) {
value = Optional.ofNullable(LoginUserUtil.get().getUserId()).orElse("APP_USER");
}
}
return value;
}
}

Loading…
Cancel
Save