old_flsystem/FLSystem/Forms/cps_coerce_alimama.cs

214 lines
10 KiB
C#

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<fl_order_alimama>().Where(f => f.db_cpsname == textEdit1.Text.Trim() && (f.db_status == SystemOrderStatus.订单付款 || f.db_status == SystemOrderStatus.订单冻结)).ToList();
var orders = ApiClient.GetSession().Find<fl_order_alimama>("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<DownAlimamaTimer>() as DownAlimamaTimer;
var notices = new List<OrderNoticeEvent>();
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<Update_NoticeQueue>() 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<view_cps_order_alimama> result = null;
#region
map.setParameter("fk", (int)SystemOrderStatus.);
map.setParameter("dj", (int)SystemOrderStatus.);
map.setParameter("db_cpsname", textEdit1.Text.Trim());
result = session.FindPage<view_cps_order_alimama>("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<SystemOrderStatus>(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<fl_order_alimama>().Where(f => f.db_cpsname == textEdit1.Text.Trim() && (f.db_status == SystemOrderStatus.订单付款 || f.db_status == SystemOrderStatus.订单冻结)).ToList();
var orders = session.Find<fl_order_alimama>("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<DownAlimamaTimer>() as DownAlimamaTimer;
var notices = new List<OrderNoticeEvent>();
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<Update_NoticeQueue>() 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);
}
}
}
}