餐厅点餐系统详细设计与系统实现
一.主要业务逻辑设计
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;
@Override
public String execute() {
ActionContext ctx = ActionContext.getContext();
if (daoService.validatePasswd(userName, userPasswd)) {
String userAuth = daoService.getUserAuthByName(userName);
//save the user info
ctx.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;
@Override
public String execute() {
ActionContext ctx = ActionContext.getContext();
String userName = (String)ctx.getSession().get(WebConstant.LOGIN_USER);
if (!userName.isEmpty()) {
//clear the user info
ctx.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;
@Override
public 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;
@Override
public 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;
@Override
public String execute() throws UnsupportedEncodingException {
//analysis and process the opt param
if (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 ext