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
aa750d05
Commit
aa750d05
authored
Aug 11, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开始对接建发社区
parent
bc7a7251
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
857 additions
and
8 deletions
+857
-8
README.md
README.md
+12
-6
src/main/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplication.java
...konke/konkeaialibabamcp/KonkeAiAlibabaMcpApplication.java
+2
-0
src/main/java/com/ikonke/konkeaialibabamcp/config/JsonNullSerizlizer.java
...m/ikonke/konkeaialibabamcp/config/JsonNullSerizlizer.java
+17
-0
src/main/java/com/ikonke/konkeaialibabamcp/controller/CDCController.java
...om/ikonke/konkeaialibabamcp/controller/CDCController.java
+61
-0
src/main/java/com/ikonke/konkeaialibabamcp/entity/cdc/UserEntity.java
...a/com/ikonke/konkeaialibabamcp/entity/cdc/UserEntity.java
+462
-0
src/main/java/com/ikonke/konkeaialibabamcp/entity/mysql/CDCToken.java
...a/com/ikonke/konkeaialibabamcp/entity/mysql/CDCToken.java
+41
-0
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/CDCTokenMapper.java
...ikonke/konkeaialibabamcp/mapper/mysql/CDCTokenMapper.java
+17
-0
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
...konke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
+4
-2
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
...om/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
+100
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/spaces/SpacesService.java
...e/konkeaialibabamcp/service/cdc/spaces/SpacesService.java
+92
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ICDCTokenService.java
...keaialibabamcp/service/mysqlservice/ICDCTokenService.java
+10
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/ICDCTokenServiceImpl.java
...bamcp/service/mysqlservice/impl/ICDCTokenServiceImpl.java
+27
-0
src/main/resources/application.yml
src/main/resources/application.yml
+12
-0
No files found.
README.md
View file @
aa750d05
...
...
@@ -30,3 +30,9 @@
-
设置模式
-
设置风速
-
src/main/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplication.java
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp
;
import
com.ikonke.konkeaialibabamcp.aitools.DeviceTools
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.ai.tool.ToolCallbackProvider
;
import
org.springframework.ai.tool.method.MethodToolCallbackProvider
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.context.annotation.Bean
;
@MapperScan
(
"com.ikonke.konkeaialibabamcp.mapper.mysql"
)
@SpringBootApplication
public
class
KonkeAiAlibabaMcpApplication
{
...
...
src/main/java/com/ikonke/konkeaialibabamcp/config/JsonNullSerizlizer.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.config
;
import
cn.hutool.json.JSONNull
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
import
org.springframework.boot.jackson.JsonComponent
;
import
java.io.IOException
;
@JsonComponent
public
class
JsonNullSerizlizer
extends
JsonSerializer
<
JSONNull
>
{
@Override
public
void
serialize
(
JSONNull
jsonNull
,
JsonGenerator
jsonGenerator
,
SerializerProvider
serializerProvider
)
throws
IOException
{
jsonGenerator
.
writeNull
();
}
}
src/main/java/com/ikonke/konkeaialibabamcp/controller/CDCController.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.controller
;
import
cn.hutool.json.JSONArray
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils
;
import
com.ikonke.konkeaialibabamcp.service.cdc.spaces.SpacesService
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ICDCTokenService
;
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
;
import
java.time.LocalDateTime
;
@Slf4j
@RestController
@RequestMapping
(
"/cdc"
)
public
class
CDCController
{
@Autowired
private
ICDCTokenService
tokenService
;
@Autowired
private
SpacesService
spacesService
;
@GetMapping
(
"/synCDCToken"
)
public
boolean
synCDCToken
(
@RequestParam
(
name
=
"token"
)
String
token
,
@RequestParam
(
name
=
"sn"
)
String
sn
,
@RequestParam
(
name
=
"ccuName"
)
String
ccuName
){
log
.
info
(
"synCDCToken..同步CDCToken..token:{},sn:{},ccuName:{}"
,
token
,
sn
,
ccuName
);
CDCToken
bySn
=
tokenService
.
findBySn
(
sn
);
if
(
bySn
==
null
){
bySn
=
new
CDCToken
();
bySn
.
setSn
(
sn
);
bySn
.
setAccessToken
(
token
);
bySn
.
setState
(
CDCToken
.
STATE_ENABLED
);
bySn
.
setCcuId
(
ccuName
);
bySn
.
setCreateTime
(
LocalDateTime
.
now
());
tokenService
.
save
(
bySn
);
}
else
{
CdcHttpUtils
.
CDCTokenCache
.
remove
(
sn
);
bySn
.
setAccessToken
(
token
);
bySn
.
setRefreshToken
(
bySn
.
getAccessToken
());
bySn
.
setState
(
CDCToken
.
STATE_ENABLED
);
bySn
.
setCreateTime
(
LocalDateTime
.
now
());
bySn
.
setCcuId
(
ccuName
);
tokenService
.
updateById
(
bySn
);
}
return
true
;
}
@GetMapping
(
"/getSpacesList"
)
public
JSONArray
getSpacesList
(
@RequestParam
(
name
=
"sn"
)
String
sn
){
log
.
info
(
"getSpacesList..获取空间列表..sn:{}"
,
sn
);
return
spacesService
.
findAll
(
sn
);
}
}
src/main/java/com/ikonke/konkeaialibabamcp/entity/cdc/UserEntity.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.entity.cdc
;
import
cn.hutool.json.JSONObject
;
import
java.io.Serializable
;
public
class
UserEntity
implements
Serializable
{
/**
* "ownerId": "daba385082d5437083c1efe00e6fc330",
* "realName": "王馨馨",
* "headPic": "1792477034739462145",
* "nickName": "逗逗",
* "phoneNum": "17301979197",
* "birthday": "1989-12-31",
* "gender": 2,
* "email": "",
* "openid": "o-Vcz46M_hJrTHGuAViIg-hx2Sk8",
* "ownerRoom": {
* "communityId": "zhzjgc",
* "communityName": "中航紫金",
* "buildingId": "zhzjgc-25",
* "buildingName": "25",
* "unitId": "1",
* "floorName": "25",
* "roomId": "temp_nanningshuangxi8501",
* "roomName": "南宁双玺-8-501",
* "brand": "KONKE",
* "gateway": "A8960948EAA4",
* "id": "9",
* "createBy": "13148016353",
* "createTime": "2023-06-13T14:39:45",
* "updateBy": "13148016353",
* "updateTime": "2023-06-13T14:39:45",
* "voiceRepeatCount": 3
* },
* "communityId": "test_temp_do_not_delete",
* "easId": "temp_nanningshuangxi8501",
* "roomInfo": {
* "roomId": "0e6c5b63d4c04164805537ea0bb6d44c",
* "roomZshId": "",
* "communityId": "test_temp_do_not_delete",
* "buildingId": "0FF56B49-741C-4166-99B8-AED00159AE86",
* "roomName": "南宁双玺-8-501",
* "easId": "temp_nanningshuangxi8501",
* "jfCode": "0e6c5b63d4c04164805537ea0bb6d44c",
* "status": "1",
* "createBy": "thread_user",
* "createTime": "2022-07-22 11:08:32",
* "updateBy": "thread_user",
* "updateTime": "2022-07-22 11:08:32",
* "tenantId": "1",
* "remark": "住宅",
* "params": {}
* }
*/
public
String
ownerId
;
public
String
realName
;
public
String
headPic
;
public
String
nickName
;
public
String
phoneNum
;
public
String
birthday
;
public
String
gender
;
public
String
email
;
public
String
openid
;
public
String
communityId
;
public
String
easId
;
public
OwnerRoom
ownerRoom
;
public
RoomInfo
roomInfo
;
public
String
getOwnerId
()
{
return
ownerId
;
}
public
void
setOwnerId
(
String
ownerId
)
{
this
.
ownerId
=
ownerId
;
}
public
String
getRealName
()
{
return
realName
;
}
public
void
setRealName
(
String
realName
)
{
this
.
realName
=
realName
;
}
public
String
getHeadPic
()
{
return
headPic
;
}
public
void
setHeadPic
(
String
headPic
)
{
this
.
headPic
=
headPic
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
public
String
getPhoneNum
()
{
return
phoneNum
;
}
public
void
setPhoneNum
(
String
phoneNum
)
{
this
.
phoneNum
=
phoneNum
;
}
public
String
getBirthday
()
{
return
birthday
;
}
public
void
setBirthday
(
String
birthday
)
{
this
.
birthday
=
birthday
;
}
public
String
getGender
()
{
return
gender
;
}
public
void
setGender
(
String
gender
)
{
this
.
gender
=
gender
;
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getOpenid
()
{
return
openid
;
}
public
void
setOpenid
(
String
openid
)
{
this
.
openid
=
openid
;
}
public
String
getCommunityId
()
{
return
communityId
;
}
public
void
setCommunityId
(
String
communityId
)
{
this
.
communityId
=
communityId
;
}
public
String
getEasId
()
{
return
easId
;
}
public
void
setEasId
(
String
easId
)
{
this
.
easId
=
easId
;
}
public
OwnerRoom
getOwnerRoom
()
{
return
ownerRoom
;
}
public
void
setOwnerRoom
(
OwnerRoom
ownerRoom
)
{
this
.
ownerRoom
=
ownerRoom
;
}
public
RoomInfo
getRoomInfo
()
{
return
roomInfo
;
}
public
void
setRoomInfo
(
RoomInfo
roomInfo
)
{
this
.
roomInfo
=
roomInfo
;
}
public
static
class
OwnerRoom
{
public
String
communityId
;
public
String
communityName
;
public
String
buildingId
;
public
String
buildingName
;
public
String
unitId
;
public
String
floorName
;
public
String
roomId
;
public
String
roomName
;
public
String
brand
;
public
String
gateway
;
public
String
id
;
public
String
createBy
;
public
String
createTime
;
public
String
updateBy
;
public
String
updateTime
;
public
String
voiceRepeatCount
;
public
String
getCommunityId
()
{
return
communityId
;
}
public
void
setCommunityId
(
String
communityId
)
{
this
.
communityId
=
communityId
;
}
public
String
getCommunityName
()
{
return
communityName
;
}
public
void
setCommunityName
(
String
communityName
)
{
this
.
communityName
=
communityName
;
}
public
String
getBuildingId
()
{
return
buildingId
;
}
public
void
setBuildingId
(
String
buildingId
)
{
this
.
buildingId
=
buildingId
;
}
public
String
getBuildingName
()
{
return
buildingName
;
}
public
void
setBuildingName
(
String
buildingName
)
{
this
.
buildingName
=
buildingName
;
}
public
String
getUnitId
()
{
return
unitId
;
}
public
void
setUnitId
(
String
unitId
)
{
this
.
unitId
=
unitId
;
}
public
String
getFloorName
()
{
return
floorName
;
}
public
void
setFloorName
(
String
floorName
)
{
this
.
floorName
=
floorName
;
}
public
String
getRoomId
()
{
return
roomId
;
}
public
void
setRoomId
(
String
roomId
)
{
this
.
roomId
=
roomId
;
}
public
String
getRoomName
()
{
return
roomName
;
}
public
void
setRoomName
(
String
roomName
)
{
this
.
roomName
=
roomName
;
}
public
String
getBrand
()
{
return
brand
;
}
public
void
setBrand
(
String
brand
)
{
this
.
brand
=
brand
;
}
public
String
getGateway
()
{
return
gateway
;
}
public
void
setGateway
(
String
gateway
)
{
this
.
gateway
=
gateway
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getCreateBy
()
{
return
createBy
;
}
public
void
setCreateBy
(
String
createBy
)
{
this
.
createBy
=
createBy
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
String
getUpdateBy
()
{
return
updateBy
;
}
public
void
setUpdateBy
(
String
updateBy
)
{
this
.
updateBy
=
updateBy
;
}
public
String
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
String
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
String
getVoiceRepeatCount
()
{
return
voiceRepeatCount
;
}
public
void
setVoiceRepeatCount
(
String
voiceRepeatCount
)
{
this
.
voiceRepeatCount
=
voiceRepeatCount
;
}
}
public
static
class
RoomInfo
{
public
String
roomId
;
public
String
roomZshId
;
public
String
communityId
;
public
String
buildingId
;
public
String
roomName
;
public
String
easId
;
public
String
jfCode
;
public
String
status
;
public
String
createBy
;
public
String
createTime
;
public
String
updateBy
;
public
String
updateTime
;
public
String
tenantId
;
public
String
remark
;
public
JSONObject
params
;
public
String
getRoomId
()
{
return
roomId
;
}
public
void
setRoomId
(
String
roomId
)
{
this
.
roomId
=
roomId
;
}
public
String
getRoomZshId
()
{
return
roomZshId
;
}
public
void
setRoomZshId
(
String
roomZshId
)
{
this
.
roomZshId
=
roomZshId
;
}
public
String
getCommunityId
()
{
return
communityId
;
}
public
void
setCommunityId
(
String
communityId
)
{
this
.
communityId
=
communityId
;
}
public
String
getBuildingId
()
{
return
buildingId
;
}
public
void
setBuildingId
(
String
buildingId
)
{
this
.
buildingId
=
buildingId
;
}
public
String
getRoomName
()
{
return
roomName
;
}
public
void
setRoomName
(
String
roomName
)
{
this
.
roomName
=
roomName
;
}
public
String
getEasId
()
{
return
easId
;
}
public
void
setEasId
(
String
easId
)
{
this
.
easId
=
easId
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
public
String
getJfCode
()
{
return
jfCode
;
}
public
void
setJfCode
(
String
jfCode
)
{
this
.
jfCode
=
jfCode
;
}
public
String
getCreateBy
()
{
return
createBy
;
}
public
void
setCreateBy
(
String
createBy
)
{
this
.
createBy
=
createBy
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
String
getUpdateBy
()
{
return
updateBy
;
}
public
void
setUpdateBy
(
String
updateBy
)
{
this
.
updateBy
=
updateBy
;
}
public
String
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
String
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
String
getTenantId
()
{
return
tenantId
;
}
public
void
setTenantId
(
String
tenantId
)
{
this
.
tenantId
=
tenantId
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
public
JSONObject
getParams
()
{
return
params
;
}
public
void
setParams
(
JSONObject
params
)
{
this
.
params
=
params
;
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/entity/mysql/CDCToken.java
0 → 100644
View file @
aa750d05
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
;
import
java.time.LocalDateTime
;
@Data
@TableName
(
"`cdc_token`"
)
public
class
CDCToken
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@TableField
(
"sn"
)
private
String
sn
;
@TableField
(
"ccuId"
)
private
String
ccuId
;
@TableField
(
"accessToken"
)
private
String
accessToken
;
@TableField
(
"refreshToken"
)
private
String
refreshToken
;
@TableField
(
"createTime"
)
private
LocalDateTime
createTime
;
@TableField
(
"state"
)
private
Integer
state
;
public
static
final
Integer
STATE_DISABLED
=
0
;
// 不可用
public
static
final
Integer
STATE_ENABLED
=
1
;
// 可用
}
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/CDCTokenMapper.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.mapper.mysql
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
@Mapper
public
interface
CDCTokenMapper
extends
BaseMapper
<
CDCToken
>
{
@Select
(
"SELECT * FROM cdc_token WHERE sn = #{sn}"
)
CDCToken
findBySn
(
@Param
(
"sn"
)
String
sn
);
@Select
(
"SELECT * FROM cdc_token WHERE sn = #{sn} and `state` = #{state}"
)
CDCToken
findBySnAndState
(
@Param
(
"sn"
)
String
sn
,
@Param
(
"state"
)
Integer
state
);
}
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/SynDeviceMapper.java
View file @
aa750d05
...
...
@@ -3,6 +3,7 @@ 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.Param
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
...
...
@@ -10,9 +11,10 @@ import java.util.List;
@Mapper
public
interface
SynDeviceMapper
extends
BaseMapper
<
SynDevice
>
{
List
<
SynDevice
>
findByCcu
(
String
ccuName
);
@Select
(
"SELECT * FROM syn_device WHERE ccuId = #{ccuId}"
)
List
<
SynDevice
>
findByCcu
(
@Param
(
"ccuId"
)
String
ccuId
);
@Select
(
"SELECT * FROM syn_device WHERE deviceName LIKE CONCAT('%',#{deviceName},'%') AND roomName LIKE CONCAT('%',#{roomName},'%')"
)
List
<
SynDevice
>
findByDeviceNameAndRoomName
(
String
deviceName
,
String
roomName
);
List
<
SynDevice
>
findByDeviceNameAndRoomName
(
@Param
(
"deviceName"
)
String
deviceName
,
@Param
(
"roomName"
)
String
roomName
);
}
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.service.cdc
;
import
cn.hutool.cache.Cache
;
import
cn.hutool.cache.CacheUtil
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ikonke.konkeaialibabamcp.entity.cdc.UserEntity
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ICDCTokenService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
CdcHttpUtils
{
public
static
Cache
<
String
,
String
>
CDCTokenCache
=
CacheUtil
.
newLRUCache
(
1024
);
@Value
(
"${cdc.getOwnerUrl}"
)
private
String
getOwnerUrl
;
@Value
(
"${cdc.timeout}"
)
private
Integer
timeout
;
@Autowired
private
ICDCTokenService
tokenService
;
/**
* 获取用户信息
*
*/
public
UserEntity
getOwner
(
CDCToken
bySn
){
String
body
=
HttpRequest
.
get
(
getOwnerUrl
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
bySn
.
getSn
())
.
timeout
(
timeout
)
.
execute
().
body
();
if
(
CDCTokenCache
.
get
(
bySn
.
getSn
())!=
null
){
String
s
=
CDCTokenCache
.
get
(
bySn
.
getSn
());
return
JSONUtil
.
toBean
(
s
,
UserEntity
.
class
);
}
else
{
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
body
);
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
UserEntity
userEntity
=
JSONUtil
.
toBean
(
jsonObject
.
getJSONObject
(
"data"
),
UserEntity
.
class
);
CDCTokenCache
.
put
(
bySn
.
getSn
(),
jsonObject
.
getJSONObject
(
"data"
).
toString
());
return
userEntity
;
}
else
{
return
null
;
}
}
}
/**
* get请求
*/
public
String
get
(
String
url
,
String
sn
)
{
long
start
=
System
.
currentTimeMillis
();
log
.
info
(
"建发get请求:url:{},sn:{}"
,
url
,
sn
);
CDCToken
bySn
=
tokenService
.
findBySn
(
sn
);
UserEntity
userEntity
=
getOwner
(
bySn
);
String
body
=
HttpRequest
.
get
(
url
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
sn
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
.
header
(
"gateway"
,
sn
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
timeout
(
20000
)
//超时,毫秒
.
execute
().
body
();
log
.
info
(
"建发get请求结果:url:{},sn:{},body:{},耗时:{}"
,
url
,
sn
,
body
,
System
.
currentTimeMillis
()-
start
);
return
body
;
}
public
String
post
(
String
url
,
String
sn
,
String
body
)
{
long
start
=
System
.
currentTimeMillis
();
log
.
info
(
"建发post请求:url:{},sn:{},body:{}"
,
url
,
sn
,
body
);
CDCToken
bySn
=
tokenService
.
findBySn
(
sn
);
UserEntity
userEntity
=
getOwner
(
bySn
);
String
result
=
HttpRequest
.
post
(
url
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
sn
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
.
header
(
"gateway"
,
sn
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
body
(
body
)
.
timeout
(
20000
)
.
execute
().
body
();
log
.
info
(
"建发post请求结果:url:{},sn:{},body:{},耗时:{}"
,
url
,
sn
,
result
,
System
.
currentTimeMillis
()-
start
);
return
result
;
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/spaces/SpacesService.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.service.cdc.spaces
;
import
cn.hutool.core.exceptions.StatefulException
;
import
cn.hutool.json.JSONArray
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
SpacesService
{
@Value
(
"${cdc.url}"
)
private
String
cdcUrl
;
@Value
(
"${cdc.getListSpacesRoomUrl}"
)
private
String
getListSpacesRoomUrl
;
@Value
(
"${cdc.getSpacesRoomDetailUrl}"
)
private
String
getSpacesRoomDetailUrl
;
@Value
(
"${cdc.getSpacesRoomBookingUrl}"
)
private
String
getSpacesRoomBookingUrl
;
@Autowired
private
CdcHttpUtils
cdcHttpUtils
;
// 查询所有空间
public
JSONArray
findAll
(
String
sn
)
{
// 小区功能区列表
String
s
=
cdcHttpUtils
.
get
(
getListSpacesRoomUrl
,
sn
);
JSONObject
spacesJson
=
new
JSONObject
(
s
);
if
(
spacesJson
.
getInt
(
"code"
)
!=
200
){
throw
new
StatefulException
(
51
,
"查询会所空间列表失败"
);
}
else
{
JSONArray
data
=
spacesJson
.
getJSONArray
(
"data"
);
JSONArray
spacesList
=
data
.
getJSONArray
(
1
);
JSONArray
response
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
spacesList
.
size
();
i
++){
JSONObject
response_spaces
=
new
JSONObject
();
JSONObject
jsonObject
=
spacesList
.
getJSONObject
(
i
);
String
status
=
jsonObject
.
getStr
(
"status"
);
//0=正常;1=维护中(任何时段都不可预定)
String
name
=
jsonObject
.
getStr
(
"name"
);
//空间名
String
type
=
jsonObject
.
getStr
(
"type"
);
//1=共享型,2=独占式,3=仅展示,4=跳转小程序
String
id
=
jsonObject
.
getStr
(
"id"
);
Integer
main_userCount
=
jsonObject
.
getInt
(
"userCount"
);
//当前里面的用户数,每日凌晨改成0
if
(
main_userCount
==
null
){
main_userCount
=
0
;
}
String
subspaceType
=
jsonObject
.
getStr
(
"subspaceType"
);
//0:单独空间 1:内分子空间
response_spaces
.
set
(
"场所ID"
,
id
);
response_spaces
.
set
(
"场所名称"
,
name
);
response_spaces
.
set
(
"当前场所里面的用户数"
,
main_userCount
);
if
(
"0"
.
equals
(
status
)
&&
(
"1"
.
equals
(
type
)
||
"2"
.
equals
(
type
))
&&
"1"
.
equals
(
subspaceType
)){
//查详情-子空间
String
s1
=
cdcHttpUtils
.
get
(
getSpacesRoomDetailUrl
+
id
,
sn
);
JSONObject
spacesRoomDetailJson
=
JSONUtil
.
parseObj
(
s1
);
if
(
spacesRoomDetailJson
.
getInt
(
"code"
)
==
200
){
JSONObject
result
=
spacesRoomDetailJson
.
getJSONObject
(
"data"
);
Integer
userCount
=
result
.
getInt
(
"userCount"
);
//当前里面的用户数,每日凌晨改成0
if
(
userCount
==
null
){
userCount
=
0
;
}
Integer
maxUser
=
result
.
getInt
(
"maxUser"
);
//推荐使用最多人数
JSONArray
subspacePd
=
result
.
getJSONArray
(
"subspacePd"
);
//子空间
JSONArray
child
=
new
JSONArray
();
for
(
int
j
=
0
;
j
<
subspacePd
.
size
();
j
++){
JSONObject
jsonObject1
=
subspacePd
.
getJSONObject
(
j
);
String
subspacePdName
=
jsonObject1
.
getStr
(
"name"
);
String
subspacePdId
=
jsonObject1
.
getStr
(
"id"
);
JSONObject
childJsonObject
=
new
JSONObject
();
childJsonObject
.
set
(
"房间名称"
,
subspacePdName
);
childJsonObject
.
set
(
"房间ID"
,
subspacePdId
);
childJsonObject
.
set
(
"当前房间里面的用户数"
,
userCount
);
child
.
set
(
childJsonObject
);
}
response_spaces
.
set
(
"subspacePd"
,
child
);
}
}
response
.
set
(
response_spaces
);
}
return
response
;
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ICDCTokenService.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.service.mysqlservice
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
public
interface
ICDCTokenService
extends
IService
<
CDCToken
>
{
CDCToken
findBySn
(
String
sn
);
CDCToken
findBySn
(
String
sn
,
Integer
state
);
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/ICDCTokenServiceImpl.java
0 → 100644
View file @
aa750d05
package
com.ikonke.konkeaialibabamcp.service.mysqlservice.impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.CDCToken
;
import
com.ikonke.konkeaialibabamcp.mapper.mysql.CDCTokenMapper
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ICDCTokenService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
public
class
ICDCTokenServiceImpl
extends
ServiceImpl
<
CDCTokenMapper
,
CDCToken
>
implements
ICDCTokenService
{
@Autowired
private
CDCTokenMapper
cdcTokenMapper
;
@Override
public
CDCToken
findBySn
(
String
sn
)
{
return
baseMapper
.
findBySn
(
sn
);
}
@Override
public
CDCToken
findBySn
(
String
sn
,
Integer
state
)
{
return
baseMapper
.
findBySnAndState
(
sn
,
state
);
}
}
src/main/resources/application.yml
View file @
aa750d05
...
...
@@ -27,6 +27,10 @@ spring:
prompt
:
true
completion
:
true
mybatis-plus
:
mapper-locations
:
classpath*:/mapper/**/*.xml
type-aliases-package
:
com.ikonke.konkeaialibabamcp.entity.mysql
konke
:
weather
:
clientId
:
da4c19db2be64671
...
...
@@ -34,3 +38,11 @@ konke:
appId
:
10001304
appKey
:
0c350d82-aa95-46e1-91b8-b8d508b5226a
baseUrl
:
http://172.17.12.6:10000
cdc
:
timeout
:
20000
url
:
http://community.jfzhtest.com/prod-api
getOwnerUrl
:
${cdc.url}/system/screen/owner/info
getListSpacesRoomUrl
:
${cdc.url}/third/screen/spaces/rooms
getSpacesRoomDetailUrl
:
${cdc.url}/third/screen/spaces/room/
getSpacesRoomBookingUrl
:
${cdc.url}/third/screen/spaces/room/times
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