《餐饮管理系统----“外卖订餐”模块》项目研发阶段性总结

餐饮管理系统

一、用户登录
用户根据账号、密码进行验证登录,新用户可以点击免费注册进行注册,注册成功便可登录。
在这里插入图片描述
用户注册页面
在这里插入图片描述
二、主界面
用户登录进入前台主界面,页面显示店铺所有菜品,鼠标悬停在图片上显示该菜品信息和操作按钮(加入购物车和查看菜品详细信息)
在这里插入图片描述
1、购物车
点击加入购物车,Del可以从该购物车中删除该菜品,“-”号和“+”号可以修改菜品数量,点击保存即可修改成功。
在这里插入图片描述
2、菜品详情
点击放大镜按钮可以查看该菜品的详细信息
在这里插入图片描述
菜品详情页面,这里可以查看其它用户对该商品的评价,点击加入收藏按钮即
将该商品加入到收藏列表,也可以直接购买或加入到购物车。

在这里插入图片描述
点击立即购买按钮,弹出订单信息模态框,填写完整信息即可购买成功。
在这里插入图片描述
3、结算

3.1购物车
用户可在购物车界面修改订单信息(修改菜品数量、移除商品等)并勾选确认下单的商品,点击“确定下单”按钮,跳转到结算界面
在这里插入图片描述
3.2订单确认
结算界面,系统统计所有商品总价,用户选择收货地址,点击“结算”,弹出付款窗口
在这里插入图片描述
3.3支付
付款窗口,选择支付方式,点击“确认支付”,也可以选择选择点击“稍后支付”,支付成功后可以到个人中心查看订单状态,如果选择稍后支付,需要在15分钟内完成付款,逾期订单将自动取消。
在这里插入图片描述
逾期订单自动取消
在这里插入图片描述
3.4 确认收货&订单评价
在个人中心找到我的订单界面确认收货
在这里插入图片描述
用户收到外卖之后可以对当前订单做出评价
在这里插入图片描述
4、个人中心
4.1 个人中心
外卖订餐管理模块除了首页以及购物车功能之外,还包括个人中心,个人中心包含当前用户订单的记录,用户资产,用户基本资料以及用户所收藏的菜品
在这里插入图片描述
4.2订单记录
该页面记录了近三个月的订单,点击“查看详情”按钮可以查看订单详情。
在这里插入图片描述
4.3我的资产
可用红包与我的金币这两部分功能暂未完成。
在这里插入图片描述
该页面记录了用户资产交易明细,用户可以在该页面进行提现和充值。
在这里插入图片描述
4.4我的资料
在这里插入图片描述

在这里插入图片描述
4.5我的收藏
在收藏列表中,点击加入购物车,即可将该菜品加入到购物车中,选择菜品,点击移除商品,即可将该菜品移出我的收藏列表。
在这里插入图片描述
三、经典代码
购物车代码
(控制层部分)

	  public ActionResult Reservation()
	        {
	            try
	            {
	                string strPUserID = Session["PUserID"].ToString();
	                string strPUserName = "";
	                int intPUserID = Convert.ToInt32(strPUserID);
	
	                var PUser = (from tbPUser in myModel.PW_PUser
	                             where tbPUser.PUserID == intPUserID
	                             select tbPUser).Single();
	                strPUserName = PUser.PUserName;
	                ViewBag.PUserName = strPUserName;
	                var listShopping = (from tbShopping in myModel.SYS_Shopping
	                                    join tbMenuItem in myModel.BUS_MenuItem on tbShopping.MenuItemID equals tbMenuItem.MenuItemID
	                                    join tbPUser in myModel.PW_PUser on tbShopping.PUserID equals tbPUser.PUserID
	                                    where tbShopping.PUserID == intPUserID
	                                    select new MenuItemVo
	                                    {
	                                        ShoppingID = tbShopping.ShoppingID,
	                                        Quantity = tbShopping.Quantity,
	                                        MenuItemID=tbMenuItem.MenuItemID,
	                                        Money=tbShopping.Money,
	                                        Price=tbMenuItem.Price,
	                                        MenuItemName=tbMenuItem.MenuItemName,
	                                    }).ToList();
	                //var listShopping = (from btype in myModel.SYS_Shopping select btype).ToList();
	                ViewBag.Shopping = listShopping;
	                for (int i = 0; i < listShopping.Count(); i++)
	                {
	                    ViewBag.a = a;
	                }
	                return View();
	            }
	            catch (Exception)
	            {
	                return RedirectToAction("Logins");
	            }
	        }
    //查询ID
    public ActionResult SelectShoppingInfor()
      {
         var listShopping = (from tbShopping in myModel.SYS_Shopping
                             join tbMenuItem in myModel.BUS_MenuItem on tbShopping.MenuItemID equals     tbMenuItem.MenuItemID
                              select tbShopping.MenuItemID).ToList();
          return Json(listShopping, JsonRequestBehavior.AllowGet);
     }
     //查询图片
  public ActionResult SelectMenuPicture(int MenuItemID)
       {
          try
          {
                var dbMenuItem = (from tbMenuItem in myModel.BUS_MenuItem
                                  where tbMenuItem.MenuItemID==MenuItemID
                                 select new
                                  {
                                      tbMenuItem.MenuPicture,
                                  }).Single();
               byte[] imageData = dbMenuItem.MenuPicture;
                return File(imageData, @"image/jpg");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return null;
            }
        }

页面代码

<div class="form-group" style="margin-bottom:0;overflow:auto;">
         <div class="col-md-12 col-sm-12" style="height:370px;">
               @foreach (var item in ViewBag.Shopping)
               {
                   <div class="col-md-12 col-sm-12 car" style="padding:0;margin-top:15px;">
                       <div class="col-md-3 col-sm-3" style="padding:0;">
                           <img id="@item.MenuItemID" src="data: image/jpg; base64," style="height:88px;width:135px;" />
                       </div>             
                       <div class="col-md-3 col-sm-3 menuone">
                           <span>@item.MenuItemName</span>
                       </div>
                      
                       <div class="col-md-4 col-sm-4 ttttt" style="height:88px;padding-top:50px;" >
                           <span style="float:left;color:#909090;cursor:pointer;" onclick="deletes(this)">Del</span>
                           <span class="reduce" onclick="reduce(this)">-</span>
                           <input  class="count-input dddd" type="text" value="@item.Quantity" />
                           <span class="add"  onclick="add(this)">+</span>
                       </div>
                      
                       <div class="col-md-2 col-sm-2 menutwo">
                           @*<span>¥</span><input class="prices" value="@item.Price" />*@
                           <span>¥</span><span class="prices">@item.Price</span>
                       </div>
                       <input type="hidden" class="shoppings" value="@item.ShoppingID" />
                   </div>
               }
           </div>
 </div>

<script>
 $.post("SelectShoppingInfor", function (data) {
            $.each(data, function (i) {
                MenuPicture(data[i]);
            });
        });

        function MenuPicture(MenuItemID) {
            var MenuItemID = MenuItemID;
            //$("#" + WaresID).attr("src", "GetWaresImage?WaresID=" + WaresID);
            $("#" + MenuItemID).attr("src", "SelectMenuPicture?MenuItemID=" + MenuItemID);
        }
</script>

四、技术总结
刚接触这个餐饮管理系统时,心里没有底,因为系统的很多内容我都没有接触过,代码更是不知道要怎样写。拿到项目后,首先是进行项目分析,然后就是建表。建表虽然没有占用太多的时间,但事实证明表的设计是存在很多问题的,不符合实际的需求。后来数据库建好的表也是一改再改,数据库一改,项目代码也要进行相应的改动,这一过程花费了我不少时间。虽然走了不少弯路,但也让我明白了,一个好的数据库是可以让自己学代码的过程省时省力的。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是我为您设计的外卖软件的 Axure RP9 设计: 1. 首页 首页包含以下元素: - 顶部导航栏:包含品牌logo、搜索框、购物车图标等。 - 广告栏:用于展示当前的优惠活动或热门菜品。 - 推荐菜品:根据用户的历史订单或热度推荐的菜品。 - 菜单分类:将所有菜品按照分类展示,方便用户查找。 2. 菜单页面 菜单页面包含以下元素: - 左侧菜单分类:用于选择菜品分类。 - 中间菜品列表:按照选择的菜品分类展示对应的菜品。 - 右侧菜品详情:包含菜品名称、图片、价格、描述等信息。 3. 购物车页面 购物车页面包含以下元素: - 购物车列表:展示用户加入购物车的菜品信息,包括名称、数量、价格等。 - 结算区域:包含总价、优惠券、配送费等信息。 - 提交订单按钮:用户点击后进入订单确认页面。 4. 订单确认页面 订单确认页面包含以下元素: - 收货地址:用户选择或填写的收货地址信息。 - 联系人信息:用户填写的联系人信息。 - 发票信息:可选择是否需要发票以及发票抬头等信息。 - 支付方式:用户选择的支付方式。 - 提交订单按钮:用户点击后进入支付页面。 5. 支付页面 支付页面包含以下元素: - 订单信息:展示用户的订单信息,包括订单编号、订单金额等。 - 支付方式:展示用户选择的支付方式。 - 支付按钮:用户点击后跳转到第三方支付平台进行支付操作。 以上是我为您设计的外卖软件 Axure RP9 设计,希望能够对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值