214 lines
10 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|