Example #1
0
        public static TaskConfigModel FetchTaskDetail(Guid taskId)
        {
            var result      = DalTask.GetTaskInfo(taskId);
            var triggerData = DalTask.GetTriggerTaskList(taskId);

            if (result == null)
            {
                return(null);
            }
            result.ConditionList = DalTask.GetConditionList(taskId);
            foreach (var item in result.ConditionList)
            {
                if (item.ActionName.Equals("11FinishTask", StringComparison.CurrentCultureIgnoreCase) && Guid.TryParse(item.SpecialPara, out var value))
                {
                    item.ChildName = DalTask.GetTaskInfo(value)?.TaskName;
                }
            }
            result.CouponList  = DalTask.GetCouponList(taskId);
            result.TriggerList = triggerData.Where(g => g.TriggerType == 1 && !g.IsTimeout).Select(g => new TaskSimpleModel
            {
                TaskId   = g.TriggerTaskId,
                TaskName = g.TriggerTaskName
            }).ToList();
            result.DisplayTriggerList = triggerData.Where(g => g.TriggerType == 0 && !g.IsTimeout).Select(g => new TaskSimpleModel
            {
                TaskId   = g.TriggerTaskId,
                TaskName = g.TriggerTaskName
            }).ToList();
            result.TimeoutTriggerList = triggerData.Where(g => g.TriggerType == 0 && g.IsTimeout).Select(g => new TaskSimpleModel
            {
                TaskId   = g.TriggerTaskId,
                TaskName = g.TriggerTaskName
            }).ToList();
            return(result);
        }
Example #2
0
        private static void DoJob()
        {
            const int step  = 10000;
            var       start = 0;
            var       count = DalTask.GetWXBindUserCount();

            while (start < count)
            {
                var sw = new Stopwatch();
                sw.Start();
                var info = DalTask.GetWXBindUserList(start, step);
                start += step;
                if (info.Any())
                {
                    foreach (var item in info)
                    {
                        TuhuNotification.SendNotification("notification.TaskActionQueue", new Dictionary <string, string>
                        {
                            ["UserId"]     = item.ToString("D"),
                            ["ActionName"] = "4BindWX"
                        });
                        Thread.Sleep(100);
                    }
                }
                sw.Stop();
                Logger.Info($"会员任务-->绑定微信异常数据补偿Job-->第{start / step + 1}批,用时{sw.ElapsedMilliseconds}毫秒,共{count / step + 1}批");
            }
        }
Example #3
0
        public void Create(TaskEntity test)
        {
            DalTask taskToCreate = MapperBusinessConfiguration.MapperInstance.Map <TaskEntity, DalTask>(test);

            taskRepository.Create(taskToCreate);
            uow.Commit();
        }
        public void Update(DalTask entity)
        {
            Task toDoForm = MapperDomainConfiguration.MapperInstance.Map <DalTask, Task>(entity);

            context.Set <Task>()
            .Where(form => form.Id == toDoForm.Id)
            .Update(updated => toDoForm);
        }
Example #5
0
        public void Update(DalTask e)
        {
            var task = _context.Set <Task>().FirstOrDefault(t => t.Id == e.Id);

            task.Title        = e.Title;
            task.Description  = e.Description;
            task.DeadlineDate = e.DeadlineDate;
            task.DeadlineTime = e.DeadlineTime;
            task.TotalPoints  = e.TotalPoints;
        }
Example #6
0
 public static bool EditOrderRule(OrderRuleDetailModel request, string Operator)
 {
     if (request.RuleNo == 0)
     {
         return(DalTask.AddOrderRule(request, Operator));
     }
     else
     {
         return(DalTask.UpdateOrderRuleInfo(request));
     }
 }
