Пример #1
0
 /// <summary>
 /// 创建店铺分类
 /// </summary>
 public static int CreateStoreClass(StoreClassInfo storeClassInfo)
 {
     return BrnMall.Core.BMAData.RDBS.CreateStoreClass(storeClassInfo);
 }
Пример #2
0
 /// <summary>
 /// 更新店铺分类
 /// </summary>
 public static void UpdateStoreClass(StoreClassInfo storeClassInfo)
 {
     BrnMall.Core.BMAData.RDBS.UpdateStoreClass(storeClassInfo);
 }
Пример #3
0
 /// <summary>
 /// 递归更新店铺分类及其子店铺分类的级别和路径
 /// </summary>
 /// <param name="storeClassList">店铺分类列表</param>
 /// <param name="storeClassInfo">店铺分类信息</param>
 /// <param name="changeLayer">变化的级别</param>
 /// <param name="parentPath">父路径</param>
 private static void UpdateChildStoreClassLayerAndPath(List<StoreClassInfo> storeClassList, StoreClassInfo storeClassInfo, int changeLayer, string parentPath)
 {
     storeClassInfo.Layer = storeClassInfo.Layer + changeLayer;
     storeClassInfo.Path = parentPath + "," + storeClassInfo.StoreCid;
     BrnMall.Data.Stores.UpdateStoreClass(storeClassInfo);
     foreach (StoreClassInfo info in storeClassList.FindAll(x => x.ParentId == storeClassInfo.StoreCid))
     {
         UpdateChildStoreClassLayerAndPath(storeClassList, info, changeLayer, storeClassInfo.Path);
     }
 }
Пример #4
0
        /// <summary>
        /// 获得店铺分类列表
        /// </summary>
        /// <param name="storeId">店铺id</param>
        /// <returns></returns>
        public static List<StoreClassInfo> GetStoreClassList(int storeId)
        {
            List<StoreClassInfo> storeClassList = new List<StoreClassInfo>();

            IDataReader reader = BrnMall.Core.BMAData.RDBS.GetStoreClassList(storeId);
            while (reader.Read())
            {
                StoreClassInfo storeClassInfo = new StoreClassInfo();
                storeClassInfo.StoreCid = TypeHelper.ObjectToInt(reader["storecid"]);
                storeClassInfo.StoreId = TypeHelper.ObjectToInt(reader["storeid"]);
                storeClassInfo.DisplayOrder = TypeHelper.ObjectToInt(reader["displayorder"]);
                storeClassInfo.Name = reader["name"].ToString();
                storeClassInfo.ParentId = TypeHelper.ObjectToInt(reader["parentid"]);
                storeClassInfo.Layer = TypeHelper.ObjectToInt(reader["layer"]);
                storeClassInfo.HasChild = TypeHelper.ObjectToInt(reader["haschild"]);
                storeClassInfo.Path = reader["path"].ToString();
                storeClassList.Add(storeClassInfo);
            }
            reader.Close();

            return storeClassList;
        }
Пример #5
0
        /// <summary>
        /// 更新店铺分类
        /// </summary>
        public static void UpdateStoreClass(StoreClassInfo storeClassInfo, int oldParentId)
        {
            if (storeClassInfo.ParentId != oldParentId)//父分类改变时
            {
                int changeLayer = 0;
                List<StoreClassInfo> storeClassList = BrnMall.Data.Stores.GetStoreClassList(storeClassInfo.StoreId);
                StoreClassInfo oldParentStoreClassInfo = storeClassList.Find(x => x.StoreCid == oldParentId);//旧的父分类
                if (storeClassInfo.ParentId > 0)//非顶层分类时
                {
                    StoreClassInfo newParentStoreClassInfo = storeClassList.Find(x => x.StoreCid == storeClassInfo.ParentId);//新的父分类
                    if (oldParentStoreClassInfo == null)
                    {
                        changeLayer = newParentStoreClassInfo.Layer - 1;
                    }
                    else
                    {
                        changeLayer = newParentStoreClassInfo.Layer - oldParentStoreClassInfo.Layer;
                    }
                    storeClassInfo.Layer = newParentStoreClassInfo.Layer + 1;
                    storeClassInfo.Path = newParentStoreClassInfo.Path + "," + storeClassInfo.StoreCid;

                    if (newParentStoreClassInfo.HasChild == 0)
                    {
                        newParentStoreClassInfo.HasChild = 1;
                        BrnMall.Data.Stores.UpdateStoreClass(newParentStoreClassInfo);
                    }
                }
                else//顶层分类时
                {
                    changeLayer = 1 - oldParentStoreClassInfo.Layer;
                    storeClassInfo.Layer = 1;
                    storeClassInfo.Path = storeClassInfo.StoreCid.ToString();
                }

                if (oldParentId > 0 && storeClassList.FindAll(x => x.ParentId == oldParentId).Count == 1)
                {
                    oldParentStoreClassInfo.HasChild = 0;
                    BrnMall.Data.Stores.UpdateStoreClass(oldParentStoreClassInfo);
                }

                foreach (StoreClassInfo info in storeClassList.FindAll(x => x.ParentId == storeClassInfo.StoreCid))
                {
                    UpdateChildStoreClassLayerAndPath(storeClassList, info, changeLayer, storeClassInfo.Path);
                }
            }

            BrnMall.Data.Stores.UpdateStoreClass(storeClassInfo);

            BrnMall.Core.BMACache.Remove(CacheKeys.MALL_STORE_CLASSLIST + storeClassInfo.StoreId);
        }
