Пример #1
0
        /// <summary>
        /// 调用Combo更新状态
        /// </summary>
        /// <param name="sysNo"></param>
        /// <param name="targetStatus"></param>
        public virtual void ApproveOptionalAccessories(int?sysNo, ComboStatus targetStatus)
        {
            //Check审核人与创建人不能相同
            if (sysNo == null)
            {
                //throw new BizException("更新失败,参数有误!");
                throw new BizException(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ArgsError"));
            }
            OptionalAccessoriesInfo oldEntity = _da.Load(sysNo.Value);

            //if (oldEntity.Status == ComboStatus.WaitingAudit && oldEntity.CreateUserSysNo == ServiceContext.Current.UserSysNo)
            //{
            //    throw new BizException(string.Format("{0} 创建人与审核人不能相同", oldEntity.Name));
            //}

            TransactionScopeFactory.TransactionAction(() =>
            {
                ObjectFactory <ComboProcessor> .Instance.UpdateStatus(sysNo, targetStatus);
                //更新PromotionEngine配置中活动的状态
                //_oaPromotionEngine.UpdateActivityStatus(sysNo.Value, targetStatus);

                ExternalDomainBroker.CreateOperationLog(
                    String.Format("{0}{1}SysNo:{2}| 状态:{3}",
                                  DateTime.Now.ToString(), "审核状态", sysNo
                                  , targetStatus == ComboStatus.Active ? "有效"
                : targetStatus == ComboStatus.Deactive ? "无效" : "待审核")
                    , BizEntity.Common.BizLogType.OptionalAccessories_Approve
                    , sysNo.Value, "8601");//[Mark][Alan.X.Luo 硬编码]
            });
        }
Пример #2
0
        public virtual void AbandonCustomer(CustomerInfo customer)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                ObjectFactory <CustomerProcessor> .Instance.AbandonCustomer(customer.BasicInfo);

                ExternalDomainBroker.CreateOperationLog("Update CustomerStatus", BizLogType.Basic_Customer_Invalid, customer.BasicInfo.CustomerSysNo.Value, customer.CompanyCode);
                tran.Complete();
            }
        }
Пример #3
0
        public virtual void UpdateCustomer(CustomerInfo entity)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                ObjectFactory <CustomerProcessor> .Instance.UpdateCustomer(entity);

                ExternalDomainBroker.CreateOperationLog("Update Customer", BizLogType.Basic_Customer_Update, entity.SysNo.Value, entity.CompanyCode);
                tran.Complete();
            }
        }
Пример #4
0
        public virtual void ManaulSetVipRank(int customerSysNo, VIPRank rank, string companyCode)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                ObjectFactory <RankProcessor> .Instance.SetVIPRank(customerSysNo, rank);

                ExternalDomainBroker.CreateOperationLog("Update Customer", BizLogType.Basic_Customer_ManualSetVIPRank, customerSysNo, companyCode);
                tran.Complete();
            }
        }
Пример #5
0
        public virtual void CancelConfirmPhone(CustomerInfo customer)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                ObjectFactory <CustomerProcessor> .Instance.CancelConfirmPhone(customer.BasicInfo);

                ExternalDomainBroker.CreateOperationLog("Cancel confirm customer phone", BizLogType.Basic_Customer_CancelConfirmPhone, customer.BasicInfo.CustomerSysNo.Value, customer.CompanyCode);
                tran.Complete();
            }
        }
Пример #6
0
        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual CustomerInfo CreateCustomer(CustomerInfo entity)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                CustomerInfo info = ObjectFactory <CustomerProcessor> .Instance.CreateCustomer(entity);

                ExternalDomainBroker.CreateOperationLog("Insert Customer", BizLogType.Basic_Customer_Add, entity.SysNo.Value, entity.CompanyCode);
                tran.Complete();
                return(info);
            }
        }
