old_flsystem/类库/Api.Framework/Tools/OrderHelper.cs

1058 lines
61 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Api.Framework.Enums;
using Api.Framework.Events;
using Api.Framework.Model;
using CsharpHttpHelper;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace Api.Framework.Tools
{
/// <summary>
/// 订单助手
/// </summary>
public class OrderHelper
{
/// <summary>
/// 判断是否是三个平台的订单号
/// </summary>
/// <param name="mess">判断是否为已知的cps订单</param>
/// <returns></returns>
public static bool IsOrderId(string mess)
{
try
{
if (Regex.IsMatch(mess, @"^(\d{4})\s(\d{4})\s(\d{4})\s(\d{4})\s(\d{3})$") || Regex.IsMatch(mess, @"^\d{18,19}$") || Regex.IsMatch(mess, @"^\d{6}-\d{15}$") || Regex.IsMatch(mess, @"^\d{11,12}$"))
return true;
}
catch (Exception)
{ }
return false;
}
#region ()
/// <summary>
/// 简单判断消息是否为指定cps类型
/// </summary>
/// <param name="mess">消息</param>
/// <param name="cpsType">cps类型</param>
/// <returns></returns>
public static bool IsCurrentCpsMess(string mess, CpsType cpsType)
{
try
{
switch (cpsType)
{
case CpsType.:
return !(isPDD(mess) || isJD(mess) || isWPH(mess));
case CpsType.:
return !(isTB(mess) || isJD(mess) || isWPH(mess));
case CpsType.:
return !(isPDD(mess) || isTB(mess) || isWPH(mess));
case CpsType.:
return !(isPDD(mess) || isJD(mess) || isTB(mess));
default:
return true;
}
}
catch (Exception ex)
{ }
return true;
}
/// <summary>
/// 是否为拼多多
/// </summary>
/// <param name="mess">消息</param>
/// <returns></returns>
private static bool isPDD(string mess)
{
try
{
if (mess.Trim().Contains("jinbao.pinduoduo.com") ||
mess.Trim().Contains("yangkeduo.com") ||
mess.Trim().Contains("pinduoduo.com")
)
return true;
}
catch (Exception)
{ }
return false;
}
/// <summary>
/// 是否为京东
/// </summary>
/// <param name="mess">消息</param>
/// <returns></returns>
private static bool isJD(string mess)
{
try
{
if (mess.Trim().Contains(".jd.com"))
return true;
}
catch (Exception)
{ }
return false;
}
private static bool isWPH(string mess)
{
try
{
if (mess.Trim().Contains(".vip.com"))
return true;
}
catch (Exception)
{ }
return false;
}
/// <summary>
/// 是否为阿里
/// </summary>
/// <param name="mess">消息</param>
/// <returns></returns>
private static bool isTB(string mess)
{
try
{
//yukhj.com|m.tb.cn|m.yeeoq.top|m.uqlsi|m.rijni|m.gkqmj|m.mulwt|uland\\.taobao\\.com|sjtm.me|aa5d.com|d11a.com|f61[a-z].com|92db.com|yqt.so|e22a.com|f61b.com|detail.m.tmall.hk|k.83jie.com|ewqcxz.com|items.alitrip.com|tmqd.me|detail.tmall.hk|url.cn|taobao.com|mashort.cn|tmall.com|tb.cn|detail.yao.95095.com|laiwang.com|dwz.cn|juhuasuan.com|detail.m.tmall.com|zmnxbc.com|s.click.taobao|detail.liangxinyao.com|m.tb.cn
if (mess.Trim().Contains("taobao.com") ||
mess.Trim().Contains("detail.tmall") ||
mess.Trim().Contains(".tb.cn") ||
mess.Trim().Contains("yukhj.com") ||
mess.Trim().Contains("m.yeeoq.top") ||
mess.Trim().Contains("m.uqlsi") ||
mess.Trim().Contains("m.rijni") ||
mess.Trim().Contains("m.gkqmj") ||
mess.Trim().Contains("m.mulwt") ||
mess.Trim().Contains("sjtm.me") ||
mess.Trim().Contains("aa5d.com") ||
mess.Trim().Contains("d11a.com") ||
mess.Trim().Contains("92db.com") ||
mess.Trim().Contains("yqt.so") ||
mess.Trim().Contains("e22a.com") ||
mess.Trim().Contains("f61b.com") ||
mess.Trim().Contains("detail.m.tmall") ||
mess.Trim().Contains("k.83jie.com") ||
mess.Trim().Contains("ewqcxz.com") ||
mess.Trim().Contains("items.alitrip.com") ||
mess.Trim().Contains("tmqd.me") ||
mess.Trim().Contains("detail.tmall.hk") ||
mess.Trim().Contains("mashort.cn") ||
mess.Trim().Contains("tmall.com") ||
mess.Trim().Contains("detail.yao.95095.com") ||
mess.Trim().Contains("laiwang.com") ||
mess.Trim().Contains("juhuasuan.com") ||
mess.Trim().Contains("s.click.taobao") ||
mess.Trim().Contains("detail.liangxinyao.com"))
return true;
}
catch (Exception)
{ }
return false;
}
#endregion
#region
private static Dictionary<string, object> tbConfig;
/// <summary>
/// 获取阿里配置
/// </summary>
/// <param name="refresh">刷新</param>
public static Dictionary<string, object> RefreshTbConfig(bool refresh = false)
{
if (refresh || tbConfig == null)
tbConfig = Util.ReadConfig("插件-淘宝返利-配置", true);
return tbConfig;
}
#endregion
#region
private static Dictionary<string, object> pddConfig;
/// <summary>
/// 获取拼多多配置
/// </summary>
/// <param name="refresh">刷新</param>
public static Dictionary<string, object> RefreshPddConfig(bool refresh = false)
{
if (refresh || pddConfig == null)
pddConfig = Util.ReadConfig("插件-拼多多返利-配置", true);
return pddConfig;
}
#endregion
#region
private static Dictionary<string, object> dyConfig;
/// <summary>
/// 获取抖音配置
/// </summary>
/// <param name="refresh">刷新</param>
public static Dictionary<string, object> RefreshDyConfig(bool refresh = false)
{
if (refresh || dyConfig == null)
dyConfig = Util.ReadConfig("插件-抖音返利-配置", true);
return dyConfig;
}
#endregion
private static Dictionary<string, object> config;
static OrderHelper()
{
RefreshConfig();
}
/// <summary>
/// 刷新用户裂变配置
/// </summary>
/// <param name="refresh">刷新</param>
public static void RefreshConfig(bool refresh = false)
{
if (refresh || config == null)
{
config = Util.ReadConfig("插件-用户裂变-配置", true);
}
}
private static readonly Object lockObj_1 = new Object();
/// <summary>
/// 判断上级是否获得推荐奖励
/// </summary>
/// <param name="_member">订单所绑定的用户对象</param>
/// <param name="_endtime">订单结算时间</param>
/// <param name="_price">付款金额</param>
/// <returns></returns>
public static bool CheckSuperiorInviteRewards(fl_member_info _member, DateTime _endtime, double _price)
{
try
{
var member = _member;
var session = ApiClient.GetSession();
var record = session.FindStatisticsRecord(member.id);
if (record != null && record.ex1 == 1)
return false;
lock (lockObj_1)
{
var price = _price;
var endtime = _endtime;
record = session.FindStatisticsRecord(member.id);
if (record == null || record.ex1 == 0)
{
if (config != null && config.ContainsKey("SuperiorSumSwitch"))//上级奖励开关
{
var SuperiorSumSwitch = config["SuperiorSumSwitch"].ToString();
if (SuperiorSumSwitch == "1")
{
if (member.inviter_id != 0 && member.id != member.inviter_id)
{
if (config.ContainsKey("SuperiorRewardWay"))
{
var SuperiorRewardWay = config["SuperiorRewardWay"].ToString().Trim();
if (SuperiorRewardWay == "2")// 新人完成首单奖励 = 2,新人首单满足付款金额奖励 = 3
{
if (record == null)
record = new fl_statistics_record()
{
uid = member.id,
ex1 = 1
};
else
record.ex1 = 1;
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
var flag = false;
var orderCount = 0;//历史是否存在已结算的订单
var db_endtime = (endtime.Year == 1900 ? DateTime.Now : endtime);
orderCount += session.Find<fl_order_alimama>("select * from fl_order_alimama where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_jingdong>("select * from fl_order_jingdong where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_pinduoduo>("select * from fl_order_pinduoduo where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_weipinhui>("select * from fl_order_weipinhui where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_douyin>("select * from fl_order_douyin where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_suning>("select * from fl_order_suning where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime }).Count;
}
}
}
}
}
EventClient.OnEvent("【新人完成首单奖励】", $"(【{member.id}】{member.username},上级:【{member.inviter_id}】),结算订单数:{orderCount}");
return orderCount == 0;
}
else if (SuperiorRewardWay == "3")
{
//Console.WriteLine("endtime.Year = " + endtime.Year);
var db_endtime = (endtime.Year == 1900 ? DateTime.Now : endtime);
if (config.ContainsKey("SuperiorReward_FirstSinglePaymentSum"))
{
var SuperiorReward_FirstSinglePaymentSum = double.Parse(config["SuperiorReward_FirstSinglePaymentSum"].ToString());//下级首单付款金额
if (price < SuperiorReward_FirstSinglePaymentSum) return false;
if (record == null)
record = new fl_statistics_record() { uid = member.id, ex1 = 1 };
else
record.ex1 = 1;
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
var orderCount = 0;//历史是否存在已结算的订单
orderCount += session.Find<fl_order_alimama>("select * from fl_order_alimama where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and alipay_total_price >= @alipay_total_price", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, alipay_total_price = SuperiorReward_FirstSinglePaymentSum }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_jingdong>("select * from fl_order_jingdong where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and estimateCosPrice >= @estimateCosPrice", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, estimateCosPrice = SuperiorReward_FirstSinglePaymentSum }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_pinduoduo>("select * from fl_order_pinduoduo where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and order_amount >= @order_amount", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, order_amount = SuperiorReward_FirstSinglePaymentSum }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_weipinhui>("select * from fl_order_weipinhui where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and commissionTotalCost >= @commissionTotalCost", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, commissionTotalCost = SuperiorReward_FirstSinglePaymentSum }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_douyin>("select * from fl_order_douyin where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and total_pay_amount >= @total_pay_amount", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, total_pay_amount = SuperiorReward_FirstSinglePaymentSum }).Count;
if (orderCount == 0)
{
orderCount += session.Find<fl_order_suning>("select * from fl_order_suning where db_userid = @db_userid and db_status = @db_status and db_endtime < @db_endtime and payAmount >= @payAmount", new { db_userid = member.id, db_status = SystemOrderStatus., db_endtime = db_endtime, payAmount = SuperiorReward_FirstSinglePaymentSum }).Count;
}
}
}
}
}
EventClient.OnEvent("【新人首单满足付款金额奖励】", $@"(【{member.id}】{member.username},上级:【{member.inviter_id}】),结算订单数:{orderCount} - {price}~{SuperiorReward_FirstSinglePaymentSum} - {endtime} - {db_endtime}");
return orderCount == 0;
}
}
}
}
}
}
}
return false;
}
}
catch (Exception ex)
{ }
return false;
}
private static readonly Object lockObj_2 = new Object();
/// <summary>
/// 判断是否用户首单奖励
/// </summary>
/// <param name="member">用户对象</param>
/// <param name="_orderStatus">系统订单类型</param>
/// <returns></returns>
public static bool CheckMemberFirstOrderRewards(fl_member_info _member, SystemOrderStatus _orderStatus)//, DateTime endtime
{
try
{
lock (lockObj_2)
{
var member = _member;
var orderStatus = _orderStatus;
if (member == null)
return false;
var session = ApiClient.GetSession();
var record = session.FindStatisticsRecord(member.id);
if (record != null && record.ex2 >= 1)
return false;
#region
if (orderStatus == SystemOrderStatus.)
{
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
if (config.ContainsKey("FirstOrder_SumSwitch") && config["FirstOrder_SumSwitch"].ToString() == "1")
{
record = session.FindStatisticsRecord(member.id);
if (record == null || record.ex2 == 0)
{
if (config.ContainsKey("FirstOrder_InitialAwardNewcomerType"))//判断首单奖励新人类型
{
var newcomerType = config["FirstOrder_InitialAwardNewcomerType"].ToString();//所有新用户 = 1,被邀请用户 = 2,非邀请用户 = 3
if (newcomerType == "2" && member.inviter_id == 0)
return false;
else if (newcomerType == "3" && member.inviter_id != 0)
return false;
}
if (config.ContainsKey("FirstOrderAwardWay"))//判断首单奖励的方式
{
var FirstOrderAwardWay = config["FirstOrderAwardWay"].ToString();//订单付款后奖励 = 1,订单结算后奖励 = 2
if (FirstOrderAwardWay == "1" && orderStatus == SystemOrderStatus.)
{
if (record == null)
record = new fl_statistics_record() { uid = member.id, ex2 = 1 };
else
record.ex2 = 1;
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
var orderCount = 0;
orderCount += session.Find<fl_order_alimama>("select * from fl_order_alimama where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find<fl_order_jingdong>("select * from fl_order_jingdong where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find<fl_order_pinduoduo>("select * from fl_order_pinduoduo where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find<fl_order_weipinhui>("select * from fl_order_weipinhui where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find<fl_order_douyin>("select * from fl_order_douyin where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find<fl_order_suning>("select * from fl_order_suning where db_userid = @db_userid", new { db_userid = member.id }).Count;
}
}
}
}
}
return (orderCount == 1);
}
else if (FirstOrderAwardWay == "2" && orderStatus == SystemOrderStatus.)
{
if (record == null)
record = new fl_statistics_record() { uid = member.id, ex2 = 1 };
else
record.ex2 = 1;
session.Saveable<fl_statistics_record>(record).ExecuteCommand();
return (member.finish_order == 1);
}
}
}
}
return false;
}
}
catch (Exception ex)
{ }
return false;
}
/// <summary>
/// 扣除已经阿里结算订单的用户所得
/// </summary>
/// <param name="notices">通知集合</param>
/// <param name="order">阿里订单对象</param>
public void DeductAliOrderPoint(List<OrderNoticeEvent> notices, fl_order_alimama order)
{
try
{
if (order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle<fl_member_info>("id=@id", new { id = order.db_userid });
if (member == null) return;
session.InsertRefundHistPoint(order.trade_parent_id, order.trade_id, CpsType., order.db_point, member.id);
//获取积分信息
var point = HttpHelper.JsonToObject<ItemPoint>(order.db_point) as ItemPoint;
if (point == null) return;
#region -
member = session.ChangePoint(PointType., point.UserPoint, member.id, $"退款:{order.item_title}({order.trade_parent_id})({order.trade_id})");
notices.Add(new OrderNoticeEvent(CpsType., member, order));
List<long> ids = new List<long>();
ids.Add(member.id);
//多级提成计算..用户自己的上级不能为自己
//if (point.AwardOne > 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id))
if (point.AwardOne > 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., point.AwardOne, member.inviter_id, $"{member.usernick},淘宝购物1级提成{order.item_title} - ({order.trade_parent_id})({order.trade_id})");
if (flag != null)
{
ids.Add(flag.id);
if (notices != null)
{
notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
if (point.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
flag = session.ChangePoint(PointType., point.AwardTwo, flag.inviter_id, $"{member.usernick},淘宝购物2级提成{order.item_title} - ({order.trade_parent_id})({order.trade_id})");
if (flag != null)
{
ids.Add(flag.id);
if (notices != null && flag != null)
{
notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
flag = session.ChangePoint(PointType., point.AwardThree, flag.inviter_id, $"{member.usernick},淘宝购物3级提成{order.item_title} - ({order.trade_parent_id})({order.trade_id})");
if (flag != null)
{
ids.Add(flag.id);
if (notices != null && flag != null) notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(order.msg_groupid) && !string.IsNullOrEmpty(order.db_robotname))
{
var create = session.FindCreateInfo(order.msg_groupid, order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., point.AwardCreate, create.mid, $"{member.usernick},淘宝维护提成!{order.item_title} - ({order.trade_parent_id})({order.trade_id})");
if (notices != null && flag != null) notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
}
#endregion
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经京东结算订单的用户所得
/// </summary>
/// <param name="notices">通知集合</param>
/// <param name="order">京东订单对象</param>
/// <param name="itempoint">积分分配对象</param>
public void DeductJingDongOrderPoint(List<OrderNoticeEvent> notices, fl_order_jingdong order, ItemPoint itempoint)
{
try
{
if (order == null || order.db_userid == 0) return;
var session = ApiClient.GetSession();
if (itempoint == null) return;
var member = session.FindSingle<fl_member_info>("id=@id", new { id = order.db_userid });
if (member == null) return;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., itempoint.UserPoint, member.id, $"京东购买:{order.skuName}({order.orderId}) - 售后中(扣除)");
//var flag = session.ChangePoint(PointType.维权扣除, point.AwardOne, member.inviter_id, $"{member.usernick},京东购物1级提成 - 售后中(扣除)");
notices.Add(new OrderNoticeEvent(CpsType., member, order));
//多级提成计算
if (itempoint.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardOne, member.inviter_id, $"{member.usernick},京东购物1级提成 - 售后中(扣除) - {order.skuName}({order.orderId})");
if (flag != null)
{
ids.Add(flag.id);
notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., itempoint.AwardTwo, flag.inviter_id, $"{member.usernick},京东购物2级提成 - 售后中(扣除) - {order.skuName}({order.orderId})");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notices.Add(new OrderNoticeEvent(CpsType., flag2, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., itempoint.AwardThree, flag2.inviter_id, $"{member.usernick},京东购物3级提成 - 售后中(扣除) - {order.skuName}({order.orderId})");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notices.Add(new OrderNoticeEvent(CpsType., flag3, order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (itempoint.AwardCreate > 0 && !string.IsNullOrEmpty(order.msg_groupid) && !string.IsNullOrEmpty(order.db_robotname))
{
var robot = session.FindRobotInfo(order.db_robotname, order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(order.msg_groupid, order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardCreate, create.mid, $"{member.usernick},京东维护提成 - 售后中(扣除) - {order.skuName}({order.orderId})");
if (flag != null) notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经快手结算订单的用户所得
/// </summary>
/// <param name="notices">通知集合</param>
/// <param name="order">快手订单对象</param>
/// <param name="itempoint">积分分配对象</param>
public void DeductKuaiShouOrderPoint(List<OrderNoticeEvent> notices, fl_order_kuaishou order, ItemPoint itempoint)
{
try
{
if (order == null || order.db_userid == 0) return;
var session = ApiClient.GetSession();
if (itempoint == null) return;
var member = session.FindSingle<fl_member_info>("id=@id", new { id = order.db_userid });
if (member == null) return;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., itempoint.UserPoint, member.id, $"快手购买:{order.itemTitle}({order.oid}-{order.oid2}) - 售后中(扣除)");
//var flag = session.ChangePoint(PointType.维权扣除, point.AwardOne, member.inviter_id, $"{member.usernick},快手购物1级提成 - 售后中(扣除)");
notices.Add(new OrderNoticeEvent(CpsType., member, order));
//多级提成计算
if (itempoint.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardOne, member.inviter_id, $"{member.usernick},快手购物1级提成 - 售后中(扣除) - {order.itemTitle}({order.oid}-{order.oid2})");
if (flag != null)
{
ids.Add(flag.id);
notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., itempoint.AwardTwo, flag.inviter_id, $"{member.usernick},快手购物2级提成 - 售后中(扣除) - {order.itemTitle}({order.oid}-{order.oid2})");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notices.Add(new OrderNoticeEvent(CpsType., flag2, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., itempoint.AwardThree, flag2.inviter_id, $"{member.usernick},快手购物3级提成 - 售后中(扣除) - {order.itemTitle}({order.oid}-{order.oid2})");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notices.Add(new OrderNoticeEvent(CpsType., flag3, order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (itempoint.AwardCreate > 0 && !string.IsNullOrEmpty(order.msg_groupid) && !string.IsNullOrEmpty(order.db_robotname))
{
var robot = session.FindRobotInfo(order.db_robotname, order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(order.msg_groupid, order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardCreate, create.mid, $"{member.usernick},快手维护提成 - 售后中(扣除) - {order.itemTitle}({order.oid}-{order.oid2})");
if (flag != null) notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经抖音结算订单的用户所得
/// </summary>
/// <param name="notices">通知集合</param>
/// <param name="order">抖音订单对象</param>
/// <param name="itempoint">积分分配对象</param>
public void DeductDouYinOrderPoint(List<OrderNoticeEvent> notices, fl_order_douyin order, ItemPoint itempoint)
{
try
{
if (order == null || order.db_userid == 0) return;
var session = ApiClient.GetSession();
if (itempoint == null) return;
var member = session.FindSingle<fl_member_info>("id=@id", new { id = order.db_userid });
if (member == null) return;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., itempoint.UserPoint, member.id, $"抖音购买:{order.product_name}({order.order_id}) - 售后中(扣除)");
//var flag = session.ChangePoint(PointType.维权扣除, point.AwardOne, member.inviter_id, $"{member.usernick},抖音购物1级提成 - 售后中(扣除)");
notices.Add(new OrderNoticeEvent(CpsType., member, order));
//多级提成计算
if (itempoint.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardOne, member.inviter_id, $"{member.usernick},抖音购物1级提成 - 售后中(扣除) - {order.product_name}({order.order_id})");
if (flag != null)
{
ids.Add(flag.id);
notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., itempoint.AwardTwo, flag.inviter_id, $"{member.usernick},抖音购物2级提成 - 售后中(扣除) - {order.product_name}({order.order_id})");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notices.Add(new OrderNoticeEvent(CpsType., flag2, order, OrderNoticeType.) { Customer = member });
if (itempoint.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., itempoint.AwardThree, flag2.inviter_id, $"{member.usernick},抖音购物3级提成 - 售后中(扣除) - {order.product_name}({order.order_id})");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notices.Add(new OrderNoticeEvent(CpsType., flag3, order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (itempoint.AwardCreate > 0 && !string.IsNullOrEmpty(order.msg_groupid) && !string.IsNullOrEmpty(order.db_robotname))
{
var robot = session.FindRobotInfo(order.db_robotname, order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(order.msg_groupid, order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., itempoint.AwardCreate, create.mid, $"{member.usernick},抖音维护提成 - 售后中(扣除) - {order.product_name}({order.order_id})");
if (flag != null) notices.Add(new OrderNoticeEvent(CpsType., flag, order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经拼多结算订单的用户所得
/// </summary>
/// <param name="notice">通知集合</param>
/// <param name="db_order">拼多多订单对象</param>
public void DeductPinDuoOrderPoint(List<OrderNoticeEvent> notice, fl_order_pinduoduo db_order)
{
try
{
if (db_order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle<fl_member_info>("id=@id", new { id = db_order.db_userid });
if (member == null) return;
var point = HttpHelper.JsonToObject<ItemPoint>(db_order.db_point) as ItemPoint;
if (point == null) return;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., point.UserPoint, member.id, $"拼多多购买:{db_order.goods_name}({db_order.order_sn}) - 售后中(扣除)");
//#region 判断用户是否符合获得新人奖励
//isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, db_order.db_status);
//#endregion
notice.Add(new OrderNoticeEvent(CpsType., member, db_order));
//多级提成计算
//一级的提成小于等于0时,并且判断一级是否符合获得推荐新人奖励(无奖励一级提成)
if (point.AwardOne <= 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
if (notice != null)
{
var inviter = session.FindMemberInfoById(member.inviter_id);
if (inviter != null)
notice.Add(new OrderNoticeEvent(CpsType., inviter, db_order, OrderNoticeType.) { Customer = member });
}
}
else if (point.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., point.AwardOne, member.inviter_id, $"{member.usernick},拼多多购物1级提成 - {db_order.goods_name}({db_order.order_sn}) - 售后中(扣除)");
if (flag != null)
{
ids.Add(flag.id);
notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., point.AwardTwo, flag.inviter_id, $"{member.usernick},拼多多购物2级提成 - {db_order.goods_name}({db_order.order_sn}) - 售后中(扣除)");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notice.Add(new OrderNoticeEvent(CpsType., flag2, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., point.AwardThree, flag2.inviter_id, $"{member.usernick},拼多多购物3级提成 - {db_order.goods_name}({db_order.order_sn}) - 售后中(扣除)");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notice.Add(new OrderNoticeEvent(CpsType., flag3, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(db_order.msg_groupid) && !string.IsNullOrEmpty(db_order.db_robotname))
{
var robot = session.FindRobotInfo(db_order.db_robotname, db_order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(db_order.msg_groupid, db_order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., point.AwardCreate, create.mid, $"{member.usernick},拼多多维护提成! - {db_order.goods_name}({db_order.order_sn}) - 售后中(扣除)");
if (flag != null) notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经拼多结算订单的用户所得
/// </summary>
/// <param name="notice">通知集合</param>
/// <param name="db_order">拼多多订单对象</param>
public void DeductSuningOrderPoint(List<OrderNoticeEvent> notice, fl_order_suning db_order)
{
try
{
if (db_order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle<fl_member_info>("id=@id", new { id = db_order.db_userid });
if (member == null) return;
var point = HttpHelper.JsonToObject<ItemPoint>(db_order.db_point) as ItemPoint;
if (point == null) return;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., point.UserPoint, member.id, $"苏宁易购购买:{db_order.productName}({db_order.orderCode}-{db_order.orderLineNumber}) - 售后中(扣除)");
//#region 判断用户是否符合获得新人奖励
//isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, db_order.db_status);
//#endregion
notice.Add(new OrderNoticeEvent(CpsType., member, db_order));
//多级提成计算
//一级的提成小于等于0时,并且判断一级是否符合获得推荐新人奖励(无奖励一级提成)
if (point.AwardOne <= 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
if (notice != null)
{
var inviter = session.FindMemberInfoById(member.inviter_id);
if (inviter != null)
notice.Add(new OrderNoticeEvent(CpsType., inviter, db_order, OrderNoticeType.) { Customer = member });
}
}
else if (point.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., point.AwardOne, member.inviter_id, $"{member.usernick},苏宁易购购物1级提成 - {db_order.productName}({db_order.orderCode}-{db_order.orderLineNumber}) - 售后中(扣除)");
if (flag != null)
{
ids.Add(flag.id);
notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., point.AwardTwo, flag.inviter_id, $"{member.usernick},苏宁易购购物2级提成 - {db_order.productName}({db_order.orderCode}-{db_order.orderLineNumber}) - 售后中(扣除)");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notice.Add(new OrderNoticeEvent(CpsType., flag2, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., point.AwardThree, flag2.inviter_id, $"{member.usernick},苏宁易购购物3级提成 - {db_order.productName}({db_order.orderCode}-{db_order.orderLineNumber}) - 售后中(扣除)");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notice.Add(new OrderNoticeEvent(CpsType., flag3, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(db_order.msg_groupid) && !string.IsNullOrEmpty(db_order.db_robotname))
{
var robot = session.FindRobotInfo(db_order.db_robotname, db_order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(db_order.msg_groupid, db_order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., point.AwardCreate, create.mid, $"{member.usernick},苏宁易购维护提成! - {db_order.productName}({db_order.orderCode}-{db_order.orderLineNumber}) - 售后中(扣除)");
if (flag != null) notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
}
/// <summary>
/// 扣除已经唯品会结算订单的用户所得
/// </summary>
/// <param name="notice">通知集合</param>
/// <param name="db_order">唯品会订单对象</param>
public bool DeductWeipinhuiOrderPoint(List<OrderNoticeEvent> notice, fl_order_weipinhui db_order)
{
try
{
if (db_order.db_userid == 0) return false;
var session = ApiClient.GetSession();
var member = session.FindSingle<fl_member_info>("id=@id", new { id = db_order.db_userid });
if (member == null) return false;
var point = HttpHelper.JsonToObject<ItemPoint>(db_order.db_point) as ItemPoint;
if (point == null) return false;
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = session.ChangePoint(PointType., point.UserPoint, member.id, $"唯品会购买:{db_order.goodsName}({db_order.orderSn} - {db_order.goodsId}) - 售后中(扣除)");
//#region 判断用户是否符合获得新人奖励
//isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, db_order.db_status);
//#endregion
notice.Add(new OrderNoticeEvent(CpsType., member, db_order));
//多级提成计算
//一级的提成小于等于0时,并且判断一级是否符合获得推荐新人奖励(无奖励一级提成)
if (point.AwardOne <= 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
if (notice != null)
{
var inviter = session.FindMemberInfoById(member.inviter_id);
if (inviter != null)
notice.Add(new OrderNoticeEvent(CpsType., inviter, db_order, OrderNoticeType.) { Customer = member });
}
}
else if (point.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = session.ChangePoint(PointType., point.AwardOne, member.inviter_id, $"{member.usernick},唯品会购物1级提成 - {db_order.goodsName}({db_order.orderSn} - {db_order.goodsId}) - 售后中(扣除)");
if (flag != null)
{
ids.Add(flag.id);
notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = session.ChangePoint(PointType., point.AwardTwo, flag.inviter_id, $"{member.usernick},唯品会购物2级提成 - {db_order.goodsName}({db_order.orderSn} - {db_order.goodsId}) - 售后中(扣除)");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notice.Add(new OrderNoticeEvent(CpsType., flag2, db_order, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = session.ChangePoint(PointType., point.AwardThree, flag2.inviter_id, $"{member.usernick},唯品会购物3级提成 - {db_order.goodsName}({db_order.orderSn} - {db_order.goodsId}) - 售后中(扣除)");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notice.Add(new OrderNoticeEvent(CpsType., flag3, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(db_order.msg_groupid) && !string.IsNullOrEmpty(db_order.db_robotname))
{
var robot = session.FindRobotInfo(db_order.db_robotname, db_order.db_robottype);
if (robot != null)
{
var create = session.FindCreateInfo(db_order.msg_groupid, db_order.db_robottype);
if (create != null && member.id != create.id)
{
var flag = session.ChangePoint(PointType., point.AwardCreate, create.mid, $"{member.usernick},唯品会维护提成! - {db_order.goodsName}({db_order.orderSn} - {db_order.goodsId}) - 售后中(扣除)");
if (flag != null) notice.Add(new OrderNoticeEvent(CpsType., flag, db_order, OrderNoticeType.) { Customer = member });
}
}
}
}
catch (Exception ex)
{ }
return true;
}
}
}