From f17b2c39aa772f7f3af3d36554fc5a7cdcc9877c Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Mon, 18 Sep 2023 14:07:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=97=A5=E5=BF=97=E5=AF=B9?= =?UTF-8?q?=E5=A4=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/api/EventLogsFeignClient.java | 22 +++++++++++ .../EventLogsClientFallbackFactory.java | 38 +++++++++++++++++++ .../equipment/CsEventSendMsgController.java | 4 +- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EventLogsFeignClient.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EventLogsClientFallbackFactory.java diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EventLogsFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EventLogsFeignClient.java new file mode 100644 index 0000000..9d20103 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/EventLogsFeignClient.java @@ -0,0 +1,22 @@ +package com.njcn.csdevice.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.fallback.EventLogsClientFallbackFactory; +import com.njcn.csdevice.pojo.po.CsEventSendMsg; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author xy + */ +@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csEventSendMsg", fallbackFactory = EventLogsClientFallbackFactory.class,contextId = "csEventSendMsg") +public interface EventLogsFeignClient { + + @PostMapping("/add") + HttpResult addLogs(@RequestBody List list); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EventLogsClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EventLogsClientFallbackFactory.java new file mode 100644 index 0000000..48a14c9 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/EventLogsClientFallbackFactory.java @@ -0,0 +1,38 @@ +package com.njcn.csdevice.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.csdevice.api.EventLogsFeignClient; +import com.njcn.csdevice.pojo.po.CsEventSendMsg; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author xy + */ +@Slf4j +@Component +public class EventLogsClientFallbackFactory implements FallbackFactory { + @Override + public EventLogsFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (cause.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) cause.getCause(); + } + Enum finalExceptionEnum = exceptionEnum; + return new EventLogsFeignClient() { + + @Override + public HttpResult addLogs(List list) { + log.error("{}异常,降级处理,异常为:{}","新增推送日志",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + } +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEventSendMsgController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEventSendMsgController.java index 94fda95..ae497c0 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEventSendMsgController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEventSendMsgController.java @@ -41,9 +41,9 @@ public class CsEventSendMsgController extends BaseController { @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD) @PostMapping("/add") - @ApiOperation("插入推送日志") + @ApiOperation("新增推送日志") @ApiImplicitParam(name = "list", value = "日志记录", required = true) - public HttpResult addLogs(@RequestBody List list) { + public HttpResult addLogs(@RequestBody List list) { String methodDescribe = getMethodDescribe("addLogs"); csEventSendMsgService.saveBatch(list); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);