示例#1
0
        /// <summary>
        /// 根据食谱编号移除整个食谱信息
        /// </summary>
        /// <param name="recipesId"></param>
        /// <param name="phone"></param>
        /// <returns></returns>
        public Result RemoveRecipesById(int recipesId, long phone)
        {
            Result result = new Result()
            {
                Status  = true,
                Message = "删除食谱成功"
            };

            try
            {
                if (recipesId == 0)
                {
                    throw new ArgumentNullException("删除食谱,参数非法");
                }

                //食谱缓存服务
                IRecipesCache           recipesservice  = ServiceObjectContainer.Get <IRecipesCache>();
                IRelationShareInfoCache relationservice = ServiceObjectContainer.Get <IRelationShareInfoCache>();
                //删除食谱绑定关系
                bool cannext = false;
                cannext = DBConnectionManager.Instance.Writer.Update(new RelationShareDeleteSpefication(recipesId.ToString(), phone, 0).Satifasy());

                if (cannext)
                {
                    cannext = false;
                    //修改食谱信息为禁用
                    cannext = DBConnectionManager.Instance.Writer.Update(new RecipesDeleteSpefication(recipesId.ToString(), 0).Satifasy());
                }


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

                    relationservice.RemoveRelationShareByRecipes(recipesId, phone);
                    recipesservice.SetRecipesEnable(recipesId, false);
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status  = false;
                result.Message = "删除食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:RemoveRecipesById() .RecipesService"), LogType.ErrorLog);
            }

            return(result);
        }
示例#2
0
        /// <summary>
        /// 根据手机号获取喜爱的食谱集
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        public Result <IList <Recipes> > GetFavoriteRecipesByPhone(long phone)
        {
            Result <IList <Recipes> > result = new Result <IList <Recipes> >()
            {
                Status  = true,
                Message = "查找食谱成功"
            };

            try
            {
                //收藏关系缓存
                IRelationFavoriteCache favoritecache = ServiceObjectContainer.Get <IRelationFavoriteCache>();
                //食谱缓存服务
                IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();
                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 <RecipesInfo> favoriteRecipes = recipesservice.GetRecipesInfoById(favoriterecipesId);

                if (favoriteRecipes != null && favoriteRecipes.Count > 0)
                {
                    result.Data   = favoriteRecipes.CopyList <RecipesInfo, Recipes>();
                    result.Status = true;
                }
                else
                {
                    result.Status = false;
                    result.Data   = new List <Recipes>();
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Data    = new List <Recipes>();
                result.Message = "查找食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:GetFavoriteRecipesByPhone() .RecipesService"), LogType.ErrorLog);
            }

            return(result);
        }
示例#3
0
        /// <summary>
        /// 更新食谱信息
        /// </summary>
        /// <param name="recipes"></param>
        /// <returns></returns>
        public Result UpdateRecipes(Recipes recipes)
        {
            Result result = new Result()
            {
                Status  = true,
                Message = "删除食谱成功"
            };

            try
            {
                //食谱缓存服务
                IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();

                RecipesInfo info = recipes.Copy <RecipesInfo>();
                if (info == null)
                {
                    throw new ArgumentNullException("更新食谱,参数非法");
                }

                info.UpdateDate = DateTime.Now;

                result.Status = DBConnectionManager.Instance.Writer.Update(new RecipesUpdateSpefication(info).Satifasy());

                if (!result.Status)
                {
                    DBConnectionManager.Instance.Writer.Rollback();
                    result.Status  = false;
                    result.Message = "更新食谱失败,请确保请求数据合法";
                }
                else
                {
                    DBConnectionManager.Instance.Writer.Commit();
                    //更新缓存
                    recipesservice.SaveInfo(info);
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status  = false;
                result.Message = "删除食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:UpdateRecipes() .RecipesService"), LogType.ErrorLog);
            }

            return(result);
        }
示例#4
0
        /// <summary>
        /// 创建一个食谱
        /// </summary>
        /// <param name="recipes"></param>
        /// <returns></returns>
        public Result CreatRecipes(Recipes recipes)
        {
            Result result = new Result()
            {
                Status  = true,
                Message = "创建食谱成功"
            };

            try
            {
                //食谱缓存服务
                IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();

                RecipesInfo addinfo = recipes.Copy <RecipesInfo>();
                if (addinfo == null)
                {
                    throw new ArgumentNullException("新增食谱信息,参数不能为空");
                }

                result.Status = DBConnectionManager.Instance.Writer.Insert(new RecipesAddSpefication(addinfo).Satifasy());

                if (result.Status)
                {
                    DBConnectionManager.Instance.Writer.Commit();
                    //更新缓存
                    recipesservice.SaveInfo(addinfo);
                }
                else
                {
                    DBConnectionManager.Instance.Writer.Rollback();
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status  = false;
                result.Message = "创建食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:CreatRecipes() .RecipesService"), LogType.ErrorLog);
            }

            return(result);
        }
