| @@ -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); | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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<Map<String, Object>> list, String fileName, HttpServletResponse response) | |||
| public void exportExcel(List<Map<String, Object>> 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<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); | |||
| 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 <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)){ | |||
| return null; | |||
| } | |||
| @@ -105,7 +105,7 @@ public class ExcelService { | |||
| 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) { | |||
| return null; | |||
| } | |||
| @@ -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<WxOrderReportVo> listMicroPayOrderReportByDateAndMerchant(WxOrderReportDto wxOrderReportDto); | |||
| 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.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<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 | |||
| public PageInfo<TouchUsersReportVo> getTouchUsersReportList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { | |||