Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
konke-ai-alibaba-mcp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何金镒
konke-ai-alibaba-mcp
Commits
4a4c9824
Commit
4a4c9824
authored
Oct 22, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化场景推荐
parent
38c91ae9
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
162 additions
and
11 deletions
+162
-11
src/main/java/com/ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
...ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
+1
-2
src/main/java/com/ikonke/konkeaialibabamcp/controller/open/DeviceController2.java
.../konkeaialibabamcp/controller/open/DeviceController2.java
+43
-0
src/main/java/com/ikonke/konkeaialibabamcp/controller/param/ResultResp.java
...ikonke/konkeaialibabamcp/controller/param/ResultResp.java
+53
-0
src/main/java/com/ikonke/konkeaialibabamcp/event/listener/DifyChatSteamEventListener.java
...alibabamcp/event/listener/DifyChatSteamEventListener.java
+19
-5
src/main/resources/application-test.yml
src/main/resources/application-test.yml
+4
-3
src/main/resources/application.yml
src/main/resources/application.yml
+1
-1
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
.../konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
+41
-0
No files found.
src/main/java/com/ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
View file @
4a4c9824
...
@@ -2,6 +2,7 @@ package com.ikonke.konkeaialibabamcp.controller;
...
@@ -2,6 +2,7 @@ package com.ikonke.konkeaialibabamcp.controller;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.json.JSON
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
...
@@ -268,8 +269,6 @@ public class DifyControllerV2 {
...
@@ -268,8 +269,6 @@ public class DifyControllerV2 {
tokenService
.
save
(
bySn
);
tokenService
.
save
(
bySn
);
}
}
}
}
String
answer
=
difyStreamResponse
.
getAnswer
();
String
answer
=
difyStreamResponse
.
getAnswer
();
if
(
StrUtil
.
isBlank
(
answer
)){
if
(
StrUtil
.
isBlank
(
answer
)){
return
""
;
return
""
;
...
...
src/main/java/com/ikonke/konkeaialibabamcp/controller/open/DeviceController2.java
0 → 100644
View file @
4a4c9824
package
com.ikonke.konkeaialibabamcp.controller.open
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
com.ikonke.konkeaialibabamcp.controller.param.ResultResp
;
import
com.ikonke.konkeaialibabamcp.service.SycDeviceService
;
import
com.ikonke.konkeaialibabamcp.utils.CcuUtils
;
import
com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@Slf4j
@RestController
@RequestMapping
(
"/device"
)
public
class
DeviceController2
{
@Autowired
private
SycDeviceService
sycDeviceService
;
@Autowired
private
KonkeIotUtils
konkeIotServer
;
@GetMapping
(
"/triggerScene"
)
public
ResultResp
triggerScene
(
@RequestParam
(
value
=
"ccuName"
)
String
ccuName
,
@RequestParam
(
value
=
"sceneId"
)
String
sceneId
){
log
.
info
(
"triggerScene--->根据主机号和场景ID触发场景....ccuName:{},sceneId:{}"
,
ccuName
,
sceneId
);
return
ResultResp
.
setDate
(
konkeIotServer
.
optScene
(
CcuUtils
.
getCcuName
(
ccuName
),
sceneId
));
}
@PostMapping
(
"/saveTemporaryScene"
)
public
ResultResp
saveTemporaryScene
(
@RequestParam
(
value
=
"ccuName"
)
String
ccuName
,
@RequestParam
(
value
=
"temporarySceneId"
)
String
temporarySceneId
)
{
log
.
info
(
"saveTemporaryScene..临时场景存储..ccuName:{},temporarySceneId:{}"
,
ccuName
,
temporarySceneId
);
if
(
konkeIotServer
.
saveTemporaryScene
(
ccuName
,
temporarySceneId
)){
return
ResultResp
.
setDate
(
"保存成功"
);
}
else
{
return
ResultResp
.
setBadDate
(
"保存失败"
);
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/controller/param/ResultResp.java
0 → 100644
View file @
4a4c9824
package
com.ikonke.konkeaialibabamcp.controller.param
;
import
lombok.Data
;
@Data
public
class
ResultResp
<
T
>
{
/**
* response error code to client
*/
private
int
code
=
0
;
/**
* response error message to client
*/
private
String
info
=
""
;
/**
* response data to client.
*/
private
T
data
=
null
;
private
String
messageId
;
public
ResultResp
()
{
this
(
200
,
"SUCCESS"
);
}
public
ResultResp
(
Integer
code
,
String
info
)
{
setCode
(
code
);
setInfo
(
info
);
}
public
static
ResultResp
badRequest
()
{
ResultResp
resp
=
new
ResultResp
(
400
,
"bad request."
);
return
resp
;
}
public
static
ResultResp
setBadDate
(
Object
t
){
ResultResp
resp
=
new
ResultResp
(
400
,
"bad request."
);
resp
.
setData
(
t
);
return
resp
;
}
public
static
ResultResp
setDate
(
Object
t
){
ResultResp
resp
=
new
ResultResp
();
resp
.
setCode
(
200
);
resp
.
setInfo
(
"SUCCESS"
);
resp
.
setData
(
t
);
return
resp
;
}
}
src/main/java/com/ikonke/konkeaialibabamcp/event/listener/DifyChatSteamEventListener.java
View file @
4a4c9824
package
com.ikonke.konkeaialibabamcp.event.listener
;
package
com.ikonke.konkeaialibabamcp.event.listener
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
com.ikonke.konkeaialibabamcp.event.mode.DifyChatSteamEvent
;
import
com.ikonke.konkeaialibabamcp.event.mode.DifyChatSteamEvent
;
...
@@ -54,19 +56,31 @@ public class DifyChatSteamEventListener {
...
@@ -54,19 +56,31 @@ public class DifyChatSteamEventListener {
.
timeout
(
600000
)
.
timeout
(
600000
)
.
execute
().
body
();
.
execute
().
body
();
log
.
info
(
"【{}】:dify请求返回:{}"
,
event
.
getSn
(),
ai_result
);
log
.
info
(
"dify请求返回11--->:{}"
,
ai_result
);
ai_result
=
ai_result
.
replaceAll
(
"\n"
,
""
).
trim
();
log
.
info
(
"dify请求返回22--->:{}"
,
ai_result
);
// String result_end = ai_result.replaceAll("(?m)^\\s*$[\r\n]*", "").replaceAll("[\r\n]+", "\n").replaceAll("[\r\n]", "").trim();
JSONObject
json
=
new
JSONObject
();
// log.info("dify请求返回2--->:{}",result_end);
if
(!
JSONUtil
.
isTypeJSON
(
ai_result
)){
json
.
put
(
"msg"
,
ai_result
);
json
.
put
(
"type"
,
"other"
);
}
else
{
json
=
JSONUtil
.
parseObj
(
ai_result
);
if
(!
json
.
containsKey
(
"type"
)){
json
.
put
(
"type"
,
"other"
);
}
}
log
.
info
(
"【{}】:dify请求返回:{}"
,
event
.
getSn
(),
json
);
// 通过WebSocket发送消息给屏端
// 通过WebSocket发送消息给屏端
webSocketUtil
.
sendToSingle
(
event
.
getSn
(),
ai_result
);
webSocketUtil
.
sendToSingle
(
event
.
getSn
(),
json
.
toString
()
);
log
.
info
(
"【{}】:dify异步请求耗时--->:{}"
,
event
.
getSn
(),
System
.
currentTimeMillis
()
-
startTime
);
log
.
info
(
"【{}】:dify异步请求耗时--->:{}"
,
event
.
getSn
(),
System
.
currentTimeMillis
()
-
startTime
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
Thread
.
currentThread
().
interrupt
();
e
.
printStackTrace
();
e
.
printStackTrace
();
Thread
.
currentThread
().
interrupt
();
}
}
}
}
...
...
src/main/resources/application-test.yml
View file @
4a4c9824
...
@@ -34,8 +34,9 @@ logging:
...
@@ -34,8 +34,9 @@ logging:
file
:
file
:
path
:
./log/${server.port}
path
:
./log/${server.port}
pattern
:
pattern
:
file
:
'
%d{yyyy/MM/dd
HH:mm:ss.SSS}
%-5level
[%X{traceId:-}][%thread]
%logger{15}
:
%msg%n'
file
:
'
%d{yyyy/MM/dd
HH:mm:ss.SSS}
%-5level
[%X{traceId:-},%X{spanId:-}][%thread]
%logger{15}
:
%msg%n'
console
:
'
%d{yyyy/MM/dd
HH:mm:ss.SSS}
%clr(%-5level)
[%X{traceId:-}][%magenta(%thread)]
%cyan(%logger{15})
:
%msg%n'
console
:
'
%d{yyyy/MM/dd
HH:mm:ss.SSS}
%clr(%-5level)
[%X{traceId:-},%X{spanId:-}][%magenta(%thread)]
%cyan(%logger{15})
:
%msg%n'
# level: "%5p [${spring.application.name},%X{traceId},%X{spanId}]"
logback
:
logback
:
rollingpolicy
:
rollingpolicy
:
max-history
:
30
max-history
:
30
...
@@ -59,4 +60,4 @@ cdc:
...
@@ -59,4 +60,4 @@ cdc:
mcpAuthorization
:
Bearer mcp_client_konke_RTbMcnztTce6lxP6blB24zlK26H0XJHx
mcpAuthorization
:
Bearer mcp_client_konke_RTbMcnztTce6lxP6blB24zlK26H0XJHx
timeout
:
20000
timeout
:
20000
url
:
http://community.jfzhtest.com/prod-api
url
:
http://community.jfzhtest.com/prod-api
difyChatSteamMessages
:
http://1
72.17.12.12
:${server.port}
difyChatSteamMessages
:
http://1
27.0.0.1
:${server.port}
src/main/resources/application.yml
View file @
4a4c9824
...
@@ -4,7 +4,7 @@ server:
...
@@ -4,7 +4,7 @@ server:
spring
:
spring
:
profiles
:
profiles
:
active
:
prod
active
:
test
ai
:
ai
:
mcp
:
mcp
:
server
:
server
:
...
...
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
View file @
4a4c9824
...
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
...
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ikonke.konkeaialibabamcp.constant.RedisKeys
;
import
com.ikonke.konkeaialibabamcp.constant.RedisKeys
;
import
com.ikonke.konkeaialibabamcp.service.cdc.spaces.SpacesService
;
import
com.ikonke.konkeaialibabamcp.service.cdc.spaces.SpacesService
;
import
com.ikonke.konkeaialibabamcp.utils.CDCUtils
;
import
com.ikonke.konkeaialibabamcp.utils.CDCUtils
;
...
@@ -47,6 +48,46 @@ class KonkeAiAlibabaMcpApplicationTests {
...
@@ -47,6 +48,46 @@ class KonkeAiAlibabaMcpApplicationTests {
// }
// }
// }
// }
// @Test
// void testJSOn(){
// String ai_result = "{\n" +
// "\"msg\":\"场景名称:睡眠模式" +
// "场景动作:" +
// "主灯:关闭" +
// "单路调光面板:关闭" +
// "智能灯带:关闭\"," +
// "\"sceneid\":\"1\"," +
// "\"type\":\"scene\"" +
// "}";
//
//
// JSONObject json = new JSONObject();
// if(!JSONUtil.isTypeJSON(ai_result)){
// json.put("msg", ai_result);
// json.put("type", "other");
// }else{
// json = JSONUtil.parseObj(ai_result);
// if(!json.containsKey("type")){
// json.put("type", "other");
// }
// }
//
//
// System.out.println("---->"+json);
// }
// @Test
// @Test
// void testSpacesService() {
// void testSpacesService() {
// JSONObject appointmentTimeByRoomId = spacesService.getAppointmentTimeByRoomId(sn, date, roomId, subspaceId);
// JSONObject appointmentTimeByRoomId = spacesService.getAppointmentTimeByRoomId(sn, date, roomId, subspaceId);
...
...
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