| @@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.ModelAttribute; | |||||
| import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| /** | /** | ||||
| * Created by syf on 2018/8/29. | * 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)); | 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); | |||||
| } | |||||
| } | } | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.domain.vo; | package com.iformall.domain.vo; | ||||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| /** | /** | ||||
| @@ -7,14 +8,20 @@ import lombok.Data; | |||||
| */ | */ | ||||
| @Data | @Data | ||||
| public class TouchUsersReportVo { | 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; | |||||
| } | } | ||||
| @@ -28,7 +28,7 @@ public class ExcelService { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | 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 exportParams = new ExportParams(title, sheetName); | ||||
| exportParams.setCreateHeadRows(isCreateHeader); | exportParams.setCreateHeadRows(isCreateHeader); | ||||
| @@ -36,17 +36,17 @@ public class ExcelService { | |||||
| defaultExport(list, pojoClass, fileName, response, exportParams, false); | 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); | defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template); | ||||
| } | } | ||||
| public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) | |||||
| public void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) | |||||
| { | { | ||||
| defaultExport(list, fileName, 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); | Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list); | ||||
| if (workbook != null) { | if (workbook != null) { | ||||
| @@ -65,14 +65,14 @@ public class ExcelService { | |||||
| downLoadExcel(fileName, response, workbook); | downLoadExcel(fileName, response, workbook); | ||||
| } | } | ||||
| private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) | |||||
| private void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) | |||||
| { | { | ||||
| Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); | Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); | ||||
| if (workbook != null); | if (workbook != null); | ||||
| downLoadExcel(fileName, response, workbook); | downLoadExcel(fileName, response, workbook); | ||||
| } | } | ||||
| private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) | |||||
| private void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) | |||||
| { | { | ||||
| try { | try { | ||||
| response.setCharacterEncoding("UTF-8"); | response.setCharacterEncoding("UTF-8"); | ||||
| @@ -86,7 +86,7 @@ public class ExcelService { | |||||
| } | } | ||||
| } | } | ||||
| public static <T> List<T> importExcel(String filePath,Integer titleRows,Integer headerRows, Class<T> pojoClass){ | |||||
| public <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass) { | |||||
| if (StringUtils.isBlank(filePath)){ | if (StringUtils.isBlank(filePath)){ | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -105,7 +105,7 @@ public class ExcelService { | |||||
| return list; | return list; | ||||
| } | } | ||||
| public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass) { | |||||
| public <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass) { | |||||
| if (file == null) { | if (file == null) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -5,6 +5,8 @@ import com.iformall.domain.dto.MarkingCouponDataReportDto; | |||||
| import com.iformall.domain.dto.WxOrderReportDto; | import com.iformall.domain.dto.WxOrderReportDto; | ||||
| import com.iformall.domain.vo.*; | import com.iformall.domain.vo.*; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -33,4 +35,7 @@ public interface MarkingDataReportService { | |||||
| List<WxOrderReportVo> listMicroPayOrderReportByDateAndMerchant(WxOrderReportDto wxOrderReportDto); | List<WxOrderReportVo> listMicroPayOrderReportByDateAndMerchant(WxOrderReportDto wxOrderReportDto); | ||||
| PageInfo<WxMerchantMicroPayVo> listMerchantMicroPayOrderReportByDate(WxOrderReportDto wxOrderReportDto,Integer pageNum, Integer pageSize); | PageInfo<WxMerchantMicroPayVo> listMerchantMicroPayOrderReportByDate(WxOrderReportDto wxOrderReportDto,Integer pageNum, Integer pageSize); | ||||
| void exportTouchUsersData(HttpServletRequest request, HttpServletResponse response, MarkingCouponDataReportDto markingCouponDataReportDto); | |||||
| } | } | ||||
| @@ -7,8 +7,12 @@ import com.iformall.domain.dto.WxOrderReportDto; | |||||
| import com.iformall.domain.po.WxCoupon; | import com.iformall.domain.po.WxCoupon; | ||||
| import com.iformall.domain.po.WxCouponOrder; | import com.iformall.domain.po.WxCouponOrder; | ||||
| import com.iformall.domain.vo.*; | 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.mapper.*; | ||||
| import com.iformall.service.ExcelService; | |||||
| import com.iformall.service.MarkingDataReportService; | import com.iformall.service.MarkingDataReportService; | ||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import org.apache.commons.collections.map.HashedMap; | 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.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.text.NumberFormat; | import java.text.NumberFormat; | ||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||
| import java.util.*; | import java.util.*; | ||||
| @@ -42,7 +48,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { | |||||
| private WxCouponMapper wxCouponMapper; | private WxCouponMapper wxCouponMapper; | ||||
| @Autowired | @Autowired | ||||
| private WxOrderMapper wxOrderMapper; | private WxOrderMapper wxOrderMapper; | ||||
| @Autowired | |||||
| private ExcelService excelService; | |||||
| private Date addDay(int addDayAmount) { | private Date addDay(int addDayAmount) { | ||||
| Calendar c = Calendar.getInstance(); | Calendar c = Calendar.getInstance(); | ||||
| @@ -652,6 +659,24 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { | |||||
| return new PageInfo<>(list); | 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<String, Object> 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<TouchUsersReportVo> wxUserVisitList = wxCouponOrderMapper.touchUsersReportList(params2); | |||||
| excelService.exportExcel(wxUserVisitList, null, "触达用户数", TouchUsersReportVo.class, "触达用户数" + ".xlsx", response, false); | |||||
| } | |||||
| @Override | @Override | ||||
| public PageInfo<TouchUsersReportVo> getTouchUsersReportList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { | public PageInfo<TouchUsersReportVo> getTouchUsersReportList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { | ||||