作者 RuoYi

字典管理添加缓存读取

@@ -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 /**