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 Api.Framework; using EncourageUser.Entitys; using Api.Framework.Tools; using Api.Framework.Model; namespace EncourageUser { public partial class TaskForm : BaseForm { /// /// 需要发送的用户 /// private List mList = null; public TaskForm(List mList) { InitializeComponent(); dateTimePicker1.Value = DateTime.Now.AddHours(1); dateTimePicker2.Value = DateTime.Parse($"{DateTime.Now.ToString("yyyy-MM-dd")} 19:00:00"); this.mList = mList; } public fl_qunfa_task eTask; public TaskForm(fl_qunfa_task eTask) { InitializeComponent(); this.eTask = eTask; } private void TaskForm_Load(object sender, EventArgs e) { try { long select = 0; if (eTask != null) { numericUpDown1.Value = eTask.interval; numericUpDown2.Value = eTask.totalSentCount; numericUpDown3.Value = eTask.restSendCount; numericUpDown4.Value = eTask.restInterval; dateTimePicker1.Value = eTask.startTime.Date; dateTimePicker2.Value = eTask.endTime.Date; //dateTimePicker3.Value = DateTime.Parse(eTask.startTime.Date.ToString("yyyy-MM-dd") + " " + eTask.startTime.ToString("HH:mm:ss")); //dateTimePicker4.Value = DateTime.Parse(eTask.endTime.Date.ToString("yyyy-MM-dd") + " " + eTask.endTime.ToString("HH:mm:ss")); dateTimePicker3.Value = DateTime.Parse(eTask.startTime.ToString("yyyy-MM-dd HH:mm:ss")); dateTimePicker4.Value = DateTime.Parse(eTask.endTime.ToString("yyyy-MM-dd HH:mm:ss")); select = eTask.id; } var index = 0; var session = ApiClient.GetSession(); var messs = session.Find("select * from fl_plugin_encourage_user_messs"); if (messs == null || messs.Count != 0) { var list = new List(); for (int i = 0; i < messs.Count; i++) { if (messs[i].id == select) index = i; list.Add($"{messs[i].note.Trim()}"); } this.comboBoxEdit1.Properties.Items.AddRange(list); comboBoxEdit1.SelectedIndex = index; comboBoxEdit1.Tag = messs; } else { XtraMessageBox.Show($"当前还未设置发送的内容", "温馨提示", MessageBoxButtons.OK); this.Close(); } } catch (Exception ex) { ShowError(ex); } } private void simpleButton2_Click(object sender, EventArgs e) { this.Close(); } private void simpleButton1_Click(object sender, EventArgs e) { try { var data1 = dateTimePicker1.Value.Date; var data2 = dateTimePicker2.Value.Date; if (data1 > data2) throw new Exception("结束日期不能小于开始日期"); var time1 = dateTimePicker3.Value.ToString("HH:mm:ss"); var time2 = dateTimePicker4.Value.ToString("HH:mm:ss"); if (DateTime.Parse("2000-01-01 " + time1) >= DateTime.Parse("2000-01-01 " + time2)) throw new Exception("结束时间不能小于等于开始时间"); var messs = comboBoxEdit1.Tag as List; if (messs == null) throw new Exception("数据异常,请稍后重试"); var mess = messs.FirstOrDefault(f => f.note.Trim() == comboBoxEdit1.Text); if (mess == null) throw new Exception("数据异常,请稍后重试"); var session = ApiClient.GetSession(); if (eTask == null) { eTask = new fl_qunfa_task(); eTask.id = session.Insertable(eTask).ExecuteReturnIdentity(); var sendNum = HandlerUser(); eTask.sendnum = 0; eTask.allsendnum = eTask.unsendnum = sendNum; eTask.execType = ExecType.未执行完毕; } eTask.interval = (int)numericUpDown1.Value; eTask.totalSentCount = (int)numericUpDown2.Value; eTask.restSendCount = (int)numericUpDown3.Value; eTask.restInterval = (int)numericUpDown4.Value; eTask.startTime = DateTime.Parse(data1.ToString("yyyy-MM-dd") + " " + time1); eTask.endTime = DateTime.Parse(data2.ToString("yyyy-MM-dd") + " " + time2); eTask.messid = mess.id; if (eTask.id == 0) eTask.id = session.Insertable(eTask).ExecuteReturnIdentity(); else session.Updateable(eTask).ExecuteCommand(); TaskJob.Abort(eTask.id); this.Close(); } catch (Exception ex) { ShowError(ex); } } /// /// 将用户添加到任务中 /// /// private int HandlerUser() { try { List list = new List(); foreach (var member in mList) { list.Add(new fl_qunfa_user() { chattype = member.robot_type, robotname = member.robot_name, taskid = eTask.id, userid = member.id, username = member.username, issend = false }); } ApiClient.GetSession().Insertable(list).ExecuteCommand(); return list.Count; } catch (Exception ex) { EventClient.OnEvent("整理发送用户", $"{ex.Message} - {ex.StackTrace}"); } return 0; } } }