Ver Fonte

1、新增feign依赖
2、新增实体关系、图谱等实体

alibct há 2 anos atrás
pai
commit
5b416c6344

+ 64 - 2
README.md

@@ -32,11 +32,73 @@ http://doc.ruoyi.vip
 ## 开发环境配置步骤
 
 1. 直接使用application-dev.yml或修改配置文件application-local.yml
-修改的内容包括:
+   修改的内容包括:
+
 * mysql,多数据源配置,初始化数据库(sql/init.sql)
 * redis
 * minio,对象存储配置,初始化ak和sk
 * pavis.profile,本地上传文件配置
+* spring.profiles.active: dev,注意根据实际情况修改使用
 
 2. 修改配置文件logback.xml
-* log.path
+
+* log.path
+
+3. 本地容器启动命令
+
+启动minio
+
+```shell
+docker run -d --name minio -p 9000:9000 -p 9001:9001 -v /Users/alibct/Downloads/project/minio/data:/data -e MINIO_ROOT_USER="semi" -e MINIO_ROOT_PASSWORD="Semi.1001" bitnami/minio
+```
+
+启动mysql
+
+```shell
+docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v $PWD/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf -v $PWD/mysql/data:/var/lib/mysql mysql:5.7
+```
+配置文件:
+
+```cnf
+[client]
+default_character_set=utf8
+
+[mysqld]
+lower_case_table_names=1
+sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
+max_allowed_packet=100M
+collation_server=utf8_general_ci
+character_set_server=utf8
+```
+
+启动redis
+
+```shell
+docker run -d --name redis -p 6379:6379 redis
+```
+
+启动onlyoffice
+
+```shell
+
+```
+
+
+## 接口相关
+
+需要算法提供接口:
+
+> 创建图谱接口
+
+请求参数:
+
+- 图谱id
+- 知识库文档链接列表
+
+> 初始化图谱接口
+
+请求参数:
+
+- 图谱id
+- 实体基本信息和实体实例信息列表
+- 实体关系列表

+ 23 - 0
pom.xml

@@ -24,8 +24,19 @@
         <fastjson.version>2.0.28</fastjson.version>
         <mybatisplus.version>3.5.3</mybatisplus.version>
         <mybatisplus.dynamic.version>3.6.1</mybatisplus.dynamic.version>
+        <spring-cloud.version>2021.0.7</spring-cloud.version>
     </properties>
     <dependencies>
+        <!-- httpClient的依赖 -->
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-httpclient</artifactId>
+        </dependency>
+        <!-- spring cloud依赖 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
         <!-- api文档 -->
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
@@ -124,6 +135,18 @@
         </dependency>
     </dependencies>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <build>
         <plugins>
             <plugin>

+ 27 - 1
sql/init.sql

@@ -243,4 +243,30 @@ create table sys_entity_instance
     update_time datetime comment '更新时间',
     remark      varchar(512) default '' comment '备注',
     primary key (entity_id)
-) engine = innodb comment = '图谱实体表';
+) engine = innodb comment = '图谱实体实例表';
+
+-- ----------------------------
+-- 10、图谱关系表
+-- ----------------------------
+drop table if exists sys_entity_relation;
+create table sys_entity_relation
+(
+    relation_id   varchar(32) not null comment '关系ID',
+    kg_id         varchar(32) not null comment '图谱ID',
+    user_id       bigint(20)  not null comment '用户ID',
+    start         varchar(64) not null comment '类目/起始点类型',
+    start_id      varchar(32) not null comment '起始点id',
+    relation      varchar(64) not null comment '属性/关系',
+    end           varchar(64) not null comment '值类型/终止点类型',
+    end_id        varchar(32) not null comment '终止点id',
+    value_unit    varchar(64) comment '枚举集合/数值单位',
+    value_type    varchar(64) comment '单多值',
+    default_value varchar(64) comment '默认值',
+    create_by     varchar(64)  default '' comment '创建者',
+    create_time   datetime comment '创建时间',
+    update_by     varchar(64)  default '' comment '更新者',
+    update_time   datetime comment '更新时间',
+    remark        varchar(512) default '' comment '备注',
+    primary key (relation_id)
+) engine = innodb comment = '图谱关系表';
+

