Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
7abe18b5
Commit
7abe18b5
authored
Apr 28, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: Agent应用数据库配置
parent
9e71524c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
2027 additions
and
37 deletions
+2027
-37
AgentApplicationService.java
.../agent_application/aggregate/AgentApplicationService.java
+3
-1
AgentApplicationServiceImpl.java
...plication/aggregate/impl/AgentApplicationServiceImpl.java
+121
-18
AgentApplicationInfoConvert.java
...gent_application/convert/AgentApplicationInfoConvert.java
+21
-0
BizAgentApplicationPublishConvert.java
...pplication/convert/BizAgentApplicationPublishConvert.java
+15
-3
AgentApplicationDatabaseConfig.java
...nt_application/domain/AgentApplicationDatabaseConfig.java
+18
-0
AgentApplicationInfoDto.java
...om/poc/agent_application/dto/AgentApplicationInfoDto.java
+10
-0
BizAgentApplicationInfoEntity.java
...ent_application/entity/BizAgentApplicationInfoEntity.java
+14
-0
BizAgentApplicationPublishEntity.java
..._application/entity/BizAgentApplicationPublishEntity.java
+15
-0
BizAgentApplicationInfoModel.java
...agent_application/model/BizAgentApplicationInfoModel.java
+18
-0
BizAgentApplicationPublishModel.java
...nt_application/model/BizAgentApplicationPublishModel.java
+18
-11
AgentApplicationInfoQuery.sql
...poc/agent_application/query/AgentApplicationInfoQuery.sql
+1
-0
AgentApplicationInfoQueryItem.java
...gent_application/query/AgentApplicationInfoQueryItem.java
+14
-0
AgentApplicationInfoRestImpl.java
...t_application/rest/impl/AgentApplicationInfoRestImpl.java
+4
-1
BizAgentApplicationInfoServiceImpl.java
...tion/service/impl/BizAgentApplicationInfoServiceImpl.java
+3
-0
BizAgentApplicationPublishServiceImpl.java
...n/service/impl/BizAgentApplicationPublishServiceImpl.java
+3
-0
DatabaseUtil.java
src/main/java/cn/com/poc/common/utils/DatabaseUtil.java
+53
-0
AgentApplicationApiServiceImpl.java
...expose/aggregate/impl/AgentApplicationApiServiceImpl.java
+3
-1
AgentApplicationExposeServiceImpl.java
...ose/aggregate/impl/AgentApplicationExposeServiceImpl.java
+4
-1
BizKnowledgeDatabaseConvert.java
...om/poc/knowledge/convert/BizKnowledgeDatabaseConvert.java
+97
-0
BizKnowledgeDatabaseDto.java
...ava/cn/com/poc/knowledge/dto/BizKnowledgeDatabaseDto.java
+127
-0
DatabaseTestContentDto.java
...java/cn/com/poc/knowledge/dto/DatabaseTestContentDto.java
+20
-0
KnowledgeDatabaseSearchDto.java
.../cn/com/poc/knowledge/dto/KnowledgeDatabaseSearchDto.java
+20
-0
BizKnowledgeDatabaseEntity.java
.../com/poc/knowledge/entity/BizKnowledgeDatabaseEntity.java
+199
-0
BizKnowledgeDatabaseModel.java
...cn/com/poc/knowledge/model/BizKnowledgeDatabaseModel.java
+286
-0
KnowledgeDatabaseQueryInfoQuery.sql
...m/poc/knowledge/query/KnowledgeDatabaseQueryInfoQuery.sql
+5
-0
KnowledgeDatabaseQueryInfoQueryCondition.java
...ledge/query/KnowledgeDatabaseQueryInfoQueryCondition.java
+34
-0
KnowledgeDatabaseQueryInfoQueryItem.java
.../knowledge/query/KnowledgeDatabaseQueryInfoQueryItem.java
+240
-0
BizKnowledgeDatabaseRepository.java
.../knowledge/repository/BizKnowledgeDatabaseRepository.java
+6
-0
DatabaseRest.java
src/main/java/cn/com/poc/knowledge/rest/DatabaseRest.java
+70
-0
DatabaseRestImpl.java
...java/cn/com/poc/knowledge/rest/impl/DatabaseRestImpl.java
+127
-0
BizKnowledgeDatabaseService.java
...om/poc/knowledge/service/BizKnowledgeDatabaseService.java
+27
-0
BizKnowledgeDatabaseServiceImpl.java
...owledge/service/impl/BizKnowledgeDatabaseServiceImpl.java
+149
-0
AIDialogueService.java
...party/resource/demand/ai/aggregate/AIDialogueService.java
+8
-0
AIDialogueServiceImpl.java
...ource/demand/ai/aggregate/impl/AIDialogueServiceImpl.java
+14
-0
DBChainResponse.java
...ty/resource/demand/ai/entity/dbchain/DBChainResponse.java
+124
-0
DBChainResult.java
...arty/resource/demand/ai/entity/dbchain/DBChainResult.java
+43
-0
LargeModelDemandResult.java
...e/demand/ai/entity/largemodel/LargeModelDemandResult.java
+12
-1
DgtoolsApiRoute.java
.../thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
+5
-0
ChainService.java
...main/java/cn/com/poc/thirdparty/service/ChainService.java
+14
-0
ChainServiceImpl.java
.../cn/com/poc/thirdparty/service/impl/ChainServiceImpl.java
+31
-0
DatabaseUtilTest.java
src/test/java/cn/com/poc/utils/DatabaseUtilTest.java
+31
-0
No files found.
src/main/java/cn/com/poc/agent_application/aggregate/AgentApplicationService.java
View file @
7abe18b5
...
...
@@ -45,6 +45,7 @@ public interface AgentApplicationService {
* @param largeModel 模型
* @param agentSystem 应用角色指令
* @param knowledgeIds 知识库ID
* @param databaseIds 数据库ID
* @param communicationTurn 对话轮数
* @param topP 模型参数topP
* @param temperature 模型参数temperature
...
...
@@ -60,7 +61,7 @@ public interface AgentApplicationService {
* @param superclassProblemConfig 知识库参数超级类问题配置
*/
AgentResultEntity
callAgentApplication
(
String
agentId
,
String
identifier
,
String
largeModel
,
String
agentSystem
,
Integer
[]
knowledgeIds
,
Integer
communicationTurn
,
Float
topP
,
Float
temperature
,
Integer
[]
knowledgeIds
,
Integer
[]
databaseIds
,
Integer
communicationTurn
,
Float
topP
,
Float
temperature
,
List
<
Message
>
messages
,
List
<
Tool
>
tools
,
FunctionCallResult
functionCallResult
,
List
<
String
>
fileUrls
,
boolean
stream
,
List
<
String
>
imageUrls
,
Double
score
,
Integer
topK
,
KnowledgeSearchTypeEnum
knowledgeSearchType
,
KnowledgeSuperclassProblemConfig
superclassProblemConfig
,
HttpServletResponse
httpServletResponse
)
throws
Exception
;
...
...
@@ -145,6 +146,7 @@ public interface AgentApplicationService {
/**
* 编辑器编辑功能
*
* @param agentGcConfigCode
* @param articleContent
* @param editorRequired
...
...
src/main/java/cn/com/poc/agent_application/aggregate/impl/AgentApplicationServiceImpl.java
View file @
7abe18b5
This diff is collapsed.
Click to expand it.
src/main/java/cn/com/poc/agent_application/convert/AgentApplicationInfoConvert.java
View file @
7abe18b5
...
...
@@ -64,6 +64,10 @@ public class AgentApplicationInfoConvert {
if
(
StringUtils
.
isNotBlank
(
model
.
getKnowledgeIds
()))
{
entity
.
setKnowledgeIds
(
JsonUtils
.
deSerialize
(
model
.
getKnowledgeIds
(),
Integer
[].
class
));
}
if
(
StringUtils
.
isNotBlank
(
model
.
getKnowledgeDatabaseIds
()))
{
entity
.
setKnowledgeDatabaseIds
(
JsonUtils
.
deSerialize
(
model
.
getKnowledgeDatabaseIds
(),
Integer
[].
class
));
}
entity
.
setKnowledgeSearchType
(
model
.
getKnowledgeSearchType
());
entity
.
setKnowledgeSimilarity
(
model
.
getKnowledgeSimilarity
());
entity
.
setKnowledgeNResult
(
model
.
getKnowledgeNResult
());
...
...
@@ -117,6 +121,11 @@ public class AgentApplicationInfoConvert {
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeIds
()))
{
model
.
setKnowledgeIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeIds
()));
}
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeDatabaseIds
()))
{
model
.
setKnowledgeDatabaseIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeDatabaseIds
()));
}
model
.
setKnowledgeSearchType
(
entity
.
getKnowledgeSearchType
());
model
.
setKnowledgeSimilarity
(
entity
.
getKnowledgeSimilarity
());
model
.
setKnowledgeNResult
(
entity
.
getKnowledgeNResult
());
...
...
@@ -171,6 +180,9 @@ public class AgentApplicationInfoConvert {
knowledgeConfig
.
setKnowledgeResponseType
(
entity
.
getKnowledgeResponseType
());
knowledgeConfig
.
setKnowledgeCustomResponse
(
entity
.
getKnowledgeCustomResponse
());
AgentApplicationDatabaseConfig
databaseConfig
=
new
AgentApplicationDatabaseConfig
();
databaseConfig
.
setIds
(
entity
.
getKnowledgeDatabaseIds
());
AgentApplicationCommModelConfig
commModelConfig
=
new
AgentApplicationCommModelConfig
();
commModelConfig
.
setLargeModel
(
entity
.
getLargeModel
());
commModelConfig
.
setTopP
(
entity
.
getTopP
());
...
...
@@ -193,6 +205,7 @@ public class AgentApplicationInfoConvert {
dto
.
setCommModelConfig
(
commModelConfig
);
dto
.
setVoiceConfig
(
voiceConfig
);
dto
.
setUnitIds
(
entity
.
getUnitIds
());
dto
.
setDatabaseConfig
(
databaseConfig
);
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
dto
.
setModifiedTime
(
entity
.
getModifiedTime
());
...
...
@@ -235,6 +248,10 @@ public class AgentApplicationInfoConvert {
entity
.
setKnowledgeCustomResponse
(
dto
.
getKnowledgeConfig
().
getKnowledgeCustomResponse
());
}
if
(
ObjectUtil
.
isNotEmpty
(
dto
.
getDatabaseConfig
()))
{
entity
.
setKnowledgeDatabaseIds
(
dto
.
getDatabaseConfig
().
getIds
());
}
if
(
ObjectUtil
.
isNotEmpty
(
dto
.
getCommModelConfig
()))
{
entity
.
setLargeModel
(
dto
.
getCommModelConfig
().
getLargeModel
());
entity
.
setTopP
(
dto
.
getCommModelConfig
().
getTopP
());
...
...
@@ -290,6 +307,10 @@ public class AgentApplicationInfoConvert {
if
(
StringUtils
.
isNotBlank
(
infoQueryItem
.
getKnowledgeIds
()))
{
entity
.
setKnowledgeIds
(
JsonUtils
.
deSerialize
(
infoQueryItem
.
getKnowledgeIds
(),
Integer
[].
class
));
}
if
(
StringUtils
.
isNotBlank
(
infoQueryItem
.
getKnowledgeDatabaseIds
()))
{
entity
.
setKnowledgeDatabaseIds
(
JsonUtils
.
deSerialize
(
infoQueryItem
.
getKnowledgeDatabaseIds
(),
Integer
[].
class
));
}
entity
.
setKnowledgeSearchType
(
infoQueryItem
.
getKnowledgeSearchType
());
entity
.
setKnowledgeSimilarity
(
infoQueryItem
.
getKnowledgeSimilarity
());
entity
.
setKnowledgeNResult
(
infoQueryItem
.
getKnowledgeNResult
());
...
...
src/main/java/cn/com/poc/agent_application/convert/BizAgentApplicationPublishConvert.java
View file @
7abe18b5
...
...
@@ -15,10 +15,7 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
public
class
BizAgentApplicationPublishConvert
{
...
...
@@ -51,6 +48,9 @@ public class BizAgentApplicationPublishConvert {
if
(
StringUtils
.
isNotBlank
(
model
.
getKnowledgeIds
()))
{
entity
.
setKnowledgeIds
(
JsonUtils
.
deSerialize
(
model
.
getKnowledgeIds
(),
Integer
[].
class
));
}
if
(
StringUtils
.
isNotBlank
(
model
.
getKnowledgeDatabaseIds
()))
{
entity
.
setKnowledgeDatabaseIds
(
JsonUtils
.
deSerialize
(
model
.
getKnowledgeDatabaseIds
(),
Integer
[].
class
));
}
entity
.
setKnowledgeSearchType
(
model
.
getKnowledgeSearchType
());
entity
.
setKnowledgeSimilarity
(
model
.
getKnowledgeSimilarity
());
entity
.
setKnowledgeNResult
(
model
.
getKnowledgeNResult
());
...
...
@@ -100,6 +100,10 @@ public class BizAgentApplicationPublishConvert {
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeIds
()))
{
model
.
setKnowledgeIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeIds
()));
}
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeDatabaseIds
()))
{
model
.
setKnowledgeDatabaseIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeDatabaseIds
()));
}
model
.
setKnowledgeSearchType
(
entity
.
getKnowledgeSearchType
());
model
.
setKnowledgeSimilarity
(
entity
.
getKnowledgeSimilarity
());
model
.
setKnowledgeNResult
(
entity
.
getKnowledgeNResult
());
...
...
@@ -157,6 +161,9 @@ public class BizAgentApplicationPublishConvert {
knowledgeConfig
.
setKnowledgeResponseType
(
entity
.
getKnowledgeResponseType
());
knowledgeConfig
.
setKnowledgeCustomResponse
(
entity
.
getKnowledgeCustomResponse
());
AgentApplicationDatabaseConfig
databaseConfig
=
new
AgentApplicationDatabaseConfig
();
databaseConfig
.
setIds
(
entity
.
getKnowledgeDatabaseIds
());
AgentApplicationCommModelConfig
commModelConfig
=
new
AgentApplicationCommModelConfig
();
commModelConfig
.
setLargeModel
(
entity
.
getLargeModel
());
commModelConfig
.
setTopP
(
entity
.
getTopP
());
...
...
@@ -178,6 +185,7 @@ public class BizAgentApplicationPublishConvert {
dto
.
setKnowledgeConfig
(
knowledgeConfig
);
dto
.
setCommModelConfig
(
commModelConfig
);
dto
.
setVoiceConfig
(
voiceConfig
);
dto
.
setDatabaseConfig
(
databaseConfig
);
dto
.
setUnitIds
(
entity
.
getUnitIds
());
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
...
...
@@ -222,6 +230,10 @@ public class BizAgentApplicationPublishConvert {
entity
.
setKnowledgeCustomResponse
(
dto
.
getKnowledgeConfig
().
getKnowledgeCustomResponse
());
}
if
(
ObjectUtil
.
isNotEmpty
(
dto
.
getDatabaseConfig
()))
{
entity
.
setKnowledgeDatabaseIds
(
dto
.
getDatabaseConfig
().
getIds
());
}
if
(
ObjectUtil
.
isNotEmpty
(
dto
.
getCommModelConfig
()))
{
entity
.
setLargeModel
(
dto
.
getCommModelConfig
().
getLargeModel
());
entity
.
setTopP
(
dto
.
getCommModelConfig
().
getTopP
());
...
...
src/main/java/cn/com/poc/agent_application/domain/AgentApplicationDatabaseConfig.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
agent_application
.
domain
;
/**
* @author alex.yao
* @date 2025/4/28
*/
public
class
AgentApplicationDatabaseConfig
{
private
Integer
[]
ids
;
public
Integer
[]
getIds
()
{
return
ids
;
}
public
void
setIds
(
Integer
[]
ids
)
{
this
.
ids
=
ids
;
}
}
src/main/java/cn/com/poc/agent_application/dto/AgentApplicationInfoDto.java
View file @
7abe18b5
...
...
@@ -16,6 +16,8 @@ public class AgentApplicationInfoDto implements java.io.Serializable {
private
AgentApplicationKnowledgeConfig
knowledgeConfig
;
private
AgentApplicationDatabaseConfig
databaseConfig
;
private
AgentApplicationCommModelConfig
commModelConfig
;
private
AgentApplicationVoiceConfig
voiceConfig
;
...
...
@@ -60,6 +62,14 @@ public class AgentApplicationInfoDto implements java.io.Serializable {
this
.
voiceConfig
=
voiceConfig
;
}
public
AgentApplicationDatabaseConfig
getDatabaseConfig
()
{
return
databaseConfig
;
}
public
void
setDatabaseConfig
(
AgentApplicationDatabaseConfig
databaseConfig
)
{
this
.
databaseConfig
=
databaseConfig
;
}
/**
* unit_ids
* 组件ID
...
...
src/main/java/cn/com/poc/agent_application/entity/BizAgentApplicationInfoEntity.java
View file @
7abe18b5
...
...
@@ -233,6 +233,20 @@ public class BizAgentApplicationInfoEntity {
this
.
knowledgeIds
=
knowledgeIds
;
}
/**
* knowledge_database_ids
* 知识库ID
*/
private
java
.
lang
.
Integer
[]
knowledgeDatabaseIds
;
public
java
.
lang
.
Integer
[]
getKnowledgeDatabaseIds
()
{
return
this
.
knowledgeDatabaseIds
;
}
public
void
setKnowledgeDatabaseIds
(
java
.
lang
.
Integer
[]
knowledgeDatabaseIds
)
{
this
.
knowledgeDatabaseIds
=
knowledgeDatabaseIds
;
}
/**
* 知识库检索方式
* 1、混合检索 - MIX
...
...
src/main/java/cn/com/poc/agent_application/entity/BizAgentApplicationPublishEntity.java
View file @
7abe18b5
...
...
@@ -245,6 +245,21 @@ public class BizAgentApplicationPublishEntity {
this
.
knowledgeIds
=
knowledgeIds
;
}
/**
* knowledge_database_ids
* 知识库ID
*/
private
java
.
lang
.
Integer
[]
knowledgeDatabaseIds
;
public
java
.
lang
.
Integer
[]
getKnowledgeDatabaseIds
()
{
return
this
.
knowledgeDatabaseIds
;
}
public
void
setKnowledgeDatabaseIds
(
java
.
lang
.
Integer
[]
knowledgeDatabaseIds
)
{
this
.
knowledgeDatabaseIds
=
knowledgeDatabaseIds
;
}
/**
* 知识库检索方式
* 1、混合检索 - MIX
...
...
src/main/java/cn/com/poc/agent_application/model/BizAgentApplicationInfoModel.java
View file @
7abe18b5
...
...
@@ -302,6 +302,24 @@ public class BizAgentApplicationInfoModel extends BaseModelClass implements Seri
super
.
addValidField
(
"knowledgeIds"
);
}
/**
* knowledge_database_ids
* 知识库ID
*/
private
java
.
lang
.
String
knowledgeDatabaseIds
;
@Column
(
name
=
"knowledge_database_ids"
,
length
=
1073741824
)
public
java
.
lang
.
String
getKnowledgeDatabaseIds
()
{
return
this
.
knowledgeDatabaseIds
;
}
public
void
setKnowledgeDatabaseIds
(
java
.
lang
.
String
knowledgeDatabaseIds
)
{
this
.
knowledgeDatabaseIds
=
knowledgeDatabaseIds
;
super
.
addValidField
(
"knowledgeDatabaseIds"
);
}
/**
* knowledge_search_type
* 知识库检索方式
...
...
src/main/java/cn/com/poc/agent_application/model/BizAgentApplicationPublishModel.java
View file @
7abe18b5
package
cn
.
com
.
poc
.
agent_application
.
model
;
import
java.io.Serializable
;
import
cn.com.yict.framemax.data.model.BaseModelClass
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Id
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
javax.persistence.Version
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.*
;
import
java.io.Serializable
;
/**
* Model class for biz_agent_application_publish
...
...
@@ -284,6 +275,22 @@ public class BizAgentApplicationPublishModel extends BaseModelClass implements S
super
.
addValidField
(
"knowledgeIds"
);
}
/**
* knowledge_database_ids
* 知识库ID
*/
private
java
.
lang
.
String
knowledgeDatabaseIds
;
@Column
(
name
=
"knowledge_database_ids"
,
length
=
1073741824
)
public
java
.
lang
.
String
getKnowledgeDatabaseIds
()
{
return
this
.
knowledgeDatabaseIds
;
}
public
void
setKnowledgeDatabaseIds
(
java
.
lang
.
String
knowledgeDatabaseIds
)
{
this
.
knowledgeDatabaseIds
=
knowledgeDatabaseIds
;
super
.
addValidField
(
"knowledgeDatabaseIds"
);
}
/**
* knowledge_search_type
* 知识库检索方式
...
...
src/main/java/cn/com/poc/agent_application/query/AgentApplicationInfoQuery.sql
View file @
7abe18b5
...
...
@@ -15,6 +15,7 @@ select distinct
continuous_question_system
,
continuous_question_turn
,
knowledge_ids
,
knowledge_databse_ids
,
knowledge_search_type
,
knowledge_similarity
,
knowledge_n_result
,
...
...
src/main/java/cn/com/poc/agent_application/query/AgentApplicationInfoQueryItem.java
View file @
7abe18b5
...
...
@@ -254,6 +254,20 @@ public class AgentApplicationInfoQueryItem extends BaseItemClass implements Seri
this
.
knowledgeIds
=
knowledgeIds
;
}
/**
* knowledge_database_ids
*/
private
String
knowledgeDatabaseIds
;
@Column
(
name
=
"knowledge_database_ids"
)
public
String
getKnowledgeDatabaseIds
()
{
return
knowledgeDatabaseIds
;
}
public
void
setKnowledgeDatabaseIds
(
String
knowledgeDatabaseIds
)
{
this
.
knowledgeDatabaseIds
=
knowledgeDatabaseIds
;
}
/**
* knowledge_search_type
* 知识库检索方式
...
...
src/main/java/cn/com/poc/agent_application/rest/impl/AgentApplicationInfoRestImpl.java
View file @
7abe18b5
...
...
@@ -254,6 +254,9 @@ public class AgentApplicationInfoRestImpl implements AgentApplicationInfoRest {
superclassProblemConfig
.
setKnowledgeResponseType
(
infoEntity
.
getKnowledgeResponseType
());
superclassProblemConfig
.
setKnowledgeCustomResponse
(
infoEntity
.
getKnowledgeCustomResponse
());
//数据库配置
Integer
[]
databaseIds
=
infoEntity
.
getKnowledgeDatabaseIds
();
//配置对话function
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
infoEntity
.
getVariableStructure
(),
infoEntity
.
getIsLongMemory
(),
dialogueId
,
agentId
,
infoEntity
.
getUnitIds
(),
infoEntity
.
getIsDocumentParsing
());
...
...
@@ -277,7 +280,7 @@ public class AgentApplicationInfoRestImpl implements AgentApplicationInfoRest {
reduceSn
=
memberEquityService
.
reducePoint
(
userBaseEntity
.
getUserId
(),
pointDeductionNum
,
ModifyEventEnum
.
use
,
agentUseModifyEventInfo
);
//调用应用服务
agentApplicationService
.
callAgentApplication
(
agentId
,
dialogueId
,
model
,
agentSystem
,
kdIds
.
toArray
(
new
Integer
[
0
]),
communicationTurn
,
topP
,
agentSystem
,
kdIds
.
toArray
(
new
Integer
[
0
]),
databaseIds
,
communicationTurn
,
topP
,
temperature
,
dto
.
getMessages
(),
tools
,
checkPluginUseEntity
.
getFunctionCallResult
(),
dto
.
getFileUrls
(),
true
,
imageUrls
,
infoEntity
.
getKnowledgeSimilarity
(),
infoEntity
.
getKnowledgeNResult
(),
KnowledgeSearchTypeEnum
.
valueOf
(
infoEntity
.
getKnowledgeSearchType
()),
superclassProblemConfig
,
httpServletResponse
);
...
...
src/main/java/cn/com/poc/agent_application/service/impl/BizAgentApplicationInfoServiceImpl.java
View file @
7abe18b5
...
...
@@ -226,6 +226,9 @@ public class BizAgentApplicationInfoServiceImpl extends BaseServiceImpl
model
.
setContinuousQuestionStatus
(
entity
.
getContinuousQuestionStatus
());
model
.
setContinuousQuestionSystem
(
entity
.
getContinuousQuestionSystem
());
model
.
setKnowledgeIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeIds
()));
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeDatabaseIds
())){
model
.
setKnowledgeDatabaseIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeDatabaseIds
()));
}
if
(
StringUtils
.
isNotBlank
(
entity
.
getKnowledgeSearchType
()))
{
model
.
setKnowledgeSearchType
(
entity
.
getKnowledgeSearchType
());
}
...
...
src/main/java/cn/com/poc/agent_application/service/impl/BizAgentApplicationPublishServiceImpl.java
View file @
7abe18b5
...
...
@@ -182,6 +182,9 @@ public class BizAgentApplicationPublishServiceImpl extends BaseServiceImpl
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeIds
()))
{
model
.
setKnowledgeIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeIds
()));
}
if
(
ArrayUtils
.
isNotEmpty
(
entity
.
getKnowledgeDatabaseIds
())){
model
.
setKnowledgeDatabaseIds
(
JsonUtils
.
serialize
(
entity
.
getKnowledgeDatabaseIds
()));
}
if
(
StringUtils
.
isNotBlank
(
entity
.
getKnowledgeSearchType
()))
{
model
.
setKnowledgeSearchType
(
entity
.
getKnowledgeSearchType
());
}
...
...
src/main/java/cn/com/poc/common/utils/DatabaseUtil.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
common
.
utils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
/**
* @author alex.yao
* @date 2025/4/27
*/
public
class
DatabaseUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DatabaseUtil
.
class
);
private
static
final
int
CONNECT_TIMEOUT
=
5000
;
// 连接超时时间(毫秒)
private
static
final
int
SOCKET_TIMEOUT
=
5000
;
// socket超时时间(毫秒)
/**
* 测试数据库连接
*
* @param host
* @param port
* @param username
* @param password
* @param database
* @return
*/
public
static
boolean
testConnect
(
String
host
,
int
port
,
String
username
,
String
password
,
String
database
)
{
String
url
=
"jdbc:mysql://"
+
host
+
":"
+
port
+
"/"
+
database
+
"?connectTimeout="
+
CONNECT_TIMEOUT
// 连接超时(毫秒)
+
"&socketTimeout="
+
SOCKET_TIMEOUT
;
// socket超时(毫秒)
Connection
connection
=
null
;
try
{
connection
=
DriverManager
.
getConnection
(
url
,
username
,
password
);
return
true
;
}
catch
(
Exception
e
)
{
return
false
;
}
finally
{
if
(
connection
!=
null
)
{
try
{
connection
.
close
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"关闭数据库连接失败"
,
e
);
}
}
}
}
}
src/main/java/cn/com/poc/expose/aggregate/impl/AgentApplicationApiServiceImpl.java
View file @
7abe18b5
...
...
@@ -143,6 +143,8 @@ public class AgentApplicationApiServiceImpl implements AgentApplicationApiServic
superclassProblemConfig
.
setKnowledgeResponseType
(
infoEntity
.
getKnowledgeResponseType
());
superclassProblemConfig
.
setKnowledgeCustomResponse
(
infoEntity
.
getKnowledgeCustomResponse
());
//数据库配置
Integer
[]
databaseIds
=
infoEntity
.
getKnowledgeDatabaseIds
();
// 构造对话参数
List
<
Message
>
messages
=
buildMessages
(
conversationId
,
agentId
,
profileEntity
.
getMemberId
(),
query
);
...
...
@@ -169,7 +171,7 @@ public class AgentApplicationApiServiceImpl implements AgentApplicationApiServic
//对话
try
{
AgentResultEntity
agentResultEntity
=
agentApplicationService
.
callAgentApplication
(
agentId
,
conversationId
,
infoEntity
.
getLargeModel
(),
infoEntity
.
getAgentSystem
(),
kdIdList
.
toArray
(
new
Integer
[
0
]),
infoEntity
.
getCommunicationTurn
(),
infoEntity
.
getAgentSystem
(),
kdIdList
.
toArray
(
new
Integer
[
0
]),
databaseIds
,
infoEntity
.
getCommunicationTurn
(),
infoEntity
.
getTopP
(),
infoEntity
.
getTemperature
(),
messages
,
tools
,
checkPluginUseEntity
.
getFunctionCallResult
(),
fileUrls
,
stream
,
imageUrls
,
infoEntity
.
getKnowledgeSimilarity
(),
infoEntity
.
getKnowledgeNResult
(),
KnowledgeSearchTypeEnum
.
valueOf
(
infoEntity
.
getKnowledgeSearchType
()),
superclassProblemConfig
,
httpServletResponse
);
...
...
src/main/java/cn/com/poc/expose/aggregate/impl/AgentApplicationExposeServiceImpl.java
View file @
7abe18b5
...
...
@@ -138,6 +138,9 @@ public class AgentApplicationExposeServiceImpl implements AgentApplicationExpose
knowledgeSuperclassProblemConfig
.
setKnowledgeResponseType
(
infoEntity
.
getKnowledgeResponseType
());
knowledgeSuperclassProblemConfig
.
setKnowledgeCustomResponse
(
infoEntity
.
getKnowledgeCustomResponse
());
//数据库配置
Integer
[]
databaseIds
=
infoEntity
.
getKnowledgeDatabaseIds
();
// 构造对话参数
List
<
Message
>
messages
=
buildMessages
(
dialogsId
,
agentId
,
userBaseEntity
.
getUserId
(),
input
);
...
...
@@ -186,7 +189,7 @@ public class AgentApplicationExposeServiceImpl implements AgentApplicationExpose
}
//对话
AgentResultEntity
agentResultEntity
=
agentApplicationService
.
callAgentApplication
(
agentId
,
dialogsId
,
infoEntity
.
getLargeModel
(),
infoEntity
.
getAgentSystem
(),
kdIdList
.
toArray
(
new
Integer
[
0
]),
infoEntity
.
getCommunicationTurn
(),
infoEntity
.
getAgentSystem
(),
kdIdList
.
toArray
(
new
Integer
[
0
]),
databaseIds
,
infoEntity
.
getCommunicationTurn
(),
infoEntity
.
getTopP
(),
infoEntity
.
getTemperature
(),
messages
,
tools
,
checkPluginUseEntity
.
getFunctionCallResult
(),
fileUrls
,
true
,
imageUrls
,
infoEntity
.
getKnowledgeSimilarity
(),
infoEntity
.
getKnowledgeNResult
(),
KnowledgeSearchTypeEnum
.
valueOf
(
infoEntity
.
getKnowledgeSearchType
()),
knowledgeSuperclassProblemConfig
,
httpServletResponse
);
...
...
src/main/java/cn/com/poc/knowledge/convert/BizKnowledgeDatabaseConvert.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
convert
;
import
cn.com.poc.knowledge.model.BizKnowledgeDatabaseModel
;
import
cn.com.poc.knowledge.entity.BizKnowledgeDatabaseEntity
;
import
cn.com.poc.knowledge.dto.BizKnowledgeDatabaseDto
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryItem
;
public
class
BizKnowledgeDatabaseConvert
{
public
static
BizKnowledgeDatabaseEntity
modelToEntity
(
BizKnowledgeDatabaseModel
model
)
{
BizKnowledgeDatabaseEntity
entity
=
new
BizKnowledgeDatabaseEntity
();
entity
.
setId
(
model
.
getId
());
entity
.
setMemberId
(
model
.
getMemberId
());
entity
.
setTitle
(
model
.
getTitle
());
entity
.
setDesc
(
model
.
getDesc
());
entity
.
setDbType
(
model
.
getDbType
());
entity
.
setDbHost
(
model
.
getDbHost
());
entity
.
setDbPort
(
model
.
getDbPort
());
entity
.
setDbName
(
model
.
getDbName
());
entity
.
setDbUsername
(
model
.
getDbUsername
());
entity
.
setDbPassword
(
model
.
getDbPassword
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
entity
.
setModifier
(
model
.
getModifier
());
entity
.
setModifiedTime
(
model
.
getModifiedTime
());
entity
.
setSysVersion
(
model
.
getSysVersion
());
return
entity
;
}
public
static
BizKnowledgeDatabaseModel
entityToModel
(
BizKnowledgeDatabaseEntity
entity
)
{
BizKnowledgeDatabaseModel
model
=
new
BizKnowledgeDatabaseModel
();
model
.
setId
(
entity
.
getId
());
model
.
setMemberId
(
entity
.
getMemberId
());
model
.
setTitle
(
entity
.
getTitle
());
model
.
setDesc
(
entity
.
getDesc
());
model
.
setDbType
(
entity
.
getDbType
());
model
.
setDbHost
(
entity
.
getDbHost
());
model
.
setDbPort
(
entity
.
getDbPort
());
model
.
setDbName
(
entity
.
getDbName
());
model
.
setDbUsername
(
entity
.
getDbUsername
());
model
.
setDbPassword
(
entity
.
getDbPassword
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
model
.
setModifier
(
entity
.
getModifier
());
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
model
.
setSysVersion
(
entity
.
getSysVersion
());
return
model
;
}
public
static
BizKnowledgeDatabaseDto
entityToDto
(
BizKnowledgeDatabaseEntity
entity
)
{
BizKnowledgeDatabaseDto
dto
=
new
BizKnowledgeDatabaseDto
();
dto
.
setId
(
entity
.
getId
());
dto
.
setMemberId
(
entity
.
getMemberId
());
dto
.
setTitle
(
entity
.
getTitle
());
dto
.
setDesc
(
entity
.
getDesc
());
dto
.
setDbType
(
entity
.
getDbType
());
dto
.
setDbHost
(
entity
.
getDbHost
());
dto
.
setDbPort
(
entity
.
getDbPort
());
dto
.
setDbName
(
entity
.
getDbName
());
dto
.
setDbUsername
(
entity
.
getDbUsername
());
dto
.
setDbPassword
(
entity
.
getDbPassword
());
return
dto
;
}
public
static
BizKnowledgeDatabaseEntity
dtoToEntity
(
BizKnowledgeDatabaseDto
dto
)
{
BizKnowledgeDatabaseEntity
entity
=
new
BizKnowledgeDatabaseEntity
();
entity
.
setId
(
dto
.
getId
());
entity
.
setMemberId
(
dto
.
getMemberId
());
entity
.
setTitle
(
dto
.
getTitle
());
entity
.
setDesc
(
dto
.
getDesc
());
entity
.
setDbType
(
dto
.
getDbType
());
entity
.
setDbHost
(
dto
.
getDbHost
());
entity
.
setDbPort
(
dto
.
getDbPort
());
entity
.
setDbName
(
dto
.
getDbName
());
entity
.
setDbUsername
(
dto
.
getDbUsername
());
entity
.
setDbPassword
(
dto
.
getDbPassword
());
return
entity
;
}
public
static
BizKnowledgeDatabaseDto
itemToDto
(
KnowledgeDatabaseQueryInfoQueryItem
item
)
{
BizKnowledgeDatabaseDto
bizKnowledgeDatabaseDto
=
new
BizKnowledgeDatabaseDto
();
bizKnowledgeDatabaseDto
.
setId
(
item
.
getId
());
bizKnowledgeDatabaseDto
.
setMemberId
(
item
.
getMemberId
());
bizKnowledgeDatabaseDto
.
setTitle
(
item
.
getTitle
());
bizKnowledgeDatabaseDto
.
setDesc
(
item
.
getDesc
());
bizKnowledgeDatabaseDto
.
setDbType
(
item
.
getDbType
());
bizKnowledgeDatabaseDto
.
setDbHost
(
item
.
getDbHost
());
bizKnowledgeDatabaseDto
.
setDbPort
(
item
.
getDbPort
());
bizKnowledgeDatabaseDto
.
setDbName
(
item
.
getDbName
());
bizKnowledgeDatabaseDto
.
setDbUsername
(
item
.
getDbUsername
());
bizKnowledgeDatabaseDto
.
setDbPassword
(
item
.
getDbPassword
());
return
bizKnowledgeDatabaseDto
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/dto/BizKnowledgeDatabaseDto.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
dto
;
public
class
BizKnowledgeDatabaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*主键
*/
private
java
.
lang
.
Long
id
;
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** member_id
*用户ID
*/
private
java
.
lang
.
Integer
memberId
;
public
java
.
lang
.
Integer
getMemberId
(){
return
this
.
memberId
;
}
public
void
setMemberId
(
java
.
lang
.
Integer
memberId
){
this
.
memberId
=
memberId
;
}
/** title
*数据库标题名
*/
private
java
.
lang
.
String
title
;
public
java
.
lang
.
String
getTitle
(){
return
this
.
title
;
}
public
void
setTitle
(
java
.
lang
.
String
title
){
this
.
title
=
title
;
}
/** desc
*描述
*/
private
java
.
lang
.
String
desc
;
public
java
.
lang
.
String
getDesc
(){
return
this
.
desc
;
}
public
void
setDesc
(
java
.
lang
.
String
desc
){
this
.
desc
=
desc
;
}
/** db_type
*数据库类型 -MYSQL
*/
private
java
.
lang
.
String
dbType
;
public
java
.
lang
.
String
getDbType
(){
return
this
.
dbType
;
}
public
void
setDbType
(
java
.
lang
.
String
dbType
){
this
.
dbType
=
dbType
;
}
/** db_host
*数据库HOST
*/
private
java
.
lang
.
String
dbHost
;
public
java
.
lang
.
String
getDbHost
(){
return
this
.
dbHost
;
}
public
void
setDbHost
(
java
.
lang
.
String
dbHost
){
this
.
dbHost
=
dbHost
;
}
/** db_port
*数据库端口
*/
private
java
.
lang
.
Integer
dbPort
;
public
java
.
lang
.
Integer
getDbPort
(){
return
this
.
dbPort
;
}
public
void
setDbPort
(
java
.
lang
.
Integer
dbPort
){
this
.
dbPort
=
dbPort
;
}
/** db_name
*数据库名
*/
private
java
.
lang
.
String
dbName
;
public
java
.
lang
.
String
getDbName
(){
return
this
.
dbName
;
}
public
void
setDbName
(
java
.
lang
.
String
dbName
){
this
.
dbName
=
dbName
;
}
/** db_username
*用户名
*/
private
java
.
lang
.
String
dbUsername
;
public
java
.
lang
.
String
getDbUsername
(){
return
this
.
dbUsername
;
}
public
void
setDbUsername
(
java
.
lang
.
String
dbUsername
){
this
.
dbUsername
=
dbUsername
;
}
/** db_password
*密码
*/
private
java
.
lang
.
String
dbPassword
;
public
java
.
lang
.
String
getDbPassword
(){
return
this
.
dbPassword
;
}
public
void
setDbPassword
(
java
.
lang
.
String
dbPassword
){
this
.
dbPassword
=
dbPassword
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/dto/DatabaseTestContentDto.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
dto
;
import
java.io.Serializable
;
/**
* @author alex.yao
* @date 2025/4/27
*/
public
class
DatabaseTestContentDto
implements
Serializable
{
private
String
status
;
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
}
src/main/java/cn/com/poc/knowledge/dto/KnowledgeDatabaseSearchDto.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
dto
;
import
java.io.Serializable
;
/**
* @author alex.yao
* @date 2025/4/27
*/
public
class
KnowledgeDatabaseSearchDto
implements
Serializable
{
private
String
search
;
public
String
getSearch
()
{
return
search
;
}
public
void
setSearch
(
String
search
)
{
this
.
search
=
search
;
}
}
src/main/java/cn/com/poc/knowledge/entity/BizKnowledgeDatabaseEntity.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
entity
;
public
class
BizKnowledgeDatabaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*主键
*/
private
java
.
lang
.
Long
id
;
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** member_id
*用户ID
*/
private
java
.
lang
.
Integer
memberId
;
public
java
.
lang
.
Integer
getMemberId
(){
return
this
.
memberId
;
}
public
void
setMemberId
(
java
.
lang
.
Integer
memberId
){
this
.
memberId
=
memberId
;
}
/** title
*数据库标题名
*/
private
java
.
lang
.
String
title
;
public
java
.
lang
.
String
getTitle
(){
return
this
.
title
;
}
public
void
setTitle
(
java
.
lang
.
String
title
){
this
.
title
=
title
;
}
/** desc
*描述
*/
private
java
.
lang
.
String
desc
;
public
java
.
lang
.
String
getDesc
(){
return
this
.
desc
;
}
public
void
setDesc
(
java
.
lang
.
String
desc
){
this
.
desc
=
desc
;
}
/** db_type
*数据库类型 -MYSQL
*/
private
java
.
lang
.
String
dbType
;
public
java
.
lang
.
String
getDbType
(){
return
this
.
dbType
;
}
public
void
setDbType
(
java
.
lang
.
String
dbType
){
this
.
dbType
=
dbType
;
}
/** db_host
*数据库HOST
*/
private
java
.
lang
.
String
dbHost
;
public
java
.
lang
.
String
getDbHost
(){
return
this
.
dbHost
;
}
public
void
setDbHost
(
java
.
lang
.
String
dbHost
){
this
.
dbHost
=
dbHost
;
}
/** db_port
*数据库端口
*/
private
java
.
lang
.
Integer
dbPort
;
public
java
.
lang
.
Integer
getDbPort
(){
return
this
.
dbPort
;
}
public
void
setDbPort
(
java
.
lang
.
Integer
dbPort
){
this
.
dbPort
=
dbPort
;
}
/** db_name
*数据库名
*/
private
java
.
lang
.
String
dbName
;
public
java
.
lang
.
String
getDbName
(){
return
this
.
dbName
;
}
public
void
setDbName
(
java
.
lang
.
String
dbName
){
this
.
dbName
=
dbName
;
}
/** db_username
*用户名
*/
private
java
.
lang
.
String
dbUsername
;
public
java
.
lang
.
String
getDbUsername
(){
return
this
.
dbUsername
;
}
public
void
setDbUsername
(
java
.
lang
.
String
dbUsername
){
this
.
dbUsername
=
dbUsername
;
}
/** db_password
*密码
*/
private
java
.
lang
.
String
dbPassword
;
public
java
.
lang
.
String
getDbPassword
(){
return
this
.
dbPassword
;
}
public
void
setDbPassword
(
java
.
lang
.
String
dbPassword
){
this
.
dbPassword
=
dbPassword
;
}
/** is_deleted
*是否删除 Y-是 N-否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/model/BizKnowledgeDatabaseModel.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
model
;
import
java.io.Serializable
;
import
cn.com.yict.framemax.data.model.BaseModelClass
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Id
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
javax.persistence.Version
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
/**
* Model class for biz_knowledge_database
* 知识库-关系型数据库配置
*/
@Entity
@Table
(
name
=
"biz_knowledge_database"
)
@DynamicInsert
@DynamicUpdate
public
class
BizKnowledgeDatabaseModel
extends
BaseModelClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*主键
*/
private
java
.
lang
.
Long
id
;
@Column
(
name
=
"id"
,
length
=
19
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
super
.
addValidField
(
"id"
);
}
/** member_id
*用户ID
*/
private
java
.
lang
.
Integer
memberId
;
@Column
(
name
=
"member_id"
,
length
=
10
)
public
java
.
lang
.
Integer
getMemberId
(){
return
this
.
memberId
;
}
public
void
setMemberId
(
java
.
lang
.
Integer
memberId
){
this
.
memberId
=
memberId
;
super
.
addValidField
(
"memberId"
);
}
/** title
*数据库标题名
*/
private
java
.
lang
.
String
title
;
@Column
(
name
=
"title"
,
length
=
50
)
public
java
.
lang
.
String
getTitle
(){
return
this
.
title
;
}
public
void
setTitle
(
java
.
lang
.
String
title
){
this
.
title
=
title
;
super
.
addValidField
(
"title"
);
}
/** desc
*描述
*/
private
java
.
lang
.
String
desc
;
@Column
(
name
=
"desc"
,
length
=
2147483647
)
public
java
.
lang
.
String
getDesc
(){
return
this
.
desc
;
}
public
void
setDesc
(
java
.
lang
.
String
desc
){
this
.
desc
=
desc
;
super
.
addValidField
(
"desc"
);
}
/** db_type
*数据库类型 -MYSQL
*/
private
java
.
lang
.
String
dbType
;
@Column
(
name
=
"db_type"
,
length
=
15
)
public
java
.
lang
.
String
getDbType
(){
return
this
.
dbType
;
}
public
void
setDbType
(
java
.
lang
.
String
dbType
){
this
.
dbType
=
dbType
;
super
.
addValidField
(
"dbType"
);
}
/** db_host
*数据库HOST
*/
private
java
.
lang
.
String
dbHost
;
@Column
(
name
=
"db_host"
,
length
=
150
)
public
java
.
lang
.
String
getDbHost
(){
return
this
.
dbHost
;
}
public
void
setDbHost
(
java
.
lang
.
String
dbHost
){
this
.
dbHost
=
dbHost
;
super
.
addValidField
(
"dbHost"
);
}
/** db_port
*数据库端口
*/
private
java
.
lang
.
Integer
dbPort
;
@Column
(
name
=
"db_port"
,
length
=
10
)
public
java
.
lang
.
Integer
getDbPort
(){
return
this
.
dbPort
;
}
public
void
setDbPort
(
java
.
lang
.
Integer
dbPort
){
this
.
dbPort
=
dbPort
;
super
.
addValidField
(
"dbPort"
);
}
/** db_name
*数据库名
*/
private
java
.
lang
.
String
dbName
;
@Column
(
name
=
"db_name"
,
length
=
100
)
public
java
.
lang
.
String
getDbName
(){
return
this
.
dbName
;
}
public
void
setDbName
(
java
.
lang
.
String
dbName
){
this
.
dbName
=
dbName
;
super
.
addValidField
(
"dbName"
);
}
/** db_username
*用户名
*/
private
java
.
lang
.
String
dbUsername
;
@Column
(
name
=
"db_username"
,
length
=
100
)
public
java
.
lang
.
String
getDbUsername
(){
return
this
.
dbUsername
;
}
public
void
setDbUsername
(
java
.
lang
.
String
dbUsername
){
this
.
dbUsername
=
dbUsername
;
super
.
addValidField
(
"dbUsername"
);
}
/** db_password
*密码
*/
private
java
.
lang
.
String
dbPassword
;
@Column
(
name
=
"db_password"
,
length
=
150
)
public
java
.
lang
.
String
getDbPassword
(){
return
this
.
dbPassword
;
}
public
void
setDbPassword
(
java
.
lang
.
String
dbPassword
){
this
.
dbPassword
=
dbPassword
;
super
.
addValidField
(
"dbPassword"
);
}
/** is_deleted
*是否删除 Y-是 N-否
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
,
length
=
50
)
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
super
.
addValidField
(
"isDeleted"
);
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
,
length
=
50
)
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
super
.
addValidField
(
"creator"
);
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
super
.
addValidField
(
"createdTime"
);
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
,
length
=
50
)
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
super
.
addValidField
(
"modifier"
);
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
super
.
addValidField
(
"modifiedTime"
);
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
super
.
addValidField
(
"sysVersion"
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/query/KnowledgeDatabaseQueryInfoQuery.sql
0 → 100644
View file @
7abe18b5
SELECT
id
,
member_id
,
title
,
`desc`
,
db_type
,
db_host
,
db_port
,
db_name
,
db_username
,
db_password
,
is_deleted
,
CREATOR
,
CREATED_TIME
,
MODIFIER
,
MODIFIED_TIME
,
SYS_VERSION
FROM
biz_knowledge_database
where
is_deleted
=
'N'
<<
and
member_id
=
:
memberId
>>
<<
and
title
=
:
search
>>
order
by
id
desc
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/query/KnowledgeDatabaseQueryInfoQueryCondition.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
query
;
import
java.io.Serializable
;
/**
* Query Condition class for KnowledgeDatabaseQueryInfoQuery
*/
public
class
KnowledgeDatabaseQueryInfoQueryCondition
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
java
.
lang
.
Integer
memberId
;
public
java
.
lang
.
Integer
getMemberId
(){
return
this
.
memberId
;
}
public
void
setMemberId
(
java
.
lang
.
Integer
memberId
){
this
.
memberId
=
memberId
;
}
private
java
.
lang
.
String
search
;
public
java
.
lang
.
String
getSearch
(){
return
this
.
search
;
}
public
void
setSearch
(
java
.
lang
.
String
search
){
this
.
search
=
search
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/query/KnowledgeDatabaseQueryInfoQueryItem.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
query
;
import
java.io.Serializable
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
cn.com.yict.framemax.data.model.BaseItemClass
;
/**
* Query Item class for KnowledgeDatabaseQueryInfoQuery
*/
@Entity
public
class
KnowledgeDatabaseQueryInfoQueryItem
extends
BaseItemClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*id
*/
private
java
.
lang
.
Long
id
;
@Column
(
name
=
"id"
)
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** member_id
*member_id
*/
private
java
.
lang
.
Integer
memberId
;
@Column
(
name
=
"member_id"
)
public
java
.
lang
.
Integer
getMemberId
(){
return
this
.
memberId
;
}
public
void
setMemberId
(
java
.
lang
.
Integer
memberId
){
this
.
memberId
=
memberId
;
}
/** title
*title
*/
private
java
.
lang
.
String
title
;
@Column
(
name
=
"title"
)
public
java
.
lang
.
String
getTitle
(){
return
this
.
title
;
}
public
void
setTitle
(
java
.
lang
.
String
title
){
this
.
title
=
title
;
}
/** desc
*desc
*/
private
java
.
lang
.
String
desc
;
@Column
(
name
=
"desc"
)
public
java
.
lang
.
String
getDesc
(){
return
this
.
desc
;
}
public
void
setDesc
(
java
.
lang
.
String
desc
){
this
.
desc
=
desc
;
}
/** db_type
*db_type
*/
private
java
.
lang
.
String
dbType
;
@Column
(
name
=
"db_type"
)
public
java
.
lang
.
String
getDbType
(){
return
this
.
dbType
;
}
public
void
setDbType
(
java
.
lang
.
String
dbType
){
this
.
dbType
=
dbType
;
}
/** db_host
*db_host
*/
private
java
.
lang
.
String
dbHost
;
@Column
(
name
=
"db_host"
)
public
java
.
lang
.
String
getDbHost
(){
return
this
.
dbHost
;
}
public
void
setDbHost
(
java
.
lang
.
String
dbHost
){
this
.
dbHost
=
dbHost
;
}
/** db_port
*db_port
*/
private
java
.
lang
.
Integer
dbPort
;
@Column
(
name
=
"db_port"
)
public
java
.
lang
.
Integer
getDbPort
(){
return
this
.
dbPort
;
}
public
void
setDbPort
(
java
.
lang
.
Integer
dbPort
){
this
.
dbPort
=
dbPort
;
}
/** db_name
*db_name
*/
private
java
.
lang
.
String
dbName
;
@Column
(
name
=
"db_name"
)
public
java
.
lang
.
String
getDbName
(){
return
this
.
dbName
;
}
public
void
setDbName
(
java
.
lang
.
String
dbName
){
this
.
dbName
=
dbName
;
}
/** db_username
*db_username
*/
private
java
.
lang
.
String
dbUsername
;
@Column
(
name
=
"db_username"
)
public
java
.
lang
.
String
getDbUsername
(){
return
this
.
dbUsername
;
}
public
void
setDbUsername
(
java
.
lang
.
String
dbUsername
){
this
.
dbUsername
=
dbUsername
;
}
/** db_password
*db_password
*/
private
java
.
lang
.
String
dbPassword
;
@Column
(
name
=
"db_password"
)
public
java
.
lang
.
String
getDbPassword
(){
return
this
.
dbPassword
;
}
public
void
setDbPassword
(
java
.
lang
.
String
dbPassword
){
this
.
dbPassword
=
dbPassword
;
}
/** is_deleted
*is_deleted
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
)
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*CREATOR
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
)
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*CREATED_TIME
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
)
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*MODIFIER
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
)
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*MODIFIED_TIME
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
)
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*SYS_VERSION
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
)
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/repository/BizKnowledgeDatabaseRepository.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
repository
;
import
cn.com.yict.framemax.data.repository.Repository
;
import
cn.com.poc.knowledge.model.BizKnowledgeDatabaseModel
;
public
interface
BizKnowledgeDatabaseRepository
extends
Repository
<
BizKnowledgeDatabaseModel
,
java
.
lang
.
Long
>
{
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/rest/DatabaseRest.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
rest
;
import
cn.com.poc.knowledge.dto.BizKnowledgeDatabaseDto
;
import
cn.com.poc.knowledge.dto.DatabaseTestContentDto
;
import
cn.com.poc.knowledge.dto.KnowledgeDatabaseSearchDto
;
import
cn.com.poc.knowledge.entity.BizKnowledgeDatabaseEntity
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Permission
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
@Permission
(
Access
.
Safety
)
public
interface
DatabaseRest
extends
BaseRest
{
/**
* 创建数据库连接信息
*
* @param dto
* @return
*/
BizKnowledgeDatabaseDto
create
(
@RequestBody
BizKnowledgeDatabaseDto
dto
);
/**
* 测试数据库连接
*
* @param dto
* @return
*/
DatabaseTestContentDto
testConnection
(
@RequestBody
BizKnowledgeDatabaseDto
dto
);
/**
* 获取数据库连接信息
*
* @param id
* @return
*/
BizKnowledgeDatabaseDto
get
(
@RequestParam
Integer
id
);
/**
* 获取数据库连接信息列表
*
* @param knowledgeDatabaseSearchDto
* @param pagingInfo
* @return
*/
List
<
BizKnowledgeDatabaseDto
>
getList
(
@RequestBody
KnowledgeDatabaseSearchDto
knowledgeDatabaseSearchDto
,
PagingInfo
pagingInfo
);
/**
* 删除数据库连接信息
*
* @param id 数据库信息ID
* @return 是否删除成功
*/
boolean
delete
(
@RequestParam
Integer
id
);
/**
* 更新数据库连接信息
*
* @param dto
* @return 更新后的数据库连接信息
*/
BizKnowledgeDatabaseDto
update
(
@RequestBody
BizKnowledgeDatabaseDto
dto
);
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/rest/impl/DatabaseRestImpl.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
rest
.
impl
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.DatabaseUtil
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.knowledge.convert.BizKnowledgeDatabaseConvert
;
import
cn.com.poc.knowledge.dto.BizKnowledgeDatabaseDto
;
import
cn.com.poc.knowledge.dto.DatabaseTestContentDto
;
import
cn.com.poc.knowledge.dto.KnowledgeDatabaseSearchDto
;
import
cn.com.poc.knowledge.entity.BizKnowledgeDatabaseEntity
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryCondition
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryItem
;
import
cn.com.poc.knowledge.rest.DatabaseRest
;
import
cn.com.poc.knowledge.service.BizKnowledgeDatabaseService
;
import
cn.com.poc.support.security.oauth.entity.UserBaseEntity
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
public
class
DatabaseRestImpl
implements
DatabaseRest
{
@Resource
private
BizKnowledgeDatabaseService
bizKnowledgeDatabaseService
;
@Override
public
BizKnowledgeDatabaseDto
create
(
BizKnowledgeDatabaseDto
dto
)
{
Assert
.
notNull
(
dto
,
"response can not be null"
);
Assert
.
notBlank
(
dto
.
getTitle
(),
"title can not be blank"
);
Assert
.
notBlank
(
dto
.
getDbHost
(),
"Database Host must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbType
(),
"Database Type must not be blank"
);
Assert
.
notNull
(
dto
.
getDbPort
(),
"Database Port must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbName
(),
"Database Name must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbUsername
(),
"Database Username must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbPassword
(),
"Database Password must not be blank"
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
Long
userId
=
userBaseEntity
.
getUserId
();
BizKnowledgeDatabaseEntity
bizKnowledgeDatabaseEntity
=
BizKnowledgeDatabaseConvert
.
dtoToEntity
(
dto
);
bizKnowledgeDatabaseEntity
.
setMemberId
(
userId
.
intValue
());
BizKnowledgeDatabaseEntity
saveEntity
=
bizKnowledgeDatabaseService
.
save
(
bizKnowledgeDatabaseEntity
);
if
(
saveEntity
==
null
)
{
throw
new
BusinessException
(
"create database error"
);
}
return
BizKnowledgeDatabaseConvert
.
entityToDto
(
saveEntity
);
}
@Override
public
DatabaseTestContentDto
testConnection
(
BizKnowledgeDatabaseDto
dto
)
{
Assert
.
notBlank
(
dto
.
getDbHost
(),
"Database Host must not be blank"
);
Assert
.
notNull
(
dto
.
getDbPort
(),
"Database Port must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbName
(),
"Database Name must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbUsername
(),
"Database Username must not be blank"
);
Assert
.
notBlank
(
dto
.
getDbPassword
(),
"Database Password must not be blank"
);
boolean
connect
=
DatabaseUtil
.
testConnect
(
dto
.
getDbHost
(),
dto
.
getDbPort
(),
dto
.
getDbName
(),
dto
.
getDbUsername
(),
dto
.
getDbPassword
());
DatabaseTestContentDto
result
=
new
DatabaseTestContentDto
();
result
.
setStatus
(
connect
?
"success"
:
"fail"
);
return
result
;
}
@Override
public
BizKnowledgeDatabaseDto
get
(
Integer
id
)
{
Assert
.
notNull
(
id
,
"id can not be null"
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
Long
userId
=
userBaseEntity
.
getUserId
();
BizKnowledgeDatabaseEntity
bizKnowledgeDatabaseEntity
=
bizKnowledgeDatabaseService
.
get
(
id
.
longValue
());
if
(
bizKnowledgeDatabaseEntity
==
null
&&
!
bizKnowledgeDatabaseEntity
.
getMemberId
().
equals
(
userId
.
intValue
()))
{
throw
new
BusinessException
(
"no database found"
);
}
return
BizKnowledgeDatabaseConvert
.
entityToDto
(
bizKnowledgeDatabaseEntity
);
}
@Override
public
List
<
BizKnowledgeDatabaseDto
>
getList
(
KnowledgeDatabaseSearchDto
knowledgeDatabaseSearchDto
,
PagingInfo
pagingInfo
)
{
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
Long
userId
=
userBaseEntity
.
getUserId
();
KnowledgeDatabaseQueryInfoQueryCondition
condition
=
new
KnowledgeDatabaseQueryInfoQueryCondition
();
condition
.
setMemberId
(
userId
.
intValue
());
if
(
StringUtils
.
isNotBlank
(
knowledgeDatabaseSearchDto
.
getSearch
()))
{
condition
.
setSearch
(
knowledgeDatabaseSearchDto
.
getSearch
());
}
List
<
KnowledgeDatabaseQueryInfoQueryItem
>
items
=
bizKnowledgeDatabaseService
.
queryKnowledgeDatabaseQueryInfo
(
condition
,
pagingInfo
);
List
<
BizKnowledgeDatabaseDto
>
result
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
items
))
{
result
=
items
.
stream
().
map
(
BizKnowledgeDatabaseConvert:
:
itemToDto
).
collect
(
Collectors
.
toList
());
}
return
result
;
}
@Override
public
boolean
delete
(
Integer
id
)
{
Assert
.
notNull
(
id
,
"id can not be null"
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
Long
userId
=
userBaseEntity
.
getUserId
();
BizKnowledgeDatabaseEntity
entity
=
bizKnowledgeDatabaseService
.
get
(
id
.
longValue
());
if
(
entity
==
null
)
{
return
false
;
}
if
(!
entity
.
getMemberId
().
equals
(
userId
.
intValue
()))
{
throw
new
BusinessException
(
"no permission"
);
}
bizKnowledgeDatabaseService
.
deletedById
(
id
.
longValue
());
return
true
;
}
@Override
public
BizKnowledgeDatabaseDto
update
(
BizKnowledgeDatabaseDto
dto
)
{
Assert
.
notNull
(
dto
,
"response can not be null"
);
Assert
.
notNull
(
dto
.
getId
(),
"id can not be null"
);
BizKnowledgeDatabaseEntity
bizKnowledgeDatabaseEntity
=
BizKnowledgeDatabaseConvert
.
dtoToEntity
(
dto
);
BizKnowledgeDatabaseEntity
updateEntity
=
bizKnowledgeDatabaseService
.
update
(
bizKnowledgeDatabaseEntity
);
if
(
updateEntity
==
null
)
{
throw
new
BusinessException
(
"update database info error"
);
}
return
BizKnowledgeDatabaseConvert
.
entityToDto
(
updateEntity
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/service/BizKnowledgeDatabaseService.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
service
;
import
cn.com.poc.knowledge.entity.BizKnowledgeDatabaseEntity
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryCondition
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryItem
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.List
;
public
interface
BizKnowledgeDatabaseService
extends
BaseService
{
BizKnowledgeDatabaseEntity
get
(
java
.
lang
.
Long
id
);
List
<
BizKnowledgeDatabaseEntity
>
findByExample
(
BizKnowledgeDatabaseEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizKnowledgeDatabaseEntity
save
(
BizKnowledgeDatabaseEntity
entity
);
BizKnowledgeDatabaseEntity
update
(
BizKnowledgeDatabaseEntity
entity
);
void
deletedById
(
java
.
lang
.
Long
id
);
List
<
KnowledgeDatabaseQueryInfoQueryItem
>
queryKnowledgeDatabaseQueryInfo
(
KnowledgeDatabaseQueryInfoQueryCondition
condition
,
PagingInfo
pagingInfo
);
Integer
[]
checkIsExist
(
Integer
[]
ids
,
Integer
memberId
);
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/service/impl/BizKnowledgeDatabaseServiceImpl.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
knowledge
.
service
.
impl
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.knowledge.convert.BizKnowledgeDatabaseConvert
;
import
cn.com.poc.knowledge.entity.BizKnowledgeDatabaseEntity
;
import
cn.com.poc.knowledge.model.BizKnowledgeDatabaseModel
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryCondition
;
import
cn.com.poc.knowledge.query.KnowledgeDatabaseQueryInfoQueryItem
;
import
cn.com.poc.knowledge.repository.BizKnowledgeDatabaseRepository
;
import
cn.com.poc.knowledge.service.BizKnowledgeDatabaseService
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.Assert
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
public
class
BizKnowledgeDatabaseServiceImpl
extends
BaseServiceImpl
implements
BizKnowledgeDatabaseService
{
@Resource
private
BizKnowledgeDatabaseRepository
repository
;
public
BizKnowledgeDatabaseEntity
get
(
java
.
lang
.
Long
id
)
{
Assert
.
notNull
(
id
);
BizKnowledgeDatabaseModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
==
null
)
{
return
null
;
}
if
(
CommonConstant
.
IsDeleted
.
Y
.
equals
(
model
.
getIsDeleted
()))
{
return
null
;
}
return
BizKnowledgeDatabaseConvert
.
modelToEntity
(
model
);
}
public
List
<
BizKnowledgeDatabaseEntity
>
findByExample
(
BizKnowledgeDatabaseEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
{
List
<
BizKnowledgeDatabaseEntity
>
result
=
new
ArrayList
<
BizKnowledgeDatabaseEntity
>();
BizKnowledgeDatabaseModel
model
=
new
BizKnowledgeDatabaseModel
();
if
(
example
!=
null
)
{
model
=
BizKnowledgeDatabaseConvert
.
entityToModel
(
example
);
}
model
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizKnowledgeDatabaseModel
>
models
=
this
.
repository
.
findByExample
(
model
,
pagingInfo
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
result
=
models
.
stream
().
map
(
BizKnowledgeDatabaseConvert:
:
modelToEntity
).
collect
(
Collectors
.
toList
());
}
return
result
;
}
public
BizKnowledgeDatabaseEntity
save
(
BizKnowledgeDatabaseEntity
entity
)
{
Assert
.
notNull
(
entity
);
entity
.
setId
(
null
);
entity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
BizKnowledgeDatabaseModel
model
=
BizKnowledgeDatabaseConvert
.
entityToModel
(
entity
);
BizKnowledgeDatabaseModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizKnowledgeDatabaseConvert
.
modelToEntity
(
saveModel
);
}
public
BizKnowledgeDatabaseEntity
update
(
BizKnowledgeDatabaseEntity
entity
)
{
Assert
.
notNull
(
entity
);
Assert
.
notNull
(
entity
.
getId
(),
"update pk can not be null"
);
BizKnowledgeDatabaseModel
model
=
this
.
repository
.
get
(
entity
.
getId
());
if
(
entity
.
getMemberId
()
!=
null
)
{
model
.
setMemberId
(
entity
.
getMemberId
());
}
if
(
entity
.
getTitle
()
!=
null
)
{
model
.
setTitle
(
entity
.
getTitle
());
}
if
(
entity
.
getDesc
()
!=
null
)
{
model
.
setDesc
(
entity
.
getDesc
());
}
if
(
entity
.
getDbType
()
!=
null
)
{
model
.
setDbType
(
entity
.
getDbType
());
}
if
(
entity
.
getDbHost
()
!=
null
)
{
model
.
setDbHost
(
entity
.
getDbHost
());
}
if
(
entity
.
getDbPort
()
!=
null
)
{
model
.
setDbPort
(
entity
.
getDbPort
());
}
if
(
entity
.
getDbName
()
!=
null
)
{
model
.
setDbName
(
entity
.
getDbName
());
}
if
(
entity
.
getDbUsername
()
!=
null
)
{
model
.
setDbUsername
(
entity
.
getDbUsername
());
}
if
(
entity
.
getDbPassword
()
!=
null
)
{
model
.
setDbPassword
(
entity
.
getDbPassword
());
}
if
(
entity
.
getIsDeleted
()
!=
null
)
{
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
}
if
(
entity
.
getCreator
()
!=
null
)
{
model
.
setCreator
(
entity
.
getCreator
());
}
if
(
entity
.
getCreatedTime
()
!=
null
)
{
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
}
if
(
entity
.
getModifier
()
!=
null
)
{
model
.
setModifier
(
entity
.
getModifier
());
}
if
(
entity
.
getModifiedTime
()
!=
null
)
{
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
}
if
(
entity
.
getSysVersion
()
!=
null
)
{
model
.
setSysVersion
(
entity
.
getSysVersion
());
}
BizKnowledgeDatabaseModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizKnowledgeDatabaseConvert
.
modelToEntity
(
saveModel
);
}
public
void
deletedById
(
java
.
lang
.
Long
id
)
{
Assert
.
notNull
(
id
);
BizKnowledgeDatabaseModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
!=
null
)
{
if
(
CommonConstant
.
IsDeleted
.
N
.
equals
(
model
.
getIsDeleted
()))
{
model
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
Y
);
this
.
repository
.
save
(
model
);
}
}
}
@Override
public
List
<
KnowledgeDatabaseQueryInfoQueryItem
>
queryKnowledgeDatabaseQueryInfo
(
KnowledgeDatabaseQueryInfoQueryCondition
condition
,
PagingInfo
pagingInfo
)
{
return
this
.
sqlDao
.
query
(
condition
,
KnowledgeDatabaseQueryInfoQueryItem
.
class
,
pagingInfo
);
}
@Override
public
Integer
[]
checkIsExist
(
Integer
[]
ids
,
Integer
memberId
)
{
List
<
Integer
>
result
=
new
ArrayList
<>();
for
(
Integer
id
:
ids
)
{
BizKnowledgeDatabaseModel
bizKnowledgeDatabaseModel
=
this
.
repository
.
get
(
id
.
longValue
());
if
(
bizKnowledgeDatabaseModel
==
null
||
CommonConstant
.
IsDeleted
.
Y
.
equals
(
bizKnowledgeDatabaseModel
.
getIsDeleted
())
||
!
bizKnowledgeDatabaseModel
.
getMemberId
().
equals
(
memberId
))
{
continue
;
}
result
.
add
(
id
);
}
return
result
.
toArray
(
new
Integer
[
0
]);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/AIDialogueService.java
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
aggregate
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult
;
...
...
@@ -32,4 +34,10 @@ public interface AIDialogueService {
* 判断是否需要Function Call
*/
FunctionCallResult
functionCall
(
FunctionCallResponse
response
);
/**
* 调用DB_CHAIN 接口
*/
DBChainResult
dbChain
(
DBChainResponse
response
);
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/impl/AIDialogueServiceImpl.java
View file @
7abe18b5
...
...
@@ -2,6 +2,8 @@ package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl;
import
cn.com.poc.common.utils.JsonUtils
;
import
cn.com.poc.thirdparty.resource.demand.ai.aggregate.AIDialogueService
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResponse
;
...
...
@@ -87,6 +89,18 @@ public class AIDialogueServiceImpl implements AIDialogueService {
return
dgToolsAbstractHttpClient
.
doRequest
(
url
,
response
,
headers
);
}
@Override
public
DBChainResult
dbChain
(
DBChainResponse
response
)
{
String
url
=
DgtoolsApiRoute
.
DgtoolsAI
.
DATABASE_CHAIN
;
response
.
setApiKey
(
API_KEY
);
List
<
Header
>
headers
=
new
ArrayList
<
Header
>()
{{
add
(
DgtoolsApiRoute
.
JSON_HEADER
);
add
(
DgtoolsApiRoute
.
AI_HEADER
);
add
(
new
BasicHeader
(
DgtoolsApiRoute
.
HEADER_X_PLATFORM_AUTHORIZATION
,
demandAuthService
.
getToken
()));
}};
return
dgToolsAbstractHttpClient
.
doRequest
(
url
,
response
,
headers
);
}
private
BufferedReader
largeModelStream
(
LargeModelDemandResponse
request
)
throws
IOException
{
String
jsonBody
=
dgToolsAbstractHttpClient
.
buildJson
(
request
);
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
();
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/dbchain/DBChainResponse.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
dbchain
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.request.AbstractRequest
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @author alex.yao
* @date 2025/4/27
*/
public
class
DBChainResponse
extends
AbstractRequest
<
DBChainResult
>
implements
Serializable
{
private
String
question
;
private
String
prompt
;
private
List
<
String
>
tableFilters
;
private
String
mysqlUser
;
private
String
mysqlPassword
;
private
String
mysqlHost
;
private
Integer
mysqlPort
;
private
String
mysqlDatabase
;
private
String
apiKey
;
public
String
getQuestion
()
{
return
question
;
}
public
void
setQuestion
(
String
question
)
{
this
.
question
=
question
;
}
public
String
getPrompt
()
{
return
prompt
;
}
public
void
setPrompt
(
String
prompt
)
{
this
.
prompt
=
prompt
;
}
public
List
<
String
>
getTableFilters
()
{
return
tableFilters
;
}
public
void
setTableFilters
(
List
<
String
>
tableFilters
)
{
this
.
tableFilters
=
tableFilters
;
}
public
String
getMysqlUser
()
{
return
mysqlUser
;
}
public
void
setMysqlUser
(
String
mysqlUser
)
{
this
.
mysqlUser
=
mysqlUser
;
}
public
String
getMysqlPassword
()
{
return
mysqlPassword
;
}
public
void
setMysqlPassword
(
String
mysqlPassword
)
{
this
.
mysqlPassword
=
mysqlPassword
;
}
public
String
getMysqlHost
()
{
return
mysqlHost
;
}
public
void
setMysqlHost
(
String
mysqlHost
)
{
this
.
mysqlHost
=
mysqlHost
;
}
public
Integer
getMysqlPort
()
{
return
mysqlPort
;
}
public
void
setMysqlPort
(
Integer
mysqlPort
)
{
this
.
mysqlPort
=
mysqlPort
;
}
public
String
getMysqlDatabase
()
{
return
mysqlDatabase
;
}
public
void
setMysqlDatabase
(
String
mysqlDatabase
)
{
this
.
mysqlDatabase
=
mysqlDatabase
;
}
public
String
getApiKey
()
{
return
apiKey
;
}
public
void
setApiKey
(
String
apiKey
)
{
this
.
apiKey
=
apiKey
;
}
@Override
public
String
getMethod
()
throws
Exception
{
return
null
;
}
@Override
public
String
toString
()
{
return
"DBChainResponse{"
+
"question='"
+
question
+
'\''
+
", prompt='"
+
prompt
+
'\''
+
", tableFilters="
+
tableFilters
+
", mysqlUser='"
+
mysqlUser
+
'\''
+
", mysqlPassword='"
+
mysqlPassword
+
'\''
+
", mysqlHost='"
+
mysqlHost
+
'\''
+
", mysqlPort="
+
mysqlPort
+
", mysqlDatabase='"
+
mysqlDatabase
+
'\''
+
", apiKey='"
+
apiKey
+
'\''
+
'}'
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/dbchain/DBChainResult.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
dbchain
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult
;
import
java.io.Serializable
;
/**
* @author alex.yao
* @date 2025/4/24
*/
public
class
DBChainResult
extends
AbstractResult
implements
Serializable
{
private
String
sql
;
private
String
sqlResult
;
private
String
result
;
public
String
getSql
()
{
return
sql
;
}
public
void
setSql
(
String
sql
)
{
this
.
sql
=
sql
;
}
public
String
getSqlResult
()
{
return
sqlResult
;
}
public
void
setSqlResult
(
String
sqlResult
)
{
this
.
sqlResult
=
sqlResult
;
}
public
String
getResult
()
{
return
result
;
}
public
void
setResult
(
String
result
)
{
this
.
result
=
result
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/largemodel/LargeModelDemandResult.java
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
largemodel
;
import
cn.com.poc.agent_application.entity.KnowledgeContentResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Usage
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction
;
import
java.io.Serializable
;
import
java.util.List
;
...
...
@@ -18,12 +19,22 @@ public class LargeModelDemandResult extends AbstractResult implements Serializab
private
ToolFunction
function
;
private
List
<
DBChainResult
>
dbChainResult
;
private
List
<
KnowledgeContentResult
>
knowledgeContentResult
;
private
String
finish_reason
;
private
Usage
usage
;
public
List
<
DBChainResult
>
getDbChainResult
()
{
return
dbChainResult
;
}
public
void
setDbChainResult
(
List
<
DBChainResult
>
dbChainResult
)
{
this
.
dbChainResult
=
dbChainResult
;
}
public
List
<
KnowledgeContentResult
>
getKnowledgeContentResult
()
{
return
knowledgeContentResult
;
}
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
View file @
7abe18b5
...
...
@@ -286,6 +286,11 @@ public interface DgtoolsApiRoute {
* Function Call 判断,判断是否需要Function Call
*/
String
FUNCTION_CALL
=
"largeModelRest/functionCall.json"
;
/**
* DB_CHAIN 调用
*/
String
DATABASE_CHAIN
=
"largeModelRest/dbChain.json"
;
}
interface
ClickHouse
{
...
...
src/main/java/cn/com/poc/thirdparty/service/ChainService.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
service
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
/**
* @author alex.yao
* @date 2025/4/27
*/
public
interface
ChainService
{
DBChainResult
dbChain
(
DBChainResponse
response
);
}
src/main/java/cn/com/poc/thirdparty/service/impl/ChainServiceImpl.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
thirdparty
.
service
.
impl
;
import
cn.com.poc.thirdparty.resource.demand.ai.aggregate.AIDialogueService
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
import
cn.com.poc.thirdparty.service.ChainService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* @author alex.yao
* @date 2025/4/27
*/
@Service
public
class
ChainServiceImpl
implements
ChainService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
ChainServiceImpl
.
class
);
@Resource
private
AIDialogueService
aiDialogueService
;
@Override
public
DBChainResult
dbChain
(
DBChainResponse
response
)
{
logger
.
info
(
"dbChain response : {}"
,
response
);
return
aiDialogueService
.
dbChain
(
response
);
}
}
src/test/java/cn/com/poc/utils/DatabaseUtilTest.java
0 → 100644
View file @
7abe18b5
package
cn
.
com
.
poc
.
utils
;
import
cn.com.poc.common.utils.DatabaseUtil
;
import
cn.com.yict.framemax.core.spring.SingleContextInitializer
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.web.WebAppConfiguration
;
/**
* @author alex.yao
* @date 2025/4/27
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
initializers
=
SingleContextInitializer
.
class
)
@WebAppConfiguration
public
class
DatabaseUtilTest
{
@Test
public
void
test_connection
()
{
String
host
=
"192.168.21.31"
;
int
port
=
3306
;
String
username
=
"poc_root"
;
String
password
=
"8dlb58a2836dc..."
;
String
database
=
"gsst_poc_sit"
;
System
.
out
.
println
(
DatabaseUtil
.
testConnect
(
host
,
port
,
username
,
password
,
database
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment