Commit 009374ed87202b96f9c088ac07641daf72cb95d6
0 parents
fea: create
Showing
16 changed files
with
615 additions
and
0 deletions
pom.xml
0 → 100644
1 | +++ a/pom.xml | ||
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | + <modelVersion>4.0.0</modelVersion> | ||
6 | + | ||
7 | + <groupId>com.objecteye</groupId> | ||
8 | + <artifactId>viid-collector</artifactId> | ||
9 | + <version>1.0-SNAPSHOT</version> | ||
10 | + | ||
11 | + <properties> | ||
12 | + <maven.compiler.source>8</maven.compiler.source> | ||
13 | + <maven.compiler.target>8</maven.compiler.target> | ||
14 | + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
15 | + <spring-boot.version>2.6.3</spring-boot.version> | ||
16 | + <spring-cloud.version>2021.0.0</spring-cloud.version> | ||
17 | + <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version> | ||
18 | + </properties> | ||
19 | + | ||
20 | + <dependencyManagement> | ||
21 | + <dependencies> | ||
22 | + <dependency> | ||
23 | + <groupId>org.springframework.boot</groupId> | ||
24 | + <artifactId>spring-boot-dependencies</artifactId> | ||
25 | + <version>${spring-boot.version}</version> | ||
26 | + <type>pom</type> | ||
27 | + <scope>import</scope> | ||
28 | + </dependency> | ||
29 | + <dependency> | ||
30 | + <groupId>org.springframework.cloud</groupId> | ||
31 | + <artifactId>spring-cloud-dependencies</artifactId> | ||
32 | + <version>${spring-cloud.version}</version> | ||
33 | + <scope>import</scope> | ||
34 | + <type>pom</type> | ||
35 | + </dependency> | ||
36 | + <dependency> | ||
37 | + <groupId>com.alibaba.cloud</groupId> | ||
38 | + <artifactId>spring-cloud-alibaba-dependencies</artifactId> | ||
39 | + <version>${spring-cloud-alibaba.version}</version> | ||
40 | + <type>pom</type> | ||
41 | + <scope>import</scope> | ||
42 | + </dependency> | ||
43 | + </dependencies> | ||
44 | + </dependencyManagement> | ||
45 | + | ||
46 | + <dependencies> | ||
47 | + <dependency> | ||
48 | + <groupId>org.springframework.boot</groupId> | ||
49 | + <artifactId>spring-boot-starter-web</artifactId> | ||
50 | + </dependency> | ||
51 | + <dependency> | ||
52 | + <groupId>com.alibaba.cloud</groupId> | ||
53 | + <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> | ||
54 | + </dependency> | ||
55 | + <dependency> | ||
56 | + <groupId>com.alibaba.cloud</groupId> | ||
57 | + <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> | ||
58 | + </dependency> | ||
59 | + <dependency> | ||
60 | + <groupId>org.projectlombok</groupId> | ||
61 | + <artifactId>lombok</artifactId> | ||
62 | + </dependency> | ||
63 | + <dependency> | ||
64 | + <groupId>org.springframework.boot</groupId> | ||
65 | + <artifactId>spring-boot-configuration-processor</artifactId> | ||
66 | + </dependency> | ||
67 | + <dependency> | ||
68 | + <groupId>org.springframework.boot</groupId> | ||
69 | + <artifactId>spring-boot-starter-data-redis</artifactId> | ||
70 | + </dependency> | ||
71 | + <dependency> | ||
72 | + <groupId>org.apache.commons</groupId> | ||
73 | + <artifactId>commons-pool2</artifactId> | ||
74 | + </dependency> | ||
75 | + </dependencies> | ||
76 | +</project> | ||
0 | \ No newline at end of file | 77 | \ No newline at end of file |
src/main/java/com/objecteye/VIIDCollectorApplication.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/VIIDCollectorApplication.java | ||
1 | +package com.objecteye; | ||
2 | + | ||
3 | +import org.springframework.boot.SpringApplication; | ||
4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
5 | + | ||
6 | +/** | ||
7 | + * @author: liuhaoyu | ||
8 | + * @date: 2023/6/28 | ||
9 | + */ | ||
10 | +@SpringBootApplication | ||
11 | +public class VIIDCollectorApplication { | ||
12 | + | ||
13 | + public static void main(String[] args) { | ||
14 | + SpringApplication.run(VIIDCollectorApplication.class, args); | ||
15 | + } | ||
16 | +} |
src/main/java/com/objecteye/config/ApplicationConfigurationProperties.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/config/ApplicationConfigurationProperties.java | ||
1 | +package com.objecteye.config; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | +import org.springframework.boot.context.properties.ConfigurationProperties; | ||
5 | +import org.springframework.stereotype.Component; | ||
6 | + | ||
7 | +/** | ||
8 | + * @author: liuhaoyu | ||
9 | + * @date: 2023/6/28 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +@Component | ||
13 | +@ConfigurationProperties(prefix = "config.application") | ||
14 | +public class ApplicationConfigurationProperties { | ||
15 | + | ||
16 | + private String platformCode; | ||
17 | +} |
src/main/java/com/objecteye/config/ObjectMapperConfigure.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/config/ObjectMapperConfigure.java | ||
1 | +package com.objecteye.config; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
4 | +import lombok.Data; | ||
5 | +import org.springframework.context.annotation.Bean; | ||
6 | + | ||
7 | +/** | ||
8 | + * @author: liuhaoyu | ||
9 | + * @date: 2023/6/28 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +public class ObjectMapperConfigure { | ||
13 | + | ||
14 | + @Bean | ||
15 | + public ObjectMapper objectMapper() { | ||
16 | + return new ObjectMapper(); | ||
17 | + } | ||
18 | +} |
src/main/java/com/objecteye/config/RestConfigurationProperties.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/config/RestConfigurationProperties.java | ||
1 | +package com.objecteye.config; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | +import org.springframework.boot.context.properties.ConfigurationProperties; | ||
5 | +import org.springframework.stereotype.Component; | ||
6 | + | ||
7 | +/** | ||
8 | + * @author: liuhaoyu | ||
9 | + * @date: 2023/6/28 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +@Component | ||
13 | +@ConfigurationProperties(prefix = "config.rest") | ||
14 | +public class RestConfigurationProperties { | ||
15 | + /** | ||
16 | + * 连接超时时间 | ||
17 | + */ | ||
18 | + private int connectionTimeOut = 5 * 1000; | ||
19 | + /** | ||
20 | + * 等待超时时间 | ||
21 | + */ | ||
22 | + private int readTimeOut = 30 * 1000; | ||
23 | +} |
src/main/java/com/objecteye/config/RestTemplateConfigure.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/config/RestTemplateConfigure.java | ||
1 | +package com.objecteye.config; | ||
2 | + | ||
3 | +import org.springframework.context.annotation.Bean; | ||
4 | +import org.springframework.context.annotation.Configuration; | ||
5 | +import org.springframework.http.client.SimpleClientHttpRequestFactory; | ||
6 | +import org.springframework.web.client.RestTemplate; | ||
7 | + | ||
8 | +/** | ||
9 | + * @author: liuhaoyu | ||
10 | + * @date: 2023/6/28 | ||
11 | + */ | ||
12 | +@Configuration | ||
13 | +public class RestTemplateConfigure { | ||
14 | + | ||
15 | + @Bean | ||
16 | + public RestTemplate restTemplate(RestConfigurationProperties restConfigurationProperties) { | ||
17 | + SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory(); | ||
18 | + simpleClientHttpRequestFactory.setConnectTimeout(restConfigurationProperties.getConnectionTimeOut()); | ||
19 | + simpleClientHttpRequestFactory.setReadTimeout(restConfigurationProperties.getReadTimeOut()); | ||
20 | + return new RestTemplate(simpleClientHttpRequestFactory); | ||
21 | + } | ||
22 | +} |
src/main/java/com/objecteye/content/VIIDApi.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/content/VIIDApi.java | ||
1 | +package com.objecteye.content; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author: liuhaoyu | ||
5 | + * @date: 2023/6/28 | ||
6 | + */ | ||
7 | +public class VIIDApi { | ||
8 | + | ||
9 | + public static final String SYSTEM_PREFIX = "/VIID/System"; | ||
10 | + /** | ||
11 | + * 注册 | ||
12 | + */ | ||
13 | + public static final String REGISTER = SYSTEM_PREFIX + "/Register"; | ||
14 | + /** | ||
15 | + * 注销 | ||
16 | + */ | ||
17 | + public static final String UNREGISTER = SYSTEM_PREFIX + "/UnRegister"; | ||
18 | + /** | ||
19 | + * 保活 | ||
20 | + */ | ||
21 | + public static final String KEEPALIVE = SYSTEM_PREFIX + "/Keepalive"; | ||
22 | + | ||
23 | + private VIIDApi() { | ||
24 | + } | ||
25 | +} |
src/main/java/com/objecteye/content/ViidCollectorRedisKey.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/content/ViidCollectorRedisKey.java | ||
1 | +package com.objecteye.content; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author: liuhaoyu | ||
5 | + * @date: 2023/6/30 | ||
6 | + */ | ||
7 | +public class ViidCollectorRedisKey { | ||
8 | + /** | ||
9 | + * 设备连接信息缓存 | ||
10 | + */ | ||
11 | + public static final String DEVICE_CACHE = "vc:dc"; | ||
12 | + | ||
13 | + private ViidCollectorRedisKey() { | ||
14 | + } | ||
15 | +} |
src/main/java/com/objecteye/content/enums/VIIDConfirmStatusTypeEnum.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/content/enums/VIIDConfirmStatusTypeEnum.java | ||
1 | +package com.objecteye.content.enums; | ||
2 | + | ||
3 | +import lombok.AllArgsConstructor; | ||
4 | +import lombok.Getter; | ||
5 | + | ||
6 | +/** | ||
7 | + * @author: liuhaoyu | ||
8 | + * @date: 2023/6/28 | ||
9 | + */ | ||
10 | +@Getter | ||
11 | +@AllArgsConstructor | ||
12 | +public enum VIIDConfirmStatusTypeEnum { | ||
13 | + /** | ||
14 | + * 正常 | ||
15 | + */ | ||
16 | + OK("OK"), | ||
17 | + /** | ||
18 | + * 其他未知错误 | ||
19 | + */ | ||
20 | + OTHER_ERROR("OtherError"), | ||
21 | + /** | ||
22 | + * 设备忙 | ||
23 | + */ | ||
24 | + DEVICE_BUSY("Device Busy"), | ||
25 | + /** | ||
26 | + * 设备错 | ||
27 | + */ | ||
28 | + DEVICE_ERROR("Device Error"), | ||
29 | + /** | ||
30 | + * 无效操作 | ||
31 | + */ | ||
32 | + invalid_operation("Invalid Operation"), | ||
33 | + /** | ||
34 | + * XML 格式无效 | ||
35 | + */ | ||
36 | + INVALID_XML_FORMAT("Invalid XML Format"), | ||
37 | + /** | ||
38 | + * XML 内容无效 | ||
39 | + */ | ||
40 | + INVALID_XML_CONTENT("Invalid XML Content"), | ||
41 | + /** | ||
42 | + * JSON 格式无效 | ||
43 | + */ | ||
44 | + INVALID_JSON_FORMAT("Invalid JSON Format"), | ||
45 | + /** | ||
46 | + * JSON 内容无效 | ||
47 | + */ | ||
48 | + INVALID_JSON_CONTENT("Invalid JSON Content"), | ||
49 | + /** | ||
50 | + * 系统重启中 | ||
51 | + */ | ||
52 | + REBOOT("Reboot"), | ||
53 | + ; | ||
54 | + | ||
55 | + private final String desc; | ||
56 | + | ||
57 | + public static String getDesc(int idx) { | ||
58 | + for (VIIDConfirmStatusTypeEnum type : values()) { | ||
59 | + if (type.ordinal() == idx) { | ||
60 | + return type.desc; | ||
61 | + } | ||
62 | + } | ||
63 | + return ""; | ||
64 | + } | ||
65 | +} |
src/main/java/com/objecteye/handle/StartUpAndShutdown.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/handle/StartUpAndShutdown.java | ||
1 | +package com.objecteye.handle; | ||
2 | + | ||
3 | +import com.alibaba.nacos.common.utils.ExceptionUtil; | ||
4 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
5 | +import com.objecteye.content.ViidCollectorRedisKey; | ||
6 | +import com.objecteye.handle.viid.VIIDCommonHandle; | ||
7 | +import com.objecteye.pojo.platform.DeviceRequestParams; | ||
8 | +import lombok.RequiredArgsConstructor; | ||
9 | +import org.slf4j.Logger; | ||
10 | +import org.slf4j.LoggerFactory; | ||
11 | +import org.springframework.beans.factory.DisposableBean; | ||
12 | +import org.springframework.boot.ApplicationArguments; | ||
13 | +import org.springframework.boot.ApplicationRunner; | ||
14 | +import org.springframework.data.redis.core.Cursor; | ||
15 | +import org.springframework.data.redis.core.ScanOptions; | ||
16 | +import org.springframework.data.redis.core.StringRedisTemplate; | ||
17 | +import org.springframework.stereotype.Component; | ||
18 | + | ||
19 | +import java.util.Map; | ||
20 | +import java.util.function.Consumer; | ||
21 | + | ||
22 | +/** | ||
23 | + * @author: liuhaoyu | ||
24 | + * @date: 2023/6/30 | ||
25 | + */ | ||
26 | +@Component | ||
27 | +@RequiredArgsConstructor | ||
28 | +public class StartUpAndShutdown implements DisposableBean, ApplicationRunner { | ||
29 | + private final VIIDCommonHandle viidCommonHandle; | ||
30 | + private final StringRedisTemplate stringRedisTemplate; | ||
31 | + private final ObjectMapper objectMapper; | ||
32 | + | ||
33 | + private final Logger logger = LoggerFactory.getLogger(StartUpAndShutdown.class); | ||
34 | + | ||
35 | + @Override | ||
36 | + public void destroy() throws Exception { | ||
37 | + allCacheHandle(viidCommonHandle::unregister); | ||
38 | + } | ||
39 | + | ||
40 | + @Override | ||
41 | + public void run(ApplicationArguments args) throws Exception { | ||
42 | + allCacheHandle(viidCommonHandle::register); | ||
43 | + } | ||
44 | + | ||
45 | + private void allCacheHandle(Consumer<DeviceRequestParams> func) { | ||
46 | + try (Cursor<Map.Entry<Object, Object>> cursor = stringRedisTemplate.boundHashOps(ViidCollectorRedisKey.DEVICE_CACHE) | ||
47 | + .scan(ScanOptions.scanOptions().build())) { | ||
48 | + while (cursor.hasNext()) { | ||
49 | + Map.Entry<Object, Object> entry = cursor.next(); | ||
50 | + try { | ||
51 | + func.accept(objectMapper.readValue(entry.getValue().toString(), DeviceRequestParams.class)); | ||
52 | + } catch (Exception e) { | ||
53 | + logger.error(ExceptionUtil.getAllExceptionMsg(e)); | ||
54 | + } | ||
55 | + } | ||
56 | + } | ||
57 | + } | ||
58 | +} |
src/main/java/com/objecteye/handle/viid/VIIDCommonHandle.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/handle/viid/VIIDCommonHandle.java | ||
1 | +package com.objecteye.handle.viid; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.core.JsonProcessingException; | ||
4 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
5 | +import com.objecteye.config.ApplicationConfigurationProperties; | ||
6 | +import com.objecteye.content.VIIDApi; | ||
7 | +import com.objecteye.content.enums.VIIDConfirmStatusTypeEnum; | ||
8 | +import com.objecteye.pojo.platform.DeviceRequestParams; | ||
9 | +import com.objecteye.pojo.viid.common.CommonDeviceIdRequestParams; | ||
10 | +import com.objecteye.pojo.viid.common.ResponseStatusResponse; | ||
11 | +import lombok.RequiredArgsConstructor; | ||
12 | +import lombok.extern.slf4j.Slf4j; | ||
13 | +import org.springframework.http.HttpEntity; | ||
14 | +import org.springframework.http.HttpHeaders; | ||
15 | +import org.springframework.http.ResponseEntity; | ||
16 | +import org.springframework.stereotype.Component; | ||
17 | +import org.springframework.util.StringUtils; | ||
18 | +import org.springframework.web.client.RestTemplate; | ||
19 | + | ||
20 | +/** | ||
21 | + * @author: liuhaoyu | ||
22 | + * @date: 2023/6/28 | ||
23 | + */ | ||
24 | +@Slf4j | ||
25 | +@Component | ||
26 | +@RequiredArgsConstructor | ||
27 | +public class VIIDCommonHandle { | ||
28 | + private final ObjectMapper objectMapper; | ||
29 | + private final RestTemplate restTemplate; | ||
30 | + private final ApplicationConfigurationProperties applicationConfigurationProperties; | ||
31 | + private static final String CONTENT_TYPE = "application/*+JSON"; | ||
32 | + private static final String HTTP = "http://"; | ||
33 | + | ||
34 | + /** | ||
35 | + * 注册 | ||
36 | + * | ||
37 | + * @param deviceRequestParams 注册目标设备 | ||
38 | + * @return 注册结果 | ||
39 | + */ | ||
40 | + public boolean register(DeviceRequestParams deviceRequestParams) { | ||
41 | + return commonDeviceIdPost(deviceRequestParams, VIIDApi.REGISTER); | ||
42 | + } | ||
43 | + | ||
44 | + /** | ||
45 | + * 保活 | ||
46 | + * | ||
47 | + * @param deviceRequestParams 心跳目标设备 | ||
48 | + * @return 发送结果 | ||
49 | + */ | ||
50 | + public boolean keepalive(DeviceRequestParams deviceRequestParams) { | ||
51 | + return commonDeviceIdPost(deviceRequestParams, VIIDApi.KEEPALIVE); | ||
52 | + } | ||
53 | + | ||
54 | + /** | ||
55 | + * 注销 | ||
56 | + * | ||
57 | + * @param deviceRequestParams 注销目标设备 | ||
58 | + * @return 注销结果 | ||
59 | + */ | ||
60 | + public boolean unregister(DeviceRequestParams deviceRequestParams) { | ||
61 | + return commonDeviceIdPost(deviceRequestParams, VIIDApi.UNREGISTER); | ||
62 | + } | ||
63 | + | ||
64 | + private boolean commonDeviceIdPost(DeviceRequestParams deviceRequestParams, String uri) { | ||
65 | + return checkResponse(restTemplate.postForEntity(getAddress(deviceRequestParams) + uri, | ||
66 | + buildHttpEntity(buildCommonDeviceIdRequestParam(deviceRequestParams)), String.class)); | ||
67 | + } | ||
68 | + | ||
69 | + private CommonDeviceIdRequestParams buildCommonDeviceIdRequestParam(DeviceRequestParams deviceRequestParams) { | ||
70 | + CommonDeviceIdRequestParams commonDeviceIdRequestParams = new CommonDeviceIdRequestParams(); | ||
71 | + commonDeviceIdRequestParams.setDeviceId(applicationConfigurationProperties.getPlatformCode()); | ||
72 | + return commonDeviceIdRequestParams; | ||
73 | + } | ||
74 | + | ||
75 | + private String getAddress(DeviceRequestParams deviceRequestParams) { | ||
76 | + return HTTP + deviceRequestParams.getHost() + ":" + deviceRequestParams.getPort(); | ||
77 | + } | ||
78 | + | ||
79 | + private boolean checkResponse(ResponseEntity<String> responseEntity) { | ||
80 | + String body = responseEntity.getBody(); | ||
81 | + if (StringUtils.hasText(body)) { | ||
82 | + try { | ||
83 | + ResponseStatusResponse responseStatusResponse = objectMapper.readValue(body, ResponseStatusResponse.class); | ||
84 | + if (null == responseStatusResponse || null == responseStatusResponse.getStatusCode() || | ||
85 | + !responseStatusResponse.getStatusCode().equals(VIIDConfirmStatusTypeEnum.OK.ordinal())) { | ||
86 | + if (log.isDebugEnabled()) { | ||
87 | + log.debug("register failed, {}", body); | ||
88 | + } | ||
89 | + return false; | ||
90 | + } | ||
91 | + return true; | ||
92 | + } catch (JsonProcessingException e) { | ||
93 | + if (log.isDebugEnabled()) { | ||
94 | + log.debug("convert failed, {}", body); | ||
95 | + } | ||
96 | + return false; | ||
97 | + } | ||
98 | + } | ||
99 | + return false; | ||
100 | + } | ||
101 | + | ||
102 | + private <T> HttpEntity<T> buildHttpEntity(T t) { | ||
103 | + HttpHeaders httpHeaders = new HttpHeaders(); | ||
104 | + httpHeaders.add(HttpHeaders.CONTENT_TYPE, CONTENT_TYPE); | ||
105 | + | ||
106 | + return new HttpEntity<>(t, httpHeaders); | ||
107 | + } | ||
108 | +} |
src/main/java/com/objecteye/pojo/platform/DeviceRequestParams.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/pojo/platform/DeviceRequestParams.java | ||
1 | +package com.objecteye.pojo.platform; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | + | ||
5 | +import java.io.Serializable; | ||
6 | + | ||
7 | +/** | ||
8 | + * @author: liuhaoyu | ||
9 | + * @date: 2023/6/28 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +public class DeviceRequestParams implements Serializable { | ||
13 | + private static final long serialVersionUID = -7801549061937667804L; | ||
14 | + | ||
15 | + private String deviceId; | ||
16 | + | ||
17 | + private String host; | ||
18 | + | ||
19 | + private String port; | ||
20 | + | ||
21 | + private String accessKey; | ||
22 | + | ||
23 | + private String securityKey; | ||
24 | + | ||
25 | +} |
src/main/java/com/objecteye/pojo/viid/common/CommonDeviceIdRequestParams.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/pojo/viid/common/CommonDeviceIdRequestParams.java | ||
1 | +package com.objecteye.pojo.viid.common; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonProperty; | ||
4 | +import lombok.Data; | ||
5 | + | ||
6 | +import java.io.Serializable; | ||
7 | + | ||
8 | +/** | ||
9 | + * @author: liuhaoyu | ||
10 | + * @date: 2023/6/28 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +public class CommonDeviceIdRequestParams implements Serializable { | ||
14 | + private static final long serialVersionUID = 1L; | ||
15 | + | ||
16 | + @JsonProperty("DeviceID") | ||
17 | + private String deviceId; | ||
18 | +} |
src/main/java/com/objecteye/pojo/viid/common/ResponseStatusResponse.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/pojo/viid/common/ResponseStatusResponse.java | ||
1 | +package com.objecteye.pojo.viid.common; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonProperty; | ||
4 | +import lombok.Data; | ||
5 | + | ||
6 | +import java.io.Serializable; | ||
7 | + | ||
8 | +/** | ||
9 | + * @author: liuhaoyu | ||
10 | + * @date: 2023/6/28 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +public class ResponseStatusResponse implements Serializable { | ||
14 | + | ||
15 | + private static final long serialVersionUID = 1L; | ||
16 | + | ||
17 | + @JsonProperty("RequestURL") | ||
18 | + private String requestUrl; | ||
19 | + | ||
20 | + @JsonProperty("StatusCode") | ||
21 | + private Integer statusCode; | ||
22 | + | ||
23 | + @JsonProperty("StatusString") | ||
24 | + private String statusString; | ||
25 | + | ||
26 | + @JsonProperty("ID") | ||
27 | + private String id; | ||
28 | + | ||
29 | + @JsonProperty("LocalTime") | ||
30 | + private String localTime; | ||
31 | +} |
src/main/java/com/objecteye/pojo/viid/subscribe/Subscribe.java
0 → 100644
1 | +++ a/src/main/java/com/objecteye/pojo/viid/subscribe/Subscribe.java | ||
1 | +package com.objecteye.pojo.viid.subscribe; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonProperty; | ||
4 | +import lombok.Data; | ||
5 | + | ||
6 | +import java.io.Serializable; | ||
7 | + | ||
8 | +/** | ||
9 | + * @author: liuhaoyu | ||
10 | + * @date: 2023/6/28 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +public class Subscribe implements Serializable { | ||
14 | + private static final long serialVersionUID = 6385076997369719156L; | ||
15 | + /** | ||
16 | + * 订阅标识符 | ||
17 | + * 数据共享接口调用时由VIID生成, 取消订阅时必选 | ||
18 | + */ | ||
19 | + @JsonProperty("SubscribeID") | ||
20 | + private String subscribeId; | ||
21 | + /** | ||
22 | + * 订阅标题 | ||
23 | + * <p> | ||
24 | + * 订阅时必填 | ||
25 | + */ | ||
26 | + @JsonProperty("Title") | ||
27 | + private String title; | ||
28 | + /** | ||
29 | + * 订阅类别 | ||
30 | + * <p> | ||
31 | + * 订阅时必填,可多个用英文逗号隔开 | ||
32 | + */ | ||
33 | + @JsonProperty("SubscribeDetail") | ||
34 | + private String subscribeDetail; | ||
35 | + /** | ||
36 | + * 订阅资源路径 | ||
37 | + * <p> | ||
38 | + * 资源路径URI(卡口ID, 设备ID, 采集内容ID, 案件ID, 目标视图库ID, 行政区编号2/4/6位等), 支持单个和批量, 订阅时必填 | ||
39 | + */ | ||
40 | + @JsonProperty("ResourceURI") | ||
41 | + private String resourceUri; | ||
42 | + /** | ||
43 | + * 申请人 | ||
44 | + * <p> | ||
45 | + * 必填 | ||
46 | + */ | ||
47 | + @JsonProperty("ApplicantName") | ||
48 | + private String applicantName; | ||
49 | + /** | ||
50 | + * 申请单位 | ||
51 | + * <p> | ||
52 | + * required | ||
53 | + */ | ||
54 | + @JsonProperty("ApplicantOrg") | ||
55 | + private String applicantOrg; | ||
56 | + /** | ||
57 | + * 开始时间 | ||
58 | + * <p> | ||
59 | + * required | ||
60 | + */ | ||
61 | + @JsonProperty("BeginTime") | ||
62 | + private String beginTime; | ||
63 | + /** | ||
64 | + * 结束时间 | ||
65 | + * <p> | ||
66 | + * required | ||
67 | + */ | ||
68 | + @JsonProperty("EndTime") | ||
69 | + private String endTime; | ||
70 | + /** | ||
71 | + * 信息接收地址 string(256) | ||
72 | + * <p> | ||
73 | + * e.g. http://ip:port/uri | ||
74 | + */ | ||
75 | + @JsonProperty("ReceiveAddr") | ||
76 | + private String receiveAddr; | ||
77 | + /** | ||
78 | + * 信息上报间隔时间 | ||
79 | + * <p> | ||
80 | + * required, 单位: s, <=0表示不限制 | ||
81 | + */ | ||
82 | + @JsonProperty("ReportInterval") | ||
83 | + private Integer reportInterval; | ||
84 | + /** | ||
85 | + * 操作类型 | ||
86 | + * <p> | ||
87 | + * 0: 订阅, 1: 取消订阅 | ||
88 | + */ | ||
89 | + @JsonProperty("OperateType") | ||
90 | + private Integer operateType; | ||
91 | + /** | ||
92 | + * 订阅执行状态 | ||
93 | + * <p> | ||
94 | + * 0: 订阅中, 1: 已取消, 2: 订阅到期, 9: 未订阅. 只读字段 | ||
95 | + */ | ||
96 | + @JsonProperty("SubscribeStatus") | ||
97 | + private Integer subscribeStatus; | ||
98 | +} |
src/main/resources/application.yml
0 → 100644
1 | +++ a/src/main/resources/application.yml |