一、功能概述

数据字典管理模块通过auth_dict_type(字典类型表)和auth_dict_data(字典数据表)实现键值对形式的基础数据管理,支持字典类型的新增、修改、删除及字典数据的维护。系统采用缓存机制(DictCache)提升查询效率,确保字典数据的一致性和访问性能,适用于系统中固定选项的统一管理(如状态、类型等)。

二、核心功能说明

(一)字典类型管理

1. 字典类型列表查询

  • 操作路径:数据字典页面默认加载或通过筛选条件查询
  • 查询参数
    • 字典名称(dictName,模糊匹配)
    • 字典类型(dictType,模糊匹配)
    • 状态(status:1正常/0停用)
  • 分页与排序
    • 支持分页查询,通过pageNumpageSize指定页码和每页条数
    • 按创建时间或自定义字段排序
  • 返回字段:字典类型完整信息(ID、名称、类型、状态等)

2. 新增字典类型

  • 操作路径:字典类型列表点击「新增」按钮,填写表单后提交
  • 字段映射与填写规则
    表单项对应表字段说明
    字典名称dict_name必填,字典类型的显示名称
    字典类型dict_type唯一标识,不可重复,用于关联字典数据,必填
    状态status默认为1(正常),可选择0(停用)
    备注remark可选,填写字典类型说明
  • 系统自动生成字段
    • dict_type_id:自动生成36位UUID
    • create_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停用)
  • 分页与排序:支持分页,按sort字段升序排列(默认)
  • 返回字段:字典数据完整信息(ID、标签、键值、排序、状态等)

2. 新增字典数据

  • 操作路径:字典数据列表点击「新增」按钮,选择所属字典类型后填写表单
  • 字段映射与填写规则
    表单项对应表字段说明
    字典标签label显示文本,必填
    字典键值value同一字典类型下不可重复,用于实际业务逻辑,必填
    排序sort自动生成(同类型最大排序+1),可手动调整
    是否默认选中selected1-是/0-否,默认0
    状态status默认为1(正常),可选择0(停用)
    备注remark可选,填写字典数据说明
  • 系统自动生成字段
    • dict_data_id:自动生成36位UUID
    • dict_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位UUID
  • dict_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位UUID
  • dict_type_id:char(36),关联字典类型ID
  • dict_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(键值校验)

四、数据校验规则

  1. 必填校验:字典类型、字典名称、键值等关键参数不能为空,否则提示“请输入XXX”
  2. 唯一性校验
    • 字典类型不可重复
    • 同一字典类型下的键值不可重复
  3. 存在性校验
    • 操作字典数据时验证所属字典类型是否存在
    • 状态切换或删除时验证字典类型/数据是否存在
  4. 业务规则校验
    • 字典类型删除前检查是否关联数据
    • 缓存更新机制确保数据一致性

五、缓存机制说明

  1. 缓存对象DictCache用于缓存字典数据,键为dict_type,值为该类型下的字典数据列表
  2. 更新策略
    • 字典类型或数据新增、修改、删除时自动清除缓存
    • 缓存不存在时自动从数据库加载并更新缓存
  3. 缓存优势:减少数据库查询次数,提升字典数据访问效率,尤其适用于高频访问场景(如下拉框渲染)