package com.stylefeng.guns.modular.system.controller.general; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.TCompany; import com.stylefeng.guns.modular.system.service.ITCompanyService; import com.stylefeng.guns.modular.system.service.IUserActivityDiscount1Service; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService; import com.stylefeng.guns.modular.system.util.ResultUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.net.URLEncoder; import java.util.List; /** * 报表控制器 */ @Controller @RequestMapping("/report") public class ReportController { private String PREFIX = "/system/report/"; @Autowired private ITCompanyService companyService; @Autowired private IUserCouponRecordService userCouponRecordService; @Autowired private IUserRedPacketRecordService redPacketRecordService; @Autowired private IUserActivityDiscount1Service userActivityDiscount1Service; /** * 跳转到日常运营数据汇总页 * @return */ @RequestMapping("/showOperationalData") public String showOperationalData(Model model){ List tCompanies = companyService.selectList(new EntityWrapper().eq("state", 0).ne("flag", 3)); model.addAttribute("company", tCompanies); return PREFIX + "operationalData.html"; } /** * 跳转到优惠券统计页 * @param model * @return */ @RequestMapping("/showCouponStatistics") public String showCouponStatistics(Model model){ List tCompanies = companyService.selectList(new EntityWrapper().eq("state", 0).ne("flag", 3)); model.addAttribute("company", tCompanies); return PREFIX + "couponStatistics.html"; } /** * 跳转到优惠券统计详情页 * @param type * @param model * @return */ @RequestMapping("/showCouponStatisticsInfo") public String showCouponStatisticsInfo(Integer type, Model model){ List tCompanies = companyService.selectList(new EntityWrapper().eq("state", 0).ne("flag", 3)); model.addAttribute("company", tCompanies); model.addAttribute("type", type); return PREFIX + "couponStatisticsInfo.html"; } /** * 获取日常运营数据 * @param type * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryOperationalData", method = RequestMethod.POST) public Object queryOperationalData(Integer type, String time, Integer companyId, Integer offset, Integer limit){ try { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } return companyService.queryOperationalData(type, start, end, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 下载日常运营数据汇总表 * @param type * @param time * @param companyId * @param response */ @ResponseBody @RequestMapping(value = "/downloadOperationalData", method = RequestMethod.GET) public void downloadOperationalData(Integer type, String time, Integer companyId, HttpServletResponse response){ try { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } HSSFWorkbook hssfWorkbook = companyService.downloadOperationalData(type, start, end, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("日常运营数据汇总表.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } /** * 获取优惠券统计 * @param type * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryCouponRegister", method = RequestMethod.POST) public Object queryCouponRegister(Integer type, String name, String time, Integer companyId, Integer offset, Integer limit){ try { return userCouponRecordService.queryCouponRegister(type, name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 下载优惠券领取数据 * @param type * @param name * @param time * @param companyId * @param response */ @ResponseBody @RequestMapping(value = "/downloadCouponRegister", method = RequestMethod.GET) public void downloadCouponRegister(Integer type, String name, String time, Integer companyId, HttpServletResponse response){ try { String na = ""; if(type == 2){ na = "注册优惠券奖励"; } if(type == 3){ na = "邀请优惠券奖励"; } if(type == 4){ na = "充值优惠券奖励"; } HSSFWorkbook hssfWorkbook = userCouponRecordService.downloadCouponRegister(type, name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(na + ".xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } /** * 获取红包统计数据 * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryRedEnvelopes", method = RequestMethod.POST) public Object queryRedEnvelopes(String name, String time, Integer companyId, Integer offset, Integer limit){ try { return redPacketRecordService.queryRedEnvelopes(name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 下载红包奖励 * @param name * @param time * @param companyId * @param response */ @ResponseBody @RequestMapping(value = "/downloadRedEnvelopes", method = RequestMethod.GET) public void downloadRedEnvelopes(String name, String time, Integer companyId, HttpServletResponse response){ try { HSSFWorkbook hssfWorkbook = redPacketRecordService.downloadRedEnvelopes(name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("红包奖励.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } /** * 获取折扣统计 * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryDiscount1", method = RequestMethod.POST) public Object queryDiscount1(String name, String time, Integer companyId, Integer offset, Integer limit){ try { return userActivityDiscount1Service.queryDiscount1(name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 下载折扣优惠活动 * @param name * @param time * @param companyId * @param response */ @ResponseBody @RequestMapping(value = "/downloadDiscount1", method = RequestMethod.GET) public void downloadDiscount1(String name, String time, Integer companyId, HttpServletResponse response){ try { HSSFWorkbook hssfWorkbook = userActivityDiscount1Service.downloadDiscount1(name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("折扣优惠活动.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } /** * 获取优惠券统计明细 * @param type * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryCouponRegisterInfo", method = RequestMethod.POST) public Object queryCouponRegisterInfo(Integer type, String name, String time, Integer companyId, Integer offset, Integer limit){ try { type += 1; return userCouponRecordService.queryCouponRegisterInfo(type, name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取充值赠送优惠券明细 * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryCouponRegisterInfo1", method = RequestMethod.POST) public Object queryCouponRegisterInfo1(String name, String time, Integer companyId, Integer offset, Integer limit){ try { return userCouponRecordService.queryCouponRegisterInfo1( name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取折扣优惠详情 * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryDiscountInfo", method = RequestMethod.POST) public Object queryDiscountInfo(String name, String time, Integer companyId, Integer offset, Integer limit){ try { return userActivityDiscount1Service.queryDiscountInfo(name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取红包领取详情 * @param name * @param time * @param companyId * @param offset * @param limit * @return */ @ResponseBody @RequestMapping(value = "/queryRedEnvelopesInfo", method = RequestMethod.POST) public Object queryRedEnvelopesInfo(String name, String time, Integer companyId, Integer offset, Integer limit){ try { return redPacketRecordService.queryRedEnvelopesInfo(name, time, companyId, offset, limit); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 优惠明细下载 * @param type * @param name * @param time * @param companyId * @param response */ @ResponseBody @RequestMapping(value = "/downloadCouponStatisticsInfo", method = RequestMethod.GET) public void downloadCouponStatisticsInfo(Integer type, String name, String time, Integer companyId, HttpServletResponse response){ try { if(type == 1 || type == 2){ type += 1; HSSFWorkbook hssfWorkbook = userCouponRecordService.downloadCouponRegisterInfo(type, name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode((type == 2 ? "注册奖励明细" : "邀请奖励明细") + ".xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); } if(type == 3){ HSSFWorkbook hssfWorkbook = userCouponRecordService.downloadCouponRegisterInfo1(name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("充值奖励明细.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); } if(type == 4){ HSSFWorkbook hssfWorkbook = userActivityDiscount1Service.downloadDiscountInfo(name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("折扣优惠明细.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); } if(type == 5){ HSSFWorkbook hssfWorkbook = redPacketRecordService.downloadRedEnvelopesInfo(name, time, companyId); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("红包优惠明细.xls", "utf-8")); response.setContentType("application/vnd.ms-excel"); ServletOutputStream out = response.getOutputStream(); hssfWorkbook.write(out); out.flush(); out.close(); } }catch (Exception e){ e.printStackTrace(); } } }