Example #7
0
        private static void DoJob()
        {
            var taskId1 = new Guid("6cf07554-9b2e-4e18-9c73-5e15c16a801c"); //绑定微信
            var taskId2 = new Guid("6128230d-8a6d-495a-91e2-08fd476d9355"); //关注公众号

            //dev
            //var taskId1=new Guid("6A19450D-A1C1-455F-B49D-06EDEF6A1827");
            //var taskId2=new Guid("5897E3CC-5B7C-49BB-AF5F-22780DDCE234");

            var       start   = 0;
            const int step    = 1000;
            var       maxPkId = 731398;
            var       watcher = new Stopwatch();

            while (start <= maxPkId)
            {
                watcher.Start();
                var data   = DalTask.GetWXTaskInfo(start, step);
                var result = new Tuple <int, int>(0, 0);
                if (data.Any())
                {
                    var data1 = data.Where(g => g.BindType.ToLower().Equals("weixinappopen")).Select(g => g.UserId).Distinct()
                                .ToList();
                    Logger.Info($"绑定微信{data1.Count}条有效数据");
                    if (data1.Any())
                    {
                        var dat2 = DalTask.CheckWxTaskUserId(data1, taskId1, Logger);
                        if (dat2.Any())
                        {
                            result = DalTask.InitUserTaskInfo(dat2, taskId1, "4BindWX", Logger, 2);
                        }
                        Logger.Info($"4BindWX/{result.Item1}/{result.Item2}");
                    }
                    var data2 = data.Where(g => g.BindType.ToLower().Equals("winxin_officialaccount")).Select(g => g.UserId).Distinct()
                                .ToList();
                    Logger.Info($"关注公众号{data2.Count}条有效数据");
                    if (data2.Any())
                    {
                        var dat2 = DalTask.CheckWxTaskUserId(data2, taskId2, Logger);
                        if (dat2.Any())
                        {
                            result = DalTask.InitUserTaskInfo(dat2, taskId2, "5Follow", Logger, 2);
                        }
                        Logger.Info($"5Follow/{result.Item1}/{result.Item2}");
                    }
                }
                start += step;
                watcher.Stop();
                Logger.Info($"微信任务初始化,最大的PKID==>{start + step},第{start / step + 1}批数据,共{maxPkId / step + 1}批,,用时{watcher.ElapsedMilliseconds}毫秒");
                watcher.Reset();
            }
            watcher.Stop();
        }
Example #8
0
 public void AssignTask(DalTask e)
 {
     foreach (var user in e.Users)
     {
         _context.Set <UserTask>().Add(new UserTask()
         {
             UserId          = user.Id,
             TaskId          = e.Id,
             PointsCompleted = 0,
             StatusId        = _context.Set <Status>().FirstOrDefault(s => s.Name == "In progress").Id
         });
     }
 }
Example #9
0
        public void Create(DalTask e)
        {
            var task = new Task()
            {
                Title            = e.Title,
                Description      = e.Description,
                CreationDateTime = e.CreationDateTime,
                DeadlineDate     = e.DeadlineDate,
                DeadlineTime     = e.DeadlineTime,
                TotalPoints      = e.TotalPoints
            };

            _context.Set <Task>().Add(task);
        }
