package com.highdatas.mdm.entity;
|
|
import com.baomidou.mybatisplus.activerecord.Model;
|
import com.baomidou.mybatisplus.annotations.TableField;
|
import com.baomidou.mybatisplus.annotations.TableName;
|
import com.highdatas.mdm.pojo.Segment;
|
import com.highdatas.mdm.pojo.ViewJoinType;
|
import com.highdatas.mdm.util.Constant;
|
import com.highdatas.mdm.util.ContentBuilder;
|
import com.highdatas.mdm.util.DbUtils;
|
import org.apache.commons.lang3.StringUtils;
|
|
import java.io.Serializable;
|
import java.text.MessageFormat;
|
import java.util.List;
|
|
/**
|
* <p>
|
*
|
* </p>
|
*
|
* @author kimi
|
* @since 2020-04-15
|
*/
|
@TableName("sys_view_join")
|
public class SysViewJoin extends Model<SysViewJoin> {
|
|
private static final long serialVersionUID = 1L;
|
/*
|
* 主键
|
* */
|
private String id;
|
|
/*
|
* 视图id
|
* */
|
@TableField("parent_id")
|
private String parentId;
|
|
/*
|
* 主题id
|
* */
|
@TableField("menu_id")
|
private String menuId;
|
|
/*
|
* 字段
|
* */
|
private String fields;
|
|
/*
|
* 关联主题版本
|
* */
|
@TableField("join_maintain")
|
private String joinMaintain;
|
|
/*
|
* 关联字段
|
* */
|
@TableField("join_field")
|
private String joinField;
|
/*
|
* 基础字段
|
* */
|
@TableField("base_field")
|
private String baseField;
|
|
/*
|
* 关联的sql 前端展示用
|
* */
|
@TableField("join_segment")
|
private String joinSegment;
|
|
/*
|
* join类型
|
* */
|
|
@TableField("join_type")
|
private ViewJoinType joinType;
|
|
/*
|
* 是否需要更新
|
* */
|
@TableField("need_update")
|
private Boolean needUpdate;
|
|
/*
|
* 关联表名
|
* */
|
private transient String joinTableName;
|
/*
|
* 基准表名
|
* */
|
private transient String baseTableName;
|
/*
|
* 关联版本
|
* */
|
private transient String joinVersion;
|
/*
|
* 主题名称
|
* */
|
private transient String menuName;
|
|
public String getMenuName() {
|
return menuName;
|
}
|
|
public SysViewJoin setMenuName(String menuName) {
|
this.menuName = menuName;
|
return this;
|
}
|
|
public ViewJoinType getJoinType() {
|
return joinType;
|
}
|
|
public SysViewJoin setJoinType(ViewJoinType joinType) {
|
this.joinType = joinType;
|
return this;
|
}
|
|
public Boolean getNeedUpdate() {
|
return needUpdate;
|
}
|
|
public SysViewJoin setNeedUpdate(Boolean needUpdate) {
|
this.needUpdate = needUpdate;
|
return this;
|
}
|
|
public String getMenuId() {
|
return menuId;
|
}
|
|
public SysViewJoin setMenuId(String menuId) {
|
this.menuId = menuId;
|
return this;
|
}
|
|
public String getJoinTableName() {
|
return joinTableName;
|
}
|
|
public void setJoinTableName(String joinTableName) {
|
this.joinTableName = joinTableName;
|
}
|
|
public String getJoinVersion() {
|
return joinVersion;
|
}
|
|
public void setJoinVersion(String joinVersion) {
|
this.joinVersion = joinVersion;
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public SysViewJoin setId(String id) {
|
this.id = id;
|
return this;
|
}
|
|
public String getParentId() {
|
return parentId;
|
}
|
|
public SysViewJoin setParentId(String parentId) {
|
this.parentId = parentId;
|
return this;
|
}
|
|
public String getFields() {
|
return fields;
|
}
|
|
public SysViewJoin setFields(String fields) {
|
this.fields = fields;
|
return this;
|
}
|
public String getJoinMaintain() {
|
return joinMaintain;
|
}
|
|
public SysViewJoin setJoinMaintain(String joinMaintain) {
|
this.joinMaintain = joinMaintain;
|
return this;
|
}
|
public String getJoinField() {
|
return joinField;
|
}
|
|
public SysViewJoin setJoinField(String joinField) {
|
this.joinField = joinField;
|
return this;
|
}
|
public String getBaseField() {
|
return baseField;
|
}
|
|
public SysViewJoin setBaseField(String baseField) {
|
this.baseField = baseField;
|
return this;
|
}
|
public String getJoinSegment() {
|
return joinSegment;
|
}
|
|
public SysViewJoin setJoinSegment(String joinSegment) {
|
this.joinSegment = joinSegment;
|
return this;
|
}
|
|
@Override
|
protected Serializable pkVal() {
|
return this.id;
|
}
|
|
@Override
|
public String toString() {
|
return "SysViewJoin{" +
|
"id=" + id +
|
", parentId=" + parentId +
|
", fields=" + fields +
|
", joinMaintain=" + joinMaintain +
|
", joinField=" + joinField +
|
", baseField=" + baseField +
|
", joinSegment=" + joinSegment +
|
"}";
|
}
|
|
public String createJoinStr() {
|
if (StringUtils.isEmpty(joinTableName)) {
|
return null;
|
}
|
if (StringUtils.isEmpty(baseTableName)) {
|
return null;
|
}
|
List<String> baseFieldList = DbUtils.split(baseField);
|
List<String> joinFieldList = DbUtils.split(joinField);
|
ContentBuilder builder = new ContentBuilder(Constant.AND);
|
for (int i = 0; i < baseFieldList.size(); i++) {
|
String oneBase = baseFieldList.get(i);
|
String oneJoin = joinFieldList.get(i);
|
String base = MessageFormat.format(Constant.Alias, baseTableName, oneBase);
|
String join = MessageFormat.format(Constant.Alias, joinTableName, oneJoin);
|
Segment segment = new Segment(base, join);
|
builder.append(segment.toRawString());
|
}
|
|
return MessageFormat.format(Constant.InnerJoinTemplate, joinType.toString(), joinTableName, builder.toString());
|
}
|
|
public String getBaseTableName() {
|
return baseTableName;
|
}
|
|
public SysViewJoin setBaseTableName(String baseTableName) {
|
this.baseTableName = baseTableName;
|
return this;
|
}
|
}
|