mirror of
https://github.com/ZSCNetSupportDept/WechatTicketSystem.git
synced 2025-11-01 10:56:17 +08:00
wechat query command
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package love.sola.netsupport.wechat.matcher;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import love.sola.netsupport.config.Settings;
|
||||
import me.chanjar.weixin.mp.api.WxMpMessageMatcher;
|
||||
import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* ***********************************************
|
||||
* Created by Sola on 2015/11/4.
|
||||
* Don't modify this source without my agreement
|
||||
* ***********************************************
|
||||
*/
|
||||
public class CheckSpamMatcher implements WxMpMessageMatcher {
|
||||
|
||||
private class ValueLoader extends CacheLoader<String, Long> {
|
||||
@Override
|
||||
public Long load(String key) throws Exception {
|
||||
return System.currentTimeMillis() + Settings.I.Check_Spam_Interval;
|
||||
}
|
||||
}
|
||||
|
||||
private LoadingCache<String, Long> cache = CacheBuilder.newBuilder()
|
||||
.concurrencyLevel(4)
|
||||
.weakKeys()
|
||||
.maximumSize(4096)
|
||||
.expireAfterWrite(Settings.I.Check_Spam_Cache_Expire_Time, TimeUnit.SECONDS)
|
||||
.build(new ValueLoader());
|
||||
|
||||
@Override
|
||||
public boolean match(WxMpXmlMessage wxMessage) {
|
||||
Long l = cache.getIfPresent(wxMessage.getFromUserName());
|
||||
if (l != null && l > System.currentTimeMillis()) {
|
||||
return true;
|
||||
}
|
||||
cache.refresh(wxMessage.getFromUserName());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,9 @@ import love.sola.netsupport.sql.TableUser;
|
||||
import me.chanjar.weixin.mp.api.WxMpMessageMatcher;
|
||||
import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* ***********************************************
|
||||
* Created by Sola on 2015/11/26.
|
||||
@@ -13,11 +16,18 @@ import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
|
||||
*/
|
||||
public class RegisterMatcher implements WxMpMessageMatcher {
|
||||
|
||||
public static Set<String> registered = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public boolean match(WxMpXmlMessage message) {
|
||||
String fromUser = message.getFromUserName();
|
||||
User u = TableUser.getUserByWechat(fromUser);
|
||||
return u == null;
|
||||
if (registered.contains(fromUser)) {
|
||||
return false;
|
||||
} else {
|
||||
User u = TableUser.getUserByWechat(fromUser);
|
||||
if (u != null) registered.add(u.getWechatId());
|
||||
return u == null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user