package com.yeshi.fanli.system.utils; import javax.annotation.Resource; import org.fanli.facade.system.service.common.ConfigService; import org.springframework.stereotype.Component; import org.yeshi.utils.StringUtil; import com.yeshi.fanli.base.Constant; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; //抢红包采用的redis @Component public class SMSRedisManager { @Resource private JedisPool jedisPool; @Resource private ConfigService configService; /** * 缓存字符串 * * @param key * @param value */ private void setString(String key, String value) { Jedis jedis = jedisPool.getResource(); try { jedis.set(key, value); } finally { jedisPool.returnResource(jedis); } } /** * 删除某个键值 * * @param key * @param value */ private void removeKey(String key) { Jedis jedis = jedisPool.getResource(); try { jedis.del(key); } finally { jedisPool.returnResource(jedis); } } /** * 缓存字符串 * * @param key * @param value * @param seconds * -缓存时间(s) */ private void setString(String key, String value, int seconds) { Jedis jedis = jedisPool.getResource(); try { jedis.setex(key, seconds, value); } finally { jedisPool.returnResource(jedis); } } private String getString(String key) { Jedis jedis = jedisPool.getResource(); try { return jedis.get(key); } finally { jedisPool.returnResource(jedis); } } public void cacheCommonString(String key, String value, int seconds) { setString(key, value, seconds); } public void cacheCommonString(String key, String value) { setString(key, value); } public String getCommonString(String key) { return getString(key); } public void removeCommonString(String key) { removeKey(key); } /** * 是否限制发送短信 * * @param phone * @param type * @return */ public boolean isSmsFrequencyLimit(String phone, int type) { if (!Constant.IS_OUTNET) return false; String key = "sms-" + phone + "-" + type; String value = getCommonString(key); if (StringUtil.isNullOrEmpty(value)) return false; else return true; } /** * 设置短信60s倒计时 * * @param phone * @param type */ public void sendSms(String phone, int type) { if (!Constant.IS_OUTNET) return; String key = "sms-" + phone + "-" + type; setString(key, "1", 10); } public void clearSMSFrequencyLimit(String phone, int type) { if (!Constant.IS_OUTNET) return; String key = "sms-" + phone + "-" + type; removeKey(key); } /** * 保存验证码 * * @param phone * @param type * @param code */ public void saveSMSVCode(String phone, int type, String code) { if (!Constant.IS_OUTNET) return; String key = "smscode-" + phone + "-" + type; // 保存2分钟 setString(key, code, 120); } /** * * @param phone * @param type * @return */ public String getSMSVCode(String phone, int type) { if (!Constant.IS_OUTNET) return ""; String key = "smscode-" + phone + "-" + type; // 保存2分钟 return getString(key); } /** * 清除掉验证码 * * @param phone * @param type * @param code */ public void clearSMSVCode(String phone, int type) { if (!Constant.IS_OUTNET) return; String key = "smscode-" + phone + "-" + type; removeKey(key); } }