From d8fc4263dad4bf8112a9146dd8afbaceb6d4ea10 Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期一, 09 三月 2020 22:28:48 +0800
Subject: [PATCH] 自动发圈
---
fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java | 223 +++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 182 insertions(+), 41 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java b/fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java
index 1524fe8..799cb72 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java
@@ -6,10 +6,13 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
+import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.common.ImageInfo;
+import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
@@ -19,14 +22,16 @@
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
+import com.yeshi.fanli.util.jd.JDApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONArray;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.params.SetParams;
//鎶㈢孩鍖呴噰鐢ㄧ殑redis
@Component
@@ -52,10 +57,12 @@
*/
private void setString(String key, String value) {
Jedis jedis = jedisPool.getResource();
+ SetParams params=new SetParams().nx().ex(60);
+ jedis.set(key, value, params);
try {
jedis.set(key, value);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
@@ -71,7 +78,7 @@
try {
jedis.del(key);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
@@ -89,7 +96,7 @@
try {
jedis.setex(key, seconds, value);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
@@ -98,7 +105,7 @@
try {
return jedis.get(key);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
@@ -107,16 +114,16 @@
try {
jedis.incr(key);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
- public void expire(String key,int seconds) {
+ public void expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
try {
jedis.expire(key, seconds);
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
@@ -144,7 +151,7 @@
public void saveTaoBaoGoodsBriefTemp(TaoBaoGoodsBrief goods) {
if (goods == null)
return;
- String key = "taobao-goods-temp-" + goods.getAuctionId();
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoodsTemp, goods.getAuctionId() + "");
if (Constant.IS_OUTNET) {
// 鏆傚瓨4涓皬鏃剁殑鍒嗕韩
cacheCommonString(key, JsonUtil.getSimpleGson().toJson(goods), 60 * 60 * 4);
@@ -152,7 +159,7 @@
}
public TaoBaoGoodsBrief getTaoBaoGoodsTemp(Long auctionId) {
- String key = "taobao-goods-temp-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoodsTemp, auctionId + "");
String value = getCommonString(key);
if (!StringUtil.isNullOrEmpty(value)) {
return JsonUtil.getSimpleGson().fromJson(value, TaoBaoGoodsBrief.class);
@@ -166,14 +173,14 @@
* @param auctionId
*/
public void deleteTaoBaoGoodsBrief(Long auctionId) {
- String key = "taobao-goods-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoods, auctionId + "");
if (Constant.IS_OUTNET)
removeKey(key);
}
public TaoBaoGoodsBrief getTaoBaoGoodsBrief(long auctionId) throws TaobaoGoodsDownException {
long startTime = System.currentTimeMillis();
- String key = "taobao-goods-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoods, auctionId + "");
String value = "";
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -195,7 +202,7 @@
}
public List<ImageInfo> getTaoBaoGoodsDetailImgs(long auctionId) {
- String key = "taobao-goods-detailimgs-size-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoodsDetailimgs, auctionId + "");
String value = "";
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -224,7 +231,7 @@
public String getXCXCouponToken(TaoBaoGoodsBrief tb) {
List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
- String key = "taobao-couple-xcx-" + tb.getAuctionId();
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoCoupleXCX, tb.getAuctionId() + "");
String value = "";
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -247,7 +254,7 @@
* @param ip
*/
public boolean ipFrequencyLimit(String ip, String apiName) {
- String key = ip + "-" + StringUtil.Md5(apiName);
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, ip + "-" + StringUtil.Md5(apiName));
Jedis jedis = jedisPool.getResource();
try {
long count = jedis.incr(key);
@@ -258,7 +265,23 @@
else
return false;
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
+ }
+ }
+
+ public boolean frequencyLimit(String key, int timeS, int num) {
+ key = RedisKeyEnum.getRedisKey(RedisKeyEnum.frequencyLimit, key);
+ Jedis jedis = jedisPool.getResource();
+ try {
+ long count = jedis.incr(key);
+ if (count == 1)
+ jedis.expire(key, timeS);
+ if (count >= num)
+ return true;
+ else
+ return false;
+ } finally {
+ jedis.close();
}
}
@@ -269,7 +292,7 @@
* @return
*/
public List<String> getTBImg(Long auctionId) {
- String key = "taobao-img-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoImgs, auctionId + "");
String value = "";
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -298,7 +321,7 @@
* @return
*/
public TaoBaoShopInfo getTBShopInfo(String shopTitle, Long sellerId, Long auctionId) {
- String key = "taobao-shop-" + sellerId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoShop, sellerId +"");
String value = "";
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -347,7 +370,7 @@
public boolean isSmsFrequencyLimit(String phone, int type) {
if (!Constant.IS_OUTNET)
return false;
- String key = "sms-" + phone + "-" + type;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMS, phone + "-" + type);
String value = getCommonString(key);
if (StringUtil.isNullOrEmpty(value))
return false;
@@ -364,14 +387,14 @@
public void sendSms(String phone, int type) {
if (!Constant.IS_OUTNET)
return;
- String key = "sms-" + phone + "-" + type;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMS, phone + "-" + type);
setString(key, "1", 10);
}
public void clearSMSFrequencyLimit(String phone, int type) {
if (!Constant.IS_OUTNET)
return;
- String key = "sms-" + phone + "-" + type;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMS, phone + "-" + type);
removeKey(key);
}
@@ -384,9 +407,7 @@
*/
public void saveSMSVCode(String phone, int type, String code) {
- if (!Constant.IS_OUTNET)
- return;
- String key = "smscode-" + phone + "-" + type;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSVCode, phone + "-" + type);
// 淇濆瓨2鍒嗛挓
setString(key, code, 120);
}
@@ -398,9 +419,9 @@
* @return
*/
public String getSMSVCode(String phone, int type) {
- if (!Constant.IS_OUTNET)
- return "";
- String key = "smscode-" + phone + "-" + type;
+ // if (!Constant.IS_OUTNET)
+ // return "";
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSVCode, phone + "-" + type);
// 淇濆瓨2鍒嗛挓
return getString(key);
}
@@ -413,9 +434,9 @@
* @param code
*/
public void clearSMSVCode(String phone, int type) {
- if (!Constant.IS_OUTNET)
- return;
- String key = "smscode-" + phone + "-" + type;
+ // if (!Constant.IS_OUTNET)
+ // return;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSVCode, phone + "-" + type);
removeKey(key);
}
@@ -423,8 +444,7 @@
* 淇濆瓨缁戝畾鏀粯瀹濈煭淇¢獙璇佺爜鐨勬纭��
*/
public void saveBindAlipayAccountSMSState(String phone) {
- String key = "smsstate-alipay-" + phone;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSStateAlipay, phone + "" );
// 楠岃瘉鍚庡崄鍒嗛挓鏈夋晥
setString(key, "1", 10 * 60);
}
@@ -436,7 +456,7 @@
* @return
*/
public boolean isBindAlipayAccountSMSStateValid(String phone) {
- String key = "smsstate-alipay-" + phone;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSStateAlipay, phone + "" );
return !StringUtil.isNullOrEmpty(getString(key));
}
@@ -448,8 +468,7 @@
*/
public void setInviteShortLink(long uid, String shortlink) {
String value = "";
- String key = "invite-shortlink-" + uid;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.inviteShortLink, uid + "" );
if (Constant.IS_OUTNET) {
value = getCommonString(key);
@@ -468,10 +487,8 @@
* @return
*/
public String getInviteShortLink(long uid) {
-
String value = "";
- String key = "invite-shortlink-" + uid;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.inviteShortLink, uid + "" );
if (Constant.IS_OUTNET)
value = getCommonString(key);
@@ -485,7 +502,7 @@
* @param token
*/
public void saveCommonTaoToken(Long auctionId, String token) {
- String key = "taobao-common-token-" + auctionId;
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenCommon, auctionId + "" );
if (Constant.IS_OUTNET) {
if (!StringUtil.isNullOrEmpty(token)) {
// 鍙d护缂撳瓨10澶�
@@ -501,12 +518,136 @@
* @return
*/
public String getCommonTaoToken(Long auctionId) {
- String key = "taobao-common-token-" + auctionId;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenCommon, auctionId + "" );
if (Constant.IS_OUTNET) {
return getCommonString(key);
}
return null;
}
+ /**
+ * 淇濆瓨娣樼ぜ閲戠殑鍙d护
+ *
+ * @param url
+ * @param token
+ */
+ public void saveTLJToken(String url, String token) {
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenTLJ, StringUtil.Md5(url));
+ if (Constant.IS_OUTNET) {
+ if (!StringUtil.isNullOrEmpty(token)) {
+ // 鍙d护缂撳瓨10澶�
+ cacheCommonString(key, token, 60 * 60 * 24 * 10);
+ }
+ }
+ }
+
+ /**
+ * 鑾峰彇娣樼ぜ閲戝彛浠�
+ *
+ * @param url
+ * @return
+ */
+ public String getTLJToken(String url) {
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenTLJ, StringUtil.Md5(url));
+ if (Constant.IS_OUTNET) {
+ return getCommonString(key);
+ }
+ return null;
+ }
+
+ /**
+ * 淇濆瓨瀵硅薄
+ *
+ * @param T
+ * @param key
+ * @param seconds
+ */
+ public void saveObj(Object clazz, String key, Integer seconds) {
+ if (clazz == null)
+ return;
+ String value = new Gson().toJson(clazz);
+ if (seconds != null)
+ cacheCommonString(key, value, seconds);
+ else
+ cacheCommonString(key, value);
+ }
+
+ /**
+ * 淇濆瓨鍒楄〃
+ *
+ * @param clazzList
+ * @param key
+ * @param seconds
+ */
+ public <T> T saveObjList(List<T> clazzList, String key, Integer seconds) {
+ if (clazzList == null)
+ return null;
+ String value = new Gson().toJson(clazzList);
+ if (seconds != null)
+ cacheCommonString(key, value, seconds);
+ else
+ cacheCommonString(key, value);
+ return null;
+ }
+
+ /**
+ * 鑾峰彇瀵硅薄
+ *
+ * @param clazz
+ * @param key
+ * @return
+ */
+ public Class<?> getObj(Class<?> clazz, String key) {
+ String value = getCommonString(key);
+ return (Class<?>) new Gson().fromJson(value, clazz);
+ }
+
+ /**
+ * 鑾峰彇鍒楄〃
+ *
+ * @param clazz
+ * @param key
+ * @return
+ */
+ public <T> List<T> getObjList(Class<T> clazz, String key) {
+ String value = getCommonString(key);
+ return JsonUtil.jsonToList(value, clazz);
+ }
+
+ public JDGoods getJDGoods(long goodsId) {
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.jingDongGoods, goodsId +"");
+ String value = getCommonString(key);
+ if (StringUtil.isNullOrEmpty(value)) {
+ JDGoods jdGoods = JDApiUtil.queryGoodsDetail(goodsId);
+ if (jdGoods == null) {
+ jdGoods = JDApiUtil.getGoodsDetail(goodsId);
+ }
+
+ // 缂撳瓨20鍒嗛挓
+ if (jdGoods != null)
+ cacheCommonString(key, JsonUtil.getSimpleGson().toJson(jdGoods), 60 * 20);
+
+ return jdGoods;
+ } else {// 鐩存帴鍙栫紦瀛�
+ return JsonUtil.getSimpleGson().fromJson(value, JDGoods.class);
+ }
+ }
+
+ public PDDGoodsDetail getPDDGoodsDetail(long goodsId) {
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.pinDuoDuoGoods, goodsId +"");
+
+ String value = getCommonString(key);
+ if (StringUtil.isNullOrEmpty(value)) {
+ PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(goodsId);
+
+ // 缂撳瓨20鍒嗛挓
+ if (pddGoods != null)
+ cacheCommonString(key, JsonUtil.getSimpleGson().toJson(pddGoods), 60 * 20);
+
+ return pddGoods;
+ } else {// 鐩存帴鍙栫紦瀛�
+ return JsonUtil.getSimpleGson().fromJson(value, PDDGoodsDetail.class);
+ }
+ }
+
}
--
Gitblit v1.8.0