|
|
@@ -1,21 +1,25 @@
|
|
|
package com.punchsettle.server.service.manager.impl;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.punchsettle.server.constant.CacheNameConstant;
|
|
|
+import com.punchsettle.server.pojo.dict.DictItemQuery;
|
|
|
+import com.punchsettle.server.pojo.dict.DictQuery;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
|
|
|
import com.punchsettle.server.atomic.entity.SysDict;
|
|
|
import com.punchsettle.server.atomic.entity.SysDictItem;
|
|
|
import com.punchsettle.server.atomic.service.ISysDictItemService;
|
|
|
import com.punchsettle.server.atomic.service.ISysDictService;
|
|
|
import com.punchsettle.server.common.exception.BusinessException;
|
|
|
-import com.punchsettle.server.constant.DictDataType;
|
|
|
+import com.punchsettle.server.constant.DictDataTypeEnum;
|
|
|
import com.punchsettle.server.pojo.dict.DictItemVO;
|
|
|
import com.punchsettle.server.pojo.dict.DictVO;
|
|
|
import com.punchsettle.server.service.manager.IDictManager;
|
|
|
@@ -36,35 +40,36 @@ public class DictManagerImpl implements IDictManager {
|
|
|
private ISysDictItemService dictItemService;
|
|
|
|
|
|
@Override
|
|
|
- public DictVO queryDict(String dictCode) {
|
|
|
- if (!StringUtils.hasText(dictCode)) {
|
|
|
- return null;
|
|
|
+ @Cacheable(cacheNames = CacheNameConstant.DICT_ITEM_VO_LIST, key = "#dictQuery.dictCode+'_'+#dictQuery.status?.name()?:'null'")
|
|
|
+ public List<DictItemVO> queryDictItems(DictQuery dictQuery) {
|
|
|
+ if (Objects.isNull(dictQuery)) {
|
|
|
+ return List.of();
|
|
|
}
|
|
|
|
|
|
- // TODO 差了状态过滤
|
|
|
// 获取字典
|
|
|
- SysDict dict = Optional.ofNullable(dictService.getByDictCode(dictCode)).orElseThrow(() -> BusinessException.fail("字典不存在"));
|
|
|
- DictVO dictVO = new DictVO();
|
|
|
- BeanUtils.copyProperties(dict, dictVO);
|
|
|
+ SysDict dict = Optional.ofNullable(dictService.getOneByCondition(dictQuery)).orElseThrow(() -> BusinessException.fail("字典不存在"));
|
|
|
|
|
|
// 获取字典项
|
|
|
- List<SysDictItem> dictItems = dictItemService.getByDictId(dict.getId());
|
|
|
+ DictItemQuery dictItemQuery = new DictItemQuery();
|
|
|
+ dictItemQuery.setDictId(dict.getId());
|
|
|
+ dictItemQuery.setStatus(dictQuery.getStatus());
|
|
|
+ List<SysDictItem> dictItems = dictItemService.getByCondition(dictItemQuery);
|
|
|
if (CollectionUtils.isEmpty(dictItems)) {
|
|
|
- return dictVO;
|
|
|
+ return List.of();
|
|
|
}
|
|
|
|
|
|
- List<DictItemVO> itemVOList = dictItems.stream().map(item -> {
|
|
|
- DictItemVO itemVO = new DictItemVO();
|
|
|
- if (DictDataType.NUMBER.equals(item.getDataType())) {
|
|
|
- itemVO.setItemValue(Integer.valueOf(item.getItemValue()));
|
|
|
+ List<DictItemVO> dictItemVOList = dictItems.stream().map(item -> {
|
|
|
+ DictItemVO dictItemVO = new DictItemVO();
|
|
|
+ BeanUtils.copyProperties(item, dictItemVO);
|
|
|
+ if (DictDataTypeEnum.INTEGER.equals(item.getDataType())) {
|
|
|
+ dictItemVO.setItemValue(Integer.valueOf(item.getItemValue()));
|
|
|
}
|
|
|
- if (DictDataType.STRING.equals(item.getDataType())) {
|
|
|
- itemVO.setItemValue(item.getItemValue());
|
|
|
+ if (DictDataTypeEnum.STRING.equals(item.getDataType())) {
|
|
|
+ dictItemVO.setItemValue(item.getItemValue());
|
|
|
}
|
|
|
- return itemVO;
|
|
|
+ return dictItemVO;
|
|
|
}).collect(Collectors.toList());
|
|
|
- dictVO.setDictItems(itemVOList);
|
|
|
|
|
|
- return dictVO;
|
|
|
+ return dictItemVOList;
|
|
|
}
|
|
|
}
|