/// <summary> /// 获取单个商品分类路径信息,并用分隔符分隔 /// </summary> /// <param name="sysNo">分类系统编号</param> /// <param name="delimeter">分隔字符</param> /// <returns>返回完整分类溪经字符串</returns> /// <remarks>2013-08-06 邵斌 创建</remarks> public string GetCategoryRouteString(int sysNo, string delimeter) { //通过缓存读取数据 return(CacheManager.Get <string>(CacheKeys.Items.ProductMasterCategoryRoute_, sysNo.ToString(), delegate() { //递归读取指定的分类所以上级分类 PdCategory category = GetCategory(sysNo, true); StringBuilder sb = new StringBuilder(); //循环拼接字符串,直到分类么有父级分类 do { //添加分类名称到结果字符串 sb.Append(category.CategoryName); //如果存在下级分类将添加分隔符到字符串前面 if (category.ParentCategory != null) { sb.Append(delimeter); } else { break; } //设置新分类 category = category.ParentCategory; } while (true); return sb.ToString(); })); }
/// <summary> /// 保存分类信息 /// </summary> /// <param name="updateCategory">分类实体对象</param> /// <returns>返回: true 成功 false 失败</returns> /// <remarks>2013-07-10 邵斌 创建</remarks> public override bool Update(PdCategory updateCategory) { return(Context.Sql(@"update PdCategory set CategoryName = @CategoryName ,Code=@Code ,ParentSysNo=@ParentSysNo ,SeoDescription=@SeoDescription ,SeoKeyword=@SeoKeyword ,SeoTitle=@SeoTitle ,LastUpdateBy=@LastUpdateBy ,LastUpdateDate=@LastUpdateDate ,DisplayOrder=@DisplayOrder where SysNo =@SysNo") .Parameter("CategoryName", updateCategory.CategoryName) .Parameter("Code", updateCategory.Code) .Parameter("ParentSysNo", updateCategory.ParentSysNo) .Parameter("SeoDescription", updateCategory.SeoDescription) .Parameter("SeoKeyword", updateCategory.SeoKeyword) .Parameter("SeoTitle", updateCategory.SeoTitle) .Parameter("LastUpdateBy", updateCategory.LastUpdateBy) .Parameter("LastUpdateDate", updateCategory.LastUpdateDate) .Parameter("DisplayOrder", updateCategory.DisplayOrder) .Parameter("SysNo", updateCategory.SysNo) .Execute() > 0); }
/// <summary> /// 修改商品分类的父节点 /// </summary> /// <param name="sysNo">商品分类系统编号</param> /// <param name="parentSysNo">父节点系统编号</param> /// <returns>true:修改成功 false:修改失败</returns> /// <remarks>2013-07-10 邵斌 创建</remarks> public bool CategoryChangeParentSysNo(int sysNo, int parentSysNo) { PdCategory category = GetCategory(sysNo); //判断商品分类是否存在 if (category == null) { return(false); } else { if (IPdCategoryDao.Instance.Update(category)) { //用户操作日志 BLL.Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, string.Format("更新商品分类{0}父节点为{1}", sysNo, parentSysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); return(true); } else { //用户操作日志 BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, string.Format("更新商品分类{0}父节点为{1}失败", sysNo, parentSysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); return(false); } } }
/// <summary> /// 修改商品分类 /// </summary> /// <param name="category">商品分类实体</param> /// <param name="attributeGroupAso">商品分类对应属性组</param> /// <returns>返回操作是否成功 true:成功 false:不成功</returns> /// <remarks>2013-06-25 邵斌 创建</remarks> public override bool EditCategory(PdCategory category, IList <PdCatAttributeGroupAso> attributeGroupAso) { //接收新添加商品分类的系统编号 int result = 0; using (var _context = Context.UseSharedConnection(true)) { result = _context.Sql(@"update PdCategory set CategoryImage = @CategoryImage ,CategoryName = @CategoryName ,Code=@Code ,ParentSysNo=@ParentSysNo ,SeoDescription=@SeoDescription ,SeoKeyword=@SeoKeyword ,SeoTitle=@SeoTitle ,LastUpdateBy=@LastUpdateBy ,LastUpdateDate=@LastUpdateDate ,SysNos=@SysNos where SysNo = @SysNo") .Parameter("CategoryImage", category.CategoryImage) .Parameter("CategoryName", category.CategoryName) .Parameter("Code", category.Code) .Parameter("ParentSysNo", category.ParentSysNo) .Parameter("SeoDescription", category.SeoDescription) .Parameter("SeoKeyword", category.SeoKeyword) .Parameter("SeoTitle", category.SeoTitle) .Parameter("LastUpdateBy", category.LastUpdateBy) .Parameter("LastUpdateDate", category.LastUpdateDate) .Parameter("SysNos", category.SysNos) .Parameter("SysNo", category.SysNo) .Execute(); //如果更新成功才添加属性组对应关系 if (result > 0) { //保存属性组对应关系 //先清理原有属性组信息,然后重新添加现有的所有属性组 _context.Delete("PdCatAttributeGroupAso") .Where("ProductCategorySysNo", category.SysNo) .Execute(); foreach (var pdCatAttributeGroupAso in attributeGroupAso) { //添加分类属性组 result = _context.Insert <PdCatAttributeGroupAso>("PdCatAttributeGroupAso", pdCatAttributeGroupAso) .AutoMap(c => c.SysNo) .ExecuteReturnLastId <int>("SysNo"); //如果有一个属性组信息没有保存成功都视为操作失败 if (result <= 0) { return(false); } } } } return(result > 0); }
/// <summary> /// 将分类排在父分类的末尾显示 /// </summary> /// <param name="category">商品分类对象</param> /// <param name="context">供应数据库操作上线文</param> /// <returns>返回: true 成功 false 失败</returns> /// <remarks>2013-07-12 邵斌 创建</remarks> public override bool SetCategoryToLastShow(PdCategory category, IDbContext context = null) { context = context ?? Context; return (context.Sql( @"update pdcategory set displayorder = (select count(sysno)+1 from pdcategory where parentsysno=@parentSysNo and sysno<>@sysno) where sysno=@sysno") .Parameter("parentSysNo", category.ParentSysNo) .Parameter("sysno", category.SysNo) //.Parameter("sysno", category.SysNo) .Execute() > 0); }
/// <summary> /// 获取单个商品分类回溯分类列表 /// </summary> /// <param name="sysNo">分类系统编号</param> /// <returns>返回完整回溯分类列表</returns> /// <remarks>2013-08-06 邵斌 创建</remarks> public IList <PdCategory> GetCategoryRouteList(int sysNo) { PdCategory category = GetCategory(sysNo, true); IList <PdCategory> result = new List <PdCategory>(); int displayOrderIndex = 0; while (category != null) { category.DisplayOrder = displayOrderIndex++; result.Add(category); category = category.ParentCategory; } return(result.OrderByDescending(c => c.DisplayOrder).ToList()); }
/// <summary> /// 交换显示分类的显示排序 /// </summary> /// <param name="originalSysNo">交换源对象系统编号</param> /// <param name="objectiveSysNo">要进行位置交换的目标对象系统编号</param> /// <returns>返回: true 操作成功 false 操作失败</returns> /// <remarks>注意:该方法值适用于在同一父级中进行移动变更</remarks> /// <remarks>2013-07-10 邵斌 创建</remarks> public bool SwapDisplayOrder(int originalSysNo, int objectiveSysNo) { bool success = false; PdCategory original = IPdCategoryDao.Instance.GetCategory(originalSysNo); PdCategory objective = IPdCategoryDao.Instance.GetCategory(objectiveSysNo); //显示位置交换 var objectIndex = objective.DisplayOrder; objective.DisplayOrder = original.DisplayOrder; original.DisplayOrder = objectIndex; success = IPdCategoryDao.Instance.Update(original); //源对象更是是否成功 if (success) { //更新成功就更新目标对象 success = IPdCategoryDao.Instance.Update(objective); } else { //更新失败,数据还原 original.DisplayOrder = objective.DisplayOrder; IPdCategoryDao.Instance.Update(original); } if (success) { //用户操作日志 BLL.Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, string.Format("商品分类{0}与商品分类{1}互换顺序", originalSysNo, objectiveSysNo), LogStatus.系统日志目标类型.商品分类排序, originalSysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } else { //用户操作日志 BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, string.Format("商品分类{0}与商品分类{1}互换顺序失败", originalSysNo, objectiveSysNo), LogStatus.系统日志目标类型.商品分类排序, originalSysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } //返回结果 return(success); }
/// <summary> /// 添加商品分类 /// </summary> /// <param name="category">商品分类实体</param> /// <param name="attributeGroupAso">商品分类对应属性组</param> /// <returns>返回操作是否成功 true:成功 false:不成功</returns> /// <remarks>2013-06-25 邵斌 创建</remarks> public override bool CreateCategory(PdCategory category, IList <PdCatAttributeGroupAso> attributeGroupAso) { //接收新添加商品分类的系统编号 int result = 0; //启动事务 using (var _context = Context.UseSharedConnection(true)) { //添加新分类 result = _context.Insert <PdCategory>("PdCategory", category) .AutoMap(c => c.SysNo, c => c.ParentCategory, c => c.IsMaster) .ExecuteReturnLastId <int>("SysNo"); //记录返还系统编号 category.SysNo = result; //通过系统编号来判断是否添加成功 if (result > 0) { //设置分类路由 SetCateorySysNosBySysNo(category.SysNo); int index = 0; //显示序号 foreach (var pdCatAttributeGroupAso in attributeGroupAso) { index++; pdCatAttributeGroupAso.ProductCategorySysNo = category.SysNo; pdCatAttributeGroupAso.DisplayOrder = index; //添加商品属性组对应关系 result = (_context.Insert <PdCatAttributeGroupAso>("PdCatAttributeGroupAso", pdCatAttributeGroupAso) .AutoMap(p => p.SysNo) .ExecuteReturnLastId <int>("SysNo")); pdCatAttributeGroupAso.SysNo = result; //记录返回属性组对应关系的系统编号 //判断是否添加成功,如果添加失败将回滚 if (result <= 0) { return(false); } } } //设置新添加的商品分类到他父级分类末尾显示 SetCategoryToLastShow(category, _context); } return(true); }
private void AddBaseTaskObjectToList(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask bsDP = new BsDeliveryPayment(); BaseTask bsPT = new BsPaymentType(); BaseTask bsCode = new BsCode(); BaseTask bsOrganization = new BsOrganization(); BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask dsMallType = new DsMallType(); BaseTask dsDealerLevel = new DsDealerLevel(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask feSearchKeyword = new FeSearchKeyword(); BaseTask feadvertgroup = new FeAdvertGroup(); BaseTask feadvertitem = new FeAdvertItem(); BaseTask feproductgroup = new FeProductGroup(); BaseTask feproductitem = new FeProductItem(); BaseTask fnIT = new FnInvoiceType(); BaseTask fninvoice = new FnInvoice(); BaseTask fnpv = new FnReceiptVoucher(); BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem(); BaseTask fnop = new FnOnlinePayment(); BaseTask fnPaymentVoucher = new FnPaymentVoucher(); BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem(); BaseTask lgDelivery = new LgDelivery(); BaseTask lgDI = new LgDeliveryItem(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDT = new LgDeliveryType(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask lgPT = new LgPickupType(); BaseTask lgsettlement = new LgSettlement(); BaseTask lgSI = new LgSettlementItem(); BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask pdProductStatistics = new PdProductStatistics(); BaseTask soOrder = new SoOrder(); BaseTask soOrderItem = new SoOrderItem(); BaseTask soRA = new SoReceiveAddress(); BaseTask SyUG = new SyUserGroup(); BaseTask syGU = new SyGroupUser(); BaseTask syMenu = new SyMenu(); BaseTask syMenuPrivilege = new SyMenuPrivilege(); BaseTask syPrivilege = new SyPrivilege(); BaseTask syRole = new SyRole(); BaseTask syRoleMenu = new SyRoleMenu(); BaseTask syRolePrivilege = new SyRolePrivilege(); BaseTask syPermission = new SyPermission(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask syMyMenu = new SyMyMenu(); BaseTask spcombo = new SpCombo(); BaseTask spComboItem = new SpComboItem(); BaseTask spcopon = new spcoupon(); BaseTask sqpromotion = new SPpromotion(); BaseTask spromotiongift = new SPpromotiongift(); BaseTask sppromotionoverlay = new SPpromotionoverlay(); BaseTask sppromotionrule = new SPpromotionrule(); BaseTask sppromotionrulecondition = new SPpromotionrulecondition(); BaseTask sppromotionrulekeyvalue = new SPpromotionrulekeyvalue(); BaseTask syTaskConfig = new SyTaskConfig(); BaseTask whStockOut = new WhStockOut(); BaseTask whStockOutItem = new WhstockOutItem(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); BaseTask whwdy = new WHwarehouseDeliveryType(); BaseTask whWPT = new WhWarehousePickupType(); BaseTask whstockin = new WhStockIn(); BaseTask whstockinItem = new WHStockinItem(); BaseTask rcReturn = new RCReturn(); BaseTask rcReturnItem = new RcReturnItem(); listObject.Add(bsAT); listObject.Add(bsDP); listObject.Add(bsPT); listObject.Add(bsCode); listObject.Add(bsOrganization); listObject.Add(bsOrganizationWarehouse); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(dsMallType); listObject.Add(dsDealerLevel); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(fepc); listObject.Add(feSearchKeyword); listObject.Add(feadvertgroup); listObject.Add(feadvertitem); listObject.Add(feproductgroup); listObject.Add(feproductitem); listObject.Add(fnIT); listObject.Add(fnpv); listObject.Add(fnReceiptVoucherItem); listObject.Add(fnop); listObject.Add(fninvoice); listObject.Add(fnPaymentVoucher); listObject.Add(fnPaymentVoucherItem); listObject.Add(lgDelivery); listObject.Add(lgDI); listObject.Add(lgDS); listObject.Add(lgDT); listObject.Add(lgPT); listObject.Add(lgsettlement); listObject.Add(lgSI); listObject.Add(lgDeliveryPrintTemplate); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); listObject.Add(pdProductStatistics); listObject.Add(soOrder); listObject.Add(soOrderItem); listObject.Add(spcombo); listObject.Add(spComboItem); listObject.Add(spcopon); listObject.Add(sqpromotion); listObject.Add(spromotiongift); //listObject.Add(sppromotionoverlay); listObject.Add(sppromotionrule); listObject.Add(sppromotionrulecondition); listObject.Add(sppromotionrulekeyvalue); listObject.Add(syGU); listObject.Add(syUW); listObject.Add(SyUG); listObject.Add(syMenu); listObject.Add(syUser); listObject.Add(syPermission); listObject.Add(syMenuPrivilege); listObject.Add(syPrivilege); listObject.Add(syRole); listObject.Add(syRoleMenu); listObject.Add(syRolePrivilege); listObject.Add(syMyMenu); listObject.Add(syTaskConfig); listObject.Add(whStockOut); listObject.Add(whStockOutItem); listObject.Add(whwarehouse); listObject.Add(whwa); listObject.Add(whwdy); listObject.Add(whWPT); listObject.Add(whstockin); listObject.Add(whstockinItem); listObject.Add(rcReturn); listObject.Add(rcReturnItem); listObject.Add(lgDUC); listObject.Add(pdPI); listObject.Add(soRA); }
/// <summary> /// 根据商品系统编号获取商品信息 /// </summary> /// <param name="productSysNo">商品系统编号</param> /// <returns>商品信息</returns> /// <remarks>2013-08-14 邵斌 创建</remarks> public CBSimplePdProduct GetProduct(int productSysNo) { return(CacheManager.Get <CBSimplePdProduct>(CacheKeys.Items.ProductDetailInfo_, productSysNo.ToString(), delegate() { var product = Hyt.DataAccess.Web.IPdProductDao.Instance.GetProduct(productSysNo); if (product != null) { //判断商品主分类状态是否是可以购买(分类禁用和不显示视为无效) if (product.Categories.Count > 0 && product.Categories[0].IsOnline == (int)ProductStatus.是否前端展示.是 && product.Categories[0].Status == (int)ProductStatus.商品分类状态.效) { product.Status = (int)ProductStatus.商品状态.架; } else { product.Status = (int)ProductStatus.商品状态.架; } if (product != null) { product.ProductAssociationRelationCode = Hyt.BLL.Product.PdProductAssociationBo.Instance.GetRelationCode(productSysNo); PdCategory masterCategory = product.Categories.Any() ? product.Categories[0] : null; //判断商品是否设置SEO if (string.IsNullOrWhiteSpace(product.SeoTitle)) { //如果商品有主分类则将分类SEO传递给商品 if (masterCategory != null) { product.SeoTitle = product.SeoTitle ?? masterCategory.SeoTitle; product.SeoKeyword = product.SeoKeyword ?? masterCategory.SeoKeyword; product.SeoDescription = product.SeoDescription ?? masterCategory.SeoDescription; } else { product.SeoTitle = product.SeoTitle ?? product.ProductName; product.SeoKeyword = product.SeoKeyword ?? product.ProductName; product.SeoDescription = product.SeoDescription ?? product.ProductName; } } //获取商品团购信息 product.GroupShoppingSysNo = DataAccess.Tuan.IGsGroupShoppingDao.Instance.GetGroupShoppingSysNoByProduct(product.SysNo); //组合商品价格名称 IList <PdPriceType> priceTypes = GetPriceTypeItems(); PdPriceType tempType; foreach (var price in product.Prices) { tempType = priceTypes.FirstOrDefault(pn => pn.PriceSource == price.PriceSource && pn.SourceSysNo == price.SourceSysNo); price.PriceName = (tempType != null) ? tempType.TypeName : ""; } } return product; } else { return null; } })); }
/// <summary> /// 二期基础数据 /// </summary> /// <param name="listObject"></param> private void AddBaseTaskObject2ToList1(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); //BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask soRA = new SoReceiveAddress(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); listObject.Add(bsAT); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fepc); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(lgDS); listObject.Add(lgDUC); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); //listObject.Add(pdPI); listObject.Add(soRA); listObject.Add(syUW); listObject.Add(syUser); listObject.Add(whwarehouse); listObject.Add(whwa); }
/// <summary> /// 添加商品分类(返回ID) /// </summary> /// <param name="category"></param> /// <param name="attributeGroups"></param> /// <returns></returns> public int CreatePdCategory(PdCategory category, IList <PdAttributeGroup> attributeGroups) { bool success = false; IList <PdCatAttributeGroupAso> attributeGroupAso = new List <PdCatAttributeGroupAso>(); //如果设有分类属性组,将添加设置的属性组 if (attributeGroups != null && attributeGroups.Count > 0) { //遍历商品分类下对应的属性分组,并初始化数据 foreach (var group in attributeGroups) { attributeGroupAso.Add(new PdCatAttributeGroupAso() { CreatedBy = AdminAuthenticationBo.Instance.GetAuthenticatedUser().SysNo , CreatedDate = DateTime.Now, LastUpdateBy = AdminAuthenticationBo.Instance.GetAuthenticatedUser().SysNo, LastUpdateDate = DateTime.Now, ProductCategorySysNo = category.SysNo, SysNo = 0, AttributeGroupSysNo = group.SysNo }); } } category.Code = ""; //GetFreeCodeNum(category.ParentSysNo); category.CreatedBy = AdminAuthenticationBo.Instance.GetAuthenticatedUser().SysNo; category.CreatedDate = DateTime.Now; category.LastUpdateBy = category.CreatedBy; category.LastUpdateDate = category.CreatedDate; category.Status = (int)Model.WorkflowStatus.ProductStatus.商品分类状态.效; //如果分类是子分类,则将继承父分类状态和显示样式 if (category.ParentSysNo > 0) { category.SysNos = GetCategory(category.ParentSysNo).SysNos; PdCategory parentCategory = IPdCategoryDao.Instance.GetCategory(category.ParentSysNo); category.Status = parentCategory.Status; category.IsOnline = parentCategory.IsOnline; } success = IPdCategoryDao.Instance.CreateCategory(category, attributeGroupAso); //如果返回创建成功建提交事务 if (success) { //用户操作日志 BLL.Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, string.Format("新增商品分类{0}基本信息", category.SysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } else { //用户操作日志 BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, string.Format("新增商品分类{0}基本信息失败", category.SysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } BLL.Cache.DeleteCache.ProductCategory(category.SysNo); return(category.SysNo); }
/// <summary> /// 修改商品分类(返回ID) /// </summary> /// <param name="category"></param> /// <param name="attributeGroups"></param> /// <returns></returns> public int EditPdCategory(PdCategory category, IList <PdAttributeGroup> attributeGroups) { //string oldCode = null; int? oldParentSysNo = null; string oldSysNos = ""; string newSysNos = ""; bool success; //取得元数据 PdCategory updateCategory = GetCategory(category.SysNo); //判断是否需要格式化基础信息 if (updateCategory.ParentSysNo != category.ParentSysNo) { oldParentSysNo = updateCategory.ParentSysNo; //oldCode = updateCategory.; //updateCategory.Code = GetFreeCodeNum(category.ParentSysNo); //updateCategory.SysNos= oldSysNos = updateCategory.SysNos; newSysNos = IPdCategoryDao.Instance.GetNewSysNos(category.ParentSysNo, category.SysNo); updateCategory.SysNos = newSysNos; } //赋新值 updateCategory.CategoryImage = category.CategoryImage; updateCategory.CategoryName = category.CategoryName; updateCategory.LastUpdateBy = category.LastUpdateBy; updateCategory.LastUpdateDate = category.LastUpdateDate; //稍后实现系统分类code的维护 updateCategory.ParentSysNo = category.ParentSysNo; updateCategory.SeoDescription = category.SeoDescription; updateCategory.SeoKeyword = category.SeoKeyword; updateCategory.SeoTitle = category.SeoTitle; IList <PdCatAttributeGroupAso> attributeGroupAso = new List <PdCatAttributeGroupAso>(); //如果设有分类属性组,将添加设置的属性组 if (attributeGroups != null && attributeGroups.Count > 0) { //遍历商品分类下挂的属性组,并初始化数据 foreach (var group in attributeGroups) { attributeGroupAso.Add(new PdCatAttributeGroupAso() { CreatedBy = AdminAuthenticationBo.Instance.GetAuthenticatedUser().SysNo , CreatedDate = DateTime.Now, LastUpdateBy = AdminAuthenticationBo.Instance.GetAuthenticatedUser().SysNo, LastUpdateDate = DateTime.Now, ProductCategorySysNo = category.SysNo, SysNo = 0, AttributeGroupSysNo = group.SysNo }); } } //更新商品分类 success = IPdCategoryDao.Instance.EditCategory(updateCategory, attributeGroupAso); //格式化信息 if (success && oldParentSysNo != null) { //读取新分类下的空去位置,如果没有空缺位置就追加 // success = success && IPdCategoryDao.Instance.UpdataChildrenCode(oldCode,updateCategory.Code); //更新子分类系统编号路由 success = success && IPdCategoryDao.Instance.UpdateChildrenSysNos(oldSysNos, newSysNos, updateCategory.SysNo); //将该分类最近到新父分类末尾 success = success && IPdCategoryDao.Instance.SetCategoryToLastShow(updateCategory); } //提交事务 if (success) { //用户操作日志 BLL.Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, string.Format("更新商品分类{0}基本信息", category.SysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } else { //用户操作日志 BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, string.Format("更新商品分类{0}基本信息失败", category.SysNo), LogStatus.系统日志目标类型.商品分类基本信息, category.SysNo, AdminAuthenticationBo.Instance.Current.Base.SysNo); } BLL.Cache.DeleteCache.ProductCategory(category.SysNo); return(category.SysNo); }
/// <summary> /// 保存分类信息 /// </summary> /// <param name="updateCategory">分类实体对象</param> /// <returns>返回: true 成功 false 失败</returns> /// <remarks>2013-07-06 邵斌 创建</remarks> public abstract bool Update(PdCategory updateCategory);
/// <summary> /// 修改商品分类 /// </summary> /// <param name="category">商品分类实体</param> /// <param name="attributeGroupAso">商品分类对应属性组</param> /// <returns>返回操作是否成功 true:成功 false:不成功</returns> /// <remarks>2013-06-25 邵斌 创建</remarks> public abstract bool EditCategory(PdCategory category, IList <PdCatAttributeGroupAso> attributeGroupAso);
/// <summary> /// 将分类排在父分类的末尾显示 /// </summary> /// <param name="category">商品分类对象</param> /// <param name="context">供应数据库操作上线文</param> /// <returns></returns> /// <returns>返回: true 成功 false 失败</returns> /// <remarks>2013-07-12 邵斌 创建</remarks> public abstract bool SetCategoryToLastShow(PdCategory category, IDbContext context = null);