forked from wuweidong/hzims-back-huoshan
15 changed files with 226 additions and 4 deletions
@ -0,0 +1,31 @@
|
||||
<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>com.hnac.hzims</groupId> |
||||
<artifactId>hzims-service</artifactId> |
||||
<version>4.0.0-SNAPSHOT</version> |
||||
</parent> |
||||
|
||||
<artifactId>hikvision</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<name>hikvision</name> |
||||
<url>http://maven.apache.org</url> |
||||
|
||||
<properties> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
</properties> |
||||
|
||||
<dependencies> |
||||
<dependency> |
||||
<groupId>com.hzinfo.framework</groupId> |
||||
<artifactId>hnac-framework-mqtt-starters</artifactId> |
||||
<version>${bladex.project.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.hikvision.ga</groupId> |
||||
<artifactId>artemis-http-client</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
</project> |
@ -0,0 +1,28 @@
|
||||
package com.hnac.hzims.hikvision; |
||||
|
||||
import org.mybatis.spring.annotation.MapperScan; |
||||
import org.springblade.core.cloud.feign.EnableBladeFeign; |
||||
import org.springblade.core.launch.BladeApplication; |
||||
import org.springframework.boot.builder.SpringApplicationBuilder; |
||||
import org.springframework.cloud.client.SpringCloudApplication; |
||||
|
||||
/** |
||||
* 海康威视微服务 |
||||
* |
||||
* @author ypj |
||||
* @date 2025-06-12 |
||||
*/ |
||||
@EnableBladeFeign |
||||
@SpringCloudApplication |
||||
@MapperScan(basePackages = {"com.hnac.hzinfo.**.mapper"}) |
||||
public class HikvisionApplication { |
||||
static String APPLICATION_NAME = "hzims-hikvision"; |
||||
|
||||
public static void main(String[] args) { |
||||
BladeApplication.run(APPLICATION_NAME, HikvisionApplication.class, args); |
||||
} |
||||
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { |
||||
return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, HikvisionApplication.class); |
||||
} |
||||
} |
@ -0,0 +1,33 @@
|
||||
package com.hnac.hzims.hikvision.config; |
||||
|
||||
import com.hikvision.artemis.sdk.config.ArtemisConfig; |
||||
import lombok.Data; |
||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||
import org.springframework.cloud.context.config.annotation.RefreshScope; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* 海康威视配置 |
||||
* |
||||
* @author ypj |
||||
* @date 2025-06-13 |
||||
*/ |
||||
@Configuration |
||||
@ConfigurationProperties(prefix = "hikvision.server") |
||||
@Data |
||||
@RefreshScope |
||||
public class HikvisionConfig { |
||||
private String host; |
||||
|
||||
private String appKey; |
||||
|
||||
private String appSecret; |
||||
|
||||
public ArtemisConfig toArtemisConfig() { |
||||
ArtemisConfig artemisConfig = new ArtemisConfig(); |
||||
artemisConfig.setHost(host); |
||||
artemisConfig.setAppKey(appKey); |
||||
artemisConfig.setAppSecret(appSecret); |
||||
return artemisConfig; |
||||
} |
||||
} |
@ -0,0 +1,26 @@
|
||||
package com.hnac.hzims.hikvision.controller; |
||||
|
||||
import com.hnac.hzims.hikvision.service.IHikvisionService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* 海康威视智能告警 |
||||
* |
||||
* @author ypj |
||||
* @date 2025-06-13 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/hikvision") |
||||
@RequiredArgsConstructor |
||||
public class HikvisionController { |
||||
private final IHikvisionService hikvisionService; |
||||
|
||||
@GetMapping("/getSubscriptionResult") |
||||
public R<String> getSubscriptionResult() { |
||||
return R.data(hikvisionService.getSubscriptionResult()); |
||||
} |
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.hikvision.service; |
||||
|
||||
/** |
||||
* 海康威视视频服务 |
||||
* |
||||
* @author ypj |
||||
* @date 2025-06-12 |
||||
*/ |
||||
public interface IHikvisionService { |
||||
|
||||
String getSubscriptionResult(); |
||||
|
||||
Boolean subscribe(); |
||||
} |
@ -0,0 +1,55 @@
|
||||
package com.hnac.hzims.hikvision.service.impl; |
||||
|
||||
import com.hikvision.artemis.sdk.ArtemisHttpUtil; |
||||
import com.hikvision.artemis.sdk.config.ArtemisConfig; |
||||
import com.hnac.hzims.hikvision.config.HikvisionConfig; |
||||
import com.hnac.hzims.hikvision.service.IHikvisionService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.java.Log; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.mqtt.config.MqttConfig; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 海康威视服务 |
||||
* |
||||
* @author ypj |
||||
* @date 2025-06-12 |
||||
*/ |
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class HikvisionServiceImpl implements IHikvisionService { |
||||
|
||||
private final MqttConfig mqttConfig; |
||||
|
||||
private final HikvisionConfig hikvisionConfig; |
||||
|
||||
@Override |
||||
public String getSubscriptionResult() { |
||||
ArtemisConfig.host = this.hikvisionConfig.getHost(); |
||||
ArtemisConfig.appKey = this.hikvisionConfig.getAppKey(); |
||||
ArtemisConfig.appSecret = this.hikvisionConfig.getAppSecret(); |
||||
final Map<String, String> subscriptionPath = new HashMap<String, String>(2) { |
||||
{ |
||||
this.put("https://", "/artemis/api/eventService/v1/eventSubscriptionView"); |
||||
} |
||||
}; |
||||
return ArtemisHttpUtil.doPostStringArtemis(subscriptionPath, |
||||
"{\"subWay\":2}", |
||||
(Map<String, String>) null, |
||||
(String) null, |
||||
"application/json", |
||||
(Map<String, String>) null); |
||||
} |
||||
|
||||
@Override |
||||
public Boolean subscribe() { |
||||
String result = this.getSubscriptionResult(); |
||||
log.info("海康威视订阅结果:{}", result); |
||||
return Boolean.TRUE; |
||||
} |
||||
} |
@ -0,0 +1,10 @@
|
||||
#服务器端口 |
||||
server: |
||||
port: 8271 |
||||
|
||||
#数据源配置 |
||||
spring: |
||||
datasource: |
||||
url: ${blade.datasource.dev.url} |
||||
username: ${blade.datasource.dev.username} |
||||
password: ${blade.datasource.dev.password} |
@ -0,0 +1,6 @@
|
||||
#数据源配置 |
||||
spring: |
||||
datasource: |
||||
url: ${blade.datasource.prod.url} |
||||
username: ${blade.datasource.prod.username} |
||||
password: ${blade.datasource.prod.password} |
@ -0,0 +1,6 @@
|
||||
#数据源配置 |
||||
spring: |
||||
datasource: |
||||
url: ${blade.datasource.test.url} |
||||
username: ${blade.datasource.test.username} |
||||
password: ${blade.datasource.test.password} |
@ -0,0 +1,15 @@
|
||||
spring: |
||||
application: |
||||
name: hzims-hikvision |
||||
|
||||
#mybatis-plus配置 |
||||
mybatis-plus: |
||||
mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml,classpath:com/hnac/hzinfo/**/mapper/*Mapper.xml |
||||
#实体扫描,多个package用逗号或者分号分隔 |
||||
typeAliasesPackage: org.springbalde.**.entity,com.hnac.hzinfo.**.entity |
||||
|
||||
#swagger扫描路径配置 |
||||
swagger: |
||||
base-packages: |
||||
- org.springbalde |
||||
- com.hnac.hzinfo |
Loading…
Reference in new issue