餐厅点餐系统详细设计与系统实现
餐厅点餐系统详细设计与系统实现
一.主要业务逻辑设计
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
餐厅点餐系统详细设计与系统实现相关推荐
- springboot校园餐厅点餐订餐选座系统
2.开发环境为Eclipse/idea,数据库为mysql 使用java语言开发. 3.eclipse配置好tomcat 即可打开首页 idea tomcat部署处 必须用项目名 ,不能带_war ...
- java计算机毕业设计ssm智慧餐厅点餐管理系统(源码+系统+mysql数据库+Lw文档)
项目介绍 计算机信息技术和互联网的发展,带动了整个的商业发展,方便了我们的生活.在餐饮业,从传统的就餐方式发展到如今的线上销售,客户通过订餐系统查看餐品信息,根据订购量和受欢迎程度来衡量餐品的好坏,不 ...
- python杂志订阅系统详细设计_系统详细设计
在这章,主要完成的工作内容是对概要设计中的顺序图进行总结整理,定义实现各个功能模块所需要的接口,以及设计各个层次中类与类之间的依赖关系. 接口定义 注册 功能描述:实现会员信息的保存. Service ...
- 基于JSP的某餐厅点餐系统
目 录 第一章 绪论 1 1.1系统研究背景和意义 1 1.2研究现状 1 1.3研究主要内容 2 第二章 相关技术说明 3 2.1 JSP(Java Server Page)简介 3 2.2 Spr ...
- [附源码]JAVA+ssm计算机毕业设计餐厅点餐订餐系统(程序+Lw)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统
1 总体概述 本设计主要通过HTML.CSS.JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库来实现一个具有登录注册功能,且登录页面使用验证码技术来 ...
- 餐厅点餐系统GUI——Java大作业
餐厅点餐系统GUI 内容 点餐系统需要使用到图形用户界面.菜单.下单和结账等功能,因此创建了6个类分别为Main.Frame.Order.Dishes_list.Dishes.Dish.其中Main为 ...
- ssm+mysql餐厅点餐系统-计算机毕业设计源码02635
目 录 摘要 1 绪论 1.1目的 1.2意义 1.3Vue.js 主要功能 1.3论文结构与章节安排 2餐厅点餐系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3 ...
- JAVA JSP 餐厅点餐系统源码(点餐系统)jsp点餐系统网上订餐系统在线订餐系统
JAVA JSP javaweb餐厅点餐系统源码(点餐系统)jsp点餐系统网上订餐系统在线订餐系统
最新文章
- 如何取消或定制当点击GridView 的时候出现的那个黄色背景
- 分享Kali Linux 2016.2第48周虚拟机
- struts2 ajax请求发现执行action两次原因
- 动手实现一个适用于.NET Core 的诊断工具
- 前端学习(2182):keep-alive及其他问题
- mysql多语言运营设计_多语言系统的数据库设计
- Traversing Mapping Filtering Folding Reducing
- 重启windows资源管理器命令
- 如何解除禁用 UAC
- spring @lazy注解的使用
- 让你的网速快到不可思议(转)
- 逆波兰式 java_Java 实现《编译原理》中间代码生成 -逆波兰式生成与计算 - 程序解析...
- Re:从零开始的DS生活 轻松和面试官扯一个小时栈
- 【每日蓝桥】8、一三年省赛Java组真题“打印十字图”
- Spring-Boot Dubbo 整合
- redis高可用:keepalived+redis主从部署
- 中外三大院士领衔:​INSEC WORLD世界信息安全大会即将开幕
- 13.JVM-垃圾回收相关概念
- 2021-2025年中国废水泵行业市场供需与战略研究报告
- rd授权管理器不显示服务器,确定 RD 会话主机服务器可能出现的授权问题