public void Execute(IJobExecutionContext context)
        {
            try
            {
                _logger.Info("CollectNeedCombineInUserTable开始执行:" + DateTime.Now.ToString());

                //获取手机号不为空 and 用户状态Isactive=true 的情况下手机号重复的用户
                var stepOne_GetNeedCombineInUserTable = UACManager.GetNeedCombineInUserTable();
                if (null == stepOne_GetNeedCombineInUserTable)
                {
                    _logger.Info("CollectNeedCombineInUserTable已经没有需要合并UserId:" + DateTime.Now.ToString());
                }
                else
                {
                    _logger.Info("CollectNeedCombineInUserTable已经得到所有元数据,一共有" + stepOne_GetNeedCombineInUserTable.Count() + "条重复数据需要合并," + DateTime.Now.ToString());
                    //针对每个mobile,选出一个主UserId,其他全是需要更新的UserId
                    var stepTwo_CombineResultList = UACManager.FilterPrimaryUserIdsViaPhone(stepOne_GetNeedCombineInUserTable);
                    _logger.Info("CollectNeedCombineInUserTable已经完成筛选主UserId的逻辑" + DateTime.Now.ToString());

                    _logger.Info("CollectNeedCombineInUserTable开始执行需要合并账号插入数据库的操作." + DateTime.Now.ToString());
                    //把筛选出的结果集上传到数据库
                    var stepThree_InsertNeedCombineUserIdViaPhone = UACManager.InsertNeedCombineUserIdsViaPhone(stepTwo_CombineResultList);

                    if (!stepThree_InsertNeedCombineUserIdViaPhone)
                    {
                        _logger.Info("CollectNeedCombineInUserTable插入结果集失败");
                    }
                }
                _logger.Info("CollectNeedCombineInUserTable执行结束");
            }
            catch (Exception ex)
            {
                _logger.Info($"CollectNeedCombineInUserTable:运行异常=》{ex}");
            }
        }
Beispiel #2
0
 public void Execute(IJobExecutionContext context)
 {
     try
     {
         _logger.Info("BatchLogOffUserJob开始执行:" + DateTime.Now.ToString());
         var result = UACManager.BatchLogOffUser();
         _logger.Info("BatchLogOffUserJob执行结束");
     }
     catch (Exception ex)
     {
         _logger.Info($"BatchLogOffUserJob:运行异常=》{ex}");
     }
 }
Beispiel #3
0
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                _logger.Info("DupUserMonitorJob开始执行:" + DateTime.Now.ToString());

                //获取手机号不为空 and 用户状态Isactive=true 的情况下手机号重复的用户
                var stepOne_GetNeedCombineInUserTable = UACManager.GetNeedCombineInUserTable();
                if (null == stepOne_GetNeedCombineInUserTable)
                {
                    _logger.Info("DupUserMonitorJob今天没有需要合并UserId:" + DateTime.Now.ToString());
                }
                else
                {
                    var body = new StringBuilder(10000);
                    body.Append(EmailStyle);
                    body.Append(EmailTemplate);
                    foreach (var item in stepOne_GetNeedCombineInUserTable)
                    {
                        if (item != null)
                        {
                            body.Append("<tr>");
                            body.Append($"<td>{item.UserId}</td>");
                            body.Append($"<td>{item.MobileNumber}</td>");
                            body.Append($"<td>{item.IsMobileVerify}</td>");
                            body.Append($"<td>{item.CreatedTime}</td>");
                            body.Append($"<td>{item.RegisteredDateTime}</td>");
                            body.Append($"<td>{item.LastLogonTime}</td>");
                            body.Append($"<td>{item.UpdatedTime}</td>");
                            body.Append($"<td>{item.TempChannel}</td>");
                        }
                    }

                    body.Append("</tbody></table>");

                    var message = body.ToString();
                    Tuhu.TuhuMessage.SendEmail("【Warning】出现" + stepOne_GetNeedCombineInUserTable.Count() + "个手机重复账号EOM",
                                               "[email protected];[email protected]",
                                               message);
                }
            }
            catch (Exception ex)
            {
                _logger.Info($"DupUserMonitor:运行异常=》{ex}");
            }
        }
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                _logger.Info("UserAuthMultiBindMonitorJob开始执行:" + DateTime.Now.ToString());
                var result_GetCount_UnionIdBindMultiUserIds = UACManager.GetCount_UnionIdBindMultiUserIds();
                var result_GetCount_UserIdBindMultiUnionIds = UACManager.GetCount_UserIdBindMultiUnionIds();
                if (result_GetCount_UnionIdBindMultiUserIds == 0 && result_GetCount_UserIdBindMultiUnionIds == 0)
                {
                    _logger.Info("UserAuthMultiBindMonitorJob今天没有出现绑定异常:" + DateTime.Now.ToString());
                }
                else
                {
                    var    body  = new StringBuilder(10000);
                    string issue = string.Empty;
                    if (result_GetCount_UnionIdBindMultiUserIds > 0)
                    {
                        issue += string.Format(EmailTrBase, "UnionId绑定多UserId监控", result_GetCount_UnionIdBindMultiUserIds.ToString(), Sql_UnionIdBindMultiUserIds);
                    }
                    if (result_GetCount_UserIdBindMultiUnionIds > 0)
                    {
                        issue += string.Format(EmailTrBase, "UserId绑定多UnionId监控", result_GetCount_UserIdBindMultiUnionIds.ToString(), Sql_UserIdBindMultiUnionIds);
                    }
                    body.Append(string.Format(EmailBaseStyle, issue));

                    var message = body.ToString();
                    Tuhu.TuhuMessage.SendEmail("【Warning】出现用户授权绑定多账号问题EOM",
                                               "[email protected];[email protected];[email protected]",
                                               message);
                }
                _logger.Info("UserAuthMultiBindMonitorJob执行结束:" + DateTime.Now.ToString());
            }
            catch (Exception ex)
            {
                _logger.Info($"UserAuthMultiBindMonitor:运行异常=》{ex}");
            }
        }
