public ExecuteResult<PromotionInfoResponse> UpdatePromotion(UpdatePromotionRequest request)
        {
            if (request == null || request.PromotionId == null)
            {
                return new ExecuteResult<PromotionInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "参数错误" };
            }

            var entity = _promotionRepository.GetItem(request.PromotionId ?? 0);

            if (entity == null)
            {
                return new ExecuteResult<PromotionInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "参数错误,没有找到指定promotion" };
            }
            var promotionSourceType = request.AuthUser.UserLevel == (int)UserLevel.Daren ? RecommendSourceType.Daren : RecommendSourceType.StoreManager;
            // promotionSourceType == RecommendSourceType.Daren ? request.StoreId : request.AuthUser.Store_Id;
            var storeId = request.StoreId < 1 ? request.AuthUser.Store_Id : request.StoreId;

            var source = MappingManager.PromotionEntityMapping(request);
            source.CreatedDate = entity.CreatedDate;
            source.CreatedUser = entity.CreatedUser;
            source.Status = entity.Status;
            source.FavoriteCount = entity.FavoriteCount;
            source.InvolvedCount = entity.InvolvedCount;
            source.LikeCount = entity.LikeCount;
            source.ShareCount = entity.ShareCount;
            source.Store_Id = storeId ?? 0;
            source.RecommendSourceType = (int)promotionSourceType;

            MappingManager.PromotionEntityMapping(source, entity);

            _promotionRepository.Update(entity);
            //品牌关系
            if (request.Brands == null || request.Brands.Length == 0)
            {
                _promotionBrandRelationRepository.Del(entity.Id);
            }
            else
            {
                _promotionBrandRelationRepository.Del(entity.Id);
                var b = request.BrandIds.Distinct().Where(v => v > 0).ToList();
                var list = new List<PromotionBrandRelationEntity>(b.Count);
                foreach (var item in b)
                {
                    list.Add(new PromotionBrandRelationEntity
                    {
                        Brand_Id = item,
                        CreatedDate = DateTime.Now,
                        Promotion_Id = entity.Id
                    });
                }

                _promotionBrandRelationRepository.BatchInsert(list);
            }

            return new ExecuteResult<PromotionInfoResponse>(MappingManager.PromotionResponseMapping(entity));
        }
Пример #2
0
        public ExecuteResult <PromotionInfoResponse> UpdatePromotion(UpdatePromotionRequest request)
        {
            if (request == null || request.PromotionId == null)
            {
                return(new ExecuteResult <PromotionInfoResponse>(null)
                {
                    StatusCode = StatusCode.ClientError, Message = "参数错误"
                });
            }

            var entity = _promotionRepository.GetItem(request.PromotionId ?? 0);

            if (entity == null)
            {
                return(new ExecuteResult <PromotionInfoResponse>(null)
                {
                    StatusCode = StatusCode.ClientError, Message = "参数错误,没有找到指定promotion"
                });
            }
            var promotionSourceType = request.AuthUser.UserLevel == (int)UserLevel.Daren ? RecommendSourceType.Daren : RecommendSourceType.StoreManager;
            // promotionSourceType == RecommendSourceType.Daren ? request.StoreId : request.AuthUser.Store_Id;
            var storeId = request.StoreId < 1 ? request.AuthUser.Store_Id : request.StoreId;

            var source = MappingManager.PromotionEntityMapping(request);

            source.CreatedDate         = entity.CreatedDate;
            source.CreatedUser         = entity.CreatedUser;
            source.Status              = entity.Status;
            source.FavoriteCount       = entity.FavoriteCount;
            source.InvolvedCount       = entity.InvolvedCount;
            source.LikeCount           = entity.LikeCount;
            source.ShareCount          = entity.ShareCount;
            source.Store_Id            = storeId ?? 0;
            source.RecommendSourceType = (int)promotionSourceType;

            MappingManager.PromotionEntityMapping(source, entity);

            _promotionRepository.Update(entity);
            //品牌关系
            if (request.Brands == null || request.Brands.Length == 0)
            {
                _promotionBrandRelationRepository.Del(entity.Id);
            }
            else
            {
                _promotionBrandRelationRepository.Del(entity.Id);
                var b    = request.BrandIds.Distinct().Where(v => v > 0).ToList();
                var list = new List <PromotionBrandRelationEntity>(b.Count);
                foreach (var item in b)
                {
                    list.Add(new PromotionBrandRelationEntity
                    {
                        Brand_Id     = item,
                        CreatedDate  = DateTime.Now,
                        Promotion_Id = entity.Id
                    });
                }

                _promotionBrandRelationRepository.BatchInsert(list);
            }

            return(new ExecuteResult <PromotionInfoResponse>(MappingManager.PromotionResponseMapping(entity)));
        }