Пример #1
0
        /// <summary>
        /// 审核促销
        /// </summary>
        /// <param name="cbSpPromotion">促销参数实体</param>
        /// <param name="user">操作人</param>
        /// <returns>操作是否成功</returns>
        /// <remarks>2013-08-26 余勇 创建</remarks>
        public Result Audit(CBSpPromotion cbSpPromotion, SyUser user)
        {
            SpPromotion model = cbSpPromotion.Promotion;
            var         res   = new Result();

            if (model.SysNo > 0)
            {
                #region 修改
                var upModel = ISpPromotionDao.Instance.Get(model.SysNo);
                upModel.Name                  = model.Name;
                upModel.Description           = model.Description;
                upModel.DisplayPrefix         = model.DisplayPrefix;
                upModel.SubjectUrl            = model.SubjectUrl;
                upModel.PromotionType         = model.PromotionType;
                upModel.WebPlatform           = model.WebPlatform; //2014-01-07 朱家宏 添加
                upModel.ShopPlatform          = model.ShopPlatform;
                upModel.MallAppPlatform       = model.MallAppPlatform;
                upModel.LogisticsAppPlatform  = model.LogisticsAppPlatform;       //2014-02-26 黄志勇 添加
                upModel.StartTime             = model.StartTime;
                upModel.EndTime               = model.EndTime;
                upModel.PromotionCode         = model.PromotionCode;
                upModel.IsUsePromotionCode    = model.IsUsePromotionCode;
                upModel.PromotionUseQuantity  = model.PromotionUseQuantity;
                upModel.PromotionUsedQuantity = model.PromotionUsedQuantity;
                upModel.UserUseQuantity       = model.UserUseQuantity;
                upModel.Priority              = model.Priority;
                upModel.Status                = (int)PromotionStatus.促销状态.已审;
                upModel.AuditorSysNo          = user.SysNo;
                upModel.AuditDate             = DateTime.Now;
                upModel.LastUpdateBy          = user.SysNo;
                upModel.LastUpdateDate        = DateTime.Now;
                ISpPromotionDao.Instance.Update(upModel); //修改
                if (model.SysNo > 0)                      //添加子表
                {
                    ISpPromotionGiftDao.Instance.DeleteByPromotionSysNo(model.SysNo);
                    ISpPromotionOverlayDao.Instance.DeleteByPromotionSysNo(model.SysNo);
                    ISpPromotionRuleKeyValueDao.Instance.DeleteByPromotionSysNo(model.SysNo);
                    ISpPromotionRuleConditionDao.Instance.DeleteByPromotionSysNo(model.SysNo);
                    if (cbSpPromotion.PromotionGifts != null)
                    {
                        foreach (var item in cbSpPromotion.PromotionGifts)
                        {
                            item.PromotionSysNo = model.SysNo;
                            ISpPromotionGiftDao.Instance.Insert(item);
                        }
                    }
                    if (cbSpPromotion.PromotionOverlays != null)
                    {
                        foreach (var item in cbSpPromotion.PromotionOverlays)
                        {
                            var m = new SpPromotionOverlay {
                                OverlayCode = model.SysNo, PromotionSysNo = item
                            };
                            ISpPromotionOverlayDao.Instance.Insert(m);
                        }
                        ISpPromotionOverlayDao.Instance.Insert(new SpPromotionOverlay {
                            OverlayCode = model.SysNo, PromotionSysNo = model.SysNo
                        });
                    }
                    if (cbSpPromotion.PromotionRuleKeyValues != null)
                    {
                        foreach (var item in cbSpPromotion.PromotionRuleKeyValues)
                        {
                            if (item.RuleValue != null && item.RuleValue.EndsWith(";"))
                            {
                                item.RuleValue = item.RuleValue.TrimEnd(';');
                            }
                            item.PromotionSysNo = model.SysNo;
                            ISpPromotionRuleKeyValueDao.Instance.Insert(item);
                        }
                    }
                    if (cbSpPromotion.PromotionRule != null)
                    {
                        cbSpPromotion.PromotionRule.LastUpdateBy   = user.SysNo;
                        cbSpPromotion.PromotionRule.LastUpdateDate = DateTime.Now;
                        var ruleCondition = new SpPromotionRuleCondition
                        {
                            PromotionSysNo     = model.SysNo,
                            PromotionRuleSysNo = cbSpPromotion.PromotionRule.SysNo
                        };
                        ISpPromotionRuleConditionDao.Instance.Insert(ruleCondition);
                    }
                    res.Status = true;
                }
                #endregion
            }
            return(res);
        }
