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