diff --git a/java/InsertCache.java b/java/InsertCache.java new file mode 100644 index 0000000000000000000000000000000000000000..541e9c87598decd53bbe35aafc3f36769753e79e --- /dev/null +++ b/java/InsertCache.java @@ -0,0 +1,71 @@ + // 每个数据字典 都有 type 属性,分别放到 不同的缓存key里,对数据字典进行任何增加、修改、删除操作,都会删除 所有 缓存 + // 缓存的更新放到 另一个 类里,是根据 type 属性 进行分别更新,这个方法要么重启服务触发,要么由前台调用接口触发 + + + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + * @return 结果 + */ + @Override + public int deleteDictDataByIds(Long[] dictCodes) { + int row = dictDataMapper.deleteDictDataByIds(dictCodes); + if (row > 0) { + DictUtils.clearDictCache();// 清除所有 type 的缓存 + } + return row; + } + + /** + * 新增保存字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + @Override + public int insertDictData(SysDictData dictData) { + int row = dictDataMapper.insertDictData(dictData); + if (row > 0) { + DictUtils.clearDictCache(); + } + return row; + } + + /** + * 修改保存字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + @Override + public int updateDictData(SysDictData dictData) { + int row = dictDataMapper.updateDictData(dictData); + if (row > 0) { + DictUtils.clearDictCache(); + } + return row; + } + +// 更新缓存的 方法,一次只有一个 type,而且是靠前台调用 + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + @Override + public List selectDictDataByType(String dictType) { + List dictDatas = DictUtils.getDictCache(dictType); + if (StringUtils.isNotEmpty(dictDatas)) { + return dictDatas; + } + dictDatas = dictDataMapper.selectDictDataByType(dictType); + if (StringUtils.isNotEmpty(dictDatas)) { + DictUtils.setDictCache(dictType, dictDatas); + return dictDatas; + } + return null; + } +