hanzhiwei преди 3 години
родител
ревизия
96e62ee0f4
променени са 39 файла, в които са добавени 685 реда и са изтрити 32 реда
  1. 43 0
      zd-api/zd-algorithm-api/pom.xml
  2. 12 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/Main.java
  3. 115 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmEntrty.java
  4. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/alarm/domain/AlarmLog.java
  5. 44 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/Routes.java
  6. 19 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/SendTypes.java
  7. 21 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/RemoteAlarmService.java
  8. 29 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/fallback/RemoteAlarmFallbackFactory.java
  9. 36 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/FaceCompare.java
  10. 36 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java
  11. 43 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java
  12. 34 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/RemoteForwardService.java
  13. 46 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/fallback/RemoteForwardFallbackFactory.java
  14. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/BaseDomain.java
  15. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlApplyApproval.java
  16. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlOpendoorApply.java
  17. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlSubjectRelation.java
  18. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlUserRelation.java
  19. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlBuild.java
  20. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlDoorLock.java
  21. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlGroup.java
  22. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlLockOnline.java
  23. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlOpenAndClosLog.java
  24. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlOpenDoorSearch.java
  25. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlPostUser.java
  26. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlRoom.java
  27. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlUser.java
  28. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlupdateAuths.java
  29. 2 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/vo/SlOpendoorApplyVo.java
  30. 3 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/vo/SlSubjectRelationVo.java
  31. 22 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/RemoteSmartlockService.java
  32. 27 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/fallback/RemoteSmartlockFallbackFactory.java
  33. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/RemoteAddress.java
  34. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/ParamVo.java
  35. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/PlayBatchVo.java
  36. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/PlayVo.java
  37. 1 1
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/UrlVo.java
  38. 64 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java
  39. 62 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java

+ 43 - 0
zd-api/zd-algorithm-api/pom.xml

@@ -0,0 +1,43 @@
+<?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">
+    <parent>
+        <artifactId>zd</artifactId>
+        <groupId>com.zd</groupId>
+        <version>3.1.0</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>zd-algorithm-api</artifactId>
+
+    <description>
+        zd-algorithm-api 算法接口模块
+    </description>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!-- zd Common Core-->
+        <dependency>
+            <groupId>com.zd</groupId>
+            <artifactId>zd-common-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.zd.base</groupId>
+            <artifactId>zd-base-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.zd</groupId>
+            <artifactId>zd-common-swagger</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 12 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/Main.java

@@ -0,0 +1,12 @@
+package com.zd;
+
+/**
+ * @创建人 hzw
+ * @描述
+ * @创建时间 ${DATE}
+ */
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}

+ 115 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmEntrty.java

@@ -0,0 +1,115 @@
+package com.zd.algorithm.api.alarm.entity;
+
+import cn.hutool.json.JSONUtil;
+import com.zd.common.core.constant.Constants;
+
+import javax.validation.constraints.NotNull;
+
+public class AlarmEntrty {
+
+    private Routes route;
+
+    /**
+     * 手机号码
+     * Type 对象为 SMS、Call、All 时,To 为电话号码,字符串数组
+     */
+    @NotNull(message = "手机号码不能为空")
+    private String[] To;
+
+    /**
+     * 告警通知类型
+     * 目前只做出电话语音和短信(不选邮件和音频)
+     */
+    private String Type;
+
+    /**
+     * 编码方式 默认UTF-8
+     */
+    private String Encoding = Constants.UTF8;
+
+    /**
+     * 邮件主题
+     * Type 对象为 Email 时,Sub 必须添加邮件主题
+     * 可选
+     */
+    private String Sub;
+
+    /**
+     * 通知内容
+     */
+    @NotNull(message = "通知内容不能为空!")
+    private String Text;
+
+    public AlarmEntrty() {
+    }
+
+    /**
+     * 默认 电话语音播报
+     */
+    public AlarmEntrty(@NotNull Routes route, @NotNull String[] to, @NotNull String text) {
+        this.route = route;
+        this.Type = SendTypes.All+"";
+        this.setTo(to);
+        this.Text = text;
+    }
+
+    public AlarmEntrty(@NotNull Routes route, @NotNull String[] to, @NotNull String type, @NotNull String text) {
+        this.route = route;
+        this.To = to;
+        this.Type = type;
+        this.Text = text;
+    }
+
+    public String[] getTo() {
+        return To;
+    }
+
+    public void setTo(String[] to) {
+        To = to;
+    }
+
+    public String getType() {
+        return Type;
+    }
+
+    public void setType(String type) {
+        Type = type;
+    }
+
+    public String getEncoding() {
+        return Encoding;
+    }
+
+    public void setEncoding(String encoding) {
+        Encoding = encoding;
+    }
+
+    public String getSub() {
+        return Sub;
+    }
+
+    public void setSub(String sub) {
+        Sub = sub;
+    }
+
+    public String getText() {
+        return Text;
+    }
+
+    public void setText(String text) {
+        Text = text;
+    }
+
+    public Routes getRoute() {
+        return route;
+    }
+
+    public void setRoute(Routes route) {
+        this.route = route;
+    }
+
+    @Override
+    public String toString() {
+        return JSONUtil.toJsonStr(this);
+    }
+}

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/alarm/domain/AlarmLog.java

