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);
|
}
|
|
}
|