Пример #2
0
        /// <summary>
        /// 促销属性关联
        /// </summary>
        /// <param name="promotions">促销集合</param>
        /// <returns>促销集合</returns>
        /// <remarks>2013-08-14 吴文强 创建</remarks>
        private List <CBSpPromotion> PromotionAssociation(List <SpPromotion> promotions)
        {
            if (promotions == null || promotions.Count == 0)
            {
                return(new List <CBSpPromotion>());
            }

            var listPromotionSysNo         = promotions.Select(p => p.SysNo).ToArray();
            var allPromotionRuleConditions = ISpPromotionDao.Instance.GetPromotionRuleConditions(listPromotionSysNo);
            var allPromotionRules          =
                ISpPromotionDao.Instance.GetPromotionRules(
                    allPromotionRuleConditions.Select(p => p.PromotionRuleSysNo).ToArray());
            var allPromotionOverlays = ISpPromotionDao.Instance.GetPromotionOverlays(listPromotionSysNo);
            var allPromotionGifts    = ISpPromotionDao.Instance.GetPromotionGifts(listPromotionSysNo);

            //给实体赋方法(获取赠品缩略图)
            foreach (var p in allPromotionGifts)
            {
                p.GetThumbnail = () => Hyt.BLL.Web.ProductImageBo.Instance.GetProductImagePath(Web.ProductThumbnailType.Image100, p.ProductSysNo);
            }

            var allPromotionRuleKeyValues = ISpPromotionDao.Instance.GetPromotionRuleKeyValues(listPromotionSysNo);

            var listCbSpPromotion = new List <CBSpPromotion>();

            foreach (var spPromotion in promotions)
            {
                var         cbSpPromotion = new CBSpPromotion();
                SpPromotion promotion     = spPromotion;

                #region SpPromotion转CBSpPromotion
                cbSpPromotion.SysNo                 = spPromotion.SysNo;
                cbSpPromotion.Description           = spPromotion.Description;
                cbSpPromotion.DisplayPrefix         = spPromotion.DisplayPrefix;
                cbSpPromotion.SubjectUrl            = spPromotion.SubjectUrl;
                cbSpPromotion.PromotionType         = spPromotion.PromotionType;
                cbSpPromotion.StartTime             = spPromotion.StartTime;
                cbSpPromotion.EndTime               = spPromotion.EndTime;
                cbSpPromotion.PromotionCode         = spPromotion.PromotionCode;
                cbSpPromotion.IsUsePromotionCode    = spPromotion.IsUsePromotionCode;
                cbSpPromotion.PromotionUseQuantity  = spPromotion.PromotionUseQuantity;
                cbSpPromotion.PromotionUsedQuantity = spPromotion.PromotionUsedQuantity;
                cbSpPromotion.UserUseQuantity       = spPromotion.UserUseQuantity;
                cbSpPromotion.Priority              = spPromotion.Priority;
                cbSpPromotion.Status                = spPromotion.Status;
                cbSpPromotion.AuditDate             = spPromotion.AuditDate;
                cbSpPromotion.CreatedDate           = spPromotion.CreatedDate;
                cbSpPromotion.LastUpdateDate        = spPromotion.LastUpdateDate;
                #endregion

                var prc = allPromotionRuleConditions
                          .FirstOrDefault(rc => rc.PromotionSysNo == promotion.SysNo);

                cbSpPromotion.PromotionRule = allPromotionRules.FirstOrDefault(pr => prc != null && pr.SysNo == prc.PromotionRuleSysNo);

                var promotionOverlay = allPromotionOverlays.FirstOrDefault(po => po.PromotionSysNo == spPromotion.SysNo);
                if (promotionOverlay != null)
                {
                    var overlayCode = promotionOverlay.OverlayCode;
                    cbSpPromotion.PromotionOverlays = allPromotionOverlays.Where(po => po.OverlayCode == overlayCode).Select(n => n.PromotionSysNo).ToArray();
                }

                cbSpPromotion.PromotionGifts = allPromotionGifts.Where(pg => pg.PromotionSysNo == spPromotion.SysNo).ToList();

                cbSpPromotion.PromotionRuleKeyValues = allPromotionRuleKeyValues.Where(prkv => prkv.PromotionSysNo == spPromotion.SysNo).ToList();

                listCbSpPromotion.Add(cbSpPromotion);
            }

            return(listCbSpPromotion);
        }