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 FLSystem.Events; using SqlSugar; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using UI.Framework.Forms; using static Api.Framework.Cps.AlimamaApi; namespace FLSystem.Forms { public partial class cps_order_alimama : DevExpress.XtraEditors.XtraUserControl { public class view_cps_order_alimama { /// /// id /// public long id { get; set; } /// /// 商品标题 /// public string item_title { get; set; } /// /// 购买数量 /// public string num_iid { get; set; } /// /// 实际付款 /// public double pay_price { get; set; } /// /// 实际总共佣金 /// public double commission { get; set; } /// /// 订单父id /// public string trade_parent_id { get; set; } /// /// 订单子id /// public string trade_id { get; set; } /// /// 订单状态 /// public SystemOrderStatus db_status { 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 order_type { get; set; } /// /// 总佣金 /// public double pub_share_pre_fee { get; set; } /// /// 付款金额 /// public double alipay_total_price { get; set; } /// /// 商品单价 /// public double price { get; set; } /// /// 购买数量 /// public int item_num { get; set; } /// /// 推广位 /// public string adzone_id { get; set; } /// /// 创建时间 /// public DateTime create_time { get; set; } public string db_point { get; set; } /// /// 联盟账号 /// public string db_cpsname { get; set; } /// /// 联盟昵称 /// public string db_cpsnick { get; set; } /// /// 冻结时间 /// public DateTime db_endtime { get; set; } /// /// 显示返回的费用 /// public double showReturnFee { get; set; } /// /// 退款手续费 /// public double refundFee { get; set; } /// /// 卖方编码 /// public string seller_id { get; set; } /// /// 预付款金额 /// public string deposit_price { get; set; } /// /// 预售时期,用户对预售商品支付定金的付款时间 /// public string tb_deposit_time { get; set; } /// /// 联盟技术费用比率 /// public double alimama_rate { get; set; } /// /// 联盟技术费用 /// public double alimama_share_fee { get; set; } /// /// /// public string auction_category { get; set; } } public cps_order_alimama(string textedit = "") { try { InitializeComponent(); var session = ApiClient.GetSession(); 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); #endregion this.pageControl1.Bind(SerchData, this.gridControl1, 50, false, true); MainEvent.CommonEvents += Main_CommonEvents; this.Disposed += Control_Disposed; } catch (Exception ex) { BaseForm.ShowError(ex); } } private void Control_Disposed(object sender, EventArgs e) { MainEvent.CommonEvents -= Main_CommonEvents; } private UI.Framework.Controls.PageControl.SerchResult SerchData(int index, int pagesize) { try { var session = ApiClient.GetSession(); var isOld = true; List result = null; var sqlwhere = string.Empty; if (this.checkBox1.Checked) { isOld = false; sqlwhere += $" and '{this.dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss")}' <= create_time and create_time <= '{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 "订单编号": if (keyword.Length == 6) sqlwhere += $" and trade_parent_id like '%{keyword}'"; else sqlwhere += $" and trade_parent_id = '{keyword}'"; break; case "商品编号": sqlwhere += $" and num_iid = '{keyword}'"; break; case "商品标题": sqlwhere += $" and item_title like '%{keyword}%'"; break; case "客户编号": sqlwhere += $" and db_userid = '{keyword}'"; break; case "客户账号": var ids = FindMemberIdByKey("username", keyword); if (ids != null) { if (ids.Count == 0) ids.Add("-1"); sqlwhere += $" and db_userid in ('{string.Join("','", ids)}')"; } break; case "客户昵称": ids = FindMemberIdByKey("usernick", keyword); if (ids != null) { if (ids.Count == 0) ids.Add("-1"); sqlwhere += $" and db_userid in ('{string.Join("','", ids)}')"; } break; case "店铺编码": sqlwhere += $" and seller_id = '{keyword}'"; break; case "PID最后1段": sqlwhere += $" and adzone_id = '{keyword}'"; break; case "联盟账号": sqlwhere += $" and db_cpsname = '{keyword}'"; break; case "联盟昵称": sqlwhere += $" and db_cpsnick = '{keyword}'"; break; case "未绑定用户": sqlwhere += $" and db_userid = '0'"; break; } } var status = this.comboBoxEdit2.SelectedIndex == 0 ? SystemOrderStatus.订单未知 : Util.ConvertEnum(this.comboBoxEdit2.Text); if (status != SystemOrderStatus.订单未知) sqlwhere += $" and db_status = '{((int)status).ToString()}'"; if (this.comboBoxEdit3.SelectedIndex != 0) 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")}' <= create_time"; sqlwhere += $" order by id desc"; var getCount = session.Find("select count(*) from fl_order_alimama 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_alimama where 1=1 " + sqlwhere); result = new List(); foreach (var o in resultTmp) { result.Add(new view_cps_order_alimama() { id = o.id, adzone_id = o.adzone_id, alipay_total_price = o.alipay_total_price, create_time = o.create_time, 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, item_num = o.item_num, item_title = o.item_title, num_iid = o.num_iid, order_type = o.order_type, price = o.price, pub_share_pre_fee = o.pub_share_pre_fee, robotname = o.db_robotname, trade_id = o.trade_id, trade_parent_id = o.trade_parent_id, db_userid = o.db_userid, seller_id = o.seller_id, deposit_price = o.deposit_price, tb_deposit_time = o.tb_deposit_time, pay_price = o.pay_price, commission = o.commission, alimama_rate = o.alimama_rate, alimama_share_fee = o.alimama_share_fee, auction_category = o.auction_category, //refundFee = ra.refundfee, //showReturnFee = ra.showreturnfee,D:\代码同步\fl_system\类库\Grant.Framework\LoginCard.cs //username = u.username, //usernick = u.usernick }); } if (result.Count != 0) { #region 附加用户 var bindUsersList = result.Where(f => f.db_userid != 0).GroupBy(f => f.db_userid).Select(f => f.Key).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(); } foreach (var member in memberData) { 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 var refundData = result.Where(f => (int)f.db_status == 1003 || (int)f.db_status == 1000 || (int)f.db_status == 999 || (int)f.db_status == 998).ToList(); List wherelist = new List(); foreach (var item in refundData) { wherelist.Add($"(tbtradeparentid = {item.trade_parent_id} and tbtradeid = {item.trade_id})"); } var _where = string.Join(" or ", wherelist); _where = string.IsNullOrWhiteSpace(_where) ? string.Empty : $"and { _where}"; var refundResult = session.Find($"select * from fl_order_refund_alimama where 1 = 1 { _where}"); foreach (var item in refundResult) { var order = result.FirstOrDefault(f => f.trade_parent_id == item.tbtradeparentid && f.trade_id == item.tbtradeid); if (order != null) { if (order.auction_category != "手动处理") { order.refundFee = item.refundfee; order.showReturnFee = item.showreturnfee; } } } } //EventClient.OnEvent(this, sb_time.ToString()); return new UI.Framework.Controls.PageControl.SerchResult() { Result = result, Total = totalNumber }; } catch (Exception ex) { if (!this.IsDisposed) this.UpdateUI(() => { BaseForm.ShowError(ex); }); } return null; } /// /// 代理委托更新UI /// /// protected delegate void DelegateUpdateUI(Action act); /// /// 代理委托更新UI /// /// protected void UpdateUI(Action act) { try { if (!InvokeRequired) { act.Invoke(); } else { DelegateUpdateUI delegateUpdateUI = new DelegateUpdateUI(UpdateUI); Invoke(delegateUpdateUI, act); } } catch (Exception ex) { BaseForm.ShowError(ex); } } /// /// 条件查询(用户账号/用户昵称),模糊查询,获取用户的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) { return new List(); } } 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 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 void simpleButton1_Click(object sender, EventArgs e) { this.pageControl1.Go(sender, e); } 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().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 gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) { var row = e.Row as view_cps_order_alimama; if (e.Column.Caption == "客户所得") { //var ss = Newtonsoft.Json.JsonConvert.DeserializeObject(row.db_point); var point = HttpHelper.JsonToObject(row.db_point) as ItemPoint; e.Value = point.UserPoint; } else if (e.Column.Caption == "订单类型") { if (row.create_time > DateTime.Parse("2020-08-04 00:00:00")) e.Value = row.alimama_rate != 0 ? "正常订单" : "比价订单"; else e.Value = "历史订单"; } } 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_alimama; if (XtraMessageBox.Show("您确定要删除选中数据嘛?\r\n" + info.item_title, "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var session = ApiClient.GetSession(); session.ExcuteSQL("delete from fl_order_alimama where id=" + info.id); } this.pageControl1.GotoPage(1); } } 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 comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) { this.textEdit1.Enabled = (comboBoxEdit1.SelectedIndex != 0 && comboBoxEdit1.SelectedIndex != 11); if (!textEdit1.Enabled) this.textEdit1.Text = string.Empty; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { this.dateTimePicker1.Enabled = this.dateTimePicker2.Enabled = this.checkBox1.Checked; } /// /// 订单绑定用户 /// /// /// 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_alimama; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || db_status == SystemOrderStatus.订单结算 || 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 alimama = session.FindSingle("id = @id", new { id = row.id }); if (alimama != null) { if (alimama.db_robottype == 0) alimama.db_robottype = select_form.fl_member_info.robot_type; if (string.IsNullOrWhiteSpace(alimama.db_robotname)) alimama.db_robotname = select_form.fl_member_info.robot_name; #region 判断是否为淘礼金订单,如果是淘礼金订单将不给这个订单返利 var isTljOrder = session.CheckIsTljOrder(row.adzone_id); #endregion //计算的佣金 - 判断使用设置模式,符合将扣除用户自定义预扣佣金 var commission = session.GetTbComparisonFeeRate(alimama); //var itempoint = session.FindItemPoint(select_form.fl_member_info, isTljOrder ? 0 : alimama.pub_share_pre_fee, alimama.item_num, CpsType.阿里妈妈); var itempoint = session.FindItemPoint(select_form.fl_member_info, isTljOrder ? 0 : commission, alimama.item_num, CpsType.阿里妈妈); if (itempoint != null) { alimama.db_point = HttpHelper.ObjectToJson(itempoint); alimama.db_userpoint = itempoint.UserPoint; } alimama.db_userid = select_form.fl_member_info.id; session.SaveOrUpdate(alimama); #region 获取查询时的比例 var itemIdB = ApiClient.GetValidItemId(alimama.num_iid); var query_item = session.FindSingle("userid=@userid and itemid=@itemid and adzoneid = @adzoneid and crt_time > @time order by id", new { userid = alimama.db_userid, itemid = itemIdB, adzoneid = alimama.adzone_id, time = DateTime.Now.AddHours(-24).ToString("yyyy-MM-dd HH:mm:ss") }); if (query_item != null && !string.IsNullOrWhiteSpace(query_item.compute_configdic)) { if (alimama.id == 0) session.SaveOrUpdate(alimama); var queryRatioHist = new fl_query_ratio_hist() { compute_config = query_item.compute_configdic, db_orderid = alimama.id, createtime = DateTime.Now, cpstype = CpsType.阿里妈妈 }; session.SaveOrUpdate(queryRatioHist); } #endregion } simpleButton1_Click(null, null); //更新显示值 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 = alimama.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 = HttpExtend.GetTimeStamp(DateTime.Now), ex5 = HttpExtend.GetTimeStamp(alimama.paid_time) }; session.Saveable(record).ExecuteCommand(); } else { if (record.ex2 == 0 && record.ex4 == 0) record.ex4 = CsharpHttpHelper.HttpExtend.GetTimeStamp(DateTime.Now); record.ex5 = CsharpHttpHelper.HttpExtend.GetTimeStamp(alimama.paid_time); session.Saveable(record).ExecuteCommand(); } } catch (Exception) { } #endregion session.UpdateMemberGroup(select_form.fl_member_info); } } } 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_alimama; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || db_status == SystemOrderStatus.订单结算 || 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.num_iid }); session.ExcuteSQL("update fl_order_alimama set db_userid = @userid where id=@id", new { userid = 0, id = row.id }); 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 { 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_alimama; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || 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 alimama = session.FindSingle("select * from fl_order_alimama where trade_id = @trade_id and trade_parent_id = @trade_parent_id", new { trade_id = row.trade_id, trade_parent_id = row.trade_parent_id }); if (alimama == null) throw new Exception("数据查询失败,请稍后重试"); alimama.earning_time = DateTime.Now.AddSeconds(-2); alimama.tk_status = (int)AlimamaOrderStatus.订单结算; alimama.db_endtime = DateTime.Now; alimama.db_status = SystemOrderStatus.订单冻结; alimama.auction_category = "手动处理"; var task = TimerTask.GetTimer() as DownAlimamaTimer; var notices = new List(); var strb = new StringBuilder(); try { strb.Append($@"手动结算 数据1:{HttpHelper.ObjectToJson(alimama)}"); } catch (Exception) { } task.UpdateOrder(alimama, notices, session); try { strb.AppendLine($@"返回: {HttpHelper.ObjectToJson(alimama)}"); EventClient.OnEvent("淘宝订单手动结算: ", strb.ToString()); } catch (Exception) { } var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_alimama; 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 (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_alimama; var db_status = row.db_status; var session = ApiClient.GetSession(); var alimama = session.FindSingle("trade_id = @trade_id and trade_parent_id = @trade_parent_id", new { trade_id = row.trade_id, trade_parent_id = row.trade_parent_id }); if (alimama == null) throw new Exception("数据查询失败,请稍后重试"); var flag = false; var notices = new List(); if (db_status == SystemOrderStatus.订单结算 || db_status == SystemOrderStatus.部分退款) flag = true; else if (db_status != SystemOrderStatus.订单维权中 && alimama.IsFinish()) throw new Exception($"选中订单:{db_status},不予操作"); alimama.earning_time = DateTime.Now.AddSeconds(-2); alimama.tk_status = (int)AlimamaOrderStatus.订单失效; alimama.db_endtime = DateTime.Now; alimama.db_status = SystemOrderStatus.订单失效; alimama.auction_category = "手动处理"; var task = TimerTask.GetTimer() as DownAlimamaTimer; if (!flag) { var strb = new StringBuilder(); try { strb.Append($@"手动失效A 数据1:{HttpHelper.ObjectToJson(alimama)}"); } catch (Exception) { } task.UpdateOrder(alimama, notices, session); try { strb.AppendLine($@"返回: {HttpHelper.ObjectToJson(alimama)}"); EventClient.OnEvent("淘宝订单手动失效: ", strb.ToString()); } catch (Exception) { } } else { new OrderHelper().DeductAliOrderPoint(notices, alimama); session.SaveOrUpdate(alimama); } var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_alimama; 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 cps_order_alimama_Load(object sender, EventArgs e) { simpleButton1_Click(this.simpleButton1, null); } private void 查看用户信息ToolStripMenuItem1_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 contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { this.查看用户信息ToolStripMenuItem.Enabled = this.gridView1.GetRowCellValue(rows[0], "username") != null; var status = this.gridView1.GetRowCellValue(rows[0], "db_status").ToString(); this.冻结延期ToolStripMenuItem.Enabled = status == "订单冻结"; this.维权订单查看ToolStripMenuItem.Enabled = (status == "订单维权中" || status == "全额退款" || status == "部分退款"); } else e.Cancel = true; } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 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_alimama; 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 alimama = session.FindSingle("id = @id", new { id = row.id }); if (endtime_form.newtime != row.db_endtime) { alimama.db_endtime = endtime_form.newtime; session.Updateable(alimama).ExecuteCommand(); } row.db_endtime = endtime_form.newtime;//更新显示值 } } } 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 trade_parent_id = this.gridView1.GetRowCellValue(rows[0], "trade_parent_id").ToString();//获取列的数据 var tsmi = sender as ToolStripMenuItem; if (tsmi == null) throw new Exception("数据异常"); var common = new Dictionary(); common["type"] = "阿里妈妈维权订单"; common["trade_parent_id"] = trade_parent_id; MainEvent.OnEvent(null, new CommonEvents(common)); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void groupControl1_Paint(object sender, PaintEventArgs e) { } private void 一键结算ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (XtraMessageBox.Show("确定要结算当前页所有的订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.DataSource as List; if (rows != null && rows.Count > 0) { for (int i = 0; i < rows.Count; i++) { //获取选中数据 var row = rows[i]; var db_status = row.db_status; if (db_status == SystemOrderStatus.订单失效 || 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 alimama = session.FindSingle("select * from fl_order_alimama where trade_id = @trade_id and trade_parent_id = @trade_parent_id", new { trade_id = row.trade_id, trade_parent_id = row.trade_parent_id }); if (alimama == null) throw new Exception("数据查询失败,请稍后重试"); alimama.earning_time = DateTime.Now.AddSeconds(-2); alimama.tk_status = (int)AlimamaOrderStatus.订单结算; alimama.db_endtime = DateTime.Now; alimama.db_status = SystemOrderStatus.订单冻结; alimama.auction_category = "手动处理"; var task = TimerTask.GetTimer() as DownAlimamaTimer; var notices = new List(); var strb = new StringBuilder(); try { strb.Append($@"手动结算 数据1:{HttpHelper.ObjectToJson(alimama)}"); } catch (Exception) { } task.UpdateOrder(alimama, notices, session); try { strb.AppendLine($@"返回: {HttpHelper.ObjectToJson(alimama)}"); EventClient.OnEvent("淘宝订单手动结算: ", strb.ToString()); } catch (Exception) { } var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_alimama; 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 (XtraMessageBox.Show("确定要失效当前页所有的订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.DataSource as List; if (rows != null && rows.Count > 0) { for (int i = 0; i < rows.Count; i++) { //获取选中数据 var row = rows[i]; var db_status = row.db_status; var session = ApiClient.GetSession(); var alimama = session.FindSingle("trade_id = @trade_id and trade_parent_id = @trade_parent_id", new { trade_id = row.trade_id, trade_parent_id = row.trade_parent_id }); if (alimama == null) throw new Exception("数据查询失败,请稍后重试"); var flag = false; var notices = new List(); if (db_status == SystemOrderStatus.订单结算 || db_status == SystemOrderStatus.部分退款) flag = true; else if (db_status != SystemOrderStatus.订单维权中 && alimama.IsFinish()) throw new Exception($"选中订单:{db_status},不予操作"); alimama.earning_time = DateTime.Now.AddSeconds(-2); alimama.tk_status = (int)AlimamaOrderStatus.订单失效; alimama.db_endtime = DateTime.Now; alimama.db_status = SystemOrderStatus.订单失效; alimama.auction_category = "手动处理"; var task = TimerTask.GetTimer() as DownAlimamaTimer; if (!flag) { var strb = new StringBuilder(); try { strb.Append($@"手动失效A 数据1:{HttpHelper.ObjectToJson(alimama)}"); } catch (Exception) { } task.UpdateOrder(alimama, notices, session); try { strb.AppendLine($@"返回: {HttpHelper.ObjectToJson(alimama)}"); EventClient.OnEvent("淘宝订单手动失效: ", strb.ToString()); } catch (Exception) { } } else { new OrderHelper().DeductAliOrderPoint(notices, alimama); session.SaveOrUpdate(alimama); } var tasks = TimerTask.GetTimer() as Update_NoticeQueue; foreach (var item in notices) { if (item.Member == null) continue; var order = item.Order as fl_order_alimama; 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 (XtraMessageBox.Show("确定要延长冻结当前页所有的订单?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var rows = this.gridView1.DataSource as List; if (rows != null && rows.Count > 0) { for (int i = 0; i < rows.Count; i++) { //获取选中数据 var row = rows[i]; 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 alimama = session.FindSingle("id = @id", new { id = row.id }); if (endtime_form.newtime != row.db_endtime) { alimama.db_endtime = endtime_form.newtime; session.Updateable(alimama).ExecuteCommand(); } row.db_endtime = endtime_form.newtime;//更新显示值 } } } } 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 commission = db.GetTbComparisonFeeRate(order); var itempoint = db.FindItemPoint(member, commission, order.item_num, CpsType.阿里妈妈); if (itempoint != null) { order.db_point = HttpHelper.ObjectToJson(itempoint); order.db_userpoint = itempoint.UserPoint; db.SaveOrUpdate(order); EventClient.OnEvent("", $"淘宝单号:{order.trade_parent_id}-{order.trade_id},重新计算完成"); } } } catch (Exception ex) { EventClient.OnEvent("", $"淘宝重新计算异常:{ex.Message}"); } } } }