Пример #7
0
        /// <summary>
        /// 更新OptionalAccessories Master,包含:更新主信息,更新状态:
        /// 无效->有效,无效->待审核,有效->无效,有效->待审核,待审核->无效,待审核->有效
        /// 其中无效->有效需要Check RequiredSaleRule4UpdateValidate
        /// </summary>
        /// <param name="info"></param>
        public virtual void UpdateOptionalAccessories(OptionalAccessoriesInfo info)
        {
            List <string> errorList = CheckBasicIsPass(info);

            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            errorList = CheckOptionalAccessoriesItemIsPass(info, false);
            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            errorList = CheckValidateWhenChangeStatus(info);
            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            TransactionScopeFactory.TransactionAction(() =>
            {
                _da.UpdateMaster(info);
                _da.DeleteOptionalAccessoriesAllItem(info.SysNo.Value);
                foreach (OptionalAccessoriesItem item in info.Items)
                {
                    item.OptionalAccessoriesSysNo = info.SysNo;
                    _da.AddOptionalAccessoriesItem(item);
                }
                //将数据保存到PromotionEngine配置库中
                //_oaPromotionEngine.SaveActivity(info);

                ExternalDomainBroker.CreateOperationLog(
                    String.Format("{0}{1}SysNo:{2}| 规则描述:{3}| 优先级:{4} | 状态:{5}",
                                  DateTime.Now.ToString(), "更新随心配"
                                  , info.SysNo, info.Name, info.Priority
                                  , info.Status == ComboStatus.Active ? "有效"
               : info.Status == ComboStatus.Deactive ? "无效" : "待审核")
                    , BizEntity.Common.BizLogType.OptionalAccessories_Update
                    , info.SysNo.Value, info.CompanyCode);
            });

            ExternalDomainBroker.CreateOperationLog(BizLogType.OptionalAccessories_Update.ToEnumDesc(), BizLogType.OptionalAccessories_Update, info.SysNo.Value, info.CompanyCode);
        }
Пример #8
0
        public virtual void BatchDelete(List <int> sysNoList)
        {
            if (sysNoList != null && sysNoList.Count > 0)
            {
                TransactionScopeFactory.TransactionAction(() =>
                {
                    sysNoList.ForEach(p =>
                    {
                        _da.UpdateStatus(p, ComboStatus.Deactive);
                        //更新PromotionEngine配置中活动的状态
                        //_oaPromotionEngine.UpdateActivityStatus(p, ComboStatus.Deactive);

                        ExternalDomainBroker.CreateOperationLog(
                            String.Format("{0}{1}SysNo:{2}",
                                          DateTime.Now.ToString(), "删除", p)
                            , BizEntity.Common.BizLogType.OptionalAccessories_Del
                            , p, "8601");//[Mark][Alan.X.Luo 硬编码]
                    });
                });
            }
        }
Пример #9
0
        /// <summary>
        /// 创建Combo Master
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public virtual int?CreateCombo(ComboInfo info)
        {
            List <string> errorList = CheckBasicIsPass(info);

            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            //创建的时候不检查Item的信息

            //errorList = CheckComboItemIsPass(info);

            //if (errorList.Count > 0)
            //{
            //    throw new BizException(errorList.Join("\r\n"));
            //}
            if (info.Status == null)
            {
                info.Status = ComboStatus.Deactive;
            }

            TransactionScopeFactory.TransactionAction(() =>
            {
                info.SysNo = _da.CreateMaster(info);
                foreach (ComboItem item in info.Items)
                {
                    item.ComboSysNo = info.SysNo;
                    _da.AddComboItem(item);
                }

                //将套餐信息写入到促销引擎中,写入时促销活动是停止状态,审核通过后变成运行状态。
                //ObjectFactory<ComboPromotionEngine>.Instance.SaveComboActivity(info);
            });

            ExternalDomainBroker.CreateOperationLog(BizLogType.ComboCreate.ToEnumDesc(), BizLogType.ComboCreate, info.SysNo.Value, info.CompanyCode);


            return(info.SysNo);
        }
