基于Android的外卖App

我录制个视频演示下如何操作,你拿到程序自己也走一遍

基于Android的外卖App1

分app端和服务端

基于Android的外卖App2

基于Android的外卖App3

服务端!!!

基于Android的外卖App4

http://localhost:8080/2waimai2/adminLogin/login.html

基于Android的外卖App5

访问地址

然后服务端又分两个角色,管理员和商家

超级管理员账号密码 admin 111

我演示就随意填写数据了,数据都是可以增删改查的,你可以自己录入修改,都可以的,不要在意我的数据

图片也可以上传

轮播图,后台可以管理

资讯后台可以添加

注册的客户后台可以审核

美食的分类,都是用外键表关联,然后展示的时候自动加载名称,技术点!!!!!!!!!!!!!!!!!!

商家发布的美食审核

订单管理

商家注册,后台可以管理,不健康的商家可以删除(模拟监控吧,意思达到就行)

然后客户可以售后维权,超级管理员可以看到,还有统计中心

我浏览一遍

这里能有的功能都有增删该查查,模糊查询,分页!!!!!!!!!!!,分页满5条自动分页

统计还是图形的!!!

商家可以修改自己的密码什么的,不讲了,你自己看

查看订单

弹窗正常居中的,录制软件引起的,不要在意

基本功能都有了,差不多一个完整的外卖体系了

订单后台还可以更新 状态,更新物流,一会演示

app端我就用模拟器演示了,方便,不然不方便

数据都是来自于后台的,都是可以增删改查的,老师主要考察程序,内容你随意修改

app端有角色权限拦截器,必须要登录才能操作,这个跟真的一样做的

登录注册,都在这里

模拟支付形成订单

app端实时看到更新信息

评论人,评论内容,时间都有

然后都是权限控制,必须要登录注册才有,

还有找回密码,注销

名称 说明

帐号 用户自主注册产生,用来登陆

用户分类 分为顾客和商家,每个帐号都有一个前缀以区分,分流进入不同页面。

用户信息管理 用户可通过该模块对用户信息进行增加、查询、修改、删除,分别对应注册、登陆、修改用户信息、注销账户

菜单管理 商家在店铺某菜品下发布、更改、查看和删除该菜品信息,包括名字、价格和图片等

订单状态 对订单添加当前状态的标签:等待中、已接受、配送中、已完成

订单管理 顾客点单形成新订单对应添加,还可以查看、修改、删除订单,后两者在未支付状态下才可进行

评论管理 顾客可以查看店铺的用户评价,可以在已完成的订单里添加、查看自己的评论

商家只能查看评论区顾客的评论

店铺信息管理 商家发布店铺、删除店铺、修改店铺信息分别对应店铺信息的增加、删除、修改;顾客可以查询店铺

1.4参考资料

参考资料 作者

《软件工程(第三版)》,高等教育出版社,2012 齐治昌、谭庆平、宁洪

2系统结构模型

2.1初始对象表

初始对象/类表:

可能的类 英文类名 简单描述

用户 User 该类是管理员类、商家用户类和顾客用户的基类,用于提供三个类共有的属性和操作

管理员 Administrator 该类用于对管理员信息提供一系列相关操作

商家用户 RestaurantUser 该类用于对商家注册用户的信息提供管理操作

顾客用户 GuestUser 该类用于对顾客注册用户的信息提供管理操作

店铺 Restaurant 该类用于管理商家注册用户发布的店铺,对店铺进行一系列相关操作

评论 Comment 该类用用管理顾客注册用户发布的评论,对评论进行一系列相关操作

菜品 Dishes 该类用于对商家注册用户发布的菜品进行管理操作

订单 Order 该类用于对顾客注册用户提交的订单进行一系列操作

2.2初始类图

2.3细化类图

2.3.1属性的识别

类名:User(用户类)

属性表如表2.1.1所示:

表2.1.1 User类属性表

中文名 英文名 数据类型

用户ID userID varchar

类名:Administrator(管理员类)

属性表如表2.1.2所示:

表2.1.2 Administrator类属性表

中文名 英文名 数据类型

用户ID userID varchar

类名:ResturantUser(商家用户类)

属性表如表2.1.3所示:

表2.1.3 ResturantUser类属性表

中文名 英文名 数据类型

用户ID userID varchar

用户身份 userType tinyint

类名:GuestUser(顾客用户类)

属性表如表2.1.4所示:

表2.1.4 GuestUser类属性表

中文名 英文名 数据类型

用户ID userID varchar

注册时间 registerTime datetime