+ 2 - 0
src/main/java/com/pavis/backend/slim/BackendSlimApplication.java

@@ -4,12 +4,14 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 
 /**
  * 程序入口
  *
  * @author semi
  */
+@EnableFeignClients
 @MapperScan("com.pavis.backend.slim.project.system.mapper")
 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
 public class BackendSlimApplication {

+ 13 - 0
src/main/java/com/pavis/backend/slim/project/system/client/AlgKgClient.java

@@ -0,0 +1,13 @@
+package com.pavis.backend.slim.project.system.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * 调用算法接口服务
+ *
+ * @author semi
+ * @create 2023-06-07 15:12
+ */
+@FeignClient("AlgKgService")
+public interface AlgKgClient {
+}

+ 154 - 0
src/main/java/com/pavis/backend/slim/project/system/domain/SysEntityRelation.java

@@ -0,0 +1,154 @@
+package com.pavis.backend.slim.project.system.domain;
+
+import com.pavis.backend.slim.framework.web.domain.BaseEntity;
+
+/**
+ * @author semi
+ * @create 2023-06-07 13:22
+ */
+public class SysEntityRelation extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 关系ID
+     */
+    private String relationId;
+
+    /**
+     * 图谱ID
+     */
+    private String kgId;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 类目/起始点类型
+     */
+    private String start;
+
+    /**
+     * 起始点id
+     */
+    private String startId;
+
+    /**
+     * 属性/关系
+     */
+    private String relation;
+
+    /**
+     * 值类型/终止点类型
+     */
+    private String end;
+
+    /**
+     * 终止点id
+     */
+    private String endId;
+
+    /**
+     * 枚举集合/数值单位
+     */
+    private String valueUnit;
+
+    /**
+     * 单多值
+     */
+    private String valueType;
+
+    /**
+     * 默认值
+     */
+    private String defaultValue;
+
+    public String getRelationId() {
+        return relationId;
+    }
+
+    public void setRelationId(String relationId) {
+        this.relationId = relationId;
+    }
+
+    public String getKgId() {
+        return kgId;
+    }
+
+    public void setKgId(String kgId) {
+        this.kgId = kgId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getStartId() {
+        return startId;
+    }
+
+    public void setStartId(String startId) {
+        this.startId = startId;
+    }
+
+    public String getRelation() {
+        return relation;
+    }
+
+    public void setRelation(String relation) {
+        this.relation = relation;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    public String getEndId() {
+        return endId;
+    }
+
+    public void setEndId(String endId) {
+        this.endId = endId;
+    }
+
+    public String getValueUnit() {
+        return valueUnit;
+    }
+
+    public void setValueUnit(String valueUnit) {
+        this.valueUnit = valueUnit;
+    }
+
+    public String getValueType() {
+        return valueType;
+    }
+
+    public void setValueType(String valueType) {
+        this.valueType = valueType;
+    }
+
+    public String getDefaultValue() {
+        return defaultValue;
+    }
+
+    public void setDefaultValue(String defaultValue) {
+        this.defaultValue = defaultValue;
+    }
+}

+ 8 - 2
src/main/java/com/pavis/backend/slim/project/system/domain/SysKg.java

@@ -2,6 +2,7 @@ package com.pavis.backend.slim.project.system.domain;
 
 
 import com.pavis.backend.slim.framework.web.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * 图谱表
@@ -13,30 +14,35 @@ public class SysKg extends BaseEntity {
     /**
      * 图谱ID
      */
+    @ApiModelProperty("图谱id")
     private String kgId;
     /**
      * 知识库ID
      */
+    @ApiModelProperty(value = "知识库id", required = true)
     private String kbId;
     /**
      * 文档ID列表,全选时为1,没选时为0,选择部分时为文件id列表,用逗号隔开
      */
-    private String fileIds;
+    @ApiModelProperty(value = "文档ID列表,全选时为1,没选时为0,选择部分时为文件id列表,用逗号隔开,默认为1")
+    private String fileIds = "1";
     /**
      * 用户ID
      */
+    @ApiModelProperty("用户id")
     private Long userId;
     /**
      * 图谱名称
      */
+    @ApiModelProperty(value = "图谱名称", required = true)
     private String name;
     /**
      * 图谱简介
      */
+    @ApiModelProperty("图谱简介")
     private String profile;
 
 
-    // 以下为getter和setter方法
     public String getKgId() {
         return kgId;
     }

+ 13 - 0
src/main/java/com/pavis/backend/slim/project/system/mapper/SysEntityRelationMapper.java

@@ -0,0 +1,13 @@
+package com.pavis.backend.slim.project.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.pavis.backend.slim.project.system.domain.SysEntityRelation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author semi
+ * @create 2023-06-07 13:29
+ */
+@Mapper
+public interface SysEntityRelationMapper extends BaseMapper<SysEntityRelation> {
+}

+ 11 - 0
src/main/java/com/pavis/backend/slim/project/system/service/SysEntityRelationService.java

@@ -0,0 +1,11 @@
+package com.pavis.backend.slim.project.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.pavis.backend.slim.project.system.domain.SysEntityRelation;
+
+/**
+ * @author semi
+ * @create 2023-06-07 13:30
+ */
+public interface SysEntityRelationService extends IService<SysEntityRelation> {
+}

+ 15 - 0
src/main/java/com/pavis/backend/slim/project/system/service/impl/SysEntityRelationServiceImpl.java

@@ -0,0 +1,15 @@
+package com.pavis.backend.slim.project.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pavis.backend.slim.project.system.domain.SysEntityRelation;
+import com.pavis.backend.slim.project.system.mapper.SysEntityRelationMapper;
+import com.pavis.backend.slim.project.system.service.SysEntityRelationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author semi
+ * @create 2023-06-07 13:31
+ */
+@Service
+public class SysEntityRelationServiceImpl extends ServiceImpl<SysEntityRelationMapper, SysEntityRelation> implements SysEntityRelationService {
+}

+ 10 - 1
src/main/java/com/pavis/backend/slim/project/system/service/impl/SysKgServiceImpl.java

@@ -1,6 +1,8 @@
 package com.pavis.backend.slim.project.system.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pavis.backend.slim.common.utils.SecurityUtils;
 import com.pavis.backend.slim.project.system.domain.SysKg;
 import com.pavis.backend.slim.project.system.mapper.SysKgMapper;
 import com.pavis.backend.slim.project.system.service.SysKgService;
@@ -16,6 +18,13 @@ public class SysKgServiceImpl extends ServiceImpl<SysKgMapper,SysKg> implements
 
     @Override
     public SysKg create(SysKg kg) {
-        return null;
+        kg.setCreateBy(SecurityUtils.getUsername());
+        kg.setCreateTime(DateUtil.date());
+        // 存储kg信息
+        baseMapper.insert(kg);
+        // todo 调用算法初始化图谱接口
+        // 1. 获取文档列表
+
+        return kg;
     }
 }

+ 13 - 0
src/main/resources/application-local.yml

@@ -40,3 +40,16 @@ spring:
     host: localhost
     # 端口,默认为6379
     port: 6379
+# feign 配置
+feign:
+  client:
+    config:
+      default:
+        logger-level: full
+  httpclient:
+    # 开启feign对httpclient的支持
+    enabled: true
+    # 最大连接数
+    max-connections: 200
+    # 每个路径的最大连接数
+    max-connections-per-route: 50

+ 1 - 1
src/main/resources/application.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: local
   # 国际化资源文件路径
   messages:
     basename: i18n/messages