Пример #10
0
        /// <summary>
        /// 提供一个接口供商品价格管理模块来调用,传入商品sysno
        /// 然后检查商品对应捆绑规则是否有低于成本价的情况(价格和+折扣 《 成本价格和),有的就将其变为待审核(status=1)
        /// </summary>
        /// <param name="productSysNo"></param>
        public virtual void CheckComboPriceAndSetStatus(int productSysNo)
        {
            //1.根据productSysNo得到所有包含了该Product的所有状态的Combo
            List <ComboInfo> comboList = _da.GetComboListByProductSysNo(productSysNo);

            if (comboList.Count == 0)
            {
                return;
            }
            //2.循环处理Combo,调用CheckIsPass函数,判断是否: 价格和+折扣和<成本价格和,有则将其变为待审核(status=1),并记录LOG,发送邮件
            comboList = comboList.Where(o => o.Status == ComboStatus.Active).ToList <ComboInfo>();
            foreach (ComboInfo combo in comboList)
            {
                #region 需处理套餐与DIY的数据,即combo.RefernceType=1,2
                if (combo.ReferenceType != 1 && combo.ReferenceType != 2)
                {
                    continue;
                }
                #endregion
                if (!CheckPriceIsPass(combo))
                {
                    if (combo.Status == ComboStatus.Active) //有效状态改为待审核,无效和待审核不做处理
                    {
                        _da.UpdateStatus(combo.SysNo, ComboStatus.WaitingAudit);
                    }
                    if (combo.RequestSysNo > 0)
                    {
                        combo.Status = ComboStatus.Deactive;
                        _da.SyncSaleRuleStatus(combo.RequestSysNo, combo.Status);
                    }
                    //string note = "捆绑销售编号 " + combo.SysNo.Value.ToString() + ",status=" + combo.Status.ToDisplayText() + "状态改为待审核。";
                    string note = ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboMKTSysNo") + combo.SysNo.Value.ToString() + ",status=" + combo.Status.ToDisplayText() + ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_StatusTransToCheckPending");
                    ExternalDomainBroker.CreateOperationLog(note, BizLogType.Basic_Product_Price_Update_Verify, combo.SysNo.Value, combo.CompanyCode);
                    SendMail(combo);
                    ExternalDomainBroker.CreateOperationLog(BizLogType.ComboCheckPriceAndSetStatus.ToEnumDesc(), BizLogType.ComboCheckPriceAndSetStatus, combo.SysNo.Value, combo.CompanyCode);
                }
            }
        }
Пример #11
0
        public virtual int?CreateNewsInfo(NewsInfo entity)
        {
            int?result;

            //如果扩展生效的话,需要为该C3相关的前台类别插入相同的新闻
            if (entity.Extendflag.HasValue && entity.Extendflag.Value)
            {
                var list = ObjectFactory <ECCategoryProcessor> .Instance.GetRelatedECCategory3SysNo(entity.ReferenceSysNo.Value);

                list.Add(new ECCategory()
                {
                    SysNo = entity.ReferenceSysNo.Value
                });
                using (TransactionScope scope = new TransactionScope())
                {
                    foreach (var item in list)
                    {
                        entity.ReferenceSysNo = item.SysNo;
                        ObjectFactory <NewsProcessor> .Instance.CreateNewsInfo(entity);
                    }
                    scope.Complete();
                }
                result = null;
            }
            else
            {
                result = ObjectFactory <NewsProcessor> .Instance.CreateNewsInfo(entity);
            }
            ExternalDomainBroker.CreateOperationLog(
                String.Format("{0}{1}SysNo:{2}",
                              DateTime.Now.ToString(), ResouceManager.GetMessageString("MKT.News", "News_CreateNewsAndNotice")
                              , entity.SysNo)
                , BizEntity.Common.BizLogType.ComputerConfig_Add
                , entity.SysNo.Value, entity.CompanyCode);
            return(result);
        }
