From d0bb2f01e7940b38112c3aad4cc64a066dcbb873 Mon Sep 17 00:00:00 2001 From: lbw Date: Wed, 2 Aug 2023 17:40:53 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20#5?= =?UTF-8?q?041=20ParamResolver=20=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8F=82=E6=95=B0=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/data/resolver/ParamResolver.java | 18 ++++++++++++++++++ .../admin/api/feign/RemoteParamService.java | 14 ++++++++++++++ .../controller/SysPublicParamController.java | 12 ++++++++++++ .../admin/service/SysPublicParamService.java | 9 +++++++++ .../impl/SysPublicParamServiceImpl.java | 16 ++++++++++++++++ 5 files changed, 69 insertions(+) diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/ParamResolver.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/ParamResolver.java index eae86247c..7e651b308 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/ParamResolver.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/ParamResolver.java @@ -7,6 +7,9 @@ import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.core.util.SpringContextHolder; import lombok.experimental.UtilityClass; +import java.util.Map; +import java.util.Objects; + /** * @author lengleng * @date 2020/5/12 @@ -16,6 +19,21 @@ import lombok.experimental.UtilityClass; @UtilityClass public class ParamResolver { + /** + * 根据多个key 查询value 配置 结果使用hutool 的maputil 进行包装处理 MapUtil.getBool(result,key) + * @param key key + * @return Map + */ + public Map getMap(String... key) { + // 校验入参是否合法 + if (Objects.isNull(key)) { + throw new IllegalArgumentException("参数不合法"); + } + + RemoteParamService remoteParamService = SpringContextHolder.getBean(RemoteParamService.class); + return remoteParamService.getByKeys(key, SecurityConstants.FROM_IN).getData(); + } + /** * 根据key 查询value 配置 * @param key key diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteParamService.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteParamService.java index de21f9f67..9068e2b57 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteParamService.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteParamService.java @@ -3,10 +3,14 @@ package com.pig4cloud.pigx.admin.api.feign; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.core.constant.ServiceNameConstants; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.core.util.RetOps; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Map; /** * @author lengleng @@ -26,4 +30,14 @@ public interface RemoteParamService { @GetMapping("/param/publicValue/{key}") R getByKey(@PathVariable("key") String key, @RequestHeader(SecurityConstants.FROM) String from); + /** + * 通过keys 查询参数配置 + * @param keys keys + * @param from 声明成内部调用,避免MQ 等无法调用 + * @return map + */ + @GetMapping("/param/publicValues") + R> getByKeys(@RequestParam("keys") String[] keys, + @RequestHeader(SecurityConstants.FROM) String from); + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java index e6a694464..c48b3ff25 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java @@ -65,6 +65,18 @@ public class SysPublicParamController { return R.ok(sysPublicParamService.getSysPublicParamKeyToValue(publicKey)); } + /** + * 通过key查询公共参数值 + * @param keys + * @return + */ + @Inner(value = false) + @Operation(description = "查询公共参数值", summary = "根据key查询公共参数值") + @GetMapping("/publicValues") + public R publicKeys( String[] keys) { + return R.ok(sysPublicParamService. getSysPublicParamsKeyToValue(keys)); + } + /** * 分页查询 * @param page 分页对象 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysPublicParamService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysPublicParamService.java index a9117f77b..d28b9619e 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysPublicParamService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysPublicParamService.java @@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.pig4cloud.pigx.admin.api.entity.SysPublicParam; import com.pig4cloud.pigx.common.core.util.R; +import java.util.Map; + /** * 公共参数配置 * @@ -36,6 +38,13 @@ public interface SysPublicParamService extends IService { */ String getSysPublicParamKeyToValue(String publicKey); + /** + * 通过key查询公共参数指定值 + * @param keys 参数列表 + * @return Map + */ + Map getSysPublicParamsKeyToValue(String[] keys); + /** * 更新参数 * @param sysPublicParam diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java index 4610d4e15..9a6cfee95 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java @@ -33,7 +33,9 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -59,6 +61,20 @@ public class SysPublicParamServiceImpl extends ServiceImpl getSysPublicParamsKeyToValue(String[] keys) { + List paramList = this.baseMapper + .selectList(Wrappers.lambdaQuery().in(SysPublicParam::getPublicKey, keys)); + Map result = new HashMap<>(8); + paramList.forEach(param -> result.put(param.getPublicKey(), param.getPublicValue())); + return result; + } + /** * 更新参数 * @param sysPublicParam