old_flsystem/应用/KSRebate/Class1.cs

490 lines
28 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;
using System.Threading.Tasks;
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 Chat.Framework;
using Chat.Framework.WXSdk;
using Chat.Framework.WXSdk.Implement;
using CsharpHttpHelper;
using KSRebate.Properties;
namespace KSRebate
{
public class Class1 : Plugin
{
public Class1()
{
this.Logo = Resources.;
this.Name = Resources.PluginName;
this.Note = Resources.PluginNote;
}
#region
public static Config Config;
private MainForm mainForm = null;
#endregion
public override void Start()
{
try
{
//创建配置文件
Config = this.ReadConfig<Config>();
SDK.ReciveIMEvent += SDK_ReciveIMEvent;
SDK.OrderNoticeEvent += SDK_OrderNoticeEvent;
}
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);
}
}
public void SDK_OrderNoticeEvent(object sender, OrderNoticeEvent e)
{
try
{
if (e.ChatType == CpsType.)
{
var session = ApiClient.GetSession();
//订单信息
var order_ks = e.Order as fl_order_kuaishou;
if (order_ks == null) return;
if (e.Member != null)
{
//是否黑名单
if (ApiClient.IsBlackFlMemberInfo(e.Member))
{
return;
}
2022-09-20 03:10:29 +00:00
#region
var robot_info = session.FindRobotInfo(e.Member.robot_name.Trim(), e.Member.robot_type);
if (robot_info != null)
{
var mess = string.Empty;
var point = HttpHelper.JsonToObject<ItemPoint>(order_ks.db_point) as ItemPoint;
#region ()
if (e.Customer == null)
{
var prevent_theft_cache = session.FindSingle<fl_prevent_theft_cache>("select * from fl_prevent_theft_cache where order_id = @order_id", new { order_id = order_ks.oid });//防止上级多次触发
if (prevent_theft_cache == null)
{
var isHint = false;
if (order_ks.sellerId != 0 && e.Member.status != MemberType.)
{
#region ()
if (Class1.Config.AShop_SameCommodity_Switch)
{
var frequency = session.Find<fl_order_kuaishou>("select * from fl_order_kuaishou where db_userid = @db_userid and itemId = @itemId", new { db_userid = order_ks.db_userid, itemId = order_ks.itemId }).Count;//获取同价店铺同一件商品购买的次数
if (Class1.Config.AShop_SameCommodity_Number <= frequency)
{
if (Class1.Config.AShop_SameCommodity_OperateType == OperateType.)
{
if (!session.TemporaryBypassedBlack(e.Member))
{
e.Member.status = MemberType.; //拉入黑名单
session.SaveOrUpdate(e.Member);
session.FindBlacklistMemberInfos(true);//刷新黑名单缓存
ApiClient.SendMessage(robot_info, e.Member.username, new VariateReplace().CommonReplace(Config.Blocked_RestrictTip, order_ks, e.Member, point), order_ks.msg_groupid);
ApiClient.SendNoticeMessage($@"嫌疑用户拉黑
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{frequency}", Config.notice_robotname);
e.Cancel = true;
{
prevent_theft_cache = new fl_prevent_theft_cache();
prevent_theft_cache.operate_type = Class1.Config.AShop_SameCommodity_OperateType;
prevent_theft_cache.member_id = e.Member.id;
prevent_theft_cache.item_id = order_ks.itemId.ToString();
prevent_theft_cache.mall_id = order_ks.sellerId.ToString();
prevent_theft_cache.order_id = order_ks.oid.ToString();
prevent_theft_cache.cps_type = CpsType.;
session.Insertable(prevent_theft_cache).ExecuteCommand();
}
if (Config.AShop_SameCommodity_UserTop)
{
if (robot_info.type == ChatType.)
{
var wx = ChatClient.WXClient.Values.FirstOrDefault(f => f.WeixinHao == robot_info.name);
if (wx != null)
wx.EditContacts(e.Member.username, EditContactsType., e.Member.usernick);
}
}
return;
}
}
else if (Class1.Config.AShop_SameCommodity_OperateType == OperateType.)
{
ApiClient.SendNoticeMessage($@"嫌疑用户警告
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{frequency}", Config.notice_robotname);
isHint = true;
}
}
}
#endregion
#region ()
if (!isHint && Class1.Config.AShop_DifferentCommodity_Switch)
{
var frequency = session.Find<fl_order_kuaishou>("select * from fl_order_kuaishou where db_userid = @db_userid and sellerId = @sellerId", new { db_userid = order_ks.db_userid, sellerId = order_ks.sellerId }).Count;
if (Class1.Config.AShop_DifferentCommodity_Number <= frequency)
{
if (Class1.Config.AShop_DifferentCommodity_OperateType == OperateType.)
{
if (!session.TemporaryBypassedBlack(e.Member))
{
e.Member.status = MemberType.; //拉入黑名单
session.SaveOrUpdate(e.Member);
session.FindBlacklistMemberInfos(true);//刷新黑名单缓存
ApiClient.SendMessage(robot_info, e.Member.username, new VariateReplace().CommonReplace(Config.Blocked_RestrictTip, order_ks, e.Member, point), order_ks.msg_groupid);
ApiClient.SendNoticeMessage($@"嫌疑用户拉黑
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{frequency}", Config.notice_robotname);
e.Cancel = true;
{
prevent_theft_cache = new fl_prevent_theft_cache();
prevent_theft_cache.operate_type = Class1.Config.AShop_DifferentCommodity_OperateType;
prevent_theft_cache.member_id = e.Member.id;
prevent_theft_cache.item_id = order_ks.itemId.ToString();
prevent_theft_cache.mall_id = order_ks.sellerId.ToString();
prevent_theft_cache.order_id = order_ks.oid.ToString();
prevent_theft_cache.cps_type = CpsType.;
session.Insertable(prevent_theft_cache).ExecuteCommand();
}
if (Config.AShop_DifferentCommodity_UserTop)
{
if (robot_info.type == ChatType.)
{
var wx = ChatClient.WXClient.Values.FirstOrDefault(f => f.WeixinHao == robot_info.name);
if (wx != null)
wx.EditContacts(e.Member.username, EditContactsType., e.Member.usernick);
}
}
return;
}
}
else if (Class1.Config.AShop_DifferentCommodity_OperateType == OperateType.)
{
ApiClient.SendNoticeMessage($@"嫌疑用户警告
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{frequency}", Config.notice_robotname);
isHint = true;
}
}
}
#endregion
}
#region
if (!isHint && Class1.Config.ReceivingTimeCheck_Switch && (order_ks.cpsOrderStatus == CpsOrderStatus. || order_ks.cpsOrderStatus == CpsOrderStatus.) && e.Member.status != MemberType.)
{
if (order_ks.settlementSuccessTime != DateTime.MinValue)
{
var timeLag = (int)Math.Floor((order_ks.settlementSuccessTime - order_ks.payTime).TotalHours);
if (timeLag <= Class1.Config.ReceivingTimeCheck_Hour)
{
if (Class1.Config.ReceivingTimeCheck_OperateType == OperateType.)
{
if (!session.TemporaryBypassedBlack(e.Member))
{
e.Member.status = MemberType.; //拉入黑名单
session.SaveOrUpdate(e.Member);
session.FindBlacklistMemberInfos(true);//刷新黑名单缓存
ApiClient.SendMessage(robot_info, e.Member.username, new VariateReplace().CommonReplace(Config.Blocked_RestrictTip, order_ks, e.Member, point), order_ks.msg_groupid);
ApiClient.SendNoticeMessage($@"嫌疑用户拉黑
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{timeLag}", Config.notice_robotname);
e.Cancel = true;
{
prevent_theft_cache = new fl_prevent_theft_cache();
prevent_theft_cache.operate_type = Class1.Config.ReceivingTimeCheck_OperateType;
prevent_theft_cache.member_id = e.Member.id;
prevent_theft_cache.item_id = order_ks.itemId.ToString();
prevent_theft_cache.mall_id = order_ks.sellerId.ToString();
prevent_theft_cache.order_id = order_ks.oid.ToString();
prevent_theft_cache.cps_type = CpsType.;
session.Insertable(prevent_theft_cache).ExecuteCommand();
}
if (Config.ReceivingTimeCheck_UserTop)
{
if (robot_info.type == ChatType.)
{
var wx = ChatClient.WXClient.Values.FirstOrDefault(f => f.WeixinHao == robot_info.name);
if (wx != null)
wx.EditContacts(e.Member.username, EditContactsType., e.Member.usernick);
}
}
return;
}
}
else if (Class1.Config.ReceivingTimeCheck_OperateType == OperateType.)
{
ApiClient.SendNoticeMessage($@"嫌疑用户警告
{robot_info.name}
{robot_info.nick}
{e.Member.username}
{e.Member.usernick}
{timeLag}", Config.notice_robotname);
}
}
}
}
#endregion
}
}
#endregion
switch (e.OrderNoticeType)
{
case OrderNoticeType.:
{
if (Config.UserOrderChangeSwitch == SwitchType. && !ApiClient.Setting.SystemConfig.message_warning_switch)
{
mess = _GetOrderStateMess(order_ks.db_status, order_ks, e.Member, point);
if (!string.IsNullOrEmpty(e.Member.username) && !string.IsNullOrEmpty(mess))
ApiClient.SendMessage(robot_info, e.Member.username, mess, order_ks.msg_groupid);
}
}
return;
case OrderNoticeType.:
if (Config.AgentReceivedCommissionSwitch == SwitchType.)
{
if (e.Customer != null && point.AwardOne != 0)
{
if (order_ks.db_status == SystemOrderStatus.退)
mess = Config.ClientOrderRefund_OneLevelTip;
if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderPaymentInform_OneLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderCountermandInform_OneLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderSettlement_OneLevelTip;
}
}
break;
case OrderNoticeType.:
if (Config.AgentReceivedCommissionSwitch == SwitchType.)
{
if (e.Customer != null)
{
if (order_ks.db_status == SystemOrderStatus.退)
mess = Config.ClientOrderRefund_TwoLevelTip;
if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderPaymentInform_TwoLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderCountermandInform_TwoLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderSettlement_TwoLevelTip;
}
}
break;
case OrderNoticeType.:
if (Config.AgentReceivedCommissionSwitch == SwitchType.)
{
if (e.Customer != null)
{
if (order_ks.db_status == SystemOrderStatus.退)
mess = Config.ClientOrderRefund_ThreeLevelTip;
if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderPaymentInform_ThreeLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderCountermandInform_ThreeLevelTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderSettlement_ThreeLevelTip;
}
}
break;
case OrderNoticeType.:
if (Config.PrincipalReceivedCommissionSwitch == SwitchType.)
{
if (e.Customer != null)
{
if (order_ks.db_status == SystemOrderStatus.退)
mess = Config.ClientOrderRefund_LeaderTip;
if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderPaymentInform_LeaderTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderCountermandInform_LeaderTip;
else if (order_ks.db_status == SystemOrderStatus.)
mess = Config.OrderSettlement_LeaderTip;
}
}
break;
default:
break;
}
if (!ApiClient.Setting.SystemConfig.message_warning_switch && !string.IsNullOrEmpty(e.Member.username) && !string.IsNullOrWhiteSpace(mess))
ApiClient.SendMessage(robot_info, e.Member.username, new VariateReplace().CommonReplace(mess, order_ks, e.Member, point).Replace("[下级昵称]", e.Customer.realnick ?? ""));
}
#endregion
}
}
}
catch (Exception ex)
{
this.OnLog(ex.Message);
}
}
private void SDK_ReciveIMEvent(object sender, ReciveIMEvent e)
{
try
{
//过滤表情xml和卡片xml
if ((e.Message.Contains(@"<appmsg appid=") || e.Message.Contains(@"<msg><emoji") || e.Message.StartsWith("[声音=")) && !e.Message.Contains(@"快手")) return;
if (!OrderHelper.IsCurrentCpsMess(e.Message, CpsType.)) return;
var session = ApiClient.GetSession();
var _member = e.GetMemberinfo();
var mOper = new MessageOperation(sender, e, this);
//手动发送订单号绑定
if (mOper.BindOrderId()) return;
//var stopWatch = new Stopwatch();
//stopWatch.Start();
var flag = mOper.AnalyseFanLi();
//stopWatch.Stop();
//this.OnLog($"用时间 {e.NickName}({e.Username}) => {e.Message} => " + stopWatch.Elapsed.TotalSeconds.ToString("0.0000"));
//返利消息判断
if (flag) return;
}
catch (Exception ex)
{
this.OnLog($"快手返利插件异常.:{ex.Message} - {ex.StackTrace}");
}
}
#region
/// <summary>
/// 订单状态 提示语替换
/// </summary>
/// <param name="order"></param>
/// <param name="objs"></param>
/// <returns></returns>
public static string _GetOrderStateMess(SystemOrderStatus order, params object[] objs)
{
var mess = string.Empty;
switch (order)
{
case SystemOrderStatus.:
mess = new VariateReplace().CommonReplace(Class1.Config.OrderPaymentTip, objs);
break;
case SystemOrderStatus.:
mess = new VariateReplace().CommonReplace(Class1.Config.OrderFailureTip, objs);
break;
case SystemOrderStatus.退:
mess = new VariateReplace().CommonReplace(Class1.Config.OrderRefundTip, objs);
break;
case SystemOrderStatus.退:
case SystemOrderStatus.:
//mess = new VariateReplace().CommonReplace(Class1.Config.OrderRefundTip, objs);
break;
case SystemOrderStatus.:
mess = new VariateReplace().CommonReplace(Class1.Config.OrderSettlementTip, objs);
break;
case SystemOrderStatus.:
mess = new VariateReplace().CommonReplace(Class1.Config.OrderFreezeTip, objs);
break;
}
return mess;
}
#endregion
}
}