RelationTable.java
package com.mycim.valueobject.table;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.bas.Relation;
import com.mycim.valueobject.bas.TransactionLog;
/**
* @author yibing.liu
* @version 1.0
* @date 2021/4/15
*/
public class RelationTable extends SpecificTableDto {
/**
* 拆出后的表字段相同的新关系表,可以直接复用此对象 修改表名即可
*
* @param tableName
* @param relation
* @param transactionLog
*/
public RelationTable(String tableName, Relation relation, TransactionLog transactionLog) {
super.tableName = tableName;
super.transId = relation.getTransId();
if (StringUtils.equalsIgnoreCase("CREATE", relation.getTransId()) ||
StringUtils.equalsIgnoreCase("ADD", relation.getTransId()) ||
StringUtils.containsIgnoreCase(relation.getTransId(), "ADD")) {
setInsertFields(relation, transactionLog);
} else if (StringUtils.equalsIgnoreCase("MODIFY", relation.getTransId()) ||
StringUtils.equalsIgnoreCase("UPDATE", relation.getTransId())) {
setUpdateFields(relation, transactionLog);
} else {
setDeleteFields(relation, transactionLog);
}
}
@Override
void setInsertFields(Relation relation, TransactionLog transactionLog) {
addPrimaryKeyList(relation);
addNormalFieldList(relation);
addField("CREATE_TIME", transactionLog.getTransStartTimestamp());//需要赋值的字段
addField("UPDATE_TIME", transactionLog.getTransStartTimestamp());
addField("CREATE_USER_RRN", LocalContext.getUserRrn());
addField("UPDATE_USER_RRN", LocalContext.getUserRrn());
addField("LOCK_VERSION", relation.getLockVersion());
}
@Override
void setUpdateFields(Relation relation, TransactionLog transactionLog) {
//TODO
addUpdatePrimaryKeyList(relation);
addUpdateField("SEQUENCE_NUMBER", relation.getSequenceNumber());
addUpdateField("STATUS", relation.getStatus());
addUpdateField("ATTRIBUTE_DATA_1", relation.getAttributedata1());
addUpdateField("ATTRIBUTE_DATA_2", relation.getAttributedata2());
addUpdateField("ATTRIBUTE_DATA_3", relation.getAttributedata3());
addUpdateField("ATTRIBUTE_DATA_4", relation.getAttributedata4());
addUpdateField("ATTRIBUTE_DATA_5", relation.getAttributedata5());
addUpdateField("ATTRIBUTE_DATA_6", relation.getAttributedata6());
addUpdateField("ATTRIBUTE_DATA_7", relation.getAttributedata7());
addUpdateField("UPDATE_USER_RRN", LocalContext.getUserRrn());
addUpdateField("UPDATE_TIME", transactionLog.getTransStartTimestamp());
}
@Override
void setDeleteFields(Relation relation, TransactionLog transactionLog) {
addPrimaryKeyList(relation);
}
}