old_flsystem/应用/FissionData/MainForm.cs

260 lines
9.4 KiB
C#

using Api.Framework;
using Api.Framework.Model;
using Api.Framework.Tools;
using Chat.Framework.WXSdk;
using Chat.Framework.WXSdk.Implement;
using DevExpress.XtraTab;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using UI.Framework.Forms;
namespace FissionData
{
public partial class MainForm : BaseForm
{
public MainForm()
{
InitializeComponent();
this.pageControl2.Bind(delegate (int index, int pagesize)
{
try
{
var session = ApiClient.GetSession();
var map = session.NewParamMap();
map.setPageParamters(index, pagesize);
var sql = "select * from FissionClass where 1 = 1 ";
var groupkey = textEdit2.Text.Trim();
var friendkey = textEdit3.Text.Trim();
var flag = false;
if (!string.IsNullOrWhiteSpace(friendkey))//判断是否是用户数据id
{
var uid = 0;
if (int.TryParse(friendkey, out uid))
{
var member = session.FindMemberInfoById(uid);
if (member != null)
{
flag = true;
if (string.IsNullOrWhiteSpace(groupkey))
sql += $"and username = '{member.username}'";
else
sql += $"and (groupid like '%{groupkey}%' or groupnick like '%{groupkey}%') and username = '{member.username}'";
}
}
}
if (!flag)
{
if (string.IsNullOrWhiteSpace(groupkey) && !string.IsNullOrWhiteSpace(friendkey))
sql += $"and (username like '%{friendkey}%' or nickname like '%{friendkey}%')";
else if (!string.IsNullOrWhiteSpace(groupkey) && string.IsNullOrWhiteSpace(friendkey))
sql += $"and (groupid like '%{groupkey}%' or groupnick like '%{groupkey}%')";
else if (!string.IsNullOrWhiteSpace(groupkey) && !string.IsNullOrWhiteSpace(friendkey))
sql += $"and (groupid like '%{groupkey}%' or groupnick like '%{groupkey}%') and (username like '%{friendkey}%' or nickname like '%{friendkey}%')";
}
PageResult<FissionClass> result = session.FindPage<FissionClass>(sql, map);
return new UI.Framework.Controls.PageControl.SerchResult() { Result = result.DataList, Total = result.Total };
}
catch (Exception ex)
{
BaseForm.ShowError(ex);
}
return null;
}, this.gridControl2, 100, false, true);
}
public void CloseForm()
{
try
{
if (!this.IsDisposed)
{
this.Invoke(new Action(delegate
{
this.Close();
this.Dispose();
}));
}
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void MainForm_Load(object sender, EventArgs e)
{
UpdateWxList();
settingControl1.Bind(Class1.Config, 100);
}
public void UpdateWxList()
{
try
{
//comboBoxEdit1.Properties.Items.Clear();
//comboBoxEdit1.Properties.Items.Add("全部机器人");
//var wxs = Chat.Framework.ChatClient.WXClient.Values.Where(f => f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 && f.Status == Chat.Framework.WXSdk.WxStatus.在线);
//var groupInfoList = new List<string>() { "全部机器人" };
//foreach (var wx in wxs)
//{
// comboBoxEdit1.Properties.Items.Add($"{wx.User.Nick}({wx.WeixinHao})");
// groupInfoList.Add(wx.WeixinHao);
//}
//comboBoxEdit1.Tag = groupInfoList;
//if (comboBoxEdit1.Properties.Items.Count != 0)
// comboBoxEdit1.SelectedIndex = 0;
}
catch (Exception ex)
{ }
}
private void xtraTabControl1_Selected(object sender, TabPageEventArgs e)
{
if (e.PageIndex == 2)
pageControl2.Go(sender, e);
}
private void simpleButton1_Click(object sender, EventArgs e)
{
try
{
var session = ApiClient.GetSession();
//var groupList = comboBoxEdit1.Tag as List<string>;
//var groupInfos = new List<GroupInfo>();
//if (comboBoxEdit1.SelectedIndex == 0)
//{
//var wxs = Chat.Framework.ChatClient.WXClient.Values.Where(f => f.WeixinType == WeixinType.Grpc微信 && f.Status == WxStatus.在线);
//foreach (var wx in wxs)
//{
// groupInfos.AddRange(GroupParse(wx));
//}
//}
// else
// {
// var wx = Chat.Framework.ChatClient.WXClient.Values.First(f => f.WeixinType == WeixinType.Grpc微信 && f.Status == WxStatus.在线 && f.WeixinHao == groupList[comboBoxEdit1.SelectedIndex]);
// if (wx == null) throw new Exception("微信不在线");
// groupInfos.AddRange(GroupParse(wx));
//}
var groupInfos = new List<GroupInfo>();
var key = textEdit1.Text.Trim();
if (string.IsNullOrWhiteSpace(key))
groupInfos = session.Queryable<FissionClass>().GroupBy(f => f.groupid).Select<GroupInfo>(z => new GroupInfo() { groupid = z.groupid, groupnick = z.groupnick }).ToList();
else
groupInfos = session.Queryable<FissionClass>().Where(f => f.groupid.Contains(key) || f.groupnick.Contains(key)).GroupBy(f => f.groupid).Select<GroupInfo>(z => new GroupInfo() { groupid = z.groupid, groupnick = z.groupnick }).ToList();
gridControl1.DataSource = groupInfos;
}
catch (Exception ex)
{
ShowError(ex);
}
}
//public List<GroupInfo> GroupParse(WeixinBase wx)
//{
// var groupInfos = new List<GroupInfo>();
// try
// {
// var ipad = wx as WXClientImpl_IPAD;
// if (ipad == null) return null;
// ipad.GetContact
// if (ipad.Friends.Count == 0) { }
// var temps = ipad.Friends.Values.Where(f => f.UserName.Contains("@chatroom"));
// foreach (var item in temps)
// {
// groupInfos.Add(new GroupInfo() { robotname = ipad.WeixinHao, robotnick = ipad.User.Nick, groupid = item.UserName, groupnick = item.NickName });
// }
// }
// catch (Exception ex)
// { }
// return groupInfos;
//}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Util.Save(Class1.Config);
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
var rows = gridView1.GetSelectedRows();
if (rows == null || rows.Length <= 0) throw new Exception("获取数据异常");
//var username = gridView1.GetRowCellValue(rows[0], "robotname").ToString();
//var robotnick = gridView1.GetRowCellValue(rows[0], "robotnick").ToString();
var groupid = gridView1.GetRowCellValue(rows[0], "groupid").ToString();
//var groupnick = gridView1.GetRowCellValue(rows[0], "groupnick").ToString();
xtraTabControl1.SelectedTabPageIndex = 2;
textEdit2.Text = groupid;
textEdit3.Text = string.Empty;
simpleButton2_Click(null, null);
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void simpleButton2_Click(object sender, EventArgs e)
{
pageControl2.Go(sender, e);
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
try
{
var rows = this.gridView2.GetSelectedRows();
if (rows != null && rows.Length > 0)
{
var row = this.gridView2.GetRow(rows[0]) as FissionClass;
var cashForm = new CashForm(row);
if (cashForm.ShowDialog() == DialogResult.OK)
{
pageControl2.Go(sender, e);
}
}
}
catch (Exception ex)
{
ShowError(ex);
}
}
}
}