diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
index 2029372..57b9a01 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
@@ -31,7 +31,8 @@
   private final ShopSourceTypeConfigDao shopSourceTypeConfigDao;
 
   @Autowired
-  public SourceTypeServiceImpl(SourceTypeDao sourceTypeDao, SourceTypeConfigDao sourceTypeConfigDao, ShopSourceTypeDao shopSourceTypeDao, ShopSourceTypeConfigDao shopSourceTypeConfigDao) {
+  public SourceTypeServiceImpl(SourceTypeDao sourceTypeDao, SourceTypeConfigDao sourceTypeConfigDao,
+                               ShopSourceTypeDao shopSourceTypeDao, ShopSourceTypeConfigDao shopSourceTypeConfigDao) {
     this.sourceTypeDao = sourceTypeDao;
     this.sourceTypeConfigDao = sourceTypeConfigDao;
     this.shopSourceTypeDao = shopSourceTypeDao;
@@ -40,18 +41,18 @@
 
 
   @Override
-  @Cacheable(cacheNames = "dictionary_cache", keyGenerator = "tenantCacheKey")
-  public TSourceType getBySourceType(String paytype) {
-    return sourceTypeDao.getOne(paytype);
+  @Cacheable(cacheNames = "dictionary_cache", key = "@tenantHolder.genKey('sourcetype', #sourceType)")
+  public TSourceType getBySourceType(String sourceType) {
+    return sourceTypeDao.getOne(sourceType);
   }
 
   @Override
-  @Cacheable(cacheNames = "dictionary_cache", keyGenerator = "tenantCacheKey")
-  public Map<String, String> getSourceTypeConfigBySourceType(String pattype) {
-    List<TSourceTypeConfig> list = sourceTypeConfigDao.getBySourceType(pattype);
+  @Cacheable(cacheNames = "dictionary_cache", key = "@tenantHolder.genKey('sourcetype_config', #sourceType)")
+  public Map<String, String> getSourceTypeConfigBySourceType(String sourceType) {
+    List<TSourceTypeConfig> list = sourceTypeConfigDao.getBySourceType(sourceType);
     Map<String, String> map = new HashMap<>(list.size());
-    for (TSourceTypeConfig paytypeConfig : list) {
-      map.put(paytypeConfig.getConfigid(), paytypeConfig.getConfigValue());
+    for (TSourceTypeConfig sourceTypeConfig : list) {
+      map.put(sourceTypeConfig.getConfigid(), sourceTypeConfig.getConfigValue());
     }
     return map;
   }
