| package com.matrix.system.hive.statistics; | 
|   | 
| import com.matrix.core.constance.MatrixConstance; | 
| import com.matrix.core.pojo.AjaxResult; | 
| import com.matrix.core.tools.DateUtil; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.core.tools.excl.ExcelSheetPO; | 
| import com.matrix.core.tools.excl.ExcelVersion; | 
| import com.matrix.system.common.bean.SysUsers; | 
| import com.matrix.system.common.tools.DataAuthUtil; | 
| import com.matrix.system.common.tools.ResponseHeadUtil; | 
| import com.matrix.system.hive.dao.SysOrderItemDao; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Controller; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| import org.springframework.web.bind.annotation.RequestParam; | 
| import org.springframework.web.bind.annotation.ResponseBody; | 
|   | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.io.OutputStream; | 
| import java.util.ArrayList; | 
| import java.util.Arrays; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * @author | 
|  * @description 经营数据 | 
|  * @date 2020-02-08 10:18 | 
|  */ | 
| @Controller | 
| @RequestMapping(value = "/admin/orderStatistics") | 
| public class OrderStatisticsAction { | 
|   | 
|     @Autowired | 
|     private SysOrderItemDao orderItemDao; | 
|   | 
|     /** | 
|      * 产品销售明细 | 
|      */ | 
|     @RequestMapping(value = "/showList") | 
|     public @ResponseBody | 
|     AjaxResult showList(@RequestParam Map<String, Object> param) { | 
|         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         if(!DataAuthUtil.hasAllShopAuth()){ | 
|             param.put("shopId", sysUsers.getShopId()); | 
|         } | 
|         return AjaxResult.buildSuccessInstance(orderItemDao.selectItemDetail(param), | 
|                 orderItemDao.selectItemDetailTotal(param)); | 
|     } | 
|     @RequestMapping(value = "/exportShowList") | 
|     public void exportShowList(@RequestParam Map<String, Object> param, HttpServletResponse response) throws Exception { | 
|         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|         String title = "产品销售明细统计"; | 
|         String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价", "健康顾问", "支付方式", "状态"}; | 
|         String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "su_name", "pay_method", "status"}; | 
|   | 
|         if(!DataAuthUtil.hasAllShopAuth()){ | 
|             param.put("shopId", sysUsers.getShopId()); | 
|         } | 
|         List<Map<String, Object>> dataList = orderItemDao.selectItemDetail(param); | 
|         exportExcel(title, header,column, dataList, response); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 产品销售明细统计 | 
|      */ | 
|     @RequestMapping(value = "/summaryItemDetail") | 
|     public @ResponseBody | 
|     AjaxResult summaryItemDetail(@RequestParam Map<String, Object> param) { | 
|         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         if(!DataAuthUtil.hasAllShopAuth()){ | 
|             param.put("shopId", sysUsers.getShopId()); | 
|         } | 
|         return AjaxResult.buildSuccessInstance(orderItemDao.summaryItemDetail(param), | 
|                 orderItemDao.summaryItemDetailTotal(param)); | 
|     } | 
|   | 
|     @RequestMapping(value = "/exportSummaryItemDetail") | 
|     public void exportSummaryItemDetail(@RequestParam Map<String, Object> param, HttpServletResponse response) throws Exception { | 
|         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|         String title = "产品销售明细统计"; | 
|         String[] header = {"门店", "商品名称", "分类", "销售数量", "销售总额"}; | 
|         String[] column = {"SHOP_NAME", "goodsName", "cateName", "COUNT", "ZK_PRICE"}; | 
|   | 
|         if(!DataAuthUtil.hasAllShopAuth()){ | 
|             param.put("shopId", sysUsers.getShopId()); | 
|         } | 
|         List<Map<String, Object>> dataList = orderItemDao.summaryItemDetail(param); | 
|         exportExcel(title, header,column, dataList, response); | 
|     } | 
|   | 
|   | 
|     public static void exportExcel(String title, String[] header,String[] column, List<Map<String, Object>> dataList, HttpServletResponse response) throws Exception { | 
|         //这里是从数据库里查数据并组装成我们想要的数据结构的过程 | 
|         List<ExcelSheetPO> res = new ArrayList<>(); | 
|         ExcelSheetPO orderSheet = new ExcelSheetPO(); | 
|         orderSheet.setSheetName(title); | 
|         orderSheet.setTitle(title); | 
|         orderSheet.setHeaders(header); | 
|         List<List<Object>> list = new ArrayList<>(); | 
|         if (dataList.size() > 0) { | 
|             for (Map<String, Object> item : dataList) { | 
|                 List<Object> temp = new ArrayList<>(); | 
|                 Arrays.stream(column).forEach(key-> temp.add(item.get(key))); | 
|                 list.add(temp); | 
|             } | 
|         } | 
|         orderSheet.setDataList(list); | 
|         res.add(orderSheet); | 
|         response = ResponseHeadUtil.setExcelHead(response); | 
|         response.setHeader("Content-Disposition", | 
|                 "attachment;filename=" + java.net.URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); | 
|         OutputStream os = response.getOutputStream(); | 
|         com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); | 
|     } | 
|   | 
|   | 
| } |