毕设项目<<基于微信小程序的餐馆外卖系统的设计>> 后端(十一)

毕设项目<<基于微信小程序的餐馆外卖系统的设计后端>>(开发记录(十一) 工作台模块)


视频传送带

工作台模块

工作台需求分析和设计

  • 工作台是系统运营的数据看板,并提供快捷入口操作,可以提高商家的工作效率
  • 工作台展示数据
    • 今日数据
    • 订单管理
    • 菜品总览
    • 套餐总览
    • 订单信息
产品原型

请添加图片描述

业务规则
  • 营业额:已完成订单的总金额
  • 有效订单:已完成订单的数量
  • 订单完成率:有效订单数/总订单数*100%
  • 平均客单价:营业额/有效订单数
  • 新增用户:新增用户的数量
接口设计
  • 今日数据接口
  • 订单管理接口
  • 菜品总览接口
  • 套餐总览接口
  • 订单搜索接口(订单管理已实现)
  • 各个状态的订单统计(订单管理已实现)

请添加图片描述
请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

代码开发
@Service  
@Slf4j  
public class WorkspaceServiceImpl implements WorkspaceService {  
  
@Autowired  
private OrderMapper orderMapper;  
@Autowired  
private UserMapper userMapper;  
@Autowired  
private DishMapper dishMapper;  
@Autowired  
private SetmealMapper setmealMapper;  
  
/**  
* 根据时间段统计营业数据  
* @param begin  
* @param end  
* @return  
*/  
public BusinessDataVO getBusinessData(LocalDateTime begin, LocalDateTime end) {  
/**  
* 营业额:当日已完成订单的总金额  
* 有效订单:当日已完成订单的数量  
* 订单完成率:有效订单数 / 总订单数  
* 平均客单价:营业额 / 有效订单数  
* 新增用户:当日新增用户的数量  
*/  
  
Map map = new HashMap();  
map.put("begin",begin);  
map.put("end",end);  
  
//查询总订单数  
Integer totalOrderCount = orderMapper.countByMap(map);  
  
map.put("status", Orders.COMPLETED);  
//营业额  
Double turnover = orderMapper.sumByMap(map);  
turnover = turnover == null? 0.0 : turnover;  
  
//有效订单数  
Integer validOrderCount = orderMapper.countByMap(map);  
  
Double unitPrice = 0.0;  
  
Double orderCompletionRate = 0.0;  
if(totalOrderCount != 0 && validOrderCount != 0){  
//订单完成率  
orderCompletionRate = validOrderCount.doubleValue() / totalOrderCount;  
//平均客单价  
unitPrice = turnover / validOrderCount;  
}  
  
//新增用户数  
Integer newUsers = userMapper.countByMap(map);  
  
return BusinessDataVO.builder()  
.turnover(turnover)  
.validOrderCount(validOrderCount)  
.orderCompletionRate(orderCompletionRate)  
.unitPrice(unitPrice)  
.newUsers(newUsers)  
.build();  
}  
  
  
/**  
* 查询订单管理数据  
*  
* @return  
*/  
public OrderOverViewVO getOrderOverView() {  
Map map = new HashMap();  
map.put("begin", LocalDateTime.now().with(LocalTime.MIN));  
map.put("status", Orders.TO_BE_CONFIRMED);  
  
//待接单  
Integer waitingOrders = orderMapper.countByMap(map);  
  
//待派送  
map.put("status", Orders.CONFIRMED);  
Integer deliveredOrders = orderMapper.countByMap(map);  
  
//已完成  
map.put("status", Orders.COMPLETED);  
Integer completedOrders = orderMapper.countByMap(map);  
  
//已取消  
map.put("status", Orders.CANCELLED);  
Integer cancelledOrders = orderMapper.countByMap(map);  
  
//全部订单  
map.put("status", null);  
Integer allOrders = orderMapper.countByMap(map);  
  
return OrderOverViewVO.builder()  
.waitingOrders(waitingOrders)  
.deliveredOrders(deliveredOrders)  
.completedOrders(completedOrders)  
.cancelledOrders(cancelledOrders)  
.allOrders(allOrders)  
.build();  
}  
  
/**  
* 查询菜品总览  
*  
* @return  
*/  
public DishOverViewVO getDishOverView() {  
Map map = new HashMap();  
map.put("status", StatusConstant.ENABLE);  
Integer sold = dishMapper.countByMap(map);  
  
map.put("status", StatusConstant.DISABLE);  
Integer discontinued = dishMapper.countByMap(map);  
  
return DishOverViewVO.builder()  
.sold(sold)  
.discontinued(discontinued)  
.build();  
}  
  
/**  
* 查询套餐总览  
*  
* @return  
*/  
public SetmealOverViewVO getSetmealOverView() {  
Map map = new HashMap();  
map.put("status", StatusConstant.ENABLE);  
Integer sold = setmealMapper.countByMap(map);  
  
map.put("status", StatusConstant.DISABLE);  
Integer discontinued = setmealMapper.countByMap(map);  
  
return SetmealOverViewVO.builder()  
.sold(sold)  
.discontinued(discontinued)  
.build();  
}  
}
代码测试
前后端联调

请添加图片描述
请添加图片描述

接口文档测试

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

Approach POI技术

Apache POI 是一种允许程序员使用 Java 程序创建、修改和显示 MS Office 文件。 它是由 Apache Software Foundation 开发和分发的开源库,用于使用 Java 程序设计或修改 Microsoft Office 文件。 它包含将用户输入数据或文件解码为 MS Office 文档的类和方法

应用场景
  • 银行网银系统导入导出明细
  • 规则业务系统导出到Excel报表
  • 批量导入业务数据
使用方法
Apache POI的maven坐标
<dependency>  
<groupId>org.apache.poi</groupId>  
<artifactId>poi</artifactId>  
<version>${poi}</version>  
</dependency>  
<dependency>  
<groupId>org.apache.poi</groupId>  
<artifactId>poi-ooxml</artifactId>  
<version>${poi}</version>  
</dependency>

运营数据报表的导出

开发步骤
  • 设计Excel模板文件
  • 查询近30天的运营数据
  • 将查询到的运营数据写入模板文件
  • 通过输入流将Excel文件下载到客户端浏览器

请添加图片描述

《基于微信小程序的餐馆外卖系统的设计》(全)含部分前端开发过程 pdf版

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值