Example #1
0
        /// <summary>
        /// 审核通过新品创建请求
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public SellerProductRequestInfo ApproveProductRequest(SellerProductRequestInfo entity)
        {
            CheckSellerProductRequestInfoProcessor.CheckSellerProductRequestInfo(entity);
            using (TransactionScope scope = new TransactionScope())
            {
                if (entity.Type == SellerProductRequestType.ImageAndDescriptionUpdate)
                {
                    //如果是图片与描述更新,则审批通过后状态变为‘处理中’
                    entity.Status = SellerProductRequestStatus.Processing;
                    entity        = _SellerProductRequestDA.UpdateSellerProductRequest(entity);
                }
                else
                {
                    entity.Status = SellerProductRequestStatus.Approved;
                    entity        = _SellerProductRequestDA.SetSellerProductRequestStatus(entity);
                    _SellerProductRequestDA.SetSellerProductRequestOtherStatus(entity);
                }

                int result = _SellerProductRequestDA.CallExternalSP(entity);
                if (result == 0)
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.SellerProductRequest",
                                                                           "SellerPortalCallExternalSPError"));
                }
                scope.Complete();
                return(entity);
            }
        }
Example #2
0
        /// <summary>
        /// 根据SysNo获取商家商品信息
        /// </summary>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public virtual SellerProductRequestInfo GetSellerProductRequestInfoBySysNo(int sysNo)
        {
            CheckSellerProductRequestInfoProcessor.CheckSellerProductRequestInfoSysNo(sysNo);
            var result = _SellerProductRequestDA.GetSellerProductRequestInfoBySysNo(sysNo);

            var pmManageInfo = ObjectFactory <ProductLineProcessor> .Instance.GetPMByC3(
                result.CategoryInfo.SysNo.Value,
                result.Brand.SysNo.Value);

            if (pmManageInfo != null)
            {
                result.PMUser = pmManageInfo.UserInfo;
            }

            result.ProductDescLong = RemoveHtmlStr(result.ProductDescLong);

            result.SellerProductRequestFileList     = _SellerProductRequestDA.GetSenderProductRequestImageList(sysNo);
            result.SellerProductRequestPropertyList = _SellerProductRequestDA.GetProductRequestPropertyList(sysNo);

            return(result);
        }
Example #3
0
        /// <summary>
        /// 退回新品创建请求
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public SellerProductRequestInfo DenyProductRequest(SellerProductRequestInfo entity)
        {
            CheckSellerProductRequestInfoProcessor.CheckSellerProductRequestInfo(entity);

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    if (entity.Status == SellerProductRequestStatus.Approved)
                    {
                        entity.Status = SellerProductRequestStatus.WaitApproval;
                    }
                    else
                    {
                        entity.Status = SellerProductRequestStatus.UnApproved;
                    }


                    entity = _SellerProductRequestDA.SetSellerProductRequestStatus(entity);
                    _SellerProductRequestDA.SetSellerProductRequestOtherStatus(entity);
                    int result = _SellerProductRequestDA.CallExternalSP(entity);

                    if (result == 0)
                    {
                        throw new BizException(ResouceManager.GetMessageString("IM.SellerProductRequest", "SellerPortalCallExternalSPError"));
                    }
                }
                catch (Exception ex)
                {
                    throw new BizException(ex.Message);
                }

                scope.Complete();
            }

            return(entity);
        }
