2728 lines
121 KiB
C#
2728 lines
121 KiB
C#
using Api.Framework;
|
||
using Api.Framework.Cps;
|
||
using Api.Framework.Enums;
|
||
using Api.Framework.Events;
|
||
using Api.Framework.Model;
|
||
using Api.Framework.SDK;
|
||
using Api.Framework.Tools;
|
||
using Api.Framework.Utils;
|
||
using Chat.Framework;
|
||
using Chat.Framework.QQSdk;
|
||
using Chat.Framework.QQSdk.Events;
|
||
using Chat.Framework.WXSdk;
|
||
using Chat.Framework.WXSdk.Implement;
|
||
using CsharpHttpHelper;
|
||
using DevExpress.XtraBars;
|
||
using DevExpress.XtraEditors;
|
||
using DevExpress.XtraTab;
|
||
using FLSystem.Events;
|
||
using FLSystem.Properties;
|
||
using FLSystem.Win32Api;
|
||
using GeneralFramework;
|
||
using Grant.Framework;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using PCRobot.Pack;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Diagnostics;
|
||
using System.Drawing;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Reflection;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
using DevExpress.Data.Helpers;
|
||
using Microsoft.Win32;
|
||
using UI.Framework.Controls;
|
||
using UI.Framework.Forms;
|
||
using UI.Framework.Tools;
|
||
using static Api.Framework.Tools.TBHelper;
|
||
|
||
namespace FLSystem.Forms
|
||
{
|
||
public partial class main : BaseForm
|
||
{
|
||
public main()
|
||
{
|
||
InitializeComponent();
|
||
|
||
#region 锁屏
|
||
timeClear = new TimerClearEventHandler(Time_Clear);//如果操作了系统,则重新计时
|
||
mouseKeyHook.KeyDown += new KeyEventHandler(mouseKeyHook_KeyDown);
|
||
mouseKeyHook.KeyUp += new KeyEventHandler(mouseKeyHook_KeyUp);
|
||
mouseKeyHook.KeyPress += new KeyPressEventHandler(mouseKeyHook_KeyPress);
|
||
mouseKeyHook.OnMouseActivity += new MouseEventHandler(mouseKeyHook_OnMouseActivity);
|
||
mouseKeyHook.Start(true, true);
|
||
#endregion
|
||
}
|
||
|
||
#region 锁主程序
|
||
|
||
public delegate void TimerClearEventHandler();
|
||
public delegate void ShowTimeEventHandler();
|
||
|
||
private MouseKeyHook mouseKeyHook = new MouseKeyHook(true, true);
|
||
public bool lockState = false;
|
||
private bool timerEnable = false;
|
||
private TimerClearEventHandler timeClear;
|
||
|
||
private void Time_Clear()
|
||
{
|
||
if (timerEnable)
|
||
{
|
||
this.timer1.Stop();
|
||
this.timer1.Start();
|
||
}
|
||
}
|
||
|
||
void mouseKeyHook_OnMouseActivity(object sender, MouseEventArgs e) { this.Invoke(this.timeClear); }
|
||
|
||
void mouseKeyHook_KeyPress(object sender, KeyPressEventArgs e) { this.Invoke(this.timeClear); }
|
||
|
||
void mouseKeyHook_KeyUp(object sender, KeyEventArgs e) { this.Invoke(this.timeClear); }
|
||
|
||
void mouseKeyHook_KeyDown(object sender, KeyEventArgs e) { this.Invoke(this.timeClear); }
|
||
|
||
#endregion
|
||
|
||
|
||
KeyboardHook kh;
|
||
|
||
/// <summary>
|
||
/// 同步黑名单
|
||
/// </summary>
|
||
private System.Timers.Timer timerBlackUser = null;
|
||
|
||
public void main_Load(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//var ss = ApiClient.ShortURL("https://detail.tmall.com/item.htm?spm=a230r.1.14.16.11f547a36SIAOY&id=526234772827&ns=1&abbucket=1", DwzType.官方短网址).Result;
|
||
|
||
DevExpress.UserSkins.BonusSkins.Register();
|
||
|
||
DevExpress.Skins.SkinManager.EnableFormSkins();
|
||
|
||
DevExpress.Utils.WXPaint.WXPPainter.Default.ThemeChanged += Default_ThemeChanged;
|
||
|
||
|
||
GrantClient.Get().LodingAbout(1003, Program.ReadICO());
|
||
if (!ApiClient.SelectDbbase()) Program.Exit();
|
||
var skin = Util.AppConfig_GetValue("SkinName");
|
||
//DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(skin == "Basic" ? "The Bezier" : skin);
|
||
|
||
if (!Util.AppConfig_ExistItem("ShowTgwz"))
|
||
Util.AppConfig_AddItem("ShowTgwz", "0");
|
||
Util.AppConfig_ModifyItem("ShowTgwz", "1");
|
||
|
||
if (!Util.AppConfig_ExistItem("StartDy"))
|
||
Util.AppConfig_AddItem("StartDy", "0");
|
||
Util.AppConfig_ModifyItem("StartDy", "1");
|
||
|
||
if (!Util.AppConfig_ExistItem("BlackUserTime"))
|
||
Util.AppConfig_AddItem("BlackUserTime", " ");
|
||
|
||
#region 菜单导航栏
|
||
if (!Util.AppConfig_ExistItem("Nav"))
|
||
Util.AppConfig_AddItem("Nav", "");
|
||
var navConfig = Util.AppConfig_GetValue("Nav");
|
||
if (!string.IsNullOrWhiteSpace(navConfig))
|
||
{
|
||
try
|
||
{
|
||
var jsonData = PackTool.DecompressString(navConfig);
|
||
var treeList = JsonConvert.DeserializeObject<List<NavTree>>(jsonData);
|
||
var indexList = treeList.GroupBy(f => f.index).Select(f => f.Key).ToList();
|
||
for (int i = 0; i < indexList.Count; i++)
|
||
{
|
||
var tree = treeList.FirstOrDefault(f => f.ceng == 1 && f.index == i);
|
||
if (tree != null)
|
||
{
|
||
if (i == 0)
|
||
{
|
||
if (!tree.check)
|
||
ribbonPage1.Visible = false;
|
||
else
|
||
SetShow(treeList, i);
|
||
}
|
||
else if (i == 1)
|
||
{
|
||
if (!tree.check)
|
||
ribbonPage2.Visible = false;
|
||
else
|
||
SetShow(treeList, i);
|
||
}
|
||
else if (i == 2)
|
||
{
|
||
if (!tree.check)
|
||
ribbonPage3.Visible = false;
|
||
else
|
||
SetShow(treeList, i);
|
||
}
|
||
else if (i == 3)
|
||
{
|
||
if (!tree.check)
|
||
ribbonPage4.Visible = false;
|
||
else
|
||
SetShow(treeList, i);
|
||
}
|
||
else if (i == 4)
|
||
{
|
||
var t2List = treeList.Where(f => f.ceng == 2 && f.index == i && f.check).Select(f => f.name).ToList();
|
||
ApiClient.ShowPluginList = t2List;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
#endregion
|
||
|
||
//if (!Util.AppConfig_ExistItem("WphNav"))
|
||
// Util.AppConfig_AddItem("WphNav", "0");
|
||
|
||
this.Text = GrantClient.Get().About["title"].ToString();
|
||
|
||
this.notify_pallet.Text = this.Text;
|
||
Loding.ShowWaitForm();
|
||
var result = ApiClient.Initialization();
|
||
//ChatMemberHandleEvent.FindChatObject += ChatMemberHandleEvent_FindChatObject;
|
||
//ChatMemberHandleEvent.UpdateChatFriends += ChatMemberHandleEvent_UpdateChatFriends;
|
||
//ChatMemberHandleEvent.UpdateChatGroupMembers += ChatMemberHandleEvent_UpdateChatGroupMembers;
|
||
if (!result) Program.Exit();
|
||
|
||
AlimamaApi.Init();
|
||
|
||
Loding.CloseWaitForm();
|
||
|
||
//btn_home_manage.Visibility = BarItemVisibility.Never;
|
||
|
||
ItemClick(btn_home_manage, null);//显示首页
|
||
|
||
ItemClick(btn_log_manage, null);//显示日志
|
||
|
||
try
|
||
{
|
||
ApiClient.SocketInitialization();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowErrorAutoClose(ex, 10000);
|
||
}
|
||
|
||
//TODO 禁用抖音禁用
|
||
var StartDy = Util.AppConfig_GetValue("StartDy");
|
||
if (StartDy == "1")
|
||
{
|
||
barButtonItem_douyin.Enabled = barButtonItem99.Enabled = barButtonItem100.Enabled = true;
|
||
ItemClick(barButtonItem_douyin, null);
|
||
}
|
||
var session = ApiClient.GetSession();
|
||
|
||
Thread.Sleep(200);
|
||
|
||
this.Icon = Program.ReadICO();
|
||
this.notify_pallet.Icon = this.Icon;
|
||
EventClient.MethodEvent += EventClient_MethodEvent;
|
||
MainEvent.CommonEvents += Main_CommonEvents;
|
||
this.Disposed += Control_Disposed;
|
||
ReadNote(false);
|
||
barStaticItem12.Caption = "专业版V" + ApiClient.CurVersion;
|
||
this.xtraTabControl1.SelectedTabPageIndex = 0;
|
||
RefreshAccount();
|
||
ChatClient.MessFrequentSleepTime = ApiClient.Setting.SystemConfig.mess_frequent_sleep_time;
|
||
|
||
//ChatClient.QQPool.LoginChangeEvent += QQPool_LoginChangeEvent;
|
||
ChatClient.Events.WXRefreshUserEvent += Events_WXRefreshUserEvent;
|
||
ChatClient.Events.WXChangeStatusEvent += Events_WXChangeStatusEvent;
|
||
|
||
ChatClient.QQEvents.QQRefreshUserEvent += Events_QQRefreshUserEvent;
|
||
ChatClient.QQEvents.LoginChangeEvent += QQEvents_LoginChangeEvent;
|
||
|
||
EventClient.SharedEvent += EventClient_SharedEvent;
|
||
|
||
UpdTime();
|
||
|
||
//new Utils();
|
||
|
||
EventClient.OnEvent(this, MethodType.刷新配置文件);
|
||
|
||
#region 精简消息
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
|
||
this.barButtonItem9.ImageOptions.Image = (System.Drawing.Image)(resources.GetObject("barButtonItem10.ImageOptions.Image"));
|
||
this.barButtonItem9.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.停止__4_;
|
||
|
||
this.barButtonItem9.Caption = "停止接收";
|
||
|
||
if (ApiClient.Setting.SystemConfig.message_warning_switch)
|
||
{
|
||
this.barButtonItem93.Caption = "关闭【双12】模式";
|
||
this.barButtonItem93.ImageOptions.Image = (System.Drawing.Image)(resources.GetObject("barButtonItem93.ImageOptions.Image"));
|
||
this.barButtonItem93.ImageOptions.LargeImage = (System.Drawing.Image)(resources.GetObject("barButtonItem93.ImageOptions.LargeImage"));
|
||
}
|
||
else
|
||
{
|
||
this.barButtonItem93.Caption = "开启【双12】模式";
|
||
this.barButtonItem93.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barButtonItem94.ImageOptions.Image")));
|
||
this.barButtonItem93.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barButtonItem94.ImageOptions.LargeImage")));
|
||
}
|
||
#endregion
|
||
|
||
#region ipad协议出现remark为PCWechat Hook的情况,导致无法手动自动登陆(修改为空值)
|
||
var _robots = session.FindRobots().Where(f => f.type == ChatType.微信 && f.remark == "PCWechat HOOK" && f.token.StartsWith(@"{""data"":"));
|
||
foreach (var item in _robots)
|
||
{
|
||
item.remark = string.Empty;
|
||
session.SaveOrUpdate(item);
|
||
}
|
||
#endregion
|
||
|
||
var WxRobots = session.FindRobots(true).Where(f => f.is_login && f.type == ChatType.微信 && f.remark != "PCWechat HOOK").ToList();
|
||
|
||
TaskTool tasks = new TaskTool();
|
||
if (WxRobots.Count != 0)
|
||
{
|
||
if (BaseForm.ShowSuccessAutoClose(@"对不起,由于近期个别微信有出现封号!
|
||
为了您的账号安全,暂时不提供协议登陆!
|
||
请下载【易转发-微信官方客户端】登陆,保障您的账号安全!
|
||
-------------
|
||
下载地址已复制到剪切板,请粘贴到浏览器下载
|
||
-------------
|
||
注意:如果您执意要通过协议登陆,请点击确定!!!", new DialogResult[] { DialogResult.OK, DialogResult.Cancel }, 0) == DialogResult.OK)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(ApiClient.Setting.SystemConfig.pay_wechat_hostSign))
|
||
{
|
||
BaseForm.ShowSuccessAutoClose($@"温馨提示:微信协议用户,如遇微信红包支付异常,请联系客服使用商户支付", 10 * 1000, "友情提示");
|
||
}
|
||
|
||
foreach (var item in WxRobots)
|
||
{
|
||
var _item = item;
|
||
tasks.AddTask(delegate ()
|
||
{
|
||
try
|
||
{
|
||
EventClient.OnEvent(this, $"正在自动微信->{_item.nick}({item.name})...");
|
||
var flag = ChatClient.LoginWeixin(_item.name, _item.token);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EventClient.OnEvent(this, $"登录微信->{_item.nick}({item.name})异常:{ex.Message}");
|
||
}
|
||
});
|
||
}
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(Resources.易转发下载地址 + "?=" + new Random().Next(100, 2000));
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
}
|
||
|
||
var QQRobots = session.FindRobots(true).Where(f => f.is_login && f.type == ChatType.QQ).ToList();
|
||
if (QQRobots != null && QQRobots.Count != 0)
|
||
{
|
||
foreach (var item in QQRobots)
|
||
{
|
||
var QQRobot = item;
|
||
tasks.AddTask(delegate ()
|
||
{
|
||
try
|
||
{
|
||
EventClient.OnEvent(this, $"正在自动QQ->{QQRobot.nick}({QQRobot.name})...");
|
||
if (!string.IsNullOrWhiteSpace(QQRobot.token))
|
||
{
|
||
var dic = HttpExtend.JsonToDictionary(Encoding.UTF8.GetString(HttpExtend.HexToByte(QQRobot.token)));
|
||
if (dic != null)
|
||
{
|
||
if (dic.ContainsKey("QQ"))
|
||
{
|
||
var QQ = dic["QQ"]?.ToString();
|
||
if (!string.IsNullOrWhiteSpace(QQ) && dic.ContainsKey("Password"))
|
||
{
|
||
var Password = dic["Password"]?.ToString();
|
||
var qq = uint.Parse(QQ);
|
||
if (ChatClient.QQClients.ContainsKey(QQ))
|
||
{
|
||
var qBase = ChatClient.QQClients[QQ];
|
||
qBase.Login();
|
||
}
|
||
else
|
||
{
|
||
//QQ自动登录
|
||
var IsEQQ = false;
|
||
if (!string.IsNullOrWhiteSpace(Password) && dic.ContainsKey("IsEQQ"))
|
||
IsEQQ = (dic["IsEQQ"].ToString().ToLower() == "true");
|
||
var qqClient = ChatClient.LoginQQ(QQ, Password);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EventClient.OnEvent(this, $"登录QQ->{QQRobot.nick}({QQRobot.name})异常:{ex.Message},{ex.StackTrace}");
|
||
}
|
||
});
|
||
|
||
Thread.Sleep(500);
|
||
}
|
||
}
|
||
|
||
tasks.Start(30, AsyncCallbackMethod);
|
||
|
||
EventClient.OnEvent(this, MethodType.刷新机器人);
|
||
ChatClient.WXSdkConfig.IsDebug = false;
|
||
ChatClient.WXSdkConfig.MsgConvertToFriend = ApiClient.Setting.SystemConfig.msg_wx_convertswich == SwitchType.开启 ? true : false;
|
||
|
||
isLodingOk = true;
|
||
|
||
kh = new KeyboardHook();
|
||
kh.SetHook();
|
||
kh.OnKeyDownEvent += kh_OnKeyDownEvent;
|
||
|
||
System.Timers.Timer timerLok = new System.Timers.Timer();
|
||
timerLok.Elapsed += timer_lockForm_Tick;
|
||
timerLok.Interval = 5 * 60000;//测试1分钟锁屏
|
||
timerLok.Start();
|
||
|
||
#region 激活抖音xxx
|
||
//TODO 禁用抖音禁用
|
||
//if (StartDy == "1")
|
||
//{
|
||
// TaskTool tasks_douyin = new TaskTool();
|
||
// var douyinMember = CpsClient.Members.Where(f => f.cpstype == CpsType.抖音联盟 /*&& f.is_download == SwitchType.开启*/).ToList();
|
||
// if (douyinMember != null && douyinMember.Count != 0)
|
||
// {
|
||
//抖音单登版本EO
|
||
//if (douyinMember.Count > 1)
|
||
//{
|
||
// for (int i = 1; i < douyinMember.Count; i++)
|
||
// {
|
||
// session.Delete(douyinMember[i]);
|
||
// CpsClient.Members.Remove(douyinMember[i]);
|
||
// }
|
||
//}
|
||
|
||
//抖音多版本EO
|
||
//foreach (var item in douyinMember)
|
||
//{
|
||
// var _item = item;
|
||
// try
|
||
// {
|
||
// _item.is_valid = true;
|
||
// _item.online = false;
|
||
// EventClient.OnEvent(this, $"激活抖音->{_item.usernick}({item.username})...");
|
||
// var api = CpsClient.CreateDouyinRequest(_item);
|
||
// var form = new douyin_form_login1();
|
||
// DouyinApi.douyinApiAction?.Invoke(api);
|
||
// form.Show();
|
||
// //抖音隐藏
|
||
// if (ApiClient.Setting.SystemConfig.hidedy && !string.IsNullOrWhiteSpace(api.Member.username))
|
||
// form.Hide();
|
||
// }
|
||
// catch (Exception ex)
|
||
// {
|
||
// EventClient.OnEvent(this, $"激活抖音->{_item.usernick}({item.username})异常:{ex.Message}");
|
||
// }
|
||
// Thread.Sleep(500);
|
||
//}
|
||
// }
|
||
//}
|
||
#endregion
|
||
|
||
#region 唯品会
|
||
//var wphCount = CpsClient.Members.Count(f => f.cpstype == CpsType.唯品联盟);
|
||
|
||
//var robots = session.FindRobots();
|
||
////if (wphCount == 0 && (WphNav == null || WphNav == "0"))
|
||
//if (wphCount == 0 && robots != null && robots.Count != 0)
|
||
//{
|
||
// if (!Util.AppConfig_ExistItem("ShowWphAd"))
|
||
// Util.AppConfig_AddItem("ShowWphAd", "1");
|
||
// var ShowWphAd = Util.AppConfig_GetValue("ShowWphAd");
|
||
// if (ShowWphAd == "1")
|
||
// {
|
||
// Thread th = new Thread(delegate ()
|
||
// {
|
||
// Thread.Sleep(5000);
|
||
// try
|
||
// {
|
||
// var Rst = MessageBox.Show("请尽快设置唯品会联盟,目前唯品会高消费年轻人群剧增,是否立即设置?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||
// if (Rst != DialogResult.Yes)
|
||
// {
|
||
// Rst = MessageBox.Show("唯品会设置只需要1分钟,您确定要放弃吗?(≈1个亿)", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||
// if (Rst == DialogResult.Yes)
|
||
// {
|
||
// Util.AppConfig_ModifyItem("ShowWphAd", "0");
|
||
// return;
|
||
// }
|
||
// }
|
||
|
||
// Rst = MessageBox.Show("您是否已经有唯品会账号,点击Yes登录唯品会,点击No注册唯品会", "询问", MessageBoxButtons.YesNo);
|
||
// if (Rst == DialogResult.No)
|
||
// {
|
||
// var form = new WphRegisterForm();
|
||
// form.ShowDialog();
|
||
// }
|
||
|
||
// //登录唯品会
|
||
// var cps_member = LoginCps(CpsType.唯品联盟);
|
||
// if (cps_member == null)
|
||
// //throw new Exception("唯品会cps对象为空,可能登录异常");
|
||
// return;
|
||
|
||
// //打开唯品会插件
|
||
// if (PluginClient.Plugins != null)
|
||
// {
|
||
// var plugin = PluginClient.Plugins.FirstOrDefault(f => f.Name == "唯品会返利");
|
||
// if (plugin != null)
|
||
// {
|
||
// PluginClient.UnInstall(plugin);
|
||
// Thread.Sleep(200);
|
||
// PluginClient.Install(plugin);
|
||
// }
|
||
// }
|
||
// //创建推广位,判断是否有推广位,没有推广位创建一个推广位,有推广位,给没有设置推广位的机器人设置推广位
|
||
// #region 获取唯品会推广位
|
||
// var api = CpsClient.CreateWeipinhuiRequest(cps_member);
|
||
// var pidResult = WeipinhuiApi.GetWphTgw(api);
|
||
|
||
// if (result != null)
|
||
// {
|
||
// //推广位为空,创建推广位
|
||
// if (pidResult.total == 0)
|
||
// WeipinhuiApi.CreateWphTgw(api);
|
||
|
||
// pidResult = WeipinhuiApi.GetWphTgw(api);
|
||
|
||
// if (pidResult != null && pidResult.pidInfoList != null && pidResult.total != 0)
|
||
// {
|
||
// var tmp = pidResult.pidInfoList[0];
|
||
// if (tmp != null)
|
||
// {
|
||
// var tgw = new Tuiguangwei()
|
||
// {
|
||
// Member = cps_member,
|
||
// Name = tmp.pidName,
|
||
// Pid = tmp.pid
|
||
// };
|
||
|
||
// // 设置推广位
|
||
// var robotList = session.FindRobots();
|
||
// foreach (var robot in robotList)
|
||
// {
|
||
// setWphTgw((int)robot.id, tgw);
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// #endregion
|
||
// }
|
||
// catch (Exception ex)
|
||
// {
|
||
// EventClient.OnEvent("引导设置唯品会异常", $"{ex.Message} - {ex.StackTrace}");
|
||
// }
|
||
// finally
|
||
// {
|
||
// ////监听刷新
|
||
// //PluginClient.LodingPlugin();
|
||
// }
|
||
|
||
// //1.搞个唯品会注册页
|
||
// //2.打开联盟登录页,自动登录后关闭窗口即可
|
||
// //3.自动启用唯品会插件,并设置好推广位
|
||
|
||
// //var form = new WPHNavForm();
|
||
// //if (form.ShowDialog() == DialogResult.OK)
|
||
// //{
|
||
// // //下次检测到唯品会未登录是否提示
|
||
// // Util.AppConfig_ModifyItem("WphNav", form.isIgnore ? "1" : "0");
|
||
// //}
|
||
// });
|
||
|
||
// th.ApartmentState = ApartmentState.STA; //属性设置成单线程
|
||
// th.IsBackground = true;
|
||
// th.Start();
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// if (!Util.AppConfig_ExistItem("ShowWphAd"))
|
||
// Util.AppConfig_AddItem("ShowWphAd", "0");
|
||
// else
|
||
// Util.AppConfig_ModifyItem("ShowWphAd", "0");
|
||
//}
|
||
#endregion 唯品会
|
||
|
||
//#region MyRegion
|
||
//var ss = Util.Read<Dictionary<string, object>>("插件-积分管理-配置");
|
||
//var ssss = Newtonsoft.Json.JsonConvert.SerializeObject(ss);
|
||
//var fff = ssss.Contains("ExchangeCommercialPayTip_MiniApp");
|
||
|
||
//#endregion
|
||
|
||
System.Timers.Timer timer = new System.Timers.Timer();
|
||
timer.Elapsed += Timer_Elapsed;
|
||
timer.Interval = 60 * 60 * 1000;
|
||
//timer.Interval = 1000 * 10;
|
||
timer.Start();
|
||
|
||
//下载黑名单
|
||
timerBlackUser = new System.Timers.Timer(1000);
|
||
timerBlackUser.Elapsed += Timer_ElapsedBlackUser;
|
||
timer.Interval = 1000;
|
||
timerBlackUser.Start();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
try { Loding.CloseWaitForm(); } catch (Exception) { }
|
||
if (ex.Message.Contains("连接数据库过程中发生错误"))
|
||
ShowError(@"连接数据库过程中发生错误
|
||
检查服务器是否正常连接字符串是否正确");
|
||
else
|
||
ShowError(ex.Message + "\r\n" + ex.StackTrace);
|
||
Program.Exit();
|
||
}
|
||
finally
|
||
{
|
||
ItemClick(barButtonItem6, null);
|
||
//监听刷新
|
||
//PluginClient.LodingPlugin();
|
||
this.WindowState = FormWindowState.Normal;
|
||
|
||
|
||
Task.Run(() =>
|
||
{
|
||
Thread.Sleep(1000 * 60);
|
||
CheckSystemEventsHandlersForFreeze();
|
||
});
|
||
}
|
||
}
|
||
|
||
|
||
|
||
private static void CheckSystemEventsHandlersForFreeze()
|
||
{
|
||
try
|
||
{
|
||
var handlers = typeof(SystemEvents).GetField("_handlers", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null);
|
||
var handlersValues = handlers.GetType().GetProperty("Values").GetValue(handlers);
|
||
foreach (var invokeInfos in (handlersValues as IEnumerable).OfType<object>().ToArray())
|
||
foreach (var invokeInfo in (invokeInfos as IEnumerable).OfType<object>().ToArray())
|
||
{
|
||
try
|
||
{
|
||
var syncContext = invokeInfo.GetType().GetField("_syncContext", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(invokeInfo);
|
||
if (syncContext == null) throw new Exception("syncContext missing");
|
||
if (!(syncContext is WindowsFormsSynchronizationContext)) continue;
|
||
var threadRef = (WeakReference)syncContext.GetType().GetField("destinationThreadRef", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(syncContext);
|
||
if (!threadRef.IsAlive) continue;
|
||
var thread = (Thread)threadRef.Target;
|
||
if (thread.ManagedThreadId == 1) continue; // Change here if you have more valid UI threads to ignore
|
||
var dlg = (Delegate)invokeInfo.GetType().GetField("_delegate", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(invokeInfo);
|
||
|
||
SetLog($"SystemEvents handler '{dlg.Method.DeclaringType}.{dlg.Method.Name}' could freeze app due to wrong thread: "
|
||
+ $"{thread.ManagedThreadId},{thread.IsThreadPoolThread},{thread.IsAlive},{thread.Name}");
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
SetLog(e.ToString() + "线程BB");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
SetLog(e.ToString() + "线程AA");
|
||
}
|
||
}
|
||
|
||
private static void SetLog(string log)
|
||
{
|
||
var filename = HttpExtend.MapFile($"{DateTime.Now.ToString("yyyy-MM-dd HH")}.log", "Cache\\Ka");
|
||
#region 原始写法
|
||
//创建或打开日志文件,向日志文件末尾追加记录
|
||
//StreamWriter mySw = File.AppendText(filename);
|
||
|
||
//向日志文件写入内容
|
||
//string writeContent = time + "|" + typeGrade + ":" + type + "|" + className + ":" + content;
|
||
//mySw.WriteLine(writeContent);
|
||
|
||
//关闭日志文件
|
||
//mySw.Close();
|
||
#endregion
|
||
|
||
//(优化写法)创建或打开日志文件,向日志文件末尾追加记录,关闭日志文件
|
||
using (StreamWriter mySw = File.AppendText(filename))
|
||
{
|
||
string writeContent = $@"{DateTime.Now.ToString("HH:mm:ss")} => {log}
|
||
";
|
||
mySw.WriteLine(writeContent);//向日志文件写入内容
|
||
mySw.Close(); //关闭日志文件
|
||
}
|
||
}
|
||
|
||
|
||
private void Default_ThemeChanged(object sender, EventArgs e)
|
||
{
|
||
//EventClient.OnEvent("", $"{JsonConvert.SerializeObject(sender)} - {JsonConvert.SerializeObject(e)}");
|
||
}
|
||
|
||
private void EventClient_SharedEvent(object sender, SharedEvents e)
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
try
|
||
{
|
||
//shared["msg_type"] = "抖音验证码";
|
||
//shared["cps_type"] = CpsType.抖音联盟;
|
||
//shared["msg_username"] = api.Member.username;
|
||
|
||
if (!e.Shareds.ContainsKey("msg_type") && e.Shareds["msg_type"]?.ToString() == "抖音验证码")
|
||
return;
|
||
|
||
|
||
|
||
var cps = HttpExtend.ConvertEnum<CpsType>(e.Shareds["cps_type"].ToString());
|
||
var username = e.Shareds["msg_username"].ToString();
|
||
var usernick = e.Shareds["msg_usernick"].ToString();
|
||
|
||
ApiClient.SendNoticeMessage($@"【抖音重要通知】
|
||
|
||
账号:{usernick}({username})
|
||
通知:请滑动验证码,否则部分订单无法同步!");
|
||
|
||
var verify = new douyin_verify(username);
|
||
verify.ShowDialog();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EventClient.OnEvent("", $"异常:{ex.Message}");
|
||
}
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置唯品会推广位
|
||
/// </summary>
|
||
/// <param name="robotid"></param>
|
||
/// <param name="tgw"></param>
|
||
private void setWphTgw(int robotid, Tuiguangwei tgw)
|
||
{
|
||
try
|
||
{
|
||
var session = ApiClient.GetSession();
|
||
var adzones = session.FindAdzoneInfos(true).Where(f => f.alliance_id == (int)CpsType.唯品联盟 && f.custom_type == Resources.SoftwareType && f.robot_id == robotid).ToList();
|
||
//var pidName = e.Column.FieldName == "pid_chief_name" ? "chief" : "deputy";
|
||
//var adzone = adzones.FirstOrDefault(f => f.extend == pidName);
|
||
|
||
#region 这里判断存在两个推广位(主/副),不存在的(主副数据将创建对象)
|
||
if (adzones != null && adzones.Count < 2)
|
||
{
|
||
var pidNames = new string[] { "chief", "deputy" };
|
||
for (int i = 0; i < pidNames.Length; i++)
|
||
{
|
||
#region 有出现两个重复无法修复的情况,删除一个
|
||
var repetAdzone = adzones.Where(f => f.extend == pidNames[i]).ToList();
|
||
if (repetAdzone.Count > 1)
|
||
{
|
||
for (int z = 1; z <= repetAdzone.Count - 1; z++)
|
||
{
|
||
session.Deleteable(repetAdzone[z]).ExecuteCommand();
|
||
}
|
||
adzones = session.FindAdzoneInfos(true).Where(f => f.alliance_id == (int)CpsType.唯品联盟 && f.custom_type == Resources.SoftwareType && f.robot_id == robotid).ToList();
|
||
}
|
||
#endregion
|
||
|
||
var adzone = adzones.FirstOrDefault(f => f.extend == pidNames[i]);
|
||
if (adzone == null)
|
||
{
|
||
adzones = new List<fl_adzone_info>();
|
||
foreach (var item in pidNames)
|
||
{
|
||
var adzoneInfo = CreateAdzoneInfo(tgw.Name, tgw.Pid, tgw.Member.username, robotid, item);
|
||
session.SaveOrUpdate(adzoneInfo);
|
||
adzones.Add(adzoneInfo);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
session.FindAdzoneInfos(true);
|
||
session.FindWeipinhuiAutoBindPid(true);//刷新推广位
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
/// <summary>
|
||
/// 创建fl_adzone_info对象
|
||
/// </summary>
|
||
/// <param name="adzone_name"></param>
|
||
/// <param name="adzone_pid"></param>
|
||
/// <param name="adzone_pid_cps_name"></param>
|
||
/// <param name="rid"></param>
|
||
/// <param name="item"></param>
|
||
/// <returns></returns>
|
||
private fl_adzone_info CreateAdzoneInfo(string adzone_name, string adzone_pid, string adzone_pid_cps_name, int rid, string item, bool onoff = false)
|
||
{
|
||
return new fl_adzone_info()
|
||
{
|
||
custom_type = Resources.WPHSoftwareType, //自定义类型
|
||
adzone_name = adzone_name, //推广位名称
|
||
adzone_pid = adzone_pid, //推广位pid
|
||
adzone_pid_cps_name = adzone_pid_cps_name, //推广位cps名称
|
||
alliance_id = (int)CpsType.唯品联盟, //联盟id
|
||
robot_id = rid, //机器人id
|
||
group_id = string.Empty, //群id
|
||
member_id = 0, //私人id
|
||
is_download = false, //不下载
|
||
onoff = onoff, //不禁用
|
||
extend = item
|
||
};
|
||
}
|
||
|
||
void timer_lockForm_Tick(object sender, EventArgs e)
|
||
{
|
||
if (ApiClient.Setting.SystemConfig.is_lock_main == SwitchType.开启)
|
||
{
|
||
if (!lockState)
|
||
{
|
||
lockState = true;
|
||
this.Hide();
|
||
LockForm form = new LockForm(this.Size);
|
||
form.ShowDialog();
|
||
this.Show();
|
||
lockState = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void kh_OnKeyDownEvent(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.KeyData == (Keys.S | Keys.Alt)) { this.Show(); }//Alt+S显示窗口
|
||
if (e.KeyData == (Keys.H | Keys.Alt)) { this.Hide(); }//Alt+H隐藏窗口
|
||
}
|
||
|
||
private void Control_Disposed(object sender, EventArgs e)
|
||
{
|
||
MainEvent.CommonEvents -= Main_CommonEvents;
|
||
}
|
||
|
||
private void Main_CommonEvents(object sender, CommonEvents e)
|
||
{
|
||
try
|
||
{
|
||
if (e.Commons == null) return;
|
||
if (e.Commons.ContainsKey("cps_type") && e.Commons.ContainsKey("username"))
|
||
{
|
||
var cps = (CpsType)int.Parse(e.Commons["cps_type"].ToString());
|
||
var username = e.Commons["username"].ToString();
|
||
var buttonItem = new BarButtonItem();
|
||
|
||
switch (cps)
|
||
{
|
||
case CpsType.阿里妈妈:
|
||
buttonItem.Caption = "阿里妈妈订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.淘宝_20;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.淘宝__2_;
|
||
break;
|
||
case CpsType.多多进宝:
|
||
buttonItem.Caption = "拼多多订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.拼多多_20;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.拼多多__4_;
|
||
break;
|
||
case CpsType.京东联盟:
|
||
buttonItem.Caption = "京东订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.京东_20;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.京东_20;
|
||
break;
|
||
case CpsType.唯品联盟:
|
||
buttonItem.Caption = "唯品会订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.唯品会12;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.唯品会12;
|
||
break;
|
||
case CpsType.抖音联盟:
|
||
buttonItem.Caption = "抖音订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.抖音;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.抖音;
|
||
break;
|
||
case CpsType.苏宁易购:
|
||
buttonItem.Caption = "苏宁易购订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.苏宁小;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.苏宁小;
|
||
break;
|
||
case CpsType.快手联盟:
|
||
buttonItem.Caption = "快手订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.小快手;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.小快手;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
buttonItem.Tag = new { username = username };
|
||
ItemClick(buttonItem, null);
|
||
}
|
||
else if (e.Commons.ContainsKey("control_name") && e.Commons.ContainsKey("username"))
|
||
{
|
||
var control_name = e.Commons["control_name"].ToString();
|
||
var username = e.Commons["username"].ToString();
|
||
if (control_name == "查看用户信息")
|
||
{
|
||
var buttonItem = new BarButtonItem();
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
buttonItem.Caption = "用户管理";
|
||
buttonItem.ImageOptions.Image = ((Image)(resources.GetObject("barButtonItem43.ImageOptions.Image")));
|
||
buttonItem.ImageOptions.LargeImage = ((Image)(resources.GetObject("barButtonItem43.ImageOptions.LargeImage")));
|
||
buttonItem.Tag = new { username = username };
|
||
ItemClick(buttonItem, null);
|
||
}
|
||
else if (control_name == "提现管理")
|
||
{
|
||
var buttonItem = new BarButtonItem();
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
buttonItem.Caption = "提现管理";
|
||
buttonItem.ImageOptions.Image = ((Image)(resources.GetObject("barButtonItem76.ImageOptions.Image")));
|
||
buttonItem.ImageOptions.LargeImage = ((Image)(resources.GetObject("barButtonItem76.ImageOptions.LargeImage")));
|
||
buttonItem.Tag = new { username = username, query_type = e.Commons["query_type"].ToString() };
|
||
ItemClick(buttonItem, null);
|
||
}
|
||
}
|
||
else if (e.Commons.ContainsKey("type") && e.Commons.ContainsKey("trade_parent_id"))
|
||
{
|
||
var type = e.Commons["type"].ToString();
|
||
if (type == "阿里妈妈维权订单")
|
||
{
|
||
var trade_parent_id = e.Commons["trade_parent_id"].ToString();
|
||
var buttonItem = new BarButtonItem();
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
buttonItem.Caption = "阿里妈妈维权订单管理";
|
||
buttonItem.ImageOptions.Image = global::FLSystem.Properties.Resources.淘宝_20;
|
||
buttonItem.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.淘宝__2_;
|
||
buttonItem.Tag = new { username = trade_parent_id };
|
||
ItemClick(buttonItem, null);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 刷新用户信息
|
||
/// </summary>
|
||
/// <param name="client"></param>
|
||
private void Events_QQRefreshUserEvent(QQBase client)
|
||
{
|
||
try
|
||
{
|
||
lock (lock_obj)
|
||
{
|
||
var robot = client;
|
||
var session = ApiClient.GetSession();
|
||
var user = session.FindRobotInfo(client.QQ.ToString(), ChatType.QQ, true);
|
||
if (user == null)
|
||
{
|
||
user = new fl_robot_info()
|
||
{
|
||
name = client.QQ.ToString(),
|
||
type = ChatType.QQ
|
||
};
|
||
}
|
||
user.uin = client.QQ.ToString();
|
||
user.is_login = client.IsLogin;
|
||
user.nick = client.Nickname;
|
||
var token = client.ToString();
|
||
if (!string.IsNullOrWhiteSpace(token))
|
||
user.token = token;
|
||
if (user.is_login)
|
||
{
|
||
var custm = Grant.Framework.GrantClient.Get().FindCostomer(client.QQ.ToString(), 1002);
|
||
if (custm != null)
|
||
user.end_time = custm.endTime;
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(user.end_time))
|
||
user.end_time = DateTime.Now.AddMinutes(-1).ToString("yyyy/MM/dd HH:mm:ss");
|
||
}
|
||
}
|
||
bool isinsert = user.id == 0 ? true : false;
|
||
session.SaveOrUpdate(user);
|
||
|
||
if (isinsert)
|
||
{
|
||
try
|
||
{
|
||
var result = UserRobotUpLoad.CustomerLink_UpLoadRobot(new List<UserRobotUpLoad.CustomerRobotInput>()
|
||
{
|
||
new UserRobotUpLoad.CustomerRobotInput()
|
||
{
|
||
HeadUrl = string.Empty,
|
||
NickName = user.nick,
|
||
Remark = user.remark,
|
||
RobotType = UserRobotUpLoad.ConvertRobotType(user.type),
|
||
UserName = user.name
|
||
}
|
||
});
|
||
}
|
||
catch (Exception e)
|
||
{ }
|
||
|
||
EventClient.OnEvent(this, MethodType.刷新机器人);
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
private void Events_QQRefreshUserEvent(object sender, QQRefreshUser e)
|
||
{
|
||
if (e.QQBase != null && e.QQBase.QQ != 0) { Events_QQRefreshUserEvent(e.QQBase); }
|
||
}
|
||
|
||
private void QQEvents_LoginChangeEvent(object sender, QQLoginChangeEvents e)
|
||
{
|
||
try
|
||
{
|
||
if (e.QQBase != null && e.QQBase.QQ != 0)
|
||
{
|
||
Events_QQRefreshUserEvent(e.QQBase);
|
||
|
||
var client = e.QQBase;
|
||
//离线通知
|
||
if (!string.IsNullOrWhiteSpace(ApiClient.Setting.SystemConfig.notice_robotname))
|
||
{
|
||
if (!e.IsLogin)
|
||
{
|
||
var session = ApiClient.GetSession();
|
||
var robot = session.FindRobotInfo(client.QQ.ToString(), ChatType.QQ, true);
|
||
if (robot == null)
|
||
robot = session.FindRobotInfo(client.QQ.ToString(), ChatType.QQ, true);
|
||
if (robot != null && robot.off_line_tip == SwitchType.开启)
|
||
{
|
||
string msg = $"离线通知\n————\nQQ账号:{client.QQ}\nQQ昵称:{client.Nickname}\n当前状态:{(e.IsLogin ? "在线" : "离线")}\n系统时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}";
|
||
ApiClient.SendNoticeMessage(msg);
|
||
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.account_admin_email, "机器人离线通知", msg, true);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
private void Events_WXChangeStatusEvent(object sender, Chat.Framework.WXSdk.Events.WXChangeStatus e)
|
||
{
|
||
try
|
||
{
|
||
if (e.Client != null && e.Client.User != null && e.Client.User.Uin != 0)
|
||
{
|
||
Events_WXRefreshUserEvent(e.Client);
|
||
|
||
var client = e.Client;
|
||
//离线通知
|
||
if (!string.IsNullOrWhiteSpace(ApiClient.Setting.SystemConfig.notice_robotname))
|
||
{
|
||
if (client.Status == WxStatus.已掉线 || client.Status == WxStatus.已退出)
|
||
{
|
||
var session = ApiClient.GetSession();
|
||
var robot = session.FindRobotInfo(client.WeixinHao, ChatType.微信, true);
|
||
if (robot == null)
|
||
robot = session.FindRobotInfo(client.WeixinHao, ChatType.企业微信, true);
|
||
if (robot != null && robot.off_line_tip == SwitchType.开启)
|
||
{
|
||
string msg = $"离线通知\n————\n微信账号:{client.WeixinHao}\n微信昵称:{client.User.Nick}\n当前状态:{client.Status}\n系统时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}";
|
||
ApiClient.SendNoticeMessage(msg);
|
||
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.account_admin_email, "机器人离线通知", msg, true);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
private bool isLodingOk = false;
|
||
|
||
/// <summary>
|
||
/// 账号信息赋值
|
||
/// </summary>
|
||
private void RefreshAccount()
|
||
{
|
||
var account = Grant.Framework.GrantClient.Get().accounts;
|
||
barButtonItem53.Caption = account.username;
|
||
barStaticItem5.Caption = Math.Round(account.point / 100.00, 2).ToString("0.00") + " 元";
|
||
barStaticItem8.Caption = Math.Round(account.sumPoint / 100.00, 2).ToString("0.00") + " 元";
|
||
}
|
||
private void AsyncCallbackMethod(IAsyncResult ar)
|
||
{
|
||
EventClient.OnEvent(this, $"自动登录线程已完成!");
|
||
}
|
||
|
||
private object lock_obj = new object();
|
||
/// <summary>
|
||
/// 刷新用户信息
|
||
/// </summary>
|
||
/// <param name="client"></param>
|
||
private void Events_WXRefreshUserEvent(Chat.Framework.WXSdk.Implement.WeixinBase client)
|
||
{
|
||
try
|
||
{
|
||
lock (lock_obj)
|
||
{
|
||
var robot = client;
|
||
var session = ApiClient.GetSession();
|
||
var ctype = robot.WeixinType == WeixinType.QYHook微信 ? ChatType.企业微信 : ChatType.微信;
|
||
var user = session.FindRobotInfo(robot.WeixinHao, ctype, true);
|
||
if (user == null)
|
||
{
|
||
user = new fl_robot_info()
|
||
{
|
||
name = client.WeixinHao,
|
||
type = ctype
|
||
};
|
||
}
|
||
user.uin = client.User.Uin.ToString();
|
||
user.is_login = client.Status == Chat.Framework.WXSdk.WxStatus.在线 ? true : false;
|
||
user.nick = client.User.Nick;
|
||
if (client.WeixinType == WeixinType.Grpc微信)
|
||
user.token = client.ToString();
|
||
|
||
if (user.is_login)
|
||
{
|
||
var custm = Grant.Framework.GrantClient.Get().FindCostomer(client.User.Uin.ToString(), 1001);
|
||
if (custm != null)
|
||
user.end_time = custm.endTime;
|
||
|
||
var ipad = client as Chat.Framework.WXSdk.Implement.WXClientImpl_IPAD;
|
||
if (ipad != null)
|
||
{
|
||
var device = session.Queryable<fl_wechat_device>().Where(f => f.weixinhao == user.name).Single();
|
||
if (device == null) device = new fl_wechat_device() { weixinhao = client.WeixinHao };
|
||
device.device_info = ipad.DeviceId;
|
||
session.Saveable<fl_wechat_device>(device).ExecuteCommand();
|
||
}
|
||
}
|
||
|
||
bool isinsert = user.id == 0 ? true : false;
|
||
session.SaveOrUpdate(user);
|
||
|
||
if (isinsert)
|
||
{
|
||
try
|
||
{
|
||
var result = UserRobotUpLoad.CustomerLink_UpLoadRobot(new List<UserRobotUpLoad.CustomerRobotInput>()
|
||
{
|
||
new UserRobotUpLoad.CustomerRobotInput()
|
||
{
|
||
HeadUrl = string.Empty,
|
||
NickName = user.nick,
|
||
Remark = user.remark,
|
||
RobotType = UserRobotUpLoad.ConvertRobotType(user.type),
|
||
UserName = user.name
|
||
}
|
||
});
|
||
}
|
||
catch (Exception e)
|
||
{ }
|
||
EventClient.OnEvent(this, MethodType.刷新机器人);
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
private void Events_WXRefreshUserEvent(object sender, Chat.Framework.WXSdk.Events.WXRefreshUser e)
|
||
{
|
||
if (e.Client != null && e.Client.User != null && e.Client.User.Uin != 0) { Events_WXRefreshUserEvent(e.Client); }
|
||
}
|
||
|
||
private object MethodEventLock = new object();
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
private void EventClient_MethodEvent(object sender, MethodType e)
|
||
{
|
||
this.Invoke(new Action(delegate
|
||
{
|
||
try
|
||
{
|
||
lock (MethodEventLock)
|
||
{
|
||
switch (e)
|
||
{
|
||
case MethodType.刷新应用:
|
||
var page = this.xtraTabControl1.TabPages.FirstOrDefault(f => f.Text == "应用功能");
|
||
|
||
if (page != null)
|
||
{
|
||
foreach (Control item in page.Controls)
|
||
{
|
||
item.Dispose();
|
||
}
|
||
page.Controls.Clear();
|
||
var list = PluginClient.Plugins.ToArray();
|
||
foreach (Plugin item in list)
|
||
{
|
||
page.AddContral(new plugin_control(item));
|
||
}
|
||
page.AutoScroll = true;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex);
|
||
}
|
||
}));
|
||
}
|
||
|
||
//销毁选项夹
|
||
private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs EArg = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e;
|
||
string name = EArg.Page.Text;//得到关闭的选项卡的text
|
||
foreach (XtraTabPage page in xtraTabControl1.TabPages)//遍历得到和关闭的选项卡一样的Text
|
||
{
|
||
if (page.Text == name)
|
||
{
|
||
xtraTabControl1.TabPages.Remove(page);
|
||
|
||
foreach (Control item in page.Controls)
|
||
{
|
||
item.Dispose();
|
||
}
|
||
page.Dispose();
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex);
|
||
}
|
||
}
|
||
|
||
//增加选项夹
|
||
private void AddControlPage(string pageName, Control control, Image img = null)
|
||
{
|
||
try
|
||
{
|
||
//增加tabpage
|
||
XtraTabPage xpage = new XtraTabPage();
|
||
xpage.Name = pageName;
|
||
xpage.Text = pageName;
|
||
if (img != null)
|
||
xpage.ImageOptions.Image = img;
|
||
//if (xpage.Text == "运行日志" || xpage.Text == "抖音活跃列表" || xpage.Text == "首页公告")
|
||
if (xpage.Text == "运行日志" || xpage.Text == "首页公告")
|
||
xpage.ShowCloseButton = DevExpress.Utils.DefaultBoolean.False;
|
||
control.Dock = DockStyle.Fill;
|
||
xpage.Controls.Add(control);//添加要增加的控件
|
||
xtraTabControl1.TabPages.Add(xpage);
|
||
xtraTabControl1.SelectedTabPage = xpage;//显示该页
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
XtraMessageBox.Show(ex.Message, "AddControlPage Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
}
|
||
|
||
//添加Control
|
||
private void ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
BarItem btn = sender as BarItem;
|
||
if (btn == null) btn = e.Item;
|
||
var cha = ApiClient.Cache;
|
||
|
||
var username = string.Empty;
|
||
var query_type = string.Empty;
|
||
if (btn.Tag != null)
|
||
{
|
||
var usernameProperty = btn.Tag.GetType().GetProperty("username");
|
||
if (usernameProperty != null)
|
||
username = usernameProperty.GetValue(btn.Tag).ToString();
|
||
var query_typeProperty = btn.Tag.GetType().GetProperty("query_type");
|
||
if (query_typeProperty != null)
|
||
query_type = query_typeProperty.GetValue(btn.Tag).ToString();
|
||
}
|
||
|
||
//判断是否已创建过
|
||
foreach (XtraTabPage page in xtraTabControl1.TabPages)
|
||
{
|
||
if (page.Text == btn.Caption)
|
||
{
|
||
xtraTabControl1.SelectedTabPage = page;//显示该页
|
||
return;
|
||
}
|
||
}
|
||
try
|
||
{
|
||
Loding.ShowWaitForm();
|
||
}
|
||
catch (Exception)
|
||
{
|
||
ShowError("当前有正在加载的数据,请稍后重试!");
|
||
return;
|
||
}
|
||
Image img = null;
|
||
try
|
||
{
|
||
img = PickBox.ResizeImage(btn.ImageOptions.LargeImage == null ? btn.ImageOptions.Image : btn.ImageOptions.LargeImage, new Size(22, 22));
|
||
Control control = null;
|
||
switch (btn.Caption)
|
||
{
|
||
case "首页公告":
|
||
{
|
||
control = new home_control();
|
||
break;
|
||
}
|
||
case "群通知机器人":
|
||
{
|
||
control = new notice_robotapi_control();
|
||
break;
|
||
}
|
||
case "强制结算订单":
|
||
{
|
||
control = new cps_coerce_alimama();
|
||
break;
|
||
}
|
||
case "机器人管理":
|
||
{
|
||
control = new robot_manage_control();
|
||
break;
|
||
}
|
||
case "用户管理":
|
||
{
|
||
control = new member_manage_control(username);
|
||
break;
|
||
}
|
||
case "群负责人":
|
||
{
|
||
control = new group_manage_control();
|
||
break;
|
||
}
|
||
case "开发调试":
|
||
{
|
||
control = new plugin_debug();
|
||
break;
|
||
}
|
||
case "查询商品记录":
|
||
{
|
||
control = new item_query_hist_control();
|
||
break;
|
||
}
|
||
case "应用功能":
|
||
{
|
||
_EnabledControl(false);
|
||
control = new plugin_manage();
|
||
_EnabledControl();
|
||
break;
|
||
}
|
||
case "联盟管理":
|
||
{
|
||
control = new cps_manage_control();
|
||
break;
|
||
}
|
||
case "系统设置":
|
||
{
|
||
var temp = new SettingControl();
|
||
temp.Bind(ApiClient.Setting.SystemConfig);
|
||
control = temp;
|
||
break;
|
||
}
|
||
case "其他设置":
|
||
{
|
||
control = new setting_system_control();
|
||
break;
|
||
}
|
||
case "拼多多订单管理":
|
||
{
|
||
control = new cps_order_pinduoduo(username);
|
||
break;
|
||
}
|
||
case "唯品会订单管理":
|
||
{
|
||
control = new cps_order_weipinhui(username);
|
||
break;
|
||
}
|
||
case "阿里妈妈订单管理":
|
||
{
|
||
control = new cps_order_alimama(username);
|
||
break;
|
||
}
|
||
case "阿里妈妈维权订单管理":
|
||
{
|
||
control = new cps_order_refund_alimama(username);
|
||
break;
|
||
}
|
||
case "京东订单管理":
|
||
{
|
||
control = new cps_order_jingdong(username);
|
||
break;
|
||
}
|
||
case "快手订单管理":
|
||
{
|
||
//TODO 快手
|
||
throw new Exception("该功能尚未开发完成,请等待更新!");
|
||
control = new cps_order_kuaishou(username);
|
||
break;
|
||
}
|
||
case "抖音订单管理":
|
||
{
|
||
//TODO 禁用抖音禁用
|
||
var StartDy = Util.AppConfig_GetValue("StartDy");
|
||
if (StartDy != "1")
|
||
throw new Exception("该功能尚未开发完成,请等待更新!");
|
||
else
|
||
{
|
||
control = new cps_order_douyin(username);
|
||
break;
|
||
}
|
||
}
|
||
case "苏宁易购订单管理":
|
||
{
|
||
control = new cps_order_suning(username);
|
||
break;
|
||
}
|
||
case "运行日志":
|
||
{
|
||
control = new system_log_control();
|
||
break;
|
||
}
|
||
case "抖音活跃列表":
|
||
{
|
||
//control = new system_douyin_action_control();
|
||
//break;
|
||
return;
|
||
}
|
||
case "保存配置":
|
||
{
|
||
ChatClient.WXSdkConfig.IsDebug = false;
|
||
Util.AppConfig_ModifyItem("SkinName", skin_manager.Caption);
|
||
if (ApiClient.Setting != null) ApiClient.Setting.Save();
|
||
|
||
ShowSuccessAutoClose("已保存配置,并应用!");
|
||
return;
|
||
}
|
||
case "淘宝订单尾号":
|
||
{
|
||
control = new member_order_lastnum();
|
||
break;
|
||
}
|
||
case "数据报表":
|
||
{
|
||
control = new data_report_control();
|
||
break;
|
||
}
|
||
case "提现管理":
|
||
{
|
||
control = new point_manage_control(username, query_type);
|
||
break;
|
||
}
|
||
case "手动转链":
|
||
{
|
||
control = new convert_tool_control();
|
||
break;
|
||
}
|
||
default:
|
||
throw new Exception("该功能尚未开发完成,请等待更新!");
|
||
}
|
||
AddControlPage(btn.Caption, control, img);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex, "创建异常");
|
||
}
|
||
finally
|
||
{
|
||
Loding.CloseWaitForm();
|
||
}
|
||
}
|
||
|
||
//窗口即将关闭
|
||
private void main_FormClosing(object sender, FormClosingEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//if (isLodingOk && sender.GetType() != typeof(OnlineUpdate.Client))
|
||
if (isLodingOk && e != null)
|
||
{
|
||
var result = XtraMessageBox.Show("您确定要退出软件吗?", "谨慎操作", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||
if (result != DialogResult.Yes)
|
||
{
|
||
e.Cancel = true;
|
||
return;
|
||
}
|
||
}
|
||
ApiClient.Setting.Save();
|
||
var list = ChatClient.WXClient.Values.ToList();
|
||
foreach (WeixinBase item in list) Events_WXRefreshUserEvent(item);
|
||
this.notify_pallet.Visible = false;
|
||
Util.AppConfig_ModifyItem("SkinName", skin_manager.Caption);
|
||
if (ApiClient.Setting != null) ApiClient.Setting.Save();
|
||
|
||
kh.UnHook();
|
||
}
|
||
catch { }
|
||
if (sender != null && e == null)
|
||
{
|
||
Process.Start("检查更新.exe", "FLSystem.exe");
|
||
}
|
||
Program.Exit();
|
||
}
|
||
|
||
//UpdateSoft update = null;
|
||
//LevelUpdate.UpdateForm update = null;
|
||
//检查更新
|
||
private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
var LatestData = UpdateClient.GetCloudFileHist();
|
||
if (!string.IsNullOrWhiteSpace(LatestData))
|
||
{
|
||
if (new UpdateForm(LatestData).ShowDialog() == DialogResult.OK)
|
||
main_FormClosing(LatestData, null);
|
||
}
|
||
else MessageBox.Show("暂无新版本!", "检查更新", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
|
||
//测试SMTP邮件
|
||
private void barButtonItem16_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.SMTP_User, "测试邮件", "您如果收到此邮件,表示可以正常使用该功能!", false, false);
|
||
ShowSuccess("已发送邮件,请注意查收!");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex);
|
||
}
|
||
}
|
||
|
||
//登录拼多多
|
||
private void barButtonItem21_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
if (LoginCps(CpsType.多多进宝) != null) ItemClick(btn_cps_manage, e);
|
||
}
|
||
|
||
|
||
private fl_cps_member LoginCps(CpsType type)
|
||
{
|
||
try
|
||
{
|
||
var member = CpsClient.Login(type);
|
||
if (member != null)
|
||
{
|
||
EventClient.OnEvent(null, MethodType.刷新联盟);
|
||
}
|
||
return member;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
// if (ex.Message.Contains(@"“CefSharp.Core.Runtime.dll”或它的某一个依赖项"))
|
||
// {
|
||
// EventClient.OnEvent("系统缺少服务", $@"请点击链接,下载组件并安装,安装完成后重启软件
|
||
//下载地址:https://wwa.lanzoui.com/iDDvsroqrxc");
|
||
// try
|
||
// {
|
||
// Clipboard.SetDataObject("https://wwa.lanzoui.com/iDDvsroqrxc" + "?=" + new Random().Next(100, 2000));
|
||
// }
|
||
// catch (Exception)
|
||
// { }
|
||
|
||
// BaseForm.ShowError(@"当前系统缺少组件,请看软件日志,按提示安装相应的组件
|
||
|
||
//下载地址已经复制到粘贴板,在网页中打开即可");
|
||
// }
|
||
// else
|
||
// ShowError(ex.Message, "抖音创建异常");
|
||
}
|
||
return null;
|
||
}
|
||
|
||
private void barButtonItem30_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new plugin_sort_form().ShowDialog();
|
||
PluginClient.LodingPlugin();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 修改控件客户交互状态 (Enabled)
|
||
/// </summary>
|
||
/// <param name="flag"></param>
|
||
private void _EnabledControl(bool flag = true)
|
||
{
|
||
barButtonItem29.Enabled = barButtonItem30.Enabled = barButtonItem31.Enabled = barButtonItem6.Enabled = flag;
|
||
}
|
||
|
||
private void barButtonItem29_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
//监听刷新
|
||
PluginClient.LodingPlugin();
|
||
}
|
||
|
||
private void barButtonItem31_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
//监听刷新
|
||
PluginClient.LodingPlugin(true);
|
||
}
|
||
|
||
private void barButtonItem25_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
if (LoginCps(CpsType.阿里妈妈) != null) ItemClick(btn_cps_manage, e);
|
||
}
|
||
|
||
private void simpleButton1_Click(object sender, EventArgs e)
|
||
{
|
||
var client = ChatClient.WXClient.FirstOrDefault().Value;
|
||
var label = client.GetLabelList().First();
|
||
//client.AddLabel("Test2");
|
||
client.EditUserLabel(new[] { "wxid_8s44kddouuaj21" }, new System.Collections.Generic.List<Chat.Framework.WXSdk.Implement.Lable>() { label });
|
||
// client.ModifyUserTag(new[] { "wxid_8s44kddouuaj21" });
|
||
//new LoginWechat62Data().ShowDialog();
|
||
//var str = "<msg bigheadimgurl=\"http://wx.qlogo.cn/mmhead/ver_1/5LnxGuicImnmq0IonTk4cQ2rMpDpldkF2EOARwCrhtEH2VmMYrRxC92zTBPRZX1QqZtPd2UOUfZGVF73sKN3cB8mvBibKxkF5SgFjyn0S0sLs/0\" smallheadimgurl=\"http://wx.qlogo.cn/mmhead/ver_1/5LnxGuicImnmq0IonTk4cQ2rMpDpldkF2EOARwCrhtEH2VmMYrRxC92zTBPRZX1QqZtPd2UOUfZGVF73sKN3cB8mvBibKxkF5SgFjyn0S0sLs/132\" username=\"yangshu5188\" nickname=\"杨曙\" fullpy=\"?yangshu?\" shortpy=\"\" alias=\"\" imagestatus=\"3\" scene=\"17\" province=\"昆士兰\" city=\"澳大利亚\" sign=\"\" sex=\"1\" certflag=\"0\" certinfo=\"\" brandIconUrl=\"\" brandHomeUrl=\"\" brandSubscriptConfigUrl=\"\" brandFlags=\"0\" regionCode=\"AU_Queensland_Gold Coast\" />";
|
||
//client.SendMessage("wxid_8s44kddouuaj21", str);
|
||
}
|
||
|
||
private void barButtonItem40_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
Process.Start(Util.MapPath("Plugin"));
|
||
}
|
||
|
||
private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
Process.Start(Util.MapPath("Plugin"));
|
||
}
|
||
|
||
private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
Process.Start(Util.MapPath(""));
|
||
}
|
||
|
||
private void barButtonItem3_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
this.notify_pallet.Visible = false;
|
||
Program.Exit();
|
||
}
|
||
|
||
private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
this.notify_pallet.Visible = false;
|
||
Program.Exit(true);
|
||
}
|
||
|
||
private void barButtonItem10_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
}
|
||
|
||
private void barButtonItem9_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
|
||
if (!EventClient.StopParsing)
|
||
{
|
||
this.barButtonItem9.ImageOptions.Image = (System.Drawing.Image)(resources.GetObject("barButtonItem9.ImageOptions.Image"));
|
||
this.barButtonItem9.ImageOptions.LargeImage = (System.Drawing.Image)(resources.GetObject("barButtonItem9.ImageOptions.LargeImage"));
|
||
|
||
this.barButtonItem9.Caption = "接收信息";
|
||
}
|
||
else
|
||
{
|
||
this.barButtonItem9.ImageOptions.Image = (System.Drawing.Image)(resources.GetObject("barButtonItem10.ImageOptions.Image"));
|
||
this.barButtonItem9.ImageOptions.LargeImage = global::FLSystem.Properties.Resources.停止__4_;
|
||
|
||
this.barButtonItem9.Caption = "停止接收";
|
||
}
|
||
EventClient.StopParsing = !EventClient.StopParsing;
|
||
}
|
||
|
||
private void barButtonItem50_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
var flag = ChatClient.LoginWeixin();
|
||
if (flag) ItemClick(btn_robot_manage, e);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseForm.ShowError(ex);
|
||
}
|
||
}
|
||
|
||
private DateTime RefPluginControlTime = DateTime.MinValue;
|
||
private Thread RefPluginControlTimer = null;
|
||
private void main_SizeChanged(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//判断是否选择的是最小化按钮
|
||
if (WindowState == FormWindowState.Minimized)
|
||
{
|
||
//托盘显示图标等于托盘图标对象
|
||
//注意notifyIcon1是控件的名字而不是对象的名字
|
||
this.notify_pallet.Visible = true;
|
||
//隐藏任务栏区图标
|
||
this.ShowInTaskbar = false;
|
||
}
|
||
else
|
||
{
|
||
this.notify_pallet.Visible = false;
|
||
Control page = this.xtraTabControl1.SelectedTabPage;
|
||
|
||
if (page != null && page.Text == "应用功能" && page.Controls.Count > 0)
|
||
{
|
||
if (page.Controls.Count == 1 && page.Controls[0].Name == "plugin_manage")
|
||
page = page.Controls[0];
|
||
|
||
lock (lock_obj)
|
||
{
|
||
RefPluginControlTime = DateTime.Now.AddSeconds(1);
|
||
if (RefPluginControlTimer == null || !RefPluginControlTimer.IsAlive)
|
||
{
|
||
RefPluginControlTimer = new Thread(new ThreadStart(delegate
|
||
{
|
||
while (DateTime.Now < RefPluginControlTime)
|
||
{
|
||
Thread.Sleep(200);
|
||
}
|
||
Invoke(new Action(delegate
|
||
{
|
||
_EnabledControl(false);
|
||
page.RefreshContral();
|
||
_EnabledControl();
|
||
}));
|
||
}));
|
||
RefPluginControlTimer.IsBackground = true;
|
||
RefPluginControlTimer.Start();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch
|
||
{ }
|
||
}
|
||
|
||
private void notify_pallet_MouseDoubleClick(object sender, MouseEventArgs e)
|
||
{
|
||
this.Visible = true;
|
||
this.WindowState = FormWindowState.Normal;
|
||
this.ShowInTaskbar = true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 读取公告
|
||
/// </summary>
|
||
private void ReadNote(bool f5 = true)
|
||
{
|
||
try
|
||
{
|
||
if (f5) Grant.Framework.GrantClient.Get().RefreshAbout(1003);
|
||
var notes = GrantClient.Get().About.ContainsKey("notice") ? GrantClient.Get().About["notice"].ToString() : string.Empty;
|
||
// var notes = ApiClient.GetServerConfig("FLSystemNotice");
|
||
if (!string.IsNullOrEmpty(notes))
|
||
{
|
||
var temp = notes.Split('|');
|
||
this.Invoke(new Action(delegate
|
||
{
|
||
try
|
||
{
|
||
this.PublicNote.Caption = temp[new Random().Next(0, temp.Length)];
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
}));
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
|
||
private static long timeCount = 0;
|
||
|
||
private void timer1_Tick(object sender, EventArgs e)
|
||
{
|
||
new Action(delegate ()
|
||
{
|
||
timeCount++;
|
||
try
|
||
{
|
||
ReadNote();
|
||
|
||
var session = ApiClient.GetSession();
|
||
var robots = session.FindRobots();
|
||
//刷新信息
|
||
foreach (var item in robots)
|
||
{
|
||
if (item.type == ChatType.微信 || item.type == ChatType.企业微信)
|
||
{
|
||
var client = ChatClient.WXClient.Values.ToList().FirstOrDefault(f => f.WeixinHao == item.name);
|
||
if (client != null)
|
||
{
|
||
//item.token = (item.token.Contains("Chat.Framework.WXSdk.Implement.WXClientImpl_") || client.WeixinType != WeixinType.Grpc微信) ? string.Empty : client.ToString();
|
||
if (client.WeixinType == WeixinType.Grpc微信)
|
||
item.token = client.ToString();
|
||
item.is_login = client.Status == WxStatus.在线 ? true : false;
|
||
session.SaveOrUpdate(item);
|
||
}
|
||
}
|
||
}
|
||
//重新读取
|
||
robots = session.FindRobots(true);
|
||
|
||
StringBuilder sb = new StringBuilder();
|
||
foreach (var item in robots)
|
||
{
|
||
var isLogin = false;
|
||
if (Chat.Framework.ChatClient.WXClient.ContainsKey(item.name))
|
||
{
|
||
var wxbase = Chat.Framework.ChatClient.WXClient[item.name];
|
||
isLogin = wxbase.Status != WxStatus.在线;
|
||
}
|
||
if (isLogin && item.off_line_tip == SwitchType.开启)
|
||
sb.Append($"{item.type}账号:{item.nick}({item.name})\n");
|
||
}
|
||
string msg = sb.ToString().Trim();
|
||
if (!string.IsNullOrEmpty(msg))
|
||
{
|
||
msg = $"离线通知\n————\n{msg.Trim()}";
|
||
ApiClient.SendNoticeMessage(msg);
|
||
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.account_admin_email, "机器人离线通知", msg, true);
|
||
}
|
||
|
||
//账号授权提示
|
||
if (timeCount % 48 == 0)//降低频率一天提醒一次
|
||
{
|
||
sb.Length = 0;
|
||
foreach (var item in robots)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(item.end_time)) continue;
|
||
DateTime end_time = DateTime.MinValue;
|
||
DateTime.TryParse(item.end_time, out end_time);
|
||
if (end_time != DateTime.MinValue) //&& end_time >= DateTime.Now)
|
||
{
|
||
if (end_time.AddDays(1) < DateTime.Now) continue;
|
||
if (end_time < DateTime.Now)
|
||
{
|
||
sb.AppendLine($"{item.type}账号:{item.nick}({item.uin}) 授权已经到期");
|
||
}
|
||
else
|
||
{
|
||
var time = end_time - DateTime.Now;
|
||
if (time.TotalDays < 7)
|
||
sb.AppendLine($"{item.type}账号:{item.nick}({item.uin}) 授权剩余{time.Days}天{time.Hours}小时{time.Minutes}分");
|
||
}
|
||
}
|
||
}
|
||
msg = sb.ToString().Trim();
|
||
if (!string.IsNullOrEmpty(msg))
|
||
{
|
||
msg = $"账号授权即将到期通知\n————\n{msg.Trim()}\n\n温馨提示:为了您的账号能正常使用,请及时给账号续期";
|
||
ApiClient.SendNoticeMessage(msg);
|
||
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.account_admin_email, "机器人即将到期通知", msg, true);
|
||
}
|
||
}
|
||
|
||
//系统有更新提示
|
||
if (timeCount % 60 == 0)
|
||
{
|
||
try
|
||
{
|
||
var LatestData = UpdateClient.GetCloudFileHist();
|
||
if (!string.IsNullOrWhiteSpace(LatestData))
|
||
{
|
||
try
|
||
{
|
||
StringBuilder sb1 = new StringBuilder();
|
||
sb1.AppendLine("返利系统有更新啦:");
|
||
sb1.AppendLine("");
|
||
|
||
sb1.AppendLine(LatestData);
|
||
|
||
//foreach (var item in versions)
|
||
//{
|
||
// sb1.Append($"{item.Name} -- {item.Version}\r\n");
|
||
// var index = 10;
|
||
// for (int i = 0; i < item.Message.Count; i++)
|
||
// {
|
||
// if (index > i)
|
||
// sb1.AppendLine($"{i + 1}、{item.Message[i]}");
|
||
// else
|
||
// {
|
||
// sb1.AppendLine($"{i + 1}、。。。");
|
||
// break;
|
||
// }
|
||
// }
|
||
// sb1.AppendLine("");
|
||
//}
|
||
var info = sb1.ToString().Trim();
|
||
if (!string.IsNullOrWhiteSpace(info))
|
||
{
|
||
ApiClient.SendNoticeMessage(info);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
}).BeginInvoke(null, null);
|
||
}
|
||
|
||
//登录京东联盟
|
||
private void barButtonItem26_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
var member = LoginCps(CpsType.京东联盟);
|
||
if (member != null)
|
||
{
|
||
ItemClick(btn_cps_manage, e);
|
||
}
|
||
}
|
||
|
||
private void barButtonItem97_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
if (LoginCps(CpsType.唯品联盟) != null) ItemClick(btn_cps_manage, e);
|
||
}
|
||
|
||
private void barButtonItem100_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
if (LoginCps(CpsType.抖音联盟) != null) ItemClick(btn_cps_manage, e);
|
||
}
|
||
|
||
private void barButtonItem107_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
if (LoginCps(CpsType.苏宁易购) != null) ItemClick(btn_cps_manage, e);
|
||
}
|
||
|
||
private void barButtonItem8_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
string filename = Util.MapFile("C#_Plugin.doc", "File\\Design");
|
||
}
|
||
|
||
private void barButtonItem59_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
var config = ApiClient.Setting.SystemConfig;
|
||
var cer = config.pay_wechat_sh_cerpath;
|
||
if (!System.IO.File.Exists(cer)) throw new Exception("对不起,证书文件不存在!");
|
||
var cerdata = File.ReadAllBytes(cer);
|
||
WechatPay pay = new WechatPay();
|
||
var result = pay.Upload(config.pay_wechat_host, config.pay_wechat_gzh_appid, config.pay_wechat_gzh_appsecret, config.pay_wechat_sh_appid, config.pay_wechat_sh_appsecret, cerdata, config.pay_wechat_web_footer);
|
||
ShowSuccess(result);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex.Message);
|
||
}
|
||
}
|
||
|
||
private void xtraTabControl1_SelectedPageChanged(object sender, TabPageChangedEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
var page = this.xtraTabControl1.SelectedTabPage;
|
||
if (page != null && page.Text == "应用功能")
|
||
{
|
||
//page.Controls.Clear();
|
||
if (page.Name == "")
|
||
if (page.Controls.Count > 0)
|
||
{
|
||
Invoke(new Action(delegate
|
||
{
|
||
_EnabledControl(false);
|
||
page.RefreshContral();
|
||
_EnabledControl();
|
||
}));
|
||
}
|
||
}
|
||
else if (page != null && page.Text == "提现管理")
|
||
{
|
||
EventClient.OnEvent(this, MethodType.刷新配置文件);//刷新积分管理中的配置文件
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
private void barButtonItem11_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new EncPlugin().Show();
|
||
}
|
||
|
||
private void barButtonItem65_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (MessageBox.Show("是否重启软件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||
{
|
||
ApiClient.Setting.Save();
|
||
#region 是否允许软件重启[创建一个名为 reset 的空文件,在FLSystem的Program中判断这个文件是否存在,存在将允许重启]
|
||
var reset_program = Util.MapFile("reset", "File");
|
||
File.Create(reset_program);
|
||
#endregion
|
||
Application.ExitThread();
|
||
Thread thtmp = new Thread(new ParameterizedThreadStart(run));
|
||
object appName = Application.ExecutablePath;
|
||
Thread.Sleep(500);
|
||
thtmp.Start(appName);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseForm.ShowError(ex);
|
||
}
|
||
}
|
||
|
||
private void run(Object obj)
|
||
{
|
||
Process ps = new Process();
|
||
ps.StartInfo.FileName = obj.ToString();
|
||
ps.Start();
|
||
}
|
||
|
||
private void barButtonItem66_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
Process.Start(Util.MapPath());
|
||
}
|
||
|
||
private void barButtonItem34_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new LeavingMessageForm().ShowDialog();
|
||
}
|
||
|
||
private void CreateWebApiEvent(object sender, ItemClickEventArgs e)
|
||
{
|
||
var form = new web_api_form();
|
||
form.ShowDialog();
|
||
}
|
||
|
||
private void barButtonItem77_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new update_log_form().ShowDialog();
|
||
}
|
||
|
||
private void barButtonItem78_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
Process.Start(Util.MapPath());
|
||
}
|
||
|
||
private void barButtonItem51_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
ChatClient.LoginQQ("");
|
||
}
|
||
|
||
#region QQ
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 同步服务器缓存
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void barButtonItem42_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//AlimamaApi.FindTransferAddress(AlimamaApi.TargetType.产品库, true);
|
||
//var ss = AlimamaApi.FindTransferAddress(AlimamaApi.TargetType.淘口令, true);
|
||
|
||
AlimamaApi.RefreshTkUrl();
|
||
|
||
TbAnalysis.TklRegToEmpty();
|
||
//删除云黑名单缓存
|
||
Api.Framework.Tools.Util.RemoveCache("Cloud_Black");
|
||
ShowSuccess("缓存更新成功!");
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
|
||
private void barButtonItem90_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new AuthorizationManage().ShowDialog();
|
||
}
|
||
|
||
private void barButtonItem91_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new AuthorizationManage().ShowDialog();
|
||
}
|
||
|
||
private void barButtonItem92_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
var wx = ChatClient.WXClient.FirstOrDefault().Value as WXClientImpl_IPAD;
|
||
wx.Socket.TestError();
|
||
}
|
||
|
||
private void main_KeyDown(object sender, KeyEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (e.Alt)
|
||
{
|
||
if (e.KeyCode == Keys.Oem3)
|
||
{
|
||
var ShowTgwz = Util.AppConfig_GetValue("ShowTgwz");
|
||
var state = ShowTgwz == "1" ? "0" : "1";
|
||
string mess = string.Empty;
|
||
if (Util.AppConfig_ModifyItem("ShowTgwz", state))
|
||
mess = state == "1" ? "成功激活推广位组" : "成功隐藏推广位组";
|
||
else
|
||
mess = state == "1" ? "激活推广位组失败" : "隐藏推广位组失败";
|
||
ShowSuccess(mess);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowError(ex);
|
||
}
|
||
}
|
||
|
||
private void button1_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//if (ApiClient.Server != null && ApiClient.Server.State == SuperSocket.SocketBase.ServerState.Running)
|
||
//{
|
||
// ChatClient.PCRobotPool.SendAppUpdate();
|
||
// BaseForm.ShowSuccessAutoClose("请求远程更新成功!!!");
|
||
//}
|
||
//else
|
||
//{
|
||
// throw new Exception("Socket通讯未开启,此操作无效!!!");
|
||
//}
|
||
|
||
//var robot = ApiClient.GetSession().FindRobotInfo("wxid_vebvd7abpq1m22", ChatType.微信);
|
||
//var sends = new List<temp_send_data>();
|
||
//sends.Add(new temp_send_data() { Groupid = string.Empty, Message = @"撒法第三款了房间里的撒咖啡[分段][延迟=900]机房的凯撒奖发了多少", Robot = robot, TouserName = "wujiahua0876" });
|
||
|
||
//ApiClient.SendMessage(sends.ToArray());
|
||
|
||
//var msg = ApiClient.SendWechatPay(new { test = "123大爷啊.乱码啊" }, "测试啊", 5);
|
||
//Console.WriteLine();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseForm.ShowErrorAutoClose(ex);
|
||
}
|
||
}
|
||
|
||
private void barButtonItem93_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(main));
|
||
if (!ApiClient.Setting.SystemConfig.message_warning_switch)
|
||
{
|
||
if (XtraMessageBox.Show(@"确定要开启吗?
|
||
|
||
开启后:
|
||
①、订单绑定等相关提示语(不通知)
|
||
②、返利正在查询中提示语(不通知)
|
||
③、上下级订单提成提示语(不通知)
|
||
|
||
作用:(有效防止微信消息频繁)
|
||
一般在双11、双12、618等 重要节假日开启!", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.Cancel) return;
|
||
|
||
this.barButtonItem93.Caption = "关闭【双12】模式";
|
||
this.barButtonItem93.ImageOptions.Image = (System.Drawing.Image)(resources.GetObject("barButtonItem93.ImageOptions.Image"));
|
||
this.barButtonItem93.ImageOptions.LargeImage = (System.Drawing.Image)(resources.GetObject("barButtonItem93.ImageOptions.LargeImage"));
|
||
}
|
||
else
|
||
{
|
||
this.barButtonItem93.Caption = "开启【双12】模式";
|
||
this.barButtonItem93.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barButtonItem94.ImageOptions.Image")));
|
||
this.barButtonItem93.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barButtonItem94.ImageOptions.LargeImage")));
|
||
}
|
||
ApiClient.Setting.SystemConfig.message_warning_switch = !ApiClient.Setting.SystemConfig.message_warning_switch;
|
||
Util.Save(ApiClient.Setting.SystemConfig);
|
||
ApiClient.Setting.Save();
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 机器人离线自动登录记录
|
||
/// 离线后尝试自动登录成功的不记录
|
||
/// 离线后自动尝试登录不成功的记录
|
||
/// 有记录但是已经人工登录成功的清除
|
||
/// 有记录但是没有自动登录不成功的记录增加
|
||
/// </summary>
|
||
public Dictionary<string, int> robotOffLineAutoLoginList = new Dictionary<string, int>();
|
||
|
||
private void autologin_timer_Tick(object sender, EventArgs e)
|
||
{
|
||
new Action(delegate ()
|
||
{
|
||
try
|
||
{
|
||
var session = ApiClient.GetSession();
|
||
//重新读取
|
||
var robots = session.FindRobots(true).Where(f => f.type == ChatType.微信 && f.remark != "PCWechat HOOK");
|
||
|
||
var wxClients = ChatClient.WXClient.Values;
|
||
|
||
foreach (var robot in robots)
|
||
{
|
||
var isLogin = wxClients.FirstOrDefault(f => robot.name == f.WeixinHao && (f.Status == WxStatus.已掉线 || f.Status == WxStatus.已退出 || f.Status == WxStatus.未登录 || f.Status == WxStatus.登录中)) == null;
|
||
if (robotOffLineAutoLoginList.ContainsKey(robot.name))
|
||
{
|
||
if (isLogin || robot.off_line_auto_login == SwitchType.关闭)
|
||
robotOffLineAutoLoginList.Remove(robot.name);
|
||
else if (!isLogin && robot.off_line_auto_login == SwitchType.开启)
|
||
robotOffLineAutoLoginList[robot.name] = robotOffLineAutoLoginList[robot.name] + 1;
|
||
}
|
||
else
|
||
{
|
||
if (!isLogin)
|
||
{
|
||
robotOffLineAutoLoginList.Add(robot.name, 1);
|
||
}
|
||
}
|
||
}
|
||
if (robotOffLineAutoLoginList.Count == 0) return;
|
||
|
||
TaskTool tasks = new TaskTool();
|
||
foreach (var item in robots)
|
||
{
|
||
if (!robotOffLineAutoLoginList.ContainsKey(item.name))
|
||
continue;
|
||
else if (robotOffLineAutoLoginList[item.name] > 2)
|
||
continue;
|
||
|
||
var _item = item;
|
||
tasks.AddTask(delegate ()
|
||
{
|
||
try
|
||
{
|
||
EventClient.OnEvent(this, $"正在尝试自动微信->{_item.name}({_item.nick})...");
|
||
var wx = ChatClient.WXClient.FirstOrDefault(f => f.Key == _item.name).Value;
|
||
if (wx != null) wx.ResetConnection();
|
||
else ChatClient.LoginWeixin(_item.name, _item.token);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EventClient.OnEvent(this, $"自动登录微信->{_item.name}({_item.nick})异常:{ex.Message}");
|
||
}
|
||
});
|
||
}
|
||
if (tasks.Tasks.Count != 0)
|
||
tasks.Start(30, AsyncCallbackMethod2);
|
||
}
|
||
catch { }
|
||
}).BeginInvoke(null, null);
|
||
|
||
UpdTime();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新win时间
|
||
/// </summary>
|
||
public void UpdTime()
|
||
{
|
||
try
|
||
{
|
||
new Action(delegate ()
|
||
{
|
||
try
|
||
{
|
||
HttpHelper http = new HttpHelper();
|
||
var item = new HttpItem();
|
||
item.URL = "http://quan.suning.com/getSysTime.do";
|
||
var html = http.GetHtml(item).Html;
|
||
var temp = JObject.Parse(html);
|
||
if (temp["sysTime2"] != null)
|
||
{
|
||
var time = DateTime.Parse(temp["sysTime2"].ToString().Trim());
|
||
Daytime.SetWindowsClock(time);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}).BeginInvoke(null, null);
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
|
||
private void AsyncCallbackMethod2(IAsyncResult ar)
|
||
{
|
||
EventClient.OnEvent(this, MethodType.刷新机器人);
|
||
EventClient.OnEvent(this, $"尝试自动登录线程已完成!");
|
||
var session = ApiClient.GetSession();
|
||
var robots = session.FindRobots(true).Where(f => f.type == ChatType.微信 && f.remark != "PCWechat HOOK");
|
||
var wxClients = ChatClient.WXClient.Values;
|
||
foreach (var robot in robots)
|
||
{
|
||
var isLogin = wxClients.FirstOrDefault(f => robot.name == f.WeixinHao && (f.Status == WxStatus.已掉线 || f.Status == WxStatus.已退出 || f.Status == WxStatus.未登录)) == null;
|
||
if (isLogin || robot.off_line_auto_login == SwitchType.关闭)
|
||
robotOffLineAutoLoginList.Remove(robot.name);
|
||
}
|
||
}
|
||
|
||
private void barButtonItem86_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
new TCPForm().ShowDialog();
|
||
}
|
||
|
||
private void barButtonItem103_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (ApiClient.Server != null && ApiClient.Server.State == SuperSocket.SocketBase.ServerState.Running)
|
||
{
|
||
ChatClient.PCRobotPool.SendAppUpdate();
|
||
BaseForm.ShowSuccessAutoClose("请求远程更新成功!!!");
|
||
}
|
||
else
|
||
throw new Exception("Socket通讯未开启,此操作无效!!!");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseForm.ShowErrorAutoClose(ex);
|
||
}
|
||
}
|
||
|
||
private void SetShow(List<NavTree> treeList, int index)
|
||
{
|
||
var t2List = treeList.Where(f => f.ceng == 2 && f.index == index).ToList();
|
||
foreach (var t2 in t2List)
|
||
{
|
||
if (t2.name == "首页公告")
|
||
btn_home_manage.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "接收信息")
|
||
barButtonItem9.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "双十二")
|
||
barButtonItem93.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "联盟管理")
|
||
btn_cps_manage.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "登录联盟")
|
||
barButtonItem20.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "授权管理")
|
||
barButtonItem91.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "机器人管理")
|
||
btn_robot_manage.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "登录机器人")
|
||
barButtonItem19.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "数据报表")
|
||
btn_data_manage.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "运行日志")
|
||
btn_log_manage.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
|
||
if (t2.name == "系统设置")
|
||
barButtonItem13.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "其他设置")
|
||
barButtonItem41.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "保存配置")
|
||
barButtonItem56.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "订单管理")
|
||
barButtonItem48.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "提现管理")
|
||
barButtonItem76.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "用户管理")
|
||
barButtonItem43.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "群负责人")
|
||
barButtonItem67.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "群通知机器人")
|
||
barButtonItem96.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "测试邮件通信")
|
||
barButtonItem16.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "同步服务器缓存")
|
||
barButtonItem42.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "上传商户配置")
|
||
barButtonItem59.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "查询商品记录")
|
||
barButtonItem49.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "淘宝订单尾号")
|
||
barButtonItem57.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "强制结算订单")
|
||
barButtonItem63.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
|
||
if (t2.name == "应用功能")
|
||
barButtonItem6.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "刷新应用")
|
||
barButtonItem29.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "全部重启")
|
||
barButtonItem31.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "执行顺序")
|
||
barButtonItem30.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "开发调试")
|
||
barButtonItem27.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "加密应用")
|
||
barButtonItem11.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "应用目录")
|
||
barButtonItem40.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "手动转链")
|
||
barButtonItem81.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "Web通讯")
|
||
barButtonItem72.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "Socket通讯")
|
||
barButtonItem86.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "更新易转发")
|
||
barButtonItem103.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
|
||
if (t2.name == "检查更新")
|
||
barButtonItem39.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "更新摘要")
|
||
barButtonItem77.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "软件目录")
|
||
barButtonItem78.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "建议反馈")
|
||
barButtonItem34.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
if (t2.name == "重启软件")
|
||
barButtonItem65.Visibility = t2.check ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||
}
|
||
}
|
||
|
||
private bool isrun = false;
|
||
|
||
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||
{
|
||
if (isrun)
|
||
return;
|
||
isrun = true;
|
||
try
|
||
{
|
||
{
|
||
var h = DateTime.Now.Hour; if (!(1 <= h && h < 3))
|
||
return;
|
||
Console.WriteLine();
|
||
//没赋值的头像赋值
|
||
try
|
||
{
|
||
var robots = ChatClient.WXClient.Values.Where(f => f.Status == WxStatus.在线).ToList();
|
||
foreach (var robot in robots)
|
||
{
|
||
try
|
||
{
|
||
var db = ApiClient.GetSession();
|
||
var members = db.Find<fl_member_info>("select * from fl_member_info where robot_name = @robotname and headurl = @headurl", new { robotname = robot.WeixinHao, headurl = "" });
|
||
|
||
var friends = robot.Friends;
|
||
foreach (var member in members)
|
||
{
|
||
if (friends != null && friends.ContainsKey(member.username))
|
||
{
|
||
var headurl = friends[member.username].BigHeadImgUrl;
|
||
if (!string.IsNullOrWhiteSpace(headurl))
|
||
{
|
||
member.headurl = friends[member.username].BigHeadImgUrl;
|
||
db.SaveOrUpdate(member);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var f = robot.GetContact(member.username);
|
||
if (f != null)
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(f.BigHeadImgUrl))
|
||
{
|
||
member.headurl = f.BigHeadImgUrl;
|
||
db.SaveOrUpdate(member);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
}
|
||
}
|
||
catch (Exception exception)
|
||
{ }
|
||
|
||
//上传用户/机器人信息
|
||
try
|
||
{
|
||
var db = ApiClient.GetSession();
|
||
|
||
var upload = db.FindSingle<fl_upload_record>("select * from fl_upload_record");
|
||
|
||
if (upload == null)
|
||
{
|
||
upload = new fl_upload_record();
|
||
var userNumber = db.Queryable<fl_member_info>().Count();
|
||
upload.usernumber = userNumber;
|
||
db.Saveable(upload).ExecuteCommand();
|
||
}
|
||
|
||
if (!upload.usersuccess)
|
||
{
|
||
var pageSize = 100;
|
||
while (upload.userindex * pageSize < upload.usernumber)
|
||
{
|
||
var members = db.Queryable<fl_member_info>().OrderBy(f => f.id).ToPageList(upload.userindex, pageSize);
|
||
List<UserRobotUpLoad.CustomerLinkInput> list = new List<UserRobotUpLoad.CustomerLinkInput>();
|
||
foreach (var item in members)
|
||
{
|
||
list.Add(new UserRobotUpLoad.CustomerLinkInput()
|
||
{
|
||
CreateTime = item.crt_time,
|
||
HeadUrl = item.headurl,
|
||
NickName = item.usernick,
|
||
Remark = item.remark,
|
||
RobotName = item.robot_name,
|
||
RobotType = UserRobotUpLoad.ConvertRobotType(item.robot_type),
|
||
UserName = item.username
|
||
});
|
||
}
|
||
|
||
if (list.Count > 0)
|
||
{
|
||
var result = UserRobotUpLoad.CustomerLink_UpLoadLink(list);
|
||
if (result.Ok)
|
||
{
|
||
db.Saveable(upload).ExecuteCommand();
|
||
}
|
||
}
|
||
upload.userindex++;
|
||
Thread.Sleep(1000);
|
||
}
|
||
|
||
if (upload.userindex * pageSize >= upload.usernumber)
|
||
{
|
||
upload.usersuccess = true;
|
||
db.Saveable(upload).ExecuteCommand();
|
||
}
|
||
}
|
||
|
||
if (!upload.robotsuccess)
|
||
{
|
||
try
|
||
{
|
||
var robots = db.Find<fl_robot_info>("select * from fl_robot_info");
|
||
List<UserRobotUpLoad.CustomerRobotInput> list = new List<UserRobotUpLoad.CustomerRobotInput>();
|
||
foreach (var item in robots)
|
||
{
|
||
list.Add(new UserRobotUpLoad.CustomerRobotInput()
|
||
{
|
||
HeadUrl = string.Empty,
|
||
NickName = item.nick,
|
||
Remark = item.remark,
|
||
RobotType = UserRobotUpLoad.ConvertRobotType(item.type),
|
||
UserName = item.name
|
||
});
|
||
}
|
||
|
||
if (list.Count > 0)
|
||
{
|
||
var result = UserRobotUpLoad.CustomerLink_UpLoadRobot(list);
|
||
if (result.Ok)
|
||
{
|
||
upload.robotsuccess = true;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
upload.robotsuccess = false;
|
||
}
|
||
db.Saveable(upload).ExecuteCommand();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{ }
|
||
finally
|
||
{
|
||
isrun = false;
|
||
}
|
||
}
|
||
|
||
private ChatType SetUserType(int itemType)
|
||
{
|
||
|
||
switch (itemType)
|
||
{
|
||
case 0:
|
||
return ChatType.微信;
|
||
case 1:
|
||
return ChatType.QQ;
|
||
case 2:
|
||
return ChatType.企业微信;
|
||
}
|
||
|
||
return ChatType.微信;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 读取黑名单
|
||
/// </summary>
|
||
/// <param name="isAsc"></param>
|
||
/// <param name="callback"></param>
|
||
public static void ReadBlacklist(DateTime updateDateTime, bool isAsc, Func<List<CloudBlacklistResult>, int, int, bool> callback)
|
||
{
|
||
var size = 1000;
|
||
var index = 1;
|
||
while (true)
|
||
{
|
||
var res = YZCloudApiHelper.GetBlacklist(new BlacklistSearchPagingInput()
|
||
{
|
||
PageIndex = index,
|
||
PageSize = size,
|
||
UserToken = "",
|
||
IsAsc = isAsc,
|
||
UpdateDateTime = updateDateTime,
|
||
AuditState = AuditStateEmun.Succee
|
||
});
|
||
if (res == null || res.Datas.Count <= 0)
|
||
{
|
||
break;
|
||
}
|
||
if (callback?.Invoke(res.Datas, index, res.PageNumber) == true)
|
||
{
|
||
break;
|
||
}
|
||
if (index <= 0)
|
||
{
|
||
break;
|
||
}
|
||
index++;
|
||
}
|
||
}
|
||
|
||
private static bool isrunblackuser = false;
|
||
public void Timer_ElapsedBlackUser(object sender, System.Timers.ElapsedEventArgs e)
|
||
{
|
||
if (isrunblackuser) return;
|
||
isrunblackuser = true;
|
||
var db = ApiClient.GetSession();
|
||
try
|
||
{
|
||
if (timerBlackUser.Interval == 1000)
|
||
timerBlackUser.Interval = 5 * 60 * 1000;
|
||
|
||
#region 同步云黑名单
|
||
|
||
var BlackUserTime = Util.AppConfig_GetValue("BlackUserTime");
|
||
//Util.AppConfig_ModifyItem("BlackUserTime", "");
|
||
ReadBlacklist(
|
||
string.IsNullOrWhiteSpace(BlackUserTime) ? DateTime.MinValue : DateTime.Parse(BlackUserTime), false,
|
||
(items, index, total) =>
|
||
{
|
||
//Console.WriteLine("输出:" + index + "|" + total + "|" + items.Count);
|
||
|
||
BlackUserTime = Util.AppConfig_GetValue("BlackUserTime");
|
||
var syncTime = string.IsNullOrWhiteSpace(BlackUserTime)
|
||
? DateTime.MinValue
|
||
: DateTime.Parse(BlackUserTime);
|
||
if (syncTime != DateTime.MinValue)
|
||
{
|
||
syncTime = syncTime.AddMinutes(-1);
|
||
}
|
||
|
||
bool issyncAdd = false;
|
||
db.Ado.BeginTran();
|
||
foreach (var item in items)
|
||
{
|
||
if (item.UpdateDateTime >= syncTime)
|
||
{
|
||
issyncAdd = true;
|
||
var type = SetUserType(item.Type);
|
||
var info = db.Queryable<fl_blackuser>()
|
||
.Where(w => w.username == item.UserName && w.usertype == type).First();
|
||
if (info == null)
|
||
{
|
||
info = new fl_blackuser();
|
||
info.usertype = type;
|
||
info.username = item.UserName;
|
||
info.nickname = item.UserNick;
|
||
info.remark = item.Remark;
|
||
info.avatar = item.Avatar;
|
||
info.updatetime = item.UpdateDateTime; //DateTime.Now;
|
||
info.isdel = item.IsRemove;
|
||
info.iscloud = true;
|
||
db.Insertable(info).ExecuteCommand();
|
||
}
|
||
else
|
||
{
|
||
//if (info.isdel)
|
||
//{
|
||
// //如果本地已经删除,则忽略。
|
||
// continue;
|
||
//}
|
||
|
||
info.avatar = item.Avatar;
|
||
info.isdel = item.IsRemove;
|
||
info.updatetime = item.UpdateDateTime;
|
||
info.remark = item.Remark;
|
||
info.iscloud = true;
|
||
db.Updateable(info).ExecuteCommand();
|
||
}
|
||
}
|
||
}
|
||
|
||
if (issyncAdd)
|
||
{
|
||
//保存最后同步的时间
|
||
Util.AppConfig_ModifyItem("BlackUserTime",
|
||
items.LastOrDefault().UpdateDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
|
||
|
||
//items.LastOrDefault().UpdateDateTime);
|
||
}
|
||
|
||
db.Ado.CommitTran();
|
||
return false;
|
||
});
|
||
#endregion
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
db.Ado.RollbackTran();
|
||
}
|
||
finally
|
||
{
|
||
isrunblackuser = false;
|
||
}
|
||
}
|
||
|
||
private void barButtonItem108_ItemClick(object sender, ItemClickEventArgs e)
|
||
{
|
||
//TODO 快手
|
||
return;
|
||
if (LoginCps(CpsType.快手联盟) != null)
|
||
ItemClick(btn_cps_manage, e);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|