diff --git a/sky-server/src/main/java/com/sky/service/impl/WorkspaceServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/WorkspaceServiceImpl.java index dbfeefe..e9df470 100644 --- a/sky-server/src/main/java/com/sky/service/impl/WorkspaceServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/WorkspaceServiceImpl.java @@ -26,139 +26,172 @@ 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 + * @param begin 开始时间 + * @param end 结束时间 + * @return 营业数据视图对象 */ public BusinessDataVO getBusinessData(LocalDateTime begin, LocalDateTime end) { - /** - * 营业额:当日已完成订单的总金额 - * 有效订单:当日已完成订单的数量 - * 订单完成率:有效订单数 / 总订单数 - * 平均客单价:营业额 / 有效订单数 - * 新增用户:当日新增用户的数量 - */ - + // 创建一个Map来存储查询参数 Map map = new HashMap(); - map.put("begin",begin); - map.put("end",end); + 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; + turnover = turnover == null ? 0.0 : turnover; + // 如果营业额为空,则设置为0.0 - //有效订单数 + // 有效订单数:查询指定时间段内已完成订单的数量 Integer validOrderCount = orderMapper.countByMap(map); Double unitPrice = 0.0; - + // 平均客单价初始化为0.0 Double orderCompletionRate = 0.0; - if(totalOrderCount != 0 && validOrderCount != 0){ - //订单完成率 + // 订单完成率初始化为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 + * @return 订单概览视图对象 */ public OrderOverViewVO getOrderOverView() { + // 创建一个Map来存储查询参数 Map map = new HashMap(); map.put("begin", LocalDateTime.now().with(LocalTime.MIN)); + // 设置开始时间为当天的最小时间点(即00:00) 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 + * @return 菜品概览视图对象 */ public DishOverViewVO getDishOverView() { + // 创建一个Map来存储查询参数 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 + * @return 套餐概览视图对象 */ public SetmealOverViewVO getSetmealOverView() { + // 创建一个Map来存储查询参数 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(); } }