old_flsystem/类库/Api.Framework/Timers/DownKuaiShouTimer.cs

774 lines
42 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 System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Api.Framework.Cps;
using Api.Framework.EntityTmp.KuaiShou;
using Api.Framework.Enums;
using Api.Framework.Events;
using Api.Framework.Extents;
using Api.Framework.Model;
using Api.Framework.SDK;
using Api.Framework.Tools;
using Api.Framework.Utils;
using CsharpHttpHelper;
using Newtonsoft.Json;
using SqlSugar;
namespace Api.Framework.Timers
{
public class DownKuaiShouTimer : TimerTask
{
private DateTime update_time = DateTime.Now.AddMinutes(-60);
public override void Run(object state, bool timedOut)
{
var endTime = DateTime.Now;
UpdateOrder(CpsClient.Members.Where(f => f.cpstype == CpsType. && f.is_download == SwitchType.).ToArray(), update_time, endTime);
update_time = DateTime.Now.AddMinutes(-20);
}
/// <summary>
/// 手动同步订单
/// </summary>
/// <param name="member">快手cps对象集合</param>
/// <param name="start_time">开始时间</param>
/// <param name="end_time">结束时间</param>
public void UpdateOrder(List<fl_cps_member> members, DateTime start_time, DateTime end_time)
{
if (IsRunning) throw new Exception("任务繁忙,请稍后重试!");
try
{
IsRunning = true;
UpdateOrder(members.ToArray(), start_time, end_time);
}
catch (Exception ex)
{
EventClient.OnEvent(this, $"更新快手订单异常:{ex.Message} - {ex.StackTrace}");
}
finally
{
IsRunning = false;
}
}
/// <summary>
/// 同步订单
/// </summary>
/// <param name="members">快手cps对象集合</param>
/// <param name="start_time">开始时间</param>
/// <param name="end_time">结束时间</param>
private void UpdateOrder(fl_cps_member[] members, DateTime start_time, DateTime end_time)
{
if (members == null || members.Length == 0) return;
UnValidCpsMember(members);
int row_count = 50; //间隔
var timespan = end_time - start_time;
TaskTool task = new TaskTool();
List<OrderNoticeEvent> notices = new List<OrderNoticeEvent>();
var not_download_pids = ApiClient.Setting.SystemConfig.order_kuaishou_not_download_pid.Replace("", ",")
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
members = members.Where(f => f.is_valid).ToArray();
foreach (var item in members)
{
var _item = item;
var client = new KuaiShouApi(_item);
task.AddTask(delegate
{
try
{
var _star = timespan.TotalHours > 24 ? end_time : start_time; //倒叙24小时一个间断
var _end = end_time;
do
{
if (timespan.TotalHours > 24)
{
_end = _star;
_star = _star.AddHours(-23.99);
}
client.DownOrder(_star, _end, OrderHandle, "");
} while (_star > start_time);
#region
var session = ApiClient.GetSession();
var end_orders = session.Find<fl_order_kuaishou>("select * from fl_order_kuaishou where db_status=@db_status and db_endtime<@db_endtime", new { db_status = (int)SystemOrderStatus., db_endtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ToList();
foreach (var db_order in end_orders)
{
UpdateOrder(db_order, session, notices);
}
#endregion
}
catch (Exception ex)
{
//throw ex;
}
});
}
task.Start(1, null);
//if (string.IsNullOrEmpty(order_id))
//{
// var session = ApiClient.GetSession();
// var end_orders = session.Find<fl_order_kuaishou>("select * from fl_order_kuaishou where db_status=@db_status and db_endtime<@db_endtime", new { db_status = (int)SystemOrderStatus.订单冻结, db_endtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ToList();
// foreach (var db_order in end_orders)
// {
// UpdateOrder(db_order, session, notices);
// }
//}
//if (notices.Count != 0)
//{
// var tasks = TimerTask.GetTimer<Update_NoticeQueue>() as Update_NoticeQueue;
// foreach (var item in notices)
// {
// //if (item.Member == null) continue;
// var order = item.Order as fl_order_kuaishou;
// if (order.order_sn == order_id) continue;
// tasks.Add(item);
// }
//}
}
private void OrderHandle(KS_OrderInfo orderInfo, string username, string usernick)
{
try
{
if (orderInfo?.orderList != null && orderInfo.orderList.Count != 0)
{
List<OrderNoticeEvent> notices = new List<OrderNoticeEvent>();
var notDownloadPids = ApiClient.Setting.SystemConfig.order_kuaishou_not_download_pid.Replace("", ",").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
int count = 1;
foreach (var item in orderInfo.orderList)
{
try
{
if (item.cpsKwaimoneyOrderProductView == null || item.cpsKwaimoneyOrderProductView.Count == 0)
continue;
var db = ApiClient.GetSession();
foreach (var orderItem in item.cpsKwaimoneyOrderProductView)
{
count++;
#region PID
if (ApiClient.Setting.SystemConfig.order_kuaishou_download_set_pids == SwitchType.)
{
if (notDownloadPids.Count != 0)
{
var isExist = notDownloadPids.Contains(orderItem.cpsPid);//是否包含
//continue;
if (ApiClient.Setting.SystemConfig.order_kuaishou_down_type == DownAdzoneType.广 && isExist)
continue;
else if (ApiClient.Setting.SystemConfig.order_kuaishou_down_type == DownAdzoneType.广 && !isExist)
continue;
}
}
else
{
var adzoneList = new List<fl_adzone_info>();
var adzones = db.FindAdzoneInfos();
adzoneList.AddRange(adzones.Where(f => f.custom_type == "快手返利" && !string.IsNullOrEmpty(f.adzone_pid) && f.adzone_pid.Contains(orderItem.cpsPid)));
adzoneList.AddRange(adzones.Where(f => f.custom_type == "用户私人pid" && f.extend == "快手私人pid" && !string.IsNullOrEmpty(f.adzone_pid) && f.adzone_pid.Contains(orderItem.cpsPid)));
if (adzoneList.Count() == 0)
continue;
}
#endregion
if (ApiClient.Setting.DbConfig.DatabaseType == DatabaseType.SQLITE && count % 10 == 0)
Thread.Sleep(150);
var dbOrder = db.FindSingle<fl_order_kuaishou>("oid=@oid and oid2=@oid2", new { oid = item.oid, oid2 = orderItem.oid });
if (dbOrder != null)
{
var updateTime = item.updateTime.ToDateTime();
if (dbOrder.updateTime == updateTime)
continue;
if (dbOrder.IsFinish())//是否已经完成
continue;
if (dbOrder.db_status == SystemOrderStatus. && dbOrder.db_endtime > DateTime.Now)//跳过冻结
continue;
dbOrder.updateTime = updateTime;
dbOrder.cpsOrderStatus = (CpsOrderStatus)item.cpsOrderStatus;
dbOrder.settlementSuccessTime = item.settlementSuccessTime.ToDateTime();
dbOrder.settlementAmount = item.settlementAmount.ExecDivision();
}
else
{
dbOrder = ToDbKusishou(item, orderItem);
dbOrder.db_cpsname = username;
dbOrder.db_cpsnick = usernick;
}
UpdateOrder(dbOrder, db, notices);
}
}
catch (Exception ex)
{
//Console.WriteLine($"处理订单异常1:{ex.Message} - {ex.StackTrace}");
}
}
//通知
if (notices.Count != 0)
{
var tasks = TimerTask.GetTimer<Update_NoticeQueue>() as Update_NoticeQueue;
foreach (var item in notices)
{
var order = item.Order as fl_order_kuaishou;
tasks.Add(item);
}
}
}
}
catch (Exception ex)
{
//Console.WriteLine($"处理订单异常2:{ex.Message} - {ex.StackTrace}");
}
}
private fl_order_kuaishou ToDbKusishou(OrderList order, CpsOrderProductView orderItem)
{
var dbOrder = new fl_order_kuaishou();
dbOrder.oid = order.oid;
dbOrder.cpsOrderStatus = (CpsOrderStatus)order.cpsOrderStatus;
dbOrder.orderCreateTime = order.orderCreateTime.ToDateTime();
dbOrder.payTime = order.payTime.ToDateTime();
dbOrder.orderTradeAmount = order.orderTradeAmount.ExecDivision();
dbOrder.createTime = order.createTime.ToDateTime();
dbOrder.updateTime = order.updateTime.ToDateTime();
dbOrder.settlementSuccessTime = order.settlementSuccessTime.ToDateTime();
dbOrder.settlementAmount = order.settlementAmount.ExecDivision();
dbOrder.kwaimoneyUserId = order.kwaimoneyUserId;
dbOrder.oid2 = orderItem.oid;
dbOrder.itemId = orderItem.itemId;
dbOrder.itemTitle = orderItem.itemTitle;
dbOrder.itemPicUrl = orderItem.itemPicUrl;
dbOrder.itemPrice = orderItem.itemPrice.ExecDivision();
dbOrder.skuDesc = orderItem.skuDesc;
dbOrder.estimatedIncome = orderItem.estimatedIncome.ExecDivision();
dbOrder.commissionRate = orderItem.commissionRate.ExecDivision(1000, 3);
dbOrder.cpsPid = orderItem.cpsPid;
dbOrder.sellerId = orderItem.sellerId;
dbOrder.sellerNickname = orderItem.sellerNickname;
dbOrder.num = orderItem.num;
dbOrder.cpsType = orderItem.cpsType;
dbOrder.distributorId = orderItem.distributorId;
dbOrder.distributorNickname = orderItem.distributorNickname;
dbOrder.comments = orderItem.comments;
dbOrder.pidName = orderItem.pidName;
dbOrder.paymentFee = orderItem.paymentFee.ExecDivision();
return dbOrder;
}
internal bool UpdateOrder(DateTime start_time, DateTime end_time)
{
if (IsRunning) throw new Exception("任务繁忙,请稍后重试!");
try
{
IsRunning = true;
var members = CpsClient.Members.Where(f => f.cpstype == CpsType. && f.is_download == SwitchType.).ToArray();
UnValidCpsMember(members);
UpdateOrder(members, start_time, end_time);
return true;
}
catch (Exception ex)
{
EventClient.OnEvent(this, "更新快手异常:" + ex.Message);
return false;
}
finally
{
IsRunning = false;
}
}
/// <summary>
/// 订单 修改状态/用户绑定等操作通知用户
/// </summary>
/// <param name="dbOrder">快手订单对象</param>
/// <param name="db">数据库操作对象</param>
/// <param name="notice">事件集合</param>
/// <param name="isFrontData"></param>
public void UpdateOrder(fl_order_kuaishou dbOrder, SqlSugarClient db, List<OrderNoticeEvent> notice, bool isFrontData = false)
{
try
{
var old_status = dbOrder.db_status;
fl_member_info member = null; ;
var isRewards = false;//是否获得推荐新人奖励
var isFirstOrder = false;//是否获得用户首单奖励
var islotUserQuery = false;//订单是否为多人查询
//历史佣金计算id
fl_itempoint1_hist itemPointHist = null;
//订单自动绑定
if (dbOrder.db_userid == 0 && ApiClient.Setting.SystemConfig.order_kuaishou_bind == SwitchType.)
{
var isbind = false;
#region
//私人推广位强制绑定绑定
var privateAdzonePids = db.FindKuaishouPrivatePid(dbOrder.cpsPid);
if (privateAdzonePids.Count == 1 && privateAdzonePids[0].is_auto_bind)//无条件设置开启中,直接自动绑定
{
var memberInfo = db.FindMemberInfoById(privateAdzonePids[0].member_id);
if (memberInfo != null)
{
dbOrder.db_userid = memberInfo.id;
dbOrder.db_robotname = memberInfo.robot_name;
dbOrder.db_robottype = memberInfo.robot_type;
isbind = true;
}
}
if (!isbind)
{
var bind_pids = db.FindKuaishouAutoBindPid();
bool flag = bind_pids.FirstOrDefault(f => f == dbOrder.cpsPid) != null ? true : false;
if (flag)
{
#region
if (!string.IsNullOrWhiteSpace(dbOrder.comments))
{
itemPointHist = db.Queryable<fl_itempoint1_hist>().First(f => f.guidkey == dbOrder.comments);
if (itemPointHist != null)
{
member = db.FindMemberInfoById(itemPointHist.uid);
if (member != null)
{
dbOrder.db_userid = member.id;
if (string.IsNullOrEmpty(dbOrder.db_robotname))
{
dbOrder.db_robotname = itemPointHist.robotname;
dbOrder.db_robottype = member.robot_type;
}
dbOrder.msg_groupid = itemPointHist.gid;
}
}
}
#endregion
}
}
#endregion
}
else
{
member = db.Find<fl_member_info>("id=@id", new { id = dbOrder.db_userid }).FirstOrDefault();
}
#region
if (dbOrder.cpsOrderStatus == CpsOrderStatus. && dbOrder.db_userid != 0)
{
try
{
var record = db.FindStatisticsRecord(dbOrder.db_userid);
if (record == null)
record = new fl_statistics_record() { uid = dbOrder.db_userid };
record.ex5 = HttpExtend.GetTimeStamp(dbOrder.payTime);
db.Saveable(record).ExecuteCommand();
}
catch (Exception)
{ }
}
#endregion
//计算积分
if (string.IsNullOrEmpty(dbOrder.db_point))
{
if (member == null)
member = db.Find<fl_member_info>("id=@id", new { id = dbOrder.db_userid }).FirstOrDefault();
ItemPoint itempoint = null;
Compute compute = null;
if (itemPointHist != null)
compute = JsonConvert.DeserializeObject<Compute>(itemPointHist.text);
//计算的佣金
if (compute != null)
itempoint = db.FindItemPoint(CpsType., compute, dbOrder.estimatedIncome, dbOrder.num);
else
itempoint = db.FindItemPoint(member, dbOrder.estimatedIncome, dbOrder.num, CpsType.);
if (itempoint != null)
{
dbOrder.db_point = HttpHelper.ObjectToJson(itempoint);
dbOrder.db_userpoint = itempoint.UserPoint;
}
if (member != null)
{
member.bind_order++;
member = db.UpdateMemberGroup(member);
}
}
if (member != null && string.IsNullOrWhiteSpace(dbOrder.db_robotname))
{
dbOrder.db_robotname = member.robot_name;
dbOrder.db_robottype = member.robot_type;
}
switch (dbOrder.cpsOrderStatus)
{
case CpsOrderStatus.:
case CpsOrderStatus.:
{
//未发放佣金
if (dbOrder.db_endtime == DateTime.MinValue)
{
var sleep = db.FindSleep(CpsType., ApiClient.Setting.SystemConfig.FreezingCondition == FreezingConditionType. ? dbOrder.estimatedIncome : dbOrder.db_userpoint);
if (sleep != null)
{
if (!string.IsNullOrEmpty(sleep.white_groups))
{
if (member != null && sleep.white_groups.Split(',').Contains(member.group_id.ToString()))
{
dbOrder.db_endtime = DateTime.Now;//该会员组不受限制
}
else
{
dbOrder.db_endtime = DateTime.Now.AddHours(sleep.sleep);//延迟多少小时
}
}
else dbOrder.db_endtime = DateTime.Now.AddHours(sleep.sleep);//延迟多少小时
}
else dbOrder.db_endtime = DateTime.Now;
#region 24
var config = Util.Read<Dictionary<string, object>>("插件-快手返利-配置");
if (config != null)
{
if (config.ContainsKey("ReceivingTimeCheck_Switch"))
{
var ReceivingTimeCheck_Switch = bool.Parse(config["ReceivingTimeCheck_Switch"].ToString());
if (ReceivingTimeCheck_Switch)
{
if (config.ContainsKey("ReceivingTimeCheck_Hour"))
{
var ReceivingTimeCheck_Hour = int.Parse(config["ReceivingTimeCheck_Hour"].ToString());
if ((DateTime.Now - dbOrder.payTime).TotalHours <= ReceivingTimeCheck_Hour)//判断订单收货时间差
{
if (config.ContainsKey("ReceivingTimeCheck_OperateType"))
{
var ReceivingTimeCheck_OperateType = (OperateType)int.Parse(config["ReceivingTimeCheck_OperateType"].ToString());
if (ReceivingTimeCheck_OperateType == OperateType.)
{
if (config.ContainsKey("ReceivingTimeCheck_FreezeTime"))
{
var ReceivingTimeCheck_FreezeTime = int.Parse(config["ReceivingTimeCheck_FreezeTime"].ToString());
dbOrder.db_endtime = dbOrder.db_endtime.AddHours(ReceivingTimeCheck_FreezeTime);//延迟多少小时
}
}
}
}
}
}
}
}
#endregion
}
if (dbOrder.db_endtime <= DateTime.Now)
{
dbOrder.db_status = SystemOrderStatus.;
//session.ExcuteSQL("update fl_order_kuaishou set db_status=" + (int)db_order.db_status + " where id=" + db_order.id);
if (member != null)
{
var point = HttpHelper.JsonToObject<ItemPoint>(dbOrder.db_point) as ItemPoint;
if (point != null)
{
#region
var pointHists = db.Find<fl_point_hist>("select * from fl_point_hist where uid = @uid and type = @pointType_name and message = @message", new { uid = member.id, pointType_name = PointType..ToString(), message = $"快手购买:{dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})" });
if (pointHists != null && pointHists.Count != 0)
{
db.SaveOrUpdate(dbOrder);
return;
}
#endregion
List<long> ids = new List<long>();
ids.Add(member.id);
//用户自身加积分
member = db.ChangePoint(PointType., point.UserPoint, member.id, $"快手购买:{dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})");
#region
isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, dbOrder.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 = db.FindMemberInfoById(member.inviter_id);
if (inviter != null)
{
#region
isRewards = OrderHelper.CheckSuperiorInviteRewards(member, dbOrder.db_endtime, dbOrder.paymentFee);
#endregion
notice.Add(new OrderNoticeEvent(CpsType., inviter, dbOrder, OrderNoticeType.) { Customer = member, IsRewards = isRewards });//下级首单完成
}
}
}
else if (point.AwardOne > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
var flag = db.ChangePoint(PointType., point.AwardOne, member.inviter_id, $"{member.usernick},快手购物1级提成 - {dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})");
if (flag != null)
{
ids.Add(flag.id);
#region
isRewards = OrderHelper.CheckSuperiorInviteRewards(member, dbOrder.db_endtime, dbOrder.paymentFee);
#endregion
notice.Add(new OrderNoticeEvent(CpsType., flag, dbOrder, OrderNoticeType.) { Customer = member, IsRewards = isRewards });
if (point.AwardTwo > 0 && flag.inviter_id != 0 && !ids.Contains(flag.inviter_id))
{
var flag2 = db.ChangePoint(PointType., point.AwardTwo, flag.inviter_id, $"{member.usernick},快手购物2级提成 - {dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})");
if (flag2 != null)
{
ids.Add(flag2.id);
if (flag2 != null)
{
notice.Add(new OrderNoticeEvent(CpsType., flag2, dbOrder, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && flag2.inviter_id != 0 && !ids.Contains(flag2.inviter_id))
{
var flag3 = db.ChangePoint(PointType., point.AwardThree, flag2.inviter_id, $"{member.usernick},快手购物3级提成 - {dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})");
if (flag3 != null)
{
ids.Add(flag3.id);
if (flag3 != null) notice.Add(new OrderNoticeEvent(CpsType., flag3, dbOrder, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(dbOrder.msg_groupid) && !string.IsNullOrEmpty(dbOrder.db_robotname))
{
var robot = db.FindRobotInfo(dbOrder.db_robotname, dbOrder.db_robottype);
if (robot != null)
{
var create = db.FindCreateInfo(dbOrder.msg_groupid, dbOrder.db_robottype);
if (create != null && member.id != create.id)
{
var flag = db.ChangePoint(PointType., point.AwardCreate, create.mid, $"{member.usernick},快手维护提成! - {dbOrder.itemTitle}({dbOrder.oid}-{dbOrder.oid2})");
if (flag != null) notice.Add(new OrderNoticeEvent(CpsType., flag, dbOrder, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
else dbOrder.db_status = SystemOrderStatus.;
break;
}
case CpsOrderStatus.:
dbOrder.db_status = SystemOrderStatus.;
break;
case CpsOrderStatus.:
dbOrder.db_status = SystemOrderStatus.;
if (member != null)//订单还没有绑定用户
{
if (dbOrder.db_endtime != DateTime.MinValue) //客户已经在冻结中
{
if (dbOrder.db_endtime <= DateTime.Now) //佣金已经解冻 - 已经把佣金给客户(需要扣除佣金)
{
ItemPoint itempointTmp = null;
var compute = db.FindQueryRatioHist(CpsType., dbOrder.id);
if (compute != null)
itempointTmp = db.FindItemPoint(CpsType., compute, dbOrder.estimatedIncome, dbOrder.num);
else
//判断用户的订单是否已经结算,如果已经结算通过实际佣金进行退款,如果没有结算通过预计佣进行计算
itempointTmp = db.FindItemPoint(member, dbOrder.estimatedIncome, dbOrder.num, CpsType.);
new OrderHelper().DeductKuaiShouOrderPoint(notice, dbOrder, itempointTmp);
dbOrder.db_status = SystemOrderStatus.退;
}
else
{
//if (itempoint != null)
//{
// //用户自身加积分
// //member = session.ChangePoint(PointType.维权扣除, itempoint.UserPoint, member.id, $"抖音购买:{db_order.skuName}({db_order.orderId}) - 售后中(扣除) - 订单还未结算(冻结中)");
//}
}
}
dbOrder.db_endtime = DateTime.MinValue;
}
break;
default:
dbOrder.db_status = SystemOrderStatus.;
break;
}
#region /
if (member != null && (dbOrder.db_status == SystemOrderStatus. || dbOrder.db_status == SystemOrderStatus.))
{
var point = HttpHelper.JsonToObject<ItemPoint>(dbOrder.db_point) as ItemPoint;
if (point != null)
{
List<long> ids = new List<long>();
ids.Add(member.id);
if (point.AwardOne > 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
{
//一级用户对象
var member_one = db.FindMemberInfoById(member.inviter_id);
if (member_one != null)
{
ids.Add(member_one.id);
if (notice != null)
notice.Add(new OrderNoticeEvent(CpsType., member_one, dbOrder, OrderNoticeType.) { Customer = member });
if (point.AwardTwo > 0 && member_one.inviter_id != 0 && !ids.Contains(member_one.inviter_id))
{
//二级用户对象
var member_two = db.FindMemberInfoById(member_one.inviter_id);
if (member_two != null)
{
ids.Add(member_two.id);
if (notice != null && member_two != null)
{
notice.Add(new OrderNoticeEvent(CpsType., member_two, dbOrder, OrderNoticeType.) { Customer = member });
if (point.AwardThree > 0 && member_two.inviter_id != 0 && !ids.Contains(member_two.inviter_id))
{
//三级用户对象
var member_three = db.FindMemberInfoById(member_two.inviter_id);
if (member_three != null)
{
ids.Add(member_three.id);
if (notice != null && member_three != null)
notice.Add(new OrderNoticeEvent(CpsType., member_three, dbOrder, OrderNoticeType.) { Customer = member });
}
}
}
}
}
}
}
//创建人计算
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(dbOrder.msg_groupid) && !string.IsNullOrEmpty(dbOrder.db_robotname))
{
var create = db.FindCreateInfo(dbOrder.msg_groupid, dbOrder.db_robottype);
if (create != null && member.id != create.id)
{
var member_create = db.FindMemberInfoById(create.mid);
if (notice != null && member_create != null) notice.Add(new OrderNoticeEvent(CpsType., member_create, dbOrder, OrderNoticeType.) { Customer = member });
}
}
}
}
#endregion
if (old_status != dbOrder.db_status)
dbOrder.db_status_time = HttpExtend.GetTimeStamp();
db.SaveOrUpdate(dbOrder);
if (dbOrder.db_status == SystemOrderStatus.)
{
#region
isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, dbOrder.db_status);
#endregion
}
//if (notice != null && (isFrontData || old_status != db_order.db_status))
if (notice != null && (isFrontData || old_status != dbOrder.db_status)
&& ((islotUserQuery && member == null) || member != null))
notice.Add(new Events.OrderNoticeEvent(CpsType., member, dbOrder, OrderNoticeType.) { IsRewards = isFirstOrder });
}
catch (Exception ex)
{
EventClient.OnEvent(this, "更新快手订单错误:" + dbOrder.oid + "-" + dbOrder.oid2 + "," + ex.Message);
}
}
private static DateTime invalidnotice_time = DateTime.MinValue;//阿里妈妈账号无效通知时间
private static DateTime invalidnotice_time2 = DateTime.MinValue;//阿里妈妈账号日志无效时间
/// <summary>
/// 无效的快手账号通知
/// </summary>
/// <param name="_members">快手cps对象集合</param>
private void UnValidCpsMember(fl_cps_member[] _members)
{
try
{
var invalid_members = _members.Where(f => !f.is_valid).ToArray();
if (invalid_members.Length != 0)
{
var strb = new StringBuilder();
strb.AppendLine($"快手更新订单异常");
strb.AppendLine();
for (int i = 0; i < invalid_members.Length; i++)
{
strb.AppendLine($"{invalid_members[i].usernick} ({invalid_members[i].username})");
}
strb.AppendLine();
strb.AppendLine($"以上账号授权状态已过期");
strb.AppendLine($"跳过以上账号下载操作");
strb.AppendLine($"请重新登录快手账号");
var timelag2 = (DateTime.Now - invalidnotice_time2).TotalMinutes;
if (timelag2 > 5)
{
invalidnotice_time2 = DateTime.Now;
EventClient.OnEvent(this, strb.ToString());
}
var timelag = (DateTime.Now - invalidnotice_time).TotalMinutes;
if (timelag > 30)
{
strb.AppendLine($"系统时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
invalidnotice_time = DateTime.Now;
ApiClient.SendNoticeMessage(strb.ToString());
ApiClient.SendAdminEmail(ApiClient.Setting.SystemConfig.account_admin_email, "快手账号授权失效通知", strb.ToString(), true);
}
}
}
catch (Exception ex)
{
EventClient.OnEvent(this, $"更新快手订单异常7:{ex.Message},{ex.StackTrace}");
}
}
}
}