package com.stylefeng.guns.modular.system.controller.general;
|
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
|
import com.stylefeng.guns.core.util.DateUtil;
|
import com.stylefeng.guns.core.util.ExcelExportUtil;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.model.TCompany;
|
import com.stylefeng.guns.modular.system.service.*;
|
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.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.net.URLEncoder;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 报表控制器
|
*/
|
@Controller
|
@RequestMapping("/report")
|
public class ReportController extends BaseController {
|
|
private String PREFIX = "/system/report/";
|
|
@Autowired
|
private ITCompanyService companyService;
|
|
@Autowired
|
private IUserCouponRecordService userCouponRecordService;
|
|
@Autowired
|
private IUserRedPacketRecordService redPacketRecordService;
|
|
@Autowired
|
private IUserActivityDiscount1Service userActivityDiscount1Service;
|
|
@Autowired
|
private ITDriverService driverService;
|
|
|
|
|
/**
|
* 跳转到日常运营数据汇总页
|
* @return
|
*/
|
@RequestMapping("/showOperationalData")
|
public String showOperationalData(Model model){
|
List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().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<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().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<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().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();
|
}
|
}
|
|
/**
|
* 司机收益统计页面
|
* @author yxh
|
* @date 2021/4/2 17:07
|
* @param model
|
*/
|
@RequestMapping("/driverIncomeStatisticsInfo")
|
public String ShowDriverIncomeList(Model model){
|
List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3));
|
model.addAttribute("company", tCompanies);
|
return PREFIX + "driverIncomeData.html";
|
}
|
|
|
/**
|
* 司机收益统计排行
|
* @author yxh
|
* @date 2021/4/2 17:35
|
* @return java.lang.Object
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/queryDriverIncomeData", method = RequestMethod.POST)
|
public Object queryDriverIncomeData(Integer type, String time, Integer companyId){
|
try {
|
String start = null;
|
String end = null;
|
if(ToolUtil.isNotEmpty(time)){
|
start = time.split(" - ")[0];
|
end = time.split(" - ")[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
page.setRecords(driverService.queryDriverIncomeData(page,type,start,end,companyId));
|
return super.packForBT(page);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
/**
|
* 导出司机收益排行
|
* @author yxh
|
* @date 2021/4/7 9:32
|
* @param type
|
* @param time
|
* @param companyId
|
* @param response
|
*/
|
@RequestMapping(value = "/downloadDriverIncomeData", method = RequestMethod.GET)
|
public void downloadDriverIncomeData(Integer type, String time, Integer companyId, HttpServletRequest request, HttpServletResponse response){
|
String start = null;
|
String end = null;
|
if(ToolUtil.isNotEmpty(time)){
|
start = time.split(" - ")[0];
|
end = time.split(" - ")[1];
|
}
|
List<Map<String, Object>> list = driverService.queryDriverIncomeDataNoPage(type,start,end,companyId);
|
// 表格数据
|
List<List<String>> dataList = new ArrayList<>();
|
// 表头行
|
List<String> shellList = new ArrayList<String>();
|
shellList.add("姓名");
|
shellList.add("账号/手机号");
|
shellList.add("所属分公司");
|
shellList.add("订单总数");
|
shellList.add("未支付订单数");
|
shellList.add("取消订单数");
|
shellList.add("订单总金额");
|
shellList.add("未支付订单金额");
|
dataList.add(shellList);
|
|
for (Map<String, Object> map : list) {
|
//数据行
|
shellList = new ArrayList<String>();
|
if(SinataUtil.isNotEmpty(map.get("driverName"))){
|
shellList.add(map.get("driverName").toString());
|
}else{
|
shellList.add("-");
|
}
|
if(SinataUtil.isNotEmpty(map.get("driverPhone"))){
|
shellList.add(map.get("driverPhone").toString());
|
}else{
|
shellList.add("-");
|
}
|
if(SinataUtil.isNotEmpty(map.get("companyName"))){
|
shellList.add(map.get("companyName").toString());
|
}else{
|
shellList.add("-");
|
}
|
if(SinataUtil.isNotEmpty(map.get("privateCarTotalNum"))){
|
shellList.add(map.get("privateCarTotalNum").toString());
|
}else{
|
shellList.add("0");
|
}
|
if(SinataUtil.isNotEmpty(map.get("privateCarNotPayNum"))){
|
shellList.add(map.get("privateCarNotPayNum").toString());
|
}else{
|
shellList.add("0");
|
}
|
if(SinataUtil.isNotEmpty(map.get("privateCarcancelNum"))){
|
shellList.add(map.get("privateCarcancelNum").toString());
|
}else{
|
shellList.add("0");
|
}
|
if(SinataUtil.isNotEmpty(map.get("privateCarTotalMoney"))){
|
shellList.add(map.get("privateCarTotalMoney").toString());
|
}else{
|
shellList.add("0");
|
}
|
if(SinataUtil.isNotEmpty(map.get("privateCarNotPayMoney"))){
|
shellList.add(map.get("privateCarNotPayMoney").toString());
|
}else{
|
shellList.add("0");
|
}
|
dataList.add(shellList);
|
}
|
try {
|
// 调用工具类进行导出
|
ExcelExportUtil.easySheet("司机收益导出记录"+ DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "司机收益导出记录", dataList,request, response);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|