✨ Introducing new features. #5041 ParamResolver 增加批量获取参数的方法封装

This commit is contained in:
lbw committed 2023-08-02 17:40:53 +08:00
1 parent 3abfce5703
commit d0bb2f01e7
5 files changed
+69

No files matched your search

@@ -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<String,Object>
*/
public Map<String, Object> 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
@@ -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<String> getByKey(@PathVariable("key") String key, @RequestHeader(SecurityConstants.FROM) String from);
/**
* 通过keys 查询参数配置
* @param keys keys
* @param from 声明成内部调用,避免MQ 等无法调用
* @return map
*/
@GetMapping("/param/publicValues")
R<Map<String, Object>> getByKeys(@RequestParam("keys") String[] keys,
@RequestHeader(SecurityConstants.FROM) String from);
}
@@ -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 分页对象
@@ -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<SysPublicParam> {
*/
String getSysPublicParamKeyToValue(String publicKey);
/**
* 通过key查询公共参数指定值
* @param keys 参数列表
* @return Map
*/
Map<String, Object> getSysPublicParamsKeyToValue(String[] keys);
/**
* 更新参数
* @param sysPublicParam
@@ -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<SysPublicParamMapper,
return null;
}
/**
* 通过key查询公共参数指定值
* @param keys 参数列表
* @return Map
*/
@Override
public Map<String, Object> getSysPublicParamsKeyToValue(String[] keys) {
List<SysPublicParam> paramList = this.baseMapper
.selectList(Wrappers.<SysPublicParam>lambdaQuery().in(SysPublicParam::getPublicKey, keys));
Map<String, Object> result = new HashMap<>(8);
paramList.forEach(param -> result.put(param.getPublicKey(), param.getPublicValue()));
return result;
}
/**
* 更新参数
* @param sysPublicParam