本文最后更新于 2026年5月24日 晚上
获取字典项下拉选项接口的实现
获取字典项下拉选项接口的需求
根据字典编码查询字典项所属字典是否存在
查询状态正常的字典
代码实现
在 DeptController 中添加接口
1 2 3 4 5 6 7
| @GetMapping("/{dictCode}/items/options") @SystemLog(businessName = "字典项下拉选项接口") @ApiOperation(value = "字典项下拉选项接口", notes = "获取字典项下拉数据", response = DictItemOptionVo.class, responseContainer = "List") public ResponseResult getDictItemOptions(@PathVariable String dictCode) { return sysDictItemService.getDictItemOptions(dictCode); }
|
创建 DictItemOptionVo
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Data @AllArgsConstructor @NoArgsConstructor @ApiModel(description = "字典选项") public class DictItemOptionVo { @ApiModelProperty(value = "字典项值", example = "1") private String value;
@ApiModelProperty(value = "字典项标签", example = "男") private String label;
@ApiModelProperty(value = "标签类型,用于前端样式展示(如success、warning等)", example = "success") private String tagType; }
|
在 SysDictItemServiceImpl 中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Override @Transactional(rollbackFor = Exception.class) public ResponseResult getDictItemOptions(String dictCode) { LambdaQueryWrapper<SysDict> dictQueryWrapper = new LambdaQueryWrapper<>(); dictQueryWrapper.eq(SysDict::getDictCode, dictCode); SysDict dict = sysDictService.getOne(dictQueryWrapper); if (dict == null) { return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR, "该字典不存在!"); }
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysDictItem::getDictCode, dictCode);
queryWrapper.eq(SysDictItem::getStatus, SystemConstants.STATUS_NORMAL) .orderByDesc(SysDictItem::getId);
List<SysDictItem> dictItemList = sysDictItemService.list(queryWrapper);
List<DictItemOptionVo> dictItemOptionVos = BeanCopyUtils.copyBeanList(dictItemList, DictItemOptionVo.class);
return ResponseResult.okResult(dictItemOptionVos); }
|
需要注意的是
为了避免重复代码过多
我将 获取当前用户拥有的数据权限范围 相关的代码提取出来成 applyDeptDataScopeFilter 方法方便调用了
并且在 AdminUserServiceImpl 中也进行了类似的操作
PS:该系列只做为作者学习开发项目做的笔记用
不一定符合读者来学习,仅供参考
预告
后续会记录博客的开发过程
每次学习会做一份笔记来进行发表
“一花一世界,一叶一菩提”
版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/