Beispiel #5
0
        private void OnLaunchPrivilegedExecutable(object sender, EventArgs e)
        {
            int exitCode;

            try
            {
                exitCode = UACManager.ExecutePrivilegedProcess(GetPrivilegedExePath());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            if (exitCode == 0)
            {
                MessageBox.Show("PrivilegedExe has been run successfully", "Write To Program Files", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show(String.Format("PrivilegedExe has returned with error code: {0}", exitCode),
                                "Write To Program Files", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #6
0
        public void Execute(IJobExecutionContext context)
        {
            _logger.Info("CleanDupYewuUser开始执行:" + DateTime.Now.ToString());
            try
            {
                //获取YewuUser表里uid\3rdId\channel都一样的数据
                var stepOne_GetDupYewuUsers = UACManager.GetDupYewuUsers();
                if (null == stepOne_GetDupYewuUsers)
                {
                    _logger.Info("CleanDupYewuUser没有需要合并的记录:" + DateTime.Now.ToString());
                }
                else
                {
                    //针对每组相同UserId+ThirdpartyId+Channel,选择pkid最小的,其余记录下来,然后删除
                    var stepTwo_CollectNeedDeleteList = UACManager.CollectNeedDeleteDupYewuUserList(stepOne_GetDupYewuUsers);

                    if (UACManager.CheckSwitch(runtimeSwitch)) //如果开关开着,跑一条,如果开关关了跑全部
                    {
                        stepTwo_CollectNeedDeleteList = stepTwo_CollectNeedDeleteList.Take(1).ToList();
                    }

                    //删除stepTwo数据,并记录数据
                    var stepThree_DeleteAndRecord = UACManager.DeleteAndRecordDupYewuUsers(stepTwo_CollectNeedDeleteList);
                    if (!stepThree_DeleteAndRecord)
                    {
                        _logger.Info("CleanDupYewuUser清理重复三方业务表数据失败");
                    }
                }
                _logger.Info("CleanDupYewuUser执行结束");
            }
            catch (Exception ex)
            {
                _logger.Info($"CleanDupYewuUser:运行异常=》{ex}");
            }
            _logger.Info("CleanDupYewuUser执行结束");
        }
        public void Execute(IJobExecutionContext context)
        {
            _logger.Info("CollectUserDailyIncJob开始执行:" + DateTime.Now.ToString());
            if (UACManager.CheckSwitch(runtimeSwitch))
            {
                DateTime      startTime = DateTime.Now.Date.AddDays(-30);
                DateTime      endTime   = DateTime.Now.Date.AddDays(-1);
                List <string> dateList  = new List <string>();

                for (DateTime date = startTime; date <= endTime; date = date.AddDays(1))
                {
                    dateList.Add(date.ToString("yyyy-MM-dd"));
                }

                #region 多线程,处理批量日期
                //try
                //{
                //    Dictionary<int, List<Task>> taskDic = new Dictionary<int, List<Task>>();

                //    for (int index = 0; index < dateList.Count; index++)
                //    {
                //        var task = new Task(() =>
                //        {
                //            UACManager.CollectUserTableDailyInc(dateList[index]);
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var num = index / 10;
                //        if (taskDic.ContainsKey(num) && taskDic[num] != null)
                //        {
                //            taskDic[num].Add(task);
                //        }
                //        else
                //        {
                //            taskDic[num] = new List<Task>() { task };
                //        }
                //    }

                //    foreach (var tasks in taskDic.Values)
                //    {
                //        foreach (var item in tasks)
                //        {
                //            item.Start();
                //        }
                //        Task.WaitAll(tasks.ToArray());
                //    }
                //}
                //catch (AggregateException ex)
                //{
                //    foreach (Exception inner in ex.InnerExceptions)
                //    {
                //        _logger.Info($"CollectUserDailyIncJob:运行异常=》{ex}");
                //    }
                //}
                #endregion
                #region 单线程,处理批量日期
                try
                {
                    foreach (var date in dateList)
                    {
                        UACManager.CollectUserTableDailyInc(date);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Info($"CollectUserDailyIncJob:运行异常=》{ex}");
                    Tuhu.TuhuMessage.SendEmail("【用户日增长Warning】批量执行从" +
                                               startTime.ToString("yyyy-MM-dd") + "到" +
                                               endTime.ToString("yyyy-MM-dd") + "时,脚本异常EOM",
                                               "[email protected];[email protected]",
                                               "请检查数据和日志." + ex);
                }
                #endregion
            }
            else
            {
                //单线程,及时收集前一天数据
                try
                {
                    DateTime collectTime = DateTime.Now.Date.AddDays(-1);
                    UACManager.CollectUserTableDailyInc(collectTime.ToString("yyyy-MM-dd"));
                }
                catch (Exception ex)
                {
                    _logger.Info($"CollectUserDailyIncJob:运行异常=》{ex}");
                    Tuhu.TuhuMessage.SendEmail("【用户日增长Warning】日期" + DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd") + "脚本执行异常EOM",
                                               "[email protected];[email protected]",
                                               "请检查数据和日志." + ex);
                }
            }
            _logger.Info("CollectUserDailyIncJob执行结束");
        }
        void IJob.Execute(IJobExecutionContext context)
        {
            _logger.Info("UserCombineViaPhoneAndRecordLogJob开始执行:" + DateTime.Now.ToString());
            if (UACManager.CheckSwitch(runtimeSwitch))
            {
                //多线程执行模块
                //try
                //{
                //    //获取UAC_NeedCombineUserId表里IsOperateSuccess=0(即操作失败,或者还没执行)的数据
                //    var stepOne_GetNeedCombineUserIdViaPhoneList = UACManager.GetNeedCombineUserIdViaPhoneList();
                //    if (null == stepOne_GetNeedCombineUserIdViaPhoneList)
                //    {
                //        _logger.Info("UserCombineViaPhoneAndRecordLogJob没有需要合并的记录:" + DateTime.Now.ToString());
                //    }
                //    else
                //    {
                //        var task_0 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "0");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_1 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "1");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_2 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "2");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_3 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "3");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_4 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "4");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_5 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "5");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_6 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "6");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_7 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "7");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_8 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "8");
                //            System.Threading.Thread.Sleep(1000);
                //        });
                //        var task_9 = new Task(() =>
                //        {
                //            UACManager.Task_CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList,
                //            runtimeSwitch, "9");
                //            System.Threading.Thread.Sleep(1000);
                //        });

                //        task_2.Start();
                //        task_3.Start();
                //        task_4.Start();
                //        task_5.Start();
                //        task_6.Start();
                //        task_7.Start();
                //        task_8.Start();
                //        task_9.Start();

                //        Task.WaitAll(task_2, task_3, task_4, task_5, task_6, task_7, task_8, task_9);
                //    }
                //}
                //catch (AggregateException ex)
                //{
                //    foreach (Exception inner in ex.InnerExceptions)
                //    {
                //        _logger.Info($"UserCombineViaPhoneAndRecordLogJob:运行异常=》{inner.Message}");
                //    }
                //}
                //单线程模块
                try
                {
                    //获取UAC_NeedCombineUserId表里IsOperateSuccess=0(即操作失败,或者还没执行)的数据
                    var stepOne_GetNeedCombineUserIdViaPhoneList = UACManager.GetNeedCombineUserIdViaPhoneList();
                    if (null == stepOne_GetNeedCombineUserIdViaPhoneList)
                    {
                        _logger.Info("UserCombineViaPhoneAndRecordLogJob没有需要合并的记录:" + DateTime.Now.ToString());
                    }
                    else
                    {
                        //循环遍历,对于每条记录,
                        //如果所有表都更新成功,更新IsOperateSuccess = 1,记录所有表操作日志
                        //否者,记录报错,回滚操作,记录失败
                        //stepTwo_CombineAndRecordAction计数了需要完成\成功\失败的行数
                        if (null == stepOne_GetNeedCombineUserIdViaPhoneList || !stepOne_GetNeedCombineUserIdViaPhoneList.Any())
                        {
                            _logger.Info("UserCombineViaPhoneAndRecordLogJob所有测试数据已经跑完" + DateTime.Now.ToString());
                        }
                        else
                        {
                            var stepTwo_CombineAndRecordAction = UACManager.CombineAndRecordActionForPhoneCombile(stepOne_GetNeedCombineUserIdViaPhoneList, runtimeSwitch);
                            _logger.Info("UserCombineViaPhoneAndRecordLogJob:" + stepTwo_CombineAndRecordAction);
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.Info($"UserCombineViaPhoneAndRecordLogJob:运行异常=》{ex}");
                }
            }
            _logger.Info("UserCombineViaPhoneAndRecordLogJob执行结束");
        }