Example #4
0
        /// <summary>
        /// 创建商品
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public SellerProductRequestInfo CreateItemIDForNewProductRequest(SellerProductRequestInfo entity)
        {
            //判断请求类型是否正确
            if (entity.Type != SellerProductRequestType.NewCreated)
            {
                //请求信息类型不为新品创建!
                throw new BizException(ResouceManager.GetMessageString("IM.SellerProductRequest", "SellerProductRequestTypeNotNewCreated"));
            }

            CheckSellerProductRequestInfoProcessor.CheckSellerProductRequestInfo(entity);

            //系统语言列表
            List <Language> languageList    = ExternalDomainBroker.GetAllLanguageList();
            var             defaultLanguage = languageList.FirstOrDefault(item => item.IsDefault == 1);

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    var productGroup = BuildProductGroupInfo(entity);
                    productGroup.ProductList.ForEach(product => { product.ProductBasicInfo.LongDescription = new LanguageContent(); });
                    var dict = ObjectFactory <ProductProcessor> .Instance.ProductCreate(productGroup);

                    if (!productGroup.LanguageCode.Equals(defaultLanguage.LanguageCode))
                    {
                        ObjectFactory <ProductProcessor> .Instance.ProductLangCreate(productGroup);//写入商品多语言
                    }

                    if (dict.Count > 0)
                    {
                        String exceptionMsg;
                        if (dict.TryGetValue(productGroup.ProductList.First().GetHashCode(), out exceptionMsg))
                        {
                            throw new BizException(exceptionMsg);
                        }
                    }

                    int i = 0;
                    foreach (SellerProductRequestFileInfo image in entity.SellerProductRequestFileList)
                    {
                        if (i == 0)
                        {
                            image.ImageName = productGroup.ProductList.First().ProductBasicInfo.CommonSkuNumber + ".jpg";
                        }
                        else
                        {
                            image.ImageName = productGroup.ProductList.First().ProductBasicInfo.CommonSkuNumber + "_" + i.ToString().PadLeft(2, '0') + ".jpg";
                        }

                        //设置Commonsku每张图片写上文件名
                        _SellerProductRequestDA.UpdateProductRequestImageName(image);

                        i++;
                    }

                    entity.Status          = SellerProductRequestStatus.Processing;
                    entity.CommonSKUNumber = productGroup.ProductList.First().ProductBasicInfo.CommonSkuNumber;
                    entity.ProductID       = productGroup.ProductList.First().ProductID;

                    entity = _SellerProductRequestDA.UpdateSellerProductRequest(entity);

                    entity.Memo = entity.ProductID;
                    _SellerProductRequestDA.CallExternalSP(entity);
                }
                catch (Exception ex)
                {
                    throw new BizException(ex.Message);
                }

                scope.Complete();
            }


            return(entity);
        }
