using AutoCheckSMS.Common; using Microsoft.Practices.EnterpriseLibrary.Data; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AutoCheckSMS { /// /// 数据库操作类 /// public class SQLHelper { Database da = DatabaseFactory.CreateDatabase("ConnectionString"); private static SQLHelper _instance; public static SQLHelper Instance { get { if (_instance == null) { _instance = new SQLHelper(); } return _instance; } } #region 审核操作 /// /// 获取待审核内容 /// /// public List GetSmsConent() { List list = new List(); string[] Out = System.Configuration.ConfigurationManager.AppSettings["OutUserid"].Trim().Split(','); try { string time = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm"); string sql = $"select TaskID,UserID,MsgContent,ReadError,IsAudit from tbl_sms_task where CreateTime>= '{time}'and IsAudit=0 and ReadError like '%分包完成%' and MsgContent not like '%回_退%' and MsgContent not like '%退订%' and MsgContent not like '%退_T%' and MsgContent not like '%.c%' and MsgContent not like '%点对点%')"; DataSet ds = da.ExecuteDataSet(CommandType.Text, sql); DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (!Out.Contains(dr["UserID"].ToString().Trim())) { int taskid = int.Parse(dr["TaskID"].ToString()); int userid = int.Parse(dr["UserID"].ToString()); string content = dr["MsgContent"].ToString(); int isaudit = int.Parse(dr["IsAudit"].ToString()); list.Add(new tbl_sms_task() { TaskID = taskid, UserID = userid, MsgContent = content, IsAudit = isaudit }); } else { Console.WriteLine($"存在过滤ID:{dr["UserID"].ToString().Trim()},跳过该ID内容"); Log4netService.Debug($"【审核操作】存在过滤ID:{dr["UserID"].ToString().Trim()},跳过该ID内容:{dr["MsgContent"]}"); } } } } catch (Exception ex) { Log4netService.Error($"获取待审核内容异常:{ex.Message}"); } return list; } /// /// 更新审核状态 /// /// /// public int UpdateSmsTask(int audit,int taskids) { try { string sql = "update tbl_sms_task set IsAudit=@isAudit where taskid in (@taskids)"; SqlCommand cmd = new SqlCommand(sql); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@isAudit", Value = audit }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@taskids", Value = taskids }); return da.ExecuteNonQuery(cmd); } catch (Exception ex) { Log4netService.Error($"更新状态异常:{ex.Message}"); } return 0; } #endregion #region 模板操作 /// /// 获取手动审核通过的内容 /// /// public List GetSmsLogContent() { List list = new List(); try { string[] OutUserid = System.Configuration.ConfigurationManager.AppSettings["OutUserid"].Trim().Split(','); string time = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm"); string sql = $"select TaskID,UserID,MsgContent,ReadError,IsAudit from tbl_sms_task_log where CreateTime>= '{time}' and issend=2 and (MsgContent not like '%退订%' and MsgContent not like '%.c%' and MsgContent not like '%点对点%') and IsAudit=2"; DataSet ds = da.ExecuteDataSet(CommandType.Text, sql); DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { foreach (var item in OutUserid) { if (dr["UserID"].ToString() != item) { int taskid = int.Parse(dr["TaskID"].ToString()); int userid = int.Parse(dr["UserID"].ToString()); string content = dr["MsgContent"].ToString(); int isaudit = int.Parse(dr["IsAudit"].ToString()); list.Add(new tbl_sms_task() { TaskID = taskid, UserID = userid, MsgContent = content, IsAudit = isaudit }); } else { Console.WriteLine($"存在过滤ID:{item},跳过该ID内容"); Log4netService.Debug($"【模板操作】存在过滤ID:{item},跳过该ID内容:{dr["MsgContent"]}"); } } } } } catch (Exception ex) { Log4netService.Error($"获取已审核的内容异常:{ex.Message}"); } return list; } /// /// 获取模板 /// /// public List GetTemplates() { List list = new List(); string sql = $"select id,template,matchType from A_template "; DataSet ds = da.ExecuteDataSet(CommandType.Text, sql); DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { int id = int.Parse(dr["id"].ToString()); string template = dr["template"].ToString(); int matchType = int.Parse(dr["matchType"].ToString()); list.Add(new A_template() { Id=id,Template=template,MatchType= matchType }); } } return list; } /// /// 添加模板 /// /// /// /// public int AddTemplate(string template,int matchType) { string sql = "insert into A_template (template,matchType) values (@template,@matchType)"; SqlCommand cmd = new SqlCommand(sql); cmd.Parameters.Add(new SqlParameter() {ParameterName="@template",Value=template }); cmd.Parameters.Add(new SqlParameter() { ParameterName= "@matchType", Value=matchType}); return da.ExecuteNonQuery(cmd); } #endregion } }