Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
haikang-client
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
杨立
haikang-client
Commits
e789613a
提交
e789613a
authored
9月 18, 2021
作者:
wangqiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2-0
上级
b9d84ae9
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
1084 行增加
和
0 行删除
+1084
-0
.gitignore
apq-pc-info/.gitignore
+35
-0
pom.xml
apq-pc-info/pom.xml
+311
-0
ApqInfoApplication.java
...pc-info/src/main/java/com/priusis/ApqInfoApplication.java
+17
-0
RestTemplateConfig.java
.../src/main/java/com/priusis/config/RestTemplateConfig.java
+30
-0
MqttRpcDataMessage.java
...info/src/main/java/com/priusis/vo/MqttRpcDataMessage.java
+23
-0
application.yml
apq-pc-info/src/main/resources/application.yml
+4
-0
RestTest.java
apq-pc-info/src/test/java/com/priusis/RestTest.java
+52
-0
.gitignore
apq-pc-register/.gitignore
+35
-0
pom.xml
apq-pc-register/pom.xml
+307
-0
ApqRegisterApplication.java
...ter/src/main/java/com/priusis/ApqRegisterApplication.java
+152
-0
RestTemplateConfig.java
.../src/main/java/com/priusis/config/RestTemplateConfig.java
+30
-0
RegisterParamDto.java
...ister/src/main/java/com/priusis/dto/RegisterParamDto.java
+25
-0
MqttRpcDataMessage.java
...ster/src/main/java/com/priusis/vo/MqttRpcDataMessage.java
+25
-0
application.yml
apq-pc-register/src/main/resources/application.yml
+4
-0
RestTest.java
apq-pc-register/src/test/java/com/priusis/RestTest.java
+34
-0
没有找到文件。
apq-pc-info/.gitignore
0 → 100644
浏览文件 @
e789613a
*.toDelete
output/**
*.class
*~
*.iml
*/.idea/**
.idea/**
.idea
*.log
*.log.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
*/.classpath
.classpath
*/.project
.project
.cache/**
target/
build/
tmp_deb_control/
tmp_rpm_control/
tmp_sh/
.gwt/
.settings/
/bin
bin/
**/dependency-reduced-pom.xml
pom.xml.versionsBackup
.DS_Store
**/.gradle
**/local.properties
**/build
**/target
**/Californium.properties
**/.env
.instance_id
rebuild-docker.sh
apq-pc-info/pom.xml
0 → 100644
浏览文件 @
e789613a
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.4.10
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.priusis
</groupId>
<artifactId>
apq-pc-info
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<properties>
<maven.compiler.source>
1.8
</maven.compiler.source>
<maven.compiler.target>
1.8
</maven.compiler.target>
<spring-boot.version>
2.4.10
</spring-boot.version>
<winsw.version>
2.0.1
</winsw.version>
<pkg.name>
apq-pc-info
</pkg.name>
<pkg.user>
priusis-iot
</pkg.user>
<pkg.unixLogFolder>
/var/log/${pkg.name}
</pkg.unixLogFolder>
<pkg.installFolder>
/usr/share/${pkg.name}
</pkg.installFolder>
<pkg.win.dist>
${project.build.directory}/windows
</pkg.win.dist>
</properties>
<dependencies>
<!-- web组件 -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.sun.winsw
</groupId>
<artifactId>
winsw
</artifactId>
<version>
${winsw.version}
</version>
<classifier>
bin
</classifier>
<type>
exe
</type>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.7.11
</version>
</dependency>
<dependency>
<groupId>
com.github.oshi
</groupId>
<artifactId>
oshi-core
</artifactId>
<version>
3.5.0
</version>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
</dependencies>
<build>
<finalName>
${pkg.name}-${project.version}
</finalName>
<resources>
<resource>
<directory>
${project.basedir}/src/main/resources
</directory>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
2.5.1
</version>
<configuration>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
2.7
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-source-plugin
</artifactId>
<version>
2.2.1
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<version>
3.0.2
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-assembly-plugin
</artifactId>
<version>
3.0.0
</version>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
<configuration>
<excludes>
<exclude>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<executions>
<execution>
<id>
copy
</id>
<phase>
package
</phase>
<goals>
<goal>
copy
</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>
com.sun.winsw
</groupId>
<artifactId>
winsw
</artifactId>
<classifier>
bin
</classifier>
<type>
exe
</type>
<destFileName>
service.exe
</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>
${pkg.win.dist}
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<executions>
<execution>
<id>
copy-service-conf
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/conf
</outputDirectory>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<excludes>
<exclude>
logback.xml
</exclude>
</excludes>
<filtering>
false
</filtering>
</resource>
<resource>
<directory>
src/main/conf
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/unix.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-win-conf
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${pkg.win.dist}/conf
</outputDirectory>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<excludes>
<exclude>
logback.xml
</exclude>
</excludes>
<filtering>
false
</filtering>
</resource>
<resource>
<directory>
src/main/conf
</directory>
<excludes>
<exclude>
pi-gateway.conf
</exclude>
</excludes>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/windows.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-control
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/control
</outputDirectory>
<resources>
<resource>
<directory>
src/main/scripts/control
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/unix.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-windows-control
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${pkg.win.dist}
</outputDirectory>
<resources>
<resource>
<directory>
src/main/scripts/windows
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/windows.properties
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<configuration>
<archive>
<manifestEntries>
<Implementation-Title>
PriusisIot Gateway
</Implementation-Title>
<Implementation-Version>
${project.version}
</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<classifier>
boot
</classifier>
<layout>
ZIP
</layout>
<executable>
true
</executable>
<excludeDevtools>
true
</excludeDevtools>
<embeddedLaunchScriptProperties>
<confFolder>
${pkg.installFolder}/conf
</confFolder>
<logFolder>
${pkg.unixLogFolder}
</logFolder>
<logFilename>
${pkg.name}.out
</logFilename>
<initInfoProvides>
${pkg.name}
</initInfoProvides>
</embeddedLaunchScriptProperties>
</configuration>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-assembly-plugin
</artifactId>
<configuration>
<finalName>
${pkg.name}
</finalName>
<descriptors>
<descriptor>
src/main/assembly/windows.xml
</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>
assembly
</id>
<phase>
package
</phase>
<goals>
<goal>
single
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
apq-pc-info/src/main/java/com/priusis/ApqInfoApplication.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
@EnableScheduling
@SpringBootApplication
(
exclude
=
{
DataSourceAutoConfiguration
.
class
,
SecurityAutoConfiguration
.
class
})
public
class
ApqInfoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ApqInfoApplication
.
class
,
args
);
}
}
apq-pc-info/src/main/java/com/priusis/config/RestTemplateConfig.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.client.ClientHttpRequestFactory
;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.http.converter.StringHttpMessageConverter
;
import
org.springframework.web.client.RestTemplate
;
import
java.nio.charset.Charset
;
@Configuration
public
class
RestTemplateConfig
{
@Bean
public
RestTemplate
restTemplate
(
ClientHttpRequestFactory
factory
)
{
RestTemplate
restTemplate
=
new
RestTemplate
(
factory
);
// 支持中文编码
restTemplate
.
getMessageConverters
().
set
(
1
,
new
StringHttpMessageConverter
(
Charset
.
forName
(
"UTF-8"
)));
return
restTemplate
;
}
@Bean
public
ClientHttpRequestFactory
simpleClientHttpRequestFactory
()
{
SimpleClientHttpRequestFactory
factory
=
new
SimpleClientHttpRequestFactory
();
factory
.
setReadTimeout
(
5000
);
//单位为ms
factory
.
setConnectTimeout
(
5000
);
//单位为ms
return
factory
;
}
}
apq-pc-info/src/main/java/com/priusis/vo/MqttRpcDataMessage.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
MqttRpcDataMessage
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3133461476074777891L
;
private
int
requestId
;
private
String
method
;
private
String
params
;
@Override
public
String
toString
()
{
return
"{requestId="
+
requestId
+
", method="
+
method
+
", params="
+
params
+
'}'
;
}
}
apq-pc-info/src/main/resources/application.yml
0 → 100644
浏览文件 @
e789613a
server
:
# Server bind address
address
:
"
0.0.0.0"
port
:
${random.int[10000,19999]}
apq-pc-info/src/test/java/com/priusis/RestTest.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
;
import
cn.hutool.core.io.unit.DataSizeUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.system.oshi.OshiUtil
;
import
com.priusis.vo.MqttRpcDataMessage
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.web.client.RestTemplate
;
import
oshi.hardware.NetworkIF
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.util.Map
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
RestTest
{
@Autowired
private
RestTemplate
restTemplate
;
@Test
public
void
test1
()
throws
Exception
{
// 获取采集配置,数据上报频率 params == data
ResponseEntity
<
MqttRpcDataMessage
>
forEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/info"
,
MqttRpcDataMessage
.
class
);
System
.
out
.
println
(
forEntity
.
getBody
().
getMethod
());
System
.
out
.
println
(
forEntity
.
getBody
().
getParams
());
// 上报PC实时信息
InetAddress
inetAddress
=
InetAddress
.
getLocalHost
();
NetworkIF
networkIF
=
new
NetworkIF
();
networkIF
.
setNetworkInterface
(
NetworkInterface
.
getByInetAddress
(
inetAddress
));
Map
<
String
,
Object
>
data
=
MapUtil
.<
String
,
Object
>
builder
()
.
put
(
"operatingSystem"
,
OshiUtil
.
getOs
().
toString
())
.
put
(
"mac"
,
networkIF
.
getMacaddr
())
.
put
(
"baseboard"
,
OshiUtil
.
getSystem
().
getBaseboard
().
getManufacturer
()
+
" "
+
OshiUtil
.
getSystem
().
getBaseboard
().
getVersion
())
.
put
(
"ip"
,
inetAddress
.
getHostAddress
())
.
put
(
"cpuModel"
,
OshiUtil
.
getCpuInfo
(
0
).
getCpuModel
())
.
put
(
"cpuTemp"
,
OshiUtil
.
getSensors
().
getCpuTemperature
())
.
put
(
"memoryCap"
,
DataSizeUtil
.
format
(
OshiUtil
.
getMemory
().
getTotal
()))
.
put
(
"diskModel"
,
OshiUtil
.
getHardware
().
getDiskStores
()[
0
].
getModel
())
.
put
(
"diskCap"
,
DataSizeUtil
.
format
(
OshiUtil
.
getHardware
().
getDiskStores
()[
0
].
getSize
()))
.
build
();
Map
map
=
restTemplate
.
postForObject
(
"http://localhost:8765/uplink/oc-client"
,
data
,
Map
.
class
);
System
.
out
.
println
(
map
);
}
}
apq-pc-register/.gitignore
0 → 100644
浏览文件 @
e789613a
*.toDelete
output/**
*.class
*~
*.iml
*/.idea/**
.idea/**
.idea
*.log
*.log.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
*/.classpath
.classpath
*/.project
.project
.cache/**
target/
build/
tmp_deb_control/
tmp_rpm_control/
tmp_sh/
.gwt/
.settings/
/bin
bin/
**/dependency-reduced-pom.xml
pom.xml.versionsBackup
.DS_Store
**/.gradle
**/local.properties
**/build
**/target
**/Californium.properties
**/.env
.instance_id
rebuild-docker.sh
apq-pc-register/pom.xml
0 → 100644
浏览文件 @
e789613a
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.4.10
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.priusis
</groupId>
<artifactId>
apq-pc-register
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<properties>
<maven.compiler.source>
1.8
</maven.compiler.source>
<maven.compiler.target>
1.8
</maven.compiler.target>
<spring-boot.version>
2.4.10
</spring-boot.version>
<winsw.version>
2.0.1
</winsw.version>
<pkg.name>
apq-pc-register
</pkg.name>
<pkg.user>
priusis-iot
</pkg.user>
<pkg.unixLogFolder>
/var/log/${pkg.name}
</pkg.unixLogFolder>
<pkg.installFolder>
/usr/share/${pkg.name}
</pkg.installFolder>
<pkg.win.dist>
${project.build.directory}/windows
</pkg.win.dist>
</properties>
<dependencies>
<!-- web组件 -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.sun.winsw
</groupId>
<artifactId>
winsw
</artifactId>
<version>
${winsw.version}
</version>
<classifier>
bin
</classifier>
<type>
exe
</type>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.7.11
</version>
</dependency>
</dependencies>
<build>
<finalName>
${pkg.name}-${project.version}
</finalName>
<resources>
<resource>
<directory>
${project.basedir}/src/main/resources
</directory>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
2.5.1
</version>
<configuration>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
2.7
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-source-plugin
</artifactId>
<version>
2.2.1
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<version>
3.0.2
</version>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-assembly-plugin
</artifactId>
<version>
3.0.0
</version>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
<configuration>
<excludes>
<exclude>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<executions>
<execution>
<id>
copy
</id>
<phase>
package
</phase>
<goals>
<goal>
copy
</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>
com.sun.winsw
</groupId>
<artifactId>
winsw
</artifactId>
<classifier>
bin
</classifier>
<type>
exe
</type>
<destFileName>
service.exe
</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>
${pkg.win.dist}
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<executions>
<execution>
<id>
copy-service-conf
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/conf
</outputDirectory>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<excludes>
<exclude>
logback.xml
</exclude>
</excludes>
<filtering>
false
</filtering>
</resource>
<resource>
<directory>
src/main/conf
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/unix.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-win-conf
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${pkg.win.dist}/conf
</outputDirectory>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<excludes>
<exclude>
logback.xml
</exclude>
</excludes>
<filtering>
false
</filtering>
</resource>
<resource>
<directory>
src/main/conf
</directory>
<excludes>
<exclude>
pi-gateway.conf
</exclude>
</excludes>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/windows.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-control
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/control
</outputDirectory>
<resources>
<resource>
<directory>
src/main/scripts/control
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/unix.properties
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>
copy-windows-control
</id>
<phase>
process-resources
</phase>
<goals>
<goal>
copy-resources
</goal>
</goals>
<configuration>
<outputDirectory>
${pkg.win.dist}
</outputDirectory>
<resources>
<resource>
<directory>
src/main/scripts/windows
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<filters>
<filter>
src/main/filters/windows.properties
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<configuration>
<archive>
<manifestEntries>
<Implementation-Title>
PriusisIot Gateway
</Implementation-Title>
<Implementation-Version>
${project.version}
</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<classifier>
boot
</classifier>
<layout>
ZIP
</layout>
<executable>
true
</executable>
<excludeDevtools>
true
</excludeDevtools>
<embeddedLaunchScriptProperties>
<confFolder>
${pkg.installFolder}/conf
</confFolder>
<logFolder>
${pkg.unixLogFolder}
</logFolder>
<logFilename>
${pkg.name}.out
</logFilename>
<initInfoProvides>
${pkg.name}
</initInfoProvides>
</embeddedLaunchScriptProperties>
</configuration>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-assembly-plugin
</artifactId>
<configuration>
<finalName>
${pkg.name}
</finalName>
<descriptors>
<descriptor>
src/main/assembly/windows.xml
</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>
assembly
</id>
<phase>
package
</phase>
<goals>
<goal>
single
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
apq-pc-register/src/main/java/com/priusis/ApqRegisterApplication.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.priusis.dto.RegisterParamDto
;
import
com.priusis.vo.MqttRpcDataMessage
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.web.client.RestTemplate
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@EnableScheduling
@SpringBootApplication
(
exclude
=
{
DataSourceAutoConfiguration
.
class
,
SecurityAutoConfiguration
.
class
})
public
class
ApqRegisterApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ApqRegisterApplication
.
class
,
args
);
}
// "params":
// {
// "type":1
// "programs": [
// {
// "name":"qq"
// }
// ]
// }
// 一分钟一次上报
private
final
Long
FIXED_DELAY
=
60000L
;
@Autowired
private
RestTemplate
restTemplate
;
@Scheduled
(
fixedDelay
=
FIXED_DELAY
)
protected
void
registerProgramTask
()
{
// 获取软件检测监控配置 params == data
ResponseEntity
<
MqttRpcDataMessage
>
forEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/register"
,
MqttRpcDataMessage
.
class
);
if
(
null
!=
forEntity
)
{
MqttRpcDataMessage
body
=
forEntity
.
getBody
();
String
params
=
body
.
getParams
();
if
(
StrUtil
.
isNotBlank
(
params
))
{
Long
sendTime
=
body
.
getSendTime
();
long
current
=
System
.
currentTimeMillis
();
RegisterParamDto
registerParamDto
=
JSONUtil
.
toBean
(
params
,
RegisterParamDto
.
class
);
// 收到软件检测下发请求
log
.
info
(
"收到软件检测下发请求, sendTime:{}, params:{}"
,
sendTime
,
params
);
int
type
=
registerParamDto
.
getType
();
if
(
type
==
1
)
{
List
<
String
>
loadProgramList
=
null
;
try
{
loadProgramList
=
loadProgramList
();
}
catch
(
IOException
e
)
{
log
.
error
(
"获取软件清单异常"
,
e
);
}
if
(
null
==
loadProgramList
)
{
return
;
}
List
<
RegisterParamDto
.
RegisterDetailParamDto
>
programs
=
registerParamDto
.
getPrograms
();
// 上报软件检测监控数据
Map
mapRequest
=
new
HashMap
();
for
(
RegisterParamDto
.
RegisterDetailParamDto
program
:
programs
)
{
String
name
=
program
.
getName
();
if
(
loadProgramList
.
contains
(
name
))
{
// 杀进程?
// 上报黑名单异常
mapRequest
.
put
(
name
,
"1"
);
}
}
// 上报黑名单异常
if
(
mapRequest
.
size
()
>
0
)
{
Map
eventMapRequest
=
new
HashMap
();
eventMapRequest
.
put
(
"methodName"
,
"register_warning"
);
eventMapRequest
.
put
(
"params"
,
mapRequest
);
Map
map
=
restTemplate
.
postForObject
(
"http://localhost:8765/uplink_event/oc-client"
,
eventMapRequest
,
Map
.
class
);
log
.
info
(
"存在软件检测接口扫码告警,上报告警事件: mapData:{}, ret:{}"
,
mapRequest
,
map
);
}
// 上报黑名单属性 todo
}
}
else
{
log
.
info
(
"未获取到获取软件检测监控配置"
);
}
}
else
{
log
.
info
(
"未获取到获取软件检测监控配置"
);
}
}
/**
* 获取软件清单
*
* @return
* @throws IOException
*/
protected
List
<
String
>
loadProgramList
()
throws
IOException
{
List
<
String
>
programs
=
new
ArrayList
<>();
Process
process
=
Runtime
.
getRuntime
()
.
exec
(
"cmd /c reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"
);
try
(
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getInputStream
(),
"GBK"
)))
{
String
key
;
while
((
key
=
reader
.
readLine
())
!=
null
)
{
List
<
String
>
info
=
queryProgramInfo
(
key
);
programs
.
addAll
(
info
);
}
process
.
destroy
();
}
return
programs
;
}
private
List
<
String
>
queryProgramInfo
(
String
key
)
throws
IOException
{
List
<
String
>
info
=
new
ArrayList
<>();
Process
process
=
Runtime
.
getRuntime
().
exec
(
"cmd /c reg query "
+
key
);
try
(
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getInputStream
(),
"GBK"
)))
{
reader
.
readLine
();
reader
.
readLine
();
String
line
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
line
=
line
.
trim
();
if
(
line
.
startsWith
(
"DisplayName"
))
{
info
.
add
(
line
.
replace
(
"DisplayName"
,
""
).
replace
(
"REG_SZ"
,
""
).
trim
());
}
}
process
.
destroy
();
}
return
info
;
}
}
apq-pc-register/src/main/java/com/priusis/config/RestTemplateConfig.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.client.ClientHttpRequestFactory
;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.http.converter.StringHttpMessageConverter
;
import
org.springframework.web.client.RestTemplate
;
import
java.nio.charset.Charset
;
@Configuration
public
class
RestTemplateConfig
{
@Bean
public
RestTemplate
restTemplate
(
ClientHttpRequestFactory
factory
)
{
RestTemplate
restTemplate
=
new
RestTemplate
(
factory
);
// 支持中文编码
restTemplate
.
getMessageConverters
().
set
(
1
,
new
StringHttpMessageConverter
(
Charset
.
forName
(
"UTF-8"
)));
return
restTemplate
;
}
@Bean
public
ClientHttpRequestFactory
simpleClientHttpRequestFactory
()
{
SimpleClientHttpRequestFactory
factory
=
new
SimpleClientHttpRequestFactory
();
factory
.
setReadTimeout
(
5000
);
//单位为ms
factory
.
setConnectTimeout
(
5000
);
//单位为ms
return
factory
;
}
}
apq-pc-register/src/main/java/com/priusis/dto/RegisterParamDto.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
.
dto
;
import
lombok.Data
;
import
java.util.List
;
// "type":1
// "programs": [
// {
// "name":"qq"
// }
// ]
@Data
public
class
RegisterParamDto
{
// type = 1 黑名单
// type = 2 白名单
private
int
type
;
private
List
<
RegisterDetailParamDto
>
programs
;
@Data
public
class
RegisterDetailParamDto
{
private
String
name
;
}
}
apq-pc-register/src/main/java/com/priusis/vo/MqttRpcDataMessage.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
MqttRpcDataMessage
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3133461476074777891L
;
private
int
requestId
;
private
String
method
;
private
Long
sendTime
;
private
String
params
;
@Override
public
String
toString
()
{
return
"{requestId="
+
requestId
+
", sendTime="
+
sendTime
+
", method="
+
method
+
", params="
+
params
+
'}'
;
}
}
apq-pc-register/src/main/resources/application.yml
0 → 100644
浏览文件 @
e789613a
server
:
# Server bind address
address
:
"
0.0.0.0"
port
:
${random.int[30000,39999]}
apq-pc-register/src/test/java/com/priusis/RestTest.java
0 → 100644
浏览文件 @
e789613a
package
com
.
priusis
;
import
com.priusis.vo.MqttRpcDataMessage
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.HashMap
;
import
java.util.Map
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
RestTest
{
@Autowired
private
RestTemplate
restTemplate
;
@Test
public
void
test1
()
throws
Exception
{
// 获取软件检测黑名单 params == data
ResponseEntity
<
MqttRpcDataMessage
>
forEntity
=
restTemplate
.
getForEntity
(
"http://localhost:8765/rpc_cmd/register"
,
MqttRpcDataMessage
.
class
);
System
.
out
.
println
(
forEntity
.
getBody
().
getMethod
());
System
.
out
.
println
(
forEntity
.
getBody
().
getParams
());
// 上报软件检测数据
Map
mapRequest
=
new
HashMap
();
Map
map
=
restTemplate
.
postForObject
(
"http://localhost:8765/uplink/oc-client"
,
mapRequest
,
Map
.
class
);
System
.
out
.
println
(
map
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论