From c2454cf91f5f627c9d1b62412e36036d069a1fbd Mon Sep 17 00:00:00 2001 From: zhuxinyu <1799009482@qq.com> Date: Sat, 1 Apr 2023 23:28:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E7=AB=AF=E5=BC=82=E5=B8=B8=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1api=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/device/DeviceAbnormalFeignClient.java | 24 +++++++++++++ ...iceAbnormalFeignClientFallbackFactory.java | 34 +++++++++++++++++++ .../device/DeviceAbnormalController.java | 2 +- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/DeviceAbnormalFeignClient.java create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/fallback/DeviceAbnormalFeignClientFallbackFactory.java diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/DeviceAbnormalFeignClient.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/DeviceAbnormalFeignClient.java new file mode 100644 index 000000000..1307fed84 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/DeviceAbnormalFeignClient.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.api.device; + + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.prepare.harmonic.api.device.fallback.DeviceAbnormalFeignClientFallbackFactory; +import com.njcn.prepare.harmonic.api.line.fallback.DayDataFeignClientFallbackFactory; +import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient( + value = ServerInfo.PREPARE_BOOT,//对应模块名 + path = "/deviceAbnormal",//对应controller请求类 + fallbackFactory = DeviceAbnormalFeignClientFallbackFactory.class//服务降级处理类 +) +public interface DeviceAbnormalFeignClient { + + @PostMapping("/statistics") + public HttpResult dailyDeviceAbnormaStatistics (@RequestBody DeviceAbnormaStatisticsParam param); +} diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/fallback/DeviceAbnormalFeignClientFallbackFactory.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/fallback/DeviceAbnormalFeignClientFallbackFactory.java new file mode 100644 index 000000000..833770c83 --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/device/fallback/DeviceAbnormalFeignClientFallbackFactory.java @@ -0,0 +1,34 @@ +package com.njcn.prepare.harmonic.api.device.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.device.pq.utils.DeviceEnumUtil; +import com.njcn.prepare.harmonic.api.device.DeviceAbnormalFeignClient; +import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestBody; + +@Slf4j +@Component +public class DeviceAbnormalFeignClientFallbackFactory implements FallbackFactory { + @Override + public DeviceAbnormalFeignClient create(Throwable throwable) { + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (throwable.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException)throwable.getCause(); + exceptionEnum = DeviceEnumUtil.getExceptionEnum(businessException.getResult()); + } + + Enum finalExceptionEnum = exceptionEnum; + return new DeviceAbnormalFeignClient() { + @Override + public HttpResult dailyDeviceAbnormaStatistics( @RequestBody DeviceAbnormaStatisticsParam param) { + log.error("{}异常,降级处理,异常为:{}", "终端异常统计: ", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/device/DeviceAbnormalController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/device/DeviceAbnormalController.java index 2237b68f5..f1d91a438 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/device/DeviceAbnormalController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/device/DeviceAbnormalController.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*; import java.text.ParseException; @Slf4j -@Api(tags = "终端异常") +@Api(tags = "终端异常统计") @RestController @RequestMapping("/deviceAbnormal") @RequiredArgsConstructor