Exemplo n.º 1
0
        protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <GetActivityDeatilRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo          = new SessionManager().CurrentUserLoginInfo;
            var ActivityBLL                 = new C_ActivityBLL(loggingSessionInfo);
            var ActivityMessageBLL          = new C_ActivityMessageBLL(loggingSessionInfo);
            var ActivityTargetGroupBLL      = new C_TargetGroupBLL(loggingSessionInfo);
            var ActivityPrizesBLL           = new C_PrizesBLL(loggingSessionInfo);
            var ActivityPrizesDetailBLL     = new C_PrizesDetailBLL(loggingSessionInfo);
            var ActivityRechargeStrategyBLL = new RechargeStrategyBLL(loggingSessionInfo);
            var pTran = ActivityBLL.GetTran();

            using (pTran.Connection)
            {
                try
                {
                    //删除
                    C_ActivityEntity DelData = ActivityBLL.GetByID(para.ActivityID);
                    if (DelData == null)
                    {
                        throw new APIException("会员活动对象为NULL!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              };
                    }
                    //执行
                    List <IWhereCondition> complexCondition = new List <IWhereCondition> {
                    };
                    complexCondition.Add(new EqualsCondition()
                    {
                        FieldName = "ActivityID", Value = para.ActivityID
                    });
                    ActivityMessageBLL.Delete(ActivityMessageBLL.Query(complexCondition.ToArray(), null), pTran);
                    ActivityTargetGroupBLL.Delete(ActivityTargetGroupBLL.Query(complexCondition.ToArray(), null), pTran);
                    ActivityRechargeStrategyBLL.Delete(ActivityRechargeStrategyBLL.Query(complexCondition.ToArray(), null), pTran);
                    var prize = ActivityPrizesBLL.Query(complexCondition.ToArray(), null).FirstOrDefault();
                    if (prize != null)
                    {
                        if (!string.IsNullOrWhiteSpace(prize.PrizesID.ToString()))
                        {
                            List <IWhereCondition> cCondition = new List <IWhereCondition> {
                            };
                            cCondition.Add(new EqualsCondition()
                            {
                                FieldName = "PrizesID", Value = prize.PrizesID
                            });
                            ActivityPrizesDetailBLL.Delete(ActivityPrizesDetailBLL.Query(cCondition.ToArray(), null),
                                                           pTran);
                        }
                        ActivityPrizesBLL.Delete(ActivityPrizesBLL.Query(complexCondition.ToArray(), null), pTran);
                    }
                    ActivityBLL.Delete(DelData, pTran);
                    pTran.Commit();
                }
                catch (APIException apiEx)
                {
                    pTran.Rollback();
                    throw new APIException(apiEx.ErrorCode, apiEx.Message);
                }
            }
            return(rd);
        }
Exemplo n.º 2
0
        protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetRechargeStrategyRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo  = new SessionManager().CurrentUserLoginInfo;
            var rechargeStrategyBll = new RechargeStrategyBLL(loggingSessionInfo);
            //事物
            var pTran = rechargeStrategyBll.GetTran();

            using (pTran.Connection)
            {
                try
                {
                    //新增充值策略集合
                    var AddDataList = new List <RechargeStrategyEntity>();
                    //编辑充值策略集合
                    var UpdateDataList = new List <RechargeStrategyEntity>();
                    //删除充值策略集合
                    var DelList = new List <Guid>();
                    #region 数据处理
                    foreach (var item in para.RechargeStrategyInfoList)
                    {
                        if (string.IsNullOrWhiteSpace(item.RechargeStrategyId))
                        {
                            #region 新增
                            RechargeStrategyEntity AddData = new RechargeStrategyEntity();
                            AddData.ActivityID     = new Guid(para.ActivityID);
                            AddData.RuleType       = item.RuleType;
                            AddData.RechargeAmount = item.RechargeAmount;
                            AddData.GiftAmount     = item.GiftAmount;
                            AddData.CustomerId     = loggingSessionInfo.ClientID;
                            AddDataList.Add(AddData);
                            #endregion
                        }
                        else
                        {
                            RechargeStrategyEntity Data = rechargeStrategyBll.GetByID(item.RechargeStrategyId);
                            if (Data == null)
                            {
                                throw new APIException("充值策略对象为NULL!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      }
                            }
                            ;

                            if (item.IsEnable == 1)
                            {
                                //更新
                                Data.RechargeAmount = item.RechargeAmount;
                                Data.GiftAmount     = item.GiftAmount;
                                Data.RuleType       = item.RuleType;
                                UpdateDataList.Add(Data);
                            }
                            else
                            {
                                //删除
                                DelList.Add(Data.RechargeStrategyId.Value);
                            }
                        }
                    }
                    #endregion

                    #region 执行
                    if (AddDataList.Count > 0)
                    {
                        //新增
                        foreach (var item in AddDataList)
                        {
                            rechargeStrategyBll.Create(item, pTran);
                        }
                    }

                    if (UpdateDataList.Count > 0)
                    {
                        //编辑
                        foreach (var item in UpdateDataList)
                        {
                            rechargeStrategyBll.Update(item, pTran);
                        }
                    }
                    if (DelList.Count > 0)
                    {
                        //删除
                        foreach (var item in DelList)
                        {
                            rechargeStrategyBll.Delete(item, pTran);
                        }
                    }

                    pTran.Commit();
                    #endregion
                }
                catch (APIException apiEx)
                {
                    pTran.Rollback();//回滚事物
                    throw new APIException(apiEx.ErrorCode, apiEx.Message);
                }
                catch (Exception ex)
                {
                    pTran.Rollback();//回滚事务
                    throw new APIException(ex.Message);
                }
            }
            return(rd);
        }