mirror of
https://gitee.com/log4j/pig.git
synced 2024-12-23 05:00:23 +08:00
✨ 字典工具类
This commit is contained in:
parent
4f6e89f1dc
commit
bf96bc2559
@ -1,19 +1,3 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.pig4cloud.pig.admin.api.feign;
|
package com.pig4cloud.pig.admin.api.feign;
|
||||||
|
|
||||||
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
|
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
|
||||||
@ -26,16 +10,18 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典调用
|
|
||||||
*
|
|
||||||
* @author lengleng
|
* @author lengleng
|
||||||
|
* @date 2020/5/12
|
||||||
|
* <p>
|
||||||
|
* 查询参数相关
|
||||||
*/
|
*/
|
||||||
@FeignClient(contextId = "remoteDictService", value = ServiceNameConstants.UMPS_SERVICE)
|
@FeignClient(contextId = "remoteDictService", value = ServiceNameConstants.UMPS_SERVICE)
|
||||||
public interface RemoteDictService {
|
public interface RemoteDictService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 通过字典类型查找字典
|
||||||
* @param type 字典类型
|
* @param type 字典类型
|
||||||
* @return 返回字典项列表
|
* @return 同类型字典
|
||||||
*/
|
*/
|
||||||
@GetMapping("/dict/type/{type}")
|
@GetMapping("/dict/type/{type}")
|
||||||
R<List<SysDictItem>> getDictByType(@PathVariable("type") String type);
|
R<List<SysDictItem>> getDictByType(@PathVariable("type") String type);
|
||||||
|
@ -0,0 +1,99 @@
|
|||||||
|
package com.pig4cloud.pig.admin.api.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
|
||||||
|
import com.pig4cloud.pig.admin.api.feign.RemoteDictService;
|
||||||
|
import com.pig4cloud.pig.common.core.util.SpringContextHolder;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fxz
|
||||||
|
* @date 2022/3/24 字典解析器
|
||||||
|
*/
|
||||||
|
@UtilityClass
|
||||||
|
public class DictResolver {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型获取所有字典项
|
||||||
|
* @param type 字典类型
|
||||||
|
* @return 字典数据项集合
|
||||||
|
*/
|
||||||
|
public List<SysDictItem> getDictItemsByType(String type) {
|
||||||
|
Assert.isTrue(StringUtils.isNotBlank(type), "参数不合法");
|
||||||
|
|
||||||
|
RemoteDictService remoteDictService = SpringContextHolder.getBean(RemoteDictService.class);
|
||||||
|
|
||||||
|
return remoteDictService.getDictByType(type).getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型以及字典项字典值获取字典标签
|
||||||
|
* @param type 字典类型
|
||||||
|
* @param itemValue 字典项字典值
|
||||||
|
* @return 字典项标签值
|
||||||
|
*/
|
||||||
|
public String getDictItemLabel(String type, String itemValue) {
|
||||||
|
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemValue), "参数不合法");
|
||||||
|
|
||||||
|
SysDictItem sysDictItem = getDictItemByItemValue(type, itemValue);
|
||||||
|
|
||||||
|
return ObjectUtils.isNotEmpty(sysDictItem) ? sysDictItem.getLabel() : StringPool.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型以及字典标签获取字典值
|
||||||
|
* @param type 字典类型
|
||||||
|
* @param itemLabel 字典数据标签
|
||||||
|
* @return 字典数据项值
|
||||||
|
*/
|
||||||
|
public String getDictItemValue(String type, String itemLabel) {
|
||||||
|
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemLabel), "参数不合法");
|
||||||
|
|
||||||
|
SysDictItem sysDictItem = getDictItemByItemLabel(type, itemLabel);
|
||||||
|
|
||||||
|
return ObjectUtils.isNotEmpty(sysDictItem) ? sysDictItem.getValue() : StringPool.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型以及字典值获取字典项
|
||||||
|
* @param type 字典类型
|
||||||
|
* @param itemValue 字典数据值
|
||||||
|
* @return 字典数据项
|
||||||
|
*/
|
||||||
|
public SysDictItem getDictItemByItemValue(String type, String itemValue) {
|
||||||
|
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemValue), "参数不合法");
|
||||||
|
|
||||||
|
List<SysDictItem> dictItemList = getDictItemsByType(type);
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
||||||
|
return dictItemList.stream().filter(item -> itemValue.equals(item.getValue())).findFirst().orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型以及字典标签获取字典项
|
||||||
|
* @param type 字典类型
|
||||||
|
* @param itemLabel 字典数据项标签
|
||||||
|
* @return 字典数据项
|
||||||
|
*/
|
||||||
|
public SysDictItem getDictItemByItemLabel(String type, String itemLabel) {
|
||||||
|
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemLabel), "参数不合法");
|
||||||
|
|
||||||
|
List<SysDictItem> dictItemList = getDictItemsByType(type);
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
||||||
|
return dictItemList.stream().filter(item -> itemLabel.equals(item.getLabel())).findFirst().orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user