zoukankan      html  css  js  c++  java
  • JAVA WEB期末项目第二阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂订餐系统
    班级: 计科二班
    小组成员:李鉴宣、袁超

    1、开发环境

    • 开发编辑器使用:Visual Studio Code
    • 数据库使用:MySQL8.0
    • 项目打包工具:maven3以上
    • 项目本地部署测试:Tomcat8以上
    • 在开发上使用了一个Jleopard-MVC 基于Servlet 3.1改造的,servlet快速开发脚手架详细用法请参考:
      https://github.com/chg122345/jleopard

    http://www.jleopard.org/

    2、实现的基本功能功能

    用户端功能

    • 实现学生在线选座
    • 实现学生在线选菜
    • 实现将所选菜添加进餐车并完成在线下单
    • 查看自己选购的菜品

    管理员功能

    • 实现管理员后台增减餐桌数量
    • 实现管理员后台更改菜的种类
    • 实现管理员后台增减更新菜品信息
    • 实现后台显示学生下单信息

    2、项目结构

    • Java文件
      • config文件夹:关于项目的数据库配置信息
      • controller文件夹:包含一些管理员的操作
      • dao文件夹:数据持久层
      • entritys文件夹:实体类
      • filter文件夹:过滤器
      • service文件夹:业务逻辑层
      • util文件夹:项目工具包
    • webapp目录
      • app目录:前台页面
      • sys目录:后台页面

    4、项目关键代码

    数据库配置信息 DemoConfigConstant.java:

    public interface DemoConfigConstant {
    
        String BASE_PACKAGE = "org.jleopard.ihotel";
    
        String CONTROLLER_PACKAGE = "org.jleopard.ihotel.controller";
    
        String ENTITY_PACKAGE = "org.jleopard.ihotel.entity";
    
        String DATASOURCE_URL = "jdbc:mysql://127.0.0.1:3306/ihotel?characterEncoding=UTF-8";
    
        String DATASOURCE_USER = "root";
    
        String DATASOURCE_PASSWORD = "123456";
    
        String DATASOURCE_DRIVER = "com.mysql.jdbc.Driver";
    }
    
    

    业务逻辑层:
    点餐餐桌设计代码片段:DinnerTableService.java

    @Service
    public class DinnerTableService {
    
    
       @Inject
        private DinnerTableDao dao ;
    
        public int add(DinnerTable dt) {
           return dao.insert(dt);
    
        }
    
        public int delete(Integer id) {
            return dao.deleteById(id);
    
        }
    
        public int update(DinnerTable dt) {
            return dao.update(dt);
    
        }
    
        public List<DinnerTable> query(DinnerTable dt) {
            return dao.select(dt);
        }
    
        public List<DinnerTable> query() {
            return dao.select();
        }
    
        public DinnerTable changeState(Integer id) {
            DinnerTable var1 = new DinnerTable();
            var1.setId(id);
            DinnerTable table = dao.select(var1) == null ? null : dao.select(var1).get(0);
            Byte status = table.getTableStatus();
            if (status == 0) {
                status = 1;
                Date date = new Date();
                table.setOrderDate(date);
            } else if (status == 1) {
                status = 0;
                table.setOrderDate(null);
            }
            table.setTableStatus(status);
            dao.update(table);
            return table;
        }
    
    
        public DinnerTable findById(Integer id) {
            DinnerTable var1 = new DinnerTable();
            var1.setId(id);
            DinnerTable table = dao.select(var1) == null ? null : dao.select(var1).get(0);
            return table;
        }
    
        public int quitTable(Integer id) {
            DinnerTable var1 = new DinnerTable();
            var1.setId(id);
            var1.setTableStatus(Byte.valueOf("0"));
            var1.setOrderDate(null);
            int temp = dao.update(var1);
            return temp;
        }
    
    
    }
    
    

    菜品信息设计代码片段:FoodService.java

    @Service
    public class FoodService {
    
        @Inject
        private FoodDao dao;
    
        public int delete(Integer id) {
            return dao.deleteById(id);
    
        }
    
        public int update(Food food) {
            return dao.update(food);
        }
    
        public List<Food> query() {
            return dao.select();
        }
    
        public List<Food> query(Food food) {
            return dao.select(food);
        }
    
        public List<Food> findByType(Integer type) {
    
            Food var1 = new Food();
            var1.setFoodType_id(new FoodType().initId(type));
            return dao.select(var1);
        }
    
        public int add(Food food) {
            return dao.insert(food);
    
        }
    
        public Food findById(Integer id) {
            Food var1 = new Food();
            var1.setId(id);
            List<Food> list = query(var1);
            return list == null ? null : list.get(0);
        }
    
        public PageInfo getAll(int page, int pageSize,String where, Serializable args) {
            return dao.selectToPage(page, pageSize,where,args);
        }
    
    
    }
    
    

    食物分类设计代码片段:

    @Service
    public class FoodTypeService {
    
    
        @Inject
        private FoodTypeDao dao;
    
        public int add(FoodType foodType) {
            return dao.insert(foodType);
    
        }
    
        public int update(FoodType foodType) {
            return dao.update(foodType);
    
        }
    
        public int delete(int id) {
            return dao.deleteById(id);
        }
    
        public FoodType findById(Integer id) {
            FoodType var1 = new FoodType();
            var1.setId(id);
            List<FoodType> list = dao.select(var1);
            return list == null ? null : list.get(0);
        }
    
        public List<FoodType> query() {
            return dao.select();
        }
    
        public List<FoodType> query(FoodType foodType) {
            return dao.select(foodType);
        }
    
        public Integer getFirstType() {
            List<FoodType> list = query();
            return list == null ? null : list.get(0).getId();
        }
    
    
    }
    
    

    选菜并加入餐车完成下单逻辑实现:
    OrderDetailService.java

    @Service
    public class OrderDetailService {
    
    	@Inject
    	private OrderDetialDao dao;
    
    	public int add(OrderDetail od) {
    		return dao.insert(od);
    
    	}
    
    	public List<OrderDetail> query() {
    		return dao.select();
    	}
    
    	public List<OrderDetail> findByOrderid(Integer id) {
    		return dao.select("orderid = ?",id);
    	}
    
    }
    
    

    OrdersService.java

    @Service
    public class OrdersService {
    
    	@Inject
        private OrdersDao dao;
    
    	public int update(Orders orders) {
    		return dao.update(orders);
    
    	}
    
    	public List<Orders> query() {
    		return dao.select(new Orders());
    	}
    
    	public int add(Orders orders) {
    		return dao.insert(orders);
    
    	}
    
    	public int getCount() {
    		return getAll(1,1,null,null).getTotalRows();
    	}
    
    	public PageInfo getAll(int page, int pageSize, String where, Serializable args) {
    		return dao.selectToPage(page,pageSize,where,args);
    	}
    
    	public List<Orders> query(Orders orders) {
    		return dao.select(orders);
    	}
    }
    
    

    管理员登陆注册功能逻辑代码:
    OrdersService.java

    
    @Service
    public class UserService {
    
        @Inject
        private UserDao userDao;
    
        /**
         * 验证邮箱是否存在
         * 存在 --> true
         *
         * @param email
         * @return
         */
        public boolean checkEmail(String email) {
            User user = new User();
            user.setEmail(email);
            List<User> select = userDao.select(user);
            return CollectionUtil.isNotEmpty(select);
        }
    
        public User login(String email, String password) {
            User user = new User();
            user.setEmail(email);
            user.setPassword(password);
            List<User> select = userDao.select(user);
            return CollectionUtil.isNotEmpty(select) ? select.get(0) : null;
        }
    
        public int save(User user){
            return userDao.insert(user);
        }
    }
    
    

    5、项目数据库详细设计

    food食物信息表:

    foodtype食物分类信息表:

    dinnertable食堂餐桌信息表:

    orderdetails和orders订单信息表:


    user用户信息表

    7、项目部分功能截图

  • 相关阅读:
    MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例
    2018-2019-1 20189221《Linux内核原理与分析》第五周作业
    2018-2019-1 20189221 《构建之法》第 2 周学习总结
    2018-2019-1 20189221 《从问题到程序》第 4 周学习总结
    2018-2019-1 20189221 《深入理解计算机系统》第 2 周学习总结
    2018-2019-1 20189221 《从问题到程序》第 3 周学习总结
    2018-2019-1 20189221《Linux内核原理与分析》第四周作业
    2018-2019-1 20189221 《从问题到程序》第二周学习总结
    2018-2019-1 20189221《Linux内核原理与分析》第三周作业
    2018-2019-1 20189221 《构建之法》第一周学习总结
  • 原文地址:https://www.cnblogs.com/yuanchao-blog/p/10935269.html
Copyright © 2011-2022 走看看