using Api.Framework.Model; using Api.Framework.Utils; using CsharpHttpHelper; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Web; using Api.Framework.SDK; namespace Api.Framework.Tools { /// /// 云黑命大类 /// public class CloudBlack { /// /// 黑名单所属平台类型 /// public enum BlackType : int { wechat = 0 } public class BlackResult { public int Code { get; set; } public object Data { get; set; } } /// /// 查询用户是否黑名单 /// /// 用户对象 /// public fl_blackuser QueryBlack(fl_member_info member) { return QueryBlack(member.username, member.robot_type); } /// /// 判断用户是否为黑名单 /// /// 用户账号 /// public fl_blackuser QueryBlack(string username, ChatType robot_type) { if (string.IsNullOrWhiteSpace(username)) return null; try { var session = ApiClient.GetSession(); var black = session.FindSingle("select * from fl_blackuser where username = @username and usertype = @usertype", new { username = username, usertype = robot_type }); if (black != null && black.isdel == false && black.iscloud) return black; } catch (Exception ex) { LogHelper.GetSingleObj().Debug("检测云黑名单", $"{username} - {robot_type},{ex.Message} - {ex.StackTrace}"); } return null; } /// /// 删除用户黑名单 /// /// 用户对象 /// public ServiceResult RemoveBlack(fl_member_info member) { var res = YZCloudApiHelper.RemoveBlacklist(new List() { new RemoveBlacklistInput() { Username = member.username, Type = GetUserType(member.robot_type), UserToken = HttpUtility.UrlEncode(Grant.Framework.GrantClient.Get().accounts.username, Encoding.UTF8) } }); return res; } /// /// 插入黑名单 /// /// 用户对象 /// 备注 /// public ServiceResult InsertBlack(fl_member_info member, string remark) { var res = YZCloudApiHelper.AddUserBlacklist(new List() { new SetBlacklistInput() { AddDateTime = DateTime.Now, Avatar = member.headurl, Remark = remark, Type = GetUserType(member.robot_type), UserToken = HttpUtility.UrlEncode(Grant.Framework.GrantClient.Get().accounts.username, Encoding.UTF8), UserName = member.username, UserNick =member.usernick } }); if (!res.Ok) { //throw new Exception(res.Message); } return res; } private int GetUserType(ChatType userType) { switch (userType) { case ChatType.微信: return 0; case ChatType.企业微信: return 2; case ChatType.QQ: return 1; default: return 0; } } } }