diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java index bf42d0be8..ac073ecbd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java @@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * Created by syf on 2018/8/29. */ @@ -86,5 +89,12 @@ public class MarkingDataReportController extends BaseController { return new ResultData(markingDataReportService.getTouchUsersReportList(getTenantId(), markingCouponDataReportDto, pageNum, pageSize)); } + @GetMapping("exportTouchUsersData") + @SystemControllerLog(description = "券数据-触达用户数数据导出") + public void exportTouchUsersData(@ModelAttribute MarkingCouponDataReportDto markingCouponDataReportDto, HttpServletRequest request, HttpServletResponse response) { + markingCouponDataReportDto.setTenantId(getTenantId()); + markingDataReportService.exportTouchUsersData(request, response, markingCouponDataReportDto); + } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/TouchUsersReportVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/TouchUsersReportVo.java index 78559e7f7..1934c32ff 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/TouchUsersReportVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/TouchUsersReportVo.java @@ -1,5 +1,6 @@ package com.iformall.domain.vo; +import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; /** @@ -7,14 +8,20 @@ import lombok.Data; */ @Data public class TouchUsersReportVo { - private String xTime; - private int uv; - private int pv; - - private int userCount; // 领取人数 - private int couponCount; // 领取券数 - private int verifyUserCount; // 核销人数 - private int verifyCount; //核销量 + @Excel(name = "日期", width = 20, orderNum = "1") + private String XTime; + @Excel(name = "浏览量(PV)", width = 20, orderNum = "2") + private int pv; + @Excel(name = "独立访客(UV)", width = 20, orderNum = "3") + private int uv; + @Excel(name = "领取券数", width = 20, orderNum = "4") + private int couponCount; + @Excel(name = "领取人数", width = 20, orderNum = "5") + private int userCount; + @Excel(name = "核销数", width = 20, orderNum = "6") + private int verifyCount; + @Excel(name = "核销用户数", width = 20, orderNum = "7") + private int verifyUserCount; } diff --git a/mallinkService/src/main/java/com/iformall/service/ExcelService.java b/mallinkService/src/main/java/com/iformall/service/ExcelService.java index 6a293cb80..b5ab9e51d 100644 --- a/mallinkService/src/main/java/com/iformall/service/ExcelService.java +++ b/mallinkService/src/main/java/com/iformall/service/ExcelService.java @@ -28,7 +28,7 @@ public class ExcelService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) + public void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) { ExportParams exportParams = new ExportParams(title, sheetName); exportParams.setCreateHeadRows(isCreateHeader); @@ -36,17 +36,17 @@ public class ExcelService { defaultExport(list, pojoClass, fileName, response, exportParams, false); } - public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) + public void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, HttpServletResponse response, boolean template) { defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template); } - public static void exportExcel(List> list, String fileName, HttpServletResponse response) + public void exportExcel(List> list, String fileName, HttpServletResponse response) { defaultExport(list, fileName, response); } - private static void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) + private void defaultExport(List list, Class pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) { Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list); if (workbook != null) { @@ -65,14 +65,14 @@ public class ExcelService { downLoadExcel(fileName, response, workbook); } - private static void defaultExport(List> list, String fileName, HttpServletResponse response) + private void defaultExport(List> list, String fileName, HttpServletResponse response) { Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); if (workbook != null); downLoadExcel(fileName, response, workbook); } - private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) + private void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) { try { response.setCharacterEncoding("UTF-8"); @@ -86,7 +86,7 @@ public class ExcelService { } } - public static List importExcel(String filePath,Integer titleRows,Integer headerRows, Class pojoClass){ + public List importExcel(String filePath, Integer titleRows, Integer headerRows, Class pojoClass) { if (StringUtils.isBlank(filePath)){ return null; } @@ -105,7 +105,7 @@ public class ExcelService { return list; } - public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass) { + public List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass) { if (file == null) { return null; } diff --git a/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java b/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java index 82f7af593..780717c6e 100644 --- a/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java +++ b/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java @@ -5,6 +5,8 @@ import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.dto.WxOrderReportDto; import com.iformall.domain.vo.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -33,4 +35,7 @@ public interface MarkingDataReportService { List listMicroPayOrderReportByDateAndMerchant(WxOrderReportDto wxOrderReportDto); PageInfo listMerchantMicroPayOrderReportByDate(WxOrderReportDto wxOrderReportDto,Integer pageNum, Integer pageSize); + + void exportTouchUsersData(HttpServletRequest request, HttpServletResponse response, MarkingCouponDataReportDto markingCouponDataReportDto); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index da268bd84..b08cd6879 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -7,8 +7,12 @@ import com.iformall.domain.dto.WxOrderReportDto; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.vo.*; -import com.iformall.enums.*; +import com.iformall.enums.EnumCarCmd; +import com.iformall.enums.EnumCouponSendSendType; +import com.iformall.enums.EnumCouponType; +import com.iformall.enums.EnumOrderType; import com.iformall.mapper.*; +import com.iformall.service.ExcelService; import com.iformall.service.MarkingDataReportService; import com.iformall.utils.DateUtils; import org.apache.commons.collections.map.HashedMap; @@ -18,6 +22,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.text.NumberFormat; import java.time.LocalDate; import java.util.*; @@ -42,7 +48,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { private WxCouponMapper wxCouponMapper; @Autowired private WxOrderMapper wxOrderMapper; - + @Autowired + private ExcelService excelService; private Date addDay(int addDayAmount) { Calendar c = Calendar.getInstance(); @@ -652,6 +659,24 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { return new PageInfo<>(list); } + @Override + public void exportTouchUsersData(HttpServletRequest request, HttpServletResponse response, MarkingCouponDataReportDto markingCouponDataReportDto) { + if (markingCouponDataReportDto.getStartTime() != null) { + markingCouponDataReportDto.setStartTime(convertDateAndAdd(markingCouponDataReportDto.getStartTime(), 0)); + } + if (markingCouponDataReportDto.getEndTime() != null) { + markingCouponDataReportDto.setEndTime(markingCouponDataReportDto.getEndTime()); + } + HashMap params2 = new HashMap<>(); + params2.put("tenantId", markingCouponDataReportDto.getTenantId()); + if (markingCouponDataReportDto.getStartTime() != null) + params2.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(), 0)); + if (markingCouponDataReportDto.getEndTime() != null) + params2.put("endTime", markingCouponDataReportDto.getEndTime()); + List wxUserVisitList = wxCouponOrderMapper.touchUsersReportList(params2); + excelService.exportExcel(wxUserVisitList, null, "触达用户数", TouchUsersReportVo.class, "触达用户数" + ".xlsx", response, false); + } + @Override public PageInfo getTouchUsersReportList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) {