Example #5
0
        /// <summary>
        ///  更新商品请求
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public SellerProductRequestInfo UpdateProductRequest(SellerProductRequestInfo entity)
        {
            CheckSellerProductRequestInfoProcessor.CheckSellerProductRequestInfo(entity);

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    ProductProcessor productBp = new ProductProcessor();

                    ProductInfo productInfo = productBp.GetProductInfoByID(entity.ProductID);

                    if (productInfo == null)
                    {
                        //商品不存在
                        throw new BizException(ResouceManager.GetMessageString("IM.SellerProductRequest", "SellerProductRequestProductID"));
                    }

                    productInfo.CompanyCode  = entity.CompanyCode;
                    productInfo.LanguageCode = entity.LanguageCode;

                    productInfo.ProductBasicInfo.ProductTitle.Content = entity.ProductName;
                    productInfo.ProductBasicInfo.ProductLink          = entity.ProductLink;
                    productInfo.ProductBasicInfo.PackageList.Content  = entity.PackageList;
                    productInfo.ProductBasicInfo.Keywords.Content     = entity.Keywords;
                    productInfo.ProductBasicInfo.UPCCode = entity.UPCCode;
                    productInfo.ProductBasicInfo.ProductBriefTitle.Content = entity.BriefName;
                    productInfo.ProductBasicInfo.IsTakePicture             = (ProductIsTakePicture)entity.IsTakePictures;
                    productInfo.ProductBasicInfo.Attention.Content         = entity.Attention;
                    productInfo.ProductBasicInfo.Note  = entity.Note;
                    productInfo.PromotionTitle.Content = entity.PromotionTitle;
                    //productInfo.ProductWarrantyInfo.HostWarrantyDay = entity.HostWarrantyDay;
                    //productInfo.ProductWarrantyInfo.PartWarrantyDay = entity.PartWarrantyDay;
                    //productInfo.ProductWarrantyInfo.Warranty.Content = entity.Warranty;
                    productInfo.ProductWarrantyInfo.ServicePhone = entity.ServicePhone;
                    productInfo.ProductWarrantyInfo.ServiceInfo  = entity.ServiceInfo;
                    // productInfo.ProductWarrantyInfo.OfferVATInvoice = entity.IsOfferInvoice== SellerProductRequestOfferInvoice.Yes? OfferVATInvoice.Yes: OfferVATInvoice.No;
                    productInfo.ProductBasicInfo.ProductDimensionInfo.Height = entity.Height;
                    productInfo.ProductBasicInfo.ProductDimensionInfo.Weight = entity.Weight;
                    productInfo.ProductBasicInfo.ProductDimensionInfo.Length = entity.Length;
                    productInfo.ProductBasicInfo.ProductDimensionInfo.Width  = entity.Width;
                    productInfo.ProductPOInfo.MinPackNumber = entity.MinPackNumber;

                    //更新ProductCommonInfo
                    _ProductCommonInfoDA.UpdateProductCommonInfoBasicInfo(productInfo, entity.EditUser);
                    _ProductCommonInfoDA.UpdateProductCommonInfoDimensionInfo(productInfo, entity.EditUser);
                    _ProductCommonInfoDA.UpdateProductCommonInfoWarrantyInfo(productInfo, entity.EditUser);
                    _ProductCommonInfoDA.UpdateProductCommonInfoNote(productInfo, entity.EditUser);
                    productInfo.OperateUser = entity.EditUser;
                    _ProductDA.UpdateProductPurchaseInfo(productInfo);
                    _ProductDA.UpdateProductBasicInfo(productInfo);

                    if (entity.SellerProductRequestPropertyList.Count > 0)
                    {
                        foreach (SellerProductRequestPropertyInfo requestProperty in entity.SellerProductRequestPropertyList)
                        {
                            if (productInfo.ProductBasicInfo.ProductProperties != null && productInfo.ProductBasicInfo.ProductProperties.Count > 0)
                            {
                                var property = productInfo.ProductBasicInfo.ProductProperties.Where(p => p.Property.PropertyInfo.SysNo == requestProperty.PropertySysno && p.PropertyGroup.SysNo == requestProperty.GroupSysno).ToList();
                                if (property.Count > 0)
                                {
                                    property.ForEach(p => productInfo.ProductBasicInfo.ProductProperties.Remove(p));
                                }
                            }

                            ProductProperty newProperty = new ProductProperty();
                            newProperty.Property                           = new PropertyValueInfo();
                            newProperty.PropertyGroup                      = new PropertyGroupInfo();
                            newProperty.Property.PropertyInfo              = new PropertyInfo();
                            newProperty.PropertyGroup.SysNo                = requestProperty.GroupSysno;
                            newProperty.PropertyGroup.PropertyGroupName    = new LanguageContent(requestProperty.GroupDescription);
                            newProperty.Property.PropertyInfo.SysNo        = requestProperty.PropertySysno;
                            newProperty.Property.PropertyInfo.PropertyName = new LanguageContent(requestProperty.PropertyDescription);
                            newProperty.Property.SysNo                     = requestProperty.ValueSysno;
                            newProperty.Property.ValueDescription          = new LanguageContent(requestProperty.ValueDescription);
                            newProperty.PersonalizedValue                  = new LanguageContent(requestProperty.ManualInput);
                            productInfo.ProductBasicInfo.ProductProperties.Add(newProperty);

                            //更新请求属性信息
                            _SellerProductRequestDA.UpdateSellerProductRequestProperty(requestProperty, entity.EditUser.UserDisplayName);
                        }
                    }

                    foreach (var p in productInfo.ProductBasicInfo.ProductProperties)
                    {
                        p.CompanyCode    = entity.CompanyCode;
                        p.LanguageCode   = entity.LanguageCode;
                        p.Property.SysNo = p.Property.SysNo ?? 0;
                    }

                    string result = productBp.UpdateProductPropertyInfo(productInfo);

                    entity.Status = SellerProductRequestStatus.Finish;
                    entity        = _SellerProductRequestDA.SetSellerProductRequestStatus(entity);
                }
                catch (Exception ex)
                {
                    throw new BizException(ex.Message);
                }

                scope.Complete();
            }

            return(entity);
        }