using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Api.Framework.SDK; using WeChatCollectMoney.Properties; using WeChatCollectMoney.Forms; using Api.Framework; using Api.Framework.Tools; using Chat.Framework.WXSdk; using Chat.Framework.WXSdk.Events; using Api.Framework.Model; using Chat.Framework.WXSdk.Implement; namespace WeChatCollectMoney { public class Class1 : Plugin { public Class1() { this.Name = Resources.PluginName; this.Note = Resources.PluginNote; this.Logo = Resources.微信收款; } #region 自定义变量 private MainForm mainForm = null; #endregion public override void Start() { try { var session = ApiClient.GetSession(); if (!session.TableExist()) session.CreateTable(); SDK.WXReicevePay += SDK_WXReicevePay; SDK.ReciveIMEvent += SDK_ReciveIMEvent; SDK.WXNewMemerEvent += SDK_WXNewMemerEvent; } catch (Exception ex) { this.OnLog(ex.Message); } } private void SDK_ReciveIMEvent(object sender, ReciveIMEvent e) { if (e.Message == "邀请统计" && !string.IsNullOrEmpty(e.Groupid) && e.ChatType == ChatType.微信) { try { var client = e.Sender as WXClientImpl_IPAD; var ms = client.GetMembers(e.Groupid); if (ms == null) return; var members = ms.Where(f => f.InviterUserName == e.Username).ToList(); StringBuilder sb = new StringBuilder("一一邀 请 统 计一一\r\n"); sb.Append("\r\n"); if (members.Count != 0) { foreach (var item in members) { sb.Append(item.NickName); sb.Append(","); } sb.Append("\r\n"); sb.Append("【邀请人数】" + members.Count + " 人"); } else sb.Append("暂无记录!"); e.SendMessage(sb.ToString()); } catch (Exception ex) { this.OnLog(ex.Message); } } } private void SDK_WXNewMemerEvent(object sender, Chat.Framework.WXSdk.Events.WXNewMemer e) { refresh_members_relationship(e); } /// /// 刷新群成员关系 /// /// private void refresh_members_relationship(WXNewMemer e) { //刷新群成员 e.Client.GetMembers(e.GroupId, true); } /// /// 收到转账 /// private void SDK_WXReicevePay(object sender, Chat.Framework.WXSdk.Events.WXReicevePay e) { try { var money = e.Client.TenPayTransferConfirm(e.Invalidtime, e.Transferid, e.Friend.UserName); if (money != -1) { var session = ApiClient.GetSession(); var member = session.FindRow("select id from fl_member_info where username = @username and robot_type = @robotType and robot_name = @robotName", new { username = e.Friend.UserName, robotType = (int)ChatType.微信, robotName = e.Client.WeixinHao }); var robot = session.FindRow("select id from fl_robot_info where name = @name and type = @robotType", new { name = e.Client.WeixinHao, robotType = (int)ChatType.微信 }); if (member != null && robot != null) { session.Insertable(new fl_plugin_wechatcollectmoney_log() { invalidtime = DateTime.Now, member_id = long.Parse(member["id"].ToString()), money = (double)((decimal)money / 100), robot_id = long.Parse(robot["id"].ToString()), transferid = e.Transferid }).ExecuteCommand(); } } } catch (Exception ex) { this.OnLog(ex.Message); } } public override void ShowForm() { try { if (mainForm == null || mainForm.IsDisposed) { mainForm = new MainForm(); mainForm.Show(); } mainForm.TopMost = true; mainForm.TopMost = false; } catch (Exception ex) { this.OnLog(ex.Message); } } public override void Stop() { try { if (mainForm != null) { mainForm.CloseForm(); mainForm = null; } } catch (Exception ex) { this.OnLog(ex.Message); } } } }