{
  "name": "icom-设计表",
  "describe": "区块链IM",
  "avatar": "",
  "version": "4.1.1",
  "createdTime": "2022-7-2 10:34:05",
  "updatedTime": "2022-7-2 10:35:10",
  "dbConns": [],
  "profile": {
    "default": {
      "db": "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1",
      "dbConn": "",
      "entityInitFields": [
        {
          "defKey": "TENANT_ID",
          "defName": "租户号",
          "comment": "",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "ADB3AD14-6603-43E2-8261-114E32442B5B"
        },
        {
          "defKey": "REVISION",
          "defName": "乐观锁",
          "comment": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "92BF430E-01FA-4AEF-944F-25A142632654"
        },
        {
          "defKey": "CREATED_BY",
          "defName": "创建人",
          "comment": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "C8BE2C7A-8251-4ADD-BB4F-411C5754DA62"
        },
        {
          "defKey": "CREATED_TIME",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "4E471FD6-3E73-4A90-B660-51598A482409"
        },
        {
          "defKey": "UPDATED_BY",
          "defName": "更新人",
          "comment": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "0DC24AA9-4CD0-45D8-95CF-FA546BE343AB"
        },
        {
          "defKey": "UPDATED_TIME",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "09F64AC4-4DEE-428F-AF64-4C103884E1AC"
        }
      ],
      "entityInitProperties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      }
    },
    "javaHome": "",
    "sql": {
      "delimiter": ""
    },
    "dataTypeSupports": [
      {
        "defKey": "MYSQL",
        "id": "29D1CE08-4C35-4D2D-AAA9-23D93305B52E"
      },
      {
        "defKey": "SQLite",
        "id": "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1"
      },
      {
        "defKey": "ORACLE",
        "id": "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542"
      },
      {
        "defKey": "SQLServer",
        "id": "BFC87171-C74F-494A-B7C2-76B9C55FACC9"
      },
      {
        "defKey": "PostgreSQL",
        "id": "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022"
      },
      {
        "defKey": "DB2",
        "id": "89504F5D-94BF-4C9E-8B2E-44F37305FED5"
      },
      {
        "defKey": "DM",
        "id": "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307"
      },
      {
        "defKey": "GaussDB",
        "id": "592C7013-143D-4E7B-AF64-0D7BF1E28230"
      },
      {
        "defKey": "Kingbase",
        "id": "77BD85E5-9D0D-4096-8427-CBA306FC9C6A"
      },
      {
        "defKey": "MaxCompute",
        "id": "11D1FB71-A587-4217-89BA-611B8A1F83E0"
      },
      {
        "defKey": "Hive",
        "id": "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2"
      },
      {
        "defKey": "JAVA",
        "id": "70ADF844-F9AA-44BF-9B62-531967421B5C"
      },
      {
        "defKey": "ios",
        "id": "A7DC75D1-3855-473D-9557-7C87DF194B57"
      }
    ],
    "codeTemplates": [
      {
        "type": "appCode",
        "applyFor": "797A1496-D649-4261-89B4-544132EC3F36",
        " JpaBean": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.persistence.*;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\n@Table(name=\"{{=it.entity.defKey}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    {{? field.primaryKey }}\n    @Id\n    @GeneratedValue\n    {{?}}\n    @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n    private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n        return this.{{=it.func.camel(field.defKey,false)}};\n    }\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n        this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n    }\n{{~}}\n}"
      },
      {
        "type": "appCode",
        "applyFor": "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30",
        "Default": "using System;\nusing System.Collections.Generic;\n\n$blankline\n{{\n    var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n}}\n/*\n * @author : http://www.chiner.com.cn\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n * @desc : {{=it.func.join(it.entity.defName,it.entity.comment,'-')}}\n */\nnamespace PDManer.Application\n{\n    public partial class {{=it.func.camel(it.entity.defKey,true) }}\n    {\n    \n        {{~it.entity.fields:field:index}}\n        /// <summary>\n        /// {{=it.func.join(field.defName,field.comment,';')}}\n        /// </summary>\n        public {{=field.type}} {{=it.func.camel(field.defKey,true)}} { get; set; }\n        $blankline\n        {{~}}\n        \n    }\n}",
        "SqlSugar": "using System;\nusing System.Collections.Generic;\nusing SqlSugar;\n\n$blankline\n{{\n    var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    var sqlSugartable='[SugarTable(\"{{=it.entity.defKey}}\", TableDescription = \"{{=it.func.join(it.entity.defName,it.entity.comment,';')}}\")]';\n}}\n/*\n * @author : xkdong@163.com\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n * @desc : {{=it.func.join(it.entity.defName,it.entity.comment,'-')}}\n */\nnamespace Model.DBModel\n{\n    /// <summary>\n    /// {{=it.func.join(it.entity.defName,it.entity.comment,';')}}\n    /// </summary>\n    {{=sqlSugartable}}\n    public class {{=it.entity.defKey}}\n    {\n        {{~it.entity.fields:field:index}}\n        /// <summary>\n        /// {{=it.func.join(field.defName,field.comment,';')}}\n        /// </summary>\n        {{? field.primaryKey }}\n        [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]\n        {{?}}\n        public {{=field.type}} {{=it.func.camel(field.defKey,true)}}{ get; set; }\n        $blankline\n        {{~}}\n    }\n}"
      },
      {
        "applyFor": "895CFD1D-4273-4D32-A2C4-CAC70200AB5B",
        "type": "appCode",
        "Controller": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.controller;\n$blankline\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.service.{{=serviceClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表控制层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Api(tags = \"{{=it.entity.defName}}对象功能接口\")\n@RestController\n@RequestMapping(\"/{{=it.func.camel(it.entity.defKey,false)}}\")\npublic class {{=beanClass}}Controller{\n    @Autowired\n    private {{=serviceClass}} {{=serviceVarName}};\n    $blankline\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    @ApiOperation(\"通过ID查询单条数据\")\n    @GetMapping(\"{{{=it.func.camel(pkVarName,false)}}}\")\n    public ResponseEntity<{{=beanClass}}> queryById({{=pkDataType}} {{=pkVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.queryById({{=pkVarName}}));\n    }\n    $blankline\n    /** \n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param pageRequest 分页对象\n     * @return 查询结果\n     */\n    @ApiOperation(\"分页查询\")\n    @GetMapping\n    public ResponseEntity<Page<{{=beanClass}}>> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n        return ResponseEntity.ok({{=serviceVarName}}.paginQuery({{=beanVarName}}, pageRequest));\n    }\n    $blankline\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    @ApiOperation(\"新增数据\")\n    @PostMapping\n    public ResponseEntity<{{=beanClass}}> add({{=beanClass}} {{=beanVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.insert({{=beanVarName}}));\n    }\n    $blankline\n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    @ApiOperation(\"更新数据\")\n    @PutMapping\n    public ResponseEntity<{{=beanClass}}> edit({{=beanClass}} {{=beanVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.update({{=beanVarName}}));\n    }\n    $blankline\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    @ApiOperation(\"通过主键删除数据\")\n    @DeleteMapping\n    public ResponseEntity<Boolean> deleteById({{=pkDataType}} {{=pkVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.deleteById({{=pkVarName}}));\n    }\n}",
        "Service": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.service;\n$blankline\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务接口\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\npublic interface {{=serviceClass}}{\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n    \n    /** \n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param pageRequest 分页对象\n     * @return 查询结果\n     */\n    Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest);\n\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    {{=beanClass}} insert({{=beanClass}} {{=beanVarName}});\n\n    \n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    {{=beanClass}} update({{=beanClass}} {{=beanVarName}});\n\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    boolean deleteById({{=pkDataType}} {{=pkVarName}});\n}",
        "ServiceImpl": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkVarNameU = \"UndefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkVarNameU = it.func.camel(field.defKey,true);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    var mapperName = beanVarName+'Mapper';\n    \n}}package {{=pkgName}}.service.impl;\n$blankline\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.mapper.{{=beanClass}}Mapper;\nimport {{=pkgName}}.service.{{=serviceClass}};\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务实现类\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Service\npublic class {{=serviceClass}}Impl implements {{=serviceClass}}{\n    @Autowired\n    private {{=beanClass}}Mapper {{=mapperName}};\n    $blankline\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    public {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}}){\n        return {{=mapperName}}.queryById({{=pkVarName}});\n    }\n    $blankline\n    /** \n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param pageRequest 分页对象\n     * @return 查询结果\n     */\n    public Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n        long total = {{=mapperName}}.count({{=beanVarName}});\n        return new PageImpl<>({{=mapperName}}.queryAllByLimit({{=beanVarName}}, pageRequest), pageRequest, total);\n    }\n    $blankline\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    public {{=beanClass}} insert({{=beanClass}} {{=beanVarName}}){\n        {{=mapperName}}.insert({{=beanVarName}});\n        return {{=beanVarName}};\n    }\n    $blankline\n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    public {{=beanClass}} update({{=beanClass}} {{=beanVarName}}){\n        {{=mapperName}}.update({{=beanVarName}});\n        return queryById({{=beanVarName}}.get{{=pkVarNameU}}());\n    }\n    $blankline\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    public boolean deleteById({{=pkDataType}} {{=pkVarName}}){\n        int total = {{=mapperName}}.deleteById({{=pkVarName}});\n        return total > 0;\n    }\n}",
        "Mapper": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.mapper;\n$blankline\nimport java.util.List;\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\nimport org.springframework.data.domain.Pageable;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表数据库访问层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Mapper\npublic interface {{=beanClass}}Mapper{\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n    \n    /** \n     * 分页查询指定行数据\n     *\n     * @param {{=beanVarName}} 查询条件\n     * @param pageable 分页对象\n     * @return 对象列表\n     */\n    List<{{=beanClass}}> queryAllByLimit({{=beanClass}} {{=beanVarName}}, @Param(\"pageable\") Pageable pageable);\n\n    /** \n     * 统计总行数\n     *\n     * @param {{=beanVarName}} 查询条件\n     * @return 总行数\n     */\n    long count({{=beanClass}} {{=beanVarName}});\n\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 影响行数\n     */\n    int insert({{=beanClass}} {{=beanVarName}});\n\n    /** \n     * 批量新增数据\n     *\n     * @param entities List<{{=beanClass}}> 实例对象列表\n     * @return 影响行数\n     */\n    int insertBatch(@Param(\"entities\") List<{{=beanClass}}> entities);\n    \n    /** \n     * 批量新增或按主键更新数据\n     *\n     * @param entities List<{{=beanClass}}> 实例对象列表\n     * @return 影响行数\n     */\n    int insertOrUpdateBatch(@Param(\"entities\") List<{{=beanClass}}> entities);\n    \n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 影响行数\n     */\n    int update({{=beanClass}} {{=beanVarName}});\n\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 影响行数\n     */\n    int deleteById({{=pkDataType}} {{=pkVarName}});\n}",
        "Mapper.xml": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    var pkField = \"UNDEFINED_ID\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkField = field.defKey;\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"{{=pkgName}}.mapper.{{=beanClass}}Mapper\">\n    <resultMap type=\"{{=pkgName}}.entity.{{=beanClass}}\" id=\"{{=beanClass}}Map\">\n    {{~it.entity.fields:field:index}}\n        <result property=\"{{=it.func.camel(field.defKey,false)}}\" column=\"{{=field.defKey}}\" jdbcType=\"{{=field.dbType}}\"/>\n    {{~}}\n    </resultMap>\n    $blankline\n    <!-- 通过ID查询单条数据 -->\n    <select id=\"queryById\" resultMap=\"{{=beanClass}}Map\">\n        select\n            {{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}}\n        from {{=it.entity.defKey}}\n        where {{=pkField}} = #{{{=pkVarName}}}\n    </select>\n    $blankline\n    <!--分页查询指定行数据-->\n    <select id=\"queryAllByLimit\" resultMap=\"{{=beanClass}}Map\">\n        select\n            {{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}}\n        from {{=it.entity.defKey}}\n        <where>\n        {{~it.entity.fields:field:index}}\n            <if test=\"{{=it.func.camel(field.defKey,false)}} != null and {{=it.func.camel(field.defKey,false)}} != ''\">\n                and {{=field.defKey}} = #{{{=it.func.camel(field.defKey,false)}}}\n            </if>\n        {{~}}\n        </where>\n        limit #{pageable.offset}, #{pageable.pageSize}\n    </select>\n    $blankline\n    <!--统计总行数-->\n    <select id=\"count\" resultType=\"java.lang.Long\">\n        select count(1)\n        from {{=it.entity.defKey}}\n        <where>\n        {{~it.entity.fields:field:index}}\n            <if test=\"{{=it.func.camel(field.defKey,false)}} != null and {{=it.func.camel(field.defKey,false)}} != ''\">\n                and {{=field.defKey}} = #{{{=it.func.camel(field.defKey,false)}}}\n            </if>\n        {{~}}\n        </where>\n    </select>\n    $blankline\n    <!--新增数据-->\n    <insert id=\"insert\" keyProperty=\"{{=pkField}}\" useGeneratedKeys=\"true\">\n        insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n        values ({{=it.entity.fields.map(function(e,i){return '#{'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n    </insert>\n    $blankline\n    <!-- 批量新增数据 -->\n    <insert id=\"insertBatch\" keyProperty=\"{{=pkField}}\" useGeneratedKeys=\"true\">\n        insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n        values\n        <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n            ({{=it.entity.fields.map(function(e,i){return '#{entity.'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n        </foreach>\n    </insert>\n    $blankline\n    <!-- 批量新增或按主键更新数据 -->\n    <insert id=\"insertOrUpdateBatch\" keyProperty=\"{{=pkField}}\" useGeneratedKeys=\"true\">\n        insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n        values\n        <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n            ({{=it.entity.fields.map(function(e,i){return '#{entity.'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n        </foreach>\n        on duplicate key update\n        {{=it.entity.fields.map(function(e,i){return e.defKey + '=values('+e.defKey+')'}).join(',\\n\\t\\t')}}\n    </insert>\n    $blankline\n    <!-- 更新数据 -->\n    <update id=\"update\">\n        update {{=it.entity.defKey}}\n        <set>\n        {{~it.entity.fields:field:index}}\n            <if test=\"{{=it.func.camel(field.defKey,false)}} != null and {{=it.func.camel(field.defKey,false)}} != ''\">\n                {{=field.defKey}} = #{{{=it.func.camel(field.defKey,false)}}},\n            </if>\n        {{~}}\n        </set>\n        where {{=pkField}} = #{{{=pkVarName}}}\n    </update>\n    $blankline\n    <!--通过主键删除-->\n    <delete id=\"deleteById\">\n        delete from {{=it.entity.defKey}} where {{=pkField}} = #{{{=pkVarName}}}\n    </delete>\n</mapper>\n\n",
        "Entity": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n    private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n        return this.{{=it.func.camel(field.defKey,false)}};\n    }\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n        this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n    }\n{{~}}\n}"
      },
      {
        "applyFor": "A2EE7B4A-CE62-4290-B00C-B26C1BF18073",
        "type": "appCode",
        "Controller": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.controller;\n$blankline\nimport java.util.List;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.service.{{=serviceClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表控制层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Api(tags = \"{{=it.entity.defName}}对象功能接口\")\n@RestController\n@RequestMapping(\"/{{=it.func.camel(it.entity.defKey,false)}}\")\npublic class {{=beanClass}}Controller{\n    @Autowired\n    private {{=serviceClass}} {{=serviceVarName}};\n    $blankline\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    @ApiOperation(\"通过ID查询单条数据\")\n    @GetMapping(\"{{{=it.func.camel(pkVarName,false)}}}\")\n    public ResponseEntity<{{=beanClass}}> queryById({{=pkDataType}} {{=pkVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.queryById({{=pkVarName}}));\n    }\n    $blankline\n    /** \n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param pageRequest 分页对象\n     * @return 查询结果\n     */\n    @ApiOperation(\"分页查询\")\n    @GetMapping\n    public ResponseEntity<PageImpl<{{=beanClass}}>> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n        //1.分页参数\n        long current = pageRequest.getPageNumber();\n        long size = pageRequest.getPageSize();\n\n        //2.分页查询\n        /*把Mybatis的分页对象做封装转换，MP的分页对象上有一些SQL敏感信息，还是通过spring的分页模型来封装数据吧*/\n        com.baomidou.mybatisplus.extension.plugins.pagination.Page<{{=beanClass}}> pageResult = {{=serviceVarName}}.paginQuery({{=beanVarName}}, current,size);\n\n        //3. 分页结果组装\n        List<{{=beanClass}}> dataList = pageResult.getRecords();\n        long total = pageResult.getTotal();\n        PageImpl<{{=beanClass}}> retPage = new PageImpl<{{=beanClass}}>(dataList,pageRequest,total);\n        return ResponseEntity.ok(retPage);\n    }\n    $blankline\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    @ApiOperation(\"新增数据\")\n    @PostMapping\n    public ResponseEntity<{{=beanClass}}> add({{=beanClass}} {{=beanVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.insert({{=beanVarName}}));\n    }\n    $blankline\n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    @ApiOperation(\"更新数据\")\n    @PutMapping\n    public ResponseEntity<{{=beanClass}}> edit({{=beanClass}} {{=beanVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.update({{=beanVarName}}));\n    }\n    $blankline\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    @ApiOperation(\"通过主键删除数据\")\n    @DeleteMapping\n    public ResponseEntity<Boolean> deleteById({{=pkDataType}} {{=pkVarName}}){\n        return ResponseEntity.ok({{=serviceVarName}}.deleteById({{=pkVarName}}));\n    }\n}",
        "Service": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.service;\n$blankline\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务接口\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\npublic interface {{=serviceClass}}{\n    $blankline\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n    $blankline\n    /**\n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param current 当前页码\n     * @param size  每页大小\n     * @return\n     */\n    Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, long current, long size);\n\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    {{=beanClass}} insert({{=beanClass}} {{=beanVarName}});\n\n    \n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    {{=beanClass}} update({{=beanClass}} {{=beanVarName}});\n\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    boolean deleteById({{=pkDataType}} {{=pkVarName}});\n}",
        "ServiceImpl": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkVarNameU = \"UndefinedId\";\n    var pkFieldKey = \"UNDEFINED\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkFieldKey = field.defKey;\n            pkVarName = it.func.camel(field.defKey,false);\n            pkVarNameU = it.func.camel(field.defKey,true);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    var mapperName = beanVarName+'Mapper';\n    \n}}package {{=pkgName}}.service.impl;\n$blankline\nimport cn.hutool.core.util.StrUtil;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;\nimport com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;\n\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.mapper.{{=beanClass}}Mapper;\nimport {{=pkgName}}.service.{{=serviceClass}};\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务实现类\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Service\npublic class {{=serviceClass}}Impl implements {{=serviceClass}}{\n    @Autowired\n    private {{=beanClass}}Mapper {{=mapperName}};\n    $blankline\n    /** \n     * 通过ID查询单条数据 \n     *\n     * @param {{=pkVarName}} 主键\n     * @return 实例对象\n     */\n    public {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}}){\n        return {{=mapperName}}.selectById({{=pkVarName}});\n    }\n    $blankline\n    /**\n     * 分页查询\n     *\n     * @param {{=beanVarName}} 筛选条件\n     * @param current 当前页码\n     * @param size  每页大小\n     * @return\n     */\n    public Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, long current, long size){\n        //1. 构建动态查询条件\n        LambdaQueryWrapper<{{=beanClass}}> queryWrapper = new LambdaQueryWrapper<>();\n        {{~it.entity.fields.filter(function(e){return e[\"type\"]===\"String\"&&e.defKey !== pkFieldKey}):field:index}}\n        if(StrUtil.isNotBlank({{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}())){\n            queryWrapper.eq({{=beanClass}}::get{{=it.func.camel(field.defKey,true)}}, {{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}());\n        }\n        {{~}}\n\n        //2. 执行分页查询\n        Page<{{=beanClass}}> pagin = new Page<>(current , size , true);\n        IPage<{{=beanClass}}> selectResult = {{=mapperName}}.selectByPage(pagin , queryWrapper);\n        pagin.setPages(selectResult.getPages());\n        pagin.setTotal(selectResult.getTotal());\n        pagin.setRecords(selectResult.getRecords());\n\n        //3. 返回结果\n        return pagin;\n    }\n    $blankline\n    /** \n     * 新增数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    public {{=beanClass}} insert({{=beanClass}} {{=beanVarName}}){\n        {{=mapperName}}.insert({{=beanVarName}});\n        return {{=beanVarName}};\n    }\n    $blankline\n    /** \n     * 更新数据\n     *\n     * @param {{=beanVarName}} 实例对象\n     * @return 实例对象\n     */\n    public {{=beanClass}} update({{=beanClass}} {{=beanVarName}}){\n        //1. 根据条件动态更新\n        LambdaUpdateChainWrapper<{{=beanClass}}> chainWrapper = new LambdaUpdateChainWrapper<{{=beanClass}}>({{=mapperName}});\n        {{~it.entity.fields.filter(function(e){return e[\"type\"]===\"String\"&&e.defKey !== pkFieldKey}):field:index}}\n        if(StrUtil.isNotBlank({{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}())){\n            chainWrapper.eq({{=beanClass}}::get{{=it.func.camel(field.defKey,true)}}, {{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}());\n        }\n        {{~}}\n        //2. 设置主键，并更新\n        chainWrapper.set({{=beanClass}}::get{{=pkVarNameU}}, {{=beanVarName}}.get{{=pkVarNameU}}());\n        boolean ret = chainWrapper.update();\n        //3. 更新成功了，查询最最对象返回\n        if(ret){\n            return queryById({{=beanVarName}}.get{{=pkVarNameU}}());\n        }else{\n            return {{=beanVarName}};\n        }\n    }\n    $blankline\n    /** \n     * 通过主键删除数据\n     *\n     * @param {{=pkVarName}} 主键\n     * @return 是否成功\n     */\n    public boolean deleteById({{=pkDataType}} {{=pkVarName}}){\n        int total = {{=mapperName}}.deleteById({{=pkVarName}});\n        return total > 0;\n    }\n}",
        "Mapper": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.mapper;\n$blankline\n\nimport com.baomidou.mybatisplus.core.conditions.Wrapper;\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Constants;\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表数据库访问层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Mapper\npublic interface {{=beanClass}}Mapper  extends BaseMapper<{{=beanClass}}>{\n    /** \n     * 分页查询指定行数据\n     *\n     * @param page 分页参数\n     * @param wrapper 动态查询条件\n     * @return 分页对象列表\n     */\n    IPage<{{=beanClass}}> selectByPage(IPage<{{=beanClass}}> page , @Param(Constants.WRAPPER) Wrapper<{{=beanClass}}> wrapper);\n}",
        "Mapper.xml": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    var pkField = \"UNDEFINED_ID\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkField = field.defKey;\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n$blankline\n\n<mapper namespace=\"{{=pkgName}}.mapper.{{=beanClass}}Mapper\">\n     <select id=\"selectByPage\" resultType=\"{{=pkgName}}.entity.{{=beanClass}}\">\n        select * from user ${ew.customSqlSegment}\n    </select>\n</mapper>\n\n",
        "Entity": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport com.baomidou.mybatisplus.annotation.TableName;\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\n@TableName(\"{{=it.entity.defKey}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n    {{? field.primaryKey }}\n    @TableId\n    {{?}}\n    private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n        return this.{{=it.func.camel(field.defKey,false)}};\n    }\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n        this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n    }\n{{~}}\n}"
      },
      {
        "applyFor": "29D1CE08-4C35-4D2D-AAA9-23D93305B52E",
        "type": "dbDDL",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.dbType}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTO_INCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }} COMMENT '{{=it.func.join(field.defName,field.comment,';')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n)  COMMENT = '{{=it.func.join(it.entity.defName,it.entity.comment,';') }}';\n$blankline\n",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n",
        "deleteTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "deleteIndex": "{{~ it.entity.indexes:index}}\nDROP INDEX {{=index.defKey}} ;\n{{~}}",
        "message": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChanged(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push('代码:'+(before.defKey||'NULL')+'->'+(after.defKey||'NULL'));\n        }\n        if(before.defName !== after.defName){\n            ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n        }\n        if(before.comment !== after.comment){\n            ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n        }\n        if(ret.length>0){\n            return '    基本信息:\\n\\t'+ret.join('\\n\\t');\n        }\n        return '';\n    };\n    \n    function buildAddedDesc(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        \n        for (let field of fieldAdded) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildRemovedDesc(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        \n        for (let field of fieldRemoved) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildModifiedDesc(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        for (let field1 of fieldModified) { \n            let row = [];\n            let field = field1.before;\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n    {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n    修改字段：\n    {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n        /*计算是否调整了属性*/\n        let propAdded = entity.data.propAdded || [];\n        let propRemoved = entity.data.propRemoved || [];\n        let propModified = entity.data.propModified || [];\n        let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n        /*计算关联是否调整*/\n        let refEntityAdd = entity.data.refEntityAdd || [];\n        let refEntityRemoved = entity.data.refEntityRemoved || [];\n        let relaArray = [];\n        for (let rela of refEntityAdd) {\n            relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        for (let rela of refEntityRemoved) {\n            relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        /*索引是否修改过*/\n        let indexChanged = entity.data.indexChanged;\n    }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n    添加字段：\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n    删除字段：\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}\n",
        "update": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChangedDDL(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push('ALTER TABLE '+before.defKey+' RENAME TO '+after.defKey);\n        }\n        let commentText = '';\n        let commentChanged = false;\n        if(before.defName !== after.defName){\n            commentText = after.defName;\n            commentChanged = true;\n        }\n        if(before.comment !== after.comment){\n            commentChanged = true;\n            if(commentText){\n                commentText = (commentText+ ';'+after.comment)\n            }else{\n                commentText = after.comment\n            }\n        }\n        if(commentChanged){\n            ret.push('ALTER TABLE '+after.defKey+' COMMENT \\''+commentText+'\\'');\n        }\n        let baseText = '-- 基本信息:\\n';\n        return baseText+ret.join(';\\n')+';';\n    };\n    \n    function buildAddedDDL(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        if(fieldAdded.length == 0){\n            return '';\n        }\n        \n        let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n        for (let field of fieldAdded) { \n            let ddlItem = 'ADD COLUMN '+field.defKey+' '+field.dbType;\n            /*处理数据类型长度*/\n            if(field.len>0){\n                ddlItem += ('('+field.len);\n                if(parseInt(field.scale)>0){\n                    ddlItem += (','+field.scale);\n                }\n                ddlItem += ')';\n            }\n            if(field.notNull){\n                ddlItem += ' NOT NULL';\n            }\n            if(field.autoIncrement){\n                ddlItem += ' AUTO_INCREMENT';\n            }\n            if(field.defaultValue){\n                ddlItem += (' DEFAULT' + field.defaultValue);\n            }\n            ddlItem += (' COMMENT \\''+field.defName+';'+field.comment+'\\'');\n            \n            if(field.index>0 && field.afterFieldKey){\n                ddlItem += (' AFTER '+field.afterFieldKey);\n            }\n            ret.push(ddlItem);\n        }\n        return firstDDL+'\\n'+ret.join(',\\n');\n    };\n    \n    function buildRemovedDDL(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        if(fieldRemoved.length == 0){\n            return '';\n        }\n        \n        let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n        for (let field of fieldRemoved) { \n            ret.push('DROP '+field.defKey);\n        }\n        return firstDDL+'\\n'+ret.join(',\\n');\n    };\n    \n    function buildModifiedDDL(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n        for (let field of fieldModified) { \n            let changeDDL = '';\n            let before = field.before || {};\n            let after = field.after || {};\n            if(before.defKey === after.defKey){\n                changeDDL += (' MODIFY COLUMN '+after.defKey);\n            }else{\n                changeDDL += (' CHANGE COLUMN '+before.defKey+' '+after.defKey);\n            }\n            changeDDL += (' '+after.dbType);\n            if(after.len>0){\n                changeDDL += ('('+after.len);\n                if(parseInt(field.scale)>0){\n                    changeDDL += (','+field.scale);\n                }\n                changeDDL += ')';\n            }\n            if(after.notNull){\n                changeDDL += ' NOT NULL';\n            }\n            let defaultValue = '';\n            if(after.defaultValue != null && after.defaultValue.length>0){\n                defaultValue = (after.defaultValue);\n            }else{\n                defaultValue = 'NULL';\n            }\n            changeDDL += (' DEFAULT ' + defaultValue);\n            let comment = after.comment||'';\n            changeDDL += (' COMMENT \\''+comment+'\\';');\n            ret.push(firstDDL+' '+changeDDL);\n        }\n        return ret;\n    };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表：{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段：\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段：\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段：\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"
      },
      {
        "applyFor": "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542",
        "type": "dbDDL",
        "createTable": "CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? '' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n",
        "deleteTable": "DROP TABLE {{=it.entity.defKey}};",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "deleteIndex": "{{~ it.entity.indexes:index}}\nDROP INDEX {{=index.defKey}} ;\n{{~}}",
        "message": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChanged(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push('代码:'+(before.defKey||'NULL')+'->'+(after.defKey||'NULL'));\n        }\n        if(before.defName !== after.defName){\n            ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n        }\n        if(before.comment !== after.comment){\n            ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n        }\n        if(ret.length>0){\n            return '    基本信息:\\n\\t'+ret.join('\\n\\t');\n        }\n        return '';\n    };\n    \n    function buildAddedDesc(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        \n        for (let field of fieldAdded) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildRemovedDesc(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        \n        for (let field of fieldRemoved) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildModifiedDesc(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        for (let field1 of fieldModified) { \n            let row = [];\n            let field = field1.before;\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* -------------------------------------------------- */\n创建表：\n{{~ createEntities:entity}}\n    {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* -------------------------------------------------- */\n删除表：\n{{~ dropEntities:entity}}\n    {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* -------------------------------------------------- */\n修改表：{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n    {{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n    添加字段：\n    {{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n    {{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n    删除字段：\n    {{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n    {{?}}{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n    修改字段：\n    {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}\n    {{?}}{{\n        /*计算是否调整了属性*/\n        let propAdded = entity.data.propAdded || [];\n        let propRemoved = entity.data.propRemoved || [];\n        let propModified = entity.data.propModified || [];\n        let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n        /*计算关联是否调整*/\n        let refEntityAdd = entity.data.refEntityAdd || [];\n        let refEntityRemoved = entity.data.refEntityRemoved || [];\n        let relaArray = [];\n        for (let rela of refEntityAdd) {\n            relaArray.push('\\n\\t建立关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        for (let rela of refEntityRemoved) {\n            relaArray.push('\\n\\t解除关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        /*索引是否修改过*/\n        let indexChanged = entity.data.indexChanged;\n    }}\n{{=indexChanged?'\\n\\t更改了索引':''}}\n{{=changed?'\\n\\t更改了属性':''}}\n{{=relaArray.length>0?relaArray.join(''):''}}\n{{~}}\n{{?}}",
        "update": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChangedDDL(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n        }\n        let commentText = '';\n        let commentChanged = false;\n        if(before.defName !== after.defName){\n            commentText = after.defName;\n            commentChanged = true;\n        }\n        if(before.comment !== after.comment){\n            commentChanged = true;\n            if(commentText){\n                commentText = (commentText+ ';'+after.comment)\n            }else{\n                commentText = after.comment\n            }\n        }\n        if(commentChanged){\n            let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n            ret.push(myText);\n        }\n        let baseText = '-- 基本信息:\\n';\n        return baseText+ret.join(';\\n')+';';\n    };\n    \n    function buildAddedDDL(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        if(fieldAdded.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldAdded) { \n            let ddlItem = `ADD (${field.defKey} ${field.dbType}`;\n            /*处理数据类型长度*/\n            if(field.len>0){\n                ddlItem += ('('+field.len);\n                if(parseInt(field.scale)>0){\n                    ddlItem += (','+field.scale);\n                }\n                ddlItem += ')';\n            }\n            let defaultValue = field.defaultValue;\n            defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n            if(defaultValue.length>0){\n                ddlItem += (' DEFAULT ' + defaultValue);\n            }\n            if(field.notNull){\n                ddlItem += ' NOT NULL';\n            }\n            ddlItem += ')';\n            ret.push(`${firstDDL} ${ddlItem}`);\n            \n            /*处理字段注释*/\n            let fieldComments = [];\n            if(field.defName != null &&field.defName.length>0){\n                fieldComments.push(field.defName);\n            }\n            if(field.comment != null &&field.comment.length>0){\n                fieldComments.push(field.comment);\n            }\n            let commentText = fieldComments.join(';');\n            if(commentText != null && commentText.length > 0){\n                let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n                 ret.push(commentDDL);\n            }\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildRemovedDDL(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        if(fieldRemoved.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldRemoved) { \n            ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildModifiedDDL(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldModified) { \n            let changeDDL = '';\n            let before = field.before || {};\n            let after = field.after || {};\n            if(before.defKey !== after.defKey){\n                let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n                ret.push(renameText);\n            }\n            /*如果没有变化，则不生成变更语句*/\n            if(before.dbType === after.dbType \n            && before['len'] === after['len'] \n            && before.scale === after.scale\n            && before.primaryKey === after.primaryKey\n            && before.notNull === after.notNull\n            && before.autoIncrement === after.autoIncrement\n            && before.defaultValue === after.defaultValue){\n                continue;\n            }\n            changeDDL += ('MODIFY ('+after.defKey+'');\n            changeDDL += (' '+after.dbType);\n            if(after.len>0){\n                changeDDL += ('('+after.len);\n                if(parseInt(field.scale)>0){\n                    changeDDL += (','+field.scale);\n                }\n                changeDDL += ')';\n            }\n            let defaultValue = after.defaultValue;\n            defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n            if(defaultValue.length>0){\n                changeDDL += (' DEFAULT ' + defaultValue);\n            }\n            \n            if(after.notNull){\n                changeDDL += ' NOT NULL';\n            }\n            changeDDL += ')';\n            ret.push(`${firstDDL} ${changeDDL};`);\n        }\n        return ret;\n    };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表：{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段：\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段：\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段：\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"
      },
      {
        "applyFor": "BFC87171-C74F-494A-B7C2-76B9C55FACC9",
        "type": "dbDDL",
        "createTable": "IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{{=it.entity.defKey}}]') AND type in (N'U')) DROP TABLE [dbo].[{{=it.entity.defKey}}];\n\nCREATE TABLE [dbo].[{{=it.entity.defKey}}](\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' IDENTITY(1,1)' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}EXEC sp_addextendedproperty 'MS_Description', '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}', 'SCHEMA', dbo, 'table', {{=it.entity.defKey}}, null, null;{{?}}\n{{~it.entity.fields:field:index}}\nEXEC sp_addextendedproperty 'MS_Description', '{{=it.func.join(field.defName,field.comment,';')}}', 'SCHEMA', dbo, 'table', {{=it.entity.defKey}}, 'column', {{=field.defKey}};\n{{~}}\n",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n",
        "deleteTable": "IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{{=it.entity.defKey}}]') AND type in (N'U')) DROP TABLE [dbo].[{{=it.entity.defKey}}];",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "deleteIndex": "",
        "message": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChanged(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push('代码:'+(before.defKey||'NULL')+'->'+(after.defKey||'NULL'));\n        }\n        if(before.defName !== after.defName){\n            ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n        }\n        if(before.comment !== after.comment){\n            ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n        }\n        if(ret.length>0){\n            return '    基本信息:\\n\\t'+ret.join('\\n\\t');\n        }\n        return '';\n    };\n    \n    function buildAddedDesc(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        \n        for (let field of fieldAdded) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildRemovedDesc(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        \n        for (let field of fieldRemoved) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildModifiedDesc(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        for (let field1 of fieldModified) { \n            let row = [];\n            let field = field1.before;\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n    {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n    修改字段：\n    {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n        /*计算是否调整了属性*/\n        let propAdded = entity.data.propAdded || [];\n        let propRemoved = entity.data.propRemoved || [];\n        let propModified = entity.data.propModified || [];\n        let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n        /*计算关联是否调整*/\n        let refEntityAdd = entity.data.refEntityAdd || [];\n        let refEntityRemoved = entity.data.refEntityRemoved || [];\n        let relaArray = [];\n        for (let rela of refEntityAdd) {\n            relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        for (let rela of refEntityRemoved) {\n            relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        /*索引是否修改过*/\n        let indexChanged = entity.data.indexChanged;\n    }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n    添加字段：\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n    删除字段：\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}",
        "update": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChangedDDL(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push(`EXEC sp_rename '${before.defKey}','${after.defKey}'`);\n        }\n        let commentText = '';\n        let commentChanged = false;\n        if(before.defName !== after.defName){\n            commentText = after.defName;\n            commentChanged = true;\n        }\n        if(before.comment !== after.comment){\n            commentChanged = true;\n            if(commentText){\n                commentText = (commentText+ ';'+after.comment)\n            }else{\n                commentText = after.comment\n            }\n        }\n        if(commentChanged){\n            let myText = `IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description','SCHEMA', 'dbo','TABLE', '${after.defKey}', NULL, NULL)) > 0)\n            \\n\\tEXEC sp_updateextendedproperty 'MS_Description', '${commentText}','SCHEMA', 'dbo','TABLE', '${after.defKey}'\n            \\nELSE\n            \\n\\tEXEC sp_addextendedproperty 'MS_Description', '${commentText}', 'SCHEMA', 'dbo','TABLE', '${after.defKey}'\n            `;\n            ret.push(myText);\n            /*ret.push('ALTER TABLE '+after.defKey+' COMMENT \\''+commentText+'\\'');*/\n        }\n        let baseText = '-- 基本信息:\\n';\n        return baseText+ret.join(';\\n')+';';\n    };\n    \n    function buildAddedDDL(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        if(fieldAdded.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n        for (let field of fieldAdded) { \n            let ddlItem = `ADD [${field.defKey}] ${field.dbType}`;\n            /*处理数据类型长度*/\n            if(field.len>0){\n                ddlItem += ('('+field.len);\n                if(parseInt(field.scale)>0){\n                    ddlItem += (','+field.scale);\n                }\n                ddlItem += ')';\n            }\n            let defaultValue = field.defaultValue;\n            defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n            if(defaultValue.length>0){\n                ddlItem += (' DEFAULT ' + defaultValue);\n            }\n            if(field.notNull){\n                ddlItem += ' NOT NULL';\n            }\n            ret.push(`${firstDDL} ${ddlItem}`);\n            \n            /*处理字段注释*/\n            let fieldComments = [];\n            if(field.defName != null &&field.defName.length>0){\n                fieldComments.push(field.defName);\n            }\n            if(field.comment != null &&field.comment.length>0){\n                fieldComments.push(field.comment);\n            }\n            let commentText = fieldComments.join(';');\n            if(commentText != null && commentText.length > 0){\n                let commentDDL = `EXEC sp_addextendedproperty 'MS_Description', N'${commentText}','SCHEMA', N'dbo','TABLE', N'${entity.data.baseInfo.defKey}','COLUMN', N'${field.defKey}'`;\n                ret.push(commentDDL);\n            }\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildRemovedDDL(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        if(fieldRemoved.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n        for (let field of fieldRemoved) { \n            ret.push(`${firstDDL} DROP COLUMN [${field.defKey}]`);\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildModifiedDDL(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n        for (let field of fieldModified) { \n            let changeDDL = '';\n            let before = field.before || {};\n            let after = field.after || {};\n            if(before.defKey === after.defKey){\n                changeDDL += (' ALTER COLUMN ['+after.defKey+']');\n            }else{\n                let renameText = `EXEC sp_rename '[dbo].[${entity.data.baseInfo.defKey}].[${before.defKey}]','${after.defKey}','COLUMN';`;\n                ret.push(renameText);\n                continue;\n            }\n            changeDDL += (' '+after.dbType);\n            if(after.len>0){\n                changeDDL += ('('+after.len);\n                if(parseInt(field.scale)>0){\n                    changeDDL += (','+field.scale);\n                }\n                changeDDL += ')';\n            }\n            let defaultValue = after.defaultValue;\n            defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n            if(defaultValue.length>0){\n                changeDDL += (' DEFAULT ' + defaultValue);\n            }\n            \n            if(after.notNull){\n                changeDDL += ' NOT NULL';\n            }\n            ret.push(`${firstDDL} ${changeDDL};`);\n        }\n        return ret;\n    };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表：{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段：\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段：\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段：\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"
      },
      {
        "applyFor": "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022",
        "type": "dbDDL",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' AUTO_INCREMENT' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n",
        "deleteTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "deleteIndex": "{{~ it.entity.indexes:index}}\nDROP INDEX {{=index.defKey}} ;\n{{~}}",
        "message": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChanged(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push('代码:'+(before.defKey||'NULL')+'->'+(after.defKey||'NULL'));\n        }\n        if(before.defName !== after.defName){\n            ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n        }\n        if(before.comment !== after.comment){\n            ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n        }\n        if(ret.length>0){\n            return '    基本信息:\\n\\t'+ret.join('\\n\\t');\n        }\n        return '';\n    };\n    \n    function buildAddedDesc(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        \n        for (let field of fieldAdded) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildRemovedDesc(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        \n        for (let field of fieldRemoved) { \n            let row = [];\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n    \n    function buildModifiedDesc(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        for (let field1 of fieldModified) { \n            let row = [];\n            let field = field1.before;\n            row.push(field.defKey+'['+field.defName+']');\n            ret.push(row.join(\"\"))\n        }\n        return ret;\n    };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n    {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n    修改字段：\n    {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n        /*计算是否调整了属性*/\n        let propAdded = entity.data.propAdded || [];\n        let propRemoved = entity.data.propRemoved || [];\n        let propModified = entity.data.propModified || [];\n        let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n        /*计算关联是否调整*/\n        let refEntityAdd = entity.data.refEntityAdd || [];\n        let refEntityRemoved = entity.data.refEntityRemoved || [];\n        let relaArray = [];\n        for (let rela of refEntityAdd) {\n            relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        for (let rela of refEntityRemoved) {\n            relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n        }\n        /*索引是否修改过*/\n        let indexChanged = entity.data.indexChanged;\n    }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n    添加字段：\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n    删除字段：\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}",
        "update": "{{\n    let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n    let dropEntities   = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n    let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n    \n    function baseChangedDDL(beforeAfter){\n        if(beforeAfter == null){\n            return '';\n        }\n        let ret = [];\n        let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n        if(before.defKey !== after.defKey){\n            ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n        }\n        let commentText = '';\n        let commentChanged = false;\n        if(before.defName !== after.defName){\n            commentText = after.defName;\n            commentChanged = true;\n        }\n        if(before.comment !== after.comment){\n            commentChanged = true;\n            if(commentText){\n                commentText = (commentText+ ';'+after.comment)\n            }else{\n                commentText = after.comment\n            }\n        }\n        if(commentChanged){\n            let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n            ret.push(myText);\n        }\n        let baseText = '-- 基本信息:\\n';\n        return baseText+ret.join(';\\n')+';';\n    };\n    \n    function buildAddedDDL(entity){\n        let ret = [];\n        let fieldAdded = entity.data.fieldAdded||[];\n        if(fieldAdded.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldAdded) { \n            let ddlItem = `ADD COLUMN ${field.defKey} ${field.dbType}`;\n            /*处理数据类型长度*/\n            if(field.len>0){\n                ddlItem += ('('+field.len);\n                if(parseInt(field.scale)>0){\n                    ddlItem += (','+field.scale);\n                }\n                ddlItem += ')';\n            }\n            if(field.notNull){\n                ddlItem += ' NOT NULL';\n            }            \n            let defaultValue = field.defaultValue;\n            defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n            if(defaultValue.length>0){\n                ddlItem += (' DEFAULT ' + defaultValue);\n            }\n\n            ret.push(`${firstDDL} ${ddlItem}`);\n            \n            /*处理字段注释*/\n            let fieldComments = [];\n            if(field.defName != null &&field.defName.length>0){\n                fieldComments.push(field.defName);\n            }\n            if(field.comment != null &&field.comment.length>0){\n                fieldComments.push(field.comment);\n            }\n            let commentText = fieldComments.join(';');\n            if(commentText != null && commentText.length > 0){\n                let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n                 ret.push(commentDDL);\n            }\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildRemovedDDL(entity){\n        let ret = [];\n        let fieldRemoved = entity.data.fieldRemoved||[];\n        if(fieldRemoved.length == 0){\n            return '';\n        }\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldRemoved) { \n            ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n        }\n        return '\\n'+ret.join(';\\n');\n    };\n    \n    function buildModifiedDDL(entity){\n        let ret = [];\n        let fieldModified = entity.data.fieldModified||[];\n        \n        let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n        for (let field of fieldModified) { \n            let before = field.before || {};\n            let after = field.after || {};\n            if(before.defKey !== after.defKey){\n                let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n                ret.push(renameText);\n            }\n            /*如果没有变化，则不生成变更语句*/\n            if(before.dbType === after.dbType \n            && before['len'] === after['len'] \n            && before.scale === after.scale\n            && before.primaryKey === after.primaryKey\n            && before.notNull === after.notNull\n            && before.autoIncrement === after.autoIncrement\n            && before.defaultValue === after.defaultValue){\n                continue;\n            }\n            if(before.dbType !== after.dbType || before.len !== after.len || before.scale !== after.scale){\n                let dbTypeDDL = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${after.defKey} TYPE ${before.dbType}`;\n                if(after.len>0){\n                    dbTypeDDL += ('('+after.len);\n                    if(parseInt(after.scale)>0){\n                        dbTypeDDL += (','+after.scale);\n                    }\n                    dbTypeDDL += ')';\n                }\n                ret.push(dbTypeDDL+';');\n            }\n            \n            if(before.defaultValue !== after.defaultValue){\n                let defaultDDL = '';\n                let defaultValue = after.defaultValue;\n                defaultValue = (defaultValue==null)?\"NULL\":(\"\"+defaultValue);\n                if(defaultValue.length>0){\n                    defaultDDL += ('SET DEFAULT ' + defaultValue);\n                }\n                let defaultTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${defaultDDL};`;\n                ret.push(defaultTpl);\n            }\n            \n            if(before.notNull !== after.notNull){\n                let notNullDDL= 'SET NULL';\n                if(after.notNull){\n                    let notNullDDL= 'SET NOT NULL';\n                }\n                let notNullTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${notNullDDL};`;\n                ret.push(notNullTpl);\n            }\n        }\n        return ret;\n    };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表：{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段：\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n-- 索引重建\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段：\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段：\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"
      },
      {
        "type": "dbDDL",
        "applyFor": "89504F5D-94BF-4C9E-8B2E-44F37305FED5",
        "createTable": "CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? '' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n"
      },
      {
        "type": "dbDDL",
        "applyFor": "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307",
        "createTable": "CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? '' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ','('+field.defaultValue+')',' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n"
      },
      {
        "type": "dbDDL",
        "applyFor": "592C7013-143D-4E7B-AF64-0D7BF1E28230",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' AUTO_INCREMENT' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n"
      },
      {
        "type": "dbDDL",
        "applyFor": "77BD85E5-9D0D-4096-8427-CBA306FC9C6A",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n);\n$blankline\n{{? it.entity.defKey || it.entity.defName}}COMMENT ON TABLE {{=it.entity.defKey}} IS '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}';{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.defName || field.comment}}COMMENT ON COLUMN {{=it.entity.defKey}}.{{=field.defKey}} IS '{{=it.func.join(field.defName,field.comment,';')}}';{{?}}\n{{~}}",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n"
      },
      {
        "type": "dbDDL",
        "applyFor": "11D1FB71-A587-4217-89BA-611B8A1F83E0",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTO_INCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }} COMMENT '{{=it.func.join(field.defName,field.comment,';')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n)  COMMENT = '{{=it.func.join(it.entity.defName,it.entity.comment,';') }}';\n$blankline\n",
        "createIndex": "",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n"
      },
      {
        "applyFor": "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1",
        "type": "dbDDL",
        "createTable": "DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTOINCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }} --{{=it.func.join(field.defName,field.comment,';')}}\n{{~}}\n{{? pkList.length >0 }}\n    PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n)  ; --{{=it.func.join(it.entity.defName,it.entity.comment,';') }}\n$blankline\n",
        "createView": "CREATE VIEW {{=it.view.defKey}} AS\nSELECT \n{{~it.view.fields:field:index}}\n    {{=field.refEntity}}.{{=field.refEntityField}} AS {{=field.defKey}}{{= index < it.view.fields.length-1 ? ',' : ''}}\n{{~}}\nFROM {{~it.view.refEntities:refEntity:index}}{{=refEntity}}{{= index < it.view.refEntities.length-1 ? ',' : ''}}{{~}};\n$blankline\n",
        "deleteTable": "",
        "createIndex": "{{~ it.entity.indexes:index}}\nCREATE {{? index.unique}}UNIQUE {{?}}INDEX {{=index.defKey}} ON {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\n{{~}}",
        "deleteIndex": "",
        "message": "",
        "update": ""
      },
      {
        "type": "dbDDL",
        "applyFor": "dictSQLTemplate",
        "content": "/* 插入字典总表[{{=it.dict.defKey}}-{{=it.dict.defName}}] */\nINSERT INTO SYS_DICT(KEY_,LABEL,INTRO,REVISION) VALUES('{{=it.dict.defKey}}','{{=it.dict.defName}}','{{=it.dict.intro}}',1);\n/* 插入字典明细表 */\n{{~it.dict.items:item:index}}\nINSERT INTO SYS_DICT_ITEM(DICT_KEY,KEY_,LABEL,SORT_,INTRO,REVISION) VALUES('{{=it.dict.defKey}}','{{=item.defKey}}','{{=item.defName}}','{{=item.sort}}','{{=item.intro}}',1);\n{{~}}"
      },
      {
        "applyFor": "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2",
        "type": "dbDDL",
        "createTable": "/**字段名,关键字等全部用的小写*/\ndrop table if exists {{=it.entity.defKey}};\n/**补充上库名,external关键字根据建表规范看是否添加*/\ncreate [external] table if not exists {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n/**这里把varchar,char,text,date,datetime字段全部映射为string类型.tinyint unsigned,bit,Integer,tinyint,smallint,mediumint映射为int类型,int unsigned映射为bigint.其它自定义映射规则根据自己情况修改*/\n/**当长度>0只有为decimal类型或double类型时才保留长度和小数的位数*/\n{{~it.entity.fields:field:index}}\n    {{=it.func.lowerCase(field.defKey)}} {{=it.func.lowerCase(field.dbType)=='varchar'||it.func.lowerCase(field.dbType)=='char'||it.func.lowerCase(field.dbType)=='text'||it.func.lowerCase(field.dbType)=='date'||it.func.lowerCase(field.dbType)=='datetime' ? 'string':it.func.lowerCase(field.dbType)=='tinyint unsigned'||it.func.lowerCase(field.dbType)=='bit'||it.func.lowerCase(field.dbType)=='integer'||it.func.lowerCase(field.dbType)=='tinyint'||it.func.lowerCase(field.dbType)=='smallint'||it.func.lowerCase(field.dbType)=='mediumint' ? 'int':it.func.lowerCase(field.dbType)=='int unsigned' ? 'bigint':it.func.lowerCase(field.dbType)}}{{?field.len>0&&(it.func.lowerCase(field.dbType)=='decimal'||it.func.lowerCase(field.dbType)=='double')}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{=')'}}{{?}}{{?}} comment '{{=it.func.join(field.defName,field.comment,'')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n{{?}}\n)\n{{\n    let partitionedBy = it.entity.properties['partitioned by'];\n    partitionedBy = partitionedBy?partitionedBy:'请在扩展属性中配置[partitioned by]属性';\n}}\ncomment '{{=it.func.join(it.entity.defName,';') }}'\n/**是否分区表,分区字段名和字段注释自定义*/\n[partitioned by {{=partitionedBy}}]\n/**文件存储格式自定义*/\n[stored as orc]\n/**hdfs上的地址自定义*/\n[location xxx]\n;",
        "createView": "",
        "deleteTable": "",
        "createIndex": "",
        "deleteIndex": "",
        "message": "",
        "update": ""
      },
      {
        "applyFor": "70ADF844-F9AA-44BF-9B62-531967421B5C",
        "type": "appCode",
        "content": "{{  var today=new Date();\n    var fullYear=today.getFullYear();\n    var month=today.getMonth() + 1;\n    var days=today.getDate();\n    \n    var pkVarName = \"undefinedId\";\n    var pkDataType = \"String\";\n    it.entity.fields.forEach(function(field){\n        if(field.primaryKey){\n            pkVarName = it.func.camel(field.defKey,false);\n            pkDataType = field[\"type\"];\n            return;\n        }\n    });\n    \n    var pkgName = it.entity.env.base.nameSpace;\n    var beanClass = it.entity.env.base.codeRoot;\n    var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n    var serviceClass = beanClass+'Service';\n    var serviceVarName= beanVarName+'Service';\n    \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.persistence.*;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : renyanru\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\n@Table(name=\"{{=it.entity.defKey}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n    /** {{=it.func.join(field.defName,field.comment,';')}} */\n    {{? field.primaryKey }}\n    @Id\n    @GeneratedValue\n    {{?}}\n    @ApiModelProperty(name = \"{{=field.defName}}\", tname=\"{{=field.defKey}}\" notes = \"{{=field.comment}}\")\n    private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n{{~}}\n}"
      },
      {
        "applyFor": "A7DC75D1-3855-473D-9557-7C87DF194B57",
        "type": "appCode",
        "content": "/*****************************************  {{=it.func.join(it.entity.defName,it.entity.comment,';')}} {{=it.entity.defKey}} *********************************  \r\nselect * from {{=it.entity.defKey}}                       --查询表数据\r\nselect * from [GT_DATABaseInfo]('{{=it.entity.defKey}}')  --查询当前表结构\r\n-- TRUNCATE TABLE {{=it.entity.defKey}}                    --清理物理表数据并重置自增主键\r\n-- drop table {{=it.entity.defKey}}                         --删除物理表\r\n-- ALTER INDEX ALL ON {{=it.entity.defKey}} REBUILD         --重建当前表所有索引 \r\n--select b.name from sysobjects b join syscolumns a on b.id = a.cdefault where a.id = object_id('{{=it.entity.defKey}}') and a.name =ISNULL('FColumnKey','') --默认值索引键查询\r\n--ALTER TABLE Ba_UserInfo DROP constraint DF__Ba_UserIn__FIsRa__13749B76    --关联索引值键清理\r\n*******************************************************************************************/\r\nCREATE TABLE {{=it.entity.defKey}}(\r\n{{ pkList = [] ; }}\r\n{{~it.entity.fields:field:index}}\r\n    {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}} \r\n    {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' IDENTITY(1,1) ' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}  --新增字段  alter table {{=it.entity.defKey}} add  {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' IDENTITY(1,1) ' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}   --修改字段 alter table {{=it.entity.defKey}} ALTER COLUMN {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}\r\n{{~}}\r\n{{? pkList.length >0 }}\r\n    CONSTRAINT PK_{{=it.entity.defKey}} PRIMARY KEY CLUSTERED ({{~pkList:pkName:i}}{{= pkName }} ASC {{= i<pkList.length-1 ? ',' : '' }}{{~}}) ON [PRIMARY] \r\n{{?}}\r\n){{=it.separator}}\r\n--表、字段备注说明\r\n{{? it.entity.defKey || it.entity.defName}}'description', '{{=it.func.join(it.entity.defName,it.entity.comment,';')}}','table', {{=it.entity.defKey}}, null, null;{{?}}\r\n{{~it.entity.fields:field:index}}\r\n'description', '{{=it.func.join(field.defName,field.comment,';')}}','column', {{=field.defKey}} 'variable', {{=field.defKey}};\r\n{{~}}\r\n{{~ it.entity.indexes:index}}\r\nCREATE {{? index.unique}}UNIQUE {{?}} NONCLUSTERED INDEX {{=index.defKey}} ON  {{=it.entity.defKey}}({{ fieldsKeys = index.fields.map(function(field){return field.fieldDefKey}) ; }}{{=it.func.join(...fieldsKeys,',')}});\r\n{{~}}"
      }
    ],
    "generatorDoc": {
      "docTemplate": ""
    },
    "relationFieldSize": 100,
    "uiHint": [
      {
        "defKey": "Input",
        "defName": "普通输入框",
        "id": "642D2E0A-8846-4549-BE56-8C0473F26EDE"
      },
      {
        "defKey": "Select",
        "defName": "下拉输入框",
        "id": "FB111359-2B73-4443-926C-08A98E446448"
      },
      {
        "defKey": "CheckBox",
        "defName": "复选框",
        "id": "0CB8A6C9-1115-4FC0-B51E-5C028065082F"
      },
      {
        "defKey": "RadioBox",
        "defName": "单选框",
        "id": "5C04987A-260F-4B7C-A5D5-22A181AAE9CA"
      },
      {
        "defKey": "Double",
        "defName": "小数输入",
        "id": "8D5BAFE4-E15C-4707-A047-8EE59C58E70F"
      },
      {
        "defKey": "Integer",
        "defName": "整数输入",
        "id": "9999AF2A-A44E-415C-A2DC-D7C613BD0073"
      },
      {
        "defKey": "Money",
        "defName": "金额输入",
        "id": "2B0C3D0C-7BAF-4B36-81AD-9362B5E5DC2E"
      },
      {
        "defKey": "Date",
        "defName": "日期输入",
        "id": "E4D94E14-F695-487F-AFC2-4D888009B7DA"
      },
      {
        "defKey": "DataYearMonth",
        "defName": "年月输入",
        "id": "936927E3-DD2D-4096-87FD-074CDE278D59"
      },
      {
        "defKey": "Text",
        "defName": "长文本输入",
        "id": "D89DD4F1-ADAC-4469-BF8D-B3FF41AE7963"
      },
      {
        "defKey": "RichText",
        "defName": "富文本输入",
        "id": "C134EB1F-4CFF-49E0-882F-2C6FB275CB20"
      }
    ],
    "menuWidth": "282px",
    "headers": [
      {
        "refKey": "defKey",
        "hideInGraph": false
      },
      {
        "refKey": "defName",
        "hideInGraph": false
      },
      {
        "refKey": "primaryKey",
        "hideInGraph": false
      },
      {
        "refKey": "notNull",
        "hideInGraph": true
      },
      {
        "refKey": "autoIncrement",
        "hideInGraph": true
      },
      {
        "refKey": "domain",
        "hideInGraph": true
      },
      {
        "refKey": "type",
        "hideInGraph": false
      },
      {
        "refKey": "len",
        "hideInGraph": false
      },
      {
        "refKey": "scale",
        "hideInGraph": false
      },
      {
        "refKey": "comment",
        "hideInGraph": true
      },
      {
        "refKey": "refDict",
        "hideInGraph": true
      },
      {
        "refKey": "defaultValue",
        "hideInGraph": true
      },
      {
        "refKey": "isStandard",
        "hideInGraph": false
      },
      {
        "refKey": "uiHint",
        "hideInGraph": true
      },
      {
        "refKey": "extProps",
        "hideInGraph": true
      }
    ]
  },
  "entities": [
    {
      "id": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
      "env": {
        "base": {
          "nameSpace": "com.sjyt.entity",
          "codeRoot": "TUserSingle"
        },
        "template": {
          "JAVA": {}
        },
        "custom": {}
      },
      "defKey": "t_user_single",
      "defName": "个人信息",
      "comment": "u前缀是t_user_single简称（个人信息表）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "u_id",
          "defName": "用户id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "ACFD71D8-3CF8-4FB3-A335-4BFE320A4136"
        },
        {
          "defKey": "u_nick",
          "defName": "昵称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "5D3A8C2F-200A-4132-852C-105516DD3127"
        },
        {
          "defKey": "u_nd_add",
          "defName": "个人节点地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "97CAEF90-E255-4B55-845E-BDEDB0D26770"
        },
        {
          "defKey": "u_pfp_id",
          "defName": "本地默认头像id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "020BC238-5753-4D98-8E49-5065CEBA405D",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "2330F1CC-93FD-4B4D-83BE-2509F89B4CCE"
        },
        {
          "defKey": "u_pfp_url",
          "defName": "头像URL",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "A94945B6-8087-4133-977A-FC4F8E47474A"
        },
        {
          "defKey": "u_wallet_pwd",
          "defName": "钱包密码（分组密码+钱包密码）hash",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "01BFB19E-300A-4354-B0F3-8FBC25503A2E"
        },
        {
          "defKey": "u_empty_pwd",
          "defName": "通用清空密码（密码hash）",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "13DD2573-4E76-4B8B-8A5A-BCBC11ED32A5"
        },
        {
          "defKey": "u_ip",
          "defName": "ip地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "8FC3176B-0B10-46FC-B60B-DE4D03434E9E"
        },
        {
          "defKey": "c_pub_key",
          "defName": "公钥",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "1C5F1E01-F7B2-40F4-9118-633C1E249247"
        },
        {
          "defKey": "c_pub_curve",
          "defName": "加解密",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "F8C47E24-ABFB-4ABA-BB46-21CC7C5DA312"
        },
        {
          "defKey": "u_anon_pwd",
          "defName": "匿名用户时候生成的钱包密码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "4FAD50F1-3282-4128-BC27-31403ED58919"
        },
        {
          "defKey": "u_max_bolcks",
          "defName": "用户默认的最大分组数量，默认3",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "3",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "12791957-C031-4F9B-B07B-2EE4D09DDA82"
        },
        {
          "defKey": "u_max_gp_mbr",
          "defName": "用户默认的最大群成员数量，默认50",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "50",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "0E6219AF-4C2B-4A21-B86C-0AAA32E86589"
        },
        {
          "defKey": "u_version",
          "defName": "个人信息每次更新此版本号加1",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "08651F2B-328D-41B0-BAFB-6566744C5BB0"
        },
        {
          "defKey": "c_list_version",
          "defName": "好友列表版本号，添加好友、删除好友时此版本加1",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "313BEC29-3125-4832-96DA-D00F4780D06B"
        },
        {
          "defKey": "u_max_gp_vc_mbr",
          "defName": "群成员最大视频通话数量 默认：9",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": true,
          "defaultValue": "9",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "B6D38D6F-CF4E-4C11-8ADB-E0164970C279"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "0EF7D3E0-2A5C-4DF7-A993-73A7F6A3120F"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "CAC740D4-F42A-4215-B93C-10F8814C0123"
        }
      ],
      "correlations": [],
      "indexes": [
        {
          "defKey": "NODE_ADDRESS",
          "defName": null,
          "unique": true,
          "comment": "",
          "fields": [
            {
              "fieldDefKey": "97CAEF90-E255-4B55-845E-BDEDB0D26770",
              "ascOrDesc": "A",
              "id": "3365B3C1-C6DE-4D39-9ACE-0D7DDD7A9267"
            }
          ],
          "id": "F3EC0331-314E-45DD-B552-DD38C0DF8074"
        }
      ]
    },
    {
      "id": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_user_setting_single",
      "defName": "用户设置状态表",
      "comment": "用户状态配置表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true,
          "code": "relationNoShow",
          "value": "关系图",
          "newCode": "hideInGraph",
          "com": "Icon",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false,
          "code": "name",
          "value": "字段代码",
          "newCode": "defKey",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false,
          "code": "chnname",
          "value": "显示名称",
          "newCode": "defName",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false,
          "code": "pk",
          "value": "主键",
          "newCode": "primaryKey",
          "com": "Checkbox",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true,
          "code": "notNull",
          "value": "不为空",
          "newCode": "notNull",
          "com": "Checkbox",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true,
          "code": "autoIncrement",
          "value": "自增",
          "newCode": "autoIncrement",
          "com": "Checkbox",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true,
          "code": "type",
          "value": "数据域",
          "newCode": "domain",
          "com": "Select",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false,
          "code": "dataType",
          "value": "数据类型",
          "newCode": "type",
          "com": "Text",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false,
          "code": "len",
          "value": "长度",
          "newCode": "len",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false,
          "code": "scale",
          "value": "小数位数",
          "newCode": "scale",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true,
          "code": "remark",
          "value": "说明",
          "newCode": "comment",
          "com": "Input",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true,
          "code": "refDict",
          "value": "数据字典",
          "newCode": "refDict",
          "com": "SearchSelect",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true,
          "code": "defaultValue",
          "value": "默认值",
          "newCode": "defaultValue",
          "com": "Input",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false,
          "code": "isStandard",
          "value": "标准字段",
          "newCode": "isStandard",
          "com": "label",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true,
          "code": "uiHint",
          "value": "UI建议",
          "newCode": "uiHint",
          "com": "Select",
          "relationNoShow": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "u_id",
          "defName": "用户ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "51BC1783-34C6-47B6-91B2-6F985384E728"
        },
        {
          "defKey": "sh_nic",
          "defName": "是否显示昵称  0：不显示  1：显示",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "4B1A547E-9A68-478C-B442-ECC527FA6976"
        },
        {
          "defKey": "rc_ac_vc_invit_info",
          "defName": "接收语音和视频通话邀请通知 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "60FA69CC-6221-4F9F-B298-00EFCA6C227B"
        },
        {
          "defKey": "rc_new_msg_info",
          "defName": "接收新消息通知 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "81943A1A-8928-43ED-8C5E-CEA56433F8FD"
        },
        {
          "defKey": "show_last_online_time",
          "defName": "显示最后在线时间  0：不显示  1：显示",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "1EF01E6A-1525-4B8A-A764-54BF36C2F8D1"
        },
        {
          "defKey": "use_mobile_data",
          "defName": "使用移动数据时 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "54F7DE85-6EBB-4F24-89FD-65C8E5D1F7BE"
        },
        {
          "defKey": "use_wifi_data",
          "defName": "使用wifi数据时 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "492B267D-695A-42FA-A9B4-54EA77ED0E1B"
        },
        {
          "defKey": "info_ac_vc_invit_rg",
          "defName": "语音和视频通话铃声 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "93A5116D-0147-4A90-B0D3-5C59D0069D84"
        },
        {
          "defKey": "info_ac_vc_invit_sk",
          "defName": "语音和视频通话震动 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "D6DB7A05-540D-4FF1-A8C6-5460CB448A77"
        },
        {
          "defKey": "new_msg_ring_tone",
          "defName": "新信息铃声 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "88884BDD-2F4C-4A89-8AEE-307393C74312"
        },
        {
          "defKey": "new_msg_sk",
          "defName": "新消息震动 0：不使用  1：使用",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "86C77574-71AE-4215-AD6E-EDF62B369431"
        },
        {
          "defKey": "lang",
          "defName": "语言 默认 0   {0：跟随系统，1：简体中文，2：繁体中文，3：英文}",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": true,
          "refDict": "796B600B-35E7-4770-BCE2-0737A91589D2",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "F7DB620F-8AE8-4768-BE28-84712D0C5BFE"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "EA125E68-3C60-41D5-9831-59F6D6243DE5"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "B3F160A6-843D-44F4-86C1-38B1D08BB399"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_app_system_config_single",
      "defName": "App系统配置表",
      "comment": "App系统配置表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "u_id",
          "defName": "用户ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "DB598B47-35E0-4D29-85F9-66E21A1CF61F"
        },
        {
          "defKey": "version",
          "defName": "App版本号",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "FACBD9EA-D827-4591-A8DB-CC820EDBE813"
        },
        {
          "defKey": "update_url",
          "defName": "App更新地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "7AF22FAD-DFDF-4647-8969-70B53553DF5F"
        },
        {
          "defKey": "system",
          "defName": "系统版本   1：IOS 2：Android 3：鸿蒙",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "6C2D6051-87D0-43CC-B522-6E5E6C85F0DC",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "BD234214-699F-4AD4-AD91-ED90FDBBF9DE"
        },
        {
          "defKey": "rp_add",
          "defName": "App上报地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "B9DCD2ED-5683-4DCB-85DF-C50B4609DBD0"
        },
        {
          "defKey": "app_id",
          "defName": "AppID   用于多环境测试：1：生产环境  2：开发环境  3：测试环境",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "2",
          "hideInGraph": false,
          "refDict": "380767D2-6EFA-4E62-B26F-7352E645BD63",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "7DA751BC-AD46-4D89-A83C-B2AC22173D2D"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "01691C85-1159-413C-92B9-56D2E1824815"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "91C2C04E-522C-46D0-BF7A-79FF2B262240"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "7B24D21B-1C0D-49F9-B7A7-92AC1CE3EC71",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_switch_single",
      "defName": "开关配置",
      "comment": "sc表前缀 ",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "sc_id",
          "defName": "主键id",
          "comment": "",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "6A8D02C4-1D85-4285-8CE8-2D41EF5E61CE"
        },
        {
          "defKey": "sc_update_conf",
          "defName": "是否拉取配置",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "97663F88-4D19-4453-A84B-C1C92A440A88"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "803A1460-157E-45EE-A5F3-79410631F1F6"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "6C329858-EACF-4F2C-96FD-E2B4447DC382"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "4F6509BE-DE02-42FA-8C5F-670B3560643E",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_contact",
      "defName": "联系人(好友)",
      "comment": "c前缀是t_contact表缩写（联系人表）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true,
          "code": "relationNoShow",
          "value": "关系图",
          "newCode": "hideInGraph",
          "com": "Icon",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false,
          "code": "name",
          "value": "字段代码",
          "newCode": "defKey",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false,
          "code": "chnname",
          "value": "显示名称",
          "newCode": "defName",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false,
          "code": "pk",
          "value": "主键",
          "newCode": "primaryKey",
          "com": "Checkbox",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true,
          "code": "notNull",
          "value": "不为空",
          "newCode": "notNull",
          "com": "Checkbox",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true,
          "code": "autoIncrement",
          "value": "自增",
          "newCode": "autoIncrement",
          "com": "Checkbox",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": false,
          "code": "type",
          "value": "数据域",
          "newCode": "domain",
          "com": "Select",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false,
          "code": "dataType",
          "value": "数据类型",
          "newCode": "type",
          "com": "Text",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false,
          "code": "len",
          "value": "长度",
          "newCode": "len",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false,
          "code": "scale",
          "value": "小数位数",
          "newCode": "scale",
          "com": "Input",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true,
          "code": "remark",
          "value": "说明",
          "newCode": "comment",
          "com": "Input",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true,
          "code": "refDict",
          "value": "数据字典",
          "newCode": "refDict",
          "com": "SearchSelect",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true,
          "code": "defaultValue",
          "value": "默认值",
          "newCode": "defaultValue",
          "com": "Input",
          "relationNoShow": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false,
          "code": "isStandard",
          "value": "标准字段",
          "newCode": "isStandard",
          "com": "label",
          "relationNoShow": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true,
          "code": "uiHint",
          "value": "UI建议",
          "newCode": "uiHint",
          "com": "Select",
          "relationNoShow": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "c_id",
          "defName": "主键ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "ID",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "1C662E24-3419-410C-94AF-6522E784903A"
        },
        {
          "defKey": "c_nd_add",
          "defName": "节点地址    个人身份唯一标识",
          "comment": "",
          "type": "TEXT",
          "len": 900,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "",
          "id": "1483B557-11C7-4566-9C48-132B6BD0E709"
        },
        {
          "defKey": "c_nic",
          "defName": "昵称  初始化时，自动生成",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "66674748-86DF-4D70-8232-B4E686133B20"
        },
        {
          "defKey": "c_pfp_id",
          "defName": "本地默认头像id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "020BC238-5753-4D98-8E49-5065CEBA405D",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "3C0333AD-9D19-480A-A493-9050DB45CC32"
        },
        {
          "defKey": "c_pub_curve",
          "defName": "加解密",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "0B5AF9F0-B0D2-4DA8-A0CF-F039434C6CCD"
        },
        {
          "defKey": "c_pub_key",
          "defName": "签名公钥,申请好友时存入公钥",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "6A4CD565-312F-40C5-9462-CC7C0D2A1E20"
        },
        {
          "defKey": "c_version",
          "defName": "消息版本id，每发送一条消息此版本号加1",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "FDD66F2C-017A-47B5-98CA-2DC43A283FEE"
        },
        {
          "defKey": "c_state",
          "defName": "好友状态",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "B51AA4C2-2922-4335-A06D-52E170FC36A1",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "48A20EA1-CC73-463C-ABAD-B8CC6F2908E7"
        },
        {
          "defKey": "c_pfp_url",
          "defName": "头像URL  云存储",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "82DB8AAD-C3AA-4CCB-9BE5-4F37105BE717"
        },
        {
          "defKey": "c_ps",
          "defName": "好友备注",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "869D7F4E-F694-4C93-BA4B-16924654DC98"
        },
        {
          "defKey": "c_number_id",
          "defName": "显示号码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "586D582B-3537-4219-B953-CF7F7D0C461D"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "BBCF00AF-8257-4CE6-B244-68FCEEE86C26"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "B7DC021E-430F-416A-89FF-80257F2AFE01"
        }
      ],
      "correlations": [],
      "indexes": [
        {
          "defKey": "NODE_ADDRESS",
          "defName": null,
          "unique": true,
          "comment": "",
          "fields": [
            {
              "fieldDefKey": "1483B557-11C7-4566-9C48-132B6BD0E709",
              "ascOrDesc": "A",
              "id": "D281BCDC-23D6-4308-BBCF-6183EE5C6F8E"
            }
          ],
          "id": "1989FB7E-EB3E-4BB2-9E66-2CC9EF9A7583"
        }
      ]
    },
    {
      "id": "F37CFE1E-F41A-40ED-9CFC-496C82F8B067",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_block",
      "defName": "分组",
      "comment": "B前缀是t_block表缩写（分组表）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "b_id",
          "defName": "分组id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "17C90992-7EA1-407B-B29A-4BB3480B3D0F"
        },
        {
          "defKey": "b_name",
          "defName": "分组名称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "B50EF727-7D8D-4AF1-8F2C-454300BD1B1C"
        },
        {
          "defKey": "b_pfp_url",
          "defName": "分组头像URL",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "5944B166-79FA-404A-A5EE-5E280A12A0B9"
        },
        {
          "defKey": "b_pfp_id",
          "defName": "分组头像id",
          "comment": "",
          "type": "INTEGER",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "",
          "id": "FBD5CC53-0B11-478D-8762-942D304A29B7"
        },
        {
          "defKey": "b_clr_pwd",
          "defName": "分组清空密码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "33DECCD6-0E37-44A7-BC94-6E9DC7384E75"
        },
        {
          "defKey": "b_login_pwd",
          "defName": "分组登录密码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "17968414-41AD-474D-BC3C-87984BBF4456"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "C5D56BFF-2BEE-4E93-9D7F-3D6B0EF05E62"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "EEABA791-232E-44DF-8E21-EE3DB250CC6B"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "B1E4DDB6-B8CC-47BF-803B-2A565530CD0E",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_block_content",
      "defName": "分组内容",
      "comment": "分组子表或内容表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "891F18DC-BD88-4C2F-9472-6E678DE1AB89"
        },
        {
          "defKey": "b_id",
          "defName": "分组id  来自主表",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "44DB9345-8679-4CD0-A543-293234964DA1"
        },
        {
          "defKey": "c_id",
          "defName": "联系人id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "D5425BF1-C4E7-4D66-A79C-ACCD0E6C2356"
        },
        {
          "defKey": "g_id",
          "defName": "群id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "A6C6E729-DAAF-497B-A756-170BCEF714F9"
        },
        {
          "defKey": "b_type",
          "defName": "类型   1：联系人  2：群聊：3：讨论组（预留）",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "6C7812A0-3096-4FE2-B4A7-C297739FA692",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "9178E9AA-17AA-45CF-BBA1-95EAEF8F7F89"
        },
        {
          "defKey": "b_hide_state",
          "defName": "隐藏状态",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "BA2E8873-7759-4BDA-85B9-38AB52BA33F7"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "A68DE7F6-E5C7-460A-A32A-CDFA0910E88C"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "6EE855A6-2270-4688-83CF-86DA1A9016CB"
        }
      ],
      "correlations": [],
      "indexes": [
        {
          "defKey": "BLOCK_ADDRESS_KEY",
          "defName": null,
          "unique": true,
          "comment": "",
          "fields": [
            {
              "fieldDefKey": "44DB9345-8679-4CD0-A543-293234964DA1",
              "ascOrDesc": "A",
              "id": "42ECF4EC-2C14-48BB-AA07-B388781C975D"
            },
            {
              "fieldDefKey": "D5425BF1-C4E7-4D66-A79C-ACCD0E6C2356",
              "ascOrDesc": "A",
              "id": "EA735030-24BB-40BA-BCAE-CF8873813EEF"
            }
          ],
          "id": "016931A8-6536-436E-9162-B4EE9F1D903C"
        }
      ]
    },
    {
      "id": "7B833313-CCBC-4284-A5E6-FEF2D794DBA8",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_block_message_notice",
      "defName": "分组消息提醒内容",
      "comment": "BMN前缀是t_block_message_notice表缩写（分组消息提示表）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "refDict": "",
          "uiHint": "",
          "id": "DDE6AE93-7FF7-4C69-BA8E-778D734D1C06"
        },
        {
          "defKey": "b_id",
          "defName": "分组id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "5A98B50E-A549-4DB0-8160-2825A8872157"
        },
        {
          "defKey": "bmn_cry",
          "defName": "消息内容",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "B0A664A2-FF59-4503-80CA-A483475A55C4"
        },
        {
          "defKey": "bmn_order",
          "defName": "序号",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "040B9F37-93FC-437E-BDA8-A78FC0D3F0D1"
        },
        {
          "defKey": "bmn_type",
          "defName": "类型 0：内置 1：自定义",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "D848EA67-07BF-4A83-B6A0-7040037ECA0E"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "F7347DBD-64BD-48B0-8BF8-A53B0B99F6BA"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "BF20BF39-A46A-4F18-85AE-8F28C62D0A58"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "7F68C510-C6BA-4F87-928C-E8F64AC6314B",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_block_config",
      "defName": "分组配置",
      "comment": "分组配置表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "0B6165D9-CDF0-488F-BEFB-6B7E1E9406F1"
        },
        {
          "defKey": "b_id",
          "defName": "分组id 主表分组ID",
          "comment": "",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "1E84DD67-E55F-481A-BD96-D3466B73AC13"
        },
        {
          "defKey": "b_num",
          "defName": "分组最大数量",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "C6386D8B-0B5D-4A8F-9419-C701514B33E4"
        },
        {
          "defKey": "b_default",
          "defName": "是否默认组，第一次注册是，没有分组，整体为默认位置，标记1；0：不是默认 1：默认",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "94987DF6-CB0A-47C7-9E93-FA5E34AF5910"
        },
        {
          "defKey": "b_enable_msg",
          "defName": "启用分组消息提醒",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "D7CFC1A5-1206-4CAB-BC9A-CAA68FAA0BA7"
        },
        {
          "defKey": "b_exp",
          "defName": "分组消息时效，1：阅后即焚   2：阅后15分钟  3：阅后2小时   4：永久",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "0C5E4985-2190-4A55-B10B-71BA9ED7B5F9",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "5635159B-EE31-4085-A975-047E238E6E87"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "BF0D11D8-52B2-4939-AC0B-8034B91EAE59"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "7C99A8A4-45F8-48FC-B674-5FB1B6EE71C5"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "A170BC81-F3D0-422F-B00F-1DB8218C26B4",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_group",
      "defName": "群",
      "comment": "g前缀代表t_group简称（群表）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "g_id",
          "defName": "群id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "0948E265-3DC0-4AE7-A2AB-2C88E06B36C9"
        },
        {
          "defKey": "g_name",
          "defName": "群名称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "2171A4E4-8C8D-497A-AD33-F8AEB78269CB"
        },
        {
          "defKey": "g_nic",
          "defName": "群昵称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "B88D4287-04EA-4197-B521-19963AAEA7B2"
        },
        {
          "defKey": "g_info",
          "defName": "群公告",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "86EAF731-9298-4B9B-B00D-07157D5D2D3A"
        },
        {
          "defKey": "g_role_code",
          "defName": "群角色码，个人对应群的所属角色（权限）",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "80133E43-8C93-44E6-9FB3-8D1858CD009B"
        },
        {
          "defKey": "g_ps",
          "defName": "群备注",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "1AE0D1F9-5CF3-4C1E-807E-BE87CDD04443"
        },
        {
          "defKey": "g_pfp_id",
          "defName": "群头像id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "020BC238-5753-4D98-8E49-5065CEBA405D",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "931017A4-81AB-4010-85FC-637D2D75DCF0"
        },
        {
          "defKey": "g_pfp_url",
          "defName": "群头像URL",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "3A85C9B8-A0CF-4CB5-8500-EA871B403E55"
        },
        {
          "defKey": "g_sh_mbr_nick",
          "defName": "显示成员昵称，0：不显示 1：显示",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "1",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "C5134892-6348-4BEF-A7FB-C95B6011E3C0"
        },
        {
          "defKey": "g_msg_dis",
          "defName": "消息免打扰，0：否 1：是",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "A9F22055-D80D-4968-B3AE-24C84E52B157"
        },
        {
          "defKey": "g_exp",
          "defName": "群消息时效，1：阅后即焚   2：阅后15分钟  3：阅后2小时   4：永久",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "0C5E4985-2190-4A55-B10B-71BA9ED7B5F9",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "8F6AEEA7-740C-4BE6-9D36-F9868F91194C"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "8E904178-4B81-4F3E-BA82-EE328C6481DC"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "C5E4C938-15AE-440E-8597-D506202A0EBD"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "031CC33E-3EDC-47A1-B4B8-E52348185EC1",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_group_content",
      "defName": "群内容",
      "comment": "群子表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "gc_id",
          "defName": "id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "586EB705-CC72-46F0-AED1-63FB3E7DBCC4"
        },
        {
          "defKey": "g_id",
          "defName": "群id",
          "comment": "",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "EFCC4C9B-8877-4B19-AE9C-CF17B0CDB5F1"
        },
        {
          "defKey": "c_id",
          "defName": "联系人id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "5DEA0C29-2EB9-4201-83C7-3FF8A1218828"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "ED52134F-E61F-4F18-B338-6BA1F0D5D280"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "DD0B3BF2-2FC6-4097-90FD-A0040CD28966"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "2B13AD7D-18DB-42C5-A65D-B0086874E63F",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_group_config",
      "defName": "群配置",
      "comment": "群配置表",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "ECBD7663-05B3-414F-BF4F-35D93B5C0994"
        },
        {
          "defKey": "g_id",
          "defName": "主表id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "AAC84D80-7F08-4B1B-A9BD-3AB8F4C93B9C"
        },
        {
          "defKey": "g_admin_add_mbr",
          "defName": "仅群主和管理员可添加成员，0：否 1：是仅群主和管理员可添加成员",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "1E7EE871-C615-45C0-B34F-BB650DF32AEC"
        },
        {
          "defKey": "g_in_qr_allow",
          "defName": "允许通过二维码入群",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "9A3A12E1-457C-4AEC-BB34-F4C2C8361D60"
        },
        {
          "defKey": "g_applied",
          "defName": "入群须申请并审核",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "4FA090CB-AD67-400E-9C63-32C72F296FA9"
        },
        {
          "defKey": "g_anon_chat_allow",
          "defName": "允许匿名聊天",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "2611592D-70DA-4E29-AA45-DD07B26C73BD"
        },
        {
          "defKey": "g_gl_ga_notice",
          "defName": "仅群主和管理员可@所有人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "575C1D8E-BBFD-45B3-BE97-463D6E9EB37C"
        },
        {
          "defKey": "g_mbr_chat_",
          "defName": "禁止群成员聊天",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "2C50D19C-1F54-4C4E-8FA1-61DDD72107F5"
        },
        {
          "defKey": "g_mbr_chat_ban",
          "defName": "全员禁言",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "6E06CC05-5DBE-4324-80E8-F87A86B86A53"
        },
        {
          "defKey": "g_mbr_ac",
          "defName": "群成员可发起语音通话",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "73CA5ADE-5137-4F73-9D86-69B390900A2C"
        },
        {
          "defKey": "g_mbr_vc",
          "defName": "群成员可发起视频通话",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "96E5DBB9-C671-41ED-9043-11D4B144422D"
        },
        {
          "defKey": "g_admin_num",
          "defName": "群管理员的数量",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "5",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "2378A262-6C5F-4D8E-A919-04090E7678F9"
        },
        {
          "defKey": "g_num",
          "defName": "群数量",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "50",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "C41BE832-489A-46D5-AB0F-95A42EDDA152"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "F7D9716E-B657-436C-AC9B-4E198CFD45C0"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "31F7C990-4DAF-43AD-A545-C63B72FDCEAD"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "F7B2F34C-77D3-4C4E-972E-94057BE75DBF",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_recent_session",
      "defName": "会话表",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "rs_id",
          "defName": "会话id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "241ABF8E-06C0-43F6-9FA6-23E192CA9C16"
        },
        {
          "defKey": "rs_unread",
          "defName": "会话未读数",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "426B2BE7-9CBC-4416-8692-3701D1F28104"
        },
        {
          "defKey": "b_id",
          "defName": "分组id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "0B038A57-CE16-4073-AB84-B104B96D4B0F"
        },
        {
          "defKey": "msg_id",
          "defName": "最新聊天id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "138FE9C6-D5CA-4C4F-B44C-73AEF4EE2158"
        },
        {
          "defKey": "c_nd_add",
          "defName": "对方节点地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "CAD1F0E3-FF67-430C-8980-6B3299A5FDF4"
        },
        {
          "defKey": "c_id",
          "defName": "对方id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "2F524266-5D86-4850-B553-08F091765685"
        },
        {
          "defKey": "rs_type",
          "defName": "会话类型",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "6C7812A0-3096-4FE2-B4A7-C297739FA692",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "1ED41B83-E273-4A6A-AD14-CDBD6E72D383"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "479FE0C2-AE7E-4CF2-9264-31DB2577B189"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "4BAFCCA0-0042-4F28-8A53-EA249F09BE6F"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "DCE35F13-F51B-4BA0-BBC3-EF4DEF679DE3",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_message",
      "defName": "聊天记录表",
      "comment": "注意⚠️ content：不是自己发送的消息，并且是群聊，才会带有发信人id标记。",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "msg_id",
          "defName": "消息idhash",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "refDict": "",
          "uiHint": "",
          "id": "B2EFBAE5-F8C9-4D3A-9E0F-6EBBB55E4200"
        },
        {
          "defKey": "rs_id",
          "defName": "会话id，来源会话表",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "0DAE0979-853B-484B-B1F0-E1131131BBE4"
        },
        {
          "defKey": "msg_type",
          "defName": "消息类型",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "F914F78D-455A-40C2-857E-D8B126C77D3A",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "29F0AD7F-59DD-4F86-B2EE-4F393B812B36"
        },
        {
          "defKey": "msg_source",
          "defName": "消息发送者 0：自己；1：对方",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "E7BC8465-6F19-4946-A4A9-74FF58A8CE6B"
        },
        {
          "defKey": "msg_cry",
          "defName": "消息内容（text）",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "F5940B24-3CB6-4806-B318-6567A84CA3E9"
        },
        {
          "defKey": "msg_is_send",
          "defName": "消息发送状态 0：发送中 1：成功  2：失败",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "5147BA02-2C6C-4826-91D4-2EC70C3D2F3B",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "54A7449B-612C-4953-9348-84BD2726F359"
        },
        {
          "defKey": "msg_state",
          "defName": "消息状态，1：未读 2：已读",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "1",
          "hideInGraph": false,
          "refDict": "FD58DE1C-B908-4B6F-A066-78B61C631EDB",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "97E28457-0CA3-4105-B510-DA9389406624"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间，消息发送时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "12BAA9B7-735F-4F9D-8FEB-69B3D4FF0A3B"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "888AF935-531D-4549-BFFD-B05361BE8E68"
        }
      ],
      "correlations": [],
      "indexes": [
        {
          "defKey": "MSG_ID_KEY",
          "defName": null,
          "unique": true,
          "comment": "",
          "fields": [
            {
              "fieldDefKey": "B2EFBAE5-F8C9-4D3A-9E0F-6EBBB55E4200",
              "ascOrDesc": "A",
              "id": "DB3E640C-ACF8-4EB3-9086-7AC792EFCBF0"
            }
          ],
          "id": "2481C2DC-0292-43D4-99E7-7EAB56DFF600"
        },
        {
          "defKey": "MSG_TALKER_KEY",
          "defName": null,
          "unique": false,
          "comment": "",
          "fields": [],
          "id": "5745C45E-9129-46D2-990E-A681E4827CB3"
        }
      ]
    },
    {
      "id": "8ABC174B-8FA0-40CD-9E2E-875B14C99B56",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_log",
      "defName": "日志表",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "lg_id",
          "defName": "id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "6FB5F7AE-AE11-4A14-A115-16E19208C6B4"
        },
        {
          "defKey": "lg_code",
          "defName": "日志代码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "80393A23-9DB5-4D4C-8284-196C60D20D9A"
        },
        {
          "defKey": "lg_type",
          "defName": "日志类型",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "6B3425DD-5252-43DA-9304-45DBFADF48E0"
        },
        {
          "defKey": "lg_cry",
          "defName": "日志内容",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "8057353D-2A46-4BCF-95D5-029003633E85"
        },
        {
          "defKey": "lg_state",
          "defName": "日志状态，0：未上报   1：上报",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "975E5684-FE7A-45F8-ACBC-FE4AA29AAD4F"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "39CD9889-B3BE-48FD-8287-14B48F02AE61"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "18BD1429-129A-4EFC-B618-CC2D73C32984"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "2DABC31F-369A-4866-96D9-0B2B4EBCC451",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_favorite",
      "defName": "收藏表",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "f_id",
          "defName": "主键id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "0F64E44E-485D-4FE2-863D-F2CC25F5FCF3"
        },
        {
          "defKey": "msg_id",
          "defName": "消息id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "4AC8BD71-3DE3-4A22-B906-3A484C84DCEE"
        },
        {
          "defKey": "f_type",
          "defName": "收藏类型，1:视频或图片  2:文本  3:链接  4:文件  5:语音  6:名片",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "81D3716B-E4CB-4435-AD8A-C9186D7CE2F1",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "12CA5AD7-4DCB-4E00-A745-12DC83965020"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "C427BC30-5451-4578-810E-1942338352C6"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "80451949-38BE-483A-8EE5-430FB49CB87C"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "9B769ABD-765B-41A9-BB07-159F9D771D19",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_role",
      "defName": "角色表",
      "comment": "角色表  初始化三个角色（所有者、管理员、普通）",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "freeze": true,
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "freeze": false,
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true,
          "freeze": false
        }
      ],
      "fields": [
        {
          "defKey": "r_id",
          "defName": "角色ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "28151F86-F582-43C2-9D13-63DBFD074E07"
        },
        {
          "defKey": "r_name",
          "defName": "角色名称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "EAF50758-7AB1-4E1B-A0DF-D3382CCA4B73"
        },
        {
          "defKey": "r_code",
          "defName": "角色码",
          "comment": "",
          "type": "TEXT",
          "len": 10,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "FFD34AB1-8E61-4FD6-99FA-7F91CBF5B588",
          "domain": "",
          "id": "0B8EFAC4-C3E0-4DFC-BE96-F77758CA73D7"
        },
        {
          "defKey": "r_parent_id",
          "defName": "父角色ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "6A67AC16-2F89-4B78-A872-5160D019E39E"
        },
        {
          "defKey": "r_cry",
          "defName": "角色权限集合，例如：{shName:1,gadminAddMbr:0}",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "2B3E07D1-DB09-4109-AE98-ABBDBF24531E"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "2EA32591-179F-4920-BB4A-A7AF6FDDB2EB"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "395BAEFA-6404-4F5D-95C7-025577806F29"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "1CE7EF7D-360E-4122-95B4-E768B965FB7E",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_apply_list",
      "defName": "好友申请列表",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "al_id",
          "defName": "id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "ADF022C6-A8FC-4AFA-8872-6771A2D28AF2"
        },
        {
          "defKey": "b_id",
          "defName": "分组id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "C618EBB6-79E0-41CF-A34D-21174983F0F1"
        },
        {
          "defKey": "al_state",
          "defName": "状态 1：已添加 2：申请中  3：无效地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "3F50232D-D178-4EF8-A508-2B9382782BAC",
          "extProps": {},
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "C68DE823-D382-42F1-BA9E-85A0FB6B13EE"
        },
        {
          "defKey": "al_src",
          "defName": "申请来源 0：发送  1：接收",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": true,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "extProps": {},
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "4856EC96-8F06-4A82-98A5-506AF4D9ECF1"
        },
        {
          "defKey": "al_remark",
          "defName": "备注消息",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "3B8D5CDF-DE0C-4879-B059-5D323605E3B9"
        },
        {
          "defKey": "c_nd_add",
          "defName": "对方节点地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "9832F209-83D0-4EE6-8E7A-1B9DF1547E0A"
        },
        {
          "defKey": "created_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "8474AAD0-CF13-448B-92B2-4AE194F7E321"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "73BBAB20-B7D6-45F2-9AB0-A4FC19FC8D0C"
        }
      ],
      "correlations": [],
      "indexes": []
    },
    {
      "id": "A1CE5C50-3AF8-4AB7-9F08-039072E0CD11",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "t_report_record",
      "defName": "上报记录表",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "rr_id",
          "defName": "id",
          "comment": "",
          "type": "",
          "len": 32,
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "uiHint": "",
          "id": "8CD92349-2A12-40A3-B775-5291072629B8"
        },
        {
          "defKey": "rr_state",
          "defName": "上报状态 0：失败 1：成功",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
          "extProps": {},
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "B0C627C9-D146-48DF-9F58-649ACDEB45E3"
        },
        {
          "defKey": "rr_retry_num",
          "defName": "重试次数",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "FCCA5197-0ACB-41B0-A6B8-042D6508337B"
        },
        {
          "defKey": "rr_type",
          "defName": "上报类型",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "2E7F5CEB-9B47-43DD-B2B1-9DFDAC320B67",
          "extProps": {},
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "7DCAC0DB-512A-4FF0-A376-03318AA51B63"
        },
        {
          "defKey": "rr_url",
          "defName": "上报地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "extProps": {},
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "BF3232A1-8292-4753-9916-98C6E20CF15D"
        },
        {
          "defKey": "created_time",
          "defName": "上报时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "uiHint": "",
          "id": "3CCD40F0-0BBB-457A-B810-B572D51B6AC4"
        },
        {
          "defKey": "updated_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "4B66865D-B8FE-4B20-AC53-8D204AF5EE4F"
        }
      ],
      "correlations": [],
      "indexes": []
    }
  ],
  "views": [
    {
      "id": "DE2D9838-3192-43CA-BA0C-7C29995B75F4",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "USER_INFO",
      "defName": "个人用户信息",
      "comment": "",
      "properties": {},
      "nameTemplate": "{defKey}[{defName}]",
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "hideInGraph": false
        },
        {
          "refKey": "refEntity",
          "hideInGraph": true
        },
        {
          "refKey": "defName",
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "USER_ID",
          "defName": "用户id",
          "comment": "用户id",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "refDict": "",
          "uiHint": "",
          "id": "C726BA8F-0AAC-47D3-9F63-6FE39B4147C7",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "ACFD71D8-3CF8-4FB3-A335-4BFE320A4136"
        },
        {
          "defKey": "NICK_NAME",
          "defName": "昵称",
          "comment": "个人昵称，初始化时自动生成",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "3CF3EDA7-CD47-462D-8053-24199A114584",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "5D3A8C2F-200A-4132-852C-105516DD3127"
        },
        {
          "defKey": "NODE_ADDRESS",
          "defName": "节点地址",
          "comment": "个人节点地址",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "6B510844-FDB7-4AA5-B0E4-D896C8D7C97D",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "97CAEF90-E255-4B55-845E-BDEDB0D26770"
        },
        {
          "defKey": "AVATAR",
          "defName": "头像Base64",
          "comment": "头像",
          "type": "二进制",
          "len": 900,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "",
          "id": "79B3DB81-CE53-453E-8ACF-E7B33528375D",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "2330F1CC-93FD-4B4D-83BE-2509F89B4CCE"
        },
        {
          "defKey": "AVATAR_URL",
          "defName": "头像URL",
          "comment": "个人头像URL",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "F3AEA152-3D25-4F14-B16C-C12E17B7AFE6",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "A94945B6-8087-4133-977A-FC4F8E47474A"
        },
        {
          "defKey": "IP",
          "defName": "ip地址",
          "comment": "个人ip地址",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "4F6AEA9A-CC2E-4AC7-A233-8C3F03472F92",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "8FC3176B-0B10-46FC-B60B-DE4D03434E9E"
        },
        {
          "defKey": "ANONYMOUS_PASSWORD",
          "defName": "匿名密码",
          "comment": "匿名用户时候生成的密码",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "3E948CEC-3070-472C-AF92-F3CA11EC9D15",
          "id": "EBBC79CE-F35F-467D-8263-B338A419A9F8",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "4FAD50F1-3282-4128-BC27-31403ED58919"
        },
        {
          "defKey": "MAX_BOLCKS",
          "defName": "最大分组数量",
          "comment": "用户默认的最大分组数量，默认3",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "3",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "31B7C5A9-8903-4BDF-B007-CE29E4397915",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "12791957-C031-4F9B-B07B-2EE4D09DDA82"
        },
        {
          "defKey": "CREATED_TIME",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "87C5FE23-A1DA-4A0C-B0DC-AEF43D59F432",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "0EF7D3E0-2A5C-4DF7-A993-73A7F6A3120F"
        },
        {
          "defKey": "UPDATED_TIME",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "12F136A9-E720-4973-857F-5A184C079528",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "CAC740D4-F42A-4215-B93C-10F8814C0123"
        },
        {
          "defKey": "MAX_GROUP_MEMBERS",
          "defName": "群成员最大数量",
          "comment": "用户默认的最大群成员数量，默认50",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "50",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "447FB409-075B-495A-BECA-E7AF86BB4D65",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "0E6219AF-4C2B-4A21-B86C-0AAA32E86589"
        },
        {
          "defKey": "MAX_GROUP_VEDIO_MEMBERS",
          "defName": "群成员最大视频通话数量",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "E86F6BDC-FE70-4A8C-A27E-BA0B7025896F",
          "refEntity": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
          "refEntityField": "B6D38D6F-CF4E-4C11-8ADB-E0164970C279"
        },
        {
          "defKey": "SHOW_NICK_NAME",
          "defName": "是否显示昵称",
          "comment": "默认不显示   0：不显示  1：显示",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "BF8445A5-0A28-4814-AF94-78575EEDEA98",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "4B1A547E-9A68-478C-B442-ECC527FA6976"
        },
        {
          "defKey": "RECEVIE_AUDIO_VIDEO_INVITATION_NOTIFYI",
          "defName": "接收语音和视频通话邀请通知",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "5D76EA8F-79D2-49F8-B2DF-DEC793C68F95",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "60FA69CC-6221-4F9F-B298-00EFCA6C227B"
        },
        {
          "defKey": "RECEVIE_NEW_MESSAGE_NOTIFY",
          "defName": "接收新消息通知",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "11DF4435-0B79-4F62-89DF-B7C17A732F19",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "81943A1A-8928-43ED-8C5E-CEA56433F8FD"
        },
        {
          "defKey": "SHOW_LAST_ONLINE_TIME",
          "defName": "显示最后在线时间",
          "comment": "默认不显示   0：不显示  1：显示",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "CFF76740-820B-418E-AFF6-4B1100AE58D6",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "1EF01E6A-1525-4B8A-A764-54BF36C2F8D1"
        },
        {
          "defKey": "USE_MOBILE_DATA",
          "defName": "使用移动数据时",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "A3F52AD0-5CAC-4C74-BF6A-05682C2023B7",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "54F7DE85-6EBB-4F24-89FD-65C8E5D1F7BE"
        },
        {
          "defKey": "USE_WIFI_DATA",
          "defName": "使用wifi数据时",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "977EF1F6-56AF-4409-AF9C-0B1C21FFD18A",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "492B267D-695A-42FA-A9B4-54EA77ED0E1B"
        },
        {
          "defKey": "NOTIFY_AUDIO_VIDEO_INVITATION_RING_TONE",
          "defName": "语音和视频通话铃声",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "CADB586A-6F64-4D7B-A473-BBE7F70DC7A5",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "93A5116D-0147-4A90-B0D3-5C59D0069D84"
        },
        {
          "defKey": "NOTIFY_AUDIO_VIDEO_INVITATION_SHOCK",
          "defName": "语音和视频通话震动",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "E342F516-BB9A-4054-A1F5-52601F311FA4",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "D6DB7A05-540D-4FF1-A8C6-5460CB448A77"
        },
        {
          "defKey": "NEW_MESSAGE_RING_TONE",
          "defName": "新信息铃声",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "26AACD32-FAB7-4E4A-9FCB-0B251AECB091",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "88884BDD-2F4C-4A89-8AEE-307393C74312"
        },
        {
          "defKey": "NEW_MESSAGE_SHOCK",
          "defName": "新消息震动",
          "comment": "默认不使用   0：不使用  1：使用",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "id": "365CDB70-7960-49D8-AF66-A64E3C51D550",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "86C77574-71AE-4215-AD6E-EDF62B369431"
        },
        {
          "defKey": "LANG",
          "defName": "语言",
          "comment": "默认 0   {0：跟随系统，1：简体中文，2：繁体中文，3：英文}",
          "type": "TEXT",
          "len": 1,
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "0",
          "hideInGraph": true,
          "refDict": "",
          "domain": "",
          "id": "EF306995-8FFE-4AA3-8905-280CD9768319",
          "refEntity": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
          "refEntityField": "F7DB620F-8AE8-4768-BE28-84712D0C5BFE"
        },
        {
          "defKey": "APP_VERSION",
          "defName": "App版本号",
          "comment": "App版本号",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "E0B536C0-43F4-45DF-8B71-0608DE470C52",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "FACBD9EA-D827-4591-A8DB-CC820EDBE813"
        },
        {
          "defKey": "APP_UPDATE_URL",
          "defName": "App更新地址",
          "comment": "App更新地址",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "B14E7A3D-07CA-4623-B15B-34632A7FB047",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "7AF22FAD-DFDF-4647-8969-70B53553DF5F"
        },
        {
          "defKey": "APP_SYSTEM",
          "defName": "系统版本",
          "comment": "1：IOS 2：Android 3：鸿蒙",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "2C393B7A-16CD-4756-8876-98A6EE046619",
          "id": "BECF7CBE-E389-463F-BD31-907CC449A535",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "BD234214-699F-4AD4-AD91-ED90FDBBF9DE"
        },
        {
          "defKey": "APP_REPORTING_ADDRESS",
          "defName": "App上报地址",
          "comment": "App上报地址",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "F0CB97E4-F1BC-46B4-85C9-D43EEC3058BC",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "B9DCD2ED-5683-4DCB-85DF-C50B4609DBD0"
        },
        {
          "defKey": "APP_ERRO_REPORTING_ADDRESS",
          "defName": "App错误上报地址",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "1E736179-883B-4721-97E0-4E478662DAA8",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "D4E830AA-A4C1-4EE6-BC1D-BEA57E736302"
        },
        {
          "defKey": "APP_ID",
          "defName": "AppID",
          "comment": "用于多环境测试：1：生产环境  2：开发环境  3：测试环境",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "2",
          "hideInGraph": false,
          "refDict": "",
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "96E4A2DD-A434-43BD-BBC7-1BEAD3DCC305",
          "refEntity": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
          "refEntityField": "7DA751BC-AD46-4D89-A83C-B2AC22173D2D"
        }
      ],
      "correlations": [],
      "indexes": [],
      "refEntities": [
        "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
        "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
        "BE110446-DA56-44E2-A8E7-7EE834442EC8"
      ]
    }
  ],
  "dicts": [
    {
      "defKey": "Boole",
      "defName": "布尔类型",
      "sort": "",
      "intro": "用于描述真或假（0：false 1：true）",
      "id": "A20A34F8-BCD5-4DB9-8CB0-4AF537BB8982",
      "items": [
        {
          "defKey": "0",
          "defName": "false",
          "sort": "",
          "parentKey": "",
          "intro": "假",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "3A5604B0-B048-4863-A28F-87E8D08862F2"
        },
        {
          "defKey": "1",
          "defName": "true",
          "sort": "",
          "parentKey": "",
          "intro": "真",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "F3654AD5-2AAA-43E3-B5E5-1ABC8AD6EBA4"
        }
      ]
    },
    {
      "defKey": "Language",
      "defName": "语言",
      "sort": "",
      "intro": "",
      "id": "796B600B-35E7-4770-BCE2-0737A91589D2",
      "items": [
        {
          "defKey": "0",
          "defName": "跟随系统",
          "sort": "1",
          "parentKey": "",
          "intro": "跟随系统",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "02238B46-EB6E-4A8F-9ED7-940EC3A2D799"
        },
        {
          "defKey": "1",
          "defName": "简体中文",
          "sort": "2",
          "parentKey": "",
          "intro": "简体中文",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "0C60FC1F-0F84-4023-A391-5A8DC88DCC46"
        },
        {
          "defKey": "2",
          "defName": "繁体中文",
          "sort": "3",
          "parentKey": "",
          "intro": "繁体中文",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "89BC0064-1D3B-46C9-A43E-62AC4237C409"
        },
        {
          "defKey": "3",
          "defName": "英文",
          "sort": "4",
          "parentKey": "",
          "intro": "英文",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "2736B1C5-077D-435D-BAD9-037127895195"
        }
      ]
    },
    {
      "defKey": "AppSystem",
      "defName": "系统",
      "sort": "",
      "intro": "区分客户端系统",
      "id": "6C2D6051-87D0-43CC-B522-6E5E6C85F0DC",
      "items": [
        {
          "defKey": "1",
          "defName": "IOS",
          "sort": "1",
          "parentKey": "",
          "intro": "苹果手机系统",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "AEE7AEE9-BA82-4CE6-8072-CDD418B60B99"
        },
        {
          "defKey": "2",
          "defName": "Android",
          "sort": "2",
          "parentKey": "",
          "intro": "安卓手机系统",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "57951EAD-C3E9-4F49-B407-FB8240A12670"
        },
        {
          "defKey": "3",
          "defName": "鸿蒙",
          "sort": "3",
          "parentKey": "",
          "intro": "鸿蒙手机系统",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "63E0279C-DB6F-44CF-B1A3-15053614C14C"
        }
      ]
    },
    {
      "defKey": "AppEvn",
      "defName": "app环境",
      "sort": "",
      "intro": "用于发版时区分环境",
      "id": "380767D2-6EFA-4E62-B26F-7352E645BD63",
      "items": [
        {
          "defKey": "1",
          "defName": "生产环境",
          "sort": "",
          "parentKey": "",
          "intro": "生产环境",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "17602246-8397-4A4F-8F5A-26ADE7D3D338"
        },
        {
          "defKey": "2",
          "defName": "开发环境",
          "sort": "",
          "parentKey": "",
          "intro": "开发环境",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "1339DF9A-C9C9-4FCC-B65F-A339754E9B10"
        },
        {
          "defKey": "3",
          "defName": "测试环境",
          "sort": "",
          "parentKey": "",
          "intro": "测试环境",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E8CF08C5-2C31-4D49-8D73-9467D85FA7CD"
        }
      ]
    },
    {
      "defKey": "MessageAgeing",
      "defName": "消息时效",
      "sort": "",
      "intro": "",
      "id": "0C5E4985-2190-4A55-B10B-71BA9ED7B5F9",
      "items": [
        {
          "defKey": "1",
          "defName": "阅后即焚",
          "sort": "1",
          "parentKey": "",
          "intro": "读完立刻删除，不存储记录",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "19608F80-70A4-4743-B352-F1F862A28D2B"
        },
        {
          "defKey": "2",
          "defName": "阅后15分钟",
          "sort": "2",
          "parentKey": "",
          "intro": "阅后15分钟，删除本地",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "99D81E02-6BE7-460C-AD90-9B314E88DBA1"
        },
        {
          "defKey": "3",
          "defName": "阅后2小时",
          "sort": "3",
          "parentKey": "",
          "intro": "阅后2小时，删除本地",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "BDA37618-14EA-42DC-8A40-2CFA3ACE37BB"
        },
        {
          "defKey": "4",
          "defName": "永久",
          "sort": "4",
          "parentKey": "",
          "intro": "永久",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "223FB891-7E2C-4079-9667-C3FBE6EE59C1"
        }
      ]
    },
    {
      "defKey": "TalkType",
      "defName": "聊天对象",
      "sort": "",
      "intro": "",
      "id": "6C7812A0-3096-4FE2-B4A7-C297739FA692",
      "items": [
        {
          "defKey": "1",
          "defName": "联系人",
          "sort": "1",
          "parentKey": "",
          "intro": "一对一聊天",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "F3912665-99B8-479C-93F2-661537B0882D"
        },
        {
          "defKey": "2",
          "defName": "群聊",
          "sort": "2",
          "parentKey": "",
          "intro": "一对多聊天",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E40C1B5D-4872-4200-9A3A-AB41B07B6CCA"
        },
        {
          "defKey": "3",
          "defName": "讨论组",
          "sort": "3",
          "parentKey": "",
          "intro": "一对多聊天",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "0B90ACB3-C5A6-40E6-B5CD-2F2028ED7D07"
        }
      ]
    },
    {
      "defKey": "MessageState",
      "defName": "消息状态",
      "sort": "",
      "intro": "",
      "id": "FD58DE1C-B908-4B6F-A066-78B61C631EDB",
      "items": [
        {
          "defKey": "1",
          "defName": "未读",
          "sort": "1",
          "parentKey": "",
          "intro": "未读",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "CCE90AD3-9ABC-4C81-AFC0-D67A5A90ED5B"
        },
        {
          "defKey": "2",
          "defName": "已读",
          "sort": "2",
          "parentKey": "",
          "intro": "已读",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "578084F0-5AD3-4D34-992A-09F0D1ECEB76"
        }
      ]
    },
    {
      "defKey": "FavouriteType",
      "defName": "收藏类型",
      "sort": "",
      "intro": "",
      "id": "81D3716B-E4CB-4435-AD8A-C9186D7CE2F1",
      "items": [
        {
          "defKey": "1",
          "defName": "视频或图片",
          "sort": "1",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "DD25836C-40A4-405F-A897-45DDDE8EDFBD"
        },
        {
          "defKey": "2",
          "defName": "文本",
          "sort": "2",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E14A70E4-6F3F-48E2-B7C8-ADFDAAC52734"
        },
        {
          "defKey": "3",
          "defName": "链接",
          "sort": "3",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "588889FF-0510-45B4-8D08-D2E1E66F47C0"
        },
        {
          "defKey": "4",
          "defName": "文件",
          "sort": "4",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "5EC7567E-FFFF-4E14-A419-C4355F7088B4"
        },
        {
          "defKey": "5",
          "defName": "语音",
          "sort": "5",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "1CE39DCE-A685-4074-BCCE-D990439AA60B"
        },
        {
          "defKey": "6",
          "defName": "名片",
          "sort": "6",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "BEC3CDA8-8AC5-4C68-AEE0-31CDDF7DB651"
        },
        {
          "defKey": "7",
          "defName": "地图",
          "sort": "7",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "DB886761-ACF0-4D84-89C5-A90D756A26ED"
        },
        {
          "defKey": "8",
          "defName": "其他",
          "sort": "8",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "9B9ECE2B-A8D5-4593-B65B-F27FE1B3B4EA"
        }
      ]
    },
    {
      "defKey": "RoleCode",
      "defName": "角色码字典",
      "sort": "",
      "intro": "",
      "id": "FFD34AB1-8E61-4FD6-99FA-7F91CBF5B588",
      "items": [
        {
          "defKey": "gor",
          "defName": "群拥有者",
          "sort": "1",
          "parentKey": "",
          "intro": "群拥有者、创始者",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "B9231207-EEB3-4D18-B0C0-C0232DA1A8F9"
        },
        {
          "defKey": "gad",
          "defName": "群管理员",
          "sort": "2",
          "parentKey": "",
          "intro": "群管理员",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "DBE1F221-9996-4C76-AAA7-B61A846D0C7C"
        },
        {
          "defKey": "nl",
          "defName": "群普通人员",
          "sort": "3",
          "parentKey": "",
          "intro": "正常、普通",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "19A1A32B-A4F0-4301-91B8-9B9187D327B4"
        },
        {
          "defKey": "vip",
          "defName": "vip角色码",
          "sort": "4",
          "parentKey": "",
          "intro": "vip",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "FDFFB5C4-3A74-407D-8F74-F3944EB981E8"
        }
      ]
    },
    {
      "defKey": "Portrait",
      "defName": "本地头像id",
      "sort": "",
      "intro": "",
      "id": "020BC238-5753-4D98-8E49-5065CEBA405D",
      "items": [
        {
          "defKey": "code1",
          "defName": "默认头像1",
          "sort": "1",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "ED90503D-80E8-450C-B492-8373C67772CE"
        },
        {
          "defKey": "code2",
          "defName": "默认头像2",
          "sort": "2",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "6E6C3B7A-BBD9-4E20-BE90-B9C71427F1D6"
        },
        {
          "defKey": "code3",
          "defName": "默认头像3",
          "sort": "3",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "20056542-5875-4F55-AA48-8DA5C8B36929"
        },
        {
          "defKey": "code4",
          "defName": "默认头像4",
          "sort": "4",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "A091FD81-D933-4118-AA20-F1CEDA7BE3B6"
        },
        {
          "defKey": "code5",
          "defName": "默认头像5",
          "sort": "5",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "8837D9F4-EB03-4632-9C44-E9EDAD6318FC"
        },
        {
          "defKey": "code6",
          "defName": "默认头像6",
          "sort": "6",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E5CB26F3-545A-4171-AE56-2C534620F4A4"
        }
      ]
    },
    {
      "defKey": "MessageType",
      "defName": "消息类型",
      "sort": "",
      "intro": "消息类型，类型 1：文字；2：emoji；3：音频；4：文件；6：位置；7：图片",
      "id": "F914F78D-455A-40C2-857E-D8B126C77D3A",
      "items": [
        {
          "defKey": "1",
          "defName": "文字",
          "sort": "1",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "0DD1D5E9-AAC2-4CC4-8EB1-0471284B36B3"
        },
        {
          "defKey": "3",
          "defName": "音频",
          "sort": "3",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "9268854E-3840-479F-A23F-AB6E5FCDA013"
        },
        {
          "defKey": "4",
          "defName": "视频",
          "sort": "4",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "1437D9DF-869A-4931-B3E1-EC6D30E9A495"
        },
        {
          "defKey": "5",
          "defName": "文件",
          "sort": "5",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "53091089-A6B3-4FD5-8D48-6100BBF11DD5"
        },
        {
          "defKey": "6",
          "defName": "图像",
          "sort": "6",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "1014725C-E00D-4E54-A137-95C5727742B6"
        },
        {
          "defKey": "7",
          "defName": "位置",
          "sort": "7",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "6304CEAF-B967-40A4-B7D9-4B4750CCBEA1"
        },
        {
          "defKey": "8",
          "defName": "自定义",
          "sort": "8",
          "parentKey": "",
          "intro": "后期扩展、如红包、口令等",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "BD940928-54E3-4B62-BE5E-D946EA952A58"
        },
        {
          "defKey": "9",
          "defName": "链接",
          "sort": "9",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "15FFEA95-8B31-4BC2-832B-58CCFC904A3F"
        },
        {
          "defKey": "10",
          "defName": "名片",
          "sort": "10",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "8A3F885C-C86F-4A7A-B980-364B8D90AFB4"
        },
        {
          "defKey": "11",
          "defName": "转发复合类型",
          "sort": "11",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "1BE9F60D-DA35-497A-A714-C164C8A2C932"
        }
      ]
    },
    {
      "defKey": "MessageBodyType",
      "defName": "消息体类型",
      "sort": "",
      "intro": "",
      "id": "E9D6338E-B477-4456-96C4-C46F6045E268",
      "items": [
        {
          "defKey": "10",
          "defName": "发送聊天消息",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "709D4A44-F4A1-4E90-A8EC-A77C62E4176C"
        },
        {
          "defKey": "11",
          "defName": "添加好友",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "EA2B43C4-8D30-4CEA-9E5D-C59DB4FD0758"
        },
        {
          "defKey": "12",
          "defName": "删除好友",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "FA09EEEE-2CFA-48E9-8DD4-F81EB08B92E8"
        },
        {
          "defKey": "13",
          "defName": "添加好友回执",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "44203570-7A6C-4888-B37D-CCD0F25D71DE"
        },
        {
          "defKey": "14",
          "defName": "删除好友回执",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "A3CCC3F6-0976-4678-99EB-804366AB2A3C"
        },
        {
          "defKey": "15",
          "defName": "好友关系上报",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "00052323-EB59-4AF5-8FB4-87BC654D1EE1"
        },
        {
          "defKey": "16",
          "defName": "日志信息上报",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "64CAC5BA-E015-4290-A3DA-0F7882BB53FA"
        },
        {
          "defKey": "17",
          "defName": "视频通话",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "A11D2301-5C48-45F7-A055-4C86A225699A"
        },
        {
          "defKey": "18",
          "defName": "语音通话",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "4A5E2300-CD1A-4ECC-9DF3-ED28768A8E51"
        }
      ]
    },
    {
      "defKey": "MessageSendType",
      "defName": "消息发送状态",
      "sort": "",
      "intro": "",
      "id": "5147BA02-2C6C-4826-91D4-2EC70C3D2F3B",
      "items": [
        {
          "defKey": "0",
          "defName": "发送中",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E5A6E5C5-2568-4FB8-AD36-AA9B6E974E80"
        },
        {
          "defKey": "1",
          "defName": "发送成功",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "7380C6FE-242A-4950-9407-44A8705D1990"
        },
        {
          "defKey": "2",
          "defName": "发送失败",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "F920AD70-F0F3-4879-A54B-38C802D66506"
        }
      ]
    },
    {
      "defKey": "ApplyState",
      "defName": "好友申请",
      "sort": "",
      "intro": "",
      "id": "3F50232D-D178-4EF8-A508-2B9382782BAC",
      "items": [
        {
          "defKey": "1",
          "defName": "已添加",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "8AB25FB8-437A-4A1D-A3F9-D0B891C5FD1A"
        },
        {
          "defKey": "2",
          "defName": "申请中",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "9D225F75-9DFE-4545-8A0C-69587F96A4D4"
        },
        {
          "defKey": "3",
          "defName": "无效地址",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "05A4F220-CD93-45A6-90FA-1B3AEC6DE4F3"
        }
      ]
    },
    {
      "defKey": "ContractState",
      "defName": "好友状态",
      "sort": "",
      "intro": "",
      "id": "B51AA4C2-2922-4335-A06D-52E170FC36A1",
      "items": [
        {
          "defKey": "0",
          "defName": "初始化",
          "sort": "",
          "parentKey": "",
          "intro": "存入数据库时，并且可能该好友不存在",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "EF595D99-E87A-4691-A739-CCC880C5FB1C"
        },
        {
          "defKey": "-1",
          "defName": "好友不存在",
          "sort": "",
          "parentKey": "",
          "intro": "好友不存",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "EDB6434B-B9F5-4862-A410-D799C8218660"
        },
        {
          "defKey": "1",
          "defName": "好友存在",
          "sort": "",
          "parentKey": "",
          "intro": "好友存在，好友申请未通过",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "4DF8F23E-D636-45EA-8CDC-60ABA8B23BDF"
        },
        {
          "defKey": "2",
          "defName": "好友状态",
          "sort": "",
          "parentKey": "",
          "intro": "好友状态，好友申请通过",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "E8EE4C23-5766-476C-A412-7CEEF027C7B8"
        }
      ]
    },
    {
      "defKey": "ReportType",
      "defName": "上报类型",
      "sort": "",
      "intro": "",
      "id": "2E7F5CEB-9B47-43DD-B2B1-9DFDAC320B67",
      "items": [
        {
          "defKey": "1",
          "defName": "日志上报",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "2F0ED8E4-FA82-4E8A-9552-79FB5B5DC996"
        },
        {
          "defKey": "2",
          "defName": "个人信息上报",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "5A263C15-BC52-46E7-98F2-46C72B9ED953"
        },
        {
          "defKey": "3",
          "defName": "好友关系上报",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "25CF4AFE-55F0-4C5D-A46C-A6DC058124C7"
        }
      ]
    }
  ],
  "viewGroups": [],
  "dataTypeMapping": {
    "referURL": "",
    "mappings": [
      {
        "defKey": "string",
        "defName": "字串",
        "id": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "VARCHAR",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "VARCHAR2",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "VARCHAR",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "VARCHAR",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "VARCHAR",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "VARCHAR2",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "VARCHAR",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "VARCHAR",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "STRING",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "TEXT",
        "797A1496-D649-4261-89B4-544132EC3F36": "String",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "string",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "string",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "String"
      },
      {
        "defKey": "double",
        "defName": "小数",
        "id": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "DECIMAL",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "DECIMAL",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "DECIMAL",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "NUMERIC",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "DECIMAL",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "DECIMAL",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "NUMERIC",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "NUMERIC",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "DOUBLE",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "REAL",
        "797A1496-D649-4261-89B4-544132EC3F36": "Double",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "Double",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Double",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "float",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "double",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "Double"
      },
      {
        "defKey": "int",
        "defName": "整数",
        "id": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "INT",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "INT",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "INT",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "INTEGER",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "INT",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "INTEGER",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "INTEGER",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "INT4",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "INT",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "INTEGER",
        "797A1496-D649-4261-89B4-544132EC3F36": "Integer",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "Integer",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Integer",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "float",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "int",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "Integer"
      },
      {
        "defKey": "date",
        "defName": "日期",
        "id": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "DATETIME",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "DATE",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "DATETIME",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "TIMESTAMP",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "DATE",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "DATE",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "DATE",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "DATE",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "DATETIME",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "NUMERIC",
        "797A1496-D649-4261-89B4-544132EC3F36": "Date",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "Date",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Date",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "date",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "timestamp",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "Date"
      },
      {
        "defKey": "bytes",
        "defName": "二进制",
        "id": "D516E75B-90F5-4741-B9B3-A186A263F04C",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "BLOB",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "BLOB",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "VARBINARY",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "BYTEA",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "BLOB",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "BLOB",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "BYTEA",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "BYTEA",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "BINARY",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "NONE",
        "797A1496-D649-4261-89B4-544132EC3F36": "byte[]",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "byte[]",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "byte[]",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "binary",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "binary",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "byte[]"
      },
      {
        "defKey": "largeText",
        "defName": "大文本",
        "id": "B17BDED3-085F-40E1-9019-3B79CF2BF075",
        "29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "TEXT",
        "A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "CLOB",
        "BFC87171-C74F-494A-B7C2-76B9C55FACC9": "TEXT",
        "DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "TEXT",
        "89504F5D-94BF-4C9E-8B2E-44F37305FED5": "CLOB",
        "0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "CLOB",
        "592C7013-143D-4E7B-AF64-0D7BF1E28230": "TEXT",
        "77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "TEXT",
        "11D1FB71-A587-4217-89BA-611B8A1F83E0": "STRING",
        "B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "TEXT",
        "797A1496-D649-4261-89B4-544132EC3F36": "String",
        "895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
        "A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String",
        "F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "string",
        "81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "string",
        "70ADF844-F9AA-44BF-9B62-531967421B5C": "String"
      }
    ]
  },
  "domains": [
    {
      "defKey": "DefaultString",
      "defName": "默认字串",
      "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
      "len": 255,
      "scale": "",
      "uiHint": "",
      "id": "9092C4E0-1A54-4859-ABBB-5B62DBC27573"
    },
    {
      "defKey": "IdOrKey",
      "defName": "主键标识",
      "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
      "len": 32,
      "scale": "",
      "uiHint": "",
      "id": "16120F75-6AA7-4483-868D-F07F511BB081"
    },
    {
      "defKey": "Name",
      "defName": "名称",
      "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
      "len": 90,
      "scale": "",
      "uiHint": "",
      "id": "54611CCC-CA4B-42E1-9F32-4944C85B85A6"
    },
    {
      "defKey": "Int",
      "defName": "整数",
      "applyFor": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
      "len": "",
      "scale": "",
      "uiHint": "",
      "id": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E"
    },
    {
      "defKey": "Double",
      "defName": "小数",
      "applyFor": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
      "len": 24,
      "scale": 6,
      "uiHint": "",
      "id": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4"
    },
    {
      "defKey": "Money",
      "defName": "金额",
      "applyFor": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
      "len": 24,
      "scale": 6,
      "uiHint": "",
      "id": "C3B1681B-99F9-4818-9E80-DE1652A51D85"
    },
    {
      "defKey": "DateTime",
      "defName": "日期时间",
      "applyFor": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
      "len": "",
      "scale": "",
      "uiHint": "",
      "id": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC"
    },
    {
      "defKey": "YesNo",
      "defName": "是否",
      "applyFor": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
      "len": 1,
      "scale": "",
      "uiHint": "",
      "id": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF"
    },
    {
      "defKey": "Dict",
      "defName": "数据字典",
      "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
      "len": "32",
      "scale": "",
      "uiHint": "",
      "id": "73FD2BAD-2358-4336-B96D-45DC897BD792"
    },
    {
      "defKey": "DescText",
      "defName": "描述文本",
      "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
      "len": "900",
      "scale": "",
      "uiHint": "",
      "id": "3E948CEC-3070-472C-AF92-F3CA11EC9D15"
    },
    {
      "defKey": "头像",
      "defName": "",
      "applyFor": "D516E75B-90F5-4741-B9B3-A186A263F04C",
      "len": "",
      "scale": "",
      "uiHint": "",
      "id": "F303D74A-E5F6-41A7-9412-447F94B801C9"
    },
    {
      "defKey": "枚举",
      "defName": "",
      "applyFor": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
      "len": "",
      "scale": "",
      "uiHint": "",
      "id": "2C393B7A-16CD-4756-8876-98A6EE046619"
    }
  ],
  "diagrams": [
    {
      "defKey": "USER",
      "defName": "个人信息相关逻辑",
      "relationType": "field",
      "canvasData": {
        "cells": [
          {
            "id": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "shape": "group",
            "position": {
              "x": -801,
              "y": 204.49999999999727
            },
            "label": "个人信息相关逻辑",
            "size": {
              "width": 540,
              "height": 620
            },
            "children": [
              "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "fee4a53e-a896-483f-a304-c01e672b9f84",
              "34bac8c2-113d-43ff-b6ed-636ae11d0876",
              "06970cad-e6c2-49f6-9330-0168cadf2a8a",
              "982c5b2f-6b1c-431e-9250-af51e303e4dd",
              "f3a7fc97-f895-405c-80f8-633fa71168ad",
              "cb977dd7-8ef3-4ae2-97a0-4b3ed778fc84",
              "bbe8e304-325d-405f-b793-70538386fe0d",
              "9a1f9732-b4ac-4059-9396-feb143769907",
              "e6cd82cd-0b8e-40a2-adb1-4ece1d7bcac5",
              "408244d5-3398-4dd2-aefb-f6363b471e39",
              "ffd737e7-42ff-4fc3-82ff-e5fb0a8b6eb6",
              "6da86e8d-57f2-4267-b423-644a9ff9ece6",
              "16c5dea8-6439-4427-9af0-0bbbb446a49f",
              "6f3b274e-e42e-4394-8c5c-eac8d9392963",
              "8a17cdce-249c-432c-9e27-779855cc8689",
              "656c8933-5b86-47cd-b39c-e8c784ba587f"
            ]
          },
          {
            "id": "c256f291-747d-48e4-99dd-9b9200aedbb1",
            "shape": "group",
            "position": {
              "x": -260.99999999999994,
              "y": 354.49999999999727
            },
            "label": "",
            "size": {
              "width": 960,
              "height": 320
            },
            "children": [
              "92556578-1ee8-4730-a915-9d930bf0aa54",
              "e311d3bb-4e78-4fb8-9ed8-c39c337bf60e",
              "f9ed9a63-dd5e-4803-a895-861134819307"
            ]
          },
          {
            "id": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "shape": "group",
            "position": {
              "x": -250,
              "y": -30
            },
            "label": "分组",
            "size": {
              "width": 240,
              "height": 320
            },
            "children": [
              "f2b89262-36c9-46ea-b77a-1dbf72ce98fa",
              "a703b078-a4f4-46f4-82ff-1d2ed888ba18",
              "1f6e6914-6487-4b8a-ae18-c4cf1c260f4c",
              "d707f918-72a0-4c84-9219-6945f22f3f9f",
              "a11b68f2-6624-4624-b479-becb36e6c8e3"
            ]
          },
          {
            "id": "f2b89262-36c9-46ea-b77a-1dbf72ce98fa",
            "shape": "edit-node",
            "position": {
              "x": -170,
              "y": -2.000000000000341
            },
            "label": "默认分组",
            "fillColor": "#ffd966",
            "parent": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "a703b078-a4f4-46f4-82ff-1d2ed888ba18",
            "shape": "edit-node",
            "position": {
              "x": -170,
              "y": 69.99999999999966
            },
            "label": "分组1",
            "fillColor": "#ffd966",
            "parent": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "1f6e6914-6487-4b8a-ae18-c4cf1c260f4c",
            "shape": "edit-node",
            "position": {
              "x": -170,
              "y": 146.99999999999966
            },
            "label": "分组2",
            "fillColor": "#ffd966",
            "parent": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "d707f918-72a0-4c84-9219-6945f22f3f9f",
            "shape": "edit-node",
            "position": {
              "x": -170,
              "y": 218.99999999999966
            },
            "label": "分组...",
            "fillColor": "#ffd966",
            "parent": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "cb977dd7-8ef3-4ae2-97a0-4b3ed778fc84",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 603.4999999999866
            },
            "label": "联系人",
            "fillColor": "#c2ff66",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
            "shape": "edit-node",
            "position": {
              "x": -750.9999999999943,
              "y": 294.4999999999866
            },
            "label": "个人",
            "fillColor": "#fa5a5a",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "34bac8c2-113d-43ff-b6ed-636ae11d0876",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 304.4999999999866
            },
            "label": "App系统配置",
            "fillColor": "#6698cc",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "06970cad-e6c2-49f6-9330-0168cadf2a8a",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 524.4999999999889
            },
            "label": "聊天记录",
            "fillColor": "#66cc8c",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "9a1f9732-b4ac-4059-9396-feb143769907",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 744.4999999999866
            },
            "label": "收藏",
            "fillColor": "#d6b2d0",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "bbe8e304-325d-405f-b793-70538386fe0d",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 674.4999999999964
            },
            "label": "日志",
            "fillColor": "#a06dc5",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "f3a7fc97-f895-405c-80f8-633fa71168ad",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 451.4999999999866
            },
            "label": "分组",
            "fillColor": "#ffd966",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "eda96cea-b6ec-45cf-8430-60521ffaf61d",
            "shape": "erdRelation",
            "source": {
              "cell": "6251d2c6-2bec-4ede-8ba4-af7a4ade937d",
              "port": "out2"
            },
            "target": {
              "cell": "a11b68f2-6624-4624-b479-becb36e6c8e3",
              "port": "in2"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "f9ed9a63-dd5e-4803-a895-861134819307",
            "shape": "erdRelation",
            "source": {
              "cell": "92556578-1ee8-4730-a915-9d930bf0aa54",
              "port": "97CAEF90-E255-4B55-845E-BDEDB0D26770%out"
            },
            "target": {
              "cell": "e311d3bb-4e78-4fb8-9ed8-c39c337bf60e",
              "port": "17C90992-7EA1-407B-B29A-4BB3480B3D0F%in"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "c256f291-747d-48e4-99dd-9b9200aedbb1"
          },
          {
            "id": "e6cd82cd-0b8e-40a2-adb1-4ece1d7bcac5",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "fee4a53e-a896-483f-a304-c01e672b9f84",
              "port": "in2"
            },
            "relation": "1:1",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "408244d5-3398-4dd2-aefb-f6363b471e39",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "34bac8c2-113d-43ff-b6ed-636ae11d0876",
              "port": "in2"
            },
            "relation": "1:1",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "ffd737e7-42ff-4fc3-82ff-e5fb0a8b6eb6",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "06970cad-e6c2-49f6-9330-0168cadf2a8a",
              "port": "in2"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": -579.9999999999945,
                "y": 334.4999999999866
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "6da86e8d-57f2-4267-b423-644a9ff9ece6",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "982c5b2f-6b1c-431e-9250-af51e303e4dd",
              "port": "in2"
            },
            "relation": "1:1",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "16c5dea8-6439-4427-9af0-0bbbb446a49f",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "f3a7fc97-f895-405c-80f8-633fa71168ad",
              "port": "in2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "6f3b274e-e42e-4394-8c5c-eac8d9392963",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "cb977dd7-8ef3-4ae2-97a0-4b3ed778fc84",
              "port": "in2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "8a17cdce-249c-432c-9e27-779855cc8689",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "bbe8e304-325d-405f-b793-70538386fe0d",
              "port": "in2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "656c8933-5b86-47cd-b39c-e8c784ba587f",
            "shape": "erdRelation",
            "source": {
              "cell": "f764e257-0cdc-43d9-9379-a746c0cb4db5",
              "port": "out2"
            },
            "target": {
              "cell": "9a1f9732-b4ac-4059-9396-feb143769907",
              "port": "in2"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": -579.9999999999945,
                "y": 484.4999999999866
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d"
          },
          {
            "id": "a11b68f2-6624-4624-b479-becb36e6c8e3",
            "shape": "edit-node",
            "position": {
              "x": -250,
              "y": -30
            },
            "label": "",
            "parent": "9d9e7ae1-0ef2-4a13-8b3a-3b9f6822dc92",
            "size": {
              "width": 80,
              "height": 320
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "87e738c6-d764-46a2-b122-c259024213e2",
            "shape": "edit-node",
            "position": {
              "x": -711,
              "y": -2.000000000000341
            },
            "label": "用户初始化时，所有联系人以及未做任何自定义分组之前，整体为默认分组",
            "fillColor": "#bfbfbf",
            "size": {
              "width": 450,
              "height": 60
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "6251d2c6-2bec-4ede-8ba4-af7a4ade937d",
            "shape": "edit-node",
            "position": {
              "x": -711,
              "y": 100
            },
            "label": "个人",
            "fillColor": "#fa5a5a",
            "parent": "cb0ac97e-9855-4f15-8048-d3ca00cbef9d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "fee4a53e-a896-483f-a304-c01e672b9f84",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 234.49999999998658
            },
            "label": "用户状态",
            "fillColor": "#9acc98",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "982c5b2f-6b1c-431e-9250-af51e303e4dd",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999945,
              "y": 381.4999999999866
            },
            "label": "开关表",
            "fillColor": "#cc6694",
            "parent": "89fd5ca1-581b-439d-8c0d-83ef09b9ca4d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "e311d3bb-4e78-4fb8-9ed8-c39c337bf60e",
            "shape": "table",
            "position": {
              "x": 379.0000000000008,
              "y": 475.9999999999945
            },
            "count": 0,
            "originKey": "F37CFE1E-F41A-40ED-9CFC-496C82F8B067",
            "parent": "c256f291-747d-48e4-99dd-9b9200aedbb1"
          },
          {
            "id": "92556578-1ee8-4730-a915-9d930bf0aa54",
            "shape": "table",
            "position": {
              "x": -221.9999999999992,
              "y": 382.4999999999972
            },
            "count": 0,
            "originKey": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
            "parent": "c256f291-747d-48e4-99dd-9b9200aedbb1"
          }
        ]
      },
      "id": "A521045B-BC84-498F-BBB3-DACB49213312"
    },
    {
      "defKey": "USER_USERSET_APPSYSTEM",
      "defName": "个人信息、个人状态、App系统配置关系",
      "relationType": "field",
      "canvasData": {
        "cells": [
          {
            "id": "373cf72d-5f2d-4bac-b181-3d670b83c8e6",
            "shape": "group",
            "position": {
              "x": -580.0000000000026,
              "y": 20.000000000005116
            },
            "label": "",
            "size": {
              "width": 1320,
              "height": 640
            },
            "children": [
              "4f1ed772-c5ec-4032-9225-697414af7f5b",
              "a0320185-2bbc-4bc6-a1d2-61dbd372d1cb",
              "2c024006-dc65-4348-a3ea-088909906882",
              "748be5e6-b33a-4f8b-94be-b429b5404593",
              "a3169b48-da0c-4042-b841-dd5de30d7822"
            ]
          },
          {
            "id": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "shape": "group",
            "position": {
              "x": -580,
              "y": -240
            },
            "label": "个人信息、个人状态、App系统配置关系",
            "size": {
              "width": 380,
              "height": 230
            },
            "children": [
              "5a88ecbd-5f81-4160-863a-0c05be930a4a",
              "26c67d97-224f-44f8-9e6c-e38650bcbb1a",
              "061f90b3-04b7-439e-a929-bd434d95d983",
              "e3499851-693a-43b1-9de0-b815296a93f3",
              "2e0cb9b9-01cd-4971-8ed1-6dad9ee0c13a"
            ]
          },
          {
            "id": "e3499851-693a-43b1-9de0-b815296a93f3",
            "shape": "erdRelation",
            "source": {
              "cell": "5a88ecbd-5f81-4160-863a-0c05be930a4a",
              "port": "out2"
            },
            "target": {
              "cell": "26c67d97-224f-44f8-9e6c-e38650bcbb1a",
              "port": "in2"
            },
            "relation": "1:1",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "2e0cb9b9-01cd-4971-8ed1-6dad9ee0c13a",
            "shape": "erdRelation",
            "source": {
              "cell": "5a88ecbd-5f81-4160-863a-0c05be930a4a",
              "port": "out2"
            },
            "target": {
              "cell": "061f90b3-04b7-439e-a929-bd434d95d983",
              "port": "in2"
            },
            "relation": "1:1",
            "vertices": [
              {
                "x": -419.9999999999992,
                "y": -120.00000000000223
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "748be5e6-b33a-4f8b-94be-b429b5404593",
            "shape": "erdRelation",
            "source": {
              "cell": "4f1ed772-c5ec-4032-9225-697414af7f5b",
              "port": "ACFD71D8-3CF8-4FB3-A335-4BFE320A4136%out"
            },
            "target": {
              "cell": "a0320185-2bbc-4bc6-a1d2-61dbd372d1cb",
              "port": "51BC1783-34C6-47B6-91B2-6F985384E728%in"
            },
            "relation": "1:1",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "373cf72d-5f2d-4bac-b181-3d670b83c8e6",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "a3169b48-da0c-4042-b841-dd5de30d7822",
            "shape": "erdRelation",
            "source": {
              "cell": "4f1ed772-c5ec-4032-9225-697414af7f5b",
              "port": "ACFD71D8-3CF8-4FB3-A335-4BFE320A4136%out"
            },
            "target": {
              "cell": "2c024006-dc65-4348-a3ea-088909906882",
              "port": "DB598B47-35E0-4D29-85F9-66E21A1CF61F%in"
            },
            "relation": "1:1",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "373cf72d-5f2d-4bac-b181-3d670b83c8e6",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "061f90b3-04b7-439e-a929-bd434d95d983",
            "shape": "edit-node",
            "position": {
              "x": -339.9999999999992,
              "y": -90.00000000000219
            },
            "label": "app系统配置",
            "fillColor": "#f8cbad",
            "parent": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "26c67d97-224f-44f8-9e6c-e38650bcbb1a",
            "shape": "edit-node",
            "position": {
              "x": -339.9999999999992,
              "y": -190.0000000000022
            },
            "label": "用户设置状态",
            "fillColor": "#ffd966",
            "parent": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "5a88ecbd-5f81-4160-863a-0c05be930a4a",
            "shape": "edit-node",
            "position": {
              "x": -559.9999999999992,
              "y": -150.0000000000022
            },
            "label": "个人信息",
            "fillColor": "#fa5a5a",
            "parent": "81d3bb89-f27c-4f46-85b0-0e42ca5a0e10",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "2c024006-dc65-4348-a3ea-088909906882",
            "shape": "table",
            "position": {
              "x": 100,
              "y": 450
            },
            "count": 0,
            "originKey": "BE110446-DA56-44E2-A8E7-7EE834442EC8",
            "parent": "373cf72d-5f2d-4bac-b181-3d670b83c8e6"
          },
          {
            "id": "a0320185-2bbc-4bc6-a1d2-61dbd372d1cb",
            "shape": "table",
            "position": {
              "x": 70,
              "y": 40
            },
            "count": 0,
            "originKey": "6A18B2CE-A628-4F9E-AEFF-EBA01540238B",
            "parent": "373cf72d-5f2d-4bac-b181-3d670b83c8e6"
          },
          {
            "id": "4f1ed772-c5ec-4032-9225-697414af7f5b",
            "shape": "table",
            "position": {
              "x": -560.9999999999999,
              "y": 109.99999999999997
            },
            "count": 0,
            "originKey": "1AC6D968-D49C-401B-A5A7-73AEEEAFB18C",
            "parent": "373cf72d-5f2d-4bac-b181-3d670b83c8e6"
          }
        ]
      },
      "id": "37FE4CDF-5A7C-43CC-9801-D69532281920"
    },
    {
      "defKey": "BLOCK_GROUP_CONTACT",
      "defName": "分组、群、联系人关系",
      "relationType": "entity",
      "canvasData": {
        "cells": [
          {
            "id": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "shape": "group",
            "position": {
              "x": -394.00000000000296,
              "y": -308.00000000000244
            },
            "label": "",
            "size": {
              "width": 1090,
              "height": 680
            },
            "children": [
              "9276267a-d463-482f-9975-04765f3a96a1",
              "59ccc050-4f7e-4ec4-bb09-f7e52f40c866",
              "94b1473d-1d6d-4d33-b03a-06718e3d3246",
              "04406696-7c11-40c1-a1a3-0e4a478609f0",
              "074f856b-5db7-46d4-952d-189ee1ad5ada",
              "d818f7a8-016c-49ee-ad96-aca9f3969f4c",
              "64a54018-308d-431c-a9f6-25b3343b967d",
              "28f1e364-d41c-41b5-a84b-23348c956192",
              "c3fcba36-6590-4e83-9f8a-6c6a8521afcc",
              "429edc73-a166-4495-bc68-3557b968eb33",
              "933379ae-796c-4d4a-9b3a-c98643fb8fbc",
              "58a3033f-75f7-48e3-b80c-62aa0bc32061",
              "0379b6ac-a043-4a0e-bf29-9ae57d4ab601"
            ]
          },
          {
            "id": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "shape": "group",
            "position": {
              "x": -1054.9999999999986,
              "y": -308.00000000000244
            },
            "label": "分组、群、联系人逻辑关系",
            "fillColor": "#ffffff",
            "size": {
              "width": 630,
              "height": 680
            },
            "children": [
              "baf9a022-88b0-47f0-a8dd-dedf806aeb47",
              "671ee8cf-eb3b-425c-a68b-63867e1650d6",
              "74f92be4-722d-4f17-82b7-dd4bdd88256f",
              "a75a5d55-ea9b-4495-bcad-e50856a008d2",
              "f758d2a2-b8b1-41e0-87ce-bb4474f7f7ce",
              "87193aa1-6d89-4a5f-b1da-06393d6a9d57",
              "a4b297d3-52f4-4427-bf29-7ca1cf40124a",
              "3dbe3dea-dad8-40be-8f7e-80d39a6f4835"
            ]
          },
          {
            "id": "d818f7a8-016c-49ee-ad96-aca9f3969f4c",
            "shape": "table",
            "position": {
              "x": 346.00000000000006,
              "y": -274.0000000000059
            },
            "count": 0,
            "originKey": "B1E4DDB6-B8CC-47BF-803B-2A565530CD0E",
            "fillColor": "#ffd966",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "074f856b-5db7-46d4-952d-189ee1ad5ada",
            "shape": "table",
            "position": {
              "x": 381.50000000000006,
              "y": -128.0000000000059
            },
            "count": 1,
            "originKey": "7B833313-CCBC-4284-A5E6-FEF2D794DBA8",
            "fillColor": "#ffd966",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "04406696-7c11-40c1-a1a3-0e4a478609f0",
            "shape": "table",
            "position": {
              "x": 381.50000000000006,
              "y": -30.000000000001023
            },
            "count": 0,
            "originKey": "7B833313-CCBC-4284-A5E6-FEF2D794DBA8",
            "fillColor": "#ffd966",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "58a3033f-75f7-48e3-b80c-62aa0bc32061",
            "shape": "table",
            "position": {
              "x": 381.5,
              "y": 154.99999999999756
            },
            "count": 0,
            "originKey": "031CC33E-3EDC-47A1-B4B8-E52348185EC1",
            "fillColor": "#0070c0",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "9276267a-d463-482f-9975-04765f3a96a1",
            "shape": "table",
            "position": {
              "x": -203,
              "y": -274.0000000000058
            },
            "count": 0,
            "originKey": "F37CFE1E-F41A-40ED-9CFC-496C82F8B067",
            "fillColor": "#ffd966",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                },
                {
                  "id": "out4",
                  "group": "out"
                }
              ]
            }
          },
          {
            "id": "94b1473d-1d6d-4d33-b03a-06718e3d3246",
            "shape": "table",
            "position": {
              "x": -203,
              "y": 154.99999999999756
            },
            "count": 0,
            "originKey": "A170BC81-F3D0-422F-B00F-1DB8218C26B4",
            "fillColor": "#0070c0",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "7ff4521b-9f55-470c-ac54-fe633a4fac85",
            "shape": "edit-node",
            "position": {
              "x": -779.9999999999986,
              "y": 279.99999999999665
            },
            "label": "群聊",
            "fillColor": "#00c0ba",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "a4b297d3-52f4-4427-bf29-7ca1cf40124a",
            "shape": "edit-node",
            "position": {
              "x": -1004.9999999999973,
              "y": 221.9999999999951
            },
            "label": "分组...",
            "fillColor": "#ffd966",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "baf9a022-88b0-47f0-a8dd-dedf806aeb47",
            "shape": "edit-node",
            "position": {
              "x": -784.9999999999973,
              "y": -253.0000000000049
            },
            "label": "联系人",
            "fillColor": "#fa5a5a",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "74f92be4-722d-4f17-82b7-dd4bdd88256f",
            "shape": "edit-node",
            "position": {
              "x": -1004.9999999999973,
              "y": -188.0000000000049
            },
            "label": "分组1",
            "fillColor": "#ffd966",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "87193aa1-6d89-4a5f-b1da-06393d6a9d57",
            "shape": "edit-node",
            "position": {
              "x": -1004.9999999999973,
              "y": 11.999999999997556
            },
            "label": "分组2",
            "fillColor": "#ffd966",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "671ee8cf-eb3b-425c-a68b-63867e1650d6",
            "shape": "edit-node",
            "position": {
              "x": -784.9999999999973,
              "y": -128.0000000000058
            },
            "label": "群聊",
            "fillColor": "#00c0ba",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "e28c80ba-6739-41be-a162-4071a619aca5",
            "shape": "edit-node",
            "position": {
              "x": -779.9999999999986,
              "y": -55
            },
            "label": "联系人",
            "fillColor": "#fa5a5a",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "d8ddc2d6-22d1-4d87-a9f3-2a95207259e0",
            "shape": "edit-node",
            "position": {
              "x": -779.9999999999986,
              "y": 69.99999999999909
            },
            "label": "群聊",
            "fillColor": "#00c0ba",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "49dc3518-cc95-4b1e-98d2-d391f70d409a",
            "shape": "edit-node",
            "position": {
              "x": -779.9999999999986,
              "y": 154.99999999999756
            },
            "label": "联系人",
            "fillColor": "#fa5a5a",
            "size": {
              "width": 80,
              "height": 40
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "a75a5d55-ea9b-4495-bcad-e50856a008d2",
            "shape": "erdRelation",
            "source": {
              "cell": "74f92be4-722d-4f17-82b7-dd4bdd88256f",
              "port": "out"
            },
            "target": {
              "cell": "baf9a022-88b0-47f0-a8dd-dedf806aeb47",
              "port": "in2"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76"
          },
          {
            "id": "f758d2a2-b8b1-41e0-87ce-bb4474f7f7ce",
            "shape": "erdRelation",
            "source": {
              "cell": "74f92be4-722d-4f17-82b7-dd4bdd88256f",
              "port": "out3"
            },
            "target": {
              "cell": "671ee8cf-eb3b-425c-a68b-63867e1650d6",
              "port": "in2"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": -924.9999999999973,
                "y": -108.00000000000489
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76"
          },
          {
            "id": "4f4266a8-9665-49d5-a72e-cc2b9053e333",
            "shape": "erdRelation",
            "source": {
              "cell": "87193aa1-6d89-4a5f-b1da-06393d6a9d57",
              "port": "out3"
            },
            "target": {
              "cell": "d8ddc2d6-22d1-4d87-a9f3-2a95207259e0",
              "port": "in2"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": -919.9999999999986,
                "y": 90
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "f53767e4-a44b-484d-a4ee-21c7f1ae38c1",
            "shape": "erdRelation",
            "source": {
              "cell": "87193aa1-6d89-4a5f-b1da-06393d6a9d57",
              "port": "out"
            },
            "target": {
              "cell": "e28c80ba-6739-41be-a162-4071a619aca5",
              "port": "in2"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "62d522cf-e03e-45b4-96b4-c787a3ad4865",
            "shape": "erdRelation",
            "source": {
              "cell": "a4b297d3-52f4-4427-bf29-7ca1cf40124a",
              "port": "out3"
            },
            "target": {
              "cell": "7ff4521b-9f55-470c-ac54-fe633a4fac85",
              "port": "in2"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": -919.9999999999986,
                "y": 299.99999999999756
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "73adb047-ba30-46c0-b2fe-9d1d4160f40a",
            "shape": "erdRelation",
            "source": {
              "cell": "a4b297d3-52f4-4427-bf29-7ca1cf40124a",
              "port": "out"
            },
            "target": {
              "cell": "49dc3518-cc95-4b1e-98d2-d391f70d409a",
              "port": "in2"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "5a527670-6a20-482a-8081-307398ac4a56",
            "shape": "erdRelation",
            "source": {
              "cell": "baf9a022-88b0-47f0-a8dd-dedf806aeb47",
              "port": "out2"
            },
            "target": {
              "cell": "e28c80ba-6739-41be-a162-4071a619aca5",
              "port": "out2"
            },
            "relation": "none:none",
            "vertices": [
              {
                "x": -680,
                "y": -150
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1≠1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "c7b94211-b20a-42ab-850b-52d5911470d1",
            "shape": "erdRelation",
            "source": {
              "cell": "e28c80ba-6739-41be-a162-4071a619aca5",
              "port": "out3"
            },
            "target": {
              "cell": "49dc3518-cc95-4b1e-98d2-d391f70d409a",
              "port": "out2"
            },
            "relation": "none:none",
            "vertices": [
              {
                "x": -670,
                "y": -22
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1≠1"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ACDAFC"
          },
          {
            "id": "64a54018-308d-431c-a9f6-25b3343b967d",
            "shape": "erdRelation",
            "source": {
              "cell": "9276267a-d463-482f-9975-04765f3a96a1",
              "port": "out2"
            },
            "target": {
              "cell": "074f856b-5db7-46d4-952d-189ee1ad5ada",
              "port": "in"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ffc000",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "28f1e364-d41c-41b5-a84b-23348c956192",
            "shape": "erdRelation",
            "source": {
              "cell": "9276267a-d463-482f-9975-04765f3a96a1",
              "port": "out"
            },
            "target": {
              "cell": "d818f7a8-016c-49ee-ad96-aca9f3969f4c",
              "port": "in"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": 250,
                "y": -253
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ffc000",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "c3fcba36-6590-4e83-9f8a-6c6a8521afcc",
            "shape": "erdRelation",
            "source": {
              "cell": "9276267a-d463-482f-9975-04765f3a96a1",
              "port": "out3"
            },
            "target": {
              "cell": "04406696-7c11-40c1-a1a3-0e4a478609f0",
              "port": "in"
            },
            "relation": "1:n",
            "vertices": [
              {
                "x": 320,
                "y": -13
              }
            ],
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#ffd966",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "429edc73-a166-4495-bc68-3557b968eb33",
            "shape": "erdRelation",
            "source": {
              "cell": "9276267a-d463-482f-9975-04765f3a96a1",
              "port": "in3"
            },
            "target": {
              "cell": "59ccc050-4f7e-4ec4-bb09-f7e52f40c866",
              "port": "in"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": ""
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#0d0d0d",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "933379ae-796c-4d4a-9b3a-c98643fb8fbc",
            "shape": "erdRelation",
            "source": {
              "cell": "9276267a-d463-482f-9975-04765f3a96a1",
              "port": "in2"
            },
            "target": {
              "cell": "94b1473d-1d6d-4d33-b03a-06718e3d3246",
              "port": "in2"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": ""
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#0d0d0d",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "0379b6ac-a043-4a0e-bf29-9ae57d4ab601",
            "shape": "erdRelation",
            "source": {
              "cell": "94b1473d-1d6d-4d33-b03a-06718e3d3246",
              "port": "out"
            },
            "target": {
              "cell": "58a3033f-75f7-48e3-b80c-62aa0bc32061",
              "port": "in"
            },
            "relation": "1:n",
            "labels": [
              {
                "attrs": {
                  "text": {
                    "text": "1:N"
                  },
                  "rect": {}
                }
              }
            ],
            "fillColor": "#6698cc",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2"
          },
          {
            "id": "59ccc050-4f7e-4ec4-bb09-f7e52f40c866",
            "shape": "table",
            "position": {
              "x": -198,
              "y": -41.000000000002444
            },
            "count": 0,
            "originKey": "4F6509BE-DE02-42FA-8C5F-670B3560643E",
            "fillColor": "#fa5a5a",
            "parent": "d51213e1-ed87-4d74-84dd-ff69e4d732d2",
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "circle": {
                      "r": 4,
                      "magnet": true,
                      "stroke": "#1890FF",
                      "fill": "#FFF",
                      "strokeWidth": 1,
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "3dbe3dea-dad8-40be-8f7e-80d39a6f4835",
            "shape": "edit-node-circle-svg",
            "position": {
              "x": -633.9999999999986,
              "y": -88.0000000000058
            },
            "label": "分组之间联系人没有交集\n即（同一个联系人或群只能在一个分组中）",
            "fillColor": "#f8cbad",
            "parent": "87903a35-0116-4fc8-a372-edf914c1bf76",
            "size": {
              "width": 190,
              "height": 190
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                }
              ]
            }
          }
        ]
      },
      "id": "489D5D52-91B1-42FB-96E1-AA09C229E775"
    },
    {
      "defKey": "BLOCK_FAVORITE",
      "defName": "分组、收藏",
      "relationType": "field",
      "canvasData": {
        "cells": [
          {
            "id": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "shape": "group",
            "position": {
              "x": -410,
              "y": -260
            },
            "label": "",
            "size": {
              "width": 340,
              "height": 270
            },
            "children": [
              "04545570-024d-4552-ad53-520431347434",
              "c232300d-bb0e-45cb-8920-8e75bf20ea70",
              "12d6972b-9a12-48e4-b4a2-6072e4756d44",
              "2a9dbbca-c66c-419a-96bf-b3acbf7df8d0",
              "2f329bad-e490-402a-946b-cc18fb396d5c",
              "cb856f1f-dd26-4850-9f8d-f4e1830d1a7d",
              "cd17205e-092e-4120-a580-63ccf3af99e8"
            ]
          },
          {
            "id": "2f329bad-e490-402a-946b-cc18fb396d5c",
            "shape": "erdRelation",
            "source": {
              "cell": "2a9dbbca-c66c-419a-96bf-b3acbf7df8d0",
              "port": "in2"
            },
            "target": {
              "cell": "04545570-024d-4552-ad53-520431347434",
              "port": "out2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "cb856f1f-dd26-4850-9f8d-f4e1830d1a7d",
            "shape": "erdRelation",
            "source": {
              "cell": "2a9dbbca-c66c-419a-96bf-b3acbf7df8d0",
              "port": "in2"
            },
            "target": {
              "cell": "c232300d-bb0e-45cb-8920-8e75bf20ea70",
              "port": "out2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "cd17205e-092e-4120-a580-63ccf3af99e8",
            "shape": "erdRelation",
            "source": {
              "cell": "2a9dbbca-c66c-419a-96bf-b3acbf7df8d0",
              "port": "in2"
            },
            "target": {
              "cell": "12d6972b-9a12-48e4-b4a2-6072e4756d44",
              "port": "out2"
            },
            "relation": "1:n",
            "fillColor": "#ACDAFC",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "router": {
              "name": "manhattan"
            }
          },
          {
            "id": "c232300d-bb0e-45cb-8920-8e75bf20ea70",
            "shape": "edit-node",
            "position": {
              "x": -359.9999999999997,
              "y": -160.00000000000034
            },
            "label": "分组2",
            "fillColor": "#ffd966",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "12d6972b-9a12-48e4-b4a2-6072e4756d44",
            "shape": "edit-node",
            "position": {
              "x": -359.9999999999997,
              "y": -80.00000000000034
            },
            "label": "分组...",
            "fillColor": "#ffd966",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "04545570-024d-4552-ad53-520431347434",
            "shape": "edit-node",
            "position": {
              "x": -359.9999999999997,
              "y": -240.00000000000034
            },
            "label": "分组1",
            "fillColor": "#ffd966",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          },
          {
            "id": "2a9dbbca-c66c-419a-96bf-b3acbf7df8d0",
            "shape": "edit-node",
            "position": {
              "x": -176.99999999999972,
              "y": -155.00000000000034
            },
            "label": "收藏",
            "fillColor": "#795c8f",
            "parent": "a9394b25-44de-41ce-8ed1-97a7fe51e19d",
            "size": {
              "width": 80,
              "height": 60,
              "minHeight": 20
            },
            "ports": {
              "groups": {
                "in": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "left"
                  }
                },
                "out": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "right"
                  }
                },
                "top": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "top"
                  }
                },
                "bottom": {
                  "attrs": {
                    "fo": {
                      "width": 8,
                      "height": 8,
                      "x": -4,
                      "y": -4,
                      "magnet": "true",
                      "style": {
                        "visibility": "hidden"
                      }
                    }
                  },
                  "zIndex": 3,
                  "position": {
                    "name": "bottom"
                  }
                }
              },
              "items": [
                {
                  "group": "in",
                  "id": "in"
                },
                {
                  "group": "in",
                  "id": "in2"
                },
                {
                  "group": "in",
                  "id": "in3"
                },
                {
                  "group": "out",
                  "id": "out"
                },
                {
                  "group": "out",
                  "id": "out2"
                },
                {
                  "group": "out",
                  "id": "out3"
                },
                {
                  "group": "top",
                  "id": "top"
                },
                {
                  "group": "top",
                  "id": "top2"
                },
                {
                  "group": "top",
                  "id": "top3"
                },
                {
                  "group": "bottom",
                  "id": "bottom"
                },
                {
                  "group": "bottom",
                  "id": "bottom2"
                },
                {
                  "group": "bottom",
                  "id": "bottom3"
                }
              ]
            }
          }
        ]
      },
      "id": "C68448C3-0E60-4E22-A1F8-99101AAECAEA"
    }
  ],
  "standardFields": [
    {
      "defKey": "personInfo",
      "defName": "个人基本信息要素",
      "fields": [
        {
          "defKey": "ID_CARD_NO",
          "defName": "身份证号",
          "comment": "",
          "type": "VARCHAR",
          "len": "60",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "uiHint": "",
          "id": "A64A91C8-A41F-4113-92FB-7563D7EF054D"
        },
        {
          "defKey": "MOBILE_PHONE",
          "defName": "手机号",
          "comment": "",
          "type": "VARCHAR",
          "len": "60",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "uiHint": "",
          "id": "479DA2AB-1974-411A-A81E-92FB939E75EB"
        },
        {
          "defKey": "GENDER",
          "defName": "性别",
          "comment": "",
          "type": "VARCHAR",
          "len": "32",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D",
          "uiHint": "",
          "id": "48473E29-6594-4912-AADE-C8AB44FCA3E9"
        },
        {
          "defKey": "BIRTH",
          "defName": "出生日期",
          "comment": "",
          "type": "DATETIME",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "refDict": "",
          "uiHint": "",
          "id": "2BD3D2EE-2411-49A6-983D-84B81057312F"
        },
        {
          "defKey": "AVATAR",
          "defName": "头像",
          "comment": "",
          "type": "VARCHAR",
          "len": "60",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "uiHint": "",
          "id": "FDD67CEE-4B52-4BD1-A1A3-9C5EBC6037E6"
        },
        {
          "defKey": "HEIGHT",
          "defName": "身高",
          "comment": "",
          "type": "INT",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "refDict": "",
          "uiHint": "",
          "id": "CAAA0E79-41A1-4758-B481-D171168C4D68"
        },
        {
          "defKey": "WEIGHT",
          "defName": "体重",
          "comment": "",
          "type": "INT",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "refDict": "",
          "uiHint": "",
          "id": "575482CE-64A6-4CB9-99DC-8E126D190AAA"
        },
        {
          "defKey": "NATION",
          "defName": "名族",
          "comment": "",
          "type": "VARCHAR",
          "len": "32",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "115EDEFC-0323-410E-81AB-CCAB8879837A",
          "uiHint": "",
          "id": "15B0D75D-0B97-4985-A816-D0EAFA90446B"
        },
        {
          "defKey": "POLITICAL",
          "defName": "政治面貌",
          "comment": "",
          "type": "VARCHAR",
          "len": "32",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "06EED564-BBA9-4747-8D73-AF809A330CB8",
          "uiHint": "",
          "id": "F458E86D-84D6-45A1-9DD3-51E6C8170D7F"
        },
        {
          "defKey": "MARITAL",
          "defName": "婚姻状况",
          "comment": "",
          "type": "VARCHAR",
          "len": "32",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "EA1587B7-3954-437A-BFE0-FCB0453BCABA",
          "uiHint": "",
          "id": "7275E578-6893-4922-AC69-95B261BFBD61"
        },
        {
          "defKey": "DOMICILE_PLACE_PROVINCE",
          "defName": "籍贯（省）",
          "comment": "",
          "type": "VARCHAR",
          "len": "60",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "uiHint": "",
          "id": "F04BF130-3EC1-4E02-9DED-3214CA88E352"
        },
        {
          "defKey": "DOMICILE_PLACE_CITY",
          "defName": "籍贯（市）",
          "comment": "",
          "type": "VARCHAR",
          "len": "32",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "",
          "uiHint": "",
          "id": "B97F5BC2-33DE-4857-9DB8-ECFD02C9040C"
        },
        {
          "defKey": "DOMICILE_PLACE_ADDRESS",
          "defName": "户籍地址",
          "comment": "",
          "type": "VARCHAR",
          "len": "60",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "uiHint": "",
          "id": "812ADF1D-8C03-40CA-B030-E539838FB889"
        }
      ],
      "id": "F30202B9-4B5D-4CE7-87CE-B3890C84D3F2"
    }
  ],
  "dbConn": []
}