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