package com.ic.er; import com.ic.er.bean.entity.EntityDO; import com.ic.er.bean.entity.RelationshipDO; import com.ic.er.common.Cardinality; import com.ic.er.common.ResultState; import com.ic.er.common.Utils; import lombok.Data; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @Data public class Relationship { private Long ID; private String name; private Long viewID; private Long firstEntityID; private Long secondEntityID; private Long firstAttributeID; private Long secondAttributeID; private Cardinality cardinality; private Date gmtCreate; private Date gmtModified; public Relationship(Long ID, String name, Long viewID, Long firstEntityID, Long secondEntityID, Long firstAttributeID, Long secondAttributeID, Cardinality cardinality, Date gmtCreate, Date gmtModified) { this.ID = ID; this.name = name; this.viewID = viewID; this.firstEntityID = firstEntityID; this.secondEntityID = secondEntityID; this.firstAttributeID = firstAttributeID; this.secondAttributeID = secondAttributeID; this.cardinality = cardinality; this.gmtCreate = gmtCreate; this.gmtModified = gmtModified; if (this.ID == 0) { if (ER.useDB) { insertDB(); } else { this.ID = Utils.generateID(); } } } int insertDB() { RelationshipDO relationshipDO = new RelationshipDO( 0L, this.name, this.viewID, this.firstEntityID, this.secondEntityID, this.firstAttributeID, this.secondAttributeID, this.cardinality, 0, this.gmtCreate, this.gmtModified); int ret = ER.relationshipMapper.insert(relationshipDO); this.ID = relationshipDO.getId(); return ret; } private static Relationship TransformFromDB(RelationshipDO relationshipDO) { return new Relationship(relationshipDO.getId(), relationshipDO.getName(), relationshipDO.getViewId(), relationshipDO.getFirstEntityId(), relationshipDO.getSecondEntityId(), relationshipDO.getFirstAttributeId(), relationshipDO.getSecondAttributeId(), relationshipDO.getCardinality(), relationshipDO.getGmtCreate(), relationshipDO.getGmtModified()); } private static List<Relationship> TransListFormFromDB(List<RelationshipDO> doList) { List<Relationship> ret = new ArrayList<>(); for (RelationshipDO RelationshipDO : doList) { ret.add(TransformFromDB(RelationshipDO)); } return ret; } public static List<Relationship> queryByRelationship(RelationshipDO RelationshipDO) { return TransListFormFromDB(ER.relationshipMapper.selectByRelationship(RelationshipDO)); } public static Relationship queryByID(Long ID) { List<Relationship> relationships = queryByRelationship(new RelationshipDO(ID)); if (relationships.size() == 0) { return null; } else { return relationships.get(0); } } ResultState deleteDB() { int res = ER.relationshipMapper.deleteById(this.ID); if (res == 0) { return ResultState.ok(); } else { return ResultState.build(1, "db error"); } } ResultState updateDB() { int res = ER.relationshipMapper.updateById(new RelationshipDO(this.ID, this.name, this.viewID, this.firstEntityID, this.secondEntityID, this.firstAttributeID, this.secondAttributeID, this.cardinality, 0, this.gmtCreate, this.gmtModified)); if (res == 0) { return ResultState.ok(); } else { return ResultState.build(1, "db error"); } } }