Example #10
0
        private void DoJob()
        {
            var count = DalTask.GetCarUserCount();

            if (count == 0)
            {
                Logger.Warn("查询添加车辆任务初始化用户数量为0");
                return;
            }
            var step  = 3000;
            var start = 0;

            Logger.Info($"查询添加车辆任务初始化数据为{count}条,每批{step}条,共{count / step + 1}批");
            var watcher = new Stopwatch();
            var taskId  = new Guid("4c24109b-2d80-449b-b074-52c877dacfa0");
            //var taskId = new Guid("951BE020-E3A5-40EC-A234-EA67E71E8E90");
            var guidPara = Guid.Empty;
            var Coo      = 0;
            var Coo1     = 0;
            var Coo2     = 0;

            while (start < count)
            {
                var result = new Tuple <int, int>(0, 0);
                watcher.Start();
                var data   = DalTask.GetCarUserList(guidPara, step);
                var dat    = data.Where(g => g.u_user_id != null && g.u_user_id != Guid.Empty && !string.IsNullOrWhiteSpace(g.u_cartype_pid_vid)).Select(g => g.u_user_id.Value).ToList();
                var dat2   = DalTask.CheckTaskUserId(dat, taskId, Logger);
                var count2 = dat2.Count;
                Coo  += count2;
                Coo1 += data.Count;
                Coo2 += dat.Count;
                if (count2 > 0)
                {
                    result = DalTask.InitUserTaskInfo(dat2, taskId, "6AddCar", Logger);
                }
                watcher.Stop();
                start += step;
                Logger.Info($"添加车辆任务初始化,起始GUID==>{guidPara:D},第{start / step + 1}批数据,共{count / step + 1}批,有效数据{count2}条,插入用户任务信息表{result.Item1}条,插入用户任务详情表{result.Item2}条,用时{watcher.ElapsedMilliseconds}毫秒");
                guidPara = data.Last().CarId;
                watcher.Reset();
            }
            Logger.Info($"{Coo1}==>{Coo2}==>{Coo}");
            watcher.Stop();
        }
        public void DoJob()
        {
            var watcher = new Stopwatch();
            var taskId  = new Guid("af1c225b-4601-481e-94a7-43682975511b");
            //var taskId = new Guid("C185431C-6FCB-4F46-8824-98B6DEC5934B");
            var userCount = 18778722;

            //var userCount = 10000000;
            Logger.Info($"共{userCount}条订单信息进行需要首单初始化");
            if (userCount == 0)
            {
                return;
            }
            var step  = 3000;
            var start = 0;

            while (start < userCount)
            {
                watcher.Start();
                var userList = DalTask.GetFirstOrderUserList(start, step);
                var count    = 0;
                var result   = new Tuple <int, int>(0, 0);
                if (userList.Any())
                {
                    var data = userList.Where(g => g.UserId != null && g.UserId != Guid.Empty && (((g.InstallShopId == null || g.InstallShopId == 0) && g.DeliveryStatus == "3.5Signed") || (g.InstallShopId > 0 && g.InstallStatus == "2Installed"))).Select(g => g.UserId.Value).Distinct().ToList();
                    var dat  = DalTask.CheckTaskUserId(data, taskId, Logger);
                    count = dat.Count;
                    if (count > 0)
                    {
                        result = DalTask.InitUserTaskInfo(dat, taskId, "1FirstOrder", Logger);
                    }
                }
                watcher.Stop();
                Logger.Info($"首单任务初始化,最大的PKID==>{start + step},第{start / step + 1}批数据,共{userCount / step + 1}批,有效数据{count}条,插入用户任务表共==>{result.Item1}条,插入用户任务详情==>{result.Item2}条数据,用时{watcher.ElapsedMilliseconds}毫秒");
                //Thread.Sleep(3000);
                watcher.Reset();
                start += step;
            }
            watcher.Stop();
        }
Example #12
0
        private void DoJob()
        {
            var watcher = new Stopwatch();
            var taskId  = new Guid("6128230d-8a6d-495a-91e2-08fd476d9355");//关注公众号TaskId
            //var taskId = new Guid("5897E3CC-5B7C-49BB-AF5F-22780DDCE234");//dev
            const int userCount = 1484709;

            Logger.Info($"共{userCount}条用户信息进行需要首单初始化");
            const int step  = 3000;
            var       start = 0;

            while (start < userCount)
            {
                watcher.Start();
                var userList = DalTask.GetBindWxInfoList(start, step, false);
                var count    = 0;
                var result   = new Tuple <int, int>(0, 0);
                if (userList.Any())
                {
                    var data = userList.Where(g =>
                                              g.AuthSource.ToLower().Equals("weixin") && g.BindingStatus.ToLower().Equals("bound") &&
                                              g.UserId != null &&
                                              !string.IsNullOrWhiteSpace(g.UnionId))
                               .Select(g => g.UserId.Value).Distinct().ToList();
                    var dat = DalTask.CheckTaskUserId(data, taskId, Logger);
                    count = dat.Count;
                    if (count > 0)
                    {
                        result = DalTask.InitUserTaskInfo(dat, taskId, "5Follow", Logger);
                    }
                }
                watcher.Stop();
                Logger.Info(
                    $"关注公众号任务初始化,最大的PKID==>{start + step},第{start / step + 1}批数据,共{userCount / step + 1}批,有效数据{count}条,插入用户任务表共==>{result.Item1}条,插入用户任务详情==>{result.Item2}条数据,用时{watcher.ElapsedMilliseconds}毫秒");
                watcher.Reset();
                start += step;
            }
            watcher.Stop();
        }
