public override void Run() { GlobalConfig.MonitorPlatformManageConnectString = AppConfig["MonitorPlatformManageConnectString"]; SqlHelper.ExcuteSql(GlobalConfig.MonitorPlatformManageConnectString, (c) => { tb_database_config_dal dal = new tb_database_config_dal(); var list = dal.GetModelList(c); UnityLogConnectString = XXF.BaseService.Monitor.SystemRuntime.DbShardingHelper.GetDataBase(list, XXF.BaseService.Monitor.SystemRuntime.DataBaseType.UnityLog); }); List <tb_user_model> users = new List <tb_user_model>(); SqlHelper.ExcuteSql(GlobalConfig.MonitorPlatformManageConnectString, (c) => { tb_user_dal dal = new tb_user_dal(); users = dal.GetAllUsers(c); }); foreach (var u in users) { if (!string.IsNullOrWhiteSpace(u.useremail)) { if (u.lastsenderrortime.AddMinutes(u.errorsendintervaltime) < DateTime.Now) { List <tb_error_log_model> errors = new List <tb_error_log_model>(); SqlHelper.ExcuteSql(UnityLogConnectString, (c) => { tb_error_log_dal dal = new tb_error_log_dal(); if (u.userrole == (byte)XXF.BaseService.Monitor.SystemRuntime.EnumUserRole.Admin) { errors = dal.GetUserErrors(c, u.lastsenderrortime, "", "", 50); } else { errors = dal.GetUserErrors(c, u.lastsenderrortime, u.username.Trim(), u.userstaffno.Trim(), 50); } }); SendEmail(errors, u.useremail); SqlHelper.ExcuteSql(GlobalConfig.MonitorPlatformManageConnectString, (c) => { tb_user_dal dal = new tb_user_dal(); dal.UpdateLastErrorSendTime(c, u.id, DateTime.Now); }); } } } }
public override void Run() { var tempinfo = this.OpenOperator.GetDataBaseTempData <TaskManageErrorSendTaskTempInfo>(); if (tempinfo == null) { tempinfo = new TaskManageErrorSendTaskTempInfo(); tempinfo.LastLogID = 0; } //扫描 List <tb_senderror_model> senderrormodels = new List <tb_senderror_model>(); List <tb_user_model> usermodels = new List <tb_user_model>(); SqlHelper.ExcuteSql(this.SystemRuntimeInfo.TaskConnectString, (c) => { tb_error_dal errordal = new tb_error_dal(); senderrormodels = errordal.GetErrors(c, tempinfo.LastLogID); tb_user_dal userdal = new tb_user_dal(); usermodels = userdal.GetAllUsers(c); }); foreach (var u in usermodels) { if (string.IsNullOrEmpty(u.useremail)) { continue; } if (u.userrole == (int)EnumUserRole.Admin) { SendEmail(senderrormodels, u.useremail); } else { SendEmail(senderrormodels.Where(c => c.taskcreateuserid == u.id).ToList(), u.useremail); } } if (senderrormodels.Count > 0) { int maxid = senderrormodels.Max(c => c.error_model.id); tempinfo.LastLogID = maxid; this.OpenOperator.Log(string.Format("本次处理错误日志{0}条", senderrormodels.Count)); } this.OpenOperator.SaveDataBaseTempData(tempinfo); }