学习♂交流专用帖
学习♂交流专用帖欢迎大家在评论区学习♂交流,但请不要发布非健康信息哦~
苍穹外卖-day12
苍穹外卖-day12课程内容
工作台
Apache POI
导出运营数据Excel报表
功能实现:工作台、数据导出
工作台效果图:
数据导出效果图:
在数据统计页面点击数据导出:生成Excel报表
1. 工作台1.1 需求分析和设计1.1.1 产品原型工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。
工作台展示的数据:
今日数据
订单管理
菜品总览
套餐总览
订单信息
原型图:
名词解释:
营业额:已完成订单的总金额
有效订单:已完成订单的数量
订单完成率:有效订单数 / 总订单数 * 100%
平均客单价:营业额 / 有效订单数
新增用户:新增用户的数量
1.1.2 接口设计通过上述原型图分析,共包含6个接口。
接口设计:
今日数据接口
订单管理接口
菜品总览接口
套餐总览接口
订单搜索(已完成)
各个状态的订单数量统计(已完成)
1). 今日数据的接口设计
2). 订单管理的接口设计
3). 菜品总览的接口设计
4). 套餐总览的接口设计
1.2 代码导入直接导入课程资料中的工作台模块功能 ...
苍穹外卖-day11
苍穹外卖-day11课程内容
Apache ECharts
营业额统计
用户统计
订单统计
销量排名Top10
功能实现:数据统计
数据统计效果图:
1. Apache ECharts1.1 介绍Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。官网地址:https://echarts.apache.org/zh/index.html
常见效果展示:
1). 柱形图
2). 饼形图
3). 折线图
总结:不管是哪种形式的图形,最本质的东西实际上是数据,它其实是对数据的一种可视化展示。
1.2 入门案例Apache Echarts官方提供的快速入门:https://echarts.apache.org/handbook/zh/get-started/
效果展示:
实现步骤:
1). 引入echarts.js 文件(当天资料已提供)
2). 为 ECharts 准备一个设置宽高的 DOM
3). 初始化echarts实例
4). 指定图表的配置项和数据
5). 使用指定的配置项 ...
苍穹外卖-day10
苍穹外卖-day10课程内容
Spring Task
订单状态定时处理
WebSocket
来单提醒
客户催单
功能实现:订单状态定时处理、来单提醒和客户催单
订单状态定时处理:
来单提醒:
客户催单:
1. Spring Task1.1 介绍Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。
定位:定时任务框架
作用:定时自动执行某段Java代码
<img src="https://danchar-oss.oss-cn-chengdu.aliyuncs.com/img/image-20221218204021760.png" alt="image-20221218183054818" style="zoom:50%;" /> 为什么要在Java程序中使用Spring Task?
应用场景:
1). 信用卡每月还款提醒
2). 银行贷款每月还款提醒
3). 火车票售票系统处理未支付订单
4). 入职纪念日为用户发送通知
强调:只要是 ...
苍穹外卖-day09
实战内容完成用户端历史订单模块、商家端订单管理模块相关业务新功能开发和已有功能优化,具体任务列表如下:
1. 新功能开发用户端历史订单模块:
查询历史订单
查询订单详情
取消订单
再来一单
商家端订单管理模块:
订单搜索
各个状态的订单数量统计
查询订单详情
接单
拒单
取消订单
派送订单
完成订单
2. 已有功能优化优化用户下单功能,加入校验逻辑,如果用户的收货地址距离商家门店超出配送范围(配送范围为5公里内),则下单失败。
提示:
1. 基于百度地图开放平台实现(https://lbsyun.baidu.com/)
2. 注册账号--->创建应用获取AK(服务端应用)--->调用接口
相关接口
https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
https://lbsyun.baidu.com/index.php?title=webapi/directionlite-v1
商家门店地址可以配置在配置文件中,例如:
123sky: shop: addr ...
苍穹外卖-day08
苍穹外卖-day08课程内容
导入地址簿功能代码
用户下单
订单支付
功能实现:用户下单、订单支付
用户下单效果图:
订单支付效果图:
1. 导入地址簿功能代码1.1 需求分析和设计1.1.1 产品原型地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。同一个用户可以有多个地址信息,但是只能有一个默认地址。
效果图:
对于地址簿管理,我们需要实现以下几个功能:
查询地址列表
新增地址
修改地址
删除地址
设置默认地址
查询默认地址
1.1.2 接口设计根据上述原型图先粗粒度设计接口,共包含7个接口。
接口设计:
新增地址
查询登录用户所有地址
查询默认地址
根据id修改地址
根据id删除地址
根据id查询地址
设置默认地址
接下来细粒度分析每个接口,明确每个接口的请求方式、请求路径、传入参数和返回值。
1). 新增地址
2). 查询登录用户所有地址
3). 查询默认地址
4). 修改地址
5). 根据id删除地址
6). 根据id查询地址
7). 设置默认地址
1.1 ...
苍穹外卖-day07
苍穹外卖-day07课程内容
缓存菜品
缓存套餐
添加购物车
查看购物车
清空购物车
功能实现:缓存商品、购物车
效果图:
1. 缓存菜品1.1 问题说明用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。
结果:系统响应慢、用户体验差
1.2 实现思路通过Redis来缓存菜品数据,减少数据库查询操作。
缓存逻辑分析:
每个分类下的菜品保存一份缓存数据
数据库中菜品数据有变更时清理缓存数据
1.3 代码开发修改用户端接口 DishController 的 list 方法,加入缓存处理逻辑:
123456789101112131415161718192021222324252627282930313233@Autowired private RedisTemplate redisTemplate;/** * 根据分类id查询菜品 * * @param categoryId * @return */ @GetMapping("/list") @ApiOperat ...
苍穹外卖-day06
苍穹外卖-day06课程内容
HttpClient
微信小程序开发
微信登录
导入商品浏览功能代码
功能实现:微信登录、商品浏览
微信登录效果图:
商品浏览效果图:
1. HttpClient1.1 介绍HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
HttpClient作用:
发送HTTP请求
接收响应数据
<img src="https://danchar-oss.oss-cn-chengdu.aliyuncs.com/img/image-20221203184623026.png" alt="image-20221203185149985" style="zoom:33%;" /> 为什么要在Java程序中发送Http请求?有哪些应用场景呢?
HttpClient应用场景:
当我们在使用扫描支付、查看地图、获取验证码、查看天气等功能时
...
苍穹外卖-day05
苍穹外卖-day05课程内容
Redis入门
Redis数据类型
Redis常用命令
在Java中操作Redis
店铺营业状态设置
功能实现:营业状态设置
效果图:
选择营业中,客户可在小程序端下单:
选择打烊中,客户无法在小程序端下单:
1. Redis入门1.1 Redis简介Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。
官网:https://redis.io中文网:https://www.redis.net.cn/
key-value结构存储:
主要特点:
基于内存存储,读写性能高
适合存储热点数据(热点商品、资讯、新闻)
企业应用广泛
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。
NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库,而是关系型数据库的补充。
关系型数 ...
苍穹外卖-day04
苍穹外卖-day040.项目实战完成套餐管理模块所有业务功能,包括:
新增套餐
套餐分页查询
删除套餐
修改套餐
起售停售套餐
要求:
根据产品原型进行需求分析,分析出业务规则
设计接口
梳理表之间的关系(分类表、菜品表、套餐表、口味表、套餐菜品关系表)
根据接口设计进行代码实现
分别通过swagger接口文档和前后端联调进行功能测试
1. 新增套餐1.1 需求分析和设计产品原型:
业务规则:
套餐名称唯一
套餐必须属于某个分类
套餐必须包含菜品
名称、分类、价格、图片为必填项
添加菜品窗口需要根据分类类型来展示菜品
新增的套餐默认为停售状态
接口设计(共涉及到4个接口):
根据类型查询分类(已完成)
根据分类id查询菜品
图片上传(已完成)
新增套餐
数据库设计:
setmeal表为套餐表,用于存储套餐的信息。具体表结构如下:
字段名
数据类型
说明
备注
id
bigint
主键
自增
name
varchar(32)
套餐名称
唯一
category_id
bigint
分类id
逻辑外键
price
decimal(10,2)
套 ...