caiaf 5 rokov pred
rodič
commit
afaec61bf0

+ 1 - 1
gradle.properties

@@ -23,7 +23,7 @@
 
 SAGA_URL = http://www.sagacloud.cn
 SAGA_KOTLIN_VERSION = 1.4.106
-SAGA_SERVICE_VERSION = 1.4.144
+SAGA_SERVICE_VERSION = 1.4.146
 
 MAVEN_REPO_PUBLIC_URL = http://192.168.200.80:8081/repository/maven-public/
 MAVEN_REPO_RELEASE_URL = http://192.168.200.80:8081/repository/maven-releases/

+ 123 - 0
saga-service-mysql/build.gradle

@@ -0,0 +1,123 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *               iFHS7.
+ *              ;BBMBMBMc                  rZMBMBR              BMB
+ *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
+ *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
+ *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
+ *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
+ *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
+ *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
+ *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
+ *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
+ *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
+ *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
+ *         i0BM: SWKHKGO  MBDv
+ *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2019.  斯伯坦机器人
+ *              ,  XMW  ..
+ *                  r                                                                     All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+group rootProject.group
+version rootProject.version
+
+apply plugin: 'kotlin'
+apply plugin: 'org.jetbrains.dokka'
+apply plugin: 'maven'
+
+sourceCompatibility = JVM_TARGET
+
+compileKotlin {
+    kotlinOptions.jvmTarget = JVM_TARGET
+}
+compileTestKotlin {
+    kotlinOptions.jvmTarget = JVM_TARGET
+}
+
+dependencies {
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // alibaba数据库连接池
+    // https://mvnrepository.com/artifact/com.alibaba/druid
+    //compile group: 'com.alibaba', name: 'druid', version: DRUID_VERSION
+    // https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter
+    compile group: 'com.alibaba', name: 'druid-spring-boot-starter', version: SPRING_DRUID_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // MyBatis支持
+    // https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
+    compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: SPRING_MYBATIS_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Sybotan依赖
+    compile group: 'cn.sagacloud', name: 'saga-kotlin-mybatis', version: SAGA_KOTLIN_VERSION
+    compile group: 'cn.sagacloud', name: 'saga-kotlin-postgresql', version: SAGA_KOTLIN_VERSION
+    compile project(':saga-service-base')
+    compile project(':saga-service-mybatis')
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// 文档生成
+dokka {
+    jdkVersion = JDK_VERSION
+    outputFormat = 'javadoc'
+    outputDirectory = "$buildDir/javadoc"
+    //sourceDirs = files('src/main/kotlin')
+}
+
+// 上成上传的文档jar包
+task javadocJar(type: Jar, dependsOn: dokka) {
+    classifier = 'javadoc'
+    from dokka.outputDirectory
+}
+
+// 上成上传的文档jar包
+task sourcesJar(type: Jar) {
+    classifier = 'sources'
+    from sourceSets.main.allSource
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// maven 仓库管理
+
+// 设置上传的包,默认上传aar与pom
+artifacts {
+    //archives javadocJar
+    archives sourcesJar
+}
+
+uploadArchives {
+    repositories {
+        mavenDeployer {
+            pom.groupId = project.group
+            pom.version = project.version
+            pom.artifactId = project.name
+            pom.project {
+                name project.name
+                packaging 'jar'
+                url SAGA_URL
+                description '斯伯坦机器人 mybatis支持库。'
+                licenses {
+                    license {
+                        name LICENSE_NAME
+                        url LICENSE_URL
+                    }
+                }
+                developers {
+                    developer {
+                        id DEVELOPER_ID
+                        name DEVELOPER_NAME
+                    }
+                }
+            }
+            snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {
+                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
+            }
+            repository(url: MAVEN_REPO_RELEASE_URL) {
+                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
+            }
+        }
+    }
+}

+ 85 - 0
saga-service-mysql/src/main/kotlin/com/sybotan/service/postgresql/controllers/SDatabaseDocController.kt

@@ -0,0 +1,85 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *               iFHS7.
+ *              ;BBMBMBMc                  rZMBMBR              BMB
+ *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
+ *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
+ *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
+ *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
+ *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
+ *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
+ *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
+ *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
+ *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
+ *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
+ *         i0BM: SWKHKGO  MBDv
+ *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2020.  斯伯坦机器人
+ *              ,  XMW  ..
+ *                  r                                                                     All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+package com.sybotan.service.postgresql.controllers
+
+import com.sybotan.service.SObjectService
+import com.sybotan.service.models.requests.SQueryRequest
+import com.sybotan.service.models.responses.SQueryResponse
+import com.sybotan.service.postgresql.models.SColumn
+import com.sybotan.service.postgresql.models.STable
+import io.swagger.annotations.Api
+import io.swagger.annotations.ApiImplicitParam
+import io.swagger.annotations.ApiOperation
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.web.bind.annotation.*
+
+/**
+ * 数据库设计接口
+ *
+ * @author  庞利祥(sybotan@126.com)
+ */
+@Api(tags= ["数据库设计接口"])
+@RestController
+@RequestMapping("/--database-doc--/")
+class SDatabaseDocController {
+    /** 表服务对象 */
+    private val tableService = SObjectService(STable::class.java)
+
+    /** 字段服务对象 */
+    private val columnService = SObjectService(SColumn::class.java)
+
+    /**
+     * 查询表信息
+     *
+     * @param   schema      数据库
+     * @return  字段列表
+     */
+    @ApiOperation(value="查询表信息", notes="")
+    @RequestMapping(value = ["/table-list"], method = [RequestMethod.GET, RequestMethod.POST])
+    fun tableList(schema: String): List<Any> {
+        return tableService.select("schemaName" to schema).exec()
+    } // Function tableList()
+
+    /**
+     * 查询字段信息
+     *
+     * @param   schema      数据库
+     * @param   table       表名
+     * @return  字段列表
+     */
+    @ApiOperation(value="查询字段信息", notes="")
+    @RequestMapping(value = ["/column-list"], method = [RequestMethod.GET, RequestMethod.POST])
+    fun columnList(schema: String, table: String): List<Any> {
+        val builder = columnService.select("schemaName" to schema, "tableName" to table)
+//        builder.tableName =
+//                "(SELECT *,\n" +
+//                "    (SELECT \"description\" FROM \"pg_description\"\n" +
+//                "    JOIN \"pg_class\" ON \"pg_description\".\"objoid\" = \"pg_class\".\"oid\"\n" +
+//                "    JOIN \"pg_namespace\" ON \"pg_class\".\"relnamespace\" = \"pg_namespace\".\"oid\"\n" +
+//                "WHERE \"relname\" = \"t\".\"table_name\" and \"nspname\"= \"t\".\"table_schema\" and \"objsubid\" = \"t\".\"ordinal_position\")\n" +
+//                "FROM \"information_schema\".\"columns\" t) ct"
+        return builder.exec()
+        //return mapper.columnList(schema, table)
+    } // Function columnList()
+} // Class SDatabaseDocController

+ 79 - 0
saga-service-mysql/src/main/kotlin/com/sybotan/service/postgresql/models/SColumn.kt

@@ -0,0 +1,79 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *               iFHS7.
+ *              ;BBMBMBMc                  rZMBMBR              BMB
+ *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
+ *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
+ *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
+ *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
+ *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
+ *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
+ *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
+ *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
+ *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
+ *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
+ *         i0BM: SWKHKGO  MBDv
+ *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2020.  斯伯坦机器人
+ *              ,  XMW  ..
+ *                  r                                                                     All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+package com.sybotan.service.postgresql.models
+
+import io.swagger.annotations.ApiModel
+import io.swagger.annotations.ApiModelProperty
+import javax.persistence.Column
+import javax.persistence.Table
+
+/**
+ * 数据库设计-表结构
+ *
+ * @author  庞利祥 <sybotan@126.com>
+ */
+@ApiModel(description = "数据库设计-表结构")
+@Table(name = "information_schema.columns")
+open class SColumn {
+    /** 模式 */
+    @ApiModelProperty(value = "模式")
+    @Column(name = "TABLE_SCHEMA")
+    var schemaName: String? = null
+
+    /** 表名 */
+    @ApiModelProperty(value = "表名")
+    @Column(name = "TABLE_NAME")
+    var tableName: String? = null
+
+    /** 字段名 */
+    @ApiModelProperty(value = "字段名")
+    @Column(name = "COLUMN_NAME")
+    var columnName: String? = null
+
+    /** 类型 */
+    @Column(name = "DATA_TYPE")
+    @ApiModelProperty(value = "类型")
+    var columnType: String? = null
+
+    /** 字符最大长度 */
+    @ApiModelProperty(value = "字符最大长度")
+    @Column(name = "CHARACTER_MAXIMUM_LENGTH")
+    var charMaxLength: Int? = null
+
+    /** 可为空 */
+    @ApiModelProperty(value = "可为空")
+    @Column(name = "IS_NULLABLE")
+    var nullable: String? = null
+
+    /** 默认值 */
+    @ApiModelProperty(value = "默认值")
+    @Column(name = "COLUMN_DEFAULT")
+    var default: String? = null
+
+    /** 注释 */
+    @ApiModelProperty(value = "注释")
+    @Column(name = "COLUMN_COMMENT")
+    var description: String? = null
+
+} // Class SColumn

+ 53 - 0
saga-service-mysql/src/main/kotlin/com/sybotan/service/postgresql/models/STable.kt

@@ -0,0 +1,53 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *               iFHS7.
+ *              ;BBMBMBMc                  rZMBMBR              BMB
+ *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
+ *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
+ *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
+ *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
+ *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
+ *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
+ *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
+ *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
+ *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
+ *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
+ *         i0BM: SWKHKGO  MBDv
+ *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2020.  斯伯坦机器人
+ *              ,  XMW  ..
+ *                  r                                                                     All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+package com.sybotan.service.postgresql.models
+
+import io.swagger.annotations.ApiModel
+import io.swagger.annotations.ApiModelProperty
+import javax.persistence.Column
+import javax.persistence.Table
+
+/**
+ * 数据库设计-表结构
+ *
+ * @author  庞利祥 <sybotan@126.com>
+ */
+@ApiModel(description = "数据库设计-表结构")
+@Table(name = "information_schema.tables")
+open class STable {
+    /** 模式 */
+    @ApiModelProperty(value = "模式")
+    @Column(name = "TABLE_SCHEMA")
+    var schemaName: String? = null
+
+    /** 表名 */
+    @ApiModelProperty(value = "表名")
+    @Column(name = "TABLE_NAME")
+    var tableName: String? = null
+
+    /** 注释 */
+    @ApiModelProperty(value = "注释")
+    @Column(name = "TABLE_COMMENT")
+    var description: String? = null
+} // Class STable

+ 1 - 0
settings.gradle

@@ -28,3 +28,4 @@ include 'saga-service-base'
 include 'saga-service-mybatis'
 include 'saga-service-postgresql'
 include 'saga-service-kafka'
+include 'saga-service-mysql'