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 | 149 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 109 insertions(+), 40 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 fc00d36..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,73 +1,50 @@ package com.yeshi.fanli.service.impl.config; -import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; -import net.sf.json.JSONArray; - 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; import com.google.gson.Gson; -import com.yeshi.fanli.dao.config.ConfigDao; +import com.yeshi.fanli.dao.mybatis.ConfigMapper; import com.yeshi.fanli.entity.common.Config; import com.yeshi.fanli.entity.config.AppHomeFloatImg; import com.yeshi.fanli.entity.xcx.XCXSettingConfig; 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; @Service public class ConfigServiceImpl implements ConfigService { @Resource - private ConfigDao configDao; + private ConfigMapper configMapper; @Cacheable(value = "config") public List<Config> getAllList() { - return configDao.list("from Config"); + return configMapper.listAll(); } @Override public List<Config> listObjects(String key, int page) { int start = (page - 1) * Constant.PAGE_SIZE; - StringBuffer hqlBuf = new StringBuffer("from Config pr where 1=1 "); - - if (key != null && !"".equals(key.trim())) { - hqlBuf.append(" and (pr.name like ? )"); - } - - hqlBuf.append(" order by pr.id desc "); - String hql = hqlBuf.toString(); - if (hql.contains("pr.name")) { - return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[] { "%" + key + "%" }); - } else { - return configDao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[] {}); - } - + return configMapper.listSearchByName(key, start, Constant.PAGE_SIZE); } @Override - public int getCount(String key, int page) { - - StringBuffer hqlBuf = new StringBuffer("select count(*) from Config pr where 1=1 "); - - if (key != null && !"".equals(key.trim())) { - hqlBuf.append(" and (pr.name like ? )"); - } - - String hql = hqlBuf.toString(); - - if (hql.contains("pr.name")) { - return (int) configDao.getCount(hqlBuf.toString(), new Serializable[] { "%" + key + "%" }); - } else { - return (int) configDao.getCount(hqlBuf.toString(), new Serializable[] {}); - } + public int getCount(String key) { + return (int) configMapper.countSearchByName(key); } @CacheEvict(value = "config", allEntries = true) @@ -75,19 +52,36 @@ public void update(List<Config> list) { for (Config config : list) { config.setCreatetime(new Date().getTime() + ""); - configDao.update(config); + configMapper.updateByPrimaryKeySelective(config); } } @CacheEvict(value = "config", allEntries = true) public void update(Config config) { config.setCreatetime(new Date().getTime() + ""); - configDao.update(config); + configMapper.updateByPrimaryKeySelective(config); } @Cacheable(value = "config", key = "#p0+'Str'") public String get(String key) { - List<Config> list = configDao.list("from Config c where c.key=? ", new Serializable[] { 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; } @@ -97,7 +91,7 @@ @Cacheable(value = "config", key = "#p0") public Config getConfig(String key) { - List<Config> list = configDao.list("from Config c where c.key=? ", new Serializable[] { key }); + List<Config> list = configMapper.listByKey(key, null, null); if (list.size() == 0) { return null; } @@ -190,7 +184,82 @@ @Override public Config getConfig(long id) { - return configDao.find(Config.class, id); + return configMapper.selectByPrimaryKey(id); } + @Override + public ProxyIP getTaoBaoProxyIP() { + String value = get("taobao_proxy_ip"); + try { + String[] sts = value.split(":"); + return new ProxyIP(sts[0], Integer.parseInt(sts[1])); + } catch (Exception e) { + } + return null; + } + + @Override + public String getAppHomeFloatNotifyImg() { + + return get("home_float_notify_img"); + } + + @Override + public void save(Config config) { + 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; + 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