using Api.Framework; using Api.Framework.Enums; using Api.Framework.Model; using Api.Framework.Tools; using DevExpress.XtraEditors; using FLSystem.Events; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Windows.Forms; using UI.Framework.Forms; namespace FLSystem.Forms { public partial class member_manage_control : XtraUserControl { List groups = null; public member_manage_control(string textedit = "") { try { InitializeComponent(); textEdit1.Text = textedit; this.comboBoxEdit1.SelectedIndex = string.IsNullOrEmpty(textedit) ? 0 : 1; this.comboBoxEdit3.Properties.Items.Clear(); this.comboBoxEdit3.Properties.Items.AddRange(new object[] { "全部状态" }); ; foreach (int v in Enum.GetValues(typeof(MemberType))) { this.comboBoxEdit3.Properties.Items.AddRange(new object[] { Enum.GetName(typeof(MemberType), v) }); } this.comboBoxEdit3.SelectedIndex = 0; this.gridView1.CustomDrawRowIndicator += GridView1_CustomDrawRowIndicator; this.pageControl1.Bind(delegate (int index, int pagesize) { try { var session = ApiClient.GetSession(); this.groups = session.FindGroups(); List result = null; List conModels = new List(); string keyword = this.textEdit1.Text.Trim(); if (!string.IsNullOrEmpty(keyword) || this.comboBoxEdit1.Text == "积分为负数" || this.comboBoxEdit1.Text == "私人推广位" || this.comboBoxEdit1.Text == "私人比例") { //where = " where "; switch (this.comboBoxEdit1.Text) { case "客户账号": { conModels.Add(new ConditionalModel() { FieldName = "username", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); break; } case "客户昵称": { conModels.Add(new ConditionalModel() { FieldName = "usernick", ConditionalType = ConditionalType.Like, FieldValue = keyword }); conModels.Add(new ConditionalCollections() { ConditionalList = new List>() { new KeyValuePair(WhereType.Or, new ConditionalModel() { FieldName = "usernick", ConditionalType = ConditionalType.Like, FieldValue = keyword }), new KeyValuePair(WhereType.Or, new ConditionalModel() { FieldName = "remark", ConditionalType = ConditionalType.Like, FieldValue = keyword }) } }); break; } case "客户编号": { conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); break; } case "支付宝账号": { conModels.Add(new ConditionalModel() { FieldName = "alipay_num", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); break; } case "支付宝姓名": { conModels.Add(new ConditionalModel() { FieldName = "alipay_name", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); break; } case "上级编号": { conModels.Add(new ConditionalModel() { FieldName = "inviter_id", ConditionalType = ConditionalType.Equal, FieldValue = keyword }); break; } case "上级账号": { var friend = session.Find("username = @username", new { username = keyword }).FirstOrDefault(); conModels.Add(new ConditionalModel() { FieldName = "inviter_id", ConditionalType = ConditionalType.Equal, FieldValue = (friend != null ? friend.id.ToString() : "0") }); break; } case "上级昵称": { var friend = session.Find("usernick like @usernick", new { usernick = "%" + keyword + "%" }).FirstOrDefault(); conModels.Add(new ConditionalModel() { FieldName = "inviter_id", ConditionalType = ConditionalType.Equal, FieldValue = (friend != null ? friend.id.ToString() : "0") }); break; } case "积分为负数": { conModels.Add(new ConditionalModel() { FieldName = "cur_point", ConditionalType = ConditionalType.LessThan, FieldValue = "0" }); break; } case "私人推广位": { var members = session.FindAdzoneInfos().Where(f => f.custom_type == PrivateAdzoneCustomType.用户私人pid.ToString() && f.member_id > 0).GroupBy(f => f.member_id).Select(f => f.Key); conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.In, FieldValue = string.Join(",", members) }); break; } case "私人比例": { conModels.Add(new ConditionalModel() { FieldName = "private_ratio", ConditionalType = ConditionalType.GreaterThan, FieldValue = "0" }); break; } } } if (!string.IsNullOrWhiteSpace(comboBoxEdit3.Text) && comboBoxEdit3.Text != "全部状态") { conModels.Add(new ConditionalModel() { FieldName = "status", ConditionalType = ConditionalType.Equal, FieldValue = ((int)(MemberType)Enum.Parse(typeof(MemberType), comboBoxEdit3.Text)).ToString() }); } int totalNumber = 0; switch (this.comboBoxEdit2.Text) { case "最近新增": { result = session.Queryable() .Where(conModels) .OrderBy(m => m.crt_time, OrderByType.Desc) .ToPageList(index, pagesize, ref totalNumber); break; } case "最早聊天": { result = session.Queryable() .Where(conModels) .OrderBy(m => m.upd_time, OrderByType.Asc) .ToPageList(index, pagesize, ref totalNumber); break; } case "最近聊天": { result = session.Queryable() .Where(conModels) .OrderBy(m => m.upd_time, OrderByType.Desc) .ToPageList(index, pagesize, ref totalNumber); break; } case "消费最多": { result = session.Queryable() .Where(conModels) .OrderBy(m => m.buy_point, OrderByType.Desc) .ToPageList(index, pagesize, ref totalNumber); break; } } return new UI.Framework.Controls.PageControl.SerchResult() { Result = result, Total = totalNumber }; } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "搜索标题", MessageBoxButtons.OK, MessageBoxIcon.Error); } return new UI.Framework.Controls.PageControl.SerchResult() { Result = null, Total = 0 }; }, this.gridControl1, 30, true, true); MainEvent.CommonEvents += Main_CommonEvents; this.Disposed += Control_Disposed; } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } } private void Control_Disposed(object sender, EventArgs e) { MainEvent.CommonEvents -= Main_CommonEvents; } private void Main_CommonEvents(object sender, CommonEvents e) { try { if (e.Commons != null && e.Commons.Count != 0) { if (e.Commons.ContainsKey("control_name") && e.Commons.ContainsKey("username")) { var control_name = e.Commons["control_name"].ToString(); if (control_name == "查看用户信息") { textEdit1.Text = e.Commons["username"].ToString(); comboBoxEdit1.SelectedIndex = 1; comboBoxEdit3.SelectedIndex = comboBoxEdit2.SelectedIndex = 0; pageControl1.GotoPage(1); } } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } } 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_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) { if (e.Column.Caption == "分组等级") { var row = e.Row as fl_member_info; if (row != null) { var group = groups.FirstOrDefault(f => f.id == row.group_id); e.Value = group == null ? "未分组" : group.name; } } } private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.Caption == "邀请人编号") { if (e.Value.ToString() == "0") e.DisplayText = "无"; } } private void 修改资料ToolStripMenuItem_Click(object sender, EventArgs e) { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { var old_row = this.gridView1.GetRow(rows[0]) as base_model; var from = new member_base_info_form(old_row.id); from.ShowDialog(); this.pageControl1.GotoPage(1); } } private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxEdit1.SelectedIndex == 0 || comboBoxEdit1.SelectedIndex == 9 || comboBoxEdit1.SelectedIndex == 10 || comboBoxEdit1.SelectedIndex == 11) { this.textEdit1.Enabled = false; this.textEdit1.Text = ""; } else this.textEdit1.Enabled = true; } private void 设置私人信息ToolStripMenuItem_Click(object sender, EventArgs e) { var rows = this.gridView1.GetSelectedRows(); if (rows != null && rows.Length > 0) { var old_row = this.gridView1.GetRow(rows[0]) as base_model; member_private_config member_private = new member_private_config(old_row.id); member_private.ShowDialog(); } } private void 推荐列表ToolStripMenuItem_Click(object sender, EventArgs e) { try { var selectRows = gridView1.GetSelectedRows(); if (selectRows.Length > 0) { var id = int.Parse(gridView1.GetRowCellValue(selectRows[0], "id").ToString()); member_inviter_control inviter_Control = new member_inviter_control(id); inviter_Control.ShowDialog(); } } catch (Exception ex) { XtraMessageBoxArgs args = new XtraMessageBoxArgs(); args.AutoCloseOptions.Delay = 6000; args.Caption = "系统错误"; args.Text = ex.Message; args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel }; XtraMessageBox.Show(args); } } /// /// 查询用户对应订单列表 /// /// /// 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("订单", ""); 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, CancelEventArgs e) { try { var rows = this.gridView1.GetSelectedRows(); if (!(rows != null && rows.Length > 0)) 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 != null && rows.Length > 0) { var member = this.gridView1.GetRow(rows[0]) as fl_member_info; new AddCloudblack(member).ShowDialog(); } } 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 member = this.gridView1.GetRow(rows[0]) as fl_member_info; CloudBlack cloud = new CloudBlack(); var black = cloud.QueryBlack(member); var msg = $@"{member.username}({member.usernick})【非云名单用户】"; if (black != null) msg = $@"{member.username}({member.usernick})【是云黑名单用户】 "; XtraMessageBoxArgs args = new XtraMessageBoxArgs(); args.AutoCloseOptions.Delay = 5000; args.Caption = $"云黑名单 - {(5000 / 1000)}秒后自动关闭"; args.Text = msg; args.Buttons = new DialogResult[] { DialogResult.OK }; XtraMessageBox.Show(args).ToString(); } } 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 member = this.gridView1.GetRow(rows[0]) as fl_member_info; if (XtraMessageBox.Show($"确定修改用户:{member.usernick}({member.username})的兑换类型?", "系统提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { member.exchange_type = member.exchange_type == ExchangeType.人工审核 ? ExchangeType.随系统设置 : ExchangeType.人工审核; ApiClient.GetSession().SaveOrUpdate(member); this.pageControl1.GotoPage(1); } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }