From 361c5b06d604b7f2d48ebdb70253239f64d7d5c1 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Tue, 9 Jul 2019 11:41:43 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=95=B0=E6=8D=AE?= =?utf8?q?=E5=AD=97=E5=85=B8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/framework/dao/DictionaryDao.java | 1 + .../system/controller/DictPoolAction.java | 8 ++++-- .../system/service/DictionaryDataService.java | 6 ++++ .../dlpay/system/service/DictionaryProxy.java | 8 ++++++ .../impl/DictionaryDataServiceImpl.java | 28 ++++++++++++++++++- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java index efdd3841..6ffdc211 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java @@ -12,4 +12,5 @@ import java.util.List; @Repository public interface DictionaryDao extends JpaRepository { List findAllByDicttype(String dicttype); + void deleteByDicttype(String dicttype); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java index af00076f..9c78b008 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java @@ -13,8 +13,11 @@ import java.util.Map; @RestController public class DictPoolAction { - @Autowired - private DictionaryProxy dictionaryProxy; + private final DictionaryProxy dictionaryProxy; + + public DictPoolAction(DictionaryProxy dictionaryProxy) { + this.dictionaryProxy = dictionaryProxy; + } @GetMapping("/dictpool") public Map getDictDataByDicttype(@FormParam("dicttype") String dictType, HttpServletRequest request) { @@ -24,6 +27,7 @@ public class DictPoolAction { @GetMapping("/dictrefresh") public JsonResult refreshDict() { + dictionaryProxy.refreshDictionary(); return JsonResult.ok(); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java index 48cc4df2..d7d1027b 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java @@ -8,6 +8,12 @@ import java.util.List; public interface DictionaryDataService { List getDictionaryByDictType(String dicttype); + void updateDictionaryByDictType(String dicttype, List list); + + void refreshCache(String dicttype); + + void refreshCache(); + List getTransCode(); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java index 7f8d814f..c78b89cd 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java @@ -53,4 +53,12 @@ public class DictionaryProxy { return (List) dictionaryDataService.getDictionaryByDictType(dictType); } } + + public void refreshDictionary() { + dictionaryDataService.refreshCache(); + } + + public void refreshDictionary(String dicttype) { + dictionaryDataService.refreshCache(dicttype); + } } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java index 523bded2..1b9a14e7 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java @@ -5,6 +5,7 @@ import com.supwisdom.dlpay.framework.dao.TranscodeDao; import com.supwisdom.dlpay.framework.domain.TDictionary; import com.supwisdom.dlpay.framework.domain.TTranscode; import com.supwisdom.dlpay.system.service.DictionaryDataService; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -23,7 +24,7 @@ public class DictionaryDataServiceImpl implements DictionaryDataService { } @Override - @Cacheable(cacheNames = "dicationary_cache", key = "#p0") + @Cacheable(cacheNames = "dictionary_cache", key = "#p0") public List getDictionaryByDictType(String dicttype) { List list = dictionaryDao.findAllByDicttype(dicttype); if (!list.isEmpty()) { @@ -33,6 +34,31 @@ public class DictionaryDataServiceImpl implements DictionaryDataService { } + @Override + @CacheEvict(cacheNames = "dictionary_cache", key = "#p0") + public void updateDictionaryByDictType(String dicttype, List list) { + for (TDictionary item : list) { + if (!dicttype.equals(item.getDicttype())) { + throw new IllegalArgumentException("TDictionary dicttype mismatch"); + } + } + dictionaryDao.deleteByDicttype(dicttype); + for (TDictionary item : list) { + dictionaryDao.save(item); + } + } + + @Override + @CacheEvict(cacheNames = "dictionary_cache", key = "#p0") + public void refreshCache(String dicttype) { + } + + @Override + @CacheEvict(cacheNames = "dictionary_cache", allEntries = true) + public void refreshCache() { + + } + @Override @Cacheable(cacheNames = "trans_code_cache") public List getTransCode() { -- 2.17.1