From 0b94665c1978d6d325891ce07570d8fcf316fff6 Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Mon, 12 Aug 2024 15:56:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AD=97=E5=85=B8=E8=A1=A8se?= =?UTF-8?q?rvice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/system/api/RemoteDictService.java | 43 +++++++++++++++++++ .../factory/RemoteDictFallbackFactory.java | 37 ++++++++++++++++ .../core/constant/ServiceNameConstants.java | 6 +++ 3 files changed, 86 insertions(+) create mode 100644 bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteDictService.java create mode 100644 bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteDictFallbackFactory.java diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteDictService.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteDictService.java new file mode 100644 index 0000000..4ea6e6c --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteDictService.java @@ -0,0 +1,43 @@ +package com.bonus.system.api; + +import com.bonus.common.core.constant.ServiceNameConstants; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.domain.SysDictData; +import com.bonus.system.api.domain.SysDictType; +import com.bonus.system.api.factory.RemoteDictFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 字典服务 + * @author : 阮世耀 + * @version : 1.0 + * @PackagePath: com.bonus.system.api + * @CreateTime: 2024-08-12 15:31 + * @Description: 字典服务service + */ +@FeignClient(contextId = "remoteDictService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteDictFallbackFactory.class) +public interface RemoteDictService { + + /** + * 查询字典类型 + * + * @param dictName 字典名称 + * @return 结果 + */ + @GetMapping(value = "/system/dict/type/list") + public R getDictType(@RequestParam(value = "dictName", required = false) String dictName); + + + /** + * 查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + @GetMapping(value = "/system/dict/data/list") + public R getDictData(@RequestParam(value = "dictType", required = false) String dictType); + + +} diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteDictFallbackFactory.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteDictFallbackFactory.java new file mode 100644 index 0000000..e54d8ad --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteDictFallbackFactory.java @@ -0,0 +1,37 @@ +package com.bonus.system.api.factory; + +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteDictService; +import com.bonus.system.api.domain.SysDictData; +import com.bonus.system.api.domain.SysDictType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 字典服务降级处理 + * + * @author bonus + */ +@Component +public class RemoteDictFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteDictFallbackFactory.class); + + @Override + public RemoteDictService create(Throwable throwable) { + log.error("字典服务调用失败:{}", throwable.getMessage()); + return new RemoteDictService() { + @Override + public R getDictType(String dictType) { + return R.fail("获取字典类型失败" + throwable.getMessage()); + } + + @Override + public R getDictData(String dictType) { + return R.fail("获取字典数据失败" + throwable.getMessage()); + } + }; + } +} diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java index b126e5e..c71d2a1 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,10 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "bonus-file"; + + /** + * 字典服务的service + */ + public static final String DICT_SERVICE = "bonus-dict"; + }