餐厅点餐系统详细设计与系统实现

一.主要业务逻辑设计

1.登陆操作

package com.ibooking.action;import com.ibooking.action.base.*;
import com.ibooking.util.*;import com.opensymphony.xwork2.ActionContext;public class LoginProcessAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private String userName;private String userPasswd;@Overridepublic String execute() {ActionContext ctx = ActionContext.getContext();if (daoService.validatePasswd(userName, userPasswd)) {String userAuth = daoService.getUserAuthByName(userName);//save the user infoctx.getSession().put(WebConstant.LOGIN_USER, userName);ctx.getSession().put(WebConstant.LOGIN_AUTH, userAuth);fillTitle();return fillIndexPage();}else {failReason = getText("loginFailure");return RET_FAIL;}}}

2.登出操作

package com.ibooking.action;import com.ibooking.action.base.*;
import com.ibooking.util.*;import com.opensymphony.xwork2.ActionContext;public class LogoutProcessAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;@Overridepublic String execute() {ActionContext ctx = ActionContext.getContext();String userName = (String)ctx.getSession().get(WebConstant.LOGIN_USER);if (!userName.isEmpty()) {//clear the user infoctx.getSession().put(WebConstant.LOGIN_USER, null);ctx.getSession().put(WebConstant.LOGIN_AUTH, null);ctx.getSession().clear();fillTitle();return fillIndexPage();}else {return RET_FAIL;}}
}

3.点餐操作

  3.1添加菜品

package com.ibooking.action;import com.ibooking.action.base.*;public class OrderDetailPageEnterAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private int orderId;@Overridepublic String execute() {fillTitle();return fillOrderDetailPage(orderId);}}

  3.2订单提交

package com.ibooking.action;import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;import com.ibooking.action.base.*;
import com.ibooking.util.WebConstant;
import com.opensymphony.xwork2.ActionContext;public class MenuSubmitAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private String menuName;private String menuPrice;private InputStream inputStream;@Overridepublic String execute() throws UnsupportedEncodingException {ActionContext ctx = ActionContext.getContext();String userName = (String)ctx.getSession().get(WebConstant.LOGIN_USER);int amount = daoService.changeShoppingAmount(userName, menuName, menuPrice, true);if (amount == WebConstant.INVALID_VALUE) {amount = 0;}String result = String.valueOf(amount);inputStream = new ByteArrayInputStream(result.getBytes("UTF-8"));return RET_SUCC;}

4.顾客菜单修改操作

package com.ibooking.action;import java.io.UnsupportedEncodingException;import com.ibooking.action.base.*;public class OrderListChangeAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private String opt;private int orderId;@Overridepublic String execute() throws UnsupportedEncodingException {//analysis and process the opt paramif (opt.equals("orderDel")){daoService.deleteOrderTrans(orderId);}return fillOrderListPage();}

  

5.管理员修改菜单

package com.ibooking.action.manager;import java.io.UnsupportedEncodingException;import com.ibooking.action.base.*;public class ManMenuChangeAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private String opt;private int id;private String name;private Integer price;private String pic;private Integer type;@Overridepublic String execute() throws UnsupportedEncodingException {//analysis and process the opt paramif (opt.equals("menuAdd")){daoService.insertMenu(name, price, pic, type);}else if (opt.equals("menuMod")){daoService.updateMenuById(id, name, price, pic, type);}else if (opt.equals("menuDel")){daoService.deleteMenu(id);}return fillManMenuPage();}}

  

6.管理员对用户管理

package com.ibooking.action.manager;import java.io.UnsupportedEncodingException;import com.ibooking.action.base.*;public class ManUserChangeAction extends BaseAction {/*** */private static final long serialVersionUID = 1L;private String opt;private int id;private String user;private String passwd;private String auth;private String tel;private String addr;@Overridepublic String execute() throws UnsupportedEncodingException {//analysis and process the opt paramif (opt.equals("userAdd")){daoService.insertUser(user, passwd, auth, tel, addr);}else if (opt.equals("userMod")){daoService.updateUserById(id, user, passwd, auth, tel, addr);}else if (opt.equals("userDel")){daoService.deleteUser(id);}return fillManUserPage();}}

二.表现层设计与实现

1.登陆及注册界面

<%@page contentType = "text/html; charset = utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn"><head><%-- the header --%><%@ include file="/WEB-INF/jsp/header.jsp" %><title><s:text name="loginTitle" /></title></head><body><%-- the navbar --%><%@ include file="/WEB-INF/jsp/navbar.jsp" %><%-- the content --%><div class="container"><form method="post" id="ib_login_form" action="loginProcess" role="form"><div class="form-group"><label id="ib_login_label" for="ib_login_user_input"><s:text name="loginInput" /></label><input type="text" id="ib_login_user_input" name="userName" class="form-control input-lg" placeholder="<s:text name="loginUserName" />" /><div class="ib_login_error_div"><s:fielderror fieldName="userName"/></div><input type="password" id="ib_login_passwd_input" name="userPasswd" class="form-control input-lg" placeholder="<s:text name="loginUserPasswd" />" /><div class="ib_login_error_div"><s:fielderror fieldName="userPasswd"/><s:property value="failReason" escape="false"/></div></div><button id="ib_login_submit_btn" type="submit" class="btn btn-primary btn-lg"><s:text name="loginSubmit" /></button><a id="ib_login_reg_btn" href="regPageEnter" class="btn btn-primary btn-lg" role="button"><s:text name="loginReg" /></a></form></div><%-- the javascript --%><script type="text/javascript">$("#ib_login_submit_btn").click(function() {if ($("#ib_login_user_input").val() == "" || $("#ib_login_passwd_input").val() == "") {alert("<s:text name="loginInputIsNull" />");return false;}})</script></body>
</html>

界面图: 

2.菜单主页面

<%@page contentType = "text/html; charset = utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn"><head><%-- the header --%><%@ include file="/WEB-INF/jsp/header.jsp" %><title><s:text name="indexTitle" /></title></head><body><%-- the navbar --%><%@ include file="/WEB-INF/jsp/navbar.jsp" %><div id="ib_idx_content_div"><s:iterator value="lstMenuTypeBean" id="bean"><div class="row"><h2 class="ib_idx_caption_h"><s:property value="#bean.name" /></h2><s:iterator value="#bean.lst" id="bean2"><div class="col-md-3"><div class="thumbnail"><img src="<s:property value="#bean2.addr" />"><h4 class="ib_idx_caption_h"><s:property value="#bean2.name" /></h4><h5 class="ib_idx_caption_h"><s:text name="indexPrice" />: <s:property value="#bean2.price" /></h5><p class="ib_idx_caption_h"><button class="btn btn-primary" menuName='<s:property value="#bean2.name" />' menuPrice='<s:property value="#bean2.price" />'><s:text name="indexSubmitBtn" /> <span class="badge"><s:property value="#bean2.amount" /></span></button></p></div></div></s:iterator></div></s:iterator><%-- the pagination --%><%@ include file="/WEB-INF/jsp/pagination.jsp" %></div><%-- the javascript --%><script type="text/javascript">function fnSubmitBtn(data, code, request) {//exclude the error pagevar menuAmount =  data.match(/<!DOCTYPE html>/);if (menuAmount == null) {var menuName = this.data.match(/menuName=(.+)&/);if (menuName != null && menuName[1] != null) {$("button").each(function() {if ($(this).attr("menuName") == menuName[1]) {$(this).children("span").text(data);}});}}}$("button").click(function() {<s:if test="#session.loginUser==null">alert("please login!");window.location.href = 'loginPageEnter';return;</s:if>var ajaxUrl = "menuSubmit";var ajaxData = "menuName=" + $(this).attr("menuName") + "&" + "menuPrice=" + $(this).attr("menuPrice");jQuery.ajax({type: "POST",url: ajaxUrl,data: ajaxData,dataType: "html",contentType: "application/x-www-form-urlencoded; charset=utf-8",success: fnSubmitBtn});})</script></body>
</html>界面图:

  

  3.用户订单修改

<%@page contentType = "text/html; charset = utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn"><head><%-- the header --%><%@ include file="/WEB-INF/jsp/header.jsp" %><title><s:text name="orderlistTitle" /></title></head><body><%-- the navbar --%><%@ include file="/WEB-INF/jsp/navbar.jsp" %><div id="ib_orderlist_content_div"><%@ include file="/WEB-INF/jsp/orderlist_content.jsp" %></div><%-- the javascript --%><script type="text/javascript">function fnChangeFinish(data, code, request) {if (code == "success") {$("#ib_orderlist_content_div").html(data);}}function onBtnDelClick(data) {var ajaxUrl = "orderListChange";jQuery.ajax({type: "POST",url: ajaxUrl,data: data,dataType: "html",contentType: "application/x-www-form-urlencoded; charset=utf-8",success: fnChangeFinish});}</script></body>
</html>界面图:

 

 

  

  4.管理员菜单修改及客户订单处理

<%@page contentType = "text/html; charset = utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn"><head><%-- the header --%><%@ include file="/WEB-INF/jsp/header.jsp" %><title><s:text name="manMenuTitle" /></title></head><body><%-- the navbar --%><%@ include file="/WEB-INF/jsp/navbar.jsp" %><div id="ib_man_menu_content_div"><%@ include file="/WEB-INF/jsp/manager/man_menu_content.jsp" %></div><%-- the javascript --%><script type="text/javascript">function onBtnNewClick() {var status = $("#ib_man_menu_new_btn").attr("status");if (status == "new") {$("#ib_man_menu_new_name_input").removeAttr("readOnly");$("#ib_man_menu_new_price_input").removeAttr("readOnly");$("#ib_man_menu_new_pic_select").removeAttr("disabled");$("#ib_man_menu_new_type_select").removeAttr("disabled");$("#ib_man_menu_add_btn").removeAttr("disabled");$("#ib_man_menu_new_btn").attr("status", "cancel");$("#ib_man_menu_new_btn").text("<s:text name="manMenuCancelBtn" />");}else if (status == "cancel") {$("#ib_man_menu_new_name_input").attr("readOnly", "true");$("#ib_man_menu_new_price_input").attr("readOnly", "true");$("#ib_man_menu_new_pic_select").attr("disabled", "disabled");$("#ib_man_menu_new_type_select").attr("disabled", "disabled");$("#ib_man_menu_add_btn").attr("disabled", "disabled");$("#ib_man_menu_new_btn").attr("status", "new");$("#ib_man_menu_new_btn").text("<s:text name="manMenuNewBtn" />");}}function fnChangeFinish(data, code, request) {if (code == "success") {$("#ib_man_menu_content_div").html(data);}}function onBtnAddClick(data) {var ajaxUrl = "manMenuChange";data = data + "&name=" + $("#ib_man_menu_new_name_input").val() + "&price=" + $("#ib_man_menu_new_price_input").val() + "&pic=" + $("#ib_man_menu_new_pic_select").val() + "&type=" + $("#ib_man_menu_new_type_select").val();jQuery.ajax({type: "POST",url: ajaxUrl,data: data,dataType: "html",contentType: "application/x-www-form-urlencoded; charset=utf-8",success: fnChangeFinish});}function onBtnEditClick(data) {$(".ib_man_menu_id_label").each(function() {if ($(this).text() == data) {var name_input = $(this).next();var price_input = $(this).parent().next().children();var pic_select = price_input.parent().next().children();var type_select = pic_select.parent().next().children()var edit_btn = type_select.parent().next().children("#ib_man_menu_edit_btn");var mod_btn = edit_btn.next();var status = edit_btn.attr("status");if (status == "edit") {name_input.removeAttr("readOnly");price_input.removeAttr("readOnly");pic_select.removeAttr("disabled");type_select.removeAttr("disabled");mod_btn.removeAttr("disabled");edit_btn.attr("status", "cancel");edit_btn.text("<s:text name="manMenuCancelBtn" />");}else if (status == "cancel") {name_input.attr("readOnly", "true");price_input.attr("readOnly", "true");pic_select.attr("disabled", "disabled");type_select.attr("disabled", "disabled");mod_btn.attr("disabled", "disabled");edit_btn.attr("status", "edit");edit_btn.text("<s:text name="manMenuEditBtn" />");}}});}function onBtnModClick(data) {var ajaxUrl = "manMenuChange";var id = data.match(/id=(.+)&opt=menuMod/);if (id != null && id[1] != null) {$(".ib_man_menu_id_label").each(function() {if ($(this).text() == id[1]) {var name_input = $(this).next();var price_input = $(this).parent().next().children();var pic_select = price_input.parent().next().children();var type_select = pic_select.parent().next().children()data = data + "&name=" + name_input.val() + "&price=" + price_input.val() + "&pic=" + pic_select.val() + "&type=" + type_select.val();jQuery.ajax({type: "POST",url: ajaxUrl,data: data,dataType: "html",contentType: "application/x-www-form-urlencoded; charset=utf-8",success: fnChangeFinish});}});}}function onBtnDelClick(data) {var ajaxUrl = "manMenuChange";jQuery.ajax({type: "POST",url: ajaxUrl,data: data,dataType: "html",contentType: "application/x-www-form-urlencoded; charset=utf-8",success: fnChangeFinish});}</script></body>
</html>界面图:

 

转载于:https://www.cnblogs.com/hamac/p/10943361.html

餐厅点餐系统详细设计与系统实现相关推荐

  1. springboot校园餐厅点餐订餐选座系统

    2.开发环境为Eclipse/idea,数据库为mysql 使用java语言开发. 3.eclipse配置好tomcat  即可打开首页  idea tomcat部署处 必须用项目名 ,不能带_war ...

  2. java计算机毕业设计ssm智慧餐厅点餐管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 计算机信息技术和互联网的发展,带动了整个的商业发展,方便了我们的生活.在餐饮业,从传统的就餐方式发展到如今的线上销售,客户通过订餐系统查看餐品信息,根据订购量和受欢迎程度来衡量餐品的好坏,不 ...

  3. python杂志订阅系统详细设计_系统详细设计

    在这章,主要完成的工作内容是对概要设计中的顺序图进行总结整理,定义实现各个功能模块所需要的接口,以及设计各个层次中类与类之间的依赖关系. 接口定义 注册 功能描述:实现会员信息的保存. Service ...

  4. 基于JSP的某餐厅点餐系统

    目 录 第一章 绪论 1 1.1系统研究背景和意义 1 1.2研究现状 1 1.3研究主要内容 2 第二章 相关技术说明 3 2.1 JSP(Java Server Page)简介 3 2.2 Spr ...

  5. [附源码]JAVA+ssm计算机毕业设计餐厅点餐订餐系统(程序+Lw)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统

    1 总体概述 本设计主要通过HTML.CSS.JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库来实现一个具有登录注册功能,且登录页面使用验证码技术来 ...

  7. 餐厅点餐系统GUI——Java大作业

    餐厅点餐系统GUI 内容 点餐系统需要使用到图形用户界面.菜单.下单和结账等功能,因此创建了6个类分别为Main.Frame.Order.Dishes_list.Dishes.Dish.其中Main为 ...

  8. ssm+mysql餐厅点餐系统-计算机毕业设计源码02635

    目  录 摘要 1 绪论 1.1目的 1.2意义 1.3Vue.js 主要功能 1.3论文结构与章节安排 2餐厅点餐系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3 ...

  9. JAVA JSP 餐厅点餐系统源码(点餐系统)jsp点餐系统网上订餐系统在线订餐系统

    JAVA JSP javaweb餐厅点餐系统源码(点餐系统)jsp点餐系统网上订餐系统在线订餐系统

最新文章

  1. 如何取消或定制当点击GridView 的时候出现的那个黄色背景
  2. 分享Kali Linux 2016.2第48周虚拟机
  3. struts2 ajax请求发现执行action两次原因
  4. 动手实现一个适用于.NET Core 的诊断工具
  5. 前端学习(2182):keep-alive及其他问题
  6. mysql多语言运营设计_多语言系统的数据库设计
  7. Traversing Mapping Filtering Folding Reducing
  8. 重启windows资源管理器命令
  9. 如何解除禁用 UAC
  10. spring @lazy注解的使用
  11. 让你的网速快到不可思议(转)
  12. 逆波兰式 java_Java 实现《编译原理》中间代码生成 -逆波兰式生成与计算 - 程序解析...
  13. Re:从零开始的DS生活 轻松和面试官扯一个小时栈
  14. 【每日蓝桥】8、一三年省赛Java组真题“打印十字图”
  15. Spring-Boot Dubbo 整合
  16. redis高可用:keepalived+redis主从部署
  17. 中外三大院士领衔:​INSEC WORLD世界信息安全大会即将开幕
  18. 13.JVM-垃圾回收相关概念
  19. 2021-2025年中国废水泵行业市场供需与战略研究报告
  20. rd授权管理器不显示服务器,确定 RD 会话主机服务器可能出现的授权问题

热门文章

  1. 关于win10第一次开启热点无法访问的原因
  2. 计算机硬盘是什么形状,四种最常见的SSD硬盘的外形、应用及未来市场发展
  3. c#mysql连接数据库字符串_C# 连接SQL数据库字符串
  4. 特征值与特征向量协方差矩阵
  5. 每个人心中的那一首歌
  6. 如何选择安全可靠质量好的移动电源
  7. 股权转让个人所得税要交多少
  8. 生死存亡之数字炸弹(2.1)
  9. 面试从准备到收获offer的全流程经验小技巧分享
  10. 关于macOS下移动硬盘无法挂载且硬盘灯一直闪烁