1042 lines
66 KiB
C#
1042 lines
66 KiB
C#
using Api.Framework;
|
||
using Api.Framework.SDK;
|
||
using Api.Framework.Tools;
|
||
using PDDRebate.Entitys;
|
||
using PDDRebate.Properties;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text.RegularExpressions;
|
||
using Api.Framework.Model;
|
||
using Api.Framework.Enums;
|
||
using CsharpHttpHelper;
|
||
using System.Threading;
|
||
using Api.Framework.Events;
|
||
using Api.Framework.Timers;
|
||
using Chat.Framework;
|
||
using Chat.Framework.WXSdk.Implement;
|
||
using Chat.Framework.WXSdk;
|
||
using Newtonsoft.Json;
|
||
|
||
namespace PDDRebate
|
||
{
|
||
public class Class1 : Plugin
|
||
{
|
||
public Class1()
|
||
{
|
||
this.Name = Resources.PluginName;
|
||
this.Note = Resources.PluginNote;
|
||
this.Logo = Resources.拼多多;
|
||
}
|
||
|
||
#region 自定义变量
|
||
public static Config Config;
|
||
private MainForm mainForm = null;
|
||
|
||
#endregion
|
||
|
||
public override void Start()
|
||
{
|
||
try
|
||
{
|
||
var session = ApiClient.GetSession();
|
||
#region 判断表是否存在,不存在创建表
|
||
|
||
if (session.TableExist<fl_plugin_pddrebate_pddtgw>())
|
||
{
|
||
|
||
var pddtgws = session.Find<fl_plugin_pddrebate_pddtgw>("select * from fl_plugin_pddrebate_pddtgw").ToList();
|
||
if (pddtgws != null)
|
||
{
|
||
foreach (var item in pddtgws)
|
||
{
|
||
//插入主推广位数据
|
||
session.Insertable(new fl_adzone_info()
|
||
{
|
||
adzone_name = item.pid_chief_name, //推广位名称
|
||
adzone_pid = item.pid_chief, //推广位pid
|
||
adzone_pid_cps_name = item.pid_chief_cps_name, //推广位cps名称
|
||
alliance_id = (int)CpsType.多多进宝, //联盟id
|
||
robot_id = item.robot_id, //机器人id
|
||
group_id = string.Empty, //群id
|
||
is_download = false, //不下载
|
||
member_id = 0, //私人id
|
||
onoff = item.onoff, //不禁用
|
||
custom_type = Resources.SoftwareType, //自定义类型
|
||
extend = "chief"
|
||
}).ExecuteCommand();
|
||
//插入副推广位数据
|
||
session.Insertable(new fl_adzone_info()
|
||
{
|
||
adzone_name = item.pid_deputy_name, //推广位名称
|
||
adzone_pid = item.pid_deputy, //推广位pid
|
||
adzone_pid_cps_name = item.pid_deputy_cps_name, //推广位cps名称
|
||
alliance_id = (int)CpsType.多多进宝, //联盟id
|
||
robot_id = item.robot_id, //机器人id
|
||
group_id = string.Empty, //群id
|
||
is_download = false, //不下载
|
||
member_id = 0, //私人id
|
||
onoff = item.onoff, //不禁用
|
||
custom_type = Resources.SoftwareType, //自定义类型
|
||
extend = "deputy"
|
||
}).ExecuteCommand();
|
||
}
|
||
}
|
||
session.DropTable<fl_plugin_pddrebate_pddtgw>();
|
||
}
|
||
#endregion
|
||
|
||
//创建配置文件
|
||
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
|
||
{
|
||
SessionExt.Clear();
|
||
if (mainForm != null)
|
||
{
|
||
mainForm.CloseForm();
|
||
mainForm = null;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.OnLog(ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 订单通知
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void SDK_OrderNoticeEvent(object sender, OrderNoticeEvent e)
|
||
{
|
||
try
|
||
{
|
||
if (e.ChatType == CpsType.多多进宝)
|
||
{
|
||
//this.OnLog("拼多多订单:" + HttpHelper.ObjectToJson(e));
|
||
|
||
var session = ApiClient.GetSession();
|
||
var order_pdd = e.Order as fl_order_pinduoduo;
|
||
if (order_pdd == null) return;
|
||
|
||
if (e.Member != null)
|
||
{
|
||
//是否黑名单
|
||
if (ApiClient.IsBlackFlMemberInfo(e.Member))
|
||
{
|
||
return;
|
||
}
|
||
|
||
var robot_info = session.FindRobotInfo(e.Member.robot_name, e.Member.robot_type);
|
||
|
||
if (robot_info != null)
|
||
{
|
||
var mess = string.Empty;
|
||
var point = HttpHelper.JsonToObject<ItemPoint>(order_pdd.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_pdd.order_sn });//防止上级多次触发
|
||
if (prevent_theft_cache == null)
|
||
{
|
||
var isHint = false;
|
||
if (!string.IsNullOrWhiteSpace(order_pdd.mall_id) && e.Member.status != MemberType.白名单)
|
||
{
|
||
#region 同一店铺多次购买(同一商品)
|
||
if (Class1.Config.AShop_SameCommodity_Switch)
|
||
{
|
||
var frequency = session.Find<fl_order_pinduoduo>("select * from fl_order_pinduoduo where db_userid = @db_userid and goods_id = @goods_id", new { db_userid = order_pdd.db_userid, goods_id = order_pdd.goods_id }).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_pdd, e.Member, point), order_pdd.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_pdd.goods_id;
|
||
prevent_theft_cache.mall_id = order_pdd.mall_id;
|
||
prevent_theft_cache.order_id = order_pdd.order_sn;
|
||
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 /*&& f.WeixinType == WeixinType.Grpc微信*/);
|
||
if (wx != null)
|
||
{
|
||
//var ipad = wx as WXClientImpl_IPAD;
|
||
//if (ipad != null)
|
||
// ipad.EditContacts(e.Member.username, EditContactsType.置顶, e.Member.usernick);
|
||
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_pinduoduo>("select * from fl_order_pinduoduo where db_userid = @db_userid and mall_id = @mall_id", new { db_userid = order_pdd.db_userid, mall_id = order_pdd.mall_id }).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_pdd, e.Member, point), order_pdd.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_pdd.goods_id;
|
||
prevent_theft_cache.mall_id = order_pdd.mall_id;
|
||
prevent_theft_cache.order_id = order_pdd.order_sn;
|
||
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 /*&& f.WeixinType == WeixinType.Grpc微信*/);
|
||
if (wx != null)
|
||
{
|
||
//var ipad = wx as WXClientImpl_IPAD;
|
||
//if (ipad != null)
|
||
// ipad.EditContacts(e.Member.username, EditContactsType.置顶, e.Member.usernick);
|
||
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_pdd.order_status == 2 && e.Member.status != MemberType.白名单)
|
||
{
|
||
if (DateTime.Now != DateTime.MinValue)
|
||
{
|
||
var timeLag = (int)Math.Floor((DateTime.Now - order_pdd.order_create_time).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_pdd, e.Member, point), order_pdd.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_pdd.goods_id;
|
||
prevent_theft_cache.mall_id = order_pdd.mall_id;
|
||
prevent_theft_cache.order_id = order_pdd.order_sn;
|
||
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 /*&& f.WeixinType == WeixinType.Grpc微信 */);
|
||
if (wx != null)
|
||
{
|
||
//var ipad = wx as WXClientImpl_IPAD;
|
||
//if (ipad != null)
|
||
// ipad.EditContacts(e.Member.username, EditContactsType.置顶, e.Member.usernick);
|
||
wx.EditContacts(e.Member.username, EditContactsType.置顶, e.Member.usernick);
|
||
}
|
||
}
|
||
}
|
||
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
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_pdd.db_status, order_pdd, e.Member, point);
|
||
if (!string.IsNullOrEmpty(e.Member.username) && !string.IsNullOrEmpty(mess))
|
||
ApiClient.SendMessage(robot_info, e.Member.username, mess, order_pdd.msg_groupid);
|
||
}
|
||
return;
|
||
case OrderNoticeType.一级提成:
|
||
if (Config.AgentReceivedCommissionSwitch == SwitchType.开启)
|
||
{
|
||
if (e.Customer != null && point.AwardOne != 0)
|
||
{
|
||
if (order_pdd.db_status == SystemOrderStatus.订单维权中)
|
||
mess = Config.ClientOrderRefund_OneLevelTip;
|
||
if (order_pdd.db_status == SystemOrderStatus.订单付款)
|
||
mess = Config.OrderPaymentInform_OneLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单失效)
|
||
mess = Config.OrderCountermandInform_OneLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单结算)
|
||
mess = Config.OrderSettlement_OneLevelTip;
|
||
}
|
||
}
|
||
break;
|
||
case OrderNoticeType.二级提成:
|
||
if (Config.AgentReceivedCommissionSwitch == SwitchType.开启)
|
||
{
|
||
if (e.Customer != null)
|
||
{
|
||
if (order_pdd.db_status == SystemOrderStatus.订单维权中)
|
||
mess = Config.ClientOrderRefund_TwoLevelTip;
|
||
if (order_pdd.db_status == SystemOrderStatus.订单付款)
|
||
mess = Config.OrderPaymentInform_TwoLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单失效)
|
||
mess = Config.OrderCountermandInform_TwoLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单结算)
|
||
mess = Config.OrderSettlement_TwoLevelTip;
|
||
}
|
||
}
|
||
break;
|
||
case OrderNoticeType.三级提成:
|
||
if (Config.AgentReceivedCommissionSwitch == SwitchType.开启)
|
||
{
|
||
if (e.Customer != null)
|
||
{
|
||
if (order_pdd.db_status == SystemOrderStatus.订单维权中)
|
||
mess = Config.ClientOrderRefund_ThreeLevelTip;
|
||
if (order_pdd.db_status == SystemOrderStatus.订单付款)
|
||
mess = Config.OrderPaymentInform_ThreeLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单失效)
|
||
mess = Config.OrderCountermandInform_ThreeLevelTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单结算)
|
||
mess = Config.OrderSettlement_ThreeLevelTip;
|
||
}
|
||
}
|
||
break;
|
||
case OrderNoticeType.群主分成:
|
||
if (Config.PrincipalReceivedCommissionSwitch == SwitchType.开启)
|
||
{
|
||
if (e.Customer != null)
|
||
{
|
||
if (order_pdd.db_status == SystemOrderStatus.订单维权中)
|
||
mess = Config.ClientOrderRefund_LeaderTip;
|
||
if (order_pdd.db_status == SystemOrderStatus.订单付款)
|
||
mess = Config.OrderPaymentInform_LeaderTip;
|
||
else if (order_pdd.db_status == SystemOrderStatus.订单失效)
|
||
mess = Config.OrderCountermandInform_LeaderTip;
|
||
else if (order_pdd.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_pdd, e.Member, point).Replace("[下级昵称]", e.Customer.realnick ?? ""));
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
#region 多人查询通知消息
|
||
var querys = session.Find<queryhist_temp>("select robot_name,type,userid from fl_query_hist where itemid=@itemid and adzoneid = @adzoneid and userid > 0 and crt_time>@time and is_multiple=@is_multiple group by userid,type,robot_name", new { itemid = order_pdd.goods_id, adzoneid = order_pdd.p_id, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss"), is_multiple = false });
|
||
if (querys.Count > 0)
|
||
{
|
||
for (int i = 0; i < querys.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (querys[i].type != CpsType.多多进宝) continue;
|
||
//未绑定的数量
|
||
var unbound_count = int.Parse(session.FindTable($"select count(id) as num from fl_order_pinduoduo where order_sn = @order_sn and db_userid != 0", new { order_sn = order_pdd.order_sn }).Rows[0]["num"].ToString());
|
||
if (unbound_count != 0) break;//已经被绑定直接停止
|
||
|
||
var queryhist_temp = querys[i];
|
||
var userid = queryhist_temp.userid;
|
||
var robot_name = queryhist_temp.robot_name;
|
||
var robot_info = session.Find<fl_robot_info>("select * from fl_robot_info where name = @name", new { name = robot_name }).FirstOrDefault();//机器人类型应该是没有的,直接通过机器人name查询机器人信息
|
||
if (robot_info != null)
|
||
{
|
||
Thread.Sleep(5000);
|
||
var wxbase = ChatClient.WXClient.Values.ToList().FirstOrDefault(f => f.WeixinHao == robot_name);
|
||
if (wxbase != null && wxbase.Status == WxStatus.在线)
|
||
{
|
||
var member = session.FindMemberInfoById(userid);
|
||
if (member != null)
|
||
{
|
||
ApiClient.SendMessage(robot_info, member.username, Config.LotUserQueryBindTip.Replace("[商品标题]", order_pdd.goods_name));
|
||
|
||
//session.ExcuteSQL("update fl_query_hist set userid = @newuserid where itemid = @itemid and adzoneid = @adzoneid and robot_name = @robotname and userid = @userid", new { newuserid = (i - querys.Count + 1), itemid = order_pdd.goods_id, adzoneid = order_pdd.p_id, robotname = robot_name, userid = member.id });
|
||
session.ExcuteSQL("update fl_query_hist set is_multiple = @is_multiple where itemid = @itemid and adzoneid = @adzoneid and robot_name = @robotname and userid = @userid", new { is_multiple = true, itemid = order_pdd.goods_id, adzoneid = order_pdd.p_id, robotname = robot_name, userid = member.id });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.OnLog(ex.Message);
|
||
}
|
||
}
|
||
|
||
private void SDK_ReciveIMEvent(object sender, ReciveIMEvent e)
|
||
{
|
||
Compute compute = null;
|
||
string goods_name = string.Empty;
|
||
try
|
||
{
|
||
//过滤表情xml
|
||
if (e.Message.Contains(@"<msg><emoji") || e.Message.StartsWith("[声音=")) return;
|
||
if (!OrderHelper.IsCurrentCpsMess(e.Message, CpsType.多多进宝)) return;
|
||
var _member = e.GetMemberinfo();
|
||
#region 拼多多订单绑定
|
||
if (Regex.IsMatch(e.Message.Trim(), @"^\d{6}-\d{15}$"))
|
||
{
|
||
int i = 0;
|
||
Next:
|
||
var orderid = e.Message.Trim();
|
||
|
||
//通过宝贝的id 和 订单号 进行查询 查看是否存在
|
||
var session = ApiClient.GetSession();
|
||
var order = session.FindSingle<fl_order_pinduoduo>("select * from fl_order_pinduoduo where order_sn = @order_sn", new { order_sn = orderid });
|
||
if (order != null)
|
||
{
|
||
if (order.db_userid != 0 && order.db_userid != _member.id)
|
||
{
|
||
e.SendMessage(Config.OccupyOrderErrorTip.Replace("[订单号]", orderid));
|
||
return;
|
||
}
|
||
|
||
var notices = new List<OrderNoticeEvent>();
|
||
var downPinduoduoTimer = new DownPinduoduoTimer();
|
||
|
||
if (order.db_userid != 0)
|
||
{
|
||
var point = HttpHelper.JsonToObject<ItemPoint>(order.db_point) as ItemPoint;
|
||
_member = e.GetMemberinfo(true);
|
||
if (order.db_status == SystemOrderStatus.订单付款)
|
||
e.SendMessage(new VariateReplace().CommonReplace(Config.OrderRepetBindTip, order, _member, point));
|
||
else
|
||
e.SendMessage(_GetOrderStateMess(order.db_status, order, _member, point));
|
||
}
|
||
else
|
||
{
|
||
if (order.order_create_time < ApiClient.Setting.SystemConfig.allow_bind_create_order_time)
|
||
{
|
||
e.SendMessage($"订单:{orderid},已经过了有效绑定时间!");
|
||
return;
|
||
}
|
||
|
||
if (order.db_status == SystemOrderStatus.订单结算)
|
||
order.db_endtime = DateTime.Now.AddMinutes(-5);//重新结算的话,需要将订单的冻结时间重新赋值,让后台处理
|
||
//用户绑定订单
|
||
order.db_robotname = e.RobotName;
|
||
order.db_robottype = e.ChatType;
|
||
order.msg_groupid = e.Groupid;
|
||
order.db_userid = _member.id;
|
||
order.db_point = string.Empty;
|
||
session.SaveOrUpdate(order);
|
||
|
||
if (_member != null)
|
||
{
|
||
_member.bind_order++;
|
||
_member = session.UpdateMemberGroup(_member);
|
||
}
|
||
|
||
#region 首次付款时间
|
||
var record = session.FindStatisticsRecord(_member.id);
|
||
if (record == null)
|
||
{
|
||
record = new fl_statistics_record() { uid = _member.id, ex2 = 0, ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now) };
|
||
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
|
||
}
|
||
else
|
||
{
|
||
if (record.ex2 == 0 && record.ex4 == 0)
|
||
{
|
||
record.ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now);
|
||
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
downPinduoduoTimer.UpdateOrder(order, session, notices, isFrontData: true);
|
||
}
|
||
|
||
#region 触发通知上级获得下级的提成奖励
|
||
if (!ApiClient.Setting.SystemConfig.message_warning_switch && notices.Count != 0)
|
||
{
|
||
var tasks = TimerTask.GetTimer<Update_NoticeQueue>() as Update_NoticeQueue;
|
||
foreach (var item in notices)
|
||
{
|
||
//if (item.IsRewards)
|
||
tasks.Add(item);
|
||
//else
|
||
//SDK_OrderNoticeEvent(this, item);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
e.Cancel = true;
|
||
}
|
||
else
|
||
{
|
||
if (i < 1)
|
||
{
|
||
CpsClient.UpdateOrder(CpsType.多多进宝, DateTime.Now.AddMinutes(-30), DateTime.Now, orderid);
|
||
i++;
|
||
goto Next;
|
||
}
|
||
e.SendMessage(Config.NotFoundOrderErrorTip.Replace("[订单号]", orderid));
|
||
e.Cancel = true;
|
||
return;
|
||
}
|
||
|
||
}
|
||
|
||
if (OrderHelper.IsOrderId(e.Message.Trim()))
|
||
return;
|
||
#endregion
|
||
|
||
#region 拼多多链接解析
|
||
|
||
#region 拼多多解析商品图片
|
||
string QRCodeUrl = string.Empty;
|
||
if (Config.QRCodeSearchSwitch == SwitchType.开启)
|
||
{
|
||
var reg_ = Regex.Match(e.Message, @"\[图片=(?<二维码图片>.+?)\]");
|
||
if (reg_.Success)
|
||
QRCodeUrl = Util.DecodeQRCode(reg_.Groups["二维码图片"].Value, Util.DecodeQRCodeType.Caoliao);//解析的二维码图片所得到的二维码内容
|
||
}
|
||
#endregion
|
||
|
||
//判断消息中是否包含拼多多链接信息
|
||
var goods_id = PDDHelper.GetPddGoodsID(string.IsNullOrEmpty(QRCodeUrl) ? e.Message.Trim() : QRCodeUrl);
|
||
if (!string.IsNullOrEmpty(goods_id))
|
||
{
|
||
//this.OnLog($"拼多多编码 = {goods_id}");
|
||
#region 限制商品ID
|
||
if (Class1.Config.ItemIDRestrictList.Contains(goods_id))
|
||
{
|
||
e.SendMessage(Config.ItemIDRestrictTip.Replace("[商品ID]", goods_id));
|
||
return;
|
||
}
|
||
#endregion
|
||
|
||
var session = ApiClient.GetSession();
|
||
var pddInfoTempGroups = session.FindPddInfoTempGroups();//获取pdd数据数据集合缓存
|
||
var pddInfoTemp = pddInfoTempGroups.FirstOrDefault<pddinfo_temp>(f => f.name == e.RobotInfo.name && f.onoff == false);
|
||
if (pddInfoTemp != null)
|
||
{
|
||
var member = session.FindMemberinfo(e);//获取用户信息
|
||
|
||
fl_cps_member pdd_cps = null;
|
||
var pid = string.Empty;//使用的pid
|
||
var isDefault = true;
|
||
|
||
if (!string.IsNullOrWhiteSpace(e.Groupid))//群pid
|
||
{
|
||
var groupAdzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.多多进宝 && f.custom_type == PrivateAdzoneCustomType.群pid.ToString() && f.group_id == e.Groupid);
|
||
if (groupAdzone != null && !string.IsNullOrWhiteSpace(groupAdzone.adzone_pid))
|
||
{
|
||
pid = groupAdzone.adzone_pid;
|
||
pdd_cps = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.多多进宝 && f.username == groupAdzone.adzone_pid_cps_name);
|
||
isDefault = false;
|
||
}
|
||
}
|
||
|
||
if (isDefault)//私人pid
|
||
{
|
||
var memberAdzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.多多进宝 && f.custom_type == PrivateAdzoneCustomType.用户私人pid.ToString() && f.member_id == member.id);
|
||
if (memberAdzone != null && !string.IsNullOrWhiteSpace(memberAdzone.adzone_pid))//私人推广位
|
||
{
|
||
pid = memberAdzone.adzone_pid;
|
||
pdd_cps = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.多多进宝 && f.username == memberAdzone.adzone_pid_cps_name);
|
||
isDefault = false;
|
||
}
|
||
}
|
||
|
||
if (isDefault)//默认推广位
|
||
{
|
||
pdd_cps = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.多多进宝 && f.username == ((member.buy_point >= Config.Point && member.finish_order >= Config.OrderNum) ? pddInfoTemp.pid_chief_cps_name : pddInfoTemp.pid_deputy_cps_name));//通过判断用户的购物积分,来判断用户使用哪个推广位
|
||
pid = ((member.buy_point >= Config.Point && member.finish_order >= Config.OrderNum) ? pddInfoTemp.pid_chief : pddInfoTemp.pid_deputy);
|
||
}
|
||
|
||
if (pdd_cps == null) throw new Exception("拼多多推广位设置异常,请检测后重试!");
|
||
|
||
var isBind = true;
|
||
//正在搜索提示
|
||
if (!ApiClient.Setting.SystemConfig.message_warning_switch)
|
||
{
|
||
e.SendMessage(Config.SearchingTip);
|
||
Thread.Sleep(500);
|
||
}
|
||
|
||
var api = CpsClient.CreatePinduoduoRequest(pdd_cps);
|
||
|
||
|
||
ArrayList goods_details = null;
|
||
//var _temp_param = $"r={e.RobotName} t={(int)e.ChatType} u={e.Username}";
|
||
|
||
try
|
||
{
|
||
isBind = api.IsAuthority(pid);
|
||
|
||
//未绑定
|
||
if (!isBind)
|
||
{
|
||
//授权地址
|
||
var authUrl = api.AuthorityUrl(pid);
|
||
|
||
e.SendMessage(Config.NoRecordTip.Replace("[授权地址]", authUrl));
|
||
return;
|
||
}
|
||
|
||
goods_details = PDDHelper.FindSendGuideGoodsInfo(api, pid, goods_id, isBind);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw new Exception("公共异常:" + ex.Message + " - " + ex.StackTrace + " - " + isBind);
|
||
}
|
||
|
||
//没有查到返利提示
|
||
if (goods_details == null || goods_details.Count != 1)
|
||
throw new Exception("商品不存在");
|
||
|
||
foreach (var item in goods_details)
|
||
{
|
||
var temp = item as Dictionary<string, object>;
|
||
|
||
string mall_id = string.Empty;
|
||
if (temp.ContainsKey("mall_id"))
|
||
{
|
||
mall_id = temp["mall_id"].ToString();
|
||
if (Config.SellerIDRestrictlist.Contains(mall_id))
|
||
{
|
||
e.SendMessage(Config.SellerIDRestrictTip.Replace("[店铺ID]", mall_id));
|
||
return;
|
||
}
|
||
}
|
||
|
||
var goods_sign = temp["goods_sign"].ToString();
|
||
|
||
goods_name = (temp["goods_name"] ?? string.Empty).ToString().Replace("", "").Replace("<", "<").Replace(">", ">").Replace("&", "&").Replace(""", "\"").Replace(" ©", "©"); //获取商品标签
|
||
var goods_desc = string.Empty;
|
||
if (temp.ContainsKey("goods_desc"))
|
||
goods_desc = (temp["goods_desc"] ?? string.Empty).ToString(); //商品描述
|
||
var goods_thumbnail_url = string.Empty; //商品主图
|
||
if (temp.ContainsKey("goods_thumbnail_url"))
|
||
goods_thumbnail_url = (temp["goods_thumbnail_url"] ?? string.Empty).ToString();
|
||
else if (temp.ContainsKey("goods_image_url"))
|
||
goods_thumbnail_url = (temp["goods_image_url"] ?? string.Empty).ToString();
|
||
|
||
var sales_tip = "0";//已售卖件数
|
||
if (temp.ContainsKey("sales_tip"))
|
||
sales_tip = (temp["sales_tip"] ?? string.Empty).ToString();
|
||
|
||
double min_group_price = 0d;
|
||
if (temp.ContainsKey("min_group_price"))
|
||
min_group_price = Math.Round(temp["min_group_price"] == null ? 0 : (double.Parse(temp["min_group_price"].ToString()) / 100.00), 2); //最低价sku的拼团价,单位为分
|
||
double min_normal_price = 0d;
|
||
if (temp.ContainsKey("min_normal_price"))
|
||
min_normal_price = Math.Round(temp["min_normal_price"] == null ? 0 : (double.Parse(temp["min_normal_price"].ToString()) / 100.00), 2); //最低价sku的单买价,单位为分
|
||
var mall_name = string.Empty;
|
||
if (temp.ContainsKey("mall_name"))
|
||
mall_name = (temp["mall_name"] ?? string.Empty).ToString(); //店铺名称
|
||
double _coupon_min_order_amount = 0d;
|
||
if (temp.ContainsKey("coupon_min_order_amount"))
|
||
_coupon_min_order_amount = temp["coupon_min_order_amount"] == null ? 0 : double.Parse(temp["coupon_min_order_amount"].ToString());
|
||
|
||
var coupon_min_order_amount = _coupon_min_order_amount == 0 ? 0 : (_coupon_min_order_amount / 100); //优惠券门槛金额,单位为分
|
||
double _coupon_discount = 0d;
|
||
if (temp.ContainsKey("coupon_discount"))
|
||
_coupon_discount = double.Parse((temp["coupon_discount"] ?? 0).ToString());
|
||
var coupon_discount = _coupon_discount == 0 ? 0 : Math.Round(_coupon_discount / 100.00, 2); //优惠券面额,单位为分
|
||
|
||
var coupon_total_quantity = string.Empty;
|
||
if (temp.ContainsKey("coupon_total_quantity"))
|
||
coupon_total_quantity = (temp["coupon_total_quantity"] ?? "0").ToString(); //优惠券总数量
|
||
|
||
var coupon_start_time = DateTime.MinValue;
|
||
if (temp.ContainsKey("coupon_start_time"))
|
||
{
|
||
var _coupon_start_time = temp["coupon_start_time"];
|
||
coupon_start_time = _coupon_start_time == null ? new DateTime() : TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).AddSeconds(double.Parse(_coupon_start_time.ToString())); //优惠券生效时间,UNIX时间戳
|
||
}
|
||
|
||
var coupon_end_time = DateTime.MinValue;
|
||
if (temp.ContainsKey("coupon_end_time"))
|
||
{
|
||
var _coupon_end_time = temp["coupon_end_time"];
|
||
coupon_end_time = _coupon_end_time == null ? new DateTime() : TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).AddSeconds(double.Parse(_coupon_end_time.ToString())); //优惠券失效时间,UNIX时间戳
|
||
}
|
||
|
||
double promotion_rate = 0d;//佣金比例,千分比
|
||
if (temp.ContainsKey("promotion_rate") && temp["promotion_rate"] != null)
|
||
promotion_rate = double.Parse(temp["promotion_rate"].ToString()) / 1000.00;
|
||
promotion_rate = Math.Round(promotion_rate, 3);
|
||
|
||
//this.OnLog($@"goods_name = {goods_name}, mall_id = {mall_id}, promotion_rate = {promotion_rate}");
|
||
|
||
|
||
|
||
var groupCommisson = (min_group_price - coupon_discount) * promotion_rate;
|
||
var commission = session.GetPddComparisonFeeRate(groupCommisson);
|
||
var group = session.FindItemPoint(member, commission, 1, CpsType.多多进宝, out compute); //客户团购的佣金
|
||
|
||
Compute compute1 = null;
|
||
var normalCommisson = (min_normal_price - coupon_discount) * promotion_rate;
|
||
commission = session.GetPddComparisonFeeRate(normalCommisson);
|
||
var normal = session.FindItemPoint(member, commission, 1, CpsType.多多进宝, out compute1); //客户单买的佣金
|
||
|
||
if (compute == null)
|
||
compute = compute1;
|
||
|
||
var pdd_api = new PDDHelper();
|
||
//搜索成功有券的情况下
|
||
if (_coupon_discount != 0)
|
||
{
|
||
var mess = string.Empty;
|
||
if (e.ChatType == ChatType.微信 || e.ChatType == ChatType.企业微信 || (e.ChatType == ChatType.QQ && string.IsNullOrWhiteSpace(Config.QQSearchSuccessWithCouponTip)))
|
||
mess = Config.SearchSuccessWithCouponTip;
|
||
else
|
||
mess = Config.QQSearchSuccessWithCouponTip;
|
||
mess = new VariateReplace().CommonReplace(mess, _member);
|
||
|
||
Dictionary<string, object> oneShoppingUrlDic = null;
|
||
Dictionary<string, object> manyShoppingUrlDic = null;
|
||
if (mess.Contains("[单买地址"))
|
||
{
|
||
//oneShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = pid, custom_parameters = _temp_param, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = false, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true });
|
||
oneShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = pid, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = false, generate_short_url = true, /*custom_parameters = "{\"uid\":\"602172712\",\"sid\":\"jdds\"}",*/generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true, generate_schema_url = true });
|
||
}
|
||
if (mess.Contains("[拼团地址") || mess.Contains("[商品图片]"))
|
||
{
|
||
//manyShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = pid, custom_parameters = _temp_param, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = true, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true });
|
||
manyShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = pid, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = true, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true, generate_schema_url = true });
|
||
}
|
||
|
||
e.SendMessage(mess
|
||
.Replace("劵", "券")
|
||
.Replace("[商品标题]", goods_name)
|
||
.Replace("[商品描述]", goods_desc)
|
||
.Replace("[商品主图]", $"[图片={goods_thumbnail_url}]")
|
||
.Replace("[图片地址]", goods_thumbnail_url)
|
||
.Replace("[已售数量]", sales_tip)
|
||
.Replace("[店铺名称]", mall_name)
|
||
.Replace("[优惠券门槛金额]", coupon_min_order_amount.ToString())
|
||
.Replace("[优惠券金额]", string.Format("{0:F}", coupon_discount))
|
||
.Replace("[优惠券数量]", coupon_total_quantity)
|
||
.Replace("[优惠券生效日]", coupon_start_time.ToString("yyyy-MM-dd HH:mm:ss"))
|
||
.Replace("[优惠券失效日]", coupon_end_time.ToString("yyyy-MM-dd HH:mm:ss"))
|
||
.Replace("[商品单买价]", string.Format("{0:F}", min_normal_price))
|
||
.Replace("[单买返利]", (normal.UserPoint == 0 ? 0.01 : normal.UserPoint).ToString())
|
||
.Replace("[券后单买价]", ((decimal)min_normal_price - (decimal)coupon_discount).ToString())
|
||
.Replace("[单买地址跳转]", "[单买地址]")
|
||
.Replace("[单买地址]", oneShoppingUrlDic == null ? string.Empty : oneShoppingUrlDic["mobile_short_url"].ToString())
|
||
.Replace("[单买地址不跳转]", oneShoppingUrlDic == null ? string.Empty : oneShoppingUrlDic["short_url"].ToString())
|
||
.Replace("[商品拼团价]", string.Format("{0:F}", min_group_price))
|
||
.Replace("[拼团返利]", (group.UserPoint == 0 ? 0.01 : group.UserPoint).ToString())
|
||
.Replace("[券后拼团价]", ((decimal)min_group_price - (decimal)coupon_discount).ToString())
|
||
.Replace("[拼团地址跳转]", "[拼团地址]")
|
||
.Replace("[拼团地址]", manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["mobile_short_url"].ToString())
|
||
.Replace("[拼团地址不跳转]", manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["short_url"].ToString())
|
||
.Replace("[单买共节省]", "[共节省]")
|
||
.Replace("[共节省]", ((decimal)coupon_discount + (decimal)(normal.UserPoint == 0 ? 0.01 : normal.UserPoint)).ToString())
|
||
.Replace("[拼团共节省]", ((decimal)coupon_discount + (decimal)(group.UserPoint == 0 ? 0.01 : group.UserPoint)).ToString())
|
||
.Replace("[商品图片]", mess.Contains("[商品图片]") ? "[图片=" + ApiClient.GetQRImage(goods_name, min_normal_price.ToString(), coupon_discount.ToString(), ((decimal)min_normal_price - (decimal)coupon_discount).ToString(), goods_thumbnail_url, manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["mobile_short_url"].ToString(), ApiClient.QrImageType.模板B, CpsType.多多进宝) + "]" : string.Empty));
|
||
}
|
||
//搜索成功没有券的情况下
|
||
else
|
||
{
|
||
var mess = string.Empty;
|
||
if (e.ChatType == ChatType.微信 || e.ChatType == ChatType.企业微信 || (e.ChatType == ChatType.QQ && string.IsNullOrWhiteSpace(Config.QQSearchSuccessWithoutCouponTip)))
|
||
mess = Config.SearchSuccessWithoutCouponTip;
|
||
else
|
||
mess = Config.QQSearchSuccessWithoutCouponTip;
|
||
|
||
//var oneShoppingUrl = string.Empty;
|
||
//var manyShoppingUrl = string.Empty;
|
||
Dictionary<string, object> oneShoppingUrlDic = null;
|
||
Dictionary<string, object> manyShoppingUrlDic = null;
|
||
if (mess.Contains("[拼团地址") || mess.Contains("[商品图片]"))
|
||
manyShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = pid, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = true, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true, generate_schema_url = true });
|
||
if (mess.Contains("[单买地址"))
|
||
//oneShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = (member.buy_point <= Config.Point ? pddInfoTemp.pid_deputy : pddInfoTemp.pid_chief), custom_parameters = _temp_param, goods_sign_list = $"[\"{goods_sign}\"]", multi_group = false, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true });
|
||
oneShoppingUrlDic = pdd_api.GetShoppingUrls(api, new { p_id = (member.buy_point <= Config.Point ? pddInfoTemp.pid_deputy : pddInfoTemp.pid_chief), goods_sign_list = $"[\"{goods_sign}\"]", multi_group = false, generate_short_url = true, generate_weapp_webview = true, generate_authority_url = !isBind, force_duo_id = true, generate_schema_url = true });
|
||
|
||
e.SendMessage(mess
|
||
.Replace("[商品标题]", goods_name)
|
||
.Replace("[商品描述]", goods_desc)
|
||
.Replace("[商品主图]", $"[图片={goods_thumbnail_url}]")
|
||
.Replace("[图片地址]", goods_thumbnail_url)
|
||
.Replace("[已售数量]", sales_tip)
|
||
.Replace("[店铺名称]", mall_name)
|
||
.Replace("[商品单买价]", min_normal_price.ToString())
|
||
.Replace("[单买返利]", (normal.UserPoint == 0 ? 0.01 : normal.UserPoint).ToString())
|
||
.Replace("[单买地址跳转]", "[单买地址]")
|
||
.Replace("[单买地址]", oneShoppingUrlDic == null ? string.Empty : oneShoppingUrlDic["mobile_short_url"].ToString())
|
||
.Replace("[单买地址不跳转]", oneShoppingUrlDic == null ? string.Empty : oneShoppingUrlDic["short_url"].ToString())
|
||
.Replace("[商品拼团价]", min_group_price.ToString())
|
||
.Replace("[拼团返利]", (group.UserPoint == 0 ? 0.01 : group.UserPoint).ToString())
|
||
.Replace("[拼团地址跳转]", "[拼团地址]")
|
||
.Replace("[拼团地址]", manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["mobile_short_url"].ToString())
|
||
.Replace("[拼团地址不跳转]", manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["short_url"].ToString())
|
||
.Replace("[单买共节省]", "[共节省]")
|
||
.Replace("[共节省]", (normal.UserPoint == 0 ? 0.01 : normal.UserPoint).ToString())
|
||
.Replace("[拼团共节省]", (group.UserPoint == 0 ? 0.01 : group.UserPoint).ToString())
|
||
.Replace("[商品图片]", mess.Contains("[商品图片]") ? "[图片=" + ApiClient.GetQRImage(goods_name, min_normal_price.ToString(), coupon_discount.ToString(), ((decimal)min_normal_price - (decimal)coupon_discount).ToString(), goods_thumbnail_url, manyShoppingUrlDic == null ? string.Empty : manyShoppingUrlDic["short_url"].ToString(), ApiClient.QrImageType.模板B, CpsType.多多进宝) + "]" : string.Empty));
|
||
}
|
||
#region 记录用户信息,宝贝信息,平台信息,查询时间等
|
||
session.Insertable(new fl_query_hist()
|
||
{
|
||
crt_time = DateTime.Now,
|
||
type = CpsType.多多进宝,
|
||
itemid = goods_id,
|
||
groupid = e.Groupid,
|
||
robot_name = e.RobotName,
|
||
robot_type = e.ChatType,
|
||
userid = _member.id,
|
||
title = goods_name,
|
||
adzoneid = pid,
|
||
mallid = mall_id,
|
||
compute_configdic = compute == null ? string.Empty : JsonConvert.SerializeObject(compute)
|
||
}).ExecuteCommand();
|
||
session.UpdateRecord(_member.id);
|
||
|
||
var shared = new Dictionary<string, object>();
|
||
shared["msg_type"] = "查询宝贝";
|
||
shared["cps_type"] = CpsType.多多进宝;
|
||
shared["msg_username"] = _member.username;
|
||
shared["price"] = string.Format("{0:F}", min_group_price);
|
||
shared["title"] = goods_name;
|
||
shared["coupon_price"] = string.Format("{0:F}", _coupon_discount != 0 ? _coupon_discount : 0);
|
||
shared["user_point"] = string.Format("{0:F}", (group.UserPoint == 0 ? 0.01 : group.UserPoint));
|
||
shared["economize"] = string.Format("{0:F}", (_coupon_discount != 0 ? ((decimal)coupon_discount + (decimal)(group.UserPoint == 0 ? 0.01 : group.UserPoint)) : (group.UserPoint == 0 ? 0.01m : (decimal)group.UserPoint)));
|
||
|
||
var sharedEvent = new SharedEvents(shared);
|
||
EventClient.OnEvent(sender, sharedEvent);
|
||
#endregion
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
/*
|
||
* 返回异常时,提示查不到
|
||
*/
|
||
if (ex.Message.Contains("商品不存在") || ex.Message.Contains("商品非多多进宝商品"))
|
||
{
|
||
e.SendMessage(Config.SearchErrorTip);
|
||
|
||
var session = ApiClient.GetSession();
|
||
session.UpdateRecord(e.GetMemberinfo().id);
|
||
var shared = new Dictionary<string, object>();
|
||
shared["msg_type"] = "查询宝贝";
|
||
shared["cps_type"] = CpsType.多多进宝;
|
||
shared["msg_username"] = e.GetMemberinfo().username;
|
||
shared["price"] = "未知";
|
||
shared["title"] = goods_name;
|
||
shared["coupon_price"] = "未知";
|
||
shared["user_point"] = "未知";
|
||
shared["economize"] = "未知";
|
||
|
||
var sharedEvent = new SharedEvents(shared);
|
||
EventClient.OnEvent(sender, sharedEvent);
|
||
}
|
||
else
|
||
{
|
||
this.OnLog("D:" + ex.Message);
|
||
e.SendMessage(ApiClient.Setting.SystemConfig.msg_error);
|
||
}
|
||
}
|
||
}
|
||
|
||
#region 变量替换
|
||
/// <summary>
|
||
/// 订单状态 提示语替换
|
||
/// </summary>
|
||
/// <param name="order"></param>
|
||
/// <param name="objs"></param>
|
||
/// <returns></returns>
|
||
private string _GetOrderStateMess(SystemOrderStatus order, params object[] objs)
|
||
{
|
||
|
||
var mess = string.Empty;
|
||
switch (order)
|
||
{
|
||
case SystemOrderStatus.订单付款:
|
||
mess = new VariateReplace().CommonReplace(Config.OrderPaymentTip, objs);
|
||
break;
|
||
case SystemOrderStatus.订单失效:
|
||
mess = new VariateReplace().CommonReplace(Config.OrderFailureTip, objs);
|
||
break;
|
||
case SystemOrderStatus.全额退款:
|
||
case SystemOrderStatus.部分退款:
|
||
case SystemOrderStatus.订单维权中:
|
||
mess = new VariateReplace().CommonReplace(Config.OrderRefundTip, objs);
|
||
break;
|
||
case SystemOrderStatus.订单结算:
|
||
mess = new VariateReplace().CommonReplace(Config.OrderSettlementTip, objs);
|
||
break;
|
||
case SystemOrderStatus.订单冻结:
|
||
mess = new VariateReplace().CommonReplace(Config.OrderFreezeTip, objs);
|
||
break;
|
||
}
|
||
return mess;
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
}
|