From 8c04d27e5cebb7e654c208533e9567c4df2c8acc Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 12 十二月 2019 14:21:44 +0800
Subject: [PATCH] 券时间限制

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/config/ConfigServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 41 insertions(+), 17 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 b4bd739..75fb82d 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
@@ -1,5 +1,6 @@
 package com.yeshi.fanli.service.impl.config;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -63,7 +64,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;
 		}
@@ -73,7 +91,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;
 		}
@@ -188,53 +206,59 @@
 
 	@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");
+		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) 
+			if (diff < 1000 * 60 * 60)
 				return; // 瓒呰繃涓�涓皬鏃舵洿鏂�
 		}
-		
+
 		String hotWords = DaTaoKeApiUtil.getHotWords();
 		if (StringUtil.isNullOrEmpty(hotWords))
-			return ;
-		
-		config.setValue(hotWords);
+			return;
+		JSONArray array = JSONArray.fromObject(hotWords);
+		String reg = "^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9_-]){1,20}$";
+		List<String> list = new ArrayList<>();
+		for (int i = 0; i < array.size(); i++) {
+			String key = array.optString(i);
+			if (key.matches(reg)) {
+				list.add(key);
+			}
+		}
+		config.setValue(new Gson().toJson(list));
 		config.setCreatetime(currentTime + "");
 		configMapper.updateByPrimaryKeySelective(config);
 	}

--
Gitblit v1.8.0