Beispiel #1
0
        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);
        }