package com.stylefeng.guns.modular.system.service.impl; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.UserCouponRecord; import com.stylefeng.guns.modular.system.dao.UserCouponRecordMapper; import com.stylefeng.guns.modular.system.service.ITCompanyService; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; 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 java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 用户优惠券记录 服务实现类 *

* * @author stylefeng * @since 2020-06-17 */ @Service public class UserCouponRecordServiceImpl extends ServiceImpl implements IUserCouponRecordService { @Autowired private ITCompanyService companyService; @Override public List> getList(Page> page, String beginTime, String endTime, String userName, String userPhone, Integer couponActivityId, Integer activityType,Integer state) { return this.baseMapper.getList(page,beginTime,endTime,userName,userPhone,couponActivityId,activityType,state); } @Override public List> getListt(String beginTime, String endTime, String userName, String userPhone, Integer couponActivityId, Integer activityType,Integer state) { return this.baseMapper.getListt(beginTime,endTime,userName,userPhone,couponActivityId,activityType,state); } @Override public List> getRedList(Page> page, String beginTime, String endTime, String userName, String userPhone, Integer couponActivityId,Integer state) { return this.baseMapper.getRedList(page,beginTime,endTime,userName,userPhone,couponActivityId,state); } @Override public List> getRedListt(String beginTime, String endTime, String userName, String userPhone, Integer couponActivityId,Integer state) { return this.baseMapper.getRedListt(beginTime,endTime,userName,userPhone,couponActivityId,state); } @Override public Map getCouponStatic(String beginTime, String endTime, Integer activityId, Integer activityType) { return this.baseMapper.getCouponStatic(beginTime,endTime,activityId,activityType); } @Override public Map getRedStatic(String beginTime, String endTime, Integer activityId) { return this.baseMapper.getRedStatic(beginTime,endTime,activityId); } @Override public Map getRegStatic(String beginTime, String endTime, Integer activityId) { return this.baseMapper.getRegStatic(beginTime,endTime,activityId); } @Override public Map getDiscountStatic(String beginTime, String endTime, Integer activityId) { return this.baseMapper.getDiscountStatic(beginTime,endTime,activityId); } @Override public List> getBlanceList(Page> page, String beginTime, String endTime, Integer activityId) { return this.baseMapper.getBlanceList(page,beginTime,endTime,activityId); } /** * 获取优惠券领取统计 * @param type * @param name * @param time * @param companyId * @param offset * @param limit * @return * @throws Exception */ @Override public Map queryCouponRegister(Integer type, String name, String time, Integer companyId, Integer offset, Integer limit) throws Exception { Map map = new HashMap<>(); String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> list = this.baseMapper.queryCouponRegister(type, name, start, end, companyId, offset, limit); int i = this.baseMapper.queryCouponRegisterCount(type, name, start, end, companyId); map.put("rows", list); map.put("total", i); return map; } /** * 下载优惠券领取数据 * @param type * @param name * @param time * @param companyId * @return * @throws Exception */ @Override public HSSFWorkbook downloadCouponRegister(Integer type, 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 = this.baseMapper.queryCouponRegister(type, name, start, end, companyId, null, null); List> lists = new ArrayList<>(); List list = new ArrayList<>(); list.add("活动名称:"); list.add(name); if(type == 2){ list.add(""); } list.add("起止时间:"); list.add(time); list.add(""); list.add("运营商:"); list.add(null != companyId ? companyService.selectById(companyId).getName() : ""); lists.add(list); list = new ArrayList<>(); list.add("时间"); list.add("领取情况"); if(type == 2){ list.add(""); } list.add(""); list.add(""); list.add("使用情况"); list.add(""); list.add(""); lists.add(list); list = new ArrayList<>(); list.add(""); list.add("注册领取人数"); if(type == 2){ list.add("赠送派发人数"); } list.add("合计"); 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("receivePeople") ? map.get("receivePeople").toString() : ""); if(type == 2){ list2.add(null != map.get("giving") ? map.get("giving").toString() : ""); } list2.add(null != map.get("receive") ? map.get("receive").toString() : ""); list2.add(null != map.get("receiveMoney") ? map.get("receiveMoney").toString() : ""); list2.add(null != map.get("usePeople") ? map.get("usePeople").toString() : ""); list2.add(null != map.get("use") ? map.get("use").toString() : ""); list2.add(null != map.get("useMoney") ? map.get("useMoney").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)); if(type == 2){ hssfSheet.addMergedRegion(new CellRangeAddress(0,0,1,2)); hssfSheet.addMergedRegion(new CellRangeAddress(0,0,4,5)); hssfSheet.addMergedRegion(new CellRangeAddress(1,2,0,0)); hssfSheet.addMergedRegion(new CellRangeAddress(1,1,1,4)); hssfSheet.addMergedRegion(new CellRangeAddress(1,1,5,7)); }else{ hssfSheet.addMergedRegion(new CellRangeAddress(0,0,3,4)); hssfSheet.addMergedRegion(new CellRangeAddress(1,2,0,0)); hssfSheet.addMergedRegion(new CellRangeAddress(1,1,1,3)); hssfSheet.addMergedRegion(new CellRangeAddress(1,1,4,6)); } 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 type * @param name * @param time * @param companyId * @param offset * @param limit * @return * @throws Exception */ @Override public Map queryCouponRegisterInfo(Integer type, 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 = this.baseMapper.queryCouponRegisterInfo(type, name, start, end, companyId, offset, limit); int i = this.baseMapper.queryCouponRegisterInfoCount(type, name, start, end, companyId); Map map = new HashMap<>(); map.put("rows", list); map.put("total", i); return map; } @Override public HSSFWorkbook downloadCouponRegisterInfo(Integer type, String name, String time, Integer companyId) { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> maps = this.baseMapper.queryCouponRegisterInfo(type, name, start, end, companyId, null, null); List> lists = new ArrayList<>(); List list = new ArrayList<>(); list.add("活动名称:"); list.add(name); list.add(""); list.add("起止时间:"); list.add(time); list.add(""); list.add("运营商:"); list.add(null != companyId ? companyService.selectById(companyId).getName() : ""); lists.add(list); list = new ArrayList<>(); list.add("领取时间"); list.add("领取人"); list.add("领取人电话"); list.add("领取金额"); 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("userName") ? map.get("userName").toString() : ""); list2.add(null != map.get("phone") ? map.get("phone").toString() : ""); list2.add(null != map.get("money") ? map.get("money").toString() : ""); list2.add(null != map.get("expirationTime") ? map.get("expirationTime").toString() : ""); list2.add(null != map.get("couponType") ? map.get("couponType").toString() : ""); list2.add(null != map.get("state") ? map.get("state").toString() : ""); list2.add(null != map.get("endTime") ? map.get("endTime").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(0,0,1,2)); hssfSheet.addMergedRegion(new CellRangeAddress(0,0,4,5)); 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; } @Override public HSSFWorkbook downloadCouponRegisterInfo1(String name, String time, Integer companyId) { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } List> maps = this.baseMapper.queryCouponRegisterInfo1(name, start, end, companyId, null, null); List> lists = new ArrayList<>(); List list = new ArrayList<>(); list.add("活动名称:"); list.add(name); list.add(""); list.add("起止时间:"); list.add(time); list.add(""); list.add("运营商:"); list.add(null != companyId ? companyService.selectById(companyId).getName() : ""); list.add(""); list.add(""); list.add(""); list.add(""); list.add(""); list.add(""); list.add(""); list.add(""); lists.add(list); list = new ArrayList<>(); list.add("充值时间"); list.add("充值人"); list.add("充值人电话"); list.add("充值金额"); list.add("通用券领取总数"); list.add("通用券使用总数"); list.add("通用券使用总金额"); list.add("快车券领取总数"); list.add("快车券使用总数"); list.add("快车券使用总金额"); list.add("出租车券领取总数"); list.add("出租车券使用总数"); 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("userName") ? map.get("userName").toString() : ""); list2.add(null != map.get("phone") ? map.get("phone").toString() : ""); list2.add(null != map.get("amount") ? map.get("amount").toString() : ""); list2.add(null != map.get("tyNum") ? map.get("tyNum").toString() : ""); list2.add(null != map.get("tyUseNum") ? map.get("tyUseNum").toString() : ""); list2.add(null != map.get("tyUseMoney") ? map.get("tyUseMoney").toString() : ""); list2.add(null != map.get("zcNum") ? map.get("zcNum").toString() : ""); list2.add(null != map.get("zcUseNum") ? map.get("zcUseNum").toString() : ""); list2.add(null != map.get("zcUseMoney") ? map.get("zcUseMoney").toString() : ""); list2.add(null != map.get("czcNum") ? map.get("czcNum").toString() : ""); list2.add(null != map.get("czcUseNum") ? map.get("czcUseNum").toString() : ""); list2.add(null != map.get("czcUseMoney") ? map.get("czcUseMoney").toString() : ""); list2.add(null != map.get("kcNum") ? map.get("kcNum").toString() : ""); list2.add(null != map.get("kcUseNum") ? map.get("kcUseNum").toString() : ""); list2.add(null != map.get("kcUseMoney") ? map.get("kcUseMoney").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(0,0,1,2)); hssfSheet.addMergedRegion(new CellRangeAddress(0,0,4,5)); hssfSheet.addMergedRegion(new CellRangeAddress(0,0,7,8)); 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; } @Override public Map queryCouponRegisterInfo1(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 = this.baseMapper.queryCouponRegisterInfo1(name, start, end, companyId, offset, limit); int i = this.baseMapper.queryCouponRegisterInfo1Count(name, start, end, companyId); Map map = new HashMap<>(); map.put("rows", list); map.put("total", i); return map; } }