old_flsystem/应用/UserFission/AdoptApplyFriendThread.cs

83 lines
3.5 KiB
C#

using Api.Framework;
using Api.Framework.SDK;
using Api.Framework.Utils;
using Chat.Framework;
using CsharpHttpHelper;
using System;
using System.Collections.Generic;
using System.Linq;
using UserFission.Entitys;
namespace UserFission
{
class AdoptApplyFriendThread : TimerTask
{
private string user_fission_cache = "user_fission_cache";
public override void Run(object state, bool timedOut)//DOTO 这里还有问题,以前留下来的请求token,再次请求会出现未将对象实例化的问题.我将其个这个请求给删除了
{
try
{
//var session = ApiClient.GetSession();
//var clients = Chat.Framework.ChatClient.WXClient.Values.Where(f=>f.Status == Chat.Framework.WXSdk.WxStatus.在线).ToList();
//var clients = Chat.Framework.ChatClient.WXClient.Values;//获取所有的机器人集合
//foreach (var item in friends)
//{
// var client = clients.FirstOrDefault(f => f.User != null && f.WeixinHao == item.robot_name && f.Status == Chat.Framework.WXSdk.WxStatus.在线 && f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信);//获取账号相符、在线类型为Grpc微信的微信,
// if (client != null)
// {
// var values = FindforbidApplyFriendInfos();//获取需要等待的人
// if (values.FirstOrDefault(f => f == client.WeixinHao) != null) return;//查看缓存中是否存在该机器人
// string result = client.AgreeAddMe(HttpHelper.URLDecode(item.token));
// if (string.IsNullOrEmpty(result))
// {
// item.state = "已接受";
// item.allow_time = DateTime.Now;
// session.Update(item);
// break;
// }
// else
// {
// item.state = "已接受";
// item.allow_time = DateTime.Now;
// session.Update(item);
// break;
// }
// //由于判断有问题,导致无限请求,暂时先给你注释掉
// //else if (result == "未将对象实例化")
// //{
// // session.Delete(item);
// //}
// //else if (result.Contains("操作过于频繁") || result.Contains("不满足指定条件"))//token 不满足指定条件
// //{
// // values.Add(client.WeixinHao);
// // ApiClient.Cache.Set(user_fission_cache, values, 60);
// //}
// }
//}
}
catch
{ }
}
/// <summary>
/// 获取缓存
/// </summary>
/// <returns></returns>
private List<string> FindforbidApplyFriendInfos()
{
var results = ApiClient.Cache.Get<List<string>>(user_fission_cache);//根据KEY、获得缓存
if (results == null)
{
results = new List<string>();
ApiClient.Cache.Set(user_fission_cache, results, 60);
}
return results;
}
}
}