Пример #12
0
        /// <summary>
        /// 创建OptionalAccessories
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public virtual int?CreateOptionalAccessories(OptionalAccessoriesInfo info)
        {
            List <string> errorList = CheckBasicIsPass(info);

            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            errorList = CheckOptionalAccessoriesItemIsPass(info, false);
            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }
            if (info.Status == null)
            {
                info.Status = ComboStatus.Deactive;
            }

            TransactionScopeFactory.TransactionAction(() =>
            {
                info.SysNo = _da.CreateMaster(info);
                foreach (OptionalAccessoriesItem item in info.Items)
                {
                    item.OptionalAccessoriesSysNo = info.SysNo;
                    _da.AddOptionalAccessoriesItem(item);
                }
                //将数据保存到PromotionEngine配置库中
                //_oaPromotionEngine.SaveActivity(info);
            });

            ExternalDomainBroker.CreateOperationLog(BizLogType.OptionalAccessories_Create.ToEnumDesc(), BizLogType.OptionalAccessories_Create, info.SysNo.Value, info.CompanyCode);


            return(info.SysNo);
        }
Пример #13
0
        /// <summary>
        /// 更新Combo Master,包含:更新主信息,更新状态:
        /// 无效->有效,无效->待审核,有效->无效,有效->待审核,待审核->无效,待审核->有效
        /// 其中无效->有效需要Check RequiredSaleRule4UpdateValidate
        /// </summary>
        /// <param name="info"></param>
        public virtual void UpdateCombo(ComboInfo info)
        {
            List <string> errorList = CheckBasicIsPass(info);

            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }
            #region 2012-11-13 update
            //修改内容:在销售规则有商品时才走对商品check的逻辑
            #endregion

            if (info.Items != null && info.Items.Count > 0)
            {
                errorList = CheckComboItemIsPass(info);
            }

            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }

            errorList = CheckValidateWhenChangeStatus(info);
            if (errorList.Count > 0)
            {
                throw new BizException(errorList.Join("\r\n"));
            }
            TransactionScopeFactory.TransactionAction(() =>
            {
                _da.UpdateMaster(info);
                _da.DeleteComboAllItem(info.SysNo.Value);
                foreach (ComboItem item in info.Items)
                {
                    item.ComboSysNo = info.SysNo;
                    _da.AddComboItem(item);
                }
                //更新活动
                //ObjectFactory<ComboPromotionEngine>.Instance.SaveComboActivity(info);

                // 发送待办消息
                switch (info.TargetStatus)
                {
                // 待审核
                case ComboStatus.WaitingAudit:
                    EventPublisher.Publish <ComboSaleSubmitMessage>(new ComboSaleSubmitMessage
                    {
                        ComboSaleSysNo   = info.SysNo.Value,
                        ComboSaleName    = info.Name.Content,
                        CurrentUserSysNo = ServiceContext.Current.UserSysNo
                    });
                    break;

                // 有效
                case ComboStatus.Active:
                    EventPublisher.Publish <ComboSaleActiveMessage>(new ComboSaleActiveMessage
                    {
                        ComboSaleSysNo   = info.SysNo.Value,
                        ComboSaleName    = info.Name.Content,
                        CurrentUserSysNo = ServiceContext.Current.UserSysNo
                    });
                    break;

                // 无效
                case ComboStatus.Deactive:
                    EventPublisher.Publish <ComboSaleAuditRefuseMessage>(new ComboSaleAuditRefuseMessage
                    {
                        ComboSaleSysNo   = info.SysNo.Value,
                        ComboSaleName    = info.Name.Content,
                        CurrentUserSysNo = ServiceContext.Current.UserSysNo
                    });
                    break;
                }
            });

            ExternalDomainBroker.CreateOperationLog(BizLogType.ComboUpdate.ToEnumDesc(), BizLogType.ComboUpdate, info.SysNo.Value, info.CompanyCode);
        }