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; } } }