『博客开发日记-后台』之获取字典项下拉选项接口的实现

本文最后更新于 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);

//转换成Vo
List<DictItemOptionVo> dictItemOptionVos = BeanCopyUtils.copyBeanList(dictItemList, DictItemOptionVo.class);

return ResponseResult.okResult(dictItemOptionVos);
}

需要注意的是

为了避免重复代码过多

我将 获取当前用户拥有的数据权限范围 相关的代码提取出来成 applyDeptDataScopeFilter 方法方便调用了

并且在 AdminUserServiceImpl 中也进行了类似的操作




PS:该系列只做为作者学习开发项目做的笔记用

不一定符合读者来学习,仅供参考


预告

后续会记录博客的开发过程

每次学习会做一份笔记来进行发表

“一花一世界,一叶一菩提”


版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/


『博客开发日记-后台』之获取字典项下拉选项接口的实现
http://example.com/2026/05/24/『博客开发日记-后台』之获取字典项下拉选项接口的实现/
作者
云梦泽
发布于
2026年5月24日
更新于
2026年5月24日
许可协议