package com.yutou.qqbot; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.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 getNumber(){ List list =new ArrayList<>(); Jedis jedis=RedisTools.getRedis(); jedis.select(RedisTools.QQBOT_USER); Set set=jedis.keys("*"); for (String s : set) { list.add(Long.parseLong(s)); } jedis.close(); return list; } public boolean addPower(Long qq, String power){ if(RedisTools.exists(qq,null)){ JSONObject json=JSONObject.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 getPower(Long qq){ List list=new ArrayList<>(); if(RedisTools.exists(qq,null)){ JSONObject json=JSONObject.parseObject(RedisTools.get(qq)); JSONArray array=json.getJSONArray("power"); for (Object power : array) { list.add((String) power); } return list; } return list; } public List getUseModel(long qq) { List list=new ArrayList<>(); if(RedisTools.exists(qq,null)){ JSONObject json=JSONObject.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=JSONObject.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=JSONObject.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=JSONObject.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){ if(RedisTools.exists(qq,null)){ JSONObject json=JSONObject.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=JSONObject.parseObject(RedisTools.get(qq)); return json.getBoolean("group"); } return false; } public boolean isUseModel(Long qq,Class modelClass){ if(RedisTools.exists(qq,null)){ JSONObject json=JSONObject.parseObject(RedisTools.get(qq)); JSONArray array=json.getJSONArray("model"); return array.contains(modelClass.getName()); } return false; } }