用户身份 userType tinyint

手机号 phoneNum varcahr

姓名 userName varchar

送餐地址 guestAddress varchar

类名:Restaurant(店铺类)

属性表如表2.1.5所示:

表2.1.5 Restaurant类属性表

中文名 英文名 数据类型

店铺ID restaurantID varchar

店主ID userID varchar

店铺名 restaurantName varchar

店铺地址 restaurantAddress varchar

营业时间 openTime datetime

店铺简介 resturantIntro text

联系电话 phoneNum varchar

类名:Dishes(菜品类)

属性表如表2.1.6所示:

表2.1.6 Dishes类属性表

中文名 英文名 数据类型

菜品ID dishesID varchar

店铺ID restaurantID varchar

菜品名 dishesName varchar

菜品介绍 dishesIntro varchar

菜品价格 dishesPrice float

菜品图片 dishesImg varchar

菜品是否供应 isAvailable bool

类名:Comment(评论类)

属性表如表2.1.7所示:

表2.1.7 Comment类属性表

中文名 英文名 数据类型

评论ID commentID varchar

顾客用户ID userID varchar

订单ID orderID varchar

发布时间 publishTime datetime

评论内容 commentContent text

类名:Order(订单类)

属性表如表2.1.8所示:订单状态orderStatus=0,顾客已下单等待付款;orderStatus=1,商家已接单,正在制作;orderStatus=2,订单制作完成,在配送途中;orderStatus=3,顾客确认送达,订单已完成

表2.1.8 Order类属性表

中文名 英文名 数据类型

订单ID orderID varchar

顾客用户ID userID varchar

店铺ID restaurantID varchar

所有菜品ID allDishesID varchar

菜品数量 dishesNum Tinyint

订单提交时间 orderStime datetime

订单完成时间 orderFtime datetime

订单状态 orderStatus tinyint

2.3.2 操作的识别

1.操作的分类

基本操作:包括数据库检索和更新,如增加、删除、修改、分类、选择、查询、计算、汇总

关键操作:必须由对象提供的、在算法上复杂的业务操作

2.操作的识别

类名:User

操作表如表2.2.1所示:

表2.2.1 User类操作表

中文名 英文名 返回值类型

添加用户 addUser() bool

删除用户 deleteUser() bool

返回用户ID getUserID() string

设置用户ID setUserId() bool

类名:Administrator

操作表如表2.2.2所示:

表2.2.2 Administrator类操作表

中文名 英文名 返回值类型

添加用户 addUser() bool

删除用户 deleteUser() bool

返回用户ID getUserID() string

设置用户ID setUserId() bool

类名:ResturantUser

操作表如表2.2.3所示:

表2.2.3 ResturantUser类操作表

中文名 英文名 返回值类型

添加用户 addUser() bool

删除用户 deleteUser() bool

返回用户ID getUserID() string

设置用户ID setUserId() bool

返回用户身份 getUserType() int

设置用户身份 setUserType() bool

类名:GuestUser

操作表如表2.2.4所示:

表2.2.4 GuestUser类操作表

中文名 英文名 返回值类型

添加用户 addUser() bool

删除用户 deleteUser() bool

返回用户ID getUserID() string

设置用户ID setUserId() bool

返回用户注册时间 getRegisterTime() string

设置用户注册时间 setRegisterTime() Bool

返回用户身份 getUserType() int

设置用户身份 setUserType() bool

返回用户姓名 getUserName() string

设置用户姓名 setUserName() bool

设置手机号 setPhoneNum() bool

返回手机号 getPhoneNum() string

设置送餐地址 setGuestAddress() bool

返回送餐地址 getGuestAddress() string

类名:Restaurant

操作表如表2.2.5所示:

表2.2.5 Restaurant类操作表

中文名 英文名 返回值类型

添加店铺 addRestaurant() bool

删除店铺 deleteRestaurant() bool

设置店铺ID setRestaurantID() bool

返回店铺ID getRestaurantID() string

返回店主ID getUserID() string

设置店主ID setUserId() bool

设置店铺名 setRestaurantName() bool

返回店铺名 getRestaurantName() string

设置店铺地址 setRestAddress() bool

返回店铺地址 getRestAddress() string

设置营业时间 setOpenTime() bool

返回营业时间 getOpenTime() string

设置店铺简介 setResturantIntro() Bool

返回店铺简介 getResturantIntro() string

设置电话 setPhoneNum() bool

返回电话 getPhoneNum() string

类名:Dishes

操作表如表2.2.6所示:

表2.2.6 Dishes类操作表