Пример #6
0
        /// <summary>
        /// 创建店铺分类
        /// </summary>
        public static void CreateStoreClass(StoreClassInfo storeClassInfo)
        {
            if (storeClassInfo.ParentId > 0)
            {
                List<StoreClassInfo> storeClassList = BrnMall.Data.Stores.GetStoreClassList(storeClassInfo.StoreId);
                StoreClassInfo parentStoreClassInfo = storeClassList.Find(x => x.StoreCid == storeClassInfo.ParentId);
                storeClassInfo.Layer = parentStoreClassInfo.Layer + 1;
                storeClassInfo.HasChild = 0;
                storeClassInfo.Path = "";
                int storeCid = BrnMall.Data.Stores.CreateStoreClass(storeClassInfo);

                storeClassInfo.StoreCid = storeCid;
                storeClassInfo.Path = parentStoreClassInfo.Path + "," + storeCid;
                BrnMall.Data.Stores.UpdateStoreClass(storeClassInfo);

                if (parentStoreClassInfo.HasChild == 0)
                {
                    parentStoreClassInfo.HasChild = 1;
                    BrnMall.Data.Stores.UpdateStoreClass(parentStoreClassInfo);
                }
            }
            else
            {
                storeClassInfo.Layer = 1;
                storeClassInfo.HasChild = 0;
                storeClassInfo.Path = "";
                int storeCid = BrnMall.Data.Stores.CreateStoreClass(storeClassInfo);

                storeClassInfo.StoreCid = storeCid;
                storeClassInfo.Path = storeCid.ToString();
                BrnMall.Data.Stores.UpdateStoreClass(storeClassInfo);
            }


            BrnMall.Core.BMACache.Remove(CacheKeys.MALL_STORE_CLASSLIST + storeClassInfo.StoreId);
        }
Пример #7
0
 /// <summary>
 /// 更新店铺分类
 /// </summary>
 public void UpdateStoreClass(StoreClassInfo storeClassInfo)
 {
     DbParameter[] parms = {
                                 GenerateInParam("@storeid", SqlDbType.Int,4, storeClassInfo.StoreId),
                                 GenerateInParam("@displayorder", SqlDbType.Int,4, storeClassInfo.DisplayOrder),
                                 GenerateInParam("@name", SqlDbType.NChar,60, storeClassInfo.Name),
                                 GenerateInParam("@parentid", SqlDbType.Int, 4, storeClassInfo.ParentId),
                                 GenerateInParam("@layer", SqlDbType.TinyInt,1,storeClassInfo.Layer),
                                 GenerateInParam("@haschild", SqlDbType.TinyInt,1,storeClassInfo.HasChild),
                                 GenerateInParam("@path", SqlDbType.Char,100, storeClassInfo.Path),
                                 GenerateInParam("@storecid", SqlDbType.Int,4, storeClassInfo.StoreCid)
                             };
     string commandText = string.Format("UPDATE [{0}storeclasses] SET [storeid]=@storeid,[displayorder]=@displayorder,[name]=@name,[parentId]=@parentId,[layer]=@layer,[haschild]=@haschild,[path]=@path WHERE [storecid]=@storecid",
                                         RDBSHelper.RDBSTablePre);
     RDBSHelper.ExecuteNonQuery(CommandType.Text, commandText, parms);
 }
Пример #8
0
 /// <summary>
 /// 创建店铺分类
 /// </summary>
 public int CreateStoreClass(StoreClassInfo storeClassInfo)
 {
     DbParameter[] parms = {
                                 GenerateInParam("@storeid", SqlDbType.Int,4, storeClassInfo.StoreId),
                                 GenerateInParam("@displayorder", SqlDbType.Int,4, storeClassInfo.DisplayOrder),
                                 GenerateInParam("@name", SqlDbType.NChar,60, storeClassInfo.Name),
                                 GenerateInParam("@parentid", SqlDbType.Int, 4, storeClassInfo.ParentId),
                                 GenerateInParam("@layer", SqlDbType.TinyInt,1,storeClassInfo.Layer),
                                 GenerateInParam("@haschild", SqlDbType.TinyInt,1,storeClassInfo.HasChild),
                                 GenerateInParam("@path", SqlDbType.Char,100, storeClassInfo.Path)
                             };
     string commandText = string.Format("INSERT INTO [{0}storeclasses]([storeid],[displayorder],[name],[parentid],[layer],[haschild],[path]) VALUES(@storeid,@displayorder,@name,@parentid,@layer,@haschild,@path);SELECT SCOPE_IDENTITY()",
                                         RDBSHelper.RDBSTablePre);
     return TypeHelper.ObjectToInt(RDBSHelper.ExecuteScalar(CommandType.Text, commandText, parms), -1);
 }
Пример #9
0
        public ActionResult AddStoreClass(StoreClassModel model)
        {
            if (AdminStores.GetStoreCidByStoreIdAndName(WorkContext.StoreId, model.StoreClassName) > 0)
                ModelState.AddModelError("StoreClassName", "名称已经存在");

            if (model.ParentId != 0 && AdminStores.GetStoreClassByStoreIdAndStoreCid(WorkContext.StoreId, model.ParentId) == null)
                ModelState.AddModelError("ParentId", "父分类不存在");

            if (ModelState.IsValid)
            {
                StoreClassInfo storeClassInfo = new StoreClassInfo()
                {
                    StoreId = WorkContext.StoreId,
                    DisplayOrder = model.DisplayOrder,
                    Name = model.StoreClassName,
                    ParentId = model.ParentId
                };

                AdminStores.CreateStoreClass(storeClassInfo);
                AddStoreAdminLog("添加店铺分类", "添加店铺分类,店铺分类为:" + model.StoreClassName);
                return PromptView("店铺分类添加成功");
            }

            LoadStoreClass(WorkContext.StoreId);
            return View(model);
        }