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;
|
|
/**
|
* <p>
|
* 用户优惠券记录 服务实现类
|
* </p>
|
*
|
* @author stylefeng
|
* @since 2020-06-17
|
*/
|
@Service
|
public class UserCouponRecordServiceImpl extends ServiceImpl<UserCouponRecordMapper, UserCouponRecord> implements IUserCouponRecordService {
|
|
@Autowired
|
private ITCompanyService companyService;
|
|
|
|
|
|
@Override
|
public List<Map<String, Object>> getList(Page<Map<String, Object>> 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<Map<String, Object>> getRedList(Page<Map<String, Object>> 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 Map<String, Object> getCouponStatic(String beginTime, String endTime, Integer activityId, Integer activityType) {
|
return this.baseMapper.getCouponStatic(beginTime,endTime,activityId,activityType);
|
}
|
|
@Override
|
public Map<String, Object> getRedStatic(String beginTime, String endTime, Integer activityId) {
|
return this.baseMapper.getRedStatic(beginTime,endTime,activityId);
|
}
|
|
@Override
|
public Map<String, Object> getRegStatic(String beginTime, String endTime, Integer activityId) {
|
return this.baseMapper.getRegStatic(beginTime,endTime,activityId);
|
}
|
|
@Override
|
public Map<String, Object> getDiscountStatic(String beginTime, String endTime, Integer activityId) {
|
return this.baseMapper.getDiscountStatic(beginTime,endTime,activityId);
|
}
|
@Override
|
public Map<String, Object> getDiscountStatic1(String beginTime, String endTime, Integer activityId) {
|
return this.baseMapper.getDiscountStatic1(beginTime,endTime,activityId);
|
}
|
|
@Override
|
public List<Map<String, Object>> getBlanceList(Page<Map<String, Object>> 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<String, Object> queryCouponRegister(Integer type, String name, String time, Integer companyId, Integer offset, Integer limit) throws Exception {
|
Map<String, Object> map = new HashMap<>();
|
String start = null;
|
String end = null;
|
if(ToolUtil.isNotEmpty(time)){
|
start = time.split(" - ")[0];
|
end = time.split(" - ")[1];
|
}
|
List<Map<String, Object>> 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<Map<String, Object>> maps = this.baseMapper.queryCouponRegister(type, name, start, end, companyId, null, null);
|
List<List<String>> lists = new ArrayList<>();
|
List<String> 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<List<List<String>>> lists1 = new ArrayList<>();
|
List<List<String>> lists2 = new ArrayList<>();
|
for(Map<String, Object> map : maps){
|
List<String> 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<String> 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<String, Object> 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<Map<String, Object>> list = this.baseMapper.queryCouponRegisterInfo(type, name, start, end, companyId, offset, limit);
|
int i = this.baseMapper.queryCouponRegisterInfoCount(type, name, start, end, companyId);
|
Map<String, Object> 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<Map<String, Object>> maps = this.baseMapper.queryCouponRegisterInfo(type, name, start, end, companyId, null, null);
|
|
List<List<String>> lists = new ArrayList<>();
|
List<String> 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<List<List<String>>> lists1 = new ArrayList<>();
|
List<List<String>> lists2 = new ArrayList<>();
|
for(Map<String, Object> map : maps){
|
List<String> 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<String> 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<Map<String, Object>> maps = this.baseMapper.queryCouponRegisterInfo1(name, start, end, companyId, null, null);
|
|
List<List<String>> lists = new ArrayList<>();
|
List<String> 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<List<List<String>>> lists1 = new ArrayList<>();
|
List<List<String>> lists2 = new ArrayList<>();
|
for(Map<String, Object> map : maps){
|
List<String> 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<String> 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<String, Object> 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<Map<String, Object>> list = this.baseMapper.queryCouponRegisterInfo1(name, start, end, companyId, offset, limit);
|
int i = this.baseMapper.queryCouponRegisterInfo1Count(name, start, end, companyId);
|
Map<String, Object> map = new HashMap<>();
|
map.put("rows", list);
|
map.put("total", i);
|
return map;
|
}
|
}
|