1015 lines
61 KiB
C#
1015 lines
61 KiB
C#
|
using Api.Framework.Cps;
|
|||
|
using Api.Framework.EntityTmp.Douyin;
|
|||
|
using Api.Framework.Enums;
|
|||
|
using Api.Framework.Events;
|
|||
|
using Api.Framework.Model;
|
|||
|
using Api.Framework.Properties;
|
|||
|
using Api.Framework.SDK;
|
|||
|
using Api.Framework.Tools;
|
|||
|
using Api.Framework.Utils;
|
|||
|
using CsharpHttpHelper;
|
|||
|
using Newtonsoft.Json;
|
|||
|
using Newtonsoft.Json.Linq;
|
|||
|
using SqlSugar;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Diagnostics;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using static Api.Framework.Cps.AlimamaApi;
|
|||
|
|
|||
|
namespace Api.Framework.Timers
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 抖音订单下载定时器
|
|||
|
/// </summary>
|
|||
|
public class DownDouyinTimer : TimerTask
|
|||
|
{
|
|||
|
private static object rights = null;
|
|||
|
private static readonly object objLock = new object();
|
|||
|
|
|||
|
//public DownDouyinTimer()
|
|||
|
//{
|
|||
|
// if (rights == null)
|
|||
|
// {
|
|||
|
// lock (objLock)
|
|||
|
// {
|
|||
|
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
public override void Run(object state, bool timedOut)
|
|||
|
{
|
|||
|
//TODO 这里的时间还没有用,因为抖音巨量那边还搞不定(通过时间查询)
|
|||
|
var update_time = DateTime.Now.AddDays(-1);
|
|||
|
var end_time = DateTime.Now;
|
|||
|
UpdateOrder(CpsClient.Members.Where(f => f.cpstype == CpsType.抖音联盟 && f.is_download == SwitchType.开启).ToArray(), update_time, end_time);
|
|||
|
|
|||
|
#region 更新冻结的订单
|
|||
|
|
|||
|
List<OrderNoticeEvent> notices = new List<OrderNoticeEvent>();
|
|||
|
|
|||
|
var session = ApiClient.GetSession();
|
|||
|
var result = session.Find<fl_order_douyin>("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 result)
|
|||
|
{
|
|||
|
UpdateOrder(db_order, notices, session);
|
|||
|
}
|
|||
|
|
|||
|
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_douyin;
|
|||
|
tasks.Add(item);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
/// <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);
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
IsRunning = false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 订单下载时间间隔
|
|||
|
/// </summary>
|
|||
|
private const int IntervalHour = 12;
|
|||
|
|
|||
|
/// <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;
|
|||
|
|
|||
|
//var memberList = members.Where(f => f.online).ToList();
|
|||
|
var memberList = members.ToList();
|
|||
|
|
|||
|
var timespan = end_time - start_time;
|
|||
|
|
|||
|
TaskTool task = new TaskTool();
|
|||
|
List<OrderNoticeEvent> notices = new List<OrderNoticeEvent>();
|
|||
|
|
|||
|
foreach (var item in memberList)
|
|||
|
{
|
|||
|
var _item = item;
|
|||
|
var api = CpsClient.CreateDouyinRequest(_item);
|
|||
|
task.AddTask(delegate
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var _star = timespan.TotalHours > 12 ? end_time : start_time;//倒叙12小时一个间断
|
|||
|
var _end = end_time;
|
|||
|
do
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (timespan.TotalHours > 12)
|
|||
|
{
|
|||
|
_end = _star;
|
|||
|
_star = _star.AddHours(-11.99);
|
|||
|
}
|
|||
|
|
|||
|
var session = ApiClient.GetSession();
|
|||
|
|
|||
|
List<DyOrderInfo> orderList = new List<DyOrderInfo>();
|
|||
|
|
|||
|
//官方接口已经同步了订单,防止非官方接口再次同步
|
|||
|
List<string> orderidCache = new List<string>();
|
|||
|
|
|||
|
//if (1 != 2)
|
|||
|
{
|
|||
|
var pids = session.Find<fl_adzone_info>("select * from fl_adzone_info").Where(f => f.adzone_pid_cps_name == _item.username).Where(f => !string.IsNullOrWhiteSpace(f.adzone_pid)).Select(f => f.adzone_pid).Distinct().ToList();
|
|||
|
if (pids != null & pids.Count != 0)
|
|||
|
{
|
|||
|
foreach (var pid in pids)
|
|||
|
{
|
|||
|
var tmp = api.DownOrderApi(_star, _end, pid);
|
|||
|
if (tmp != null)
|
|||
|
orderList.AddRange(tmp);
|
|||
|
}
|
|||
|
|
|||
|
Exception _exception = null;
|
|||
|
|
|||
|
for (int i = 0; i < orderList.Count; i++)
|
|||
|
{
|
|||
|
var orderInfo = orderList[i];
|
|||
|
if (_exception != null) continue;
|
|||
|
foreach (var order in orderInfo.orders)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//if (order.order_id == "4886104544279610848")
|
|||
|
//{
|
|||
|
|
|||
|
//}
|
|||
|
if (ApiClient.Setting.DbConfig.DatabaseType == DatabaseType.SQLITE)
|
|||
|
Thread.Sleep(100);
|
|||
|
|
|||
|
var status = order.flow_point;
|
|||
|
|
|||
|
var db_order = session.FindSingle<fl_order_douyin>("order_id=@order_id and product_id=@product_id", new { order_id = order.order_id, product_id = order.product_id });
|
|||
|
if (db_order != null) //跳过相同状态
|
|||
|
{
|
|||
|
if (db_order.order_status == DouyinOrderStatus.REFUND.ToString() || db_order.product_detail == "手动处理")
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
if (status == db_order.order_status || status != DouyinOrderStatus.PAY_SUCC.ToString())
|
|||
|
{
|
|||
|
if (db_order.IsFinish()) continue;//是否已经完成
|
|||
|
if (db_order.db_status == SystemOrderStatus.订单冻结 && db_order.db_endtime > DateTime.Now) continue;//跳过系统冻结
|
|||
|
//if (db_order.order_status != WeipinhuiOrderSubStatusName.已签收 && db_order.order_status == status) continue;//跳过相同状态
|
|||
|
if (db_order.order_status == status) continue;//跳过相同状态
|
|||
|
}
|
|||
|
db_order.order_status = status;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
var orderTmp = new fl_order_douyin()
|
|||
|
{
|
|||
|
order_id = order.order_id,
|
|||
|
product_id = order.product_id,
|
|||
|
product_name = order.product_name,
|
|||
|
total_pay_amount = order.pay_goods_amount,
|
|||
|
estimated_comission = order.estimated_commission,
|
|||
|
order_status = order.flow_point,
|
|||
|
pay_time = HttpExtend.GetTimeStamp(DateTime.Parse(order.pay_success_time))
|
|||
|
//...
|
|||
|
};
|
|||
|
|
|||
|
db_order = orderTmp;
|
|||
|
db_order.db_cpsname = _item.username;
|
|||
|
db_order.db_cpsnick = _item.usernick;
|
|||
|
}
|
|||
|
try
|
|||
|
{
|
|||
|
LogHelper.GetSingleObj().Debug("抖音订单: ", $@"抖音Api原始:{JsonConvert.SerializeObject(order)}
|
|||
|
|
|||
|
order = {JsonConvert.SerializeObject(db_order)}");
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{ }
|
|||
|
|
|||
|
orderidCache.Add(db_order.order_id);
|
|||
|
|
|||
|
UpdateOrder(db_order, notices, session);
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
LogHelper.GetSingleObj().Debug("抖音订单: ", $@"处理完成的 ,需要通知的用户 -> {notices.Count}
|
|||
|
order = {JsonConvert.SerializeObject(db_order)}");
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{ }
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
//session.Close();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_exception = ex;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//Console.WriteLine();
|
|||
|
|
|||
|
}
|
|||
|
//return;
|
|||
|
|
|||
|
//int queryCount = 1;
|
|||
|
|
|||
|
if (api.Member.online)//在为检测是未失效的时候进行同步
|
|||
|
{
|
|||
|
#region 非官方接口获取订单
|
|||
|
foreach (DouyinQueryOrderType type in Enum.GetValues(typeof(DouyinQueryOrderType)))
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Stopwatch stop = new Stopwatch();
|
|||
|
stop.Start();
|
|||
|
var json = api.DownOrder(_star, _end, 1, type);
|
|||
|
stop.Stop();
|
|||
|
//Console.WriteLine($"_star={_star},_end={_end},type={type},用时:{stop.Elapsed.TotalSeconds}");
|
|||
|
|
|||
|
if (api.Member.online)
|
|||
|
{
|
|||
|
if (json == null || json.Count == 0 || json[0] == "error")
|
|||
|
continue;
|
|||
|
var orderObj = JsonConvert.DeserializeObject<DouYinOrder>(json[0]);
|
|||
|
if (orderObj.code != 0) continue;
|
|||
|
Exception _exception = null;
|
|||
|
var data = orderObj.data;
|
|||
|
if (data == null) continue;
|
|||
|
for (int i = 0; i < data.Count; i++)
|
|||
|
{
|
|||
|
var order = data[i];
|
|||
|
if (_exception != null) continue;
|
|||
|
try
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//if (order.order_id == "4933900340490065113")
|
|||
|
//{
|
|||
|
//}
|
|||
|
//else
|
|||
|
//if (order.order_id == "4934209762824039641")
|
|||
|
//{
|
|||
|
//}
|
|||
|
//else
|
|||
|
//if (order.order_id == "4934212125058641113")
|
|||
|
//{
|
|||
|
//}
|
|||
|
//else
|
|||
|
//if (order.order_id == "4934295228379604185")
|
|||
|
//{
|
|||
|
//}
|
|||
|
//else
|
|||
|
//if (order.order_id == "4936102872734510874")
|
|||
|
//{
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// continue;
|
|||
|
//}
|
|||
|
|
|||
|
if (orderidCache.Contains(order.order_id))
|
|||
|
continue;
|
|||
|
|
|||
|
if (ApiClient.Setting.DbConfig.DatabaseType == DatabaseType.SQLITE)
|
|||
|
Thread.Sleep(100);
|
|||
|
|
|||
|
var status = order.order_status;
|
|||
|
|
|||
|
var db_order = session.FindSingle<fl_order_douyin>("order_id=@order_id and product_id=@product_id", new { order_id = order.order_id, product_id = order.product_id });
|
|||
|
if (db_order != null) //跳过相同状态
|
|||
|
{
|
|||
|
if (db_order.order_status == DouyinOrderStatus.REFUND.ToString() || db_order.product_detail == "手动处理")
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
if (status == db_order.order_status || status != DouyinOrderStatus.PAY_SUCC.ToString())
|
|||
|
{
|
|||
|
var isFinish = db_order.IsFinish();
|
|||
|
if (isFinish && status == db_order.order_status) continue;//是否已经完成
|
|||
|
|
|||
|
if (db_order.db_status == SystemOrderStatus.订单冻结 && db_order.db_endtime > DateTime.Now) continue;//跳过系统冻结
|
|||
|
//if (db_order.order_status != WeipinhuiOrderSubStatusName.已签收 && db_order.order_status == status) continue;//跳过相同状态
|
|||
|
if (db_order.order_status == status) continue;//跳过相同状态
|
|||
|
}
|
|||
|
db_order.order_status = status;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
db_order = order;
|
|||
|
db_order.db_cpsname = _item.username;
|
|||
|
db_order.db_cpsnick = _item.usernick;
|
|||
|
}
|
|||
|
try
|
|||
|
{
|
|||
|
LogHelper.GetSingleObj().Debug("抖音订单: ", $@"抖音原始:{JsonConvert.SerializeObject(order)}
|
|||
|
|
|||
|
order = {JsonConvert.SerializeObject(db_order)}");
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{ }
|
|||
|
|
|||
|
UpdateOrder(db_order, notices, session);
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
LogHelper.GetSingleObj().Debug("抖音订单: ", $@"处理完成的 ,需要通知的用不 -> {notices.Count}
|
|||
|
order = {JsonConvert.SerializeObject(db_order)}");
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{ }
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
//session.Close();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_exception = ex;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
EventClient.OnEvent("", $"抖音账号:{api.Member.usernick}({api.Member.username}),请重新登录");
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
/*
|
|||
|
{"st":0,"code":9001,"msg":"操作异常","log_id":"2022010221313001020404907424DA1368","data":[]}
|
|||
|
*/
|
|||
|
//if (ex.Message.Contains("操作异常") || ex.Message.Contains("请重新登录"))
|
|||
|
// queryCount++;
|
|||
|
//if (queryCount >= 2)
|
|||
|
//{
|
|||
|
// EventClient.OnEvent("", $"链接订单无法同步,请重新登录抖音:{api.Member.usernick}({api.Member.username})");
|
|||
|
// api.Member.online = false;
|
|||
|
// ApiClient.GetSession().SaveOrUpdate(api.Member);
|
|||
|
|
|||
|
// var shared = new Dictionary<string, object>();
|
|||
|
// shared["msg_type"] = "抖音验证码";
|
|||
|
// shared["cps_type"] = CpsType.抖音联盟;
|
|||
|
// shared["msg_username"] = api.Member.username;
|
|||
|
// shared["msg_usernick"] = api.Member.usernick;
|
|||
|
|
|||
|
// var sharedEvent = new SharedEvents(shared);
|
|||
|
// EventClient.OnSharedEvent(null, sharedEvent);
|
|||
|
// return;
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
//The underlying frame is no longer valid - please check the IsValid property before calling!
|
|||
|
if (ex.Message.Contains("is no longer valid - please check the IsValid"))
|
|||
|
{
|
|||
|
api.Member.is_valid = false;
|
|||
|
}
|
|||
|
}
|
|||
|
} while (_star > start_time);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
//throw ex;
|
|||
|
}
|
|||
|
|
|||
|
});
|
|||
|
}
|
|||
|
task.Start(1, null);
|
|||
|
|
|||
|
var db = ApiClient.GetSession();
|
|||
|
var end_orders = db.Find<fl_order_douyin>("select * from fl_order_douyin 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, notices, db);
|
|||
|
}
|
|||
|
|
|||
|
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_weipinhui;
|
|||
|
tasks.Add(item);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 订单 修改状态/用户绑定等操作通知用户
|
|||
|
/// </summary>
|
|||
|
/// <param name="db_order">抖音订单对象</param>
|
|||
|
/// <param name="notice">事件集合</param>
|
|||
|
/// <param name="session">数据库操作对象</param>
|
|||
|
/// <param name="isFrontData"></param>
|
|||
|
public void UpdateOrder(fl_order_douyin db_order, List<OrderNoticeEvent> notice, SqlSugarClient session, bool isFrontData = false)
|
|||
|
{
|
|||
|
//维权中的订单,直接跳出
|
|||
|
if (db_order.db_status == SystemOrderStatus.订单维权中)
|
|||
|
return;
|
|||
|
try
|
|||
|
{
|
|||
|
fl_plugin_allrebatesactivity_orderlist allrebatesactivity_orderlist = null;
|
|||
|
var old_status = db_order.db_status;
|
|||
|
var status = Util.ConvertEnum<DouyinOrderStatus>(db_order.order_status.ToUpper());
|
|||
|
bool islotUserQuery = false;//订单是否为多人查询
|
|||
|
// string old_md5 = Util.GetMd5_32byte(HttpHelper.ObjectToJson(db_order));
|
|||
|
var isRewards = false;//是否获得推荐新人奖励
|
|||
|
var isFirstOrder = false;//是否获得用户首单奖励
|
|||
|
|
|||
|
#region 自动识别绑定
|
|||
|
#region 缓存绑定
|
|||
|
if (db_order.db_userid == 0 && status == DouyinOrderStatus.PAY_SUCC)
|
|||
|
{
|
|||
|
var bind = session.FindBindCache(db_order.order_id);
|
|||
|
if (bind != null)
|
|||
|
{
|
|||
|
var memberInfo = session.FindMemberInfoById(bind.db_userid);
|
|||
|
if (memberInfo != null)
|
|||
|
{
|
|||
|
db_order.db_userid = memberInfo.id;
|
|||
|
db_order.db_robotname = memberInfo.robot_name;
|
|||
|
db_order.db_robottype = memberInfo.robot_type;
|
|||
|
db_order.msg_groupid = bind.groupid;
|
|||
|
session.SaveOrUpdate(memberInfo);
|
|||
|
//session.SaveOrUpdate(db_order);
|
|||
|
|
|||
|
#region 获取查询时的比例
|
|||
|
var query_item = session.FindSingle<fl_query_hist>("userid=@userid and itemid=@itemid and adzoneid = @adzoneid and crt_time > @time order by id desc", new { userid = db_order.db_userid, itemid = db_order.product_id, adzoneid = db_order.db_cpsname, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") });
|
|||
|
if (query_item != null && !string.IsNullOrWhiteSpace(query_item.compute_configdic))
|
|||
|
{
|
|||
|
if (db_order.id == 0)
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
var queryRatioHist = new fl_query_ratio_hist()
|
|||
|
{
|
|||
|
compute_config = query_item.compute_configdic,
|
|||
|
db_orderid = db_order.id,
|
|||
|
createtime = DateTime.Now,
|
|||
|
cpstype = CpsType.抖音联盟
|
|||
|
};
|
|||
|
session.SaveOrUpdate(queryRatioHist);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
if (db_order.db_userid == 0 && status == DouyinOrderStatus.PAY_SUCC)
|
|||
|
{
|
|||
|
#region 抖音返利推广位自动绑定
|
|||
|
|
|||
|
#region 私人推广位
|
|||
|
var privateAdzonePids = session.FindAlimamaPrivatePid(db_order.db_cpsname);//私人推广位对象
|
|||
|
if (privateAdzonePids.Count == 1 && privateAdzonePids[0].is_auto_bind)//无条件设置开启中,直接自动绑定
|
|||
|
{
|
|||
|
var memberInfo = session.FindSingle<fl_member_info>("select * from fl_member_info where id = @id", new { id = privateAdzonePids[0].member_id });
|
|||
|
if (memberInfo != null)
|
|||
|
{
|
|||
|
db_order.db_userid = memberInfo.id;
|
|||
|
db_order.db_robotname = memberInfo.robot_name;
|
|||
|
db_order.db_robottype = memberInfo.robot_type;
|
|||
|
//session.SaveOrUpdate(db_order);
|
|||
|
|
|||
|
#region 获取查询时的比例
|
|||
|
var query_item = session.FindSingle<fl_query_hist>("userid=@userid and itemid=@itemid and adzoneid = @adzoneid and crt_time > @time order by id desc", new { userid = db_order.db_userid, itemid = db_order.product_id, adzoneid = db_order.db_cpsname, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") });
|
|||
|
if (query_item != null && !string.IsNullOrWhiteSpace(query_item.compute_configdic))
|
|||
|
{
|
|||
|
if (db_order.id == 0)
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
var queryRatioHist = new fl_query_ratio_hist()
|
|||
|
{
|
|||
|
compute_config = query_item.compute_configdic,
|
|||
|
db_orderid = db_order.id,
|
|||
|
createtime = DateTime.Now,
|
|||
|
cpstype = CpsType.抖音联盟
|
|||
|
};
|
|||
|
session.SaveOrUpdate(queryRatioHist);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
else
|
|||
|
{
|
|||
|
//var flag = false;
|
|||
|
|
|||
|
//if (!flag)
|
|||
|
//{
|
|||
|
//查询订单记录
|
|||
|
if (db_order.db_userid == 0)
|
|||
|
{
|
|||
|
var query = session.FindTable("select userid,count(*) as count from fl_query_hist where userid != 0 and itemid = @itemid and adzoneid = @adzoneid and crt_time > @time group by userid ", new { itemid = db_order.product_id, adzoneid = db_order.db_cpsname, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") });
|
|||
|
if (query != null && query.Rows.Count > 0)
|
|||
|
{
|
|||
|
if (query.Rows.Count == 1)
|
|||
|
{
|
|||
|
if (ApiClient.Setting.SystemConfig.order_douyin_bind == SwitchType.开启)
|
|||
|
{
|
|||
|
var userid = int.Parse(query.Rows[0]["userid"].ToString());//要是查询记录已经标记为通知过的记录(userid 为 负数),将不通过查询记录进行绑定
|
|||
|
if (userid > 0)
|
|||
|
{
|
|||
|
db_order.db_userid = userid;//根据查询记录认领
|
|||
|
|
|||
|
var query_item = session.FindSingle<fl_query_hist>("select * from fl_query_hist where userid = @userid and itemid = @itemid and adzoneid = @adzoneid and crt_time > @time order by id desc", new { userid = db_order.db_userid, itemid = db_order.product_id, adzoneid = db_order.db_cpsname, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") });
|
|||
|
if (query_item != null)
|
|||
|
{
|
|||
|
#region 获取查询时的比例
|
|||
|
if (!string.IsNullOrWhiteSpace(query_item.compute_configdic))
|
|||
|
{
|
|||
|
if (db_order.id == 0)
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
var queryRatioHist = new fl_query_ratio_hist()
|
|||
|
{
|
|||
|
compute_config = query_item.compute_configdic,
|
|||
|
db_orderid = db_order.id,
|
|||
|
createtime = DateTime.Now,
|
|||
|
cpstype = CpsType.抖音联盟
|
|||
|
};
|
|||
|
session.SaveOrUpdate(queryRatioHist);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
db_order.msg_groupid = query_item.groupid;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//订单多人查询,并且订单还未绑定
|
|||
|
if (db_order.db_userid == 0)
|
|||
|
islotUserQuery = true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 绑定群号
|
|||
|
if (string.IsNullOrWhiteSpace(db_order.msg_groupid))
|
|||
|
{
|
|||
|
var query_item = session.FindSingle<fl_query_hist>("select * from fl_query_hist where userid = @userid and itemid = @itemid and adzoneid = @adzoneid and crt_time > @time order by id desc", new { userid = db_order.db_userid, itemid = db_order.product_id, adzoneid = db_order.db_cpsname, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") });
|
|||
|
if (query_item != null)
|
|||
|
{
|
|||
|
db_order.msg_groupid = query_item.groupid;
|
|||
|
|
|||
|
#region 获取查询时的比例
|
|||
|
if (!string.IsNullOrWhiteSpace(query_item.compute_configdic))
|
|||
|
{
|
|||
|
if (db_order.id == 0)
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
var queryRatioHist = new fl_query_ratio_hist()
|
|||
|
{
|
|||
|
compute_config = query_item.compute_configdic,
|
|||
|
db_orderid = db_order.id,
|
|||
|
createtime = DateTime.Now,
|
|||
|
cpstype = CpsType.抖音联盟
|
|||
|
};
|
|||
|
session.SaveOrUpdate(queryRatioHist);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
if (db_order.order_status == DouyinOrderStatus.PAY_SUCC.ToString() && db_order.db_userid != 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var record = session.FindStatisticsRecord(db_order.db_userid);
|
|||
|
if (record == null)
|
|||
|
record = new fl_statistics_record() { uid = db_order.db_userid };
|
|||
|
record.ex5 = db_order.pay_time;
|
|||
|
session.Saveable(record).ExecuteCommand();
|
|||
|
}
|
|||
|
catch (Exception)
|
|||
|
{ }
|
|||
|
}
|
|||
|
|
|||
|
//查询积分比例
|
|||
|
var member = db_order.db_userid != 0 ? session.FindMemberInfoById(db_order.db_userid) : null;
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(db_order.db_robotname) && member != null)
|
|||
|
{
|
|||
|
db_order.db_robotname = member.robot_name;
|
|||
|
db_order.db_robottype = member.robot_type;
|
|||
|
}
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(db_order.db_point))
|
|||
|
{
|
|||
|
//查询历史查询比例
|
|||
|
var compute = session.FindQueryRatioHist(CpsType.抖音联盟, db_order.id);
|
|||
|
|
|||
|
ItemPoint itempoint = null;
|
|||
|
|
|||
|
//计算的佣金
|
|||
|
if (compute != null)
|
|||
|
itempoint = session.FindItemPoint(CpsType.抖音联盟, compute, Util.ConvertDouble_FenToYuan(db_order.estimated_comission), 1);
|
|||
|
else
|
|||
|
itempoint = session.FindItemPoint(member, Util.ConvertDouble_FenToYuan(db_order.estimated_comission), 1, CpsType.抖音联盟);
|
|||
|
if (itempoint != null)
|
|||
|
{
|
|||
|
db_order.db_point = HttpHelper.ObjectToJson(itempoint);
|
|||
|
db_order.db_userpoint = itempoint.UserPoint;
|
|||
|
}
|
|||
|
if (member != null)
|
|||
|
{
|
|||
|
member.bind_order++;
|
|||
|
member = session.UpdateMemberGroup(member);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
switch (status)
|
|||
|
{
|
|||
|
case DouyinOrderStatus.CONFIRM:
|
|||
|
case DouyinOrderStatus.SETTLE:
|
|||
|
{
|
|||
|
//进入冻结逻辑
|
|||
|
if (db_order.db_endtime == DateTime.MinValue)
|
|||
|
{
|
|||
|
var sleep = session.FindSleep(CpsType.抖音联盟, ApiClient.Setting.SystemConfig.FreezingCondition == FreezingConditionType.商品总佣金 ? Util.ConvertDouble_FenToYuan(db_order.estimated_comission) : db_order.db_userpoint);//通过返佣获取订单冻结规则
|
|||
|
if (sleep != null)
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(sleep.white_groups))
|
|||
|
{
|
|||
|
if (member != null && sleep.white_groups.Split(',').Contains(member.group_id.ToString()))
|
|||
|
db_order.db_endtime = DateTime.Now;//该会员组不受限制
|
|||
|
else
|
|||
|
db_order.db_endtime = DateTime.Now.AddHours(sleep.sleep);//延迟多少小时
|
|||
|
}
|
|||
|
else db_order.db_endtime = DateTime.Now.AddHours(sleep.sleep);//延迟多少小时
|
|||
|
}
|
|||
|
else db_order.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());
|
|||
|
|
|||
|
var payTime = HttpExtend.GetDateTime(db_order.pay_time.ToString());
|
|||
|
|
|||
|
if ((DateTime.Now - 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());
|
|||
|
db_order.db_endtime = db_order.db_endtime.AddHours(ReceivingTimeCheck_FreezeTime);//延迟多少小时
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//已经传递了参数~ 这里就不要强制读数据库
|
|||
|
if (db_order.db_endtime <= DateTime.Now)
|
|||
|
{
|
|||
|
db_order.db_status = SystemOrderStatus.订单结算;
|
|||
|
|
|||
|
if (member != null && db_order.db_status != SystemOrderStatus.全额退款)
|
|||
|
{
|
|||
|
var point = HttpHelper.JsonToObject<ItemPoint>(db_order.db_point) as ItemPoint;
|
|||
|
if (point != null)
|
|||
|
{
|
|||
|
if (point.UserPoint == 0)
|
|||
|
{
|
|||
|
point.UserPoint = 0.01;
|
|||
|
db_order.db_point = HttpHelper.ObjectToJson(point);
|
|||
|
db_order.db_userpoint = point.UserPoint;
|
|||
|
}
|
|||
|
|
|||
|
#region 获取是否已经结算给客户
|
|||
|
var pointHists = session.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 = $"抖音购买:{db_order.product_name} - ({db_order.order_id})" });
|
|||
|
if (pointHists != null && pointHists.Count != 0)
|
|||
|
{
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
return;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//用户自身加积分
|
|||
|
member = session.ChangePoint(PointType.消费补贴, point.UserPoint, member.id, $"抖音购买:{db_order.product_name} - ({db_order.order_id})");
|
|||
|
|
|||
|
#region 判断用户是否符合获得新人奖励
|
|||
|
isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, db_order.db_status);
|
|||
|
#endregion
|
|||
|
|
|||
|
List<long> ids = new List<long>();
|
|||
|
ids.Add(member.id);
|
|||
|
//多级提成计算..用户自己的上级不能为自己
|
|||
|
//一级的提成小于等于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)
|
|||
|
{
|
|||
|
#region 判断上级是否符合获得推荐新人奖励
|
|||
|
isRewards = OrderHelper.CheckSuperiorInviteRewards(member, db_order.db_endtime, Util.ConvertDouble_FenToYuan(db_order.total_pay_amount));
|
|||
|
#endregion
|
|||
|
|
|||
|
notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, inviter, db_order, OrderNoticeType.一级提成) { Customer = member, IsRewards = isRewards });//下级首单完成
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else 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级提成!{db_order.product_name} - ({db_order.order_id})");
|
|||
|
if (flag != null)
|
|||
|
{
|
|||
|
ids.Add(flag.id);
|
|||
|
if (notice != null)
|
|||
|
{
|
|||
|
#region 判断上级是否符合获得推荐新人奖励
|
|||
|
isRewards = OrderHelper.CheckSuperiorInviteRewards(member, db_order.db_endtime, Util.ConvertDouble_FenToYuan(db_order.total_pay_amount));
|
|||
|
#endregion
|
|||
|
|
|||
|
notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, flag, db_order, OrderNoticeType.一级提成) { Customer = member, IsRewards = isRewards });//下级首单完成
|
|||
|
}
|
|||
|
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.product_name} - ({db_order.order_id})");
|
|||
|
if (flag2 != null)
|
|||
|
{
|
|||
|
ids.Add(flag2.id);
|
|||
|
if (notice != null && 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.product_name} - ({db_order.order_id})");
|
|||
|
if (flag3 != null)
|
|||
|
{
|
|||
|
ids.Add(flag3.id);
|
|||
|
if (notice != null && 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 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.product_name} - ({db_order.order_id})");
|
|||
|
if (notice != null && flag != null) notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, flag, db_order, OrderNoticeType.群主分成) { Customer = member });
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
Thread.Sleep(40);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//提示查询该宝贝的人所有人
|
|||
|
if (islotUserQuery)
|
|||
|
{
|
|||
|
notice.Add(new Events.OrderNoticeEvent(CpsType.抖音联盟, null, db_order));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
db_order.db_status = SystemOrderStatus.订单冻结;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case DouyinOrderStatus.订单维权中:
|
|||
|
db_order.db_status = SystemOrderStatus.订单维权中;
|
|||
|
break;
|
|||
|
case DouyinOrderStatus.PAY_SUCC:
|
|||
|
{
|
|||
|
db_order.db_status = SystemOrderStatus.订单付款;
|
|||
|
}
|
|||
|
break;
|
|||
|
case DouyinOrderStatus.REFUND:
|
|||
|
db_order.db_status = SystemOrderStatus.订单失效;
|
|||
|
if (member != null)//订单还没有绑定用户
|
|||
|
{
|
|||
|
if (db_order.db_endtime != DateTime.MinValue) //客户已经在冻结中
|
|||
|
{
|
|||
|
if (db_order.db_endtime <= DateTime.Now) //佣金已经解冻 - 已经把佣金给客户(需要扣除佣金)
|
|||
|
{
|
|||
|
ItemPoint itempointTmp = null;
|
|||
|
|
|||
|
var compute = session.FindQueryRatioHist(CpsType.抖音联盟, db_order.id);
|
|||
|
|
|||
|
if (compute != null)
|
|||
|
itempointTmp = session.FindItemPoint(CpsType.抖音联盟, compute, Util.ConvertDouble_FenToYuan(db_order.estimated_comission), 1);
|
|||
|
else
|
|||
|
//判断用户的订单是否已经结算,如果已经结算通过实际佣金进行退款,如果没有结算通过预计佣进行计算
|
|||
|
itempointTmp = session.FindItemPoint(member, Util.ConvertDouble_FenToYuan(db_order.estimated_comission), 1, CpsType.抖音联盟);
|
|||
|
|
|||
|
|
|||
|
new OrderHelper().DeductDouYinOrderPoint(notice, db_order, itempointTmp);
|
|||
|
|
|||
|
db_order.db_status = SystemOrderStatus.全额退款;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if (itempoint != null)
|
|||
|
//{
|
|||
|
// //用户自身加积分
|
|||
|
// //member = session.ChangePoint(PointType.维权扣除, itempoint.UserPoint, member.id, $"抖音购买:{db_order.skuName}({db_order.orderId}) - 售后中(扣除) - 订单还未结算(冻结中)");
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
db_order.db_endtime = DateTime.MinValue;
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
#region 通知客户订单付款/失效 提示上级
|
|||
|
if (member != null && (db_order.db_status == SystemOrderStatus.订单付款 || db_order.db_status == SystemOrderStatus.订单失效))
|
|||
|
{
|
|||
|
var point = HttpHelper.JsonToObject<ItemPoint>(db_order.db_point) as ItemPoint;
|
|||
|
if (point != null)
|
|||
|
{
|
|||
|
List<long> ids = new List<long>();
|
|||
|
ids.Add(member.id);
|
|||
|
|
|||
|
if (point.UserPoint == 0 && ApiClient.Setting.SystemConfig.SubsidyTb == SwitchType.开启)
|
|||
|
{
|
|||
|
point.UserPoint = 0.01;
|
|||
|
db_order.db_point = HttpHelper.ObjectToJson(point);
|
|||
|
db_order.db_userpoint = point.UserPoint;
|
|||
|
}
|
|||
|
|
|||
|
if (point.AwardOne > 0 && member.inviter_id > 0 && !ids.Contains(member.inviter_id) && member.id != member.inviter_id)
|
|||
|
{
|
|||
|
//一级用户对象
|
|||
|
var member_one = session.FindMemberInfoById(member.inviter_id);
|
|||
|
if (member_one != null)
|
|||
|
{
|
|||
|
ids.Add(member_one.id);
|
|||
|
if (notice != null)
|
|||
|
notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, member_one, db_order, OrderNoticeType.一级提成) { Customer = member });
|
|||
|
if (point.AwardTwo > 0 && member_one.inviter_id != 0 && !ids.Contains(member_one.inviter_id))
|
|||
|
{
|
|||
|
//二级用户对象
|
|||
|
var member_two = session.FindMemberInfoById(member_one.inviter_id);
|
|||
|
if (member_two != null)
|
|||
|
{
|
|||
|
ids.Add(member_two.id);
|
|||
|
if (member_two != null)
|
|||
|
{
|
|||
|
notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, member_two, db_order, OrderNoticeType.二级提成) { Customer = member });
|
|||
|
|
|||
|
if (point.AwardThree > 0 && member_two.inviter_id != 0 && !ids.Contains(member_two.inviter_id))
|
|||
|
{
|
|||
|
//三级用户对象
|
|||
|
var member_three = session.FindMemberInfoById(member_two.inviter_id);
|
|||
|
if (member_three != null)
|
|||
|
{
|
|||
|
ids.Add(member_three.id);
|
|||
|
if (member_three != null)
|
|||
|
notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, member_three, db_order, OrderNoticeType.三级提成) { Customer = member });
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//创建人计算
|
|||
|
if (point.AwardCreate > 0 && !string.IsNullOrEmpty(db_order.msg_groupid) && !string.IsNullOrEmpty(db_order.db_robotname))
|
|||
|
{
|
|||
|
var create = session.FindCreateInfo(db_order.msg_groupid, db_order.db_robottype);
|
|||
|
if (create != null && member.id != create.id)
|
|||
|
{
|
|||
|
var member_create = session.FindMemberInfoById(create.mid);
|
|||
|
if (notice != null && member_create != null) notice.Add(new OrderNoticeEvent(CpsType.抖音联盟, member_create, db_order, OrderNoticeType.群主分成) { Customer = member });
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//string new_md5 = Util.GetMd5_32byte(HttpHelper.ObjectToJson(db_order));
|
|||
|
if (old_status != db_order.db_status)
|
|||
|
db_order.db_status_time = HttpExtend.GetTimeStamp();
|
|||
|
|
|||
|
session.SaveOrUpdate(db_order);
|
|||
|
|
|||
|
if (db_order.db_status == SystemOrderStatus.订单付款)
|
|||
|
{
|
|||
|
#region 判断用户是否符合获得新人奖励
|
|||
|
isFirstOrder = OrderHelper.CheckMemberFirstOrderRewards(member, db_order.db_status);
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
if (allrebatesactivity_orderlist != null)
|
|||
|
{
|
|||
|
allrebatesactivity_orderlist.oid = db_order.id;
|
|||
|
session.Saveable(allrebatesactivity_orderlist).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
//if ((notice != null && old_status != db_order.db_status && order_id != db_order.trade_parent_id && member != null) || (notice != null && old_status != db_order.db_status && order_id != db_order.trade_parent_id && islotUserQuery && member == null))
|
|||
|
if (notice != null && (isFrontData || old_status != db_order.db_status) && ((islotUserQuery && member == null) || member != null))
|
|||
|
{
|
|||
|
notice.Add(new Events.OrderNoticeEvent(CpsType.抖音联盟, member, db_order) { IsRewards = isFirstOrder });
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
EventClient.OnEvent(this, "更新抖音联盟订单异常1:" + db_order.db_cpsname + " - " + db_order.order_id + "," + ex.Message + "," + ex.StackTrace);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|