Example #13
0
 public static TaskEntity GetBllEntity(this DalTask dalEntity)
 {
     if (dalEntity == null)
     {
         return(null);
     }
     return(new TaskEntity()
     {
         Id = dalEntity.Id,
         IsChecked = dalEntity.IsChecked,
         FromUserId = dalEntity.FromUserId,
         ToUserId = dalEntity.ToUserId,
         DateCreation = dalEntity.DateCreation,
         Name = dalEntity.Name,
         Description = dalEntity.Description,
         //User = dalEntity.User.GetBllEntity(),
         //User1 = dalEntity.User1.GetBllEntity(),
         Missions = dalEntity.Missions != null
         ? dalEntity.Missions.Select(m => m.GetBllEntity()).ToList()
         : null
     });
 }
        private void DoJob()
        {
            var count = DalTask.GetAuthenticationUserCount();

            if (count == 0)
            {
                Logger.Warn("查询车型认证任务初始化用户数量为0");
                return;
            }
            var step  = 10000;
            var start = 0;

            Logger.Info($"查询车型认证任务初始化数据为{count}条,每批{step}条,共{count / step + 1}批");
            var watcher = new Stopwatch();

            while (start < count)
            {
                watcher.Start();
                var data = DalTask.GetAuthenticationUserList(start, step);
                if (data.Any())
                {
                    foreach (var item in data)
                    {
                        TuhuNotification.SendNotification("notification.TaskActionQueue", new Dictionary <string, string>
                        {
                            ["UserId"]     = item.ToString("D"),
                            ["ActionName"] = "7Authentication"
                        });
                        Thread.Sleep(100);
                    }
                }
                watcher.Stop();
                Logger.Info($"车型认证任务初始化,第{start / step + 1}批数据,用时{watcher.ElapsedMilliseconds}毫秒");
                watcher.Reset();
                start += step;
            }
            watcher.Stop();
        }
        private static void DoJob()
        {
            var watcher = new Stopwatch();
            var taskId  = new Guid("6cf07554-9b2e-4e18-9c73-5e15c16a801c");//绑定微信TaskId
            //var taskId = new Guid("6A19450D-A1C1-455F-B49D-06EDEF6A1827");//dev
            const int userCount = 2552500;

            Logger.Info($"共{userCount}条用户信息进行绑定微信初始化");
            const int step  = 3000;
            var       start = 0;

            while (start < userCount)
            {
                watcher.Start();
                var userList = DalTask.GetBindWxInfoList(start, step);
                var count    = 0;
                var result   = new Tuple <int, int>(0, 0);
                if (userList.Any())
                {
                    var data = userList.Where(g =>
                                              g.AuthSource.ToLower().Equals("weixin") && g.BindingStatus.ToLower().Equals("bound") && g.UserId != null)
                               .Select(g => g.UserId.Value).Distinct().ToList();
                    var dat = DalTask.CheckTaskUserId(data, taskId, Logger);
                    count = dat.Count;
                    if (count > 0)
                    {
                        result = DalTask.InitUserTaskInfo(dat, taskId, "4BindWX", Logger);
                    }
                }
                watcher.Stop();
                Logger.Info($"绑定微信任务初始化,最大的PKID==>{start + step},第{start / step + 1}批数据,共{userCount / step + 1}批,有效数据{count}条,插入用户任务表共==>{result.Item1}条,插入用户任务详情==>{result.Item2}条数据,用时{watcher.ElapsedMilliseconds}毫秒");
                watcher.Reset();
                start += step;
            }
            watcher.Stop();
        }
Example #16
0
 public static List <TaskModel> GetTaskListList() => DalTask.GetTaskListList();