示例#5
0
        /// <summary>
        /// 根据单品编号获取包含此单品的食谱集
        /// </summary>
        /// <param name="dishId">单品编号</param>
        /// <param name="num">获取食谱集数量</param>
        /// <returns></returns>
        public Result <IList <Recipes> > GetSomeRecpiesByDishId(int dishId, int num)
        {
            Result <IList <Recipes> > result = new Result <IList <Recipes> >()
            {
                Status  = true,
                Data    = new List <Recipes>(),
                Message = "成功获取包含此单品的食谱集"
            };

            if (dishId == 0 || num == 0)
            {
                result.Status  = false;
                result.Message = "获取食谱失败,请检查参数合法性";
                return(result);
            }
            try
            {
                //获取包含单品编号的关系集合
                IList <RelationShareInfo> shareinfo = ServiceObjectContainer.Get <IRelationShareInfoCache>().GetRelationShareByDishId(dishId).OrderByDescending(t => t.UpdateDate).Take(num).ToList();

                if (shareinfo != null && shareinfo.Count > 0)
                {
                    //获取食谱集合信息
                    IRecipesCache cacheservice = ServiceObjectContainer.Get <IRecipesCache>();

                    foreach (var item in shareinfo)
                    {
                        Recipes recipe = cacheservice.GetRecipesInfoById(item.RecipesId).Copy <Recipes>();
                        result.Data.Add(recipe);
                    }
                }
            }
            catch (Exception ex)
            {
                result.Status     = false;
                result.Message    = "获取食谱集异常:" + ex.Message;
                result.StatusCode = "6000001";
            }

            return(result);
        }
示例#6
0
        /// <summary>
        /// 根据食谱编号获取单个食谱信息
        /// </summary>
        /// <param name="recipesId"></param>
        /// <returns></returns>
        public Result <Recipes> GetRecipesById(int recipesId)
        {
            Result <Recipes> result = new Result <Recipes>()
            {
                Status  = true,
                Message = "查找食谱成功"
            };

            try
            {
                if (recipesId == 0)
                {
                    throw new ArgumentException("获取食谱,参数非法");
                }
                //食谱缓存服务
                IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();

                RecipesInfo recipe = recipesservice.GetRecipesInfoById(recipesId);

                if (recipe != null)
                {
                    result.Data = recipe.Copy <Recipes>();
                }
                else
                {
                    result.Status  = false;
                    result.Message = "获取食谱失败,未找到对应食谱";
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "查找食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:GetRecipesById() .RecipesService"), LogType.ErrorLog);
            }


            return(result);
        }
示例#7
0
        /// <summary>
        /// 根据手机号获取用户的食谱集
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        public Result <IList <Recipes> > GetRecipesByPhone(long phone)
        {
            Result <IList <Recipes> > result = new Result <IList <Recipes> >()
            {
                Status  = true,
                Message = "查找食谱成功"
            };

            try
            {
                //食谱缓存服务
                IRecipesCache recipesservice = ServiceObjectContainer.Get <IRecipesCache>();
                if (phone == 0)
                {
                    throw new ArgumentException("获取食谱,参数非法");
                }

                IList <RecipesInfo> recipeslist = recipesservice.GetRecipesInfoByPhone(phone);
                if (recipeslist != null && recipeslist.Count > 0)
                {
                    result.Data = recipeslist.CopyList <RecipesInfo, Recipes>();
                }
                else
                {
                    result.Status  = false;
                    result.Message = "获取食谱失败,未找到对应食谱";
                    result.Data    = new List <Recipes>();
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "查找食谱出错:" + ex.Message;
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:GetRecipesByPhone() .RecipesService"), LogType.ErrorLog);
            }


            return(result);
        }
        /// <summary>
        /// 收藏单品食物到食谱
        /// </summary>
        /// <param name="collect"></param>
        /// <returns></returns>
        public Result CollectDishInfo(DishCollect collect)
        {
            Result result = new Result()
            {
                Status     = true,
                StatusCode = "CD000",
                Message    = "收藏单品食物成功"
            };

            try
            {
                IRecipesCache             recipesservice  = ServiceObjectContainer.Get <IRecipesCache>();
                IRelationShareInfoCache   relationservice = ServiceObjectContainer.Get <IRelationShareInfoCache>();
                RecipesInfo               updaterecipes   = null;
                IList <RelationShareInfo> shareinfo       = null;
                //新增一条单品记录
                bool cannext = false;

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

                    if (updaterecipes == null)
                    {
                        throw new ArgumentNullException("收藏食物,食谱参数不能为空");
                    }
                    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();
                    //更新缓存
                    recipesservice.SaveInfo(updaterecipes);

                    foreach (RelationShareInfo item in shareinfo)
                    {
                        relationservice.SaveInfo(item);
                    }
                }
            }
            catch (Exception ex)
            {
                DBConnectionManager.Instance.Writer.Rollback();
                result.Status     = false;
                result.Message    = "收藏单品食物失败" + ex.Message;
                result.StatusCode = "CD001";
                LoggerUtils.LogIn(LoggerUtils.ColectExceptionMessage(ex, "At service:CollectDishInfo() .DishService"), LogType.ErrorLog);
            }
            return(result);
        }
        /// <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);
        }