/// <summary> /// 是否已有属性 true/不存在 /// </summary> /// <param name="name"></param> /// <returns></returns> public bool IsExistsExt(string name, Guid appid, Guid attId) { bool bReturn = false; var commodity = SecondAttribute.ObjectSet().Where(n => n.Name == name && n.AppId == appid && n.AttributeId == attId && n.IsDel != true).FirstOrDefault(); bReturn = (null == commodity); return(bReturn); }
/// <summary> /// 添加尺寸/颜色 /// </summary> /// <param name="commodityDTO">商品实体</param> public void SaveSecondAttribute(SecondAttributeDTO secondAttributeDTO) { ContextSession contextSession = ContextFactory.CurrentThreadContext; secondAttributeDTO.EntityState = System.Data.EntityState.Added; SecondAttribute secondAttribute = new SecondAttribute().FromEntityData(secondAttributeDTO); contextSession.SaveObject(secondAttribute); contextSession.SaveChanges(); }
/// <summary> /// 获取商家颜色/尺寸 /// </summary> /// <param name="appId">appid</param> /// <returns></returns> public System.Collections.Generic.List <SecondAttributeDTO> GetSecondAttributeExt(System.Guid appId) { var query = SecondAttribute.ObjectSet().Where(n => (n.AppId == appId && n.IsDel != true)); var result = from s in query select new SecondAttributeDTO { AppId = s.AppId, AttributeId = s.AttributeId, Code = s.Code, Id = s.Id, IsDel = s.IsDel, Name = s.Name }; return(result.ToList()); }
/// <summary> /// 查询卖家所有已存在属性值 /// </summary> /// <param name="sellerID">卖家ID</param> /// <param name="attributeid">属性ID</param> /// <returns></returns> public System.Collections.Generic.List <Jinher.AMP.BTP.Deploy.CustomDTO.ColorAndSizeAttributeVM> GetAttributeBySellerIDExt(System.Guid sellerID, Guid attributeid) { var query = from n in Jinher.AMP.BTP.BE.Attribute.ObjectSet() join m in SecondAttribute.ObjectSet().Where(n => n.IsDel == false).OrderBy(n => n.SubTime) on n.Id equals m.AttributeId where m.AppId == sellerID && n.Id == attributeid orderby m.SubTime select new ColorAndSizeAttributeVM { AppId = n.AppId, AttributeId = n.Id, SecondAttributeId = m.Id, AttributeName = n.Name, SecondAttributeName = m.Name, }; return(query.ToList()); }
/// <summary> /// 获取商品颜色/尺寸 /// </summary> /// <param name="appId">appid</param> /// <param name="commodityId">商品ID</param> /// <param name="attributeId">属性ID</param> /// <returns></returns> public System.Collections.Generic.List <ColorAndSizeAttributeVM> GetColorOrSizeByAppIdExt(System.Guid appId, System.Guid commodityId, System.Guid attributeId) { var query = from n in ComAttibute.ObjectSet() join m in Jinher.AMP.BTP.BE.Attribute.ObjectSet() on n.AttributeId equals m.Id join b in SecondAttribute.ObjectSet() on n.SecondAttributeId equals b.Id where m.AppId == appId && n.CommodityId == commodityId && n.AttributeId == attributeId select new ColorAndSizeAttributeVM { AttributeId = n.AttributeId, SecondAttributeId = n.SecondAttributeId, AttributeName = m.Name, SecondAttributeName = b.Name, AppId = m.AppId, CommodityId = n.CommodityId }; return(query.ToList()); }
/// <summary> /// 属性删除 /// </summary> /// <param name="secondAttributeId">次级属性ID</param> /// <param name="appid"></param> /// <returns></returns> public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO DelSecondAttributeExt(System.Guid secondAttributeId, System.Guid appid) { try { ContextSession contextSession = ContextFactory.CurrentThreadContext; SecondAttribute secondAttribute = SecondAttribute.ObjectSet().Where(n => n.Id == secondAttributeId).FirstOrDefault(); if (secondAttribute != null) { secondAttribute.EntityState = System.Data.EntityState.Modified; secondAttribute.IsDel = true; contextSession.SaveObject(secondAttribute); contextSession.SaveChanges(); //后台线程更新属性缓存 System.Threading.ThreadPool.QueueUserWorkItem(a => { ComAttributeCacheDTO dto = new ComAttributeCacheDTO { Id = secondAttribute.Id, Name = secondAttribute.Name, AttributeId = secondAttribute.AttributeId, SubTime = secondAttribute.SubTime }; Jinher.JAP.Cache.GlobalCacheWrapper.Remove("G_AttributeInfo", dto.Id.ToString(), "BTPCache"); Jinher.JAP.Common.Loging.LogHelper.Info("删除颜色/尺寸时更新了缓存"); }); } } catch (Exception ex) { LogHelper.Error(string.Format("删除属性服务异常。secondAttributeId:{0},appid:{1}", secondAttributeId, appid), ex); return(new ResultDTO { ResultCode = 1, Message = "Error" }); } return(new ResultDTO { ResultCode = 0, Message = "Success" }); }
/// <summary> /// 添加尺寸/颜色 /// </summary> /// <param name="attributeId">属性ID</param> /// <param name="name">二级属性名</param> public ResultDTO AddSecondAttributeExt(System.Guid attributeId, string name, Guid appid) { //缓存列表 List <SecondAttributeDTO> attrList = new List <SecondAttributeDTO>(); ContextSession contextSession = ContextFactory.CurrentThreadContext; try { if (!string.IsNullOrEmpty(name)) { name = name.Replace(';', ','); string[] names = name.Split(',').Distinct().ToArray(); for (int i = 0; i < names.Length; i++) { SecondAttributeDTO secondAttributeDTO = new SecondAttributeDTO(); secondAttributeDTO.Id = Guid.NewGuid(); secondAttributeDTO.AttributeId = attributeId; secondAttributeDTO.Name = names[i]; secondAttributeDTO.AppId = appid; //this.SaveSecondAttribute(secondAttributeDTO); secondAttributeDTO.EntityState = System.Data.EntityState.Added; SecondAttribute secondAttribute = new SecondAttribute().FromEntityData(secondAttributeDTO); DateTime date = DateTime.Now.AddSeconds(i); secondAttribute.SubTime = date; contextSession.SaveObject(secondAttribute); attrList.Add(secondAttributeDTO); contextSession.SaveChanges(); } } } catch (Exception ex) { LogHelper.Error(string.Format("添加颜色尺寸服务异常。attributeId:{0},name:{1},appid:{2}", attributeId, name, appid), ex); return(new ResultDTO { ResultCode = 1, Message = "Error" }); } //后台线程更新属性缓存 System.Threading.ThreadPool.QueueUserWorkItem(a => { List <ComAttributeCacheDTO> cache = new List <ComAttributeCacheDTO>(); foreach (SecondAttributeDTO comAttr in attrList) { ComAttributeCacheDTO dto = GetComAttributeCacheDTO(comAttr); Jinher.JAP.Cache.GlobalCacheWrapper.Add("G_AttributeInfo", dto.Id.ToString(), cache, "BTPCache"); Jinher.JAP.Common.Loging.LogHelper.Info("添加颜色/尺寸时更新了缓存"); } }); return(new ResultDTO { ResultCode = 0, Message = "Success" }); }