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 | 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 | ... | ... |