java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台
详细功能设计:请点击下面链接查看
java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台_哔哩哔哩_bilibili
源码+论文获取:
微信小程序奶茶外卖平台是计算机技术与餐饮管理相结合的产物,通过微信小程序奶茶外卖平台实现了对餐饮的高效管理。随着计算机技术的不断提高,计算机已经深入到社会生活的各个角落。为了满足餐饮人员对点单、结算、派送等进行高效的管理,在工作人员的具备一定的计算机操作能力的前提下,特编此基于微信小程序的奶茶外卖平台以提高餐饮实体门店的管理效率。
Abstract
Wechat applet milk tea takeout platform is the product of the combination of computer technology and catering management. The efficient management of catering is realized through wechat applet milk tea takeout platform. With the continuous improvement of computer technology, computers have penetrated into every corner of social life. In order to meet the catering staff's efficient management of ordering, settlement and delivery, on the premise that the staff have certain computer operation ability, this milk tea takeout platform based on wechat applet is specially compiled to improve the management efficiency of catering physical stores.
The system is based on the milk tea takeout platform developed by java language. The system development takes springboot as the basic framework and MySQL as the database. MVC mode can divide complex web applications into logical parts, simplify development and reduce errors. Make the development and maintenance of the system more efficient. The system is built with Tomcat as the server to ensure the fluency of accessing the website. After the system is completed, it will make takeout ordering more efficient and standardized. The system mainly includes two roles: applet user and background content administrator. Applet user includes: login, registration, personal center, personal information modification, home page (new product display, sales top), commodity classification, commodity list, commodity details, shopping cart, purchase, my order and other modules; Administrator: administrator login, commodity information management and user management; Through the association of each module of the system, the efficient management of takeout ordering is finally realized by means of informatization.
Key words: Java; MySQL; take-out food; tea with milk
目录
1 绪论
1.1 研究背景和意义
1.1.1 研究背景
1.1.2 研究意义
1.2 国内外研究现状
1.3 开发设计内容
1.4 研究方法
1.5 本章小结
2 相关技术简介
2.1 软硬件要求
2.2 开发技术介绍
2.2.1 Spring MVC技术
2.2.2 开发框架Spring boot
2.2.3 bootstrap库详细介绍
2.3 本章小结
3 系统可行性与需求分析
3.1 需求分析
3.2 功能分析
3.3 系统可行性分析
3.3.1 经济上的可行性
3.3.2 技术可行性
3.3.3 操作可行性
3.3.5 法律可行性
3.4 本章小结
4 系统设计
4.1 数据库整体设计
4.2 数据库逻辑设计
4.3 数据库表设计
4.3.1 表汇总
4.4数据库E-R图
4.5 本章小结
5 系统实现
5.1 系统功能实现
5.1.1 系统整体模块
5.1.2 主要功能
5.2 系统实现
5.2.1 管理员登录系统
5.2.2 商品信息
5.2.3 用户管理
5.2.4 订单管理
5.2.5 用户首页
5.2.6 点单
5.2.7 商品详情
5.2.8 购买
5.2.9 购物车
5.2.10 收支信息管理
6 系统测试
6.1 测试方法
6.2 测试目的
6.3 测试用例
6.4 测试总结
6.5 测试结论
致谢
1 绪论
1、可行性分析:观察外卖餐饮管理行业,对整体方案进行可行性分析。
3、详细设计:对整个框架进行详细的设计,包括界面设计,数据库设计以及前后端接口设计。
5、测试:设计测试用例,使用黑盒测试对系统进行测试,找到并优化bug。
本章主要阐述了研究的背景、研究的意义、应用现状、开发设计的内容以及研究的方法,通过以上内容概述了为什么要做这项研究、怎么做相关的研究设计以及自己最终想达到的效果。
由于本系统未涉及复杂的算法计算,为了能够利用最节约的成本以及简洁的代码达到最佳的效果,经过调研,计划采用Java语言来开发,具体的软硬件环境要求如下。
(1)硬件环境:Corei7处理器,内存要求8G及以上,硬盘50G以上
(2)服务器: 采用普通办公用个人计算机作为服务器,用来发布服务。
MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层,MVC的运行模式可参考下图。
图2.2 Spring boot容器启动器
之前在使用传统Spring框架去做Java 的系统开发中,大量的 配置文件存在各类型的项目之中,导致开发的项目变得很是笨重,繁琐的配置以及第三方框架配置,导致整个开发以及项目的部署效率大大降低。Spring Boot 不是用来代替 Spring框架的,是用来提升所有 Spring 框架的开发人员开发工具。它集成了许多许多的常用第三方软件库,Spring Boot中这些软件库库几乎可以达到零配置即时可用,大部分的 Spring Boot 系统只需要要很少量配置就能够让Java开发人员启动项目。
通过LBMD引擎,让应用系统的开发变成固定化,形成一种新的开发者模式:用LEAP工具来搭建应用系统,也可以用LEAP来运行应用系统,从而达到资金量减少、减少工作量的前提下快速构建大型、复杂项目的目的。通过LEAP提供“模型驱动”可以灵活部署仅用少量的代码就可以完成大型项目,大大的减少Java程序员工作量,还降低了bug的出现风险。LEAP采用了SOA框架简化开发,还同时可使用二进制的开发机制,并且完整了SDK,也是众多程序员选择Spring Boot的原因。
奶茶外卖微信小程序的目的是开发一个类似于现在市面上“喜茶go”、“瑞幸咖啡”、“奈雪的茶”等,一个供消费者、商家使用的餐饮服务配送平台。在用户端要实现的基本主要功能有:
(1) 登录功能:注册普通账号登录;也可以直接使用微信登录;登录后可以修改用户的基本信息,也可以退出。
(3)饮品选择:在点单栏目,直接点击每个饮品的“+”来增加饮品;也可以在饮品的详情页面,点击“加入购物车”在增加饮品。
(4)点餐列表:点餐栏目已经有数量的菜品,或者“购物车”栏。
(5) 资讯功能:后台录入资讯,在微信小程序外类点菜系统的资讯模板展示,用户可以任意浏览资讯列表和详细信息。
(6)饮品信息:点击到饮品详情页而,可以查看饮品的介绍,查看饮品简介、图片、详情。
(1) 商店商品管理:增删改查(后台录入饮品的相关信息,可以在小程序饮品列表里面一个个点击进去査看饮品详细信息;支持通过查询来查找所需要的饮品。)
本奶茶外卖平台,采用免费开源的Mysql作为数据库,开源的开发工具IDEA作为开发工具,用自己的电脑作为服务器,综上所属本项目在经济上是可行的。
3.3.2 技术可行性
本奶茶外卖平台采用Java语言作为后端开发语言,Mysql作为数据库,HTML、javascript等语言作为前端语言,以上语言都有成熟的框架,这些框架让编码没有那么难,所以,本奶茶外卖平台在技术上是可行的。
本奶茶外卖平台采用传统的系统操作形式,通过浏览器打开本系统,各项功能按照使用前后顺利平铺在左侧菜单栏,符合用户的操作习惯,所以本奶茶外卖平台在操作上是可行的。
本奶茶外卖平台仅用作毕业设计,不会对外开放,不会存在法律风险。
本章介绍了功能的整体框架,系统的角色分配,不同角色用户的登录登出、商品基本信息模块、人员管理模块、等功能;能;通过本章的介绍基本确定了整个系统的整体框架以及系统的需求分析。
商品表字典:名称、商品简介、商品封面图、商品视频、商品类别、发布时间、订购次数
商品评价表字典:用户姓名、用户id、商品id、商品名称、评价内容、评价时间
订购表字典:用户姓名、用户id、商品id、商品名称、订购价钱、订购时间
购物车:用户姓名、用户id、商品id、商品名称、商品封面图、添加时间、添加价钱
表名 |
功能说明 |
gwc |
购物车 |
gmb |
订购表 |
pjb |
商品评价表 |
spb |
商品表 |
Yhb |
用户表 |
用户信息字典:用户ID、部门ID、用户账号、用户昵称、用户类型(00系统用户)、用户邮箱、手机号码、用户性别(0男 1女 2未知)、头像地址、密码、帐号状态(0正常 1停用)表结构如下表所示。
列名 |
数据类型 |
长度 |
是否主键 |
说明 |
user_id |
varchar |
255 |
是 |
用户ID |
dept_id |
varchar |
255 |
否 |
部门ID |
user_name |
varchar |
255 |
否 |
用户昵称 |
user_type |
varchar |
255 |
否 |
用户类型(00系统用户) |
|
varchar |
255 |
否 |
用户邮箱 |
phonenumber |
varchar |
255 |
否 |
手机号码 |
sex |
varchar |
255 |
否 |
用户性别(0男 1女) |
avatar |
varchar |
255 |
否 |
头像地址 |
password |
varchar |
255 |
否 |
密码 |
status |
varchar |
255 |
否 |
帐号状态(0正常 1停用) |
del_flag |
varchar |
255 |
否 |
删除标志(0代表存在 2代表删除) |
表4.2 用户表
(2)商品表(spb)
商品表字典:名称、商品简介、商品封面图、商品视频、商品类别、发布时间、订购次数。表结构如下表所示。
列名 |
数据类型 |
长度 |
是否主键 |
说明 |
title |
varchar |
255 |
是 |
名称 |
jj |
varchar |
255 |
否 |
商品简介 |
pic |
varchar |
255 |
否 |
商品封面图 |
video |
varchar |
255 |
否 |
商品视频 |
types |
varchar |
255 |
否 |
商品类别 |
sctime |
varchar |
255 |
否 |
发布时间 |
counts |
varchar |
255 |
否 |
订购次数 |
表4.3 商品表
(3)商品评价表(pjb)
商品评价表字典:用户姓名、用户id、商品id、商品名称、评价内容、评价时间
。表结构如下表所示。
列名 |
数据类型 |
长度 |
是否主键 |
说明 |
Id |
varchar |
255 |
是 |
ID |
Xm |
varchar |
255 |
是 |
用户姓名 |
yhid |
varchar |
255 |
是 |
用户id |
spid |
varchar |
255 |
是 |
商品id |
spmc |
varchar |
255 |
是 |
商品名称 |
nr |
varchar |
255 |
是 |
评价内容 |
sj |
varchar |
255 |
是 |
评价时间 |
表4.3商品评价表
(4)订购表(gmb)
订购表字典:用户姓名、用户id、商品id、商品名称、订购价钱、订购时间。表结构如下表所示。
列名 |
数据类型 |
长度 |
是否主键 |
说明 |
Id |
varchar |
255 |
是 |
角色ID |
Xm |
varchar |
255 |
是 |
用户姓名 |
yhid |
varchar |
255 |
是 |
用户id |
spid |
varchar |
255 |
是 |
商品id |
spmc |
varchar |
255 |
是 |
商品名称 |
sj |
varchar |
255 |
是 |
订购时间 |
jq |
varchar |
255 |
是 |
订购价钱 |
表4.5订购表
(5)购物车(sys_role)
购物车:用户姓名、用户id、商品id、商品名称、商品封面图、添加时间、添加价钱。表结构如下表所示。
列名 |
数据类型 |
长度 |
是否主键 |
说明 |
Id |
varchar |
255 |
是 |
角色ID |
Xm |
varchar |
255 |
是 |
用户姓名 |
yhid |
varchar |
255 |
是 |
用户id |
spid |
varchar |
255 |
是 |
商品id |
spmc |
varchar |
255 |
是 |
商品名称 |
tjtime |
varchar |
255 |
是 |
添加时间 |
price |
varchar |
255 |
是 |
添加价钱 |
表4.6 购物车表
本章详解介绍了本系统的数据库设计,包括了数据库的逻辑设计、数据库的表设计等模块,详细的介绍了本系统包含了哪些数据表以及每个表的表结构。通过本章的内容详细的了解本系统的数据库设计。
5 系统实现
首页:用户进来第一眼看到的界面,包含滚动广告、最新产品、销量top商品
商品详情:展示商品的详细信息,包括图片、价格、详细介绍等信息。
(1)功能介绍:管理员注册账号:管理员填写账号、个人信息注册账号
(2)操作流程:打开登录界面-输入账号-输入密码-点击登录,登录成功,跳转系统首页。
(3)功能核心代码:
login(){const that=this;this.axios.post(
that.global.server + that.global.hostname + "xtlogin",{ headers: { 'content-type': 'application/x-www-form-urlencoded'!");sessionStorage.setItem("xtyhuer", res.data.userid);sessionStorage.setItem("xtyhxm", res.data.xm);sessionStorage.setItem("xtzh",res.data.zh);sessionStorage.setItem("xtsex",res.data.sex);sessionStorage.setItem("xtage",res.data.age);sessionStorage.setItem("xtdz",res.data.dz);sessionStorage.setItem("xtdh",res.data.dh);sessionStorage.setItem("xtsfz",res.data.sfz);sessionStorage.setItem("xtysxm",res.data.ysxm);sessionStorage.setItem("xtysdh",res.data.ysdh);sessionStorage.setItem("xtyssfz",res.data.yssfz);sessionStorage.setItem("xtroles", res.data.roles);
that.$router.push({ path: "Home" });
} else {alert("登录失败,请重试!")}}).catch(function (e) {})},
(1)功能介绍:此功能主要用来管理商品的信息,商品增加、删除、修改、模糊查询商品信息。
(2)操作流程:进入主界面界面-点击新增-弹出新增界面-依次输入:名称、商品简介、商品封面图、商品视频、商品类别等信息,点击提交,新增成功,关闭弹窗刷新列表。
public boolean checkPhone(String phone) throws Exception {
EncryptionDecryption a = new EncryptionDecryption("tkwj");
String sql = "select count(*) as num from t_wx_client where phone = ? with ur ";
int num = txxJdbcTemplate.queryForObject(sql, new Object[] { a.encrypt(phone) }, Integer.class);
return num == 0;}
public boolean checkPhonemy(String phone, String openid) throws Exception {
EncryptionDecryption a = new EncryptionDecryption("tkwj");
String sql = "select count(*) as num from t_wx_client where phone = ? and openid != ? with ur ";
int num = txxJdbcTemplate.queryForObject(sql, new Object[] { a.encrypt(phone), openid }, Integer.class);
return num == 0;
}
public void updateUserinfo(String openid, String phone) throws Exception {
EncryptionDecryption a = new EncryptionDecryption("tkwj");
String sqlUpdate = "update t_wx_client set phone = ? where openid = ?";
Object[] obj = { a.encrypt(phone), openid };
txxJdbcTemplate.update(sqlUpdate, obj);
}
5.2.3 用户管理
(1)功能介绍:此功能主要用来管理用户的信息,管理员增加、删除、修改、模糊查询信息。
(2)操作流程:进入主界面界面-点击新增-弹出新增界面-依次输入:姓名、账号、密码、角色等信息,点击提交,新增成功,关闭弹窗刷新列表。
图5.4 效果图
(3)功能核心代码:
public List<Yyorg> searchOrgDao(String orgname, String branch) {
List<Yyorg> list = new ArrayList<Yyorg>();
List<String> objlist = new ArrayList<String>();
String orgnamesql = "";
String branchsql = "";
if (!"".equals(orgname) && orgname != null) {
orgnamesql = " and orgname = ? ";
objlist.add(orgname);
}
if (!"".equals(branch) && branch != null && !"**".equals(branch)) {
branchsql = " and branch = ? ";
objlist.add(branch);
}
Object[] obj = new Object[objlist.size()];
for (int i = 0; i < objlist.size(); i++) {
obj[i] = objlist.get(i);
}
String sql = "select * from txx.t_yyorg where 1 = 1 " + orgnamesql + branchsql + " with ur";
list = txxJdbcTemplate.query(sql, obj, new RowMapper<Yyorg>() {
@Override
public Yyorg mapRow(ResultSet rs, int rowNum) throws SQLException {
Yyorg yyorg = new Yyorg();
yyorg.setBranch(rs.getString("branch"));
yyorg.setBranchname(rs.getString("branchname"));
yyorg.setOrgcode(rs.getString("orgcode"));
yyorg.setOrgname(rs.getString("orgname"));
yyorg.setAddress(rs.getString("address"));
return yyorg;
}
});
return list;
}
5.2.4 订单管理
(1)功能介绍:此功能主要用来管理订单的信息,管理员对订单删除、修改、模糊查询信息。
(2)操作流程:进入主界面界面-点击查询展示订单列表,点击查看查看订单详细信息,关闭弹窗刷新列表。
图5.5 效果图
(3)功能核心代码:
public int updateyyflag(String uuid, String flag) throws Exception {
String sqlUpdate = "update txx.t_yy set flag = ? where uuid = ? ";
Object[] obj = { flag, uuid };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public int insertYylog(String uuid, String oa, String flagb, String flaga) throws Exception {
String sqlUpdate = "INSERT INTO txx.T_CZLOG (uuid, oa, flagb, flaga,createtime) VALUES (?,?,?,?,?)";
Object[] obj = { uuid, oa, flagb, flaga, TimeUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss") };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public List<Yyorg> searchAllBlacklistDao(String szdate, String orgcode, AgntInfo ag) {
String branch = ag.getBranch();
List<String> objlist = new ArrayList<String>();
String branchsql = "";
String szdatesql = "";
String orgcodesql = "";
if (!"".equals(branch) && branch != null && !branch.equals("**")) {
branchsql = " and b.branch = ? ";
objlist.add(branch);
}
if (!"".equals(szdate) && szdate != null) {
szdatesql = " and a.szdate = ? ";
objlist.add(szdate);
}
if (!"".equals(orgcode) && orgcode != null) {
orgcodesql = " and a.orgcode = ? ";
objlist.add(orgcode);
}
Object[] obj = new Object[objlist.size()];
for (int i = 0; i < objlist.size(); i++) {
obj[i] = objlist.get(i);
}
List<Yyorg> list = new ArrayList<Yyorg>();
String sql = "SELECT A.SZDATE, B.BRANCH,B.BRANCHNAME,B.ORGCODE,B.ORGNAME,B.ADDRESS FROM TXX.t_blacklist A "
+ "LEFT JOIN txx.t_yyorg B ON A.ORGCODE = B.ORGCODE " + "WHERE 1=1 " + branchsql + szdatesql
+ orgcodesql + " order by szdate desc WITH UR ";
list = txxJdbcTemplate.query(sql, obj, new RowMapper<Yyorg>() {
@Override
public Yyorg mapRow(ResultSet rs, int rowNum) throws SQLException {
Yyorg yyorg = new Yyorg();
yyorg.setSzdate(rs.getString("szdate"));
yyorg.setBranch(rs.getString("branch"));
yyorg.setBranchname(rs.getString("branchname"));
yyorg.setOrgcode(rs.getString("orgcode"));
yyorg.setOrgname(rs.getString("orgname"));
yyorg.setAddress(rs.getString("address"));
return yyorg;
}
});
return list;
}
5.2.5 用户首页
(1)功能介绍:用户进来第一眼看到的界面,包含滚动广告、最新产品、销量top商品。
(2)操作流程:用户打开微信小程序,第一屏看到的内容。
图5.6 效果图
(3)功能核心代码:
public int insertBlacklist(String szdate, String orgcode) throws Exception {
String sqlUpdate = "INSERT INTO txx.t_blacklist ( szdate, orgcode) VALUES (?,?)";
Object[] obj = { szdate, orgcode };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public int deleteBlacklist(String szdate, String orgcode) throws Exception {
String sqlUpdate = "delete from txx.t_blacklist where szdate = ? and orgcode = ? ";
Object[] obj = { szdate, orgcode };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public List<Orgyytime> searchTsorgtime(String yydate, String orgcode, AgntInfo ag) {
String branch = ag.getBranch();
List<String> objlist = new ArrayList<String>();
String branchsql = "";
String yydatesql = "";
String orgcodesql = "";
if (!"".equals(branch) && branch != null && !branch.equals("**")) {
branchsql = " and b.branch = ? ";
objlist.add(branch);
}
if (!"".equals(yydate) && yydate != null) {
yydatesql = " and a.yydate = ? ";
objlist.add(yydate);
}
if (!"".equals(orgcode) && orgcode != null) {
orgcodesql = " and a.orgcode = ? ";
objlist.add(orgcode);
}
Object[] obj = new Object[objlist.size()];
for (int i = 0; i < objlist.size(); i++) {
obj[i] = objlist.get(i);
}
List<Orgyytime> list = new ArrayList<Orgyytime>();
String sql = "SELECT ORDER BY STIME ASC WITH ur ";
list = txxJdbcTemplate.query(sql, obj, new RowMapper<Orgyytime>() {
@Override
public Orgyytime mapRow(ResultSet rs, int rowNum) throws SQLException {
Orgyytime orgyytime = new Orgyytime();
orgyytime.setUuid(rs.getString("uuid"));
orgyytime.setYydate(rs.getString("yydate"));
orgyytime.setOrgcode(rs.getString("orgcode"));
orgyytime.setOrgname(rs.getString("orgname"));
orgyytime.setStime(rs.getString("stime").substring(0, 19));
orgyytime.setEtime(rs.getString("etime").substring(0, 19));
orgyytime.setNum(rs.getString("num"));
orgyytime.setTypes(rs.getString("types"));
orgyytime.setYysdtypes(rs.getString("yysdtypes"));
orgyytime.setBranch(rs.getString("branch"));
orgyytime.setBranchname(rs.getString("branchname"));
return orgyytime;
}
});
return list;
}
5.2.6 点单
(1)功能介绍:用户在此模块进行点单的操作。
(2)操作流程:进入主界面界面-点击点单-选择喜欢的分类-选择喜欢的商品。
图5.7效果图
(3)功能核心代码:
public int insertTsorgtime(String uuid, String orgcode, String yydate, String stime, String etime, String num,
String types) throws Exception {
String sqlUpdate = "INSERT INTO txx.t_orgtime ( uuid, orgcode, yydate, stime, etime, num, types ) VALUES (?,?,?,?,?,?,?)";
Object[] obj = { uuid, orgcode, yydate, stime, etime, num, types };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public int deleteTsorgtime(String uuid) throws Exception {
String sqlUpdate = "delete from txx.t_orgtime where uuid = ? ";
Object[] obj = { uuid };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
public void updateTsorgtime(String uuid, String orgcode, String yydate, String stime, String etime, String num,
String types) throws Exception {
String sqlUpdate = "update txx.t_orgtime set orgcode = ?,yydate = ?,stime = ?,etime = ?,num = ?,types = ? where uuid = ?";
Object[] obj = { orgcode, yydate, stime, etime, num, types, uuid };
txxJdbcTemplate.update(sqlUpdate, obj);
}
public void plInsert(String szdate, String branch, String level) throws Exception {
String sqlUpdate = "";
List<String> objlist = new ArrayList<String>();
if ("1".equals(level)) {
sqlUpdate = "insert into txx.t_blacklist (szdate, orgcode) "
+ "SELECT ?,orgcode FROM txx.t_yyorg WITH ur ";
objlist.add(szdate);
} else {
sqlUpdate = "insert into txx.t_blacklist (szdate, orgcode) "
+ "SELECT ?,orgcode FROM txx.t_yyorg WHERE branch = ? WITH ur ";
objlist.add(szdate);
objlist.add(branch);
Object[] obj = new Object[objlist.size()];
for (int i = 0; i < objlist.size(); i++) {
obj[i] = objlist.get(i);
}
txxJdbcTemplate.update(sqlUpdate, obj);
(1)功能介绍:展示商品的详细信息,包括图片、价格、详细介绍等信息。
(2)操作流程:进入主界面界面-点击点单-选择喜欢的分类-选择喜欢的商品-点击进入商品详情。
public int checkSfz(String sfz) throws Exception {
EncryptionDecryption a = new EncryptionDecryption("tkwj");
String sql = "SELECT count (*) FROM t_wx_client WHERE sfz = ? WITH ur";
String[] parms = { a.encrypt(sfz) };
int num = txxJdbcTemplate.queryForObject(sql, parms, Integer.class);
return num;
}
public int checkSfzmy(String sfz, String openid) throws Exception {
EncryptionDecryption a = new EncryptionDecryption("tkwj");
String sql = "SELECT count (*) FROM t_wx_client WHERE sfz = ? and openid != ? WITH ur";
String[] parms = { a.encrypt(sfz), openid };
int num = txxJdbcTemplate.queryForObject(sql, parms, Integer.class);
return num;}
5.2.8 购买
(1)功能介绍:用户直接购买自己需要的商品。
(2)操作流程:入主界面界面-点击点单-选择喜欢的分类-选择喜欢的商品-点击进入商品详情-点击购买可以直接支付购买。
图5.9 效果图
(3)功能核心代码:
String agntnum, String level, String ysfz) {
String sqlUpdate = "insert into t_wx_client(openid, cname, sfz) values (?, ?, ?)";
Object[] obj = { openid, cname, sfz };
txxJdbcTemplate.update(sqlUpdate, obj);
}
public void updateClient(String openid, String sfz, String cardno, String agntnum, String level, String sex,
String cname, String mobile) {
String sqlUpdate = "update t_wx_client set sfz = ?,cname = ?,phone = ? where openid = ?";
Object[] obj = { sfz, cname, mobile, openid };
txxJdbcTemplate.update(sqlUpdate, obj);}
5.2.9 购物车
(1)功能介绍:购物车:喜欢的商品添加购物车。。
(2)操作流程:进入主界面界面-点击点单-选择喜欢的分类-选择喜欢的商品-点击进入商品详情-点击加入购物车可以直接加入购物车。
图5.10 维修人员管理界面效果图
(3)功能核心代码:
public void addCoupon(String sfz, String fcode, int num, String ysfz, String cardno, String enddate,
double discount, String version, int totals, double yj, double yhj) throws Exception {
String sqlUpdate = "insert into t_coupon(sfz, fcode, num, ysfz, cardno, enddate, discount,version,totals,yj,yhj) values (?, ?, ?, ?, ?, ?, ?,?,?,?,?)";
Object[] obj = { sfz, fcode, num, ysfz, cardno, enddate, discount, version, totals, yj, yhj };
txxJdbcTemplate.update(sqlUpdate, obj);
}
public void updateCardStatus(String mobile, String cname, String status) {
String sqlUpdate = "update t_valid_register set flag = ? where phone = ? and cname = ?";
Object[] obj = { status, mobile, cname };
txxJdbcTemplate.update(sqlUpdate, obj);
}
public void updateCardStatus(String cardno, String status) {
String sqlUpdate = "update t_hy_card set flag = ? where cardno = ?";
Object[] obj = { status, cardno };
txxJdbcTemplate.update(sqlUpdate, obj);
}
public void registCard(String openid, String sfz, String st_card, String version, String level, Double clbf,
Double xdbf, String agntnum, String enddate) {
String sqlUpdate = "insert into t_register_card(openid, sfz, cardno,version,cardlevel,clbf,xdbf,agntnum,enddate) values (?, ?, ?,?,?,?,?,?,?)";
Object[] obj = { openid, sfz, st_card, version, level, clbf, xdbf, agntnum, enddate };
txxJdbcTemplate.update(sqlUpdate, obj);
}
5.2.10 登录注册
(1)功能介绍:登录注册:注册登录模块(用户注册自己的姓名电话等)
(2)操作流程:点击我的-登陆注册-填写信息-登录或者注册成功。
(3)功能核心代码:
public List<Map<String, String>> queryCardBenefit(String openid) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
String sql = "select a.fcode,b.fname,a.enddate,a.num,a.cardno,b.note from"
+ " (select a.fcode,a.num,a.cardno,a.enddate from t_coupon a"
+ " left join t_wx_client b on a.sfz = b.sfz" + " where b.openid = ?) a"
+ " left join t_data_dict b on a.fcode = b.fcode" + " with ur";
list = txxJdbcTemplate.query(sql, new Object[] { openid }, new RowMapper<Map<String, String>>() {
@Override
public Map<String, String> mapRow(ResultSet rs, int rowNum) throws SQLException {
Map<String, String> map = new HashMap<String, String>();
map.put("fcode", rs.getString("fcode"));
map.put("fname", rs.getString("fname"));
map.put("enddate", rs.getString("enddate"));
map.put("num", rs.getString("num"));
map.put("cardno", rs.getString("cardno"));
map.put("note", rs.getString("note"));
return map;
}
});
return list;
}
public int insertZsxxLog(String openid, String resultpic, String uploadpic) {
String sqlUpdate = "INSERT INTO txx.wx_zsxx ( openid, resultpic, uploadpic, hctime) VALUES (?,?,?,?)";
Object[] obj = { openid, resultpic, uploadpic, TimeUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss") };
return txxJdbcTemplate.update(sqlUpdate, obj);
}
详细功能设计:请点击下面链接查看
java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台_哔哩哔哩_bilibili
源码+论文获取:
源码+论文获取请私信获取
java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台相关推荐
- java+SpringBoot+HTML+Mysq基于微信小程序的掌上博物馆游览
详细功能设计:请点击下面链接查看 java+SpringBoot+HTML+Mysq基于微信小程序的掌上博物馆游览_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 摘 要 本 ...
- 基于java+SpringBoot+HTML+Mysq+微信小程序+小说阅读网站
详细功能设计:请点击下面链接查看 基于java+SpringBoot+HTML+Mysq+微信小程序+小说阅读网站_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 基于Spr ...
- 基于java+SpringBoot+HTML+Mysq校园勤工助学平台
详细功能设计:请点击下面链接查看 基于java+SpringBoot+HTML+Mysq校园勤工助学平台_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 校园勤工助学平台的设 ...
- java+SpringBoot+HTML+Mysq行政审批系统设计与实现
详细功能设计:请点击下面链接查看 java+SpringBoot+HTML+Mysq行政审批系统设计与实现_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 目 录 摘 要 A ...
- Springboot毕设项目基于Java对运动心跳数据分析系统设计与实现455j4(java+VUE+Mybatis+Maven+Mysql)
Springboot毕设项目基于Java对运动心跳数据分析系统设计与实现455j4(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8. ...
- springboot毕设项目基于Java酒店管理系统53blc(java+VUE+Mybatis+Maven+Mysql)
springboot毕设项目基于Java酒店管理系统53blc(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...
- SpringBoot框架的基于java的疫情期间网课管理系统
活动地址:毕业季·进击的技术er 博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SpringBoot框架的基于java的疫情期间 ...
- 「实战案例」基于Python语言开发的信用评分卡
信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...
- 基于易语言开发的小说下载工具
基于易语言开发的小说下载工具 这次的编程,是为了交作业,嘻嘻 老规矩,上个图 ***让我女朋友露个脸,哈哈哈哈哈*** 起因:看到论坛里面,没什么用易语言下载小说的软件,是易语言不好用吗?还是Pyth ...
最新文章
- 人的执念真的是非常的可怕
- 【Python】挑战SQL:图解Pandas的数据合并merge
- .net get set 初始化_RAM初始化的下板验证(Xilinx)
- ORACLE TEXT DATASTORE PREFERENCE(五)
- scala字符替换_如何替换Scala中的“坏”字符?
- 程序员的春天来了,赏花去!说走就走
- C语言图形库——EasyX常用函数
- 微信小程序学习笔记01:微信小程序概述
- 投影仪幕布增益_当贝投影带你看投影仪使用幕布和白墙的区别实测!
- 破解sourceInsight4
- Web 2.0理念在产品应用中的借鉴之处
- html单元格竖着排列,html表格,表头竖向固定,横向滚动的例子
- 黑金AX301 SDRAM读写
- xcode,cocoa开发:如何使用第三方的dylib
- vc6.0怎么新建c语言项目
- 对计算机网络的基础认识
- 2011新版工业技术 中文核心期刊目录总览
- cs与msf联动概述
- python中阶乘怎么写程序_Python 阶乘实例
- Laravel 之搜索引擎elasticsearch扩展Scout
热门文章
- 编程语言python用什么笔记本最好_这六种编程语言最适合初学者学习 不骗你!...
- 微信小程序 php读取数据,在微信小程序中如何获取输入数据
- 设计模式其中之一《代理模式》
- 【今日CV 计算机视觉论文速览 第129期】Wed, 12 Jun 2019
- Web基础配置篇(十一): Zookeeper的安装配置及使用
- 【云原生Docker系列项目实战第一篇】dockerfile+lnmp+workpress(星星温柔泛滥,人间至善)
- 产品笔记-《增长黑客》
- 推荐23个开挂网址,让你走向巅峰!
- STM32F407 芯片的学习 day07 iic通信方式 主芯片 与 at24c02之间的通讯
- Photoshop 笔记