一、功能概述
数据字典管理模块通过auth_dict_type
(字典类型表)和auth_dict_data
(字典数据表)实现键值对形式的基础数据管理,支持字典类型的新增、修改、删除及字典数据的维护。系统采用缓存机制(DictCache
)提升查询效率,确保字典数据的一致性和访问性能,适用于系统中固定选项的统一管理(如状态、类型等)。
二、核心功能说明
(一)字典类型管理
1. 字典类型列表查询
- 操作路径:数据字典页面默认加载或通过筛选条件查询
- 查询参数:
- 字典名称(
dictName
,模糊匹配) - 字典类型(
dictType
,模糊匹配) - 状态(
status
:1正常/0停用)
- 字典名称(
- 分页与排序:
- 支持分页查询,通过
pageNum
和pageSize
指定页码和每页条数 - 按创建时间或自定义字段排序
- 支持分页查询,通过
- 返回字段:字典类型完整信息(ID、名称、类型、状态等)
2. 新增字典类型
- 操作路径:字典类型列表点击「新增」按钮,填写表单后提交
- 字段映射与填写规则:
表单项 对应表字段 说明 字典名称 dict_name
必填,字典类型的显示名称 字典类型 dict_type
唯一标识,不可重复,用于关联字典数据,必填 状态 status
默认为1(正常),可选择0(停用) 备注 remark
可选,填写字典类型说明 - 系统自动生成字段:
dict_type_id
:自动生成36位UUIDcreate_date
/create_user_id
:当前操作信息delete_flag
:默认0(未删除)
- 唯一性校验:字典类型不可重复,重复时提示“字典类型已存在,请勿重复添加”
- 缓存处理:新增成功后清除字典缓存(
DictCache.clearAll()
)
3. 修改字典类型
- 操作路径:字典类型列表点击目标类型「修改」按钮,更新表单后保存
- 可修改字段:字典名称、字典类型、状态、备注
- 唯一性校验:与新增规则相同,但排除当前类型自身记录
- 缓存处理:修改成功后清除字典缓存(
DictCache.clearAll()
)
4. 删除字典类型
- 操作路径:字典类型列表点击「删除」按钮,支持批量选择删除
- 删除限制:
- 必须选择至少一个类型,否则提示“请选择要删除的内容!”
- 存在关联字典数据时禁止删除,提示“[字典名称]下存在字典数据,不允许删除”
- 删除逻辑:执行物理删除(
deleteBatchIds
),返回删除成功数量 - 缓存处理:删除成功后清除字典缓存(
DictCache.clearAll()
)
5. 字典类型状态切换
- 操作路径:字典类型列表点击「启用」/「停用」按钮
- 状态转换:1(正常)↔0(停用)
- 影响范围:停用后关联的字典数据不可被查询和使用
(二)字典数据管理
1. 字典数据列表查询
- 操作路径:选择字典类型后默认加载该类型下的字典数据
- 查询参数:
- 字典类型ID(
dict_type_id
,必填,用于关联字典类型) - 字典标签(
label
,模糊匹配) - 字典键值(
value
,模糊匹配) - 状态(
status
:1正常/0停用)
- 字典类型ID(
- 分页与排序:支持分页,按
sort
字段升序排列(默认) - 返回字段:字典数据完整信息(ID、标签、键值、排序、状态等)
2. 新增字典数据
- 操作路径:字典数据列表点击「新增」按钮,选择所属字典类型后填写表单
- 字段映射与填写规则:
表单项 对应表字段 说明 字典标签 label
显示文本,必填 字典键值 value
同一字典类型下不可重复,用于实际业务逻辑,必填 排序 sort
自动生成(同类型最大排序+1),可手动调整 是否默认选中 selected
1-是/0-否,默认0 状态 status
默认为1(正常),可选择0(停用) 备注 remark
可选,填写字典数据说明 - 系统自动生成字段:
dict_data_id
:自动生成36位UUIDdict_type
:关联字典类型的dict_type
字段create_date
/create_user_id
:当前操作信息
- 关联校验:验证所属字典类型是否存在,不存在则提示“字典类型异常!”
- 唯一性校验:同一字典类型下键值不可重复,重复时提示“数据键值已存在,请勿重复添加”
- 缓存处理:新增成功后清除字典缓存(
DictCache.clearAll()
)
3. 修改字典数据
- 操作路径:字典数据列表点击目标数据「修改」按钮,更新表单后保存
- 可修改字段:字典标签、键值、排序、是否默认选中、状态、备注
- 唯一性校验:与新增规则相同,但排除当前数据自身记录
- 缓存处理:修改成功后清除字典缓存(
DictCache.clearAll()
)
4. 删除字典数据
- 操作路径:字典数据列表点击「删除」按钮,支持批量选择删除
- 删除限制:必须选择至少一条数据,否则提示“请选择要删除的内容!”
- 删除逻辑:执行物理删除(
deleteBatchIds
),返回删除成功数量 - 缓存处理:删除成功后清除字典缓存(
DictCache.clearAll()
)
5. 字典数据状态切换
- 操作路径:字典数据列表点击「启用」/「停用」按钮
- 状态转换:1(正常)↔0(停用)
- 影响范围:停用后该数据不在下拉框中显示
(三)字典数据查询
1. 单类型字典查询
- 应用场景:表单下拉框、状态展示等需要获取字典选项的场景
- 查询参数:
dictType
(字典类型,必填) - 返回格式:
label
:字典标签(显示文本)value
:字典键值(实际值)
- 缓存机制:优先从
DictCache
获取,缓存不存在时查询数据库并更新缓存
2. 多类型字典批量查询
- 应用场景:需要同时获取多种字典数据的场景(如表单包含多个下拉框)
- 查询参数:
dictTypes
(字典类型列表,必填) - 返回格式:
Map<String, List<DictionaryBO>>
,key为字典类型,value为对应字典数据列表 - 效率优化:一次请求获取多种字典数据,减少接口调用次数
三、核心数据表说明
(一)字典类型表(auth_dict_type
)
dict_type_id
:char(36),主键,36位UUIDdict_name
:varchar(100),字典名称dict_type
:varchar(100),字典类型(唯一标识)status
:int,状态(1正常/0停用)remark
:varchar(255),备注delete_flag
:tinyint,删除状态(0正常/1删除)- 索引:
dict_type
(唯一查询)、status
(状态筛选)
(二)字典数据表(auth_dict_data
)
dict_data_id
:char(36),主键,36位UUIDdict_type_id
:char(36),关联字典类型IDdict_type
:varchar(100),冗余字典类型标识(与auth_dict_type.dict_type
一致)label
:varchar(100),字典标签(显示文本)value
:varchar(100),字典键值(实际值)sort
:int,排序号(升序排列)selected
:int,是否默认选中(1是/0否)status
:int,状态(1正常/0停用)delete_flag
:tinyint,删除状态(0正常/1删除)- 索引:
dict_type_id
(关联查询)、dict_type
(缓存查询)、value
(键值校验)
四、数据校验规则
- 必填校验:字典类型、字典名称、键值等关键参数不能为空,否则提示“请输入XXX”
- 唯一性校验:
- 字典类型不可重复
- 同一字典类型下的键值不可重复
- 存在性校验:
- 操作字典数据时验证所属字典类型是否存在
- 状态切换或删除时验证字典类型/数据是否存在
- 业务规则校验:
- 字典类型删除前检查是否关联数据
- 缓存更新机制确保数据一致性
五、缓存机制说明
- 缓存对象:
DictCache
用于缓存字典数据,键为dict_type
,值为该类型下的字典数据列表 - 更新策略:
- 字典类型或数据新增、修改、删除时自动清除缓存
- 缓存不存在时自动从数据库加载并更新缓存
- 缓存优势:减少数据库查询次数,提升字典数据访问效率,尤其适用于高频访问场景(如下拉框渲染)