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