学校门户网站建设报告,网上购物系统需求分析,营销型网站建设优化建站,江苏省城乡和住房建设厅网站首页一、工作台
联系昨天
要实现的功能和昨天差不多#xff0c;都是查询数据。
所以我们就写出查询语句#xff0c;然后直接导入已经写好的代码。
实现效果 查询语句
今日数据
营业额
select count(amount) from orders
where status5 and order_time #{begin} and …一、工作台
联系昨天
要实现的功能和昨天差不多都是查询数据。
所以我们就写出查询语句然后直接导入已经写好的代码。
实现效果 查询语句
今日数据
营业额
select count(amount) from orders
where status5 and order_time #{begin} and order_time #{end}
有效订单
select count(*) from orders
where status5 and order_time #{begin} and order_time #{end}
订单完成率
所有订单
select count(*) from orders
where order_time #{begin} and order_time #{end}
订单完成率 有效订单 / 所有订单 平均客单价
平均客单价 营业额 / 有效订单
新增用户数
select count(*) from user
where create_time #{begin} and create_time #{end}
订单数据
待接单
select count(*) from orders
where status2 and order_time #{begin} and order_time #{end}
待派送
select count(*) from orders
where status3 and order_time #{begin} and order_time #{end}
已完成
select count(*) from orders
where status5 and order_time #{begin} and order_time #{end}
已取消
select count(*) from orders
where status6 and order_time #{begin} and order_time #{end}
全部订单
select count(*) from orders
where order_time #{begin} and order_time #{end} 菜品总览
起售菜品
select count(*) from dish
where status1
停售菜品
select count(*) from dish
where status1
套餐总览
起售套餐
select count(*) from setmeal
where status1
停售套餐
select count(*) from setmeal
where status0
导入代码
下载好黑马该项目的资料 然后自己导入。 二、Apache POI
介绍
操作Office文件的包。本文该项目中主要用来读写excel表。
应用场景主要在交易明细、销量统计、批量数据导入批量添加
写入Excel
步骤 先创建Excel文档/工作簿 在工作簿中创建表格 在表格中创建行 在行中创建单元格 往单元格中设置数据 将整个Excel文档写到硬盘上
代码
直接在测试类中写例子的测试的。
Test
public void testWrite() throws IOException {// 1. 创建整个工作簿XSSFWorkbook workbook new XSSFWorkbook();// 2. 在工作簿中创建表格XSSFSheet sheet1 workbook.createSheet(表格1);// 3. 在表格中创建行XSSFRow row_1 sheet1.createRow(1);// 4. 在行中创建单元格XSSFCell cell_1_0 row_1.createCell(0);// 5. 网单元格中设置数据cell_1_0.setCellValue(哈哈我是cell_1_0);// 6. 将整个Excel文档写到硬盘上FileOutputStream fos new FileOutputStream(D:/a.xlsx);workbook.write(fos);// 7. 释放资源fos.close();workbook.close();
}
读出Excel
步骤 先创建工作簿关联本地Excel文档 从工作簿中获取表格 从表格中获取行 从行中获取单元格 从单元格中获取数据
代码
Test
public void testRead() throws IOException {// 1. 先创建工作簿关联本地Excel文档XSSFWorkbook workbook new XSSFWorkbook(D:/a.xlsx);// 2. 从工作簿中获取表格XSSFSheet sheet workbook.getSheetAt(0);// 3. 从表格中获取行XSSFRow row4 sheet.getRow(3);// 4. 从行中获取单元格 以及 5. 从单元格中获取数据String name row4.getCell(0).getStringCellValue();String age row4.getCell(1).getStringCellValue();System.out.println(name);System.out.println(age);XSSFRow row5 sheet.getRow(4);System.out.println(row5.getCell(0).getStringCellValue());System.out.println(row5.getCell(1).getNumericCellValue());workbook.close();
}
三、导出运营数据
需求分析
导出近30天的运营数据。
步骤 读取Excel模版到内存中。 准备运营数据 将数据写到Excel模板中。 将Excel文档响应回浏览器(文件下载)
代码
Controller
GetMapping(/export)
ApiOperation(导出运营数据报表)
public String export(HttpServletResponse response) throws IOException {reportService.exportBusinessData(response);return OK;
}
Service
Override
public void exportBusinessData(HttpServletResponse response) throws IOException{InputStream is ClassLoader.getSystemResourceAsStream(运营数据报表模板.xlsx);XSSFWorkbook workbook new XSSFWorkbook(is);LocalDate begin LocalDate.now().plusDays(-30);LocalDate end LocalDate.now().plusDays(-1);BusinessDataVO businessDataVO workspaceService.getBusinessData(LocalDateTime.of(begin, LocalTime.MIN),LocalDateTime.of(end, LocalTime.MAX));XSSFSheet sheet workbook.getSheetAt(0);sheet.getRow(1).getCell(1).setCellValue(时间 begin 至 end);XSSFRow row4 sheet.getRow(3);row4.getCell(2).setCellValue(businessDataVO.getTurnover());row4.getCell(4).setCellValue(businessDataVO.getOrderCompletionRate());row4.getCell(6).setCellValue(businessDataVO.getNewUsers());XSSFRow row5 sheet.getRow(4);row5.getCell(2).setCellValue(businessDataVO.getValidOrderCount());row5.getCell(4).setCellValue(businessDataVO.getUnitPrice());int i 0;while (begin.compareTo(end) 0) {BusinessDataVO businessData workspaceService.getBusinessData(LocalDateTime.of(begin, LocalTime.MIN),LocalDateTime.of(begin, LocalTime.MAX));XSSFRow row sheet.getRow(7 i);row.getCell(1).setCellValue(begin.toString());row.getCell(2).setCellValue(businessData.getTurnover());row.getCell(3).setCellValue(businessData.getValidOrderCount());row.getCell(4).setCellValue(businessData.getOrderCompletionRate());row.getCell(5).setCellValue(businessData.getUnitPrice());row.getCell(6).setCellValue(businessData.getNewUsers());begin begin.plusDays(1);}workbook.write(response.getOutputStream());}
注意的点
ClassLoader能加载的文件位置
ClassLoader能加载的文件位置在resources下。
放入resources后需要的操作
需要用maven构建管理的complie编译一下才能保证类加载器ClassLoader加载到。
创建的POI与Office对应的下标
下标中getRow(0)与getCell(1)对应的分别是第一列第2行的数据。