Commit 27927216 by zhangxingmin

Merge remote-tracking branch 'origin/dev_zxm' into test

parents 0656afe6 02b61140
...@@ -3,7 +3,9 @@ package com.yd.user.api.controller; ...@@ -3,7 +3,9 @@ package com.yd.user.api.controller;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService; import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -33,4 +35,14 @@ public class ApiSysDictController implements ApiSysDictFeignClient { ...@@ -33,4 +35,14 @@ public class ApiSysDictController implements ApiSysDictFeignClient {
public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) { public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) {
return apiSysDictService.getDictItemListByDictType(dictType); return apiSysDictService.getDictItemListByDictType(dictType);
} }
/**
* 根据字典类型列表获取字典数据项列表
* @return
*/
@Override
public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) {
return apiSysDictService.getByDictTypeList(request);
}
} }
package com.yd.user.api.service; package com.yd.user.api.service;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import java.util.List; import java.util.List;
public interface ApiSysDictService { public interface ApiSysDictService {
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType); Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType);
Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request);
} }
...@@ -3,7 +3,9 @@ package com.yd.user.api.service.impl; ...@@ -3,7 +3,9 @@ package com.yd.user.api.service.impl;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService; import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import com.yd.user.service.dto.SysDictItemDto; import com.yd.user.service.dto.SysDictItemDto;
import com.yd.user.service.model.SysDict; import com.yd.user.service.model.SysDict;
import com.yd.user.service.model.SysDictItem; import com.yd.user.service.model.SysDictItem;
...@@ -16,6 +18,7 @@ import org.springframework.util.CollectionUtils; ...@@ -16,6 +18,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -55,4 +58,57 @@ public class ApiSysDictServiceImpl implements ApiSysDictService { ...@@ -55,4 +58,57 @@ public class ApiSysDictServiceImpl implements ApiSysDictService {
return Result.success(responses); return Result.success(responses);
} }
/**
* 根据字典类型列表获取字典数据项列表
* @return
*/
@Override
public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) {
List<GetDictTypeListResponse> typeListResponseList = new ArrayList<>();
// 根据字典类型列表查询字典类型信息
List<SysDict> sysDictList = iSysDictService.queryList(request.getTypeList());
if (!CollectionUtils.isEmpty(sysDictList)) {
// 获取字典类型ID列表
List<String> dictBizIdList = sysDictList.stream()
.map(SysDict::getDictBizId)
.collect(Collectors.toList());
// 查询对应的字典项
List<SysDictItem> sysDictItemList = iSysDictItemService.queryList(
SysDictItemDto.builder()
.dictBizIdList(dictBizIdList)
.build());
// 按dictBizId分组字典项
Map<String, List<SysDictItem>> itemsByDictId = sysDictItemList.stream()
.collect(Collectors.groupingBy(SysDictItem::getDictBizId));
// 构建响应
typeListResponseList = sysDictList.stream()
.map(dict -> {
GetDictTypeListResponse response = new GetDictTypeListResponse();
BeanUtils.copyProperties(dict, response);
// 获取该字典类型对应的字典项并转换
List<GetDictItemListByDictTypeResponse> itemResponses =
itemsByDictId.getOrDefault(dict.getDictBizId(), new ArrayList<>())
.stream()
.map(item -> {
GetDictItemListByDictTypeResponse itemResponse = new GetDictItemListByDictTypeResponse();
BeanUtils.copyProperties(item, itemResponse);
return itemResponse;
})
.collect(Collectors.toList());
response.setDictItemList(itemResponses);
return response;
})
.collect(Collectors.toList());
}
return Result.success(typeListResponseList);
}
} }
...@@ -2,10 +2,15 @@ package com.yd.user.feign.client.sysdict; ...@@ -2,10 +2,15 @@ package com.yd.user.feign.client.sysdict;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysdict.ApiSysDictFeignFallbackFactory; import com.yd.user.feign.fallback.sysdict.ApiSysDictFeignFallbackFactory;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
...@@ -22,4 +27,11 @@ public interface ApiSysDictFeignClient { ...@@ -22,4 +27,11 @@ public interface ApiSysDictFeignClient {
*/ */
@GetMapping("/type/item/list/{dictType}") @GetMapping("/type/item/list/{dictType}")
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(@NotBlank(message = "字典类型不能为空") @PathVariable("dictType") String dictType); Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(@NotBlank(message = "字典类型不能为空") @PathVariable("dictType") String dictType);
/**
* 根据字典类型列表获取字典数据项列表
* @return
*/
@PostMapping("/type/list")
Result<List<GetDictTypeListResponse>> getByDictTypeList(@Validated @RequestBody GetDictTypeListRequest request);
} }
...@@ -2,7 +2,9 @@ package com.yd.user.feign.fallback.sysdict; ...@@ -2,7 +2,9 @@ package com.yd.user.feign.fallback.sysdict;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -21,6 +23,11 @@ public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDic ...@@ -21,6 +23,11 @@ public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDic
public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) { public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) {
return null; return null;
} }
@Override
public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) {
return null;
}
}; };
} }
} }
package com.yd.user.feign.request.sysdict;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class GetDictTypeListRequest {
/**
* 字典类型集合
*/
@NotEmpty(message = "字典类型集合不能为空")
private List<String> typeList;
}
package com.yd.user.feign.response.sysdict;
import lombok.Data;
import java.util.List;
@Data
public class GetDictTypeListResponse {
/**
* 字典类型表唯一标识(业务ID)
*/
private String dictBizId;
/**
* 字典类型名称
*/
private String dictName;
/**
* 字典类型
*/
private String dictType;
/**
* 字典项列表
*/
private List<GetDictItemListByDictTypeResponse> dictItemList;
}
...@@ -4,6 +4,8 @@ import lombok.Builder; ...@@ -4,6 +4,8 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
...@@ -21,6 +23,11 @@ public class SysDictItemDto { ...@@ -21,6 +23,11 @@ public class SysDictItemDto {
private String dictBizId; private String dictBizId;
/** /**
* 字典ID列表(字典类型表id)
*/
private List<String> dictBizIdList;
/**
* 字典数据id(业务id) * 字典数据id(业务id)
*/ */
private String dictItemBizId; private String dictItemBizId;
......
...@@ -4,6 +4,8 @@ import com.yd.user.service.model.SysDict; ...@@ -4,6 +4,8 @@ import com.yd.user.service.model.SysDict;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.user.service.model.SysMenu; import com.yd.user.service.model.SysMenu;
import java.util.List;
/** /**
* <p> * <p>
* 字典类型表 服务类 * 字典类型表 服务类
...@@ -15,4 +17,6 @@ import com.yd.user.service.model.SysMenu; ...@@ -15,4 +17,6 @@ import com.yd.user.service.model.SysMenu;
public interface ISysDictService extends IService<SysDict> { public interface ISysDictService extends IService<SysDict> {
SysDict queryOneByType(String dictType); SysDict queryOneByType(String dictType);
List<SysDict> queryList(List<String> dictTypeList);
} }
...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -37,6 +38,7 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi ...@@ -37,6 +38,7 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
.eq(!Objects.isNull(dto.getId()),SysDictItem::getId,dto.getId()) .eq(!Objects.isNull(dto.getId()),SysDictItem::getId,dto.getId())
.eq(StringUtils.isNotBlank(dto.getDictBizId()),SysDictItem::getDictBizId,dto.getDictBizId()) .eq(StringUtils.isNotBlank(dto.getDictBizId()),SysDictItem::getDictBizId,dto.getDictBizId())
.eq(StringUtils.isNotBlank(dto.getDictItemBizId()),SysDictItem::getDictItemBizId,dto.getDictItemBizId()) .eq(StringUtils.isNotBlank(dto.getDictItemBizId()),SysDictItem::getDictItemBizId,dto.getDictItemBizId())
.in(!CollectionUtils.isEmpty(dto.getDictBizIdList()),SysDictItem::getDictBizId,dto.getDictBizIdList())
); );
return list; return list;
} }
......
...@@ -3,10 +3,16 @@ package com.yd.user.service.service.impl; ...@@ -3,10 +3,16 @@ package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.user.service.model.SysDict; import com.yd.user.service.model.SysDict;
import com.yd.user.service.dao.SysDictMapper; import com.yd.user.service.dao.SysDictMapper;
import com.yd.user.service.model.SysDictItem;
import com.yd.user.service.service.ISysDictService; import com.yd.user.service.service.ISysDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/** /**
* <p> * <p>
...@@ -29,4 +35,17 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl ...@@ -29,4 +35,17 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
public SysDict queryOneByType(String dictType) { public SysDict queryOneByType(String dictType) {
return this.getOne(new LambdaQueryWrapper<SysDict>().eq(SysDict::getDictType,dictType)); return this.getOne(new LambdaQueryWrapper<SysDict>().eq(SysDict::getDictType,dictType));
} }
/**
* 查询列表
* @param dictTypeList
* @return
*/
@Override
public List<SysDict> queryList(List<String> dictTypeList) {
List<SysDict> list = baseMapper.selectList(new LambdaQueryWrapper<SysDict>()
.in(!CollectionUtils.isEmpty(dictTypeList),SysDict::getDictType,dictTypeList)
);
return list;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment