/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }