|
|
@@ -8,9 +8,11 @@ import com.sckw.core.utils.IdWorker;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.result.PageDataResult;
|
|
|
import com.sckw.system.model.SysDict;
|
|
|
+import com.sckw.system.model.SysDictType;
|
|
|
import com.sckw.system.model.vo.req.SysDictReqVo;
|
|
|
import com.sckw.system.model.vo.res.SysDictResp;
|
|
|
import com.sckw.system.repository.SysDictRepository;
|
|
|
+import com.sckw.system.repository.SysDictTypeRepository;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
@@ -35,6 +37,7 @@ import java.util.stream.Collectors;
|
|
|
public class SysDictFlexBusinessService {
|
|
|
|
|
|
private final SysDictRepository sysDictRepository;
|
|
|
+ private final SysDictTypeRepository sysDictTypeRepository;
|
|
|
|
|
|
/**
|
|
|
* 新增字典
|
|
|
@@ -137,6 +140,19 @@ public class SysDictFlexBusinessService {
|
|
|
if (records == null || records.isEmpty()) {
|
|
|
return PageDataResult.empty(reqVo.getPageNum(), reqVo.getPageSize());
|
|
|
}
|
|
|
+
|
|
|
+ //根据商品类型查询商品类型名称
|
|
|
+ Set<String> types = records.stream()
|
|
|
+ .map(SysDict::getType)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ //查询商品类型名称
|
|
|
+ List<SysDictType> typeDicts = sysDictTypeRepository.queryByTypes(types);
|
|
|
+ Map<String, SysDictType> typeAndDictMap = Maps.newHashMap();
|
|
|
+ if (CollectionUtils.isNotEmpty(typeDicts)){
|
|
|
+ typeAndDictMap = typeDicts.stream()
|
|
|
+ .collect(Collectors.toMap(SysDictType::getType, Function.identity(), (k1, k2) -> k1));
|
|
|
+ }
|
|
|
+
|
|
|
Set<String> parentIds = records.stream()
|
|
|
.map(SysDict::getParentId)
|
|
|
.collect(Collectors.toSet());
|
|
|
@@ -148,7 +164,7 @@ public class SysDictFlexBusinessService {
|
|
|
.collect(Collectors.toMap(BaseModel::getId, Function.identity(), (k1, k2) -> k1));
|
|
|
}
|
|
|
|
|
|
- List<SysDictResp> sysDictResps = convertToRespList(records,idAndParentDictMap);
|
|
|
+ List<SysDictResp> sysDictResps = convertToRespList(records,idAndParentDictMap,typeAndDictMap);
|
|
|
return PageDataResult.of(page, sysDictResps);
|
|
|
}
|
|
|
|
|
|
@@ -168,7 +184,7 @@ public class SysDictFlexBusinessService {
|
|
|
public List<SysDictResp> searchParentDictForSelect(SysDictReqVo reqVo) {
|
|
|
log.info("查询上级字典下拉列表,请求参数:{}", JSON.toJSONString(reqVo));
|
|
|
List<SysDict> list = sysDictRepository.searchParentDictForSelect(reqVo.getKeyword());
|
|
|
- return convertToRespList(list,new HashMap<>());
|
|
|
+ return convertToRespList(list,new HashMap<>(),new HashMap<>());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -204,13 +220,15 @@ public class SysDictFlexBusinessService {
|
|
|
/**
|
|
|
* 将实体转换为响应对象
|
|
|
*/
|
|
|
- private SysDictResp convertToResp(SysDict entity,Map<Long, SysDict> idAndParentDictMap) {
|
|
|
+ private SysDictResp convertToResp(SysDict entity,Map<Long, SysDict> idAndParentDictMap,Map<String, SysDictType> typeAndDictMap) {
|
|
|
if (entity == null) {
|
|
|
return null;
|
|
|
}
|
|
|
SysDictResp resp = new SysDictResp();
|
|
|
BeanUtils.copyProperties(entity, resp);
|
|
|
resp.setStatusName(Objects.equals(entity.getStatus(), 0) ? " 正常" : "锁定");
|
|
|
+ SysDictType sysDictType = typeAndDictMap.getOrDefault(entity.getType(), new SysDictType());
|
|
|
+ resp.setTypeName(sysDictType.getName());
|
|
|
// 设置父级字典名称
|
|
|
Long parentId = Optional.ofNullable(entity.getParentId()).filter(StringUtils::isNotBlank).map(Long::parseLong).orElse(null);
|
|
|
SysDict parentDict = idAndParentDictMap.getOrDefault(parentId, new SysDict());
|
|
|
@@ -221,12 +239,12 @@ public class SysDictFlexBusinessService {
|
|
|
/**
|
|
|
* 将实体列表转换为响应对象列表
|
|
|
*/
|
|
|
- private List<SysDictResp> convertToRespList(List<SysDict> entities,Map<Long, SysDict> idAndParentDictMap ) {
|
|
|
+ private List<SysDictResp> convertToRespList(List<SysDict> entities,Map<Long, SysDict> idAndParentDictMap,Map<String, SysDictType> typeAndDictMap ) {
|
|
|
if (entities == null || entities.isEmpty()) {
|
|
|
return List.of();
|
|
|
}
|
|
|
return entities.stream()
|
|
|
- .map(x->convertToResp(x,idAndParentDictMap))
|
|
|
+ .map(x->convertToResp(x,idAndParentDictMap,typeAndDictMap))
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
}
|