From 148af6b2f57be264c84d0991237fbd7ddea491a4 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 04 十一月 2019 09:55:55 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java |   67 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java
index b2b7b79..6c687a2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java
@@ -7,6 +7,7 @@
 
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.entity.ProxyIP;
@@ -19,6 +20,7 @@
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
 
 import net.sf.json.JSONArray;
 
@@ -61,7 +63,24 @@
 
 	@Cacheable(value = "config", key = "#p0+'Str'")
 	public String get(String key) {
-		List<Config> list = configMapper.listByKey(key);
+		List<Config> list = configMapper.listByKey(key, null, null);
+		if (list.size() == 0) {
+			return null;
+		}
+		String value = list.get(0).getValue();
+		return value;
+	}
+
+	@Cacheable(value = "config", key = "'getByVersion'+'-'+#key+'-'+#platform+'-'+#version ")
+	public String getByVersion(String key, String platform, int version) {
+		Integer minAndroidVersion = null;
+		Integer minIosVersion = null;
+		if ("android".equalsIgnoreCase(platform)) {
+			minAndroidVersion = version;
+		} else
+			minIosVersion = version;
+
+		List<Config> list = configMapper.listByKey(key, minAndroidVersion, minIosVersion);
 		if (list.size() == 0) {
 			return null;
 		}
@@ -71,7 +90,7 @@
 
 	@Cacheable(value = "config", key = "#p0")
 	public Config getConfig(String key) {
-		List<Config> list = configMapper.listByKey(key);
+		List<Config> list = configMapper.listByKey(key, null, null);
 		if (list.size() == 0) {
 			return null;
 		}
@@ -186,10 +205,52 @@
 
 	@Override
 	public void save(Config config) {
-		List<Config> list = configMapper.listByKey(config.getKey());
+		List<Config> list = configMapper.listByKey(config.getKey(), null, null);
 		if (list == null || list.size() == 0) {
 			configMapper.insertSelective(config);
 		}
 	}
 
+	@Cacheable(value = "config", key = "'getSearchDiscoveryKeys'")
+	@Override
+	public String getSearchDiscoveryKeys() {
+		List<Config> list = configMapper.listByKey("search_discovery_keys", null, null);
+		if (list == null || list.size() == 0)
+			return null;
+
+		Config config = list.get(0);
+		if (config == null)
+			return null;
+
+		// 鏇存柊
+		updateSearchDiscoveryKeys(config);
+
+		String value = config.getValue();
+		return value;
+	}
+
+	/**
+	 * 鏇存柊鎼滅储鍙戠幇璇�
+	 * 
+	 * @param config
+	 */
+	@Async
+	private void updateSearchDiscoveryKeys(Config config) {
+		long currentTime = java.lang.System.currentTimeMillis();
+
+		String createtime = config.getCreatetime();
+		if (!StringUtil.isNullOrEmpty(createtime)) {
+			long diff = currentTime - Long.parseLong(createtime);
+			if (diff < 1000 * 60 * 60)
+				return; // 瓒呰繃涓�涓皬鏃舵洿鏂�
+		}
+
+		String hotWords = DaTaoKeApiUtil.getHotWords();
+		if (StringUtil.isNullOrEmpty(hotWords))
+			return;
+
+		config.setValue(hotWords);
+		config.setCreatetime(currentTime + "");
+		configMapper.updateByPrimaryKeySelective(config);
+	}
 }

--
Gitblit v1.8.0