中文名 英文名 返回值类型

添加菜品 addDishes() Bool

删除菜品 deleteDishes() Bool

设置菜品ID setDishesID() Bool

返回菜品ID getDishesID() String

设置店铺ID setRestaurantID() bool

返回店铺ID getRestaurantID() string

设置菜品名 setDishesName() Bool

返回菜品名 getDishesName() String

设置菜品介绍 setDishesIntro() Bool

返回菜品介绍 getDishesIntro() String

设置菜品价格 setDishesPrice() Bool

返回菜品价格 getDishesPrice() float

设置菜品是否供应 setIsAvailable() bool

返回菜品是否供应 getIsAvailable() Bool

设置菜品图片 SetDishesImg() Bool

返回菜品图片 getDishesImg() string

类名:Comment

操作表如表2.2.7所示:

表2.2.7 Comment类操作表

中文名 英文名 返回值类型

添加评论 addComment() Bool

删除评论 deleteComment() Bool

设置评论ID setCommentID() Bool

返回评论ID getCommentID() string

返回评论者ID getUserID() string

设置评论者ID setUserId() bool

设置被评订单ID setOrderID() Bool

返回被评订单ID getOrderID() String

设置评论内容 setCommentContent() Bool

返回评论内容 getCommentContent() string

设置评论发布时间 setPublishTime() Bool

返回评论发布时间 GetPublishTime() string

类名:Order

操作表如表2.2.8所示:

表2.2.8 Order类操作表

中文名 英文名 返回值类型

添加订单 addOrder() Bool

删除订单 deleteOrder() Bool

设置定单ID setOrderID() Bool

返回定单ID getOrderID() String

返回顾客ID getUserID() string

设置顾客ID setUserId() bool

设置所有菜品ID setAllDishesID() Bool

返回所有菜品ID getAllDishesID() String

设置各菜品数量 setDishesNum() bool

返回各菜品数量 getDishesNum() Int[]

设置订单提交时间 setOrderStime() bool

返回订单提交时间 getOrderStime() string

设置订单完成时间 setOrderFtime() bool

返回订单完成时间 getOrderFtime() string

设置订单状态 setOrderStatus() Bool

返回订单状态 getOrderStatus() string

2.4三层精化类图

在初始类图的基础上,运用三层体系结构思想对基本类模型进行划分。根据各个对象的具体情况,将对象分成界面、事务和数据层。

1.对Administrator类的三层划分

界面层:

名称 描述

signin.xml 登录页面

index.xml 首页

事务层:administrator.java 用户信息管理类

数据层:administrator.dat 用户信息表

2.对ResturantUser类的三层划分

界面层:

名称 描述

signup.xml 注册页面

signin.xml 登录页面

index.xml 首页

resetuserinfo.xml 修改用户信息页面

事务层:ResturantUser.java 用户信息管理类

数据层:ResturantUser.dat 用户信息表

3.对GuestUser类的三层划分

界面层:

名称 描述

signup.xml 注册页面

signin.xml 登录页面

index.xml 首页

resetuserinfo.xml 修改用户信息页面

事务层:GuestUser.java 用户信息管理类

数据层:GuestUser.dat 用户信息表

4.对Restaurant类的三层划分

界面层:

名称 描述

createRestaurant.xml 添加店铺页面

manageRestaurant.xml 管理店铺页面

editRestaurant.xml 编辑店铺信息页面

queryRestaurant.xml 查询店铺页面

Restaurant.Xml 展示店铺页面

事务层:Restaurant.java 店铺管理类

数据层:Restaurant.dat 店铺信息表

5.对Dishes类的三层划分

界面层:

名称 描述

createDishes.xml 添加菜品页面

manageDishes.xml 管理菜品页面

editDishes.html 编辑菜品信息页面

checkDishes.xml 查看菜品信息页面

Dishes.Xml 展示菜品页面

事务层:Dishes.java 菜品管理类

数据层:Dishes.dat 菜品信息表

6.对Comment类的三层划分

界面层:

名称 描述

createcomment.xml 新增评论页面

managecomment.xml 评论管理页面

comment.xml 评论展示页面

editcomment.xml 编辑评论页面

事务层:comment.java 评论管理类

数据层:comment.dat 评论信息表

7.对Order类的三层划分

界面层:

名称 描述

createOrder.xml 添加订单页面

manageOrder.xml 管理订单页面

checkOrder.xml 查看订单信息页面

order.Xml 展示订单页面

editOrder.xml 修改订单页面

事务层:Order.java 订单管理类

数据层:Order.dat 订单信息表

评论