/// <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); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }