163 lines
5.4 KiB
C#
163 lines
5.4 KiB
C#
|
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<fl_plugin_wechatcollectmoney_log>()) session.CreateTable<fl_plugin_wechatcollectmoney_log>();
|
|||
|
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);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 刷新群成员关系
|
|||
|
/// </summary>
|
|||
|
/// <param name="e"></param>
|
|||
|
private void refresh_members_relationship(WXNewMemer e)
|
|||
|
{
|
|||
|
//刷新群成员
|
|||
|
e.Client.GetMembers(e.GroupId, true);
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 收到转账
|
|||
|
/// </summary>
|
|||
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|