Browse Source

设备状态变更通知

谭斌 2 years ago
parent
commit
67298575c9

+ 12 - 0
device-api-service/src/main/java/com/xy/service/alipay/SpiDeviceService.java

@@ -31,4 +31,16 @@ public interface SpiDeviceService {
     @RequestMapping(value = "/faultInform/notify", method = {RequestMethod.GET, RequestMethod.POST})
     String deviceAlarmNotify(@RequestParam Map<String, String> params);
 
+    /**
+     * 设备状态变更通知
+     * 触发条件:设备激活状态或运营状态发生变化时
+     * 使用场景:接收设备状态变更,进行相应业务处理和任务触发
+     * notify_type:device_status_change
+     *
+     * @param params
+     * @return
+     */
+    @RequestMapping(value = "/status/change/notify", method = {RequestMethod.GET, RequestMethod.POST})
+    String deviceStatusChangeNotify(@RequestParam Map<String, String> params);
+
 }

+ 23 - 0
device-api-service/src/main/java/com/xy/service/alipay/impl/SpiDeviceServiceImpl.java

@@ -2,6 +2,7 @@ package com.xy.service.alipay.impl;
 
 import cn.hutool.json.JSONUtil;
 import com.xy.dto.spi.DeviceAlarmNotifyDTO;
+import com.xy.dto.spi.DeviceStatusChangeNotifyDTO;
 import com.xy.service.alipay.SpiDeviceService;
 import com.xy.service.spi.ISpiService;
 import com.xy.service.spi.request.AsyncRequestParams;
@@ -50,4 +51,26 @@ public class SpiDeviceServiceImpl implements SpiDeviceService {
         //3.3 封装请求成功业务响应信息
         return "success";
     }
+
+    @Override
+    public String deviceStatusChangeNotify(Map<String, String> params) {
+        log.info("设备状态变更通知请求:{}", JSONUtil.toJsonPrettyStr(params));
+        //1.获取同步请求参数
+        AsyncRequestParams asyncRequestParams = spiService.getAsyncRequestParams(params);
+
+        //2.入参验签
+        boolean b = spiService.checkSign(params);
+        if (!b) {
+            log.error("设备状态变更通知接口,验签失败:{}", JSONUtil.toJsonPrettyStr(params));
+            //验签失败
+            return "验签失败!";
+        }
+        //3.本系统业务逻辑处理
+        //3.1获取的支付宝请求业务参数
+        DeviceStatusChangeNotifyDTO deviceStatusChangeNotifyDTO = spiService.getDeviceStatusChangeNotifyDTO(asyncRequestParams);
+        //3.2 根据支付宝请求业务参数,进行本系统逻辑处理
+        // 业务处理代码3.2....................
+        //3.3 封装请求成功业务响应信息
+        return "success";
+    }
 }