using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; using UI.Framework.Forms; using Weixin.AccurateCircle.Properties; using Api.Framework.Enums; using Api.Framework; using Api.Framework.Cps; using Api.Framework.Model; using Api.Framework.Tools; using Weixin.AccurateCircle.Entitys; using UI.Framework.Controls; namespace Weixin.AccurateCircle { public partial class MainForm : BaseForm { public MainForm() { InitializeComponent(); this.Text = Resources.MainFormTitle; } 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) { try { try { settingControl1.Bind(Class1.Config, 120); //绑定控件 #region 加载所有采集到的商品 pageControl1.Bind((page, size) => { var session = ApiClient.GetSession(); var parm = session.NewParamMap(); parm.setPageParamters(page, size); var result = session.FindPage("select * from fl_plugin_accuratecircle_dataInfos order by state desc", parm); return new PageControl.SerchResult() { Result = result.DataList, Total = result.Total }; }, gridControl1, 40, true, true); label2.Visible = gridView1.RowCount == 0; #endregion #region 加载所有的账号 pageControl2.Bind((page, size) => { var session = ApiClient.GetSession(); int total = 0; var result = session.Queryable().Select(f => new info_temp() { ID = f.id, chattype = f.type, name = f.name, nick = f.nick }).ToPageList(1, 50, ref total); if (result != null && result.Count != 0) { foreach (var robot in result) { var adzones = session.FindAdzoneInfos().Where(f => f.custom_type == Resources.SoftwareType && f.robot_id == robot.ID).ToList(); if (adzones != null && adzones.Count != 0) { robot.onoff = adzones[0].onoff; foreach (var item in adzones) { if (item.alliance_id == (int)CpsType.阿里妈妈) { robot.tb_adzone_name = item.adzone_name; robot.tb_adzone_pid = item.adzone_pid; robot.tb_adzone_pid_cps_name = item.adzone_pid_cps_name; } else if (item.alliance_id == (int)CpsType.京东联盟) { robot.jd_adzone_name = item.adzone_name; robot.jd_adzone_pid = item.adzone_pid; robot.jd_adzone_pid_cps_name = item.adzone_pid_cps_name; } else if (item.alliance_id == (int)CpsType.多多进宝) { robot.pdd_adzone_name = item.adzone_name; robot.pdd_adzone_pid = item.adzone_pid; robot.pdd_adzone_pid_cps_name = item.adzone_pid_cps_name; } } } } } return new PageControl.SerchResult() { Result = result, Total = total }; }, gridControl2, 40, true, true); label1.Visible = gridView2.RowCount == 0; #endregion } catch (Exception ex) { ShowError(ex); } } catch (Exception ex) { ShowError(ex); } } private void gridView2_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { try { var selectRow = gridView2.GetSelectedRows()[0]; var id = this.gridView2.GetRowCellValue(selectRow, "ID").ToString();//获取列的数据 #region 双击单元格设置推广位 if (e.Clicks >= 2) { if (e.Column.FieldName == "tb_adzone_name") { var tgwObj = CpsClient.SelectTuiguangwei(CpsType.阿里妈妈); if (tgwObj != null) { var tgw = tgwObj as Tuiguangwei; var session = ApiClient.GetSession(); var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.阿里妈妈 && f.custom_type == Resources.SoftwareType && f.robot_id == int.Parse(id)); if (adzone != null)//数据库中存在的情况 { adzone.adzone_pid_cps_name = tgw.Member.username; adzone.adzone_pid = tgw.Pid; adzone.adzone_name = tgw.Name; session.SaveOrUpdate(adzone); } else { try { adzone = new fl_adzone_info() { custom_type = Resources.SoftwareType, //自定义类型 adzone_name = tgw.Name, //推广位名称 adzone_pid = tgw.Pid, //推广位pid adzone_pid_cps_name = tgw.Member.username, //推广位cps名称 alliance_id = (int)CpsType.阿里妈妈, //联盟id robot_id = int.Parse(id), //机器人id group_id = string.Empty, //群id member_id = 0, //私人id is_download = false, //不下载 onoff = false //不禁用 }; session.Insertable(adzone).ExecuteReturnEntity(); if (0 == adzone.id) throw new Exception("对不起,推广位设置异常,请稍后重试!"); } catch (Exception ex) { ShowError(ex); } } pageControl2.GotoPage(1); label2.Visible = gridView1.RowCount == 0; session.FindAdzoneInfos(true); } } else if (e.Column.FieldName == "jd_adzone_name") { var tgwObj = CpsClient.SelectTuiguangwei(CpsType.京东联盟); if (tgwObj != null) { var tgw = tgwObj as Tuiguangwei; var session = ApiClient.GetSession(); var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.京东联盟 && f.custom_type == Resources.SoftwareType && f.robot_id == int.Parse(id)); if (adzone != null)//数据库中存在的情况 { adzone.adzone_pid_cps_name = tgw.Member.username; adzone.adzone_pid = tgw.Pid; adzone.adzone_name = tgw.Name; session.SaveOrUpdate(adzone); } else { try { adzone = new fl_adzone_info() { custom_type = Resources.SoftwareType, //自定义类型 adzone_name = tgw.Name, //推广位名称 adzone_pid = tgw.Pid, //推广位pid adzone_pid_cps_name = tgw.Member.username, //推广位cps名称 alliance_id = (int)CpsType.京东联盟, //联盟id robot_id = int.Parse(id), //机器人id group_id = string.Empty, //群id member_id = 0, //私人id is_download = false, //不下载 onoff = false //不禁用 }; session.Insertable(adzone).ExecuteReturnEntity(); if (0 == adzone.id) throw new Exception("对不起,推广位设置异常,请稍后重试!"); } catch (Exception ex) { ShowError(ex); } } pageControl2.GotoPage(1); label2.Visible = gridView1.RowCount == 0; session.FindAdzoneInfos(true); } } else if (e.Column.FieldName == "pdd_adzone_name") { var tgwObj = CpsClient.SelectTuiguangwei(CpsType.多多进宝); if (tgwObj != null) { var tgw = tgwObj as Tuiguangwei; var session = ApiClient.GetSession(); var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.多多进宝 && f.custom_type == Resources.SoftwareType && f.robot_id == int.Parse(id)); if (adzone != null)//数据库中存在的情况 { adzone.adzone_pid_cps_name = tgw.Member.username; adzone.adzone_pid = tgw.Pid; adzone.adzone_name = tgw.Name; session.SaveOrUpdate(adzone); } else { try { adzone = new fl_adzone_info() { custom_type = Resources.SoftwareType, //自定义类型 adzone_name = tgw.Name, //推广位名称 adzone_pid = tgw.Pid, //推广位pid adzone_pid_cps_name = tgw.Member.username, //推广位cps名称 alliance_id = (int)CpsType.多多进宝, //联盟id robot_id = int.Parse(id), //机器人id group_id = string.Empty, //群id member_id = 0, //私人id is_download = false, //不下载 onoff = false //不禁用 }; session.Insertable(adzone).ExecuteReturnEntity(); if (0 == adzone.id) throw new Exception("对不起,推广位设置异常,请稍后重试!"); } catch (Exception ex) { ShowError(ex); } } pageControl2.GotoPage(1); label2.Visible = gridView1.RowCount == 0; session.FindAdzoneInfos(true); } } } #endregion #region 开关单元格双击修改状态 if (e.Column.FieldName == "onoff") { if (e.Clicks == 1) { if (!(bool)e.CellValue && MessageBox.Show("该微信推广位确定禁用?", "系统提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; var session = ApiClient.GetSession(); var adzones = session.FindAdzoneInfos().Where(f => f.custom_type == Resources.SoftwareType && f.robot_id == int.Parse(id)).ToList(); if (adzones != null && adzones.Count != 0)//数据库中存在 { var onoff = adzones[0].onoff; foreach (var item in adzones) { item.onoff = !onoff; } } session.Saveable(adzones).ExecuteCommand(); pageControl2.GotoPage(1); label2.Visible = gridView1.RowCount == 0; session.FindAdzoneInfos(true); } } #endregion } catch (Exception ex) { ShowError(ex); } } private void gridView2_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { try { if ((e.Column.FieldName == "tb_adzone_name" || e.Column.FieldName == "jd_adzone_name" || e.Column.FieldName == "pdd_adzone_name") && (e.Value == null || string.IsNullOrEmpty(e.Value.ToString()))) e.DisplayText = "双击设置"; } catch (Exception ex) { ShowError(ex); return; } } private void 删除选中项ToolStripMenuItem_Click(object sender, EventArgs e) { try { var rownumber = gridView1.GetSelectedRows().ToList();//获取选中行号; if (rownumber != null & rownumber.Count != 0) { List ids = new List(); foreach (var item in rownumber) { ids.Add("'" + gridView1.GetRowCellValue(item, "id").ToString() + "'");//根据行号获取相应行的数据 } var session = ApiClient.GetSession(); session.ExcuteSQL("delete from fl_plugin_accuratecircle_dataInfos where id in (" + string.Join(",", ids) + ")"); pageControl1.GotoPage(1); ShowSuccess("删除成功"); } } catch (Exception ex) { ShowError(ex); } } private void 删除所有已发ToolStripMenuItem_Click(object sender, EventArgs e) { RemoveGoodsInfos("delete from fl_plugin_accuratecircle_dataInfos where state = 0"); } private void 删除所有数据ToolStripMenuItem_Click(object sender, EventArgs e) { RemoveGoodsInfos("delete from fl_plugin_accuratecircle_dataInfos"); } private void RemoveGoodsInfos(string sql) { try { var session = ApiClient.GetSession(); session.ExcuteSQL(sql); pageControl1.GotoPage(1); ShowSuccess("删除成功"); } catch (Exception ex) { ShowError(ex); } } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Util.Save(Class1.Config); } private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { try { if (xtraTabControl1.SelectedTabPageIndex == 0) pageControl1.GotoPage(); } catch (Exception) { } } } }