@@ -1,4 +1,4 @@
-package com.zd.alg.alarm.domain;
+package com.zd.algorithm.api.alarm.entity;
 
 import cn.hutool.json.JSONUtil;
 import com.zd.common.core.annotation.Excel;

+ 44 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/Routes.java

@@ -0,0 +1,44 @@
+package com.zd.algorithm.api.alarm.entity;
+
+public enum Routes {
+
+    /**
+     * 1.告警通知推送至告警服务模块
+     */
+    NoticePush("/cgi-bin/NoticePush"),
+
+    /**
+     * 2.获取系统运行状态信息
+     */
+    SystemStatusSnapshot("/cgi-bin/SystemStatusSnapshot"),
+
+    /**
+     * 3.获取最新接收到的短信
+     */
+    ReadSMS("/cgi-bin/ReadSMS"),
+
+    /**
+     * 4.获取最新告警通知处理结果
+     */
+    NoticeResult("/cgi-bin/NoticeResult"),
+
+    /**
+     * 5.获取告警通知处理结果记录日志
+     */
+    notice( "/LogFS/notice.log"),
+
+    /**
+     * 6.获取接收短信记录日志
+     */
+    ReceiveSMS("/LogFS/ReceiveSMS.log");
+
+    private String url;
+
+    Routes(String url) {
+        this.url = url;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+}

+ 19 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/SendTypes.java

@@ -0,0 +1,19 @@
+package com.zd.algorithm.api.alarm.entity;
+
+/**
+ * 告警通知类型
+ * @author liubo
+ */
+public enum SendTypes {
+
+    // 短信通知发送
+    SMS,
+    // 电话语音播报
+    Call,
+    // 电话语音播报和短信通知发送
+    All,
+    // 邮件通知发送
+    Email,
+    // 音频广播
+    Broadcast;
+}

+ 21 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/RemoteAlarmService.java

@@ -0,0 +1,21 @@
+package com.zd.algorithm.api.alarm.feign;
+
+import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
+import com.zd.algorithm.api.alarm.feign.fallback.RemoteAlarmFallbackFactory;
+import com.zd.common.core.constant.ServiceNameConstants;
+import com.zd.common.core.web.domain.AjaxResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 报警系统Feign调用接口
+ *
+ * @Author: liubo
+ */
+@FeignClient(contextId = "remoteAlarmService", value = ServiceNameConstants.ALARM_SERVICE, fallbackFactory = RemoteAlarmFallbackFactory.class)
+public interface RemoteAlarmService {
+
+    @PostMapping("/alarm/send")
+    public AjaxResult send(@RequestBody AlarmEntrty alarmEntrty);
+}

+ 29 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/fallback/RemoteAlarmFallbackFactory.java

@@ -0,0 +1,29 @@
+package com.zd.algorithm.api.alarm.feign.fallback;
+
+import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
+import com.zd.algorithm.api.alarm.feign.RemoteAlarmService;
+import com.zd.common.core.web.domain.AjaxResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 报警服务降级处理
+ * @author liubo
+ */
+@Component
+public class RemoteAlarmFallbackFactory implements FallbackFactory<RemoteAlarmService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteAlarmFallbackFactory.class);
+
+    @Override
+    public RemoteAlarmService create(Throwable throwable) {
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteAlarmService() {
+            @Override
+            public AjaxResult send(AlarmEntrty alarmEntrty) {
+                return AjaxResult.error("发送语音报警失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 36 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/FaceCompare.java

@@ -0,0 +1,36 @@
+package com.zd.algorithm.api.face.feign;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/10/12/17:54
+ * @Description:
+ */
+@ApiModel("人脸对比提交参数")
+public class FaceCompare {
+    @ApiModelProperty("userId")
+    private Long userId;
+
+
+    @ApiModelProperty("特征码")
+    private byte[] data;
+
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public byte[] getData() {
+        return data;
+    }
+
+    public void setData(byte[] data) {
+        this.data = data;
+    }
+}

+ 36 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java

@@ -0,0 +1,36 @@
+package com.zd.algorithm.api.face.feign;
+
+import com.zd.algorithm.api.face.feign.fallback.RemoteFaceFallbackFactory;
+import com.zd.common.core.constant.ServiceNameConstants;
+import com.zd.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件服务
+ *
+ * @author zd
+ */
+@FeignClient(contextId = "remoteFaceService", value = ServiceNameConstants.FACE_SERVICE, fallbackFactory = RemoteFaceFallbackFactory.class)
+public interface RemoteFaceService {
+    /**
+     * 获取人脸特征-根据照片
+     * @param file 文件信息
+     * @return 结果
+     */
+    @PostMapping(value = "/faceApi/faceFeature", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public R<byte[]> upload(@RequestPart(value = "file") MultipartFile file);
+
+
+    /**
+     * 人脸特征对比
+     * @param faceCompare 文件信息
+     * @return 结果
+     */
+    @PostMapping(value = "/faceApi/compare")
+    public R compare(@RequestBody FaceCompare faceCompare);
+}

+ 43 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java

@@ -0,0 +1,43 @@
+package com.zd.algorithm.api.face.feign.fallback;
+
+import com.zd.algorithm.api.face.feign.FaceCompare;
+import com.zd.algorithm.api.face.feign.RemoteFaceService;
+import com.zd.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件服务降级处理
+ *
+ * @author zd
+ */
+@Component
+public class RemoteFaceFallbackFactory implements FallbackFactory<RemoteFaceService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteFaceFallbackFactory.class);
+
+    @Override
+    public RemoteFaceService create(Throwable throwable) {
+        log.error("人脸检测服务调用失败:{}", throwable.getMessage());
+        return new RemoteFaceService() {
+            @Override
+            public R<byte[]> upload(MultipartFile file) {
+
+                return R.fail("人脸检测服务调用失败:" + throwable.getMessage());
+            }
+
+            /**
+             * 人脸特征对比
+             *
+             * @param faceCompare 文件信息
+             * @return 结果
+             */
+            @Override
+            public R compare(FaceCompare faceCompare) {
+                return R.fail("人脸对比服务调用失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 34 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/RemoteForwardService.java

@@ -0,0 +1,34 @@
+package com.zd.algorithm.api.forward.feign;
+
+import com.zd.algorithm.api.forward.feign.fallback.RemoteForwardFallbackFactory;
+import com.zd.base.api.entity.SysFile;
+import com.zd.common.core.constant.ServiceNameConstants;
+import com.zd.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Map;
+
+/**
+ * 消息内容feign调用服务
+ */
+@FeignClient(contextId = "remoteForwardService", value = ServiceNameConstants.FORWARD_SERVICE, fallbackFactory = RemoteForwardFallbackFactory.class)
+public interface RemoteForwardService {
+
+
+    /**
+     * 保存检查记录
+     */
+    @PostMapping("/checklog")
+    R add(@RequestBody Map<String,Object> map);
+
+
+    @PostMapping("/algorithm/save")
+    Object saveData(@RequestBody Map<String, Object> data);
+
+    @GetMapping("/alarm/photograph")
+    R<SysFile> photograph(@RequestParam("streamUrl") String streamUrl);
+}

+ 46 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/fallback/RemoteForwardFallbackFactory.java

@@ -0,0 +1,46 @@
+package com.zd.algorithm.api.forward.feign.fallback;
+
+import com.zd.algorithm.api.forward.feign.RemoteForwardService;
+import com.zd.base.api.entity.SysFile;
+import com.zd.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 文件服务降级处理
+ *
+ * @author zd
+ */
+@Component
+public class RemoteForwardFallbackFactory implements FallbackFactory<RemoteForwardService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteForwardFallbackFactory.class);
+
+    @Override
+    public RemoteForwardService create(Throwable throwable) {
+        log.error("实验室服务调用失败:{}", throwable.getMessage());
+        return new RemoteForwardService() {
+            /**
+             * 保存检查记录
+             */
+            @Override
+            public R add(Map<String, Object> map) {
+                return R.fail("实验室检查项结果保存调用失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public Object saveData(Map<String, Object> data) {
+
+                return R.fail("保存调用失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public R<SysFile> photograph(String streamUrl) {
+                return R.fail("报警拍照服务调用失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/BaseDomain.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain;
+package com.zd.algorithm.api.smartlock.entity;
 
 import java.io.Serializable;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlApplyApproval.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain;
+package com.zd.algorithm.api.smartlock.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.common.core.annotation.Excel;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlOpendoorApply.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain;
+package com.zd.algorithm.api.smartlock.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.common.core.annotation.Excel;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlSubjectRelation.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain;
+package com.zd.algorithm.api.smartlock.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.common.core.annotation.Excel;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/SlUserRelation.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain;
+package com.zd.algorithm.api.smartlock.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.common.core.annotation.Excel;

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlBuild.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlDoorLock.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlGroup.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlLockOnline.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlOpenAndClosLog.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlOpenDoorSearch.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlPostUser.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlRoom.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlUser.java

@@ -1,6 +1,6 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
-import com.zd.alg.smartlock.domain.BaseDomain;
+import com.zd.algorithm.api.smartlock.entity.BaseDomain;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/api/SlupdateAuths.java

@@ -1,4 +1,4 @@
-package com.zd.alg.smartlock.domain.api;
+package com.zd.algorithm.api.smartlock.entity.api;
 
 import io.swagger.annotations.ApiModelProperty;
 

+ 2 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/vo/SlOpendoorApplyVo.java

@@ -1,7 +1,7 @@
-package com.zd.alg.smartlock.domain.vo;
+package com.zd.algorithm.api.smartlock.entity.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.alg.smartlock.domain.SlOpendoorApply;
+import com.zd.algorithm.api.smartlock.entity.SlOpendoorApply;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;

+ 3 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/smartlock/domain/vo/SlSubjectRelationVo.java

@@ -1,7 +1,7 @@
-package com.zd.alg.smartlock.domain.vo;
+package com.zd.algorithm.api.smartlock.entity.vo;
 
-import com.zd.alg.smartlock.domain.SlSubjectRelation;
-import com.zd.alg.smartlock.domain.api.SlLockOnline;
+import com.zd.algorithm.api.smartlock.entity.SlSubjectRelation;
+import com.zd.algorithm.api.smartlock.entity.api.SlLockOnline;
 import java.util.List;
 
 /**

+ 22 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/RemoteSmartlockService.java

@@ -0,0 +1,22 @@
+package com.zd.algorithm.api.smartlock.feign;
+
+import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
+import com.zd.common.core.constant.ServiceNameConstants;
+import com.zd.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+
+/***
+ *
+ * 智能锁远程调用
+ */
+@FeignClient(contextId = "remoteSmartlockService",value = ServiceNameConstants.SMARTLOCK_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
+public interface RemoteSmartlockService {
+
+    @GetMapping(value = "/approval/sysMsgApprova")
+    public R sysMsgApprova(@RequestParam(value = "phone", required = true) String phone,
+                        @RequestParam(value = "content", required = true) String content,
+                        @RequestParam(value = "lockApplyId",required = true) Long lockApplyId);
+}

+ 27 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/fallback/RemoteSmartlockFallbackFactory.java

@@ -0,0 +1,27 @@
+package com.zd.algorithm.api.smartlock.feign.fallback;
+
+import com.zd.algorithm.api.smartlock.feign.RemoteSmartlockService;
+import com.zd.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RemoteSmartlockFallbackFactory implements FallbackFactory<RemoteSmartlockService> {
+
+    private static final Logger log = LoggerFactory.getLogger(RemoteSmartlockFallbackFactory.class);
+
+
+    @Override
+    public RemoteSmartlockService create(Throwable cause) {
+        return new RemoteSmartlockService() {
+            @Override
+            public R sysMsgApprova(String phone, String content, Long lockApplyId) {
+                log.info("短信审核处理失败:" + cause.getMessage());
+                return R.fail("短信审核处理失败:"+ cause.getMessage());
+            }
+        };
+
+    }
+}

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/RemoteAddress.java

@@ -1,4 +1,4 @@
-package com.zd.alg.speaker.domain;
+package com.zd.algorithm.api.speaker.entity;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/ParamVo.java

@@ -1,4 +1,4 @@
-package com.zd.alg.speaker.domain.vo;
+package com.zd.algorithm.api.speaker.entity.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/PlayBatchVo.java

@@ -1,4 +1,4 @@
-package com.zd.alg.speaker.domain.vo;
+package com.zd.algorithm.api.speaker.entity.vo;
 
 import com.zd.common.core.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/PlayVo.java

@@ -1,4 +1,4 @@
-package com.zd.alg.speaker.domain.vo;
+package com.zd.algorithm.api.speaker.entity.vo;
 
 import com.zd.common.core.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/domain/vo/UrlVo.java

@@ -1,4 +1,4 @@
-package com.zd.alg.speaker.domain.vo;
+package com.zd.algorithm.api.speaker.entity.vo;
 
 import io.swagger.annotations.ApiModelProperty;
 

+ 64 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java

@@ -0,0 +1,64 @@
+package com.zd.algorithm.api.speaker.feign;
+
+import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
+import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
+import com.zd.common.core.constant.ServiceNameConstants;
+import com.zd.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 语音远程调用
+ */
+@FeignClient(contextId = "remoteSpeakService",value = ServiceNameConstants.SPEAK_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
+public interface RemoteSpeakService {
+      @RequestMapping("/speaker/textParseVideo")
+      String textParseUrl(@RequestParam("speed") Integer speed, @RequestParam("volume") Integer volume, @RequestParam("text") String text);
+
+      /***
+       * 文字转语音播放
+       * @return
+       */
+      @RequestMapping("/speaker/textParseUrlIps")
+      R textParseUrlIps(@RequestParam("text") String text, @RequestBody List<PlayVo> playVo);
+
+      /**
+       * 获取喇叭列表
+       * @param page
+       * @param pageSize
+       * @param floorId
+       * @return
+       */
+      @RequestMapping("/speaker/getDeviceList")
+      R getDeviceList(@RequestParam("page") Integer page, @RequestParam("pageSize") Integer pageSize,@RequestParam("floorId") Long floorId);
+
+      /**
+       * 获取喇叭列表(根据楼层Id和实验室ID)
+       * @param page
+       * @param pageSize
+       * @param floorId
+       * @param subId
+       * @return
+       */
+      @RequestMapping("/speaker/getDeviceListBySub")
+      R getDeviceList(@RequestParam("page") Integer page, @RequestParam("pageSize") Integer pageSize,@RequestParam("floorId") Long floorId,@RequestParam("subId") Long subId);
+
+
+      /***
+       * 语音播放
+       * @return
+       */
+      @RequestMapping("/speaker/textParseUrlAppIps")
+      R textParseUrlAppIps(@RequestParam("text") String text, @RequestBody List<PlayVo> playVo);
+
+      /***
+       * 关闭喇叭
+       * @return
+       */
+      @RequestMapping("/speaker/stopPlayMusic")
+      R stopPlayMusic(@RequestParam("sn") String sn, @RequestParam("ip") String ip);
+}

+ 62 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java

@@ -0,0 +1,62 @@
+package com.zd.algorithm.api.speaker.feign.fallback;
+
+import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
+import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
+import com.zd.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ *
+ */
+@Component
+public class RemoteSpeakFallbackFactory implements FallbackFactory<RemoteSpeakService> {
+
+    private static final Logger log = LoggerFactory.getLogger(RemoteSpeakFallbackFactory.class);
+
+    @Override
+    public RemoteSpeakService create(Throwable cause) {
+        return new RemoteSpeakService() {
+            @Override
+            public String textParseUrl(Integer speed, Integer volume, String text) {
+                log.info("语音转化失败:" + cause.getMessage());
+                return "语音转化失败:" + cause.getMessage();
+            }
+
+            @Override
+            public R textParseUrlIps(String text, List<PlayVo> playVo) {
+                log.info("语音转化失败:" + cause.getMessage());
+                return R.fail("textParseUrlIps:语音转化失败"+ cause.getMessage());
+            }
+
+            @Override
+            public R getDeviceList(Integer page, Integer pageSize, Long floorId) {
+                log.info("getDeviceList:获取喇叭列表失败:" + cause.getMessage());
+                return R.fail("getDeviceList:获取喇叭列表失败"+ cause.getMessage());
+            }
+
+            @Override
+            public R getDeviceList(Integer page, Integer pageSize, Long floorId, Long subId) {
+                log.info("getDeviceList:根据楼层Id和实验室Id获取喇叭列表失败:" + cause.getMessage());
+                return R.fail("getDeviceList:根据楼层Id和实验室Id获取喇叭列表失败"+ cause.getMessage());
+            }
+
+            @Override
+            public R textParseUrlAppIps(String text, List <PlayVo> playVo) {
+                log.info("语音播放失败:" + cause.getMessage());
+                return R.fail("textParseUrlIps:语音播放失败"+ cause.getMessage());
+            }
+
+            @Override
+            public R stopPlayMusic(String text, String ip) {
+                log.info("关闭喇叭失败:" + cause.getMessage());
+                return R.fail("textParseUrlIps:关闭喇叭失败"+ cause.getMessage());
+            }
+
+        };
+    }
+}