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 CsharpHttpHelper; using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using UI.Framework.Forms; using static FLSystem.Forms.cps_order_alimama; namespace FLSystem.Forms { public partial class cps_coerce_alimama : DevExpress.XtraEditors.XtraUserControl { public cps_coerce_alimama() { InitializeComponent(); } private CancellationTokenSource tokenSource = new CancellationTokenSource(); private void simpleButton2_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(textEdit1.Text)) throw new Exception("请输入要一键结算的淘宝联盟账号"); if (gridView1.RowCount == 0) throw new Exception("数据列表为空,操作终止!"); if (MessageBox.Show("确定结算所有该联盟下所有的订单吗", "温馨提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { //var orders = session.Q1ueryable().Where(f => f.db_cpsname == textEdit1.Text.Trim() && (f.db_status == SystemOrderStatus.订单付款 || f.db_status == SystemOrderStatus.订单冻结)).ToList(); var orders = ApiClient.GetSession().Find("select * from fl_order_alimama where db_cpsname = @db_cpsname and (db_status = @db_status1 or db_status = @db_status2)", new { db_cpsname = textEdit1.Text.Trim(), db_status1 = SystemOrderStatus.订单付款, db_status2 = SystemOrderStatus.订单冻结 }); if (orders.Count != 0) { Task.Run(() => { var session = ApiClient.GetSession(); try { var task = TimerTask.GetTimer() as DownAlimamaTimer; var notices = new List(); foreach (var order in orders) { tokenSource.Token.ThrowIfCancellationRequested(); order.earning_time = DateTime.Now.AddSeconds(-2); order.tk_status = 3; order.db_endtime = DateTime.Now; order.db_status = SystemOrderStatus.订单冻结; task.UpdateOrder(order, notices, session); } 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_alimama) 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 simpleButton3_Click(object sender, EventArgs e) { this.pageControl1.GotoPage(); } private void cps_coerce_alimama_Load(object sender, EventArgs e) { this.Disposed += Control_Disposed; this.pageControl1.Bind(delegate (int index, int pagesize) { try { var session = ApiClient.GetSession(); var map = session.NewParamMap(); map.setPageParamters(index, pagesize); map.setOrderFields("create_time", true); PageResult result = null; #region 通过联盟名称 一键结算 map.setParameter("fk", (int)SystemOrderStatus.订单付款); map.setParameter("dj", (int)SystemOrderStatus.订单冻结); map.setParameter("db_cpsname", textEdit1.Text.Trim()); result = session.FindPage("select o.db_cpsname,o.trade_id,o.db_cpsnick,o.id,o.item_title,o.num_iid,o.trade_parent_id,o.db_status,u.username,u.usernick,o.pub_share_pre_fee,o.alipay_total_price,o.price,o.item_num,o.order_type,o.adzone_id,o.create_time,o.db_point,o.db_endtime,ra.showReturnFee,ra.refundFee from fl_order_alimama o LEFT JOIN fl_member_info u on o.db_userid=u.id LEFT JOIN fl_order_refund_alimama ra on ra.tbTradeParentId = o.trade_parent_id and ra.tbTradeId = o.trade_id where (o.db_status = @fk or o.db_status = @dj) and o.db_cpsname = @db_cpsname", map); #endregion label2.Visible = result.Total == 0; return new UI.Framework.Controls.PageControl.SerchResult() { Result = result.DataList, Total = result.Total }; } catch (Exception ex) { BaseForm.ShowError(ex); } return null; }, this.gridControl1, 50, true, true); } private void Control_Disposed(object sender, EventArgs e) { tokenSource.Cancel(); } private void gridView1_CustomColumnDisplayText(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())["AwardOne"].ToString(); break; case "二级提成": e.DisplayText = HttpExtend.JsonToDictionary(e.Value.ToString())["AwardTwo"].ToString(); break; case "三级提成": { var result = HttpExtend.JsonToDictionary(e.Value.ToString()); e.DisplayText = (result != null && result.ContainsKey("AwardThree")) ? result["AwardThree"].ToString() : "0"; } break; case "群负责人提成": e.DisplayText = HttpExtend.JsonToDictionary(e.Value.ToString())["AwardCreate"].ToString(); break; } } private void simpleButton1_Click(object sender, EventArgs e) { try { var session = ApiClient.GetSession(); //if (string.IsNullOrWhiteSpace(textEdit1.Text)) throw new Exception("请输入要一键结算的淘宝联盟账号"); //if (gridView1.RowCount == 0) throw new Exception("数据列表为空,操作终止!"); if (MessageBox.Show("确定结算所有联盟的订单吗", "温馨提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { //var orders = session.Q1ueryable().Where(f => f.db_cpsname == textEdit1.Text.Trim() && (f.db_status == SystemOrderStatus.订单付款 || f.db_status == SystemOrderStatus.订单冻结)).ToList(); var orders = session.Find("select * from fl_order_alimama where (db_status = @db_status1 or db_status = @db_status2)", new { db_status1 = SystemOrderStatus.订单付款, db_status2 = SystemOrderStatus.订单冻结 }); if (orders.Count != 0) { Task.Run(() => { try { var task = TimerTask.GetTimer() as DownAlimamaTimer; var notices = new List(); foreach (var order in orders) { tokenSource.Token.ThrowIfCancellationRequested(); order.earning_time = DateTime.Now.AddSeconds(-2); order.tk_status = 3; order.db_endtime = DateTime.Now; order.db_status = SystemOrderStatus.订单冻结; task.UpdateOrder(order, notices, session); } 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_alimama) 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); } } } }