Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄嘉阳
/
iot-platform-server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
f38cf4c1
authored
Oct 09, 2023
by
朱淼
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'dev' of
http://git.xmmakeit.com/huangjiay/iot-platform-server
into dev
parents
8012bdbd
ab289d3e
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
93 additions
and
21 deletions
server-api/src/main/java/com/makeit/api/external/controller/IotPlatExternalController.java
server-api/src/main/java/com/makeit/api/external/util/RSAUtils.java
server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatTenantDTOVO.java
server-common/src/main/java/com/makeit/module/iot/service/IotCommonService.java
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
server-common/src/main/java/com/makeit/utils/msg/sender/SmsVoiceSender.java
server-common/src/main/java/com/makeit/utils/user/common/CommonUserUtil.java
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderReportMonthServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantServiceImpl.java
server-service/src/main/java/com/makeit/task/IotSyncTask.java
server-api/src/main/java/com/makeit/api/external/controller/IotPlatExternalController.java
View file @
f38cf4c1
...
...
@@ -13,6 +13,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.elder.PlatElderService
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.vo.platform.alarm.PlatAlarmRecordVO
;
import
com.makeit.vo.platform.device.PlatDeviceListVO
;
import
com.makeit.vo.platform.elder.PlatElderListVO
;
...
...
@@ -45,6 +46,10 @@ public class IotPlatExternalController {
@TenantIdIgnore
@AuthIgnore
public
ApiResponseEntity
<
PageVO
<
PlatElderListVO
>>
elderPage
(
@RequestBody
PageReqDTO
<
PlatElderQueryDTO
>
page
)
{
PlatElderQueryDTO
dto
=
page
.
getData
();
if
(
dto
==
null
||
StringUtils
.
isEmpty
(
dto
.
getOrgId
()))
{
return
ApiResponseUtils
.
success
(
new
PageVO
<>());
}
return
ApiResponseUtils
.
success
(
platElderService
.
page
(
page
));
}
...
...
@@ -54,6 +59,10 @@ public class IotPlatExternalController {
@TenantIdIgnore
@AuthIgnore
public
ApiResponseEntity
<
PageVO
<
PlatDeviceListVO
>>
devicePage
(
@RequestBody
PageReqDTO
<
PlatDeviceQueryDTO
>
pageReqDTO
)
{
PlatDeviceQueryDTO
dto
=
pageReqDTO
.
getData
();
if
(
dto
==
null
||
StringUtils
.
isEmpty
(
dto
.
getOrgId
()))
{
return
ApiResponseUtils
.
success
(
new
PageVO
<>());
}
return
ApiResponseUtils
.
success
(
platDeviceService
.
page
(
pageReqDTO
));
}
...
...
@@ -62,8 +71,12 @@ public class IotPlatExternalController {
@PostMapping
(
"alarmRecordPage"
)
@TenantIdIgnore
@AuthIgnore
public
ApiResponseEntity
<
PageVO
<
PlatAlarmRecordVO
>>
page
(
@RequestBody
PageReqDTO
<
PlatAlarmRecordQueryDTO
>
dto
)
{
return
ApiResponseUtils
.
success
(
platAlarmRecordService
.
page
(
dto
));
public
ApiResponseEntity
<
PageVO
<
PlatAlarmRecordVO
>>
page
(
@RequestBody
PageReqDTO
<
PlatAlarmRecordQueryDTO
>
pageReqDTO
)
{
PlatAlarmRecordQueryDTO
dto
=
pageReqDTO
.
getData
();
if
(
dto
==
null
||
StringUtils
.
isEmpty
(
dto
.
getOrgId
()))
{
return
ApiResponseUtils
.
success
(
new
PageVO
<>());
}
return
ApiResponseUtils
.
success
(
platAlarmRecordService
.
page
(
pageReqDTO
));
}
@ApiOperation
(
"处理告警回调"
)
...
...
server-api/src/main/java/com/makeit/api/external/util/RSAUtils.java
View file @
f38cf4c1
...
...
@@ -38,11 +38,12 @@ public class RSAUtils {
System
.
out
.
println
(
keys
);
RSAPublicKey
publicKey
=
getPublicKey
(
keys
.
get
(
"publicKey"
));
RSAPrivateKey
privateKey
=
getPrivateKey
(
keys
.
get
(
"privateKey"
));
String
encrypt
=
publicEncrypt
(
"{\"page\":1,\"limit\":10,\"data\":{}}"
,
publicKey
,
"UTF-8"
);
System
.
out
.
println
(
encrypt
);
RSAPrivateKey
privateKey
=
getPrivateKey
(
keys
.
get
(
"privateKey"
));
String
decrypt
=
privateDecrypt
(
encrypt
,
privateKey
,
"UTF-8"
);
System
.
out
.
println
(
decrypt
);
...
...
@@ -120,7 +121,8 @@ public class RSAUtils {
try
{
Cipher
cipher
=
Cipher
.
getInstance
(
RSA_ALGORITHM
);
cipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
publicKey
);
return
Base64
.
encodeBase64URLSafeString
(
rsaSplitCodec
(
cipher
,
Cipher
.
ENCRYPT_MODE
,
data
.
getBytes
(
encoding
),
publicKey
.
getModulus
().
bitLength
()));
return
Base64
.
encodeBase64URLSafeString
(
rsaSplitCodec
(
cipher
,
Cipher
.
ENCRYPT_MODE
,
data
.
getBytes
(
encoding
),
publicKey
.
getModulus
().
bitLength
()));
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"加密字符串["
+
data
+
"]时遇到异常"
,
e
);
}
...
...
server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatTenantDTOVO.java
View file @
f38cf4c1
...
...
@@ -54,6 +54,7 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty
(
value
=
"菜单id集合"
)
private
List
<
String
>
menuIdList
;
@Size
(
max
=
20
,
message
=
"租户标识最长为20字符"
)
@ApiModelProperty
(
value
=
"租户标识"
)
private
String
code
;
...
...
server-common/src/main/java/com/makeit/module/iot/service/IotCommonService.java
View file @
f38cf4c1
...
...
@@ -47,6 +47,11 @@ public class IotCommonService {
ResponseMessage
responseMessage
=
getResponseMessage
(
url
,
response
);
return
responseMessage
;
}
public
ResponseMessage
sendPatch
(
String
url
,
HttpRequest
request
)
throws
IOException
{
Response
response
=
request
.
patch
();
ResponseMessage
responseMessage
=
getResponseMessage
(
url
,
response
);
return
responseMessage
;
}
public
ResponseMessage
sendGet
(
String
url
,
HttpRequest
request
)
throws
IOException
{
Response
response
=
request
.
get
();
ResponseMessage
responseMessage
=
getResponseMessage
(
url
,
response
);
...
...
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
View file @
f38cf4c1
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.makeit.module.iot.dto.IotQueryParam
;
import
com.makeit.module.iot.dto.IotSort
;
import
com.makeit.module.iot.dto.Term
;
...
...
@@ -23,12 +24,14 @@ import com.makeit.utils.old.StringUtils;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.RandomUtils
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.Map
;
/**
* iot产品设备相关接口
...
...
@@ -69,6 +72,28 @@ public class IotProductDeviceService extends IotCommonService {
return
Lists
.
newArrayList
();
}
@Async
public
void
syncUpdateDeviceInfo
(
String
id
,
String
name
)
{
String
url
=
iotUrl
+
"/device-instance"
;
// 条件可以自己改
Map
<
String
,
Object
>
reqMap
=
Maps
.
newHashMap
();
reqMap
.
put
(
"id"
,
id
);
reqMap
.
put
(
"name"
,
name
);
String
body
=
JsonUtil
.
toJson
(
reqMap
);
HttpRequest
request
=
buildRequest
(
url
,
body
);
try
{
ResponseMessage
responseMessage
=
sendPatch
(
url
,
request
);
if
(
responseMessage
.
getStatus
()
==
200
)
{
log
.
info
(
"修改设备名称成功:{}"
,
id
);
}
else
{
log
.
error
(
"获取设备接口失败:{}"
,
responseMessage
.
getMessage
());
}
}
catch
(
IOException
e
)
{
log
.
error
(
"调用:{}接口异常:{}"
,
url
,
e
.
getMessage
());
}
}
/**
* 获取最新一条设备日志
*
...
...
server-common/src/main/java/com/makeit/utils/msg/sender/SmsVoiceSender.java
View file @
f38cf4c1
...
...
@@ -67,16 +67,16 @@ public class SmsVoiceSender implements IMsgSender{
paramMap
.
put
(
"mobile"
,
vo
);
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
if
(
StringUtils
.
equals
(
alarmType
,
"1"
))
{
paramMap
.
put
(
"vid"
,
"14
1
"
);
paramMap
.
put
(
"vid"
,
"14
2
"
);
}
if
(
StringUtils
.
equals
(
alarmType
,
"2"
))
{
paramMap
.
put
(
"vid"
,
""
);
paramMap
.
put
(
"vid"
,
"
143
"
);
}
if
(
StringUtils
.
equals
(
alarmType
,
"3"
))
{
paramMap
.
put
(
"vid"
,
""
);
paramMap
.
put
(
"vid"
,
"
144
"
);
}
if
(
StringUtils
.
equals
(
alarmType
,
"4"
))
{
paramMap
.
put
(
"vid"
,
""
);
paramMap
.
put
(
"vid"
,
"
145
"
);
}
String
[]
param
=
msgDTO
.
getParam
();
...
...
server-common/src/main/java/com/makeit/utils/user/common/CommonUserUtil.java
View file @
f38cf4c1
...
...
@@ -21,7 +21,7 @@ public class CommonUserUtil {
WechatUserInfo
wechatUserInfo
=
ThreadLocalUserUtil
.
getWechatUser
();
if
(
wechatUserInfo
!=
null
)
{
return
new
CommonUserVO
(
wechatUserInfo
.
getId
(),
wechatUserInfo
.
get
N
ame
());
return
new
CommonUserVO
(
wechatUserInfo
.
getId
(),
wechatUserInfo
.
get
Usern
ame
());
}
SaasUserLoginVO
saasUser
=
ThreadLocalUserUtil
.
getSaasUser
();
...
...
@@ -54,7 +54,7 @@ public class CommonUserUtil {
if
(
StringUtils
.
isNotBlank
(
wechatToken
))
{
WechatUserInfo
wechatUserInfo
=
TokenUtil
.
getWechatUserDetail
(
wechatToken
);
if
(
wechatUserInfo
!=
null
)
{
return
new
CommonUserVO
(
wechatUserInfo
.
getId
(),
wechatUserInfo
.
get
N
ame
());
return
new
CommonUserVO
(
wechatUserInfo
.
getId
(),
wechatUserInfo
.
get
Usern
ame
());
}
}
...
...
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
View file @
f38cf4c1
...
...
@@ -25,7 +25,7 @@ public class WechatUserInfo implements Serializable {
private
String
openid
;
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
private
String
user
name
;
@ApiModelProperty
(
value
=
"手机号码"
)
private
String
phone
;
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
View file @
f38cf4c1
...
...
@@ -327,6 +327,20 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
msgSendDTO
.
setOriContent
(
alarmRecord
.
getContent
());
msgSendDTO
.
setSubject
(
alarmRecord
.
getContent
());
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
());
String
alarmType
=
alarmConfig
.
getAlarmType
();
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
if
(
StringUtils
.
equals
(
alarmType
,
"1"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
(),
alarmRecord
.
getRegionName
());
}
if
(
StringUtils
.
equals
(
alarmType
,
"2"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
(),
alarmRecord
.
getRemark
());
}
if
(
StringUtils
.
equals
(
alarmType
,
"3"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
(),
alarmRecord
.
getRemark
());
}
if
(
StringUtils
.
equals
(
alarmType
,
"4"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
(),
alarmRecord
.
getRegionName
());
}
msgSendDTO
.
setAlarmType
(
alarmConfig
.
getAlarmType
());
//todo 小程序消息
msgUtil
.
send
(
msgSendDTO
);
...
...
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
View file @
f38cf4c1
...
...
@@ -26,6 +26,7 @@ import com.makeit.enums.CodeMessageEnum;
import
com.makeit.exception.BusinessException
;
import
com.makeit.mapper.platform.device.PlatDeviceMapper
;
import
com.makeit.module.iot.service.IotDevicePropertiesOperateService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.DeviceProperties
;
import
com.makeit.service.platform.auth.PlatOrgService
;
import
com.makeit.service.platform.device.PlatDeviceOtherService
;
...
...
@@ -71,6 +72,8 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
private
PlatTenantService
platTenantService
;
@Autowired
private
PlatRegionSettingService
platRegionSettingService
;
@Autowired
private
IotProductDeviceService
iotProductDeviceService
;
@Override
public
PageVO
<
PlatDeviceListVO
>
page
(
PageReqDTO
<
PlatDeviceQueryDTO
>
pageReqDTO
)
{
...
...
@@ -125,6 +128,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
deviceCacheUtil
.
put
(
db
);
iotProductDeviceService
.
syncUpdateDeviceInfo
(
db
.
getOriDeviceId
(),
dto
.
getName
());
}
@Override
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
View file @
f38cf4c1
...
...
@@ -182,17 +182,20 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
.
le
(
PlatElderSleepAnalysis:
:
getHappenDate
,
dateTimeFormatter
.
format
(
weekEndDate
))
);
if
(
CollectionUtils
.
isEmpty
(
sleepAnalysisList
))
{
return
null
;
}
int
score
=
0
;
int
sleepDuration
=
0
;
int
restDuration
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
sleepAnalysisList
))
{
score
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getSleepScore
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
score
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getSleepScore
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
sleepDuration
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getSleepTime
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
sleepDuration
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getSleepTime
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
restDuration
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getRestTime
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
restDuration
=
StreamUtil
.
reduce
(
sleepAnalysisList
,
e
->
Integer
.
valueOf
(
e
.
getRestTime
()
+
""
),
0
,
Integer:
:
sum
)
/
sleepAnalysisList
.
size
();
}
PlatElderSleepEvaluationVO
platElderSleepEvaluationVO
=
new
PlatElderSleepEvaluationVO
();
platElderSleepEvaluationVO
.
setScore
(
score
);
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderReportMonthServiceImpl.java
View file @
f38cf4c1
...
...
@@ -102,6 +102,9 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
@Override
public
PlatElderComprehensiveEvaluationVO
comprehensiveEvaluation
(
PlatElderReportDTO
platElderIdDTO
)
{
PlatElderSleepEvaluationVO
platElderSleepEvaluationVO
=
sleepEvaluation
(
platElderIdDTO
);
if
(
platElderSleepEvaluationVO
==
null
)
{
return
new
PlatElderComprehensiveEvaluationVO
();
}
PlatElderHeartRespiratoryEvaluationVO
platElderHeartRespiratoryEvaluationVO
=
heartRespiratoryEvaluation
(
platElderIdDTO
);
return
platElderDayReportWeekService
.
comprehensiveEvaluationInternal
(
platElderSleepEvaluationVO
,
platElderHeartRespiratoryEvaluationVO
);
...
...
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantServiceImpl.java
View file @
f38cf4c1
...
...
@@ -431,15 +431,17 @@ public class PlatTenantServiceImpl extends ServiceImpl<PlatTenantMapper, PlatTen
private
void
checkCode
(
PlatTenantDTOVO
dto
)
{
PlatTenant
tntTenant
=
getOne
(
List
<
PlatTenant
>
list
=
list
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
eq
(
PlatTenant:
:
getCode
,
dto
.
getCode
())
.
ne
(
StringUtils
.
isNotBlank
(
dto
.
getId
()),
PlatTenant:
:
getId
,
dto
.
getId
())
);
if
(
tntTenant
!=
null
&&
!
tntTenant
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_CODE_DUPLICATE
);
for
(
PlatTenant
platTenant
:
list
)
{
if
(
platTenant
!=
null
&&
!
platTenant
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_CODE_DUPLICATE
);
}
}
}
@Override
...
...
server-service/src/main/java/com/makeit/task/IotSyncTask.java
View file @
f38cf4c1
...
...
@@ -150,7 +150,7 @@ public class IotSyncTask {
/**
* 长者睡眠分析
*/
//@Scheduled(cron = "0 6 * * *
")
@Scheduled
(
cron
=
"0 0 2 * * ?
"
)
@TenantIdIgnore
public
void
elderSleepSleepAnalysisTask
()
{
log
.
info
(
"开始定时分析长者睡眠质量"
);
...
...
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