public ActionResult AddFavoriteShop(int shopId) { if(!User.Identity.IsAuthenticated) return Json(new { type = 2 }, JsonRequestBehavior.AllowGet); try { ShopModel shopModel = new ShopModel(); UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); if(userModel.GetUserFavoriteShop(shopId, userInfo.Id) != null) return Json(new { type = 1 }, JsonRequestBehavior.AllowGet); UserFavoriteShop favShop = new UserFavoriteShop(); favShop.UserId = userInfo.Id; favShop.ShopId = shopId; favShop.CreateTime = DateTime.Now; userModel.Add(favShop); } catch(Exception ex) { return Json(new { type = 0, data = ex.Message }, JsonRequestBehavior.AllowGet); } return Json(new { type = 1 }, JsonRequestBehavior.AllowGet); }
public ActionResult CancelAllUserOrders() { ShopModel sm = new ShopModel(); try { bool result = sm.CancelAllAvailableOrder(); } catch(Exception ex) { return Json(new { status = 0, msg = "取消订单失败." + ex.Message }, JsonRequestBehavior.AllowGet); } return Json(new { status = 1, msg = "取消订单成功" }, JsonRequestBehavior.AllowGet); }
public ActionResult AddComment(FormCollection formCollection) { int shopId = int.Parse(formCollection.Get("ShopId")); string star = formCollection.Get("CommentStar"); string payMoney = formCollection.Get("PayMoney"); string deliveryTime = formCollection.Get("DeliveryTime"); string content = formCollection.Get("CommentContent"); string requestUrl = formCollection.Get("RequestUrl"); UserModel userModel = new UserModel(); ShopModel shopModel = new ShopModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); ShopComment shopComment = new ShopComment(); shopComment.ShopId = shopId; shopComment.UserId = userInfo.Id; shopComment.Stars = String.IsNullOrWhiteSpace(star) ? (short)0 : short.Parse(star); shopComment.PayMoney = String.IsNullOrWhiteSpace(payMoney) ? (short)0 : short.Parse(payMoney); shopComment.DeliveryTime = String.IsNullOrWhiteSpace(deliveryTime) ? (short)0 : short.Parse(deliveryTime); shopComment.Comment = content; shopComment.CreateTime = DateTime.Now; shopModel.Add(shopComment); short shopAvgStars = (short)Math.Round(shopModel.GetShopComments(shopComment.ShopId).Average(r => r.Stars)); short shopAvgPayMoney = (short)Math.Round(shopModel.GetShopComments(shopComment.ShopId).Average(r => r.PayMoney)); short shopAvgDeliveryTime = (short)Math.Round(shopModel.GetShopComments(shopComment.ShopId).Average(r => r.DeliveryTime)); ShopRankingAttribute shopRankingAttr = shopModel.GetShopRankingAttribute(shopId); shopRankingAttr.Stars = shopAvgStars; shopRankingAttr.AveragePayMoney = shopAvgPayMoney; shopRankingAttr.DeliveryTime = shopAvgDeliveryTime; shopModel.Save(); Shop shopInfo = shopModel.GetShop(shopId); userModel.AddUserPoint(userInfo.Id, "对店铺 <a href=\"/shop/detail/" + shopId + "\">" + shopInfo.Name + "</a> 发表评论", 2); userModel.AddUserMessage(userInfo.Id, "积分动态", "您因对店铺 <a href=\"/shop/detail/" + shopId + "\">" + shopInfo.Name + "</a>进行了评论而获得了" + 2 + "点积分。"); return Redirect(requestUrl); }
public void DeleteOrderDetail(int orderId) { ShopModel sm = new ShopModel(); UserOrderDetail orderDetail = sm.GetUserOrderDetail(orderId); sm.RemoveUserOrderDetail(orderDetail); Clients.All.broadcastOrderDelete(orderId); }
public void ChangeOrderDetail(int orderId, short count) { ShopModel sm = new ShopModel(); UserOrderDetail orderDetail = sm.GetUserOrderDetail(orderId); orderDetail.OrderCount = count; sm.Save(); Clients.All.broadcastOrderChange(orderId, count); }
public ActionResult CheckOut() { HttpCookie orderCookie = Request.Cookies.Get("u_order"); var jser = new System.Web.Script.Serialization.JavaScriptSerializer(); Order order = jser.Deserialize<Order>(HttpUtility.UrlDecode(orderCookie.Value)); List<string> takeoutTimes = new List<string>(); DateTime timeStart = DateTime.Parse(DateTime.Now.ToString("HH:mm")); int minuteNow = timeStart.Minute; if(minuteNow < 15) timeStart = timeStart.AddMinutes(15 - minuteNow); else if(minuteNow < 30) timeStart = timeStart.AddMinutes(30 - minuteNow); else if(minuteNow < 45) timeStart = timeStart.AddMinutes(45 - minuteNow); else timeStart = timeStart.AddMinutes(60 - minuteNow); ShopModel shopModel = new ShopModel(); Shop shopInfo = shopModel.GetShop(order.ShopId); if(TimeSpan.Compare(shopInfo.OfficeTimeBegin, timeStart.TimeOfDay) > 0) timeStart = DateTime.Parse(shopInfo.OfficeTimeBegin.ToString("HH:00")); while(timeStart.TimeOfDay <= shopInfo.OfficeTimeEnd && timeStart.Day <= DateTime.Now.Day) { takeoutTimes.Add(timeStart.ToString("HH:mm")); timeStart = timeStart.AddMinutes(15); } ViewBag.TakeoutTime = takeoutTimes; return View(order); }
public int ToggleShopHidden(int shopId) { bool hidden = false; try { ShopModel shopModel = new ShopModel(); Shop shop = shopModel.GetShop(shopId); hidden = shop.Hidden = shop.Hidden ? false : true; shopModel.Save(); } catch { return 0; } return hidden ? 1 : 0; }
public ActionResult Create(int i = 1) { ShopModel shopModel = new ShopModel(); var shopCategories = shopModel.GetShopCategories(); SelectList shopCategoryList = new SelectList(shopCategories, "Id", "Value"); List<SelectListItem> shopCategorySelectList = shopCategoryList.ToList(); ViewBag.ShopCategorySelectList = shopCategorySelectList; BaseDataModel baseDataModel = new BaseDataModel(); var cityDistricts = baseDataModel.GetLocationsByParentId(214); ViewBag.CityDistrictSelectList = (new SelectList(cityDistricts, "Id", "Value")).ToList(); ViewBag.ServiceAreaSelectList = new List<ServiceArea>(); ViewBag.ShopDisheCategoryList = new List<SelectListItem>(); ViewBag.ShopLogo = Url.Content("/Contents/ShopImages/shop_default_icon.png"); ViewBag.OffsetTime = offsetTime; return View("Edit"); }
public ActionResult Edit(string shopData) { UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); ShopModel shopModel = new ShopModel(); var jser = new System.Web.Script.Serialization.JavaScriptSerializer(); ShopEditorObject shopDataObj = jser.Deserialize<ShopEditorObject>(shopData); ShopWithSAObject newShopInfo = shopDataObj.ShopBaseInfo; int shopId = newShopInfo.Id; Shop shopInfo = shopModel.GetShop(shopId); if(userInfo.UserGradeCategory.GradeLevel != 9 && userInfo.Id != shopInfo.CreateBy) return Redirect("/"); shopInfo.Name = newShopInfo.Name; shopInfo.Address = newShopInfo.Address; shopInfo.PhoneNumber = newShopInfo.PhoneNumber; shopInfo.CategoryId = newShopInfo.CategoryId; shopInfo.OfficeTimeBegin = newShopInfo.OfficeTimeBegin; shopInfo.OfficeTimeEnd = newShopInfo.OfficeTimeEnd; shopInfo.UpSendPrice = newShopInfo.UpSendPrice; shopInfo.Remark = newShopInfo.Remark; shopInfo.Latitude = newShopInfo.Latitude; shopInfo.Longitude = newShopInfo.Longitude; shopInfo.LastModifyAt = DateTime.Now; shopInfo.LastModifyBy = userInfo.Id; if (!String.IsNullOrWhiteSpace(newShopInfo.Logo)) { string sourcePath = Server.MapPath(newShopInfo.Logo); string fileName = Path.GetFileName(sourcePath); if (!System.IO.File.Exists(Server.MapPath("~/Contents/ShopImages/") + fileName)) System.IO.File.Move(sourcePath, Server.MapPath("~/Contents/ShopImages/") + fileName); newShopInfo.Logo = fileName; } else newShopInfo.Logo = new Random().Next(1, 7) + ".jpg"; shopInfo.Logo = newShopInfo.Logo; shopModel.Save(); ShopModifyLog editLog = new ShopModifyLog(); editLog.ShopId = shopId; editLog.ModifyBy = userInfo.Id; editLog.ModifyAt = DateTime.Now; shopModel.Add(editLog); shopModel.DeleteShopServiceAreas(shopId); if (newShopInfo.ServiceAreas != null) { foreach (int saItem in newShopInfo.ServiceAreas) { ShopServiceArea shopServiceArea = new ShopServiceArea(); shopServiceArea.ShopId = shopId; shopServiceArea.AreaId = saItem; shopModel.AddWithoutSave(shopServiceArea); } shopModel.Save(); } shopModel.DeleteDisheCategories(shopId); shopModel.DeleteDishes(shopId); List<DisheWithCategoryDetailObject> disheWithCats = shopDataObj.DisheWithCategoryDetail; foreach (DisheWithCategoryDetailObject dwcItem in disheWithCats) { ShopDisheCategory disheCategory = new ShopDisheCategory(); disheCategory.ShopId = shopId; disheCategory.Value = dwcItem.CategoryName; shopModel.Add(disheCategory); foreach (ShopDishe disheItem in dwcItem.Dishes) { ShopDishe dishe = disheItem; dishe.ShopId = shopId; dishe.CategoryId = disheCategory.Id; shopModel.AddWithoutSave(dishe); } shopModel.Save(); } return Json(new { status = 1, url = "/shop/detail/" + shopId }, JsonRequestBehavior.AllowGet); }
public ActionResult Edit(int id) { ShopModel shopModel = new ShopModel(); Shop shopBaseInfo = shopModel.GetShop(id); UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); if(userInfo.UserGradeCategory.GradeLevel != 9 && shopBaseInfo.CreateBy != userInfo.Id) return Redirect("/"); List<V_ShopDisheWithCategory> shopDisheWithCategory = shopModel.GetShopDishesWithCategory(id).OrderByDescending(r => r.DisheCategoryOrder).ToList(); var shopCategories = shopModel.GetShopCategories(); SelectList shopCategoryList = new SelectList(shopCategories, "Id", "Value"); List<SelectListItem> shopCategorySelectList = shopCategoryList.ToList(); for(int i = 0; i < shopCategorySelectList.Count; i++) if(shopCategorySelectList[i].Value == shopBaseInfo.CategoryId.ToString()) { shopCategorySelectList[i].Selected = true; break; } ViewBag.ShopCategorySelectList = shopCategorySelectList; BaseDataModel baseDataModel = new BaseDataModel(); var cityDistricts = baseDataModel.GetLocationsByParentId(214); ViewBag.CityDistrictSelectList = (new SelectList(cityDistricts, "Id", "Value")).ToList(); List<ServiceArea> shopServiceAraes = shopModel.GetShopServiceAreas(id).ToList() .Select(r => new ServiceArea() { Id = r.AreaId, ParentId = r.ParentId, Value = r.ServiceArea, AreaType = r.AreaType }).ToList(); ViewBag.ServiceAreaSelectList = shopServiceAraes; ViewBag.ShopDisheCategoryList = shopDisheWithCategory.GroupBy(r => new { r.CategoryId, r.CategoryValue }) .Select(r => new SelectListItem() { Value = r.Key.CategoryId.ToString(), Text = r.Key.CategoryValue }).ToList(); ViewBag.ShopLogo = Url.Content(shopImagePath + shopBaseInfo.Logo); ViewBag.OffsetTime = offsetTime; return View(new ShopDetailEditorModel(shopBaseInfo, shopDisheWithCategory)); }
public ActionResult Detail(int id, int p = 1) { id = 173; ShopModel shopModel = new ShopModel(); V_ShopDetail shopInfo = shopModel.GetShopDetail(id); if (shopInfo == null) return RedirectToAction("HttpError404", "Error"); /*ShopRankingAttribute rankAttr = shopModel.GetShopRankingAttribute(id); rankAttr.Visits += 1; shopModel.Save();*/ ViewData["ShowShopPhone"] = true; var shopComments = shopModel.GetShopCommentsWithUserInfo(id); var shopServiceAreas = shopModel.GetShopServiceAreas(id); var shopDishes = shopModel.GetShopDishesWithCategory(id); ViewBag.UserFavoriteThisShop = false; ViewBag.UserId = -1; if(User.Identity.IsAuthenticated) { UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); ViewBag.UserId = userInfo.Id; ViewBag.UserName = userInfo.Name; UserFavoriteShop userFavoriteShop = userModel.GetUserFavoriteShop(id, userInfo.Id); if(userFavoriteShop != null) ViewBag.UserFavoriteThisShop = true; } ViewBag.Id = id; Session["ShopDetailPhone"] = shopInfo.PhoneNumber; int pageSize = 5; int shopCommentsCount = shopComments.Count(); ViewBag.ShopCommentsCount = shopCommentsCount; Paging.ToPaging(p, shopCommentsCount, this, pageSize); return View(new ShopDetailModel(shopInfo, shopServiceAreas, shopDishes, shopComments.Skip((p - 1) * pageSize).Take(pageSize))); }
public ActionResult CreateNewUserOrder() { ShopModel sm = new ShopModel(); UserModel um = new UserModel(); int availableOrderId = sm.GetAvailableUserOrderId(); if(availableOrderId != -1) return Json(new { status = 0, msg = availableOrderId }, JsonRequestBehavior.AllowGet); UserOrder order = new UserOrder(); UserInfo userInfo = um.GetUserInfo(User.Identity.Name); order.Available = true; order.CreateBy = userInfo.Id; order.CreateTime = DateTime.Now; try { sm.Add(order); } catch(Exception ex) { return Json(new { status = 0, msg = ex.Message }, JsonRequestBehavior.AllowGet); } return Json(new { status = 1, msg = order.Id }, JsonRequestBehavior.AllowGet); }
public ActionResult Create(string shopData) { ShopModel shopModel = new ShopModel(); var jser = new System.Web.Script.Serialization.JavaScriptSerializer(); ShopEditorObject shopDataObj = jser.Deserialize<ShopEditorObject>(shopData); ShopWithSAObject newShopInfo = shopDataObj.ShopBaseInfo; UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); Shop shopInfo = new Shop(); shopInfo.Name = newShopInfo.Name; shopInfo.Address = newShopInfo.Address; shopInfo.PhoneNumber = newShopInfo.PhoneNumber; shopInfo.CategoryId = newShopInfo.CategoryId; shopInfo.OfficeTimeBegin = newShopInfo.OfficeTimeBegin; shopInfo.OfficeTimeEnd = newShopInfo.OfficeTimeEnd; shopInfo.UpSendPrice = newShopInfo.UpSendPrice; shopInfo.Remark = newShopInfo.Remark; shopInfo.Latitude = newShopInfo.Latitude; shopInfo.Longitude = newShopInfo.Longitude; shopInfo.CreateTime = DateTime.Now; shopInfo.LastModifyAt = shopInfo.CreateTime; shopInfo.CreateBy = userInfo.Id; shopInfo.LastModifyBy = shopInfo.CreateBy; shopInfo.Hidden = true; if (!String.IsNullOrWhiteSpace(newShopInfo.Logo)) { string sourcePath = Server.MapPath(newShopInfo.Logo); string fileName = Path.GetFileName(sourcePath); if (!System.IO.File.Exists(Server.MapPath("~/Contents/ShopImages/") + fileName)) System.IO.File.Move(sourcePath, Server.MapPath("~/Contents/ShopImages/") + fileName); newShopInfo.Logo = fileName; } else newShopInfo.Logo = new Random().Next(1, 7) + ".jpg"; shopInfo.Logo = newShopInfo.Logo; shopModel.Add(shopInfo); shopModel.Save(); int shopId = shopInfo.Id; shopModel.DeleteShopServiceAreas(shopId); if (newShopInfo.ServiceAreas != null) { foreach (int saItem in newShopInfo.ServiceAreas) { ShopServiceArea shopServiceArea = new ShopServiceArea(); shopServiceArea.ShopId = shopId; shopServiceArea.AreaId = saItem; shopModel.AddWithoutSave(shopServiceArea); } shopModel.Save(); } try { shopModel.DeleteDisheCategories(shopId); shopModel.DeleteDishes(shopId); double totalPrice = 0; List<DisheWithCategoryDetailObject> disheWithCats = shopDataObj.DisheWithCategoryDetail; foreach(DisheWithCategoryDetailObject dwcItem in disheWithCats) { ShopDisheCategory disheCategory = new ShopDisheCategory(); disheCategory.ShopId = shopId; disheCategory.Value = dwcItem.CategoryName; shopModel.Add(disheCategory); foreach(ShopDishe disheItem in dwcItem.Dishes) { ShopDishe dishe = disheItem; dishe.ShopId = shopId; dishe.CategoryId = disheCategory.Id; shopModel.AddWithoutSave(dishe); totalPrice += dishe.Price; } shopModel.Save(); } ShopRankingAttribute rankingAttribute = new ShopRankingAttribute(); rankingAttribute.ShopId = shopId; rankingAttribute.Stars = 0; rankingAttribute.AveragePayMoney = (short)(totalPrice / disheWithCats.Select(r => r.Dishes.Count).Sum(r => r)); rankingAttribute.DeliveryTime = 30; shopModel.Add(rankingAttribute); } catch(Exception ex) { return Json(new { status = 0, data = ex.InnerException }, JsonRequestBehavior.AllowGet); } return Json(new { status = 1, url = "/shop/detail/" + shopId }, JsonRequestBehavior.AllowGet); }
public void Join(int userId, int shopId) { List<OrderDetail> orders = new List<OrderDetail>(); ShopModel sm = new ShopModel(); UserModel um = new UserModel(); UserInfo userInfo = um.GetUserInfo(userId); short userGradeLevel = userInfo.UserGradeCategory.GradeLevel; ClientInfo clientInfo = new ClientInfo() { ConnectionId = Context.ConnectionId, UserId = userId, UserName = userInfo.Name, GradeLevel = userGradeLevel }; if (_ClientInfos.Any(r => r.Key == userId)) { _ClientInfos[userId] = clientInfo; } else { _ClientInfos[userId] = clientInfo; } if (_Managers.Any(r => r == Context.ConnectionId)) { if (userGradeLevel != 9) { _Managers.Remove(Context.ConnectionId); } } else { if (userGradeLevel == 9) { _Managers.Add(Context.ConnectionId); } } orders = sm.GetAvailableUserOrderDetail(shopId) .Select(r => new OrderDetail() { Id = r.Id, DisheId = r.DisheId, Count = r.OrderCount, Price = r.Price, Available = (r.UserId == userId || userGradeLevel == 9) ? 1 : 0 }).ToList<OrderDetail>(); Clients.Caller.broadcastOrderAdd(orders); }
public ActionResult Search(string shopName, int categoryId = 0, int p = 1, string s = "default") { ViewBag.ShopSearchName = shopName; ShopModel shopModel = new ShopModel(); string serviceAreaId = "0";//默认宁波大学 string serviceAreaName = ""; UserModel.GetUserDefaultAreaSetting(ref serviceAreaId, ref serviceAreaName); var shops = shopModel.GetShopsList(shopName, int.Parse(serviceAreaId)); List<V_UserFavoriteShopForList> favoriteShops = new List<V_UserFavoriteShopForList>(); if(User.Identity.IsAuthenticated) { UserModel userModel = new UserModel(); UserInfo userInfo = userModel.GetUserInfo(User.Identity.Name); favoriteShops = shopModel.GetFavoriteShopsList(userInfo.Id).ToList(); } var shopCategories = shopModel.GetShopCategoryStatistic(shops); ViewBag.TotalShopsCount = shops.Count(); if(categoryId != 0) { shops = shops.Where(r => r.CategoryId == categoryId); ViewBag.ShopsCount = shops.Count(); } else ViewBag.ShopsCount = ViewBag.TotalShopsCount; ViewBag.CategoryId = categoryId; switch(s.ToLower()) { case "grade": shops = shops.OrderByDescending(r => r.Stars); break; case "price": shops = shops.OrderBy(r => r.UpSendPrice); break; case "speed": shops = shops.OrderBy(r => r.DeliveryTime); break; case "paymoney": shops = shops.OrderBy(r => r.AveragePayMoney); break; } ViewBag.SortBy = s; int pageSize = Request.Browser.IsMobileDevice ? 15 : 25; Paging.ToPaging(p, ViewBag.ShopsCount, this, pageSize); shops = shops.Skip((p - 1) * pageSize).Take(pageSize); return View(new ShopsListModel(shopCategories, shops, favoriteShops)); }
public void AddNewOrderDetail(int userId, OrderDetail orderDetail) { UserOrderDetail order = new UserOrderDetail(); ShopModel sm = new ShopModel(); int orderId = sm.GetAvailableUserOrderId(); try { UserModel um = new UserModel(); UserInfo userInfo = um.GetUserInfo(userId); order.OrderId = orderId; order.DisheId = orderDetail.DisheId; order.ShopId = orderDetail.ShopId; order.UserId = userInfo.Id; order.Price = orderDetail.Price; order.OrderCount = orderDetail.Count; order.CreateDate = DateTime.Now; sm.Add(order); orderDetail.Id = order.Id; orderDetail.Available = 1; } catch (Exception ex) { } orderDetail.Available = 1; List<string> managers = _ClientInfos.Where(r => r.Value.GradeLevel == 9 || r.Key == userId) .Select(r => r.Value.ConnectionId).ToList(); Clients.Clients(managers).broadcastOrderAdd(new List<OrderDetail> { orderDetail }); orderDetail.Available = 0; Clients.AllExcept(managers.ToArray()).broadcastOrderAdd(new List<OrderDetail> { orderDetail }); }
public ActionResult GetShopNamesByServiceArea(int id) { ShopModel shopModel = new ShopModel(); var shops = shopModel.GetShopsList(id, true).Select(r => new { r.Id, r.Name }).ToList(); return Json(shops); }