old_flsystem/应用/WeChatCollectMoney/Class1.cs

163 lines
5.4 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
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);
}
}
}
}