package com.stylefeng.guns.modular.system.service.impl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.UserActivityDiscount1; import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.service.ITCompanyService; import com.stylefeng.guns.modular.system.service.IUserActivityDiscount1Service; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.apache.poi.hssf.usermodel.*; //import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.util.CellRangeAddress; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 用户活动-折扣1 服务实现类 *

* * @author stylefeng * @since 2020-06-19 */ @Service public class UserActivityDiscount1ServiceImpl extends ServiceImpl implements IUserActivityDiscount1Service { @Resource private UserActivityDiscount1Mapper userActivityDiscount1Mapper; @Autowired private ITCompanyService companyService; /** * 获取折扣统计 * @param name * @param time * @param companyId * @param offset * @param limit * @return * @throws Exception */ @Override public Map queryDiscount1(String name, String time, Integer companyId, Integer offset, Integer limit) throws Exception { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> list = userActivityDiscount1Mapper.queryDiscount1(name, start, end, companyId, offset, limit); int i = userActivityDiscount1Mapper.queryDiscount1Count(name, start, end, companyId); Map map = new HashMap<>(); map.put("rows", list); map.put("total", i); return map; } /** * 下载折扣优惠 * @param name * @param time * @param companyId * @return * @throws Exception */ @Override public HSSFWorkbook downloadDiscount1(String name, String time, Integer companyId) throws Exception { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> maps = userActivityDiscount1Mapper.queryDiscount1(name, start, end, companyId, null, null); List> lists = new ArrayList<>(); List list = new ArrayList<>(); list.add("活动名称:" + name); list.add("起止时间:" + time); list.add("运营商:" + (null != companyId ? companyService.selectById(companyId).getName() : "")); lists.add(list); list = new ArrayList<>(); list.add("时间"); list.add("使用情况"); list.add(""); lists.add(list); list = new ArrayList<>(); list.add(""); list.add("折扣参与人数"); list.add("折扣金额"); lists.add(list); List>> lists1 = new ArrayList<>(); List> lists2 = new ArrayList<>(); for(Map map : maps){ List list2 = new ArrayList<>(); list2.add(null != map.get("time") ? map.get("time").toString() : ""); list2.add(null != map.get("userNum") ? map.get("userNum").toString() : ""); list2.add(null != map.get("discountMoney") ? map.get("discountMoney").toString() : ""); lists2.add(list2); } lists1.add(lists2); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); HSSFSheet hssfSheet = hssfWorkbook.createSheet(); hssfSheet.setColumnWidth(0, 6 * 256); hssfSheet.setDefaultRowHeightInPoints(20f); for(int i = 0; i < lists.size(); i++){ HSSFRow hssfRow = hssfSheet.createRow(i);//设置第一行数据(标题) HSSFCellStyle style = hssfWorkbook.createCellStyle(); HSSFFont font = hssfWorkbook.createFont(); // font.setBold(true); style.setFont(font); // style.setAlignment(HorizontalAlignment.CENTER); for (int l = 0; l < lists.get(i).size(); l++) { HSSFCell hssfCell = hssfRow.createCell(l); // hssfCell.setCellType(CellType.STRING);//设置表格类型 hssfCell.setCellValue(lists.get(i).get(l)); hssfCell.setCellStyle(style); if(l > 0) { hssfSheet.setColumnWidth(l , 20 * 256); } } } //这个就是合并单元格 //参数说明:1:开始行 2:结束行 3:开始列 4:结束列 //比如我要合并 第二行到第四行的 第六列到第八列 sheet.addMergedRegion(new CellRangeAddress(1,3,5,7)); hssfSheet.addMergedRegion(new CellRangeAddress(1,2,0,0)); hssfSheet.addMergedRegion(new CellRangeAddress(1,1,1,2)); for(int i = 0; i < lists1.size(); i++){ //将数据添加到表格中 List data = null; for (int l = 0; l < lists1.get(i).size(); l++) { HSSFRow row = hssfSheet.createRow(l + 3); data = lists1.get(i).get(l); for (int j = 0; j < data.size(); j++) { HSSFCell hssfCell = row.createCell(j); // hssfCell.setCellType(CellType.STRING);//设置表格类型 hssfCell.setCellValue(data.get(j)); } } } return hssfWorkbook; } /** * 获取折扣优惠详情 * @param name * @param time * @param companyId * @param offset * @param limit * @return * @throws Exception */ @Override public Map queryDiscountInfo(String name, String time, Integer companyId, Integer offset, Integer limit) throws Exception { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> list = userActivityDiscount1Mapper.queryDiscountInfo(name, start, end, companyId, offset, limit); int i = userActivityDiscount1Mapper.queryDiscountInfoCount(name, start, end, companyId); Map map = new HashMap<>(); map.put("rows", list); map.put("total", i); return map; } /** * 下载折扣优惠详情 * @param name * @param time * @param companyId * @return * @throws Exception */ @Override public HSSFWorkbook downloadDiscountInfo(String name, String time, Integer companyId) throws Exception { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> maps = userActivityDiscount1Mapper.queryDiscountInfo(name, start, end, companyId, null, null); List> lists = new ArrayList<>(); List list = new ArrayList<>(); list.add("活动名称:" + name); list.add("起止时间:" + time); list.add("运营商:"); list.add(null != companyId ? companyService.selectById(companyId).getName() : ""); lists.add(list); list = new ArrayList<>(); list.add("打折时间"); list.add("打折使用人"); list.add("打折使用人电话"); list.add("打折金额"); lists.add(list); List>> lists1 = new ArrayList<>(); List> lists2 = new ArrayList<>(); for(Map map : maps){ List list2 = new ArrayList<>(); list2.add(null != map.get("time") ? map.get("time").toString() : ""); list2.add(null != map.get("name") ? map.get("name").toString() : ""); list2.add(null != map.get("phone") ? map.get("phone").toString() : ""); list2.add(null != map.get("discountMoney") ? map.get("discountMoney").toString() : ""); lists2.add(list2); } lists1.add(lists2); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); HSSFSheet hssfSheet = hssfWorkbook.createSheet(); hssfSheet.setColumnWidth(0, 6 * 256); hssfSheet.setDefaultRowHeightInPoints(20f); for(int i = 0; i < lists.size(); i++){ HSSFRow hssfRow = hssfSheet.createRow(i);//设置第一行数据(标题) HSSFCellStyle style = hssfWorkbook.createCellStyle(); HSSFFont font = hssfWorkbook.createFont(); // font.setBold(true); style.setFont(font); // style.setAlignment(HorizontalAlignment.CENTER); for (int l = 0; l < lists.get(i).size(); l++) { HSSFCell hssfCell = hssfRow.createCell(l); // hssfCell.setCellType(CellType.STRING);//设置表格类型 hssfCell.setCellValue(lists.get(i).get(l)); hssfCell.setCellStyle(style); if(l > 0) { hssfSheet.setColumnWidth(l , 20 * 256); } } } for(int i = 0; i < lists1.size(); i++){ //将数据添加到表格中 List data = null; for (int l = 0; l < lists1.get(i).size(); l++) { HSSFRow row = hssfSheet.createRow(l + 2); data = lists1.get(i).get(l); for (int j = 0; j < data.size(); j++) { HSSFCell hssfCell = row.createCell(j); // hssfCell.setCellType(CellType.STRING);//设置表格类型 hssfCell.setCellValue(data.get(j)); } } } return hssfWorkbook; } }