毕业设计 外卖配送系统 在线点餐系统

怼烎@ 2024-02-24 03:59 109阅读 0赞

项目类型:JAVA WEB项目
用户类型:管理员+顾客+配送员+商家
主要技术:Jsp+Servlet+MySQL+Tomcat
前端html+css样式:使用了LayUI
开发工具:Eclipse (Idea导入需要配置信息)
对应环境介绍:JDK+MySQL+Tomcat
数据库表:6张
功能介绍:
1.配送系统:根据要求注册登录,注册后可接单配送。
2.管理员系统:对配送信息,订单信息,顾客,配送员,商家进行增删改查。
3.商家系统:可以发布店内的商品。
4.顾客系统:在线点餐。

系统实际使用流程:
顾客点单——>>商家接单——>>——>>配送员接单配送——>>顾客收货确认

外卖配送管理系统/在线点餐系统

  • 0项目结构设计
  • 1顾客端功能介绍
    • 1.1登录

    • 1.2在线外卖点餐

    • 1.3个人订单
  • 2商家端功能介绍
    • 2.1上线外卖商品

    • 2.2商家接单

  • 3配送员端功能介绍
    • 3.1在线接单

    • 3.2我的订单

  • 4管理员端功能介绍
    • 4.1商家管理

    • 4.2顾客管理

    • 4.3配送员管理
    • 4.4外卖商品管理
    • 4.5订单管理
  • 5功能实现代码讲解
    • 5.1JSP页面

    • 5.2Servlet.java

    • 5.3Service.java
    • 5.4Serviceimpl.java
    • 5.5dao.java
  • 6MySQL数据库表的创建

0项目结构设计

1.dao:对数据库的访问,实现了增删改查,SQL语句的定义。
2.entity:定义了实体,并设置对应实体的属性。
3.filter:过滤器,设置字符编码都为utf8,防止乱码出现。
4.service:业务逻辑处理的接口。
5.service.impl:接口的实现类。
5.servlet:处理页面请求。
6.utils:工具类。
7.c3p0-config.xml:JDBC配置。
在这里插入图片描述

1顾客端功能介绍

1.1登录

一共有4类角色进行使用
在这里插入图片描述

1.2在线外卖点餐

以外卖的方式进行点餐购买
在这里插入图片描述

1.3个人订单

购买以后,在我的订单可以查看。购买以后,需要等待商家接单。
并且由配送员配送以后,确认收货。
在这里插入图片描述

2商家端功能介绍

2.1上线外卖商品

在这里插入图片描述

2.2商家接单

在顾客下单以后,需要及时接单。
在这里插入图片描述

3配送员端功能介绍

3.1在线接单

我的订单
在这里插入图片描述

3.2我的订单

在这里插入图片描述

4管理员端功能介绍

4.1商家管理

在这里插入图片描述

4.2顾客管理

在这里插入图片描述

4.3配送员管理

在这里插入图片描述

4.4外卖商品管理

在这里插入图片描述

4.5订单管理

在这里插入图片描述

5功能实现代码讲解

以添加一条配送员为例子,讲解jsp+servlet的整个过程。

5.1JSP页面

jsp页面内,以form表单的形式,action指向的地址为PsrServlet内的addPsr_admin。并且在表单内,用户输入相应的数据信息。

  1. <form action="PsrServlet?action=addPsr_admin" method="post" id="registerForm" name="registerForm" >
  2. <div class="layui-form-item">
  3. <label class="layui-form-label">姓名:</label>
  4. <div class="layui-input-inline">
  5. <input name="psy" id="psy" class="layui-input" />
  6. <span id="msg3" style="color:red">${
  7. message}</span>
  8. </div>
  9. </div>
  10. <div class="layui-form-item" >
  11. <label class="layui-form-label">手机号:</label>
  12. <div class="layui-input-inline">
  13. <input name="phone" id="phone" class="layui-input" />
  14. </div>
  15. </div>
  16. <div class="layui-form-item" >
  17. <label class="layui-form-label">登录密码:</label>
  18. <div class="layui-input-inline">
  19. <input name="pwd" id="pwd" class="layui-input" />
  20. </div>
  21. </div>
  22. <div class="layui-form-item" >
  23. <label class="layui-form-label">配送人住址:</label>
  24. <div class="layui-input-inline">
  25. <input name="psrxy" id="psrxy" class="layui-input" />
  26. </div>
  27. </div>
  28. <br>
  29. <div class="layui-form-item">
  30. <div class="layui-input-block">
  31. <button class="layui-btn" type="submit" id="sub_btn">提交</button>
  32. <a href="PsrServlet?action=psrList" class="layui-btn layui-btn-primary" >返回</a>
  33. </div>
  34. </div>
  35. </form>

5.2Servlet.java