Example #17
0
        public static int EditTaskConfig(TaskConfigModel request, string Operator)
        {
            var taskId      = Guid.Empty;
            var result      = true;
            var operate     = default(string);
            var triggerData = request.TriggerList.Select(
                g => new TriggerTaskModel
            {
                TriggerTaskId   = g.TaskId,
                TriggerTaskName = g.TaskName,
                TriggerType     = 1,
                IsTimeout       = false
            })
                              .Union(request.DisplayTriggerList.Select(
                                         g => new TriggerTaskModel
            {
                TriggerTaskId   = g.TaskId,
                TriggerTaskName = g.TaskName,
                TriggerType     = 0,
                IsTimeout       = false
            }))
                              .Union(request.TimeoutTriggerList.Select(
                                         g => new TriggerTaskModel
            {
                TriggerTaskId   = g.TaskId,
                TriggerTaskName = g.TaskName,
                TriggerType     = 0,
                IsTimeout       = true
            }))
                              .ToList();

            foreach (var item in request.ConditionList)
            {
                if (item.ActionName.Equals("10BuyProduct"))
                {
                    var specialpara = new List <string>();
                    var data        = item.SpecialPara.Split(';').Where(g => !string.IsNullOrEmpty(g)).ToList();
                    foreach (var paraItem in data)
                    {
                        if (int.TryParse(paraItem, out var value))
                        {
                            specialpara.Add($"OR{value.ToString("D8")}");
                        }
                        else if (paraItem.StartsWith("OR"))
                        {
                            specialpara.Add(paraItem);
                        }
                    }
                    if (!specialpara.Any())
                    {
                        return(0);
                    }
                    item.SpecialPara = string.Join(";", specialpara);
                }
            }
            using (var dbHelper = Component.Common.DbHelper.CreateDefaultDbHelper())
            {
                dbHelper.BeginTransaction();
                if (request.TaskId == Guid.Empty)
                {
                    request.TaskId = Guid.NewGuid();
                    taskId         = request.TaskId;
                    operate        = "Create";
                    result         = DalTask.AddTaskConfig(request, Operator, dbHelper);
                    if (result)
                    {
                        result = DalTask.AddCondition(request.TaskId, request.ConditionList, dbHelper);
                    }
                    if (result && triggerData.Any())
                    {
                        result = DalTask.AddTriggerTask(request.TaskId, triggerData, dbHelper);
                    }
                    if (result && request.CouponList.Any())
                    {
                        result = DalTask.AddCoupon(request.TaskId, request.CouponList, dbHelper);
                    }
                }
                else
                {
                    taskId  = request.TaskId;
                    operate = "Update";
                    result  = DalTask.UpdateTaskConfig(request, dbHelper);
                    if (result)
                    {
                        result = DalTask.EditCoupon(request.TaskId, request.CouponList, dbHelper);
                    }
                    if (result)
                    {
                        result = DalTask.UpdateTriggerTask(request.TaskId, triggerData, dbHelper);
                    }
                    if (result)
                    {
                        result = DalTask.DeleteCondition(request.TaskId, dbHelper);
                        if (result)
                        {
                            result = DalTask.AddCondition(request.TaskId, request.ConditionList, dbHelper);
                        }
                    }
                }
                if (result)
                {
                    result = RefreshCache();
                    dbHelper.Commit();
                }
                else
                {
                    dbHelper.Rollback();
                    return(2);
                }
                if (result)
                {
                    TaskOprLog(request.TaskId, Operator, operate, JsonConvert.SerializeObject(request));
                }
                return(result ? 1 : 3);
            }
        }
Example #18
0
 public static OrderRuleProductModel FetchProductNameByPID(string PID) => DalTask.FetchProductNameByPID(PID);
Example #19
0
 public static OrderRuleDetailModel FetchOrderRuleInfo(int ruleId) => DalTask.FetchOrderRuleInfo(ruleId);
Example #20
0
 public int CreateTask(DalTask dalTask)
 {
     context.Set <Task>().Add(dalTask.GetORMEntity());
     return(context.Set <Task>().Max(t => t.Id) + 1);
 }
Example #21
0
 public static List <OrdertaskRuleModel> GetRuleInfo() => DalTask.GetRuleInfo();
Example #22
0
 public static IEnumerable <DataAccess.Entity.Category> SelectProductCategory()
 => DataAccess.Entity.Category.Parse(DalTask.SelectProductCategory());
Example #23
0
 public static List <TaskOprLogModel> GetTaskOprLog(Guid taskId)
 => DalTask.GetTaskOprLog(taskId);
Example #24
0
 public static bool TaskOprLog(Guid taskId, string Operator, string operate, string remark)
 => DalTask.TaskOprLog(taskId, Operator, operate, remark);
Example #25
0
 /// <summary>
 /// 校验任务是否作为其他任务的子任务
 /// </summary>
 /// <param name="taskId"></param>
 /// <returns></returns>
 public static bool CheckTaskConfigHasCondition(Guid taskId) => DalTask.CheckTaskConfigHasCondition(taskId);
Example #26
0
 public static int DeleteTaskConfig(Guid taskId) => DalTask.DeleteTaskConfig(taskId);
Example #27
0
 public static List <TaskSimpleModel> GetTaskList(Guid?TaskId) => DalTask.GetTaskList(TaskId);
Example #28
0
 public void Delete(DalTask dalTask)
 {
     context.Set <Task>().Attach(dalTask.GetORMEntity());
     context.Set <Task>().Remove(dalTask.GetORMEntity());
 }
Example #29
0
 public static List <TaskActionModel> GetActionList() => DalTask.GetActionList();
Example #30
0
 public void Update(DalTask dalTask)
 {
     context.Set <ORM.Task>().AddOrUpdate(dalTask.GetORMEntity());
     context.SaveChanges();
 }