苍穹外卖-day12(工作台、数据导出)

  • 工作台
  • Apache POI
  • 导出运营数据Excel报表

功能实现:工作台数据导出

工作台效果图:

在这里插入图片描述
数据导出效果图:
在这里插入图片描述
在数据统计页面点击数据导出:生成Excel报表

在这里插入图片描述

1. 工作台

1.1 需求分析和设计

1.1.1 产品原型

工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。

工作台展示的数据:

  • 今日数据
  • 订单管理
  • 菜品总览
  • 套餐总览
  • 订单信息

原型图:

在这里插入图片描述
名词解释:

  • 营业额:已完成订单的总金额
  • 有效订单:已完成订单的数量
  • 订单完成率:有效订单数 / 总订单数 * 100%
  • 平均客单价:营业额 / 有效订单数
  • 新增用户:新增用户的数量

1.1.2 接口设计

通过上述原型图分析,共包含6个接口。

接口设计:

  • 今日数据接口
  • 订单管理接口
  • 菜品总览接口
  • 套餐总览接口
  • 订单搜索(已完成)
  • 各个状态的订单数量统计(已完成)

1). 今日数据的接口设计

在这里插入图片描述在这里插入图片描述
2). 订单管理的接口设计

在这里插入图片描述
3). 菜品总览的接口设计

在这里插入图片描述
4). 套餐总览的接口设计

在这里插入图片描述

1.2 代码导入

直接导入课程资料中的工作台模块功能代码即可:

在这里插入图片描述

1.2.1 Controller层

添加WorkSpaceController.java

package com.sky.controller.admin;

import com.sky.result.Result;
import com.sky.service.WorkspaceService;
import com.sky.vo.BusinessDataVO;
import com.sky.vo.DishOverViewVO;
import com.sky.vo.OrderOverViewVO;
import com.sky.vo.SetmealOverViewVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 工作台
 */
@RestController
@RequestMapping("/admin/workspace")
@Slf4j
@Api(tags = "工作台相关接口")
public class WorkSpaceController {
   

    @Autowired
    private WorkspaceService workspaceService;

    /**
     * 工作台今日数据查询
     * @return
     */
    @GetMapping("/businessData")
    @ApiOperation("工作台今日数据查询")
    public Result<BusinessDataVO> businessData(){
   
        //获得当天的开始时间
        LocalDateTime begin = LocalDateTime.now().with(LocalTime.MIN);
        //获得当天的结束时间
        LocalDateTime end = LocalDateTime.now().with(LocalTime.MAX);

        BusinessDataVO businessDataVO = workspaceService.getBusinessData(begin, end);
        return Result.success(businessDataVO);
    }

    /**
     * 查询订单管理数据
     * @return
     */
    @GetMapping("/overviewOrders")
    @ApiOperation("查询订单管理数据")
    public Result<OrderOverViewVO> orderOverView(){
   
        return Result.success(workspaceService.getOrderOverView());
    }

    /**
     * 查询菜品总览
     * @return
     */
    @GetMapping("/overviewDishes")
    @ApiOperation("查询菜品总览")
    public Result<DishOverViewVO> dishOverView(){
   
        return Result.success(workspaceService.getDishOverView());
    }

    /**
     * 查询套餐总览
     * @return
     */
    @GetMapping("/overviewSetmeals")
    @ApiOperation("查询套餐总览")
    public Result<SetmealOverViewVO> setmealOverView(){
   
        return Result.success(workspaceService.getSetmealOverView());
    }
}

1.2.2 Service层接口

添加WorkspaceService.java

package com.sky.service;

import com.sky.vo.BusinessDataVO;
import com.sky.vo.DishOverViewVO;
import com.sky.vo.OrderOverViewVO;
import com.sky.vo.SetmealOverViewVO;
import java.time.LocalDateTime;

public interface WorkspaceService {
   

    /**
     * 根据时间段统计营业数据
     * @param begin
     * @param end
     * @return
     */
    BusinessDataVO getBusinessData(LocalDateTime begin, LocalDateTime end);

    /**
     * 查询订单管理数据
     * @return
     */
    OrderOverViewVO getOrderOverView();
### 关于“苍穹外卖”项目的第12天学习内容 目前提供的引用材料并未直接提及名为“苍穹外卖”的具体项目或其第12天的学习内容。然而,可以通过分析已有的引用资料以及推测该项目可能涉及的技术领域来进行解答。 #### 可能涉及的内容和技术栈 如果假设“苍穹外卖”是一个基于云计算和数据库技术的外卖平台开发项目,则可以从以下几个方面推断第12天的学习内容: 1. **云服务与数据库管理** 阿里云大学提供了丰富的免费课程资源[^1],涵盖了从传统关系型数据库(SQL)到现代非关系型数据库(NoSQL)的知识体系。因此,“苍穹外卖”项目在第12天可能会深入讲解如何利用阿里云的服务构建高效的分布式数据库架构,或者优化已有系统的性能。 2. **强化学习的应用场景** 如果“苍穹外卖”涉及到算法推荐系统的设计,那么Q-Learning作为一种经典的强化学习方法[^4],可能是用来解决订单分配、路径规划等问题的核心工具之一。通过不断更新Q值表,模型能够逐步学会更优的动作策略,从而提升用户体验和服务效率。 3. **时间序列数据分析** 对于外卖业务而言,预测高峰期需求量是一项重要任务。GitHub上的《Time-Series-Analysis-Tutorial》教程[^3]或许会被引入作为辅助教材,帮助学员掌握时间序列建模技巧并应用于实际问题中。 以下是部分代码示例展示了一个简单的Q-Learning实现过程: ```python import numpy as np def q_learning(env, num_episodes=500, alpha=0.8, gamma=0.95): q_table = np.zeros([env.observation_space.n, env.action_space.n]) for i in range(num_episodes): state = env.reset() done = False while not done: action = np.argmax(q_table[state,:] + np.random.randn(1, env.action_space.n)*(1./(i+1))) next_state, reward, done, _ = env.step(action) old_value = q_table[state, action] next_max = np.max(q_table[next_state]) new_value = (1 - alpha) * old_value + alpha * (reward + gamma * next_max) q_table[state, action] = new_value state = next_state return q_table ``` 尽管上述猜测具有一定合理性,但由于缺乏关于“苍穹外卖”确切描述的信息源支持,仍需进一步确认官方文档或其他权威渠道发布的确切日程安排才能得出更加精准结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值