在PsrServlet内定义addPsr_admin方法

  1. if(action != null && action.equals("addPsr_admin")){
  2. addPsr_admin(request, response);

定义addPsr_admin方法,先接受用户输入的数据,再调用set方法。并调用service方法,执行。在执行之前进行判断,如果改用户已存在,则提示信息,否则执行方法。

  1. private void addPsr_admin(HttpServletRequest request, HttpServletResponse response) {
  2. String psy = request.getParameter("psy");
  3. String phone = request.getParameter("phone");
  4. String pwd = request.getParameter("pwd");
  5. String psrxy= request.getParameter("psrxy");
  6. Psr psr =new Psr();
  7. psr.setPsy(psy);
  8. psr.setPhone(phone);
  9. psr.setPwd(pwd);
  10. psr.setPsrxy(psrxy);
  11. psr.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
  12. try {
  13. Psr p1 = ps.selectPsr(psr);
  14. if(p1 == null){
  15. ps.savePsr(psr);
  16. response.sendRedirect(request.getContextPath()+"/PsrServlet?action=psrList");
  17. }else{
  18. request.setAttribute("message", "该学生已是配送员,不能重复注册!");
  19. request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
  20. }
  21. }
  22. catch (Exception e) {
  23. e.printStackTrace();
  24. }
  25. }

5.3Service.java

定义service业务逻辑接口

  1. public interface PsrService {
  2. void savePsr(Psr psr);
  3. }

5.4Serviceimpl.java

继承接口,实现方法。也就是调用dao层的数据增删改查的方法。

  1. @Override
  2. public void savePsr(Psr psr) {
  3. pd.savePsr(psr);
  4. }

5.5dao.java

dao层内,也就是数据访问层,定义SQL语句,执行插入语句。

  1. public void savePsr(Psr psr) {
  2. try {
  3. runner.update("insert into psr (psy,phone,pwd,psrxy,time) values (?,?,?,?,?)",
  4. psr.getPsy(),psr.getPhone(),psr.getPwd(),psr.getPsrxy(),psr.getTime());
  5. } catch (Exception e) {
  6. throw new RuntimeException(e);
  7. }
  8. }

6MySQL数据库表的创建

在这里插入图片描述

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server : 本地
  4. Source Server Type : MySQL
  5. Source Server Version : 50715
  6. Source Host : localhost:3306
  7. Source Schema : db_takeaway
  8. Target Server Type : MySQL
  9. Target Server Version : 50715
  10. File Encoding : 65001
  11. Date: 16/04/2021 15:15:09
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for admin
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `admin`;
  19. CREATE TABLE `admin` (
  20. `id` int(10) NOT NULL AUTO_INCREMENT,
  21. `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  22. `nickName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  23. `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  24. PRIMARY KEY (`id`) USING BTREE
  25. ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  26. -- ----------------------------
  27. -- Records of admin
  28. -- ----------------------------
  29. INSERT INTO `admin` VALUES (1, 'admin', '管理员', '123456');
  30. -- ----------------------------
  31. -- Table structure for business
  32. -- ----------------------------
  33. DROP TABLE IF EXISTS `business`;
  34. CREATE TABLE `business` (
  35. `id` int(11) NOT NULL AUTO_INCREMENT,
  36. `business_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  37. `business_person` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  38. `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  39. `business_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  40. `business_pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  41. PRIMARY KEY (`id`) USING BTREE
  42. ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  43. -- ----------------------------
  44. -- Records of business
  45. -- ----------------------------
  46. INSERT INTO `business` VALUES (2, '喔喔奶茶店', '张老板', '2021-04-15 10:28', '15365656363', '123456');
  47. INSERT INTO `business` VALUES (3, '每日杯奶茶店', '徐老板1', '2021-04-15 10:29', '16545456969', '123456');
  48. -- ----------------------------
  49. -- Table structure for customer
  50. -- ----------------------------
  51. DROP TABLE IF EXISTS `customer`;
  52. CREATE TABLE `customer` (
  53. `id` int(11) NOT NULL AUTO_INCREMENT,
  54. `customer_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  55. `customer_no` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  56. `customer_pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  57. `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  58. PRIMARY KEY (`id`) USING BTREE
  59. ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  60. -- ----------------------------
  61. -- Records of customer
  62. -- ----------------------------
  63. INSERT INTO `customer` VALUES (1, '小明', '88888888', '123456', '2021-04-15 15:13');
  64. INSERT INTO `customer` VALUES (2, '小红', '66666666', '123456', '2021-04-15 15:21');
  65. -- ----------------------------
  66. -- Table structure for psr
  67. -- ----------------------------
  68. DROP TABLE IF EXISTS `psr`;
  69. CREATE TABLE `psr` (
  70. `id` int(11) NOT NULL AUTO_INCREMENT,
  71. `psy` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配送人',
  72. `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
  73. `psrxy` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配送人学院',
  74. `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
  75. `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  76. `studentId` int(11) NULL DEFAULT NULL,
  77. PRIMARY KEY (`id`) USING BTREE
  78. ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  79. -- ----------------------------
  80. -- Records of psr
  81. -- ----------------------------
  82. INSERT INTO `psr` VALUES (2, '王五', '123456', '管理学院', '14523875432', '2021-04-15 16:04', 1);
  83. INSERT INTO `psr` VALUES (3, '李四', '123456', '管理学院', '12345674567', '2021-04-15 16:10', 67);
  84. -- ----------------------------
  85. -- Table structure for record
  86. -- ----------------------------
  87. DROP TABLE IF EXISTS `record`;
  88. CREATE TABLE `record` (
  89. `id` int(11) NOT NULL AUTO_INCREMENT,
  90. `tea_id` int(11) NULL DEFAULT NULL,
  91. `tea_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  92. `tea_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  93. `no` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号',
  94. `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  95. `userId` int(11) NULL DEFAULT NULL,
  96. `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  97. `state` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '1默认已购买 2商家已接单 3配送员已接单 4已收货',
  98. `psrId` int(11) NULL DEFAULT NULL,
  99. `psrName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  100. PRIMARY KEY (`id`) USING BTREE
  101. ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  102. -- ----------------------------
  103. -- Records of record
  104. -- ----------------------------
  105. INSERT INTO `record` VALUES (3, 3, '波霸奶茶', '小杯', '6c9e9e19-2684-4db9-a665-c0468fd44ab4', '小明', 1, '2021-04-16 11:30', '4', 2, '王五');
  106. INSERT INTO `record` VALUES (4, 3, '波霸奶茶', '小杯', 'f9d699da-61a4-4460-b781-c5ac67040401', '小红', 2, '2021-04-16 14:59', '4', 3, '李四');
  107. -- ----------------------------
  108. -- Table structure for student
  109. -- ----------------------------
  110. DROP TABLE IF EXISTS `student`;
  111. CREATE TABLE `student` (
  112. `student_id` int(11) NOT NULL AUTO_INCREMENT,
  113. `student_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  114. `student_college` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  115. `student_major` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  116. `student_class` int(11) NOT NULL,
  117. `student_telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  118. PRIMARY KEY (`student_id`) USING BTREE,
  119. INDEX `student_name`(`student_name`) USING BTREE,
  120. INDEX `student_major`(`student_major`) USING BTREE,
  121. INDEX `student_telephone`(`student_telephone`) USING BTREE,
  122. INDEX `student_college`(`student_college`) USING BTREE,
  123. INDEX `student_class`(`student_class`) USING BTREE
  124. ) ENGINE = InnoDB AUTO_INCREMENT = 68 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  125. -- ----------------------------
  126. -- Records of student
  127. -- ----------------------------
  128. INSERT INTO `student` VALUES (1, '王五', '管理学院', '信息管理与信息系统', 2, '14523875432');
  129. INSERT INTO `student` VALUES (3, '孙策', '药学院', '中药学', 5, '16754327864');
  130. INSERT INTO `student` VALUES (23, '刘老根', '管理学院', '公共事业管理', 1, '15678342367');
  131. INSERT INTO `student` VALUES (34, '赵六', '管理学院', '法学', 2, '14567832456');
  132. INSERT INTO `student` VALUES (35, '周瑜', '中医学院', '中医学', 3, '17865244567');
  133. INSERT INTO `student` VALUES (67, '李四', '管理学院', '市场营销', 1, '12345674567');
  134. -- ----------------------------
  135. -- Table structure for tea
  136. -- ----------------------------
  137. DROP TABLE IF EXISTS `tea`;
  138. CREATE TABLE `tea` (
  139. `id` int(11) NOT NULL AUTO_INCREMENT,
  140. `business_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商家名称',
  141. `business_cp` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商家产品',
  142. `business_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品类型',
  143. `business_id` int(11) NULL DEFAULT NULL,
  144. `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  145. PRIMARY KEY (`id`) USING BTREE
  146. ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  147. -- ----------------------------
  148. -- Records of tea
  149. -- ----------------------------
  150. INSERT INTO `tea` VALUES (1, '喔喔奶茶店', '芋圆波波奶茶', '中杯', 2, '2021-04-15 17:23');
  151. INSERT INTO `tea` VALUES (2, '喔喔奶茶店', '珍珠奶茶', '大杯', 2, '2021-04-15 17:25');
  152. INSERT INTO `tea` VALUES (3, '喔喔奶茶店', '波霸奶茶', '小杯', 2, '2021-04-15 17:25');
  153. INSERT INTO `tea` VALUES (4, '每日杯奶茶店', '奶茶双享杯', '中杯', 3, '2021-04-15 17:26');
  154. SET FOREIGN_KEY_CHECKS = 1;

项目获取:

https://gitee.com/sinonfin/L-javaWebSha/tree/master

发表评论

表情:
评论列表 (有 0 条评论,109人围观)

还没有评论,来说两句吧...

相关阅读