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
{
///
/// 订单助手
///
public class OrderHelper
{
///
/// 判断是否是三个平台的订单号
///
/// 判断是否为已知的cps订单
///
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 返利平台消息类型简单判断(较少误判断)
///
/// 简单判断消息是否为指定cps类型
///
/// 消息
/// cps类型
///
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;
}
///
/// 是否为拼多多
///
/// 消息
///
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;
}
///
/// 是否为京东
///
/// 消息
///
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;
}
///
/// 是否为阿里
///
/// 消息
///
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 tbConfig;
///
/// 获取阿里配置
///
/// 刷新
public static Dictionary RefreshTbConfig(bool refresh = false)
{
if (refresh || tbConfig == null)
tbConfig = Util.ReadConfig("插件-淘宝返利-配置", true);
return tbConfig;
}
#endregion
#region 获取拼多多配置
private static Dictionary pddConfig;
///
/// 获取拼多多配置
///
/// 刷新
public static Dictionary RefreshPddConfig(bool refresh = false)
{
if (refresh || pddConfig == null)
pddConfig = Util.ReadConfig("插件-拼多多返利-配置", true);
return pddConfig;
}
#endregion
#region 获取抖音配置
private static Dictionary dyConfig;
///
/// 获取抖音配置
///
/// 刷新
public static Dictionary RefreshDyConfig(bool refresh = false)
{
if (refresh || dyConfig == null)
dyConfig = Util.ReadConfig("插件-抖音返利-配置", true);
return dyConfig;
}
#endregion
private static Dictionary config;
static OrderHelper()
{
RefreshConfig();
}
///
/// 刷新用户裂变配置
///
/// 刷新
public static void RefreshConfig(bool refresh = false)
{
if (refresh || config == null)
{
config = Util.ReadConfig("插件-用户裂变-配置", true);
}
}
private static readonly Object lockObj_1 = new Object();
///
/// 判断上级是否获得推荐奖励
///
/// 订单所绑定的用户对象
/// 订单结算时间
/// 付款金额
///
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(record).ExecuteCommand();
var flag = false;
var orderCount = 0;//历史是否存在已结算的订单
var db_endtime = (endtime.Year == 1900 ? DateTime.Now : endtime);
orderCount += session.Find("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("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("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("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("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("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(record).ExecuteCommand();
var orderCount = 0;//历史是否存在已结算的订单
orderCount += session.Find("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("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("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("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("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("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();
///
/// 判断是否用户首单奖励
///
/// 用户对象
/// 系统订单类型
///
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(record).ExecuteCommand();
}
else
{
if (record.ex2 == 0 && record.ex4 == 0)
record.ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now);
session.Saveable(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(record).ExecuteCommand();
var orderCount = 0;
orderCount += session.Find("select * from fl_order_alimama where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find("select * from fl_order_jingdong where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find("select * from fl_order_pinduoduo where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find("select * from fl_order_weipinhui where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find("select * from fl_order_douyin where db_userid = @db_userid", new { db_userid = member.id }).Count;
if (orderCount == 0 || orderCount == 1)
{
orderCount += session.Find("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(record).ExecuteCommand();
return (member.finish_order == 1);
}
}
}
}
return false;
}
}
catch (Exception ex)
{ }
return false;
}
///
/// 扣除已经阿里结算订单的用户所得
///
/// 通知集合
/// 阿里订单对象
public void DeductAliOrderPoint(List notices, fl_order_alimama order)
{
try
{
if (order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle("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(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 ids = new List();
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)
{ }
}
///
/// 扣除已经京东结算订单的用户所得
///
/// 通知集合
/// 京东订单对象
/// 积分分配对象
public void DeductJingDongOrderPoint(List 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("id=@id", new { id = order.db_userid });
if (member == null) return;
List ids = new List();
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)
{ }
}
///
/// 扣除已经快手结算订单的用户所得
///
/// 通知集合
/// 快手订单对象
/// 积分分配对象
public void DeductKuaiShouOrderPoint(List 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("id=@id", new { id = order.db_userid });
if (member == null) return;
List ids = new List();
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)
{ }
}
///
/// 扣除已经抖音结算订单的用户所得
///
/// 通知集合
/// 抖音订单对象
/// 积分分配对象
public void DeductDouYinOrderPoint(List 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("id=@id", new { id = order.db_userid });
if (member == null) return;
List ids = new List();
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)
{ }
}
///
/// 扣除已经拼多结算订单的用户所得
///
/// 通知集合
/// 拼多多订单对象
public void DeductPinDuoOrderPoint(List notice, fl_order_pinduoduo db_order)
{
try
{
if (db_order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle("id=@id", new { id = db_order.db_userid });
if (member == null) return;
var point = HttpHelper.JsonToObject(db_order.db_point) as ItemPoint;
if (point == null) return;
List ids = new List();
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)
{ }
}
///
/// 扣除已经拼多结算订单的用户所得
///
/// 通知集合
/// 拼多多订单对象
public void DeductSuningOrderPoint(List notice, fl_order_suning db_order)
{
try
{
if (db_order.db_userid == 0) return;
var session = ApiClient.GetSession();
var member = session.FindSingle("id=@id", new { id = db_order.db_userid });
if (member == null) return;
var point = HttpHelper.JsonToObject(db_order.db_point) as ItemPoint;
if (point == null) return;
List ids = new List();
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)
{ }
}
///
/// 扣除已经唯品会结算订单的用户所得
///
/// 通知集合
/// 唯品会订单对象
public bool DeductWeipinhuiOrderPoint(List notice, fl_order_weipinhui db_order)
{
try
{
if (db_order.db_userid == 0) return false;
var session = ApiClient.GetSession();
var member = session.FindSingle("id=@id", new { id = db_order.db_userid });
if (member == null) return false;
var point = HttpHelper.JsonToObject(db_order.db_point) as ItemPoint;
if (point == null) return false;
List ids = new List();
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;
}
}
}