using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Api.Framework; using Api.Framework.Enums; using Api.Framework.Events; using Api.Framework.Model; using Api.Framework.SDK; using Api.Framework.Timers; using Api.Framework.Tools; using Api.Framework.Utils; using CsharpHttpHelper; using DevExpress.XtraEditors; using FLSystem.Events; using Newtonsoft.Json; using SqlSugar; using UI.Framework.Forms; namespace FLSystem.Forms { public partial class cps_order_kuaishou : DevExpress.XtraEditors.XtraUserControl { public cps_order_kuaishou(string textedit = "") { InitializeComponent(); this.textEdit1.Text = textedit; this.comboBoxEdit1.SelectedIndex = string.IsNullOrEmpty(textedit) ? 0 : 5; this.dateTimePicker1.Value = DateTime.Parse(DateTime.Today.AddDays(-30).ToString("yyyy-MM-01")); this.dateTimePicker2.Value = DateTime.Parse(DateTime.Now.AddDays(30).ToString("yyyy-MM-dd HH:mm:ss")); this.gridView1.CustomDrawRowIndicator += gridView1_CustomDrawRowIndicator; this.checkBox1.Checked = false; #region 增加所有的机器人账号 this.comboBoxEdit3.Properties.Items.Clear(); var weixinBases = Chat.Framework.ChatClient.WXClient.Values.ToList(); var objList = new List() { "全部平台" }; foreach (var item in weixinBases) { objList.Add(item.WeixinHao); } var qqBases = Chat.Framework.ChatClient.QQClients.Values; foreach (var item in qqBases) { objList.Add(item.QQ.ToString()); } this.comboBoxEdit3.Properties.Items.AddRange(objList); comboBoxEdit3.SelectedIndex = 0; #endregion try { this.pageControl1.Bind(delegate (int index, int pagesize) { try { var session = ApiClient.GetSession(); var isOld = true; List result = null; //List conModels = new List(); var sqlwhere = string.Empty; if (this.checkBox1.Checked) { isOld = false; sqlwhere += $" and '{this.dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss")}' <= payTime and payTime <= '{this.dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss")}'"; //conModels.Add(new ConditionalModel() { FieldName = "payTime", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = this.dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") }); //conModels.Add(new ConditionalModel() { FieldName = "payTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = this.dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss") }); } string where = string.Empty; string keyword = this.textEdit1.Text.Trim(); if (!string.IsNullOrEmpty(keyword) || comboBoxEdit1.Text == "未绑定用户") { switch (this.comboBoxEdit1.Text) { case "订单编号": //conModels.Add(new ConditionalModel() { FieldName = "orderId", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and oid = '{keyword}'"; break; case "商品编号": //conModels.Add(new ConditionalModel() { FieldName = "skuId", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and itemId = '{keyword}'"; break; case "商品标题": //conModels.Add(new ConditionalModel() { FieldName = "skuname", ConditionalType = ConditionalType.Like, FieldValue = keyword }); sqlwhere += $" and itemTitle like '%{keyword}%'"; break; case "客户编号": //conModels.Add(new ConditionalModel() { FieldName = "db_userid", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and db_userid = '{keyword}'"; break; case "客户账号": var ids = FindMemberIdByKey("username", keyword); if (ids != null) { if (ids.Count == 0) ids.Add("-1"); //conModels.Add(new ConditionalModel() { FieldName = "db_userid", ConditionalType = ConditionalType.In, FieldValue = string.Join(",", ids) }); sqlwhere += $" and db_userid in ('{string.Join("','", ids)}')"; } break; case "客户昵称": ids = FindMemberIdByKey("usernick", keyword); if (ids != null) { if (ids.Count == 0) ids.Add("-1"); //conModels.Add(new ConditionalModel() { FieldName = "db_userid", ConditionalType = ConditionalType.In, FieldValue = string.Join(",", ids) }); sqlwhere += $" and db_userid in ('{string.Join("','", ids)}')"; } break; case "推广位ID": //conModels.Add(new ConditionalModel() { FieldName = "positionId", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and cpspid = '{keyword}'"; break; case "联盟账号": //conModels.Add(new ConditionalModel() { FieldName = "db_cpsname", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and db_cpsname = '{keyword}'"; break; case "联盟昵称": //conModels.Add(new ConditionalModel() { FieldName = "db_cpsnick", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); sqlwhere += $" and db_cpsnick = '{keyword}'"; break; case "未绑定用户": //conModels.Add(new ConditionalModel() { FieldName = "db_userid", ConditionalType = ConditionalType.Equal, FieldValue = "0" }); sqlwhere += $" and db_userid = '0'"; break; } } var status = this.comboBoxEdit2.SelectedIndex == 0 ? SystemOrderStatus.订单未知 : Util.ConvertEnum(this.comboBoxEdit2.Text); if (status != SystemOrderStatus.订单未知) //conModels.Add(new ConditionalModel() { FieldName = "db_status", ConditionalType = ConditionalType.Equal, FieldValue = ((int)status).ToString() }); sqlwhere += $" and db_status = '{((int)status).ToString()}'"; if (this.comboBoxEdit3.SelectedIndex != 0) //conModels.Add(new ConditionalModel() { FieldName = "db_robotname", ConditionalType = ConditionalType.Equal, FieldValue = this.comboBoxEdit3.Text.Trim() }); sqlwhere += $" and db_robotname = '{comboBoxEdit3.Text.Trim()}'"; //总记录数 int totalNumber = 0; if (isOld && checkBox_isOld.Checked) { sqlwhere += $" and '{DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss")}' <= payTime"; } //result = session.Queryable() //.Where(conModels) //.OrderBy(o => o.id, OrderByType.Desc); //.ToPageList(index, pagesize, ref totalNumber); sqlwhere += $" order by id desc"; var getCount = session.Find("select count(*) from fl_order_kuaishou where 1=1 " + sqlwhere); if (getCount != null && getCount.Count != 0) totalNumber = getCount[0]; sqlwhere += $" limit {(index - 1) * pagesize},{pagesize}"; var resultTmp = session.Find("select * from fl_order_kuaishou where 1=1 " + sqlwhere); result = new List(); foreach (var o in resultTmp) { result.Add(new view_cps_order_kuaishou { id = o.id, oid = o.oid, cpsPid = o.cpsPid, createTime = o.createTime, estimatedIncome = o.estimatedIncome, itemId = o.itemId, itemPrice = o.itemPrice, itemTitle = o.itemTitle, num = o.num, oid2 = o.oid2, paymentFee = o.paymentFee, db_cpsname = o.db_cpsname, db_cpsnick = o.db_cpsnick, db_endtime = o.db_endtime, db_point = o.db_point, db_status = o.db_status, db_userpoint = o.db_userpoint, robotname = o.db_robotname, db_userid = o.db_userid }); } if (result.Count != 0) { #region 附加用户 var bindUsersList = result.Where(f => f.db_userid != 0).Select(f => f.db_userid.ToString()) .ToList(); var memberData = new List(); if (bindUsersList != null && bindUsersList.Count != 0) memberData = session.Queryable().Where(new List() { new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.In, FieldValue = string.Join(",", bindUsersList) } }).ToList(); int count = 1; foreach (var member in memberData) { count++; if (ApiClient.Setting.DbConfig.DatabaseType == DatabaseType.SQLITE && count % 10 == 0) Thread.Sleep(50); var items = result.Where(f => f.db_userid == member.id).ToList(); foreach (var item in items) { item.usernick = member.usernick; item.username = member.username; } } #endregion #region 附加机器人信息 var robotList = result.Where(f => !string.IsNullOrWhiteSpace(f.robotname)) .GroupBy(f => f.robotname).Select(f => f.Key).ToList(); var robotData = session.FindRobots().Where(f => robotList.Contains(f.name)).ToList(); foreach (var robot in robotData) { var items = result.Where(f => f.robotname == robot.name).ToList(); foreach (var item in items) { item.robotnick = robot.nick; } } #endregion } return new UI.Framework.Controls.PageControl.SerchResult() { Result = result, Total = totalNumber }; } catch (Exception ex) { BaseForm.ShowError(ex); } return null; }, this.gridControl1, 50, false, true); } catch (Exception ex) { if (!this.IsDisposed) this.UpdateUI(() => { BaseForm.ShowError(ex); }); } MainEvent.CommonEvents += Main_CommonEvents; this.Disposed += Control_Disposed; } private void cps_order_kuaishou_Load(object sender, EventArgs e) { simpleButton1_Click(this.simpleButton1, null); } private void Control_Disposed(object sender, EventArgs e) { MainEvent.CommonEvents -= Main_CommonEvents; } /// /// 代理委托更新UI /// /// protected delegate void DelegateUpdateUI(Action act); /// /// 代理委托更新UI /// /// protected void UpdateUI(Action act) { if (!InvokeRequired) { act.Invoke(); } else { DelegateUpdateUI delegateUpdateUI = new DelegateUpdateUI(UpdateUI); Invoke(delegateUpdateUI, act); } } /// /// 条件查询(用户账号/用户昵称),模糊查询,获取用户的id /// /// 查询的字段 /// 模糊的关键词 /// private List FindMemberIdByKey(string type, string keyword) { try { var session = ApiClient.GetSession(); return session.Find($"select id from fl_member_info where {type} like '%{keyword}%'") .Select(f => f.ToString()).ToList(); } catch (Exception ex) { throw ex; } } private void Main_CommonEvents(object sender, CommonEvents e) { try { if (e.Commons != null && e.Commons.Count != 0) { if (e.Commons.ContainsKey("cps_type") && e.Commons.ContainsKey("username")) { var cps_type = (CpsType)int.Parse(e.Commons["cps_type"].ToString()); if (cps_type == CpsType.快手联盟) { textEdit1.Text = e.Commons["username"].ToString(); comboBoxEdit1.SelectedIndex = 5; comboBoxEdit3.SelectedIndex = comboBoxEdit2.SelectedIndex = 0; checkBox1.Checked = false; pageControl1.GotoPage(1); } } } } catch (Exception ex) { BaseForm.ShowError(ex); } } private void simpleButton1_Click(object sender, EventArgs e) { this.pageControl1.Go(sender, e); } private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) { if (e.Info.IsRowIndicator && e.RowHandle >= 0) e.Info.DisplayText = (e.RowHandle + 1).ToString(); } private CancellationTokenSource tokenSource = new CancellationTokenSource(); private void gridView1_CustomColumnDisplayText_1(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { switch (e.Column.Caption) { case "软件状态": e.DisplayText = Util.ConvertEnum(int.Parse(e.Value.ToString())).ToString(); break; case "一级提成": e.DisplayText = HttpExtend.JsonToDictionary(e.Value.ToString().ToLower())["awardone"].ToString(); break; case "二级提成": e.DisplayText = HttpExtend.JsonToDictionary(e.Value.ToString().ToLower())["awardtwo"].ToString(); break; case "三级提成": { var result = HttpExtend.JsonToDictionary(e.Value.ToString().ToLower()); e.DisplayText = (result != null && result.ContainsKey("awardthree")) ? result["awardthree"].ToString() : "0"; } break; case "群负责人提成": e.DisplayText = HttpExtend.JsonToDictionary(e.Value.ToString().ToLower())["awardcreate"].ToString(); break; } } private void 修改toolStripMenuItem1_Click(object sender, EventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { //获取选中数据 var row = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || db_status == SystemOrderStatus.订单结算 || db_status == SystemOrderStatus.全额退款 || db_status == SystemOrderStatus.部分退款) throw new Exception("该订单状态为已完结,不允许修改!"); var session = ApiClient.GetSession(); if (row.db_userid != 0) { var member = session.FindMemberInfoById(row.db_userid); if (member != null) { if (member.bind_order > 0) { member.bind_order--; member = session.UpdateMemberGroup(member); } } } select_member_form select_form = new select_member_form(); select_form.ShowDialog(); if (select_form.fl_member_info != null) { var kuaishou = session.FindSingle("id = @id", new { id = row.id }); if (kuaishou != null) { if (kuaishou.db_robottype == 0) kuaishou.db_robottype = select_form.fl_member_info.robot_type; if (string.IsNullOrWhiteSpace(kuaishou.db_robotname)) kuaishou.db_robotname = select_form.fl_member_info.robot_name; var itempoint = session.FindItemPoint(select_form.fl_member_info, kuaishou.estimatedIncome, kuaishou.num, CpsType.快手联盟); if (itempoint != null) { kuaishou.db_point = HttpHelper.ObjectToJson(itempoint); kuaishou.db_userpoint = itempoint.UserPoint; } kuaishou.db_userid = select_form.fl_member_info.id; session.SaveOrUpdate(kuaishou); //更新显示值 row.db_userid = select_form.fl_member_info.id; row.username = select_form.fl_member_info.username; row.usernick = select_form.fl_member_info.usernick; row.db_point = kuaishou.db_point; select_form.fl_member_info.bind_order++; #region 首次付款时间 try { var record = session.FindStatisticsRecord(select_form.fl_member_info.id); if (record == null) { record = new fl_statistics_record() { uid = select_form.fl_member_info.id, ex2 = 0, ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now), ex5 = HttpExtend.GetTimeStamp(kuaishou.createTime) }; session.Saveable(record).ExecuteCommand(); } else { if (record.ex2 == 0 && record.ex4 == 0) record.ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now); record.ex5 = CsharpHttpHelper.HttpExtend.GetTimeStamp(kuaishou.createTime); session.Saveable(record).ExecuteCommand(); } } catch (Exception) { } #endregion session.UpdateMemberGroup(select_form.fl_member_info); #region 获取查询时的比例 var query_item = session.FindSingle( "userid=@userid and itemid=@itemid and adzoneid = @adzoneid and crt_time > @time order by id", new { userid = kuaishou.db_userid, itemid = kuaishou.itemId, adzoneid = kuaishou.cpsPid, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") }); if (query_item != null && !string.IsNullOrWhiteSpace(query_item.compute_configdic)) { if (kuaishou.id == 0) session.SaveOrUpdate(kuaishou); var queryRatioHist = new fl_query_ratio_hist() { compute_config = query_item.compute_configdic, db_orderid = kuaishou.id, createtime = DateTime.Now, cpstype = CpsType.快手联盟 }; LogHelper.GetSingleObj().Error("历史查询记录4", JsonConvert.SerializeObject(queryRatioHist)); session.SaveOrUpdate(queryRatioHist); } #endregion } } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 解绑ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { //获取选中数据 var row = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || db_status == SystemOrderStatus.订单结算 || db_status == SystemOrderStatus.全额退款 || db_status == SystemOrderStatus.部分退款) throw new Exception("该订单状态为已完结,不允许解绑!"); var session = ApiClient.GetSession(); if (row.db_userid != 0) { var member = session.FindMemberInfoById(row.db_userid); if (member != null && member.bind_order > 0) { member.bind_order--; member = session.UpdateMemberGroup(member); } } session.ExcuteSQL("delete from fl_query_hist where itemid = @num_iid", new { num_iid = row.itemId }); session.ExcuteSQL("update fl_order_kuaishou set db_userid = @userid where id=@id", new { id = row.id, userid = 0 }); session.ExcuteSQL("delete from fl_query_ratio_hist where db_orderid=@id", new { id = row.id }); //更新显示值 row.db_userid = 0; row.username = string.Empty; row.usernick = string.Empty; } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 查看用户信息ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rows = gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { var username = gridView1.GetRowCellValue(rows[0], "username").ToString(); //获取列的数据; if (!string.IsNullOrWhiteSpace(username)) { var tsmi = sender as ToolStripMenuItem; if (tsmi == null) throw new Exception("数据异常"); var common = new Dictionary(); common["control_name"] = tsmi.Text; common["username"] = username; MainEvent.OnEvent(null, new CommonEvents(common)); } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { var username = this.gridView1.GetRowCellValue(rows[0], "username").ToString(); //获取列的数据 var tsmi = sender as ToolStripMenuItem; if (tsmi == null) throw new Exception("数据异常"); var text = tsmi.Text.Replace("订单", "").Replace("所有", ""); var cps = (CpsType)Enum.Parse(typeof(CpsType), text); var common = new Dictionary(); common["cps_type"] = (int)cps; common["username"] = username; MainEvent.OnEvent(null, new CommonEvents(common)); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } } private void 积分日志ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { var username = this.gridView1.GetRowCellValue(rows[0], "username").ToString(); //获取列的数据 var tsmi = sender as ToolStripMenuItem; if (tsmi == null) throw new Exception("数据异常"); var common = new Dictionary(); common["control_name"] = "提现管理"; common["query_type"] = tsmi.Text; common["username"] = username; MainEvent.OnEvent(null, new CommonEvents(common)); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e) { this.pageControl1.GotoPage(1); } private void 冻结延期ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (XtraMessageBox.Show("确定要延长冻结选中订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { //获取选中数据 var row = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; var db_status = row.db_status; if (db_status != SystemOrderStatus.订单冻结) throw new Exception($"选中订单:{db_status},不予操作"); var session = ApiClient.GetSession(); setting_endtime_form endtime_form = new setting_endtime_form(row.db_endtime); endtime_form.ShowDialog(); if (endtime_form.newtime == DateTime.MinValue) return; var kuaishou = session.FindSingle("id = @id", new { id = row.id }); if (endtime_form.newtime != row.db_endtime) { kuaishou.db_endtime = endtime_form.newtime; session.Updateable(kuaishou).ExecuteCommand(); } row.db_endtime = endtime_form.newtime; //更新显示值 } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 立即结算ToolStripMenuItem1_Click(object sender, EventArgs e) { try { if (XtraMessageBox.Show("确定要结算选中订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { //获取选中数据 var row = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || db_status == SystemOrderStatus.订单创建 || db_status == SystemOrderStatus.订单结算 || db_status == SystemOrderStatus.全额退款 || db_status == SystemOrderStatus.部分退款) throw new Exception($"选中订单:{db_status},不予操作"); var session = ApiClient.GetSession(); var kuaishou = session.FindSingle( "oid = @oid and oid2 = @oid2 and itemId = @itemId", new { oid = row.oid, oid2 = row.oid2, itemId = row.itemId }); if (kuaishou == null) throw new Exception("数据查询失败,请稍后重试"); kuaishou.settlementSuccessTime = DateTime.Now.AddSeconds(-2); kuaishou.cpsOrderStatus = CpsOrderStatus.已结算; kuaishou.db_endtime = DateTime.Now; kuaishou.db_status = SystemOrderStatus.订单冻结; var task = TimerTask.GetTimer() as DownKuaiShouTimer; var notices = new List(); task.UpdateOrder(kuaishou, session, notices); var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_kuaishou; tasks.Add(item); } //更新显示值 row.db_status = SystemOrderStatus.订单结算; } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 立即失效ToolStripMenuItem1_Click(object sender, EventArgs e) { try { if (XtraMessageBox.Show("确定要失效选中订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { //获取选中数据 var row = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; var db_status = row.db_status; var session = ApiClient.GetSession(); //var kuaishou = session.FindSingle("orderId = @orderId", new { orderId = row.orderId }); var kuaishou = session.FindSingle("id = @id", new { id = row.id }); if (kuaishou == null) throw new Exception("数据查询失败,请稍后重试"); var flag = false; var notices = new List(); if (db_status == SystemOrderStatus.订单结算) flag = true; else if (kuaishou.IsFinish()) throw new Exception($"选中订单:{db_status},不予操作"); kuaishou.settlementSuccessTime = DateTime.Now.AddSeconds(-2); kuaishou.cpsOrderStatus = CpsOrderStatus.已失效; kuaishou.db_endtime = DateTime.Now; kuaishou.db_status = SystemOrderStatus.订单失效; var task = TimerTask.GetTimer() as DownKuaiShouTimer; if (!flag) task.UpdateOrder(kuaishou, session, notices); else { var itempoint = HttpHelper.JsonToObject(kuaishou.db_point) as ItemPoint; new OrderHelper().DeductKuaiShouOrderPoint(notices, kuaishou, itempoint); session.SaveOrUpdate(kuaishou); } var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_kuaishou; tasks.Add(item); } row.db_status = SystemOrderStatus.订单失效; row.db_endtime = DateTime.Now; } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 一键结算ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (MessageBox.Show("确定结算所有该所有的订单吗", "温馨提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { var orders = ApiClient.GetSession().Find("select * from fl_order_kuaishou where db_userid != 0 and (db_status = @db_status1 or db_status = @db_status2)", new { db_status1 = SystemOrderStatus.订单付款, db_status2 = SystemOrderStatus.订单冻结 }); if (orders.Count != 0) { Task.Run(() => { var session = ApiClient.GetSession(); try { var task = TimerTask.GetTimer() as DownKuaiShouTimer; var notices = new List(); foreach (var order in orders) { tokenSource.Token.ThrowIfCancellationRequested(); order.settlementSuccessTime = DateTime.Now.AddSeconds(-2); order.cpsOrderStatus = CpsOrderStatus.已失效; order.db_endtime = DateTime.Now; order.db_status = SystemOrderStatus.订单冻结; //var task = TimerTask.GetTimer() as DownkuaishouTimer; //var notices = new List(); //task.UpdateOrder(kuaishou, session, notices); //var tasks = TimerTask.GetTimer() as Update_NoticeQueue; //foreach (var item in notices) //{ // if (item.Member == null) continue; // var order = item.Order as fl_order_kuaishou; // tasks.Add(item); //} task.UpdateOrder(order, session, notices); } //var tasks = TimerTask.GetTimer() as Update_NoticeQueue; //foreach (var item in notices) //{ // tokenSource.Token.ThrowIfCancellationRequested(); // if (item.Member == null) continue; // if (item.Order is fl_order_kuaishou) // tasks.Add(item); //} XtraMessageBox.Show($"一键结算成功,一共结算{orders.Count}笔订单!", "温馨提示", MessageBoxButtons.OK); } catch (Exception) { } }, tokenSource.Token); } else XtraMessageBox.Show($"当前无可结算的订单!", "温馨提示", MessageBoxButtons.OK); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 重新计算未结算订单ToolStripMenuItem_Click(object sender, EventArgs e) { try { var db = ApiClient.GetSession(); var orders = db.Queryable().Where(f => f.db_userid != 0 && (f.db_status == SystemOrderStatus.订单付款 || f.db_status == SystemOrderStatus.订单冻结 || f.db_status == SystemOrderStatus.订单维权中)).ToList(); EventClient.OnEvent("", $"快手需要重新计算的订单数:{orders.Count}"); foreach (var order in orders) { var member = db.FindMemberInfoById(order.db_userid); var itempoint = db.FindItemPoint(member, order.estimatedIncome, order.num, CpsType.快手联盟); if (itempoint != null) { order.db_point = HttpHelper.ObjectToJson(itempoint); order.db_userpoint = itempoint.UserPoint; db.SaveOrUpdate(order); EventClient.OnEvent("", $"快手单号:{order.oid}-{order.oid2},重新计算完成"); } } } catch (Exception ex) { EventClient.OnEvent("", $"快手重新计算异常:{ex.Message}"); } } private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { this.用户个人信息ToolStripMenuItem.Enabled = this.gridView1.GetRowCellValue(rows[0], "username") != null; this.冻结延期ToolStripMenuItem.Enabled = this.gridView1.GetRowCellValue(rows[0], "db_status").ToString() == "订单冻结"; } else e.Cancel = true; } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows.Length != 0) { var info = this.gridView1.GetRow(rows[0]) as view_cps_order_kuaishou; if (XtraMessageBox.Show($@"您确定要删除选中数据嘛? {info.itemTitle}", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var session = ApiClient.GetSession(); session.ExcuteSQL("delete from fl_order_kuaishou where id=" + info.id); } this.pageControl1.GotoPage(1); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxEdit1.SelectedIndex == 0 || comboBoxEdit1.SelectedIndex == 10) { this.textEdit1.Enabled = false; this.textEdit1.Text = ""; } else this.textEdit1.Enabled = true; } } public class view_cps_order_kuaishou { /// /// id /// public long id { get; set; } /// /// 创建时间 /// public DateTime createTime { get; set; } /// /// 订单父id /// public long oid { get; set; } /// /// 子订单号 /// public long oid2 { get; set; } /// /// 订单状态 /// public SystemOrderStatus db_status { get; set; } /// /// 付款金额 /// public double paymentFee { get; set; } /// /// 佣金 /// public double estimatedIncome { get; set; } /// /// 积分Json /// public string db_point { get; set; } /// /// 用户所得 /// public double db_userpoint { get; set; } private string _robotname; /// /// 机器人账号 /// public string robotname { get { return _robotname; } set { if (string.IsNullOrEmpty(value)) _robotname = string.Empty; else _robotname = value; } } /// /// 机器人昵称 /// public string robotnick { get; set; } private string _username; /// /// 用户账号 /// public string username { get { return _username; } set { if (string.IsNullOrEmpty(value)) _username = string.Empty; else _username = value; } } private string _usernick; /// /// 用户昵称 /// public string usernick { get { return _usernick; } set { if (string.IsNullOrEmpty(value)) _usernick = string.Empty; else _usernick = value; } } public long db_userid { get; set; } /// /// 商品标题 /// public string itemTitle { get; set; } /// /// 商品编码 /// public long itemId { get; set; } /// /// 商品单价 /// public double itemPrice { get; set; } /// /// 购买数量 /// public int num { get; set; } /// /// 冻结时间 /// public DateTime db_endtime { get; set; } /// /// 联盟账号 /// public string db_cpsname { get; set; } /// /// 联盟昵称 /// public string db_cpsnick { get; set; } /// /// 推广位 /// public string cpsPid { get; set; } } }