Przeglądaj źródła

yinruoxi:

新增
    1.预警新增滴滴通知
tags/B.1.0.4.6_20230828_alpha
kira 2 lat temu
committed by yk
rodzic
commit
3caf0ec424
4 zmienionych plików z 111 dodań i 0 usunięć
  1. +24
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/domain/vo/DingdingReqEntity.java
  2. +25
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/feign/RemoteDingdingService.java
  3. +33
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/feign/factory/RemoteDingdingFallbackFactory.java
  4. +29
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmManDeviceController.java

+ 24
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/domain/vo/DingdingReqEntity.java Wyświetl plik

@@ -0,0 +1,24 @@
package com.xueyi.system.api.sms.domain.vo;

import com.alibaba.fastjson.JSONObject;
import lombok.Data;

import javax.validation.constraints.NotBlank;

@Data
public class DingdingReqEntity {
@NotBlank(message = "msgtype不能为空")
private String msgtype;

@NotBlank(message = "text不能为空")
private JSONObject text;


public JSONObject toJson(){
JSONObject json = new JSONObject(true);
json.put("msgtype", msgtype);
json.put("text", text);
return json;
}

}

+ 25
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/feign/RemoteDingdingService.java Wyświetl plik

@@ -0,0 +1,25 @@
package com.xueyi.system.api.sms.feign;

import com.alibaba.fastjson.JSONObject;
import com.xueyi.system.api.sms.domain.vo.DingdingReqEntity;
import com.xueyi.system.api.sms.domain.vo.SmsReqEntity;
import com.xueyi.system.api.sms.feign.factory.RemoteDingdingFallbackFactory;
import com.xueyi.system.api.sms.feign.factory.RemoteSmsFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
* 短信发送服务
*
* @author yrx
*/
@FeignClient(url = "${notification.dingding.url}",name = "dingding", fallbackFactory = RemoteDingdingFallbackFactory.class)
public interface RemoteDingdingService {

@PostMapping("/robot/send")
JSONObject send(@RequestParam(value = "access_token")String token, @RequestBody DingdingReqEntity smsReqEntity);


}

+ 33
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/sms/feign/factory/RemoteDingdingFallbackFactory.java Wyświetl plik

@@ -0,0 +1,33 @@
package com.xueyi.system.api.sms.feign.factory;

import com.alibaba.fastjson.JSONObject;
import com.xueyi.common.core.web.result.R;
import com.xueyi.system.api.sms.domain.vo.DingdingReqEntity;
import com.xueyi.system.api.sms.domain.vo.SmsReqEntity;
import com.xueyi.system.api.sms.feign.RemoteDingdingService;
import com.xueyi.system.api.sms.feign.RemoteSmsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
* 会议室服务 降级处理
*
* @author xueyi
*/
@Slf4j
@Component
public class RemoteDingdingFallbackFactory implements FallbackFactory<RemoteDingdingService> {

@Override
public RemoteDingdingService create(Throwable throwable) {
log.error("短信服务调用失败:{}", throwable.getMessage());
return new RemoteDingdingService() {
@Override
public JSONObject send(String token, DingdingReqEntity smsReqEntity) {
return R.fail("钉钉服务调用失败:" + throwable.getMessage()).toJson1();
}

};
}
}

+ 29
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmManDeviceController.java Wyświetl plik

@@ -15,6 +15,7 @@ import com.xueyi.common.log.enums.BusinessType;
import com.xueyi.common.mqtt.connection.MqttTemplate;
import com.xueyi.common.security.annotation.Logical;
import com.xueyi.common.security.annotation.RequiresPermissions;
import com.xueyi.common.sms.configure.SmsProperties;
import com.xueyi.common.web.entity.controller.BaseController;
import com.xueyi.message.api.transfer.domain.vo.DmActiveVo;
import com.xueyi.message.api.transfer.feign.RemoteTransferService;
@@ -24,6 +25,10 @@ import com.xueyi.system.api.digitalmans.domain.vo.NumberOfOnlineToChartVo;
import com.xueyi.system.api.digitalmans.feign.RemoteDigitalmanService;
import com.xueyi.system.api.model.Source;
import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto;
import com.xueyi.system.api.sms.domain.vo.DingdingReqEntity;
import com.xueyi.system.api.sms.domain.vo.SmsReqEntity;
import com.xueyi.system.api.sms.feign.RemoteDingdingService;
import com.xueyi.system.api.sms.feign.RemoteSmsService;
import com.xueyi.system.device.service.IDmDeviceTenantMergeService;
import com.xueyi.system.dict.service.ISysDictDataService;
import com.xueyi.system.digitalmans.domain.query.DmManDeviceQuery;
@@ -39,6 +44,7 @@ import org.eclipse.paho.client.mqttv3.MqttException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -101,6 +107,22 @@ public class DmManDeviceController extends BaseController<DmManDeviceQuery, DmMa
@Autowired
IDmExceptionLogService dmExceptionLogService;

@Autowired
RemoteSmsService remoteSmsService;

@Autowired
SmsProperties smsProperties;

@Autowired
RemoteDingdingService remoteDingdingService;


/**
* dingding连接token
*/
@Value("${notification.dingding.access-token}")
private String token;



/** 定义节点名称 */
@@ -157,6 +179,13 @@ public class DmManDeviceController extends BaseController<DmManDeviceQuery, DmMa
logDto.setType("heartbeat_status");
logDto.setOccurTime(LocalDateTime.now());
dmExceptionLogService.insert(logDto);
DingdingReqEntity entity = new DingdingReqEntity();
entity.setMsgtype("text");
JSONObject jo = new JSONObject();
jo.put("content", "【一级预警】客户" + item.getTenantName() + ",设备" + item.getDeviceId() + "离线,请尽快排查原因,并在运维端解除预警状态。");
entity.setText(jo);
JSONObject dingdingResult = remoteDingdingService.send(token,entity);
log.info("dingdingResult:{}",dingdingResult);
}
}
});


Ładowanie…
Anuluj
Zapisz