/// <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();
        }
Exemple #3
0
        /// <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());
        }
Exemple #5
0
        /// <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"
            });
        }