예제 #1
0
        public JsonResult EditTaskConfig(TaskConfigModel request)
        {
            var actionList = new List <string>
            {
                "0SignOn",
                "1FirstOrder",
                "2LuckyMoney",
                "4BindWX",
                "5Follow",
                "6AddCar",
                "7Authentication",
                "8Comment",
                "9TireInsurance"
            };
            var code = 1;
            var info = "操作完成";

            if (request.ConditionList.Distinct(g => g.ActionName).Count() > 1 && actionList.Intersect(request.ConditionList.Select(g => g.ActionName)).Any())
            {
                code = 0;
                info = "任务完成条件不符合要求";
            }
            else
            {
                var result = TaskConfigManager.EditTaskConfig(request, ThreadIdentity.Operator.Name);
                if (result == 0)
                {
                    code = 0;
                    info = "任务完成条件不符合要求";
                }
                if (result == 2)
                {
                    code = 2;
                    info = "更新数据库失败";
                }
                if (result == 3)
                {
                    code = 3;
                    info = "操作失败,缓存刷新失败";
                }
            }
            return(Json(new
            {
                Code = code,
                Info = info
            }));
        }
예제 #2
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);
            }
        }
예제 #3
0
        public static bool UpdateTaskConfig(TaskConfigModel request, BaseDbHelper dbHelper)
        {
            const string sqlStr = @"
update Configuration..TaskConfigInfo with (rowlock)
set TaskName = @taskName,
    TaskIcon = @taskicon,
    DisplayStatus = @displayStatus,
    TaskLink = @taskLink,
    TaskText = @taskText,
    Duration = @duration,
    AwardText = @awardText,
    AwardLink = @awardLink,
    AwardImg = @awardImg,
    Integral = @integral,
    TireInsurance = @tireInsurance,
    RandomCoupon = @randomCoupon,
    TaskRule = @taskrule,
    TaskType = @taskType,
    LastUpdateDateTime = GETDATE(),
    Sequence = @sequence,
    PopulationsTag = @populationsTag,
    StartVersion = @startVersion,
    EndVersion = @endVersion,
    RequireActionCount = @requireActionCount,
    RecommendImg = @recommendImg,
    RecommendLevel = @recommendLevel,
    TaskChannel = @taskChannel,
    WXAwardAppId = @wxAwardAppId,
    WXAwardLink = @wxAwardLink,
    WXTaskAppId = @wxTaskAppId,
    WXTaskLink = @wxTaskLink
where TaskId = @taskid;";

            using (var cmd = new SqlCommand(sqlStr))
            {
                cmd.Parameters.AddWithValue("@taskName", request.TaskName);
                cmd.Parameters.AddWithValue("@taskIcon", request.TaskIcon);
                cmd.Parameters.AddWithValue("@displayStatus", request.DisplayStatus);
                cmd.Parameters.AddWithValue("@taskLink", request.TaskLink);
                cmd.Parameters.AddWithValue("@taskText", request.TaskText);
                cmd.Parameters.AddWithValue("@duration", request.Duration);
                cmd.Parameters.AddWithValue("@awardText", request.AwardText);
                cmd.Parameters.AddWithValue("@awardLink", request.AwardLink);
                cmd.Parameters.AddWithValue("@awardImg", request.AwardImg);
                cmd.Parameters.AddWithValue("@integral", request.Integral);
                cmd.Parameters.AddWithValue("@tireInsurance", request.TireInsurance);
                cmd.Parameters.AddWithValue("@randomCoupon", request.RandomCoupon);
                cmd.Parameters.AddWithValue("@taskrule", request.TaskRule);
                cmd.Parameters.AddWithValue("@taskid", request.TaskId);
                cmd.Parameters.AddWithValue("@taskType", request.TaskType);
                cmd.Parameters.AddWithValue("@sequence", request.Sequence);
                cmd.Parameters.AddWithValue("@populationsTag", request.PopulationsTag);
                cmd.Parameters.AddWithValue("@startVersion", request.StartVersion);
                cmd.Parameters.AddWithValue("@endVersion", request.EndVersion);
                cmd.Parameters.AddWithValue("@requireActionCount", request.RequireActionCount);
                cmd.Parameters.AddWithValue("@recommendImg", request.RecommendImg);
                cmd.Parameters.AddWithValue("@recommendLevel", request.RecommendLevel);
                cmd.Parameters.AddWithValue("@taskChannel", request.TaskChannel);
                cmd.Parameters.AddWithValue("@wxAwardAppId", request.WXAwardAppId);
                cmd.Parameters.AddWithValue("@wxAwardLink", request.WXAwardLink);
                cmd.Parameters.AddWithValue("@wxTaskAppId", request.WXTaskAppId);
                cmd.Parameters.AddWithValue("@wxTaskLink", request.WXTaskLink);
                return(dbHelper.ExecuteNonQuery(cmd) > 0);
            }
        }
