Пример #1
0
        /// <summary>
        /// 根据编号精确获取单品食物
        /// </summary>
        /// <param name="dishId">单品食物编号</param>
        /// <returns></returns>
        public Result <Dish> SearchDishInfoById(int dishId)
        {
            Result <Dish> result = new Result <Dish>()
            {
                Data   = null,
                Status = true
            };

            try
            {
                IDishCache service  = ServiceObjectContainer.Get <IDishCache>();
                DishInfo   dishinfo = service.GetDishInfoById(dishId);
                if (dishinfo != null)
                {
                    result.Data   = dishinfo.Copy <Dish>();
                    result.Status = true;
                }
                else
                {
                    result.Status = false;
                }
            }
            catch (Exception ex)
            {
                result.Status     = false;
                result.Message    = "查询单品食物出错:" + ex.Message;
                result.StatusCode = "SD001";
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:SearchDishInfoById() .DishService"), LogType.ErrorLog);
            }

            return(result);
        }
Пример #2
0
        /// <summary>
        /// 更新门店信息
        /// </summary>
        /// <param name="shopInfo">门店信息</param>
        /// <returns>操作结果</returns>
        public Result UpdateShopInfo(Shop shopInfo)
        {
            Result result = new Result()
            {
                Status  = true,
                Message = "更新门店成功"
            };

            try
            {
                bool cannext = false;

                ShopInfo info = shopInfo.Copy <ShopInfo>();
                if (info == null)
                {
                    throw new ArgumentNullException("更新门店,参数不能为空");
                }

                IShopCache shopservice = ServiceObjectContainer.Get <IShopCache>();
                IDishCache dishservice = ServiceObjectContainer.Get <IDishCache>();

                info.UpdateDate = DateTime.Now;
                //更新门店信息
                cannext = DBConnectionManager.Instance.Writer.Update(new ShopUpdateSpefication(info).Satifasy());
                //门店信息更新成功,更新关联食物的门店名称
                if (cannext)
                {
                    cannext = false;
                    cannext = DBConnectionManager.Instance.Writer.Update(new DishShopNameUpdateSpefication(info.ShopId, info.ShopName).Satifasy());
                }
                result.Status = cannext;

                if (!cannext)
                {
                    DBConnectionManager.Instance.Writer.Rollback();
                    result.Message = "更新门店失败,请确认参数合法";
                }
                else
                {
                    DBConnectionManager.Instance.Writer.Commit();
                    //同步缓存
                    shopservice.SaveInfo(info);
                    dishservice.UpdateDishInfoByChangeShopName(shopInfo.ShopId, shopInfo.ShopName);
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status  = false;
                result.Message = "更新门店出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:UpdateShopInfo() .ShopService"), LogType.ErrorLog);
            }

            return(result);
        }
Пример #3
0
        public Result <IList <Dish> > GetFavoriteDishByPhone(long phone)
        {
            Result <IList <Dish> > result = new Result <IList <Dish> >()
            {
                Status  = true,
                Message = "查找单品集合成功"
            };

            try
            {
                //收藏关系缓存
                IRelationFavoriteCache favoritecache = ServiceObjectContainer.Get <IRelationFavoriteCache>();
                //食谱缓存服务
                IDishCache dishcache = ServiceObjectContainer.Get <IDishCache>();
                if (phone == 0)
                {
                    throw new ArgumentException("获取食谱,参数非法");
                }

                //获取收藏关系
                IList <FavoriteInfo> favoritelist      = favoritecache.GetFavoriteByPhone(phone, Model.Enum.FavoriteTypeEnum.收藏单品);
                IList <int>          favoriterecipesId = favoritelist.Select(s => s.FavoriteId).ToList();

                //获取单品信息
                IList <DishInfo> favoritedishs = dishcache.GetDishInfoById(favoriterecipesId);

                if (favoritedishs != null && favoritedishs.Count > 0)
                {
                    result.Data   = favoritedishs.CopyList <DishInfo, Dish>();
                    result.Status = true;
                }
                else
                {
                    result.Status = false;
                    result.Data   = new List <Dish>();
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Data    = new List <Dish>();
                result.Message = "查找单品出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:GetFavoriteDishByPhone() .DishService"), LogType.ErrorLog);
            }

            return(result);
        }
Пример #4
0
        /// <summary>
        /// 根据食谱编号获取收藏的单品集合
        /// </summary>
        /// <param name="recipesId"></param>
        /// <returns></returns>
        public Result <IList <Dish> > GetCollectDishList(int recipesId)
        {
            Result <IList <Dish> > result = new Result <IList <Dish> >()
            {
                Data    = new List <Dish>(),
                Message = "查询单品信息集合成功",
                Status  = true
            };

            try
            {
                //获取分享关系集合
                IRelationShareInfoCache relationcache = ServiceObjectContainer.Get <IRelationShareInfoCache>();

                IList <RelationShareInfo> relationshares = relationcache.GetRelationShareByReceipId(recipesId);

                //查询单品信息
                if (relationshares != null && relationshares.Count > 0)
                {
                    IDishCache  dishcache = ServiceObjectContainer.Get <IDishCache>();
                    IList <int> dishIds   = new List <int>();
                    foreach (var share in relationshares)
                    {
                        DishInfo dish = dishcache.GetDishInfoById(share.DishId);
                        result.Data.Add(dish.Copy <Dish>());
                    }
                }
            }
            catch (Exception ex)
            {
                result.Status     = false;
                result.Message    = "查询分享单品食物出错:" + ex.Message;
                result.StatusCode = "GSD001";
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:GetCollectDishList() .DishService"), LogType.ErrorLog);
            }


            return(result);
        }
