163 lines
4.9 KiB
Java
163 lines
4.9 KiB
Java
package com.yutou.qqbot;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.yutou.qqbot.utlis.Log;
|
|
import com.yutou.qqbot.utlis.RedisTools;
|
|
import redis.clients.jedis.Jedis;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
public class QQNumberManager {
|
|
private static QQNumberManager manager;
|
|
|
|
private QQNumberManager() {
|
|
|
|
}
|
|
|
|
public static QQNumberManager getManager() {
|
|
if (manager == null) {
|
|
manager = new QQNumberManager();
|
|
}
|
|
return manager;
|
|
}
|
|
|
|
public void addNumber(Long qq, boolean isGroup) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
return;
|
|
}
|
|
JSONObject json = new JSONObject();
|
|
json.put("group", isGroup);
|
|
json.put("power", new JSONArray());
|
|
json.put("model", new JSONArray());
|
|
RedisTools.set(qq, json.toJSONString());
|
|
}
|
|
|
|
public List<Long> getNumber() {
|
|
List<Long> list = new ArrayList<>();
|
|
Jedis jedis = RedisTools.getRedis();
|
|
jedis.select(RedisTools.QQBOT_USER);
|
|
Set<String> set = jedis.keys("*");
|
|
for (String s : set) {
|
|
try {
|
|
list.add(Long.parseLong(s));
|
|
} catch (Exception ignored) {
|
|
|
|
}
|
|
}
|
|
jedis.close();
|
|
return list;
|
|
}
|
|
|
|
public boolean addPower(Long qq, String power) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("power");
|
|
array.add(power);
|
|
json.put("power", array);
|
|
return RedisTools.set(qq, json.toJSONString());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public List<String> getPower(Long qq) {
|
|
List<String> list = new ArrayList<>();
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("power");
|
|
for (Object power : array) {
|
|
list.add((String) power);
|
|
}
|
|
return list;
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public List<String> getUseModel(long qq) {
|
|
List<String> list = new ArrayList<>();
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("model");
|
|
for (Object power : array) {
|
|
list.add((String) power);
|
|
}
|
|
return list;
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public boolean delPower(Long qq, String power) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("power");
|
|
array.remove(power);
|
|
json.put("power", array);
|
|
return RedisTools.set(qq, json.toJSONString());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean addUseModel(Long qq, Class<?> modelClass) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("model");
|
|
array.add(modelClass.getName());
|
|
json.put("model", array);
|
|
return RedisTools.set(qq, json.toJSONString());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean delUseModel(Long qq, Class<?> modelClass) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("model");
|
|
array.remove(modelClass.getName());
|
|
json.put("model", array);
|
|
return RedisTools.set(qq, json.toJSONString());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean isExistsPower(Long qq, String... power) {
|
|
//1
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("power");
|
|
for (String key : power) {
|
|
if (!array.contains(key)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean isGroup(Long qq) {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
return json.getBooleanValue("group");
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean isUseModel(Long qq, Class<?> modelClass) {
|
|
try {
|
|
if (RedisTools.exists(qq, null)) {
|
|
JSONObject json = JSON.parseObject(RedisTools.get(qq));
|
|
JSONArray array = json.getJSONArray("model");
|
|
return array.contains(modelClass.getName());
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
Log.i("isUseModel", qq + " " + modelClass.getName());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
} |