Exemple #1
0
        /// <summary>
        /// 添加配置
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public bool AddRedemptionCodeConfig(RedemptionConfig config)
        {
            bool result = false;

            try
            {
                config.ConfigId    = Guid.NewGuid();
                config.Auditor     = string.Empty;
                config.AuditStatus = "Pending";
                result             = DbTuhuGrouponScopeManager.Execute(conn => DALUnivRedemptionCode.AddRedemptionCodeConfig(conn, config));
                if (result)
                {
                    InsertBeautyOprLog(new
                    {
                        LogType     = RedemptionCodeConfigType,
                        IdentityID  = config.ConfigId,
                        OldValue    = string.Empty,
                        NewValue    = JsonConvert.SerializeObject(config),
                        OperateUser = config.CreateUser,
                        Remarks     = "add",
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error(nameof(AddRedemptionCodeConfig), ex);
                result = false;
            }
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 更新配置
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public bool UpdateRedemptionCodeConfig(RedemptionConfig config)
        {
            bool result = false;

            try
            {
                var oldConfig = GetRedemptionCodeConfig(config.ConfigId);
                if (oldConfig != null)
                {
                    result = DbTuhuGrouponScopeManager.Execute(conn => DALUnivRedemptionCode.UpdateRedemptionCodeConfig(conn, config));
                }
                if (result)
                {
                    InsertBeautyOprLog(new
                    {
                        LogType     = RedemptionCodeConfigType,
                        IdentityID  = config.ConfigId,
                        OldValue    = JsonConvert.SerializeObject(oldConfig),
                        NewValue    = JsonConvert.SerializeObject(config),
                        OperateUser = config.CreateUser,
                        Remarks     = "update",
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error(nameof(UpdateRedemptionCodeConfig), ex);
                result = false;
            }
            return(result);
        }
Exemple #3
0
        /// <summary>
        /// 更新兑换码配置
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static bool UpdateRedemptionCodeConfig(SqlConnection conn, RedemptionConfig config)
        {
            const string sql    = @"UPDATE  Tuhu_groupon..RedemptionConfig
SET     CooperateId = @CooperateId ,
        Name = @Name ,
        EffectiveDay = @EffectiveDay ,
        AtLeastNum = @AtLeastNum ,
        AtMostNum = @AtMostNum ,
        SettlementMethod = @SettlementMethod ,
        GenerateType = @GenerateType ,
        Description = @Description ,
        IsActive = @IsActive ,
        AuditStatus = @AuditStatus,
        UpdateTime = GETDATE(),
        GroupId=@GroupId 
WHERE   ConfigId = @ConfigId;";
            var          result = conn.Execute(sql, new
            {
                config.GroupId,
                config.CooperateId,
                config.ConfigId,
                config.Name,
                config.EffectiveDay,
                config.AtLeastNum,
                config.AtMostNum,
                config.SettlementMethod,
                config.GenerateType,
                config.Description,
                config.IsActive,
                AuditStatus = AudioStatus.Pending.ToString(),
            }, commandType: CommandType.Text);

            return(result > 0);
        }
Exemple #4
0
        /// <summary>
        /// 添加兑换码模板配置
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static bool AddRedemptionCodeConfig(SqlConnection conn, RedemptionConfig config)
        {
            const string sql    = @"INSERT  INTO Tuhu_groupon..RedemptionConfig
        ( ConfigId ,
          CooperateId ,
          Name ,
          EffectiveDay ,
          AtLeastNum ,
          AtMostNum ,
          SettlementMethod ,
          GenerateType ,
          Description ,
          IsActive ,
          AuditStatus ,
          CreateUser ,
          Auditor ,
          CreateTime ,
          UpdateTime ,
          GroupId 
        )
VALUES  ( @ConfigId ,
          @CooperateId ,
          @Name ,
          @EffectiveDay ,
          @AtLeastNum ,
          @AtMostNum ,
          @SettlementMethod ,
          @GenerateType ,
          @Description ,
          @IsActive ,
          @AuditStatus ,
          @CreateUser ,
          @Auditor ,
          GETDATE() ,
          GETDATE() ,
          @GroupId 
        );";
            var          result = conn.Execute(sql, new
            {
                config.GroupId,
                config.ConfigId,
                config.CooperateId,
                config.Name,
                config.EffectiveDay,
                config.AtLeastNum,
                config.AtMostNum,
                config.SettlementMethod,
                config.GenerateType,
                config.Description,
                config.IsActive,
                config.AuditStatus,
                config.CreateUser,
                config.Auditor
            }, commandType: System.Data.CommandType.Text);

            return(result > 0);
        }
Exemple #5
0
        /// <summary>
        /// 是否存在配置
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static bool IsExistsRedemptionConfig(SqlConnection conn, RedemptionConfig config)
        {
            var sql   = @"SELECT  COUNT(1)
FROM    Tuhu_groupon..RedemptionConfig AS t WITH ( NOLOCK )
WHERE   t.Name = @Name
        AND ( @ConfigId IS NULL
              OR t.ConfigId <> @ConfigId
            );";
            var count = Convert.ToInt32(conn.ExecuteScalar(sql, new { config.Name, config.ConfigId }, commandType: System.Data.CommandType.Text));

            return(count > 0);
        }
Exemple #6
0
        /// <summary>
        /// 更加ConfigID获取配置
        /// </summary>
        /// <param name="configId"></param>
        /// <returns></returns>
        public RedemptionConfig GetRedemptionCodeConfig(Guid configId)
        {
            RedemptionConfig result = null;

            try
            {
                result = DbTuhuGrouponScopeReadManager.Execute(conn => DALUnivRedemptionCode.GetRedemptionCodeConfig(conn, configId));
            }
            catch (Exception ex)
            {
                Logger.Error(nameof(GetRedemptionCodeConfig), ex);
            }
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// 是否已经存在配置
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public bool IsExistsRedemptionConfig(RedemptionConfig config)
        {
            bool result = false;

            try
            {
                result = DbTuhuGrouponScopeReadManager.Execute(conn => DALUnivRedemptionCode.IsExistsRedemptionConfig(conn, config));
            }
            catch (Exception ex)
            {
                Logger.Error(nameof(IsExistsRedemptionConfig), ex);
                result = false;
            }
            return(result);
        }
        public ActionResult AddOrUpdateRedemptionCodeConfig(RedemptionConfig config)
        {
            #region validated
            if (config == null ||
                string.IsNullOrWhiteSpace(config.Name) ||
                config.CooperateId <= 0 ||
                string.IsNullOrWhiteSpace(config.CooperateName) ||
                config.EffectiveDay <= 0 ||
                config.AtLeastNum <= 0 || config.AtMostNum <= 0)
            {
                return(Json(new { status = false, msg = "配置不能为空,参数错误" }));
            }
            config.GenerateType = string.Equals(config.GenerateType, BATCH_TYPE, StringComparison.OrdinalIgnoreCase) ?
                                  BATCH_TYPE :
                                  (string.Equals(config.GenerateType, INTERFACE_TYPE, StringComparison.OrdinalIgnoreCase) ? INTERFACE_TYPE : string.Empty);
            if (string.IsNullOrEmpty(config.GenerateType))
            {
                return(Json(new { status = false, msg = "生成类型有误,请重试" }));
            }

            config.Name             = config.Name.Trim();
            config.SettlementMethod = string.Equals(BATCH_PRESETTLED, config.SettlementMethod, StringComparison.OrdinalIgnoreCase) ?
                                      BATCH_PRESETTLED : string.Empty;

            var exists = manager.IsExistsRedemptionConfig(config);
            if (exists)
            {
                return(Json(new { status = false, msg = "已存在相同名称的配置" }));
            }
            if (config.GroupId != null)
            {
                var isUpdate     = config.ConfigId != Guid.Empty;
                var groupSetting = manager.GetGroupSettingByGroupId(config.GroupId ?? Guid.Empty);
                if (groupSetting == null)
                {
                    return(Json(new { status = false, msg = $"所选群组不存在:{config.GroupId}" }));
                }


                var RedeemMrCodeConfigs = manager.GetRedeemMrCodeConfigs(config.ConfigId);
                if (groupSetting.SendCodeType == 1 && config.IsActive)//自动发码
                {
                    var groupConfigs = manager.GetRedemptionConfigsGroupId(config.GroupId ?? Guid.Empty);
                    if (!isUpdate && groupConfigs != null && groupConfigs.Any())
                    {
                        return(Json(new { status = false, msg = "所选群组为自动发码,已经存在一个套餐=》自动发码群组只能有一个套餐" }));
                    }
                    if (isUpdate && groupConfigs != null && groupConfigs.Count() >= 1 && groupConfigs.Any(a => a.ConfigId != config.ConfigId))
                    {
                        return(Json(new { status = false, msg = "所选群组为自动发码,已经存在一个套餐=》自动发码群组只能有一个套餐" }));
                    }
                }
                if (RedeemMrCodeConfigs != null && RedeemMrCodeConfigs.Any(a => !a.IsRequired))
                {
                    return(Json(new { status = false, msg = "配置了群组的模板,模板详情内容都应该必选" }));
                }
            }
            #endregion

            config.CreateUser = User.Identity.Name;
            var result = config.ConfigId != Guid.Empty ?
                         manager.UpdateRedemptionCodeConfig(config) :
                         manager.AddRedemptionCodeConfig(config);
            return(Json(new { status = result }));
        }