예제 #4
0
        public static bool AddTaskConfig(TaskConfigModel request, string Operator, BaseDbHelper dbHelper)
        {
            const string sqlStr = @"
insert into Configuration..TaskConfigInfo
(
    TaskId,
    TaskName,
    TaskType,
    TaskIcon,
    DisplayStatus,
    TaskLink,
    TaskText,
    TriggerTime,
    Duration,
    AwardText,
    AwardLink,
    ButtonText,
    AwardImg,
    Integral,
    TaskRule,
    TireInsurance,
    RandomCoupon,
    Operator,
    IsDelete,
    Sequence,
    PopulationsTag,
    StartVersion,
    EndVersion,
    RequireActionCount,
    RecommendImg,
    RecommendLevel,
    TaskChannel,
    WXAwardAppId,
    WXAwardLink,
    WXTaskAppId,
    WXTaskLink
)
values
(@taskid, @taskname, @tasktype, @taskicon, @displaystatus, @tasklink, @tasktext, @triggertime, @duration, @awardtext,
 @awardlink, '', @awardimg, @integral, @taskrule, @tireinsurance, @randomcoupon, @operator, 0, @sequence,
 @populationsTag, @startVersion, @endVersion, @requireActionCount, @recommendImg, @recommendLevel, @taskChannel,
 @wxAwardAppId, @wxAwardLink, @wxTaskAppId, @wxTaskLink);";

            using (var cmd = new SqlCommand(sqlStr))
            {
                cmd.Parameters.AddWithValue("@taskid", request.TaskId);
                cmd.Parameters.AddWithValue("@taskname", request.TaskName);
                cmd.Parameters.AddWithValue("@tasktype", request.TaskType);
                cmd.Parameters.AddWithValue("@taskicon", request.TaskIcon);
                cmd.Parameters.AddWithValue("@displaystatus", request.DisplayStatus);
                cmd.Parameters.AddWithValue("@tasklink", request.TaskLink);
                cmd.Parameters.AddWithValue("@tasktext", request.TaskText);
                cmd.Parameters.AddWithValue("@triggertime", request.TriggerTime);
                cmd.Parameters.AddWithValue("@duration", request.Duration);
                cmd.Parameters.AddWithValue("@awardtext", request.AwardText);
                cmd.Parameters.AddWithValue("@awardlink", request.AwardLink);
                cmd.Parameters.AddWithValue("@awardimg", request.AwardImg);
                cmd.Parameters.AddWithValue("@integral", request.Integral);
                cmd.Parameters.AddWithValue("@taskrule", request.TaskRule);
                cmd.Parameters.AddWithValue("@tireinsurance", request.TireInsurance);
                cmd.Parameters.AddWithValue("@randomcoupon", request.RandomCoupon);
                cmd.Parameters.AddWithValue("@operator", Operator);
                cmd.Parameters.AddWithValue("@sequence", request.Sequence);
                cmd.Parameters.AddWithValue("@populationsTag", request.PopulationsTag);
                cmd.Parameters.AddWithValue("@startVersion", request.StartVersion);
                cmd.Parameters.AddWithValue("@endVersion", request.EndVersion);
                cmd.Parameters.AddWithValue("@requireActionCount", request.RequireActionCount);
                cmd.Parameters.AddWithValue("@recommendImg", request.RecommendImg);
                cmd.Parameters.AddWithValue("@recommendLevel", request.RecommendLevel);
                cmd.Parameters.AddWithValue("@taskChannel", request.TaskChannel);
                cmd.Parameters.AddWithValue("@wxAwardAppId", request.WXAwardAppId);
                cmd.Parameters.AddWithValue("@wxAwardLink", request.WXAwardLink);
                cmd.Parameters.AddWithValue("@wxTaskAppId", request.WXTaskAppId);
                cmd.Parameters.AddWithValue("@wxTaskLink", request.WXTaskLink);
                return(dbHelper.ExecuteNonQuery(cmd) > 0);
            }
        }