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
7ad22855
Commit
7ad22855
authored
Aug 07, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
天气,同步设备等
parent
d6c0a972
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
324 additions
and
8 deletions
+324
-8
pom.xml
pom.xml
+12
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
...ava/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
+34
-4
src/main/java/com/ikonke/konkeaialibabamcp/controller/DeviceController.java
...ikonke/konkeaialibabamcp/controller/DeviceController.java
+35
-0
src/main/java/com/ikonke/konkeaialibabamcp/entity/mysql/SynDevice.java
.../com/ikonke/konkeaialibabamcp/entity/mysql/SynDevice.java
+40
-0
src/main/java/com/ikonke/konkeaialibabamcp/entity/package-info.java
...ava/com/ikonke/konkeaialibabamcp/entity/package-info.java
+0
-1
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
...konke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
+18
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/SycDeviceService.java
...om/ikonke/konkeaialibabamcp/service/SycDeviceService.java
+107
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ISynDeviceService.java
...eaialibabamcp/service/mysqlservice/ISynDeviceService.java
+11
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/SynDeviceServiceImpl.java
...bamcp/service/mysqlservice/impl/SynDeviceServiceImpl.java
+17
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/package-info.java
...va/com/ikonke/konkeaialibabamcp/service/package-info.java
+0
-1
src/main/java/com/ikonke/konkeaialibabamcp/utils/WeatherUtils.java
...java/com/ikonke/konkeaialibabamcp/utils/WeatherUtils.java
+42
-0
src/main/resources/application.yml
src/main/resources/application.yml
+8
-2
No files found.
pom.xml
View file @
7ad22855
...
@@ -76,6 +76,18 @@
...
@@ -76,6 +76,18 @@
<artifactId>
spring-boot-starter-test
</artifactId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
${mysql.version}
</version>
</dependency>
<!-- mybatisPlus的依赖-->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-spring-boot3-starter
</artifactId>
<version>
3.5.12
</version>
</dependency>
<dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<groupId>
cn.hutool
</groupId>
...
...
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
View file @
7ad22855
...
@@ -2,8 +2,10 @@ package com.ikonke.konkeaialibabamcp.aitools;
...
@@ -2,8 +2,10 @@ package com.ikonke.konkeaialibabamcp.aitools;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.DeviceStatus
;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.DeviceStatus
;
import
com.ikonke.konkeaialibabamcp.service.SycDeviceService
;
import
com.ikonke.konkeaialibabamcp.service.mongdbservice.DeviceStatusService
;
import
com.ikonke.konkeaialibabamcp.service.mongdbservice.DeviceStatusService
;
import
com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils
;
import
com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils
;
import
com.ikonke.konkeaialibabamcp.utils.WeatherUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.ai.tool.annotation.Tool
;
import
org.springframework.ai.tool.annotation.Tool
;
import
org.springframework.ai.tool.annotation.ToolParam
;
import
org.springframework.ai.tool.annotation.ToolParam
;
...
@@ -15,15 +17,19 @@ public class DeviceTools {
...
@@ -15,15 +17,19 @@ public class DeviceTools {
private
final
DeviceStatusService
deviceStatusUtil
;
private
final
DeviceStatusService
deviceStatusUtil
;
private
final
KonkeIotUtils
konkeIotServer
;
private
final
KonkeIotUtils
konkeIotServer
;
public
DeviceTools
(
DeviceStatusService
deviceStatusUtil
,
KonkeIotUtils
konkeIotServer
){
private
final
SycDeviceService
sycDeviceService
;
private
final
WeatherUtils
weatherUtils
;
public
DeviceTools
(
DeviceStatusService
deviceStatusUtil
,
KonkeIotUtils
konkeIotServer
,
SycDeviceService
sycDeviceService
,
WeatherUtils
weatherUtils
){
this
.
deviceStatusUtil
=
deviceStatusUtil
;
this
.
deviceStatusUtil
=
deviceStatusUtil
;
this
.
konkeIotServer
=
konkeIotServer
;
this
.
konkeIotServer
=
konkeIotServer
;
this
.
sycDeviceService
=
sycDeviceService
;
this
.
weatherUtils
=
weatherUtils
;
}
}
@Tool
(
description
=
"根据主机号和设备ID查询设备状态信息."
)
@Tool
(
description
=
"根据主机号和设备ID查询设备状态信息."
)
public
DeviceStatus
findDeviceState
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
public
DeviceStatus
findDeviceState
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
Integer
devId
)
{
@ToolParam
(
description
=
"设备ID"
)
Integer
devId
)
{
log
.
info
(
"
DeviceTools:findDeviceState
....ccuName:{},devId:{}"
,
ccuName
,
devId
);
log
.
info
(
"
根据主机号和设备ID查询设备状态信息
....ccuName:{},devId:{}"
,
ccuName
,
devId
);
return
deviceStatusUtil
.
findUserByUserId
(
ccuName
,
devId
);
return
deviceStatusUtil
.
findUserByUserId
(
ccuName
,
devId
);
}
}
...
@@ -31,16 +37,40 @@ public class DeviceTools {
...
@@ -31,16 +37,40 @@ public class DeviceTools {
public
String
optDeviceOpen
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
public
String
optDeviceOpen
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
log
.
info
(
"
DeviceTools:optDeviceOpen
....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
log
.
info
(
"
根据主机号和设备ID控制打开设备
....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceOpen
(
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceOpen
(
ccuName
,
devId
,
operateId
);
}
}
@Tool
(
description
=
"根据主机号和设备ID控制关闭设备"
)
@Tool
(
description
=
"根据主机号和设备ID控制关闭设备"
)
public
String
optDeviceClosed
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
public
String
optDeviceClosed
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
log
.
info
(
"
DeviceTools:optDeviceClosed
....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
log
.
info
(
"
根据主机号和设备ID控制关闭设备
....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceClosed
(
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceClosed
(
ccuName
,
devId
,
operateId
);
}
}
@Tool
(
description
=
"根据主机号同步设备"
)
public
boolean
synchronousDevice
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
){
log
.
info
(
"根据主机号同步设备....ccuName:{}"
,
ccuName
);
return
sycDeviceService
.
synchronousDevice
(
ccuName
);
}
@Tool
(
description
=
"根据城市名查询当前的天气"
)
public
String
getWeatherNow
(
@ToolParam
(
description
=
"城市,如:成都、西安"
)
String
city
){
log
.
info
(
"根据城市名查询当前的天气....city:{}"
,
city
);
return
weatherUtils
.
getWeatherNow
(
city
);
}
@Tool
(
description
=
"根据城市名查询未来24小时的天气"
)
public
String
getWeatherHourly
(
@ToolParam
(
description
=
"城市,如:成都、西安"
)
String
city
){
log
.
info
(
"根据城市名查询未来24小时的天气...city:{}"
,
city
);
return
weatherUtils
.
getWeatherHourly
(
city
);
}
@Tool
(
description
=
"根据城市名查询未来7天的天气"
)
public
String
getWeatherDaily
(
@ToolParam
(
description
=
"城市,如:成都、西安"
)
String
city
){
log
.
info
(
"根据城市名查询未来7天的天气....city:{}"
,
city
);
return
weatherUtils
.
getWeatherDaily
(
city
);
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/controller/DeviceController.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.controller
;
import
cn.hutool.json.JSONArray
;
import
com.ikonke.konkeaialibabamcp.service.SycDeviceService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@RestController
@RequestMapping
(
"/deviceController"
)
public
class
DeviceController
{
@Autowired
private
SycDeviceService
sycDeviceService
;
@GetMapping
(
"/findSycDeviceByCcu"
)
public
JSONArray
findSycDeviceByCcu
(
@RequestParam
(
name
=
"ccuName"
)
String
ccuName
){
log
.
info
(
"findSycDeviceByCcu..根据主机号查询设备..ccuName:{}"
,
ccuName
);
return
sycDeviceService
.
findByCcu
(
ccuName
);
}
@GetMapping
(
"/synchronousDevice"
)
public
Boolean
synchronousDevice
(
@RequestParam
(
value
=
"ccuName"
)
String
ccuName
)
{
log
.
info
(
"synchronousDevice..同步设备..ccuName:{}"
,
ccuName
);
return
sycDeviceService
.
synchronousDevice
(
ccuName
);
}
}
src/main/java/com/ikonke/konkeaialibabamcp/entity/mysql/SynDevice.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.entity.mysql
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serial
;
import
java.io.Serializable
;
@Data
@TableName
(
"`syn_device`"
)
public
class
SynDevice
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@TableField
(
"deviceId"
)
private
Integer
deviceId
;
@TableField
(
"deviceName"
)
private
String
deviceName
;
@TableField
(
"operateId"
)
private
String
operateId
;
@TableField
(
"roomId"
)
private
Integer
roomId
;
@TableField
(
"roomName"
)
private
String
roomName
;
@TableField
(
"description"
)
private
String
description
;
@TableField
(
"actions"
)
private
String
actions
;
@TableField
(
"additionalApplianceDetails"
)
private
String
additionalApplianceDetails
;
@TableField
(
"type"
)
private
Integer
type
;
@TableField
(
"ccuId"
)
private
String
ccuId
;
}
src/main/java/com/ikonke/konkeaialibabamcp/entity/package-info.java
deleted
100644 → 0
View file @
d6c0a972
package
com.ikonke.konkeaialibabamcp.entity
;
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.mapper.mysql
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
@Mapper
public
interface
SynDeviceMapper
extends
BaseMapper
<
SynDevice
>
{
List
<
SynDevice
>
findByCcu
(
String
ccuName
);
@Select
(
"SELECT * FROM syn_device WHERE deviceName LIKE CONCAT('%',#{deviceName},'%') AND roomName LIKE CONCAT('%',#{roomName},'%')"
)
List
<
SynDevice
>
findByDeviceNameAndRoomName
(
String
deviceName
,
String
roomName
);
}
src/main/java/com/ikonke/konkeaialibabamcp/service/SycDeviceService.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.service
;
import
cn.hutool.core.exceptions.StatefulException
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.Device
;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.Region
;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.Room
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ISynDeviceService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
@Component
public
class
SycDeviceService
{
@Autowired
private
ISynDeviceService
synDeviceService
;
@Autowired
private
MongoTemplate
mongoTemplate
;
public
JSONArray
findByCcu
(
String
ccuName
){
log
.
info
(
"findByCcu..根据主机号查询设备..ccuName:{}"
,
ccuName
);
QueryWrapper
<
SynDevice
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"ccuId"
,
ccuName
);
List
<
SynDevice
>
list
=
synDeviceService
.
list
(
wrapper
);
JSONArray
jsonArray
=
new
JSONArray
();
if
(!
list
.
isEmpty
()){
for
(
SynDevice
synDevice
:
list
)
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
set
(
"deviceId"
,
synDevice
.
getDeviceId
());
jsonObject
.
set
(
"deviceName"
,
synDevice
.
getDeviceName
());
jsonObject
.
set
(
"roomId"
,
synDevice
.
getRoomId
());
jsonObject
.
set
(
"roomName"
,
synDevice
.
getRoomName
());
jsonObject
.
set
(
"operateId"
,
synDevice
.
getOperateId
());
jsonArray
.
set
(
jsonObject
);
}
}
return
jsonArray
;
}
public
boolean
synchronousDevice
(
String
ccuName
)
{
log
.
info
(
"synchronousDevice..同步设备..ccuName:{}"
,
ccuName
);
//查询房间信息
Query
regionQuery
=
new
Query
(
Criteria
.
where
(
"ccuName"
).
is
(
ccuName
));
List
<
Region
>
region
=
mongoTemplate
.
find
(
regionQuery
,
Region
.
class
);
if
(
region
.
size
()
!=
1
)
{
log
.
error
(
"主机:{} 没有找到匹配的房间"
,
ccuName
);
throw
new
StatefulException
(-
1
,
"没有房间信息"
);
}
List
<
Room
>
rooms
=
region
.
get
(
0
).
getRooms
();
//查询设备信息
Query
regionQuery2
=
new
Query
(
Criteria
.
where
(
"ccuName"
).
is
(
ccuName
));
List
<
Device
>
device
=
mongoTemplate
.
find
(
regionQuery2
,
Device
.
class
);
if
(
device
.
isEmpty
())
{
log
.
error
(
"主机:{} 没有找到匹配的设备"
,
ccuName
);
throw
new
StatefulException
(-
2
,
"没有设备信息"
);
}
//查询场景 todo
List
<
SynDevice
>
synDeviceList
=
getSynDevices
(
ccuName
,
device
,
rooms
);
log
.
debug
(
"要保存的设备:{}"
,
JSONUtil
.
toJsonStr
(
synDeviceList
));
synDeviceService
.
remove
(
new
QueryWrapper
<
SynDevice
>().
eq
(
"ccuId"
,
ccuName
));
return
synDeviceService
.
saveBatch
(
synDeviceList
);
}
@NotNull
private
static
List
<
SynDevice
>
getSynDevices
(
String
ccuName
,
List
<
Device
>
device
,
List
<
Room
>
rooms
)
{
List
<
SynDevice
>
synDeviceList
=
new
ArrayList
<>();
for
(
Device
d
:
device
){
if
(
d
.
getRoomId
()
==
-
1
){
continue
;
}
SynDevice
synDevice
=
new
SynDevice
();
synDevice
.
setDeviceId
(
d
.
getDevId
());
synDevice
.
setDeviceName
(
d
.
getName
());
synDevice
.
setOperateId
(
String
.
valueOf
(
d
.
getRealType
()));
synDevice
.
setRoomId
(
d
.
getRoomId
());
for
(
Room
room
:
rooms
){
if
(
room
.
getId
().
equals
(
d
.
getRoomId
())){
synDevice
.
setRoomName
(
room
.
getName
());
}
}
synDevice
.
setType
(
1
);
synDevice
.
setCcuId
(
ccuName
);
synDeviceList
.
add
(
synDevice
);
}
return
synDeviceList
;
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ISynDeviceService.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.service.mysqlservice
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice
;
import
java.util.List
;
public
interface
ISynDeviceService
extends
IService
<
SynDevice
>
{
List
<
SynDevice
>
findByCcu
(
String
ccuName
);
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/SynDeviceServiceImpl.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.service.mysqlservice.impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice
;
import
com.ikonke.konkeaialibabamcp.mapper.mysql.SynDeviceMapper
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ISynDeviceService
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
public
class
SynDeviceServiceImpl
extends
ServiceImpl
<
SynDeviceMapper
,
SynDevice
>
implements
ISynDeviceService
{
@Override
public
List
<
SynDevice
>
findByCcu
(
String
ccuName
)
{
return
baseMapper
.
findByCcu
(
ccuName
);
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/package-info.java
deleted
100644 → 0
View file @
d6c0a972
package
com.ikonke.konkeaialibabamcp.service
;
src/main/java/com/ikonke/konkeaialibabamcp/utils/WeatherUtils.java
0 → 100644
View file @
7ad22855
package
com.ikonke.konkeaialibabamcp.utils
;
import
cn.hutool.http.HttpRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
WeatherUtils
{
@Value
(
"${konke.weather.clientId}"
)
private
String
clientId
;
private
final
static
String
weatherNowUrl
=
"https://kapp.ikonke.com/weather/v1/now?location="
;
private
final
static
String
weatherHourlyUrl
=
"https://kapp.ikonke.com/weather/v1/hourly?location="
;
private
final
static
String
weatherDailyUrl
=
"https://kapp.ikonke.com/weather/v1/daily?location="
;
public
String
getWeatherNow
(
String
city
)
{
String
url
=
weatherNowUrl
+
city
;
return
HttpRequest
.
get
(
url
)
.
header
(
"clientId"
,
clientId
)
.
execute
().
body
();
}
public
String
getWeatherHourly
(
String
city
)
{
String
url
=
weatherHourlyUrl
+
city
;
return
HttpRequest
.
get
(
url
)
.
header
(
"clientId"
,
clientId
)
.
execute
().
body
();
}
public
String
getWeatherDaily
(
String
city
)
{
String
url
=
weatherDailyUrl
+
city
;
return
HttpRequest
.
get
(
url
)
.
header
(
"clientId"
,
clientId
)
.
execute
().
body
();
}
}
src/main/resources/application.yml
View file @
7ad22855
...
@@ -2,8 +2,12 @@ server:
...
@@ -2,8 +2,12 @@ server:
port
:
9998
port
:
9998
spring
:
spring
:
main
:
datasource
:
banner-mode
:
off
type
:
com.zaxxer.hikari.HikariDataSource
url
:
jdbc:mysql://172.17.3.7:3306/ai_alibaba?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowMultiQueries=true&tinyInt1isBit=false&allowLoadLocalInfile=true&allowLocalInfile=true&allowUrl
username
:
root
password
:
RbNosaRd9)?_xKG9
driver-class-name
:
com.mysql.cj.jdbc.Driver
data
:
data
:
mongodb
:
mongodb
:
uri
:
mongodb://user002:konke2025@172.17.13.1:27017,172.17.13.2:27017,172.17.13.3:27017/konke_iot?authSource=konke_iot&authMechanism=SCRAM-SHA-1
uri
:
mongodb://user002:konke2025@172.17.13.1:27017,172.17.13.2:27017,172.17.13.3:27017/konke_iot?authSource=konke_iot&authMechanism=SCRAM-SHA-1
...
@@ -24,6 +28,8 @@ spring:
...
@@ -24,6 +28,8 @@ spring:
completion
:
true
completion
:
true
konke
:
konke
:
weather
:
clientId
:
da4c19db2be64671
deviceCloud
:
deviceCloud
:
appId
:
10001304
appId
:
10001304
appKey
:
0c350d82-aa95-46e1-91b8-b8d508b5226a
appKey
:
0c350d82-aa95-46e1-91b8-b8d508b5226a
...
...
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