正在显示
13 个修改的文件
包含
228 行增加
和
69 行删除
| @@ -20,7 +20,7 @@ export function getData(dictCode) { | @@ -20,7 +20,7 @@ export function getData(dictCode) { | ||
| 20 | // 根据字典类型查询字典数据信息 | 20 | // 根据字典类型查询字典数据信息 |
| 21 | export function getDicts(dictType) { | 21 | export function getDicts(dictType) { |
| 22 | return request({ | 22 | return request({ |
| 23 | - url: '/system/dict/data/dictType/' + dictType, | 23 | + url: '/system/dict/data/type/' + dictType, |
| 24 | method: 'get' | 24 | method: 'get' |
| 25 | }) | 25 | }) |
| 26 | } | 26 | } |
| @@ -43,6 +43,14 @@ export function delType(dictId) { | @@ -43,6 +43,14 @@ export function delType(dictId) { | ||
| 43 | }) | 43 | }) |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | +// 清理参数缓存 | ||
| 47 | +export function clearCache() { | ||
| 48 | + return request({ | ||
| 49 | + url: '/system/dict/type/clearCache', | ||
| 50 | + method: 'delete' | ||
| 51 | + }) | ||
| 52 | +} | ||
| 53 | + | ||
| 46 | // 导出字典类型 | 54 | // 导出字典类型 |
| 47 | export function exportType(query) { | 55 | export function exportType(query) { |
| 48 | return request({ | 56 | return request({ |
| @@ -352,7 +352,6 @@ export default { | @@ -352,7 +352,6 @@ export default { | ||
| 352 | }, | 352 | }, |
| 353 | /** 清理缓存按钮操作 */ | 353 | /** 清理缓存按钮操作 */ |
| 354 | handleClearCache() { | 354 | handleClearCache() { |
| 355 | - const queryParams = this.queryParams; | ||
| 356 | clearCache().then(response => { | 355 | clearCache().then(response => { |
| 357 | if (response.code === 200) { | 356 | if (response.code === 200) { |
| 358 | this.msgSuccess("清理成功"); | 357 | this.msgSuccess("清理成功"); |
| @@ -94,6 +94,15 @@ | @@ -94,6 +94,15 @@ | ||
| 94 | v-hasPermi="['system:dict:export']" | 94 | v-hasPermi="['system:dict:export']" |
| 95 | >导出</el-button> | 95 | >导出</el-button> |
| 96 | </el-col> | 96 | </el-col> |
| 97 | + <el-col :span="1.5"> | ||
| 98 | + <el-button | ||
| 99 | + type="danger" | ||
| 100 | + icon="el-icon-refresh" | ||
| 101 | + size="mini" | ||
| 102 | + @click="handleClearCache" | ||
| 103 | + v-hasPermi="['system:dict:remove']" | ||
| 104 | + >清理缓存</el-button> | ||
| 105 | + </el-col> | ||
| 97 | </el-row> | 106 | </el-row> |
| 98 | 107 | ||
| 99 | <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange"> | 108 | <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange"> |
| @@ -173,7 +182,7 @@ | @@ -173,7 +182,7 @@ | ||
| 173 | </template> | 182 | </template> |
| 174 | 183 | ||
| 175 | <script> | 184 | <script> |
| 176 | -import { listType, getType, delType, addType, updateType, exportType } from "@/api/system/dict/type"; | 185 | +import { listType, getType, delType, addType, updateType, exportType, clearCache } from "@/api/system/dict/type"; |
| 177 | 186 | ||
| 178 | export default { | 187 | export default { |
| 179 | name: "Dict", | 188 | name: "Dict", |
| @@ -344,6 +353,16 @@ export default { | @@ -344,6 +353,16 @@ export default { | ||
| 344 | }).then(response => { | 353 | }).then(response => { |
| 345 | this.download(response.msg); | 354 | this.download(response.msg); |
| 346 | }).catch(function() {}); | 355 | }).catch(function() {}); |
| 356 | + }, | ||
| 357 | + /** 清理缓存按钮操作 */ | ||
| 358 | + handleClearCache() { | ||
| 359 | + clearCache().then(response => { | ||
| 360 | + if (response.code === 200) { | ||
| 361 | + this.msgSuccess("清理成功"); | ||
| 362 | + } else { | ||
| 363 | + this.msgError(response.msg); | ||
| 364 | + } | ||
| 365 | + }); | ||
| 347 | } | 366 | } |
| 348 | } | 367 | } |
| 349 | }; | 368 | }; |
| @@ -115,6 +115,11 @@ public class Constants | @@ -115,6 +115,11 @@ public class Constants | ||
| 115 | public static final String SYS_CONFIG_KEY = "sys_config:"; | 115 | public static final String SYS_CONFIG_KEY = "sys_config:"; |
| 116 | 116 | ||
| 117 | /** | 117 | /** |
| 118 | + * 字典管理 cache key | ||
| 119 | + */ | ||
| 120 | + public static final String SYS_DICT_KEY = "sys_dict:"; | ||
| 121 | + | ||
| 122 | + /** | ||
| 118 | * 资源映射路径 前缀 | 123 | * 资源映射路径 前缀 |
| 119 | */ | 124 | */ |
| 120 | public static final String RESOURCE_PREFIX = "/profile"; | 125 | public static final String RESOURCE_PREFIX = "/profile"; |
| 1 | +package com.ruoyi.common.utils; | ||
| 2 | + | ||
| 3 | +import java.util.Collection; | ||
| 4 | +import java.util.List; | ||
| 5 | +import com.ruoyi.common.constant.Constants; | ||
| 6 | +import com.ruoyi.common.utils.spring.SpringUtils; | ||
| 7 | +import com.ruoyi.framework.redis.RedisCache; | ||
| 8 | +import com.ruoyi.project.system.domain.SysDictData; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 字典工具类 | ||
| 12 | + * | ||
| 13 | + * @author ruoyi | ||
| 14 | + */ | ||
| 15 | +public class DictUtils | ||
| 16 | +{ | ||
| 17 | + /** | ||
| 18 | + * 设置字典缓存 | ||
| 19 | + * | ||
| 20 | + * @param key 参数键 | ||
| 21 | + * @param dictDatas 字典数据列表 | ||
| 22 | + */ | ||
| 23 | + public static void setDictCache(String key, List<SysDictData> dictDatas) | ||
| 24 | + { | ||
| 25 | + SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), dictDatas); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * 获取字典缓存 | ||
| 30 | + * | ||
| 31 | + * @param key 参数键 | ||
| 32 | + * @return dictDatas 字典数据列表 | ||
| 33 | + */ | ||
| 34 | + public static List<SysDictData> getDictCache(String key) | ||
| 35 | + { | ||
| 36 | + Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); | ||
| 37 | + if (StringUtils.isNotNull(cacheObj)) | ||
| 38 | + { | ||
| 39 | + List<SysDictData> DictDatas = StringUtils.cast(cacheObj); | ||
| 40 | + return DictDatas; | ||
| 41 | + } | ||
| 42 | + return null; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + /** | ||
| 46 | + * 清空字典缓存 | ||
| 47 | + */ | ||
| 48 | + public static void clearDictCache() | ||
| 49 | + { | ||
| 50 | + Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(Constants.SYS_DICT_KEY + "*"); | ||
| 51 | + SpringUtils.getBean(RedisCache.class).deleteObject(keys); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 设置cache key | ||
| 56 | + * | ||
| 57 | + * @param configKey 参数键 | ||
| 58 | + * @return 缓存键key | ||
| 59 | + */ | ||
| 60 | + public static String getCacheKey(String configKey) | ||
| 61 | + { | ||
| 62 | + return Constants.SYS_DICT_KEY + configKey; | ||
| 63 | + } | ||
| 64 | +} |
| @@ -450,4 +450,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils | @@ -450,4 +450,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils | ||
| 450 | } | 450 | } |
| 451 | return sb.toString(); | 451 | return sb.toString(); |
| 452 | } | 452 | } |
| 453 | + | ||
| 454 | + @SuppressWarnings("unchecked") | ||
| 455 | + public static <T> T cast(Object obj) | ||
| 456 | + { | ||
| 457 | + return (T) obj; | ||
| 458 | + } | ||
| 453 | } | 459 | } |
| @@ -21,6 +21,7 @@ import com.ruoyi.framework.web.domain.AjaxResult; | @@ -21,6 +21,7 @@ import com.ruoyi.framework.web.domain.AjaxResult; | ||
| 21 | import com.ruoyi.framework.web.page.TableDataInfo; | 21 | import com.ruoyi.framework.web.page.TableDataInfo; |
| 22 | import com.ruoyi.project.system.domain.SysDictData; | 22 | import com.ruoyi.project.system.domain.SysDictData; |
| 23 | import com.ruoyi.project.system.service.ISysDictDataService; | 23 | import com.ruoyi.project.system.service.ISysDictDataService; |
| 24 | +import com.ruoyi.project.system.service.ISysDictTypeService; | ||
| 24 | 25 | ||
| 25 | /** | 26 | /** |
| 26 | * 数据字典信息 | 27 | * 数据字典信息 |
| @@ -34,6 +35,9 @@ public class SysDictDataController extends BaseController | @@ -34,6 +35,9 @@ public class SysDictDataController extends BaseController | ||
| 34 | @Autowired | 35 | @Autowired |
| 35 | private ISysDictDataService dictDataService; | 36 | private ISysDictDataService dictDataService; |
| 36 | 37 | ||
| 38 | + @Autowired | ||
| 39 | + private ISysDictTypeService dictTypeService; | ||
| 40 | + | ||
| 37 | @PreAuthorize("@ss.hasPermi('system:dict:list')") | 41 | @PreAuthorize("@ss.hasPermi('system:dict:list')") |
| 38 | @GetMapping("/list") | 42 | @GetMapping("/list") |
| 39 | public TableDataInfo list(SysDictData dictData) | 43 | public TableDataInfo list(SysDictData dictData) |
| @@ -66,10 +70,10 @@ public class SysDictDataController extends BaseController | @@ -66,10 +70,10 @@ public class SysDictDataController extends BaseController | ||
| 66 | /** | 70 | /** |
| 67 | * 根据字典类型查询字典数据信息 | 71 | * 根据字典类型查询字典数据信息 |
| 68 | */ | 72 | */ |
| 69 | - @GetMapping(value = "/dictType/{dictType}") | 73 | + @GetMapping(value = "/type/{dictType}") |
| 70 | public AjaxResult dictType(@PathVariable String dictType) | 74 | public AjaxResult dictType(@PathVariable String dictType) |
| 71 | { | 75 | { |
| 72 | - return AjaxResult.success(dictDataService.selectDictDataByType(dictType)); | 76 | + return AjaxResult.success(dictTypeService.selectDictDataByType(dictType)); |
| 73 | } | 77 | } |
| 74 | 78 | ||
| 75 | /** | 79 | /** |
| @@ -108,6 +108,18 @@ public class SysDictTypeController extends BaseController | @@ -108,6 +108,18 @@ public class SysDictTypeController extends BaseController | ||
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | /** | 110 | /** |
| 111 | + * 清空缓存 | ||
| 112 | + */ | ||
| 113 | + @PreAuthorize("@ss.hasPermi('system:dict:remove')") | ||
| 114 | + @Log(title = "字典类型", businessType = BusinessType.CLEAN) | ||
| 115 | + @DeleteMapping("/clearCache") | ||
| 116 | + public AjaxResult clearCache() | ||
| 117 | + { | ||
| 118 | + dictTypeService.clearCache(); | ||
| 119 | + return AjaxResult.success(); | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + /** | ||
| 111 | * 获取字典选择框列表 | 123 | * 获取字典选择框列表 |
| 112 | */ | 124 | */ |
| 113 | @GetMapping("/optionselect") | 125 | @GetMapping("/optionselect") |
| @@ -19,14 +19,6 @@ public interface ISysDictDataService | @@ -19,14 +19,6 @@ public interface ISysDictDataService | ||
| 19 | public List<SysDictData> selectDictDataList(SysDictData dictData); | 19 | public List<SysDictData> selectDictDataList(SysDictData dictData); |
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | - * 根据字典类型查询字典数据 | ||
| 23 | - * | ||
| 24 | - * @param dictType 字典类型 | ||
| 25 | - * @return 字典数据集合信息 | ||
| 26 | - */ | ||
| 27 | - public List<SysDictData> selectDictDataByType(String dictType); | ||
| 28 | - | ||
| 29 | - /** | ||
| 30 | * 根据字典类型和字典键值查询字典数据信息 | 22 | * 根据字典类型和字典键值查询字典数据信息 |
| 31 | * | 23 | * |
| 32 | * @param dictType 字典类型 | 24 | * @param dictType 字典类型 |
| @@ -44,14 +36,6 @@ public interface ISysDictDataService | @@ -44,14 +36,6 @@ public interface ISysDictDataService | ||
| 44 | public SysDictData selectDictDataById(Long dictCode); | 36 | public SysDictData selectDictDataById(Long dictCode); |
| 45 | 37 | ||
| 46 | /** | 38 | /** |
| 47 | - * 通过字典ID删除字典数据信息 | ||
| 48 | - * | ||
| 49 | - * @param dictCode 字典数据ID | ||
| 50 | - * @return 结果 | ||
| 51 | - */ | ||
| 52 | - public int deleteDictDataById(Long dictCode); | ||
| 53 | - | ||
| 54 | - /** | ||
| 55 | * 批量删除字典数据信息 | 39 | * 批量删除字典数据信息 |
| 56 | * | 40 | * |
| 57 | * @param dictCodes 需要删除的字典数据ID | 41 | * @param dictCodes 需要删除的字典数据ID |
| 1 | package com.ruoyi.project.system.service; | 1 | package com.ruoyi.project.system.service; |
| 2 | 2 | ||
| 3 | import java.util.List; | 3 | import java.util.List; |
| 4 | +import com.ruoyi.project.system.domain.SysDictData; | ||
| 4 | import com.ruoyi.project.system.domain.SysDictType; | 5 | import com.ruoyi.project.system.domain.SysDictType; |
| 5 | 6 | ||
| 6 | /** | 7 | /** |
| @@ -26,6 +27,14 @@ public interface ISysDictTypeService | @@ -26,6 +27,14 @@ public interface ISysDictTypeService | ||
| 26 | public List<SysDictType> selectDictTypeAll(); | 27 | public List<SysDictType> selectDictTypeAll(); |
| 27 | 28 | ||
| 28 | /** | 29 | /** |
| 30 | + * 根据字典类型查询字典数据 | ||
| 31 | + * | ||
| 32 | + * @param dictType 字典类型 | ||
| 33 | + * @return 字典数据集合信息 | ||
| 34 | + */ | ||
| 35 | + public List<SysDictData> selectDictDataByType(String dictType); | ||
| 36 | + | ||
| 37 | + /** | ||
| 29 | * 根据字典类型ID查询信息 | 38 | * 根据字典类型ID查询信息 |
| 30 | * | 39 | * |
| 31 | * @param dictId 字典类型ID | 40 | * @param dictId 字典类型ID |
| @@ -42,14 +51,6 @@ public interface ISysDictTypeService | @@ -42,14 +51,6 @@ public interface ISysDictTypeService | ||
| 42 | public SysDictType selectDictTypeByType(String dictType); | 51 | public SysDictType selectDictTypeByType(String dictType); |
| 43 | 52 | ||
| 44 | /** | 53 | /** |
| 45 | - * 通过字典ID删除字典信息 | ||
| 46 | - * | ||
| 47 | - * @param dictId 字典ID | ||
| 48 | - * @return 结果 | ||
| 49 | - */ | ||
| 50 | - public int deleteDictTypeById(Long dictId); | ||
| 51 | - | ||
| 52 | - /** | ||
| 53 | * 批量删除字典信息 | 54 | * 批量删除字典信息 |
| 54 | * | 55 | * |
| 55 | * @param dictIds 需要删除的字典ID | 56 | * @param dictIds 需要删除的字典ID |
| @@ -58,6 +59,11 @@ public interface ISysDictTypeService | @@ -58,6 +59,11 @@ public interface ISysDictTypeService | ||
| 58 | public int deleteDictTypeByIds(Long[] dictIds); | 59 | public int deleteDictTypeByIds(Long[] dictIds); |
| 59 | 60 | ||
| 60 | /** | 61 | /** |
| 62 | + * 清空缓存数据 | ||
| 63 | + */ | ||
| 64 | + public void clearCache(); | ||
| 65 | + | ||
| 66 | + /** | ||
| 61 | * 新增保存字典类型信息 | 67 | * 新增保存字典类型信息 |
| 62 | * | 68 | * |
| 63 | * @param dictType 字典类型信息 | 69 | * @param dictType 字典类型信息 |
| @@ -3,6 +3,7 @@ package com.ruoyi.project.system.service.impl; | @@ -3,6 +3,7 @@ package com.ruoyi.project.system.service.impl; | ||
| 3 | import java.util.List; | 3 | import java.util.List; |
| 4 | import org.springframework.beans.factory.annotation.Autowired; | 4 | import org.springframework.beans.factory.annotation.Autowired; |
| 5 | import org.springframework.stereotype.Service; | 5 | import org.springframework.stereotype.Service; |
| 6 | +import com.ruoyi.common.utils.DictUtils; | ||
| 6 | import com.ruoyi.project.system.domain.SysDictData; | 7 | import com.ruoyi.project.system.domain.SysDictData; |
| 7 | import com.ruoyi.project.system.mapper.SysDictDataMapper; | 8 | import com.ruoyi.project.system.mapper.SysDictDataMapper; |
| 8 | import com.ruoyi.project.system.service.ISysDictDataService; | 9 | import com.ruoyi.project.system.service.ISysDictDataService; |
| @@ -31,18 +32,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService | @@ -31,18 +32,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService | ||
| 31 | } | 32 | } |
| 32 | 33 | ||
| 33 | /** | 34 | /** |
| 34 | - * 根据字典类型查询字典数据 | ||
| 35 | - * | ||
| 36 | - * @param dictType 字典类型 | ||
| 37 | - * @return 字典数据集合信息 | ||
| 38 | - */ | ||
| 39 | - @Override | ||
| 40 | - public List<SysDictData> selectDictDataByType(String dictType) | ||
| 41 | - { | ||
| 42 | - return dictDataMapper.selectDictDataByType(dictType); | ||
| 43 | - } | ||
| 44 | - | ||
| 45 | - /** | ||
| 46 | * 根据字典类型和字典键值查询字典数据信息 | 35 | * 根据字典类型和字典键值查询字典数据信息 |
| 47 | * | 36 | * |
| 48 | * @param dictType 字典类型 | 37 | * @param dictType 字典类型 |
| @@ -68,18 +57,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService | @@ -68,18 +57,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService | ||
| 68 | } | 57 | } |
| 69 | 58 | ||
| 70 | /** | 59 | /** |
| 71 | - * 通过字典ID删除字典数据信息 | ||
| 72 | - * | ||
| 73 | - * @param dictCode 字典数据ID | ||
| 74 | - * @return 结果 | ||
| 75 | - */ | ||
| 76 | - @Override | ||
| 77 | - public int deleteDictDataById(Long dictCode) | ||
| 78 | - { | ||
| 79 | - return dictDataMapper.deleteDictDataById(dictCode); | ||
| 80 | - } | ||
| 81 | - | ||
| 82 | - /** | ||
| 83 | * 批量删除字典数据信息 | 60 | * 批量删除字典数据信息 |
| 84 | * | 61 | * |
| 85 | * @param dictCodes 需要删除的字典数据ID | 62 | * @param dictCodes 需要删除的字典数据ID |
| @@ -87,7 +64,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService | @@ -87,7 +64,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService | ||
| 87 | */ | 64 | */ |
| 88 | public int deleteDictDataByIds(Long[] dictCodes) | 65 | public int deleteDictDataByIds(Long[] dictCodes) |
| 89 | { | 66 | { |
| 90 | - return dictDataMapper.deleteDictDataByIds(dictCodes); | 67 | + int row = dictDataMapper.deleteDictDataByIds(dictCodes); |
| 68 | + if (row > 0) | ||
| 69 | + { | ||
| 70 | + DictUtils.clearDictCache(); | ||
| 71 | + } | ||
| 72 | + return row; | ||
| 91 | } | 73 | } |
| 92 | 74 | ||
| 93 | /** | 75 | /** |
| @@ -99,7 +81,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService | @@ -99,7 +81,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService | ||
| 99 | @Override | 81 | @Override |
| 100 | public int insertDictData(SysDictData dictData) | 82 | public int insertDictData(SysDictData dictData) |
| 101 | { | 83 | { |
| 102 | - return dictDataMapper.insertDictData(dictData); | 84 | + int row = dictDataMapper.insertDictData(dictData); |
| 85 | + if (row > 0) | ||
| 86 | + { | ||
| 87 | + DictUtils.clearDictCache(); | ||
| 88 | + } | ||
| 89 | + return row; | ||
| 103 | } | 90 | } |
| 104 | 91 | ||
| 105 | /** | 92 | /** |
| @@ -111,6 +98,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService | @@ -111,6 +98,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService | ||
| 111 | @Override | 98 | @Override |
| 112 | public int updateDictData(SysDictData dictData) | 99 | public int updateDictData(SysDictData dictData) |
| 113 | { | 100 | { |
| 114 | - return dictDataMapper.updateDictData(dictData); | 101 | + int row = dictDataMapper.updateDictData(dictData); |
| 102 | + if (row > 0) | ||
| 103 | + { | ||
| 104 | + DictUtils.clearDictCache(); | ||
| 105 | + } | ||
| 106 | + return row; | ||
| 115 | } | 107 | } |
| 116 | } | 108 | } |
| 1 | package com.ruoyi.project.system.service.impl; | 1 | package com.ruoyi.project.system.service.impl; |
| 2 | 2 | ||
| 3 | import java.util.List; | 3 | import java.util.List; |
| 4 | +import javax.annotation.PostConstruct; | ||
| 4 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 5 | import org.springframework.stereotype.Service; | 6 | import org.springframework.stereotype.Service; |
| 6 | import org.springframework.transaction.annotation.Transactional; | 7 | import org.springframework.transaction.annotation.Transactional; |
| 7 | import com.ruoyi.common.constant.UserConstants; | 8 | import com.ruoyi.common.constant.UserConstants; |
| 9 | +import com.ruoyi.common.exception.CustomException; | ||
| 10 | +import com.ruoyi.common.utils.DictUtils; | ||
| 8 | import com.ruoyi.common.utils.StringUtils; | 11 | import com.ruoyi.common.utils.StringUtils; |
| 12 | +import com.ruoyi.project.system.domain.SysDictData; | ||
| 9 | import com.ruoyi.project.system.domain.SysDictType; | 13 | import com.ruoyi.project.system.domain.SysDictType; |
| 10 | import com.ruoyi.project.system.mapper.SysDictDataMapper; | 14 | import com.ruoyi.project.system.mapper.SysDictDataMapper; |
| 11 | import com.ruoyi.project.system.mapper.SysDictTypeMapper; | 15 | import com.ruoyi.project.system.mapper.SysDictTypeMapper; |
| @@ -26,6 +30,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | @@ -26,6 +30,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | ||
| 26 | private SysDictDataMapper dictDataMapper; | 30 | private SysDictDataMapper dictDataMapper; |
| 27 | 31 | ||
| 28 | /** | 32 | /** |
| 33 | + * 项目启动时,初始化字典到缓存 | ||
| 34 | + */ | ||
| 35 | + @PostConstruct | ||
| 36 | + public void init() | ||
| 37 | + { | ||
| 38 | + List<SysDictType> dictTypeList = dictTypeMapper.selectDictTypeAll(); | ||
| 39 | + for (SysDictType dictType : dictTypeList) | ||
| 40 | + { | ||
| 41 | + List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType()); | ||
| 42 | + DictUtils.setDictCache(dictType.getDictType(), dictDatas); | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + /** | ||
| 29 | * 根据条件分页查询字典类型 | 47 | * 根据条件分页查询字典类型 |
| 30 | * | 48 | * |
| 31 | * @param dictType 字典类型信息 | 49 | * @param dictType 字典类型信息 |
| @@ -49,6 +67,29 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | @@ -49,6 +67,29 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | ||
| 49 | } | 67 | } |
| 50 | 68 | ||
| 51 | /** | 69 | /** |
| 70 | + * 根据字典类型查询字典数据 | ||
| 71 | + * | ||
| 72 | + * @param dictType 字典类型 | ||
| 73 | + * @return 字典数据集合信息 | ||
| 74 | + */ | ||
| 75 | + @Override | ||
| 76 | + public List<SysDictData> selectDictDataByType(String dictType) | ||
| 77 | + { | ||
| 78 | + List<SysDictData> dictDatas = DictUtils.getDictCache(dictType); | ||
| 79 | + if (StringUtils.isNotNull(dictDatas)) | ||
| 80 | + { | ||
| 81 | + return dictDatas; | ||
| 82 | + } | ||
| 83 | + dictDatas = dictDataMapper.selectDictDataByType(dictType); | ||
| 84 | + if (StringUtils.isNotNull(dictDatas)) | ||
| 85 | + { | ||
| 86 | + DictUtils.setDictCache(dictType, dictDatas); | ||
| 87 | + return dictDatas; | ||
| 88 | + } | ||
| 89 | + return null; | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + /** | ||
| 52 | * 根据字典类型ID查询信息 | 93 | * 根据字典类型ID查询信息 |
| 53 | * | 94 | * |
| 54 | * @param dictId 字典类型ID | 95 | * @param dictId 字典类型ID |
| @@ -72,26 +113,35 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | @@ -72,26 +113,35 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | ||
| 72 | } | 113 | } |
| 73 | 114 | ||
| 74 | /** | 115 | /** |
| 75 | - * 通过字典ID删除字典信息 | 116 | + * 批量删除字典类型信息 |
| 76 | * | 117 | * |
| 77 | - * @param dictId 字典ID | 118 | + * @param dictIds 需要删除的字典ID |
| 78 | * @return 结果 | 119 | * @return 结果 |
| 79 | */ | 120 | */ |
| 80 | - @Override | ||
| 81 | - public int deleteDictTypeById(Long dictId) | 121 | + public int deleteDictTypeByIds(Long[] dictIds) |
| 82 | { | 122 | { |
| 83 | - return dictTypeMapper.deleteDictTypeById(dictId); | 123 | + for (Long dictId : dictIds) |
| 124 | + { | ||
| 125 | + SysDictType dictType = selectDictTypeById(dictId); | ||
| 126 | + if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) | ||
| 127 | + { | ||
| 128 | + throw new CustomException(String.format("%1$s已分配,不能删除", dictType.getDictName())); | ||
| 129 | + } | ||
| 130 | + } | ||
| 131 | + int count = dictTypeMapper.deleteDictTypeByIds(dictIds); | ||
| 132 | + if (count > 0) | ||
| 133 | + { | ||
| 134 | + DictUtils.clearDictCache(); | ||
| 135 | + } | ||
| 136 | + return count; | ||
| 84 | } | 137 | } |
| 85 | 138 | ||
| 86 | /** | 139 | /** |
| 87 | - * 批量删除字典类型信息 | ||
| 88 | - * | ||
| 89 | - * @param dictIds 需要删除的字典ID | ||
| 90 | - * @return 结果 | 140 | + * 清空缓存数据 |
| 91 | */ | 141 | */ |
| 92 | - public int deleteDictTypeByIds(Long[] dictIds) | 142 | + public void clearCache() |
| 93 | { | 143 | { |
| 94 | - return dictTypeMapper.deleteDictTypeByIds(dictIds); | 144 | + DictUtils.clearDictCache(); |
| 95 | } | 145 | } |
| 96 | 146 | ||
| 97 | /** | 147 | /** |
| @@ -103,7 +153,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | @@ -103,7 +153,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | ||
| 103 | @Override | 153 | @Override |
| 104 | public int insertDictType(SysDictType dictType) | 154 | public int insertDictType(SysDictType dictType) |
| 105 | { | 155 | { |
| 106 | - return dictTypeMapper.insertDictType(dictType); | 156 | + int row = dictTypeMapper.insertDictType(dictType); |
| 157 | + if (row > 0) | ||
| 158 | + { | ||
| 159 | + DictUtils.clearDictCache(); | ||
| 160 | + } | ||
| 161 | + return row; | ||
| 107 | } | 162 | } |
| 108 | 163 | ||
| 109 | /** | 164 | /** |
| @@ -118,7 +173,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | @@ -118,7 +173,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService | ||
| 118 | { | 173 | { |
| 119 | SysDictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId()); | 174 | SysDictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId()); |
| 120 | dictDataMapper.updateDictDataType(oldDict.getDictType(), dictType.getDictType()); | 175 | dictDataMapper.updateDictDataType(oldDict.getDictType(), dictType.getDictType()); |
| 121 | - return dictTypeMapper.updateDictType(dictType); | 176 | + int row = dictTypeMapper.updateDictType(dictType); |
| 177 | + if (row > 0) | ||
| 178 | + { | ||
| 179 | + DictUtils.clearDictCache(); | ||
| 180 | + } | ||
| 181 | + return row; | ||
| 122 | } | 182 | } |
| 123 | 183 | ||
| 124 | /** | 184 | /** |
-
请 注册 或 登录 后发表评论