Пример #5
0
        /// <summary>
        /// 筛选门店热门食物
        /// </summary>
        /// <param name="shopId">门店编号</param>
        /// <returns></returns>
        Result <IList <Dish> > IShakeService.ShakePopDishForShop(int shopId)
        {
            Result <IList <Dish> > result = new Result <IList <Dish> >()
            {
                Data       = new List <Dish>(),
                Status     = true,
                Message    = "筛选门店热门单品成功",
                StatusCode = "SPD000"
            };

            try
            {
                if (shopId == 0)
                {
                    throw new ArgumentNullException("删选门店编号参数无法为0");
                }

                //食谱缓存服务
                IDishCache dishcache = ServiceObjectContainer.Get <IDishCache>();

                //从缓存里加载所有单品
                IList <Dish> dishlist = dishcache.GetDishInfoByShop(shopId).CopyList <DishInfo, Dish>();
                if (dishlist != null && dishlist.Count > 0)
                {
                    //降序修改时间排列 取前4
                    result.Data = dishlist.OrderByDescending(o => o.UpdateDate).Take(4).ToList();
                }
            }
            catch (Exception ex)
            {
                result.Status     = false;
                result.Message    = "筛选门店热门单品失败," + ex.Message;
                result.StatusCode = "SPD001";
                //记录日志
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:ShakePopDishForShop() .ShakeService"), LogType.ErrorLog);
            }

            return(result);
        }
Пример #6
0
        /// <summary>
        /// 分享单品食物信息
        /// </summary>
        /// <param name="share"></param>
        /// <returns></returns>
        public Result ShareDishInfo(DishShare share)
        {
            Result result = new Result()
            {
                Status     = true,
                StatusCode = "SSD000",
                Message    = "分享单品食物成功"
            };

            try
            {
                //新增一条单品记录
                bool        cannext                 = false;
                DishInfo    dishinfo                = share.DishInfo.Copy <DishInfo>();
                ShopInfo    updateshop              = share.ShopInfo.Copy <ShopInfo>();
                RecipesInfo updaterecipes           = share.RecipesInfo.Copy <RecipesInfo>();
                IList <RelationShareInfo> shareinfo = null;
                if (dishinfo == null)
                {
                    throw new ArgumentNullException("创建食物,单品食物参数不能为空");
                }
                if (updateshop == null)
                {
                    throw new ArgumentNullException("创建食物,门店信息参数不能为空");
                }
                if (updaterecipes == null)
                {
                    throw new ArgumentNullException("创建食物,食谱参数不能为空");
                }

                cannext = DBConnectionManager.Instance.Writer.Insert(new DishAddSpefication(dishinfo).Satifasy());

                //新增一条单品与食谱关系记录
                if (cannext)
                {
                    cannext   = false;
                    shareinfo = new List <RelationShareInfo>();
                    RelationShareInfo sharerelation = new RelationShareInfo()
                    {
                        DishId     = dishinfo.DIshId,
                        Phone      = share.RecipesInfo.Phone,
                        RecipesId  = share.RecipesInfo.RecipesId,
                        UpdateDate = DateTime.Now
                    };
                    shareinfo.Add(sharerelation);
                    cannext = DBConnectionManager.Instance.Writer.Insert(new RelationShareAddSpefication(shareinfo).Satifasy());
                }
                //更新门店信息(更新操作时间)
                if (cannext)
                {
                    updateshop.UpdateDate = DateTime.Now;
                    cannext = DBConnectionManager.Instance.Writer.Update(new ShopUpdateSpefication(updateshop).Satifasy());
                }
                //更新食谱信息(更新操作时间)
                if (cannext)
                {
                    updaterecipes.UpdateDate = DateTime.Now;
                    cannext = DBConnectionManager.Instance.Writer.Update(new RecipesUpdateSpefication(updaterecipes).Satifasy());
                }

                if (!cannext)
                {
                    DBConnectionManager.Instance.Writer.Rollback();
                    result.Status  = false;
                    result.Message = "分享单品食物失败,请确保请求数据合法";
                }
                else
                {
                    DBConnectionManager.Instance.Writer.Commit();

                    //更新缓存
                    IRelationShareInfoCache shareservice = ServiceObjectContainer.Get <IRelationShareInfoCache>();
                    foreach (RelationShareInfo item in shareinfo)
                    {
                        shareservice.SaveInfo(item);
                    }


                    IDishCache dishservice = ServiceObjectContainer.Get <IDishCache>();
                    dishservice.SaveInfo(dishinfo);

                    IShopCache shopservice = ServiceObjectContainer.Get <IShopCache>();
                    shopservice.SaveInfo(updateshop);

                    IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();
                    recipesservice.SaveInfo(updaterecipes);
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status     = false;
                result.Message    = "分享单品食物失败:" + ex.Message;
                result.StatusCode = "SSD001";
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:ShareDishInfo() .DishService"), LogType.ErrorLog);
            }
            return(result);
        }