orderList=new ArrayList();
//创建订单的集合
private void initail(){
//初始化一些菜单
Dish dish1=new Dish(1,"鱼香肉丝",25,113);
Dish dish2=new Dish(2,"土豆丝",17,17);
Dish dish3=new Dish(3,"酸辣白菜",10,56);
Dish dish4=new Dish(4,"红烧猪蹄",35,75);
Dish dish5=new Dish(5,"麻辣豆腐",16,13);
dishList.add(dish1);
dishList.add(dish2);
dishList.add(dish3);
dishList.add(dish4);
dishList.add(dish5);
//初始化一些订单
Order order1=new Order(1,"张三","2018-04-29","东莞金马",0,1,dish5);
Order order2=new Order(2,"张美丽","2018-04-27","东莞常平",1,2,dish1);
Order order3=new Order(3,"黄蓉","2018-04-28","东莞莞城",0,1,dish4);
orderList.add(order1);
orderList.add(order2);
orderList.add(order3);
}
public void showMenu(){
initail();
int chose=0;
do {
System.out.println("****************");
System.out.println("1、我要订餐");
System.out.println("2、查看餐袋");
System.out.println("3、签收订单");
System.out.println("4、删除订单");
System.out.println("5、我要点赞");
System.out.println("6、点赞排行榜");
System.out.println("7、退出系统");
System.out.println("****************");
System.out.print("请选择:");
chose = input.nextInt();
switch (chose) {
case 1:
addOrder();
break;
case 2:
showOrder();
break;
case 3:
signOff();
break;
case 4:
deleteOrder();
break;
case 5:
addgetState();
break;
case 6:
sortPraise();
break;
case 7:
System.exit(0);
break;
default:
System.exit(0);
break;
}
} while (chose!=7);
}
/**
* 根据点赞数,将菜单进行排序,降序排列
*/
private void sortPraise() {
Collections.sort(dishList);
System.out.println("序号\t菜名\t单价\t点赞数");
for (int i = dishList.size()-1; i>=0; i--) {
Dish item=dishList.get(i);
System.out.println(item.getDishId()+"\t"+item.getDishName()+"\t"+item.getPrice()+"\t"+item.getPraise());
}
}
/**
* 点赞
*/
private void addgetState() {
showDish();
System.out.print("请输入要点赞的菜品序号:");
int addState=input.nextInt();
while(getDishById(addState)==null){
System.out.print("没有此菜单,请重新输入:");
addState=input.nextInt();
}
getDishById(addState).setPraise((getDishById(addState).getPraise()+1));
System.out.println("点赞成功!");
}
/**
* 删除订单
*/
private void deleteOrder() {
showOrder();
System.out.print("请输入要删除的订单编号:");
int orderId=input.nextInt();
while(orderbyId(orderId)==null){
System.out.print("请输入正确的订单编号:");
orderId=input.nextInt();
}
if(orderbyId(orderId).getState()==1){
orderList.remove(orderbyId(orderId));
System.out.println("订单删除成功!");
}else{
System.out.println("订单未签收不能删除!");
}
}
/**
* 查看菜品信息
*/
private void showDish() {
System.out.println("序号\t菜名\t单价\t点赞数");
for (Dish item : dishList) {
System.out.println(item.getDishId()+"\t"+item.getDishName()+"\t"+item.getPrice()+"\t"+item.getPraise());
}
}
/**
* 查看订单信息
*/
private void showOrder() {
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t单价\t数量\t送餐时间\t\t送餐地址\t\t总金额\t定单状态");
for (Order item : orderList) {
System.out.println(item.getOrderId()+"\t"+item.getName()+"\t"+item.getDish().getDishName()+"\t"+item.getDish().getPrice()+"\t"+item.getCount()+"\t"+item.getTime()+"\t"+item.getAddress()+"\t\t"+item.getSumPrice()+"\t"+(item.getState()==0?"已预订":"已完成"));
}
}
/**
* 新增订单
*/
private void addOrder() {
System.out.println("******我要订餐******");
System.out.print("请输入订餐人姓名:");
String name=input.next();
showDish();
System.out.print("请选择您要点的菜品编号:");
int dishId=input.nextInt();
while (getDishById(dishId)==null) {
System.out.print("您输入的菜品编号不正确,请重新输入:");
dishId=input.nextInt();
}
Dish dish=getDishById(dishId);
System.out.print("请选择您要的份数:");
int count=input.nextInt();
while (count<1) {
System.out.print("请选择您要的份数:");
count=input.nextInt();
}
System.out.print("请输入送餐时间:");
String time=input.next();
System.out.print("请输入送餐地址:");
String address=input.next();
Order order = new Order();
order.setOrderId(addgetOrderId());
order.setName(name);
order.setTime(time);
order.setAddress(address);
order.setState(0);
order.setCount(count);
order.setDish(dish);
orderList.add(order);
}
//根据输入的菜品编号找出菜的对象
private Dish getDishById(int dishId) {
Dish dish=null;
for (Dish item : dishList) {
if(item.getDishId()==dishId){
dish=item;
break;
}
}
return dish;
}
/**
* 新增订单编号
*/
private int addgetOrderId(){
int orderId=0;
for (int i = 0; i < orderList.size(); i++) {
//Order item=orderList.get(i);
if(orderId