Commit a17e96df by chongli

球场用户订单列表增加了导出excel功能

parent 17370cd8
...@@ -2,6 +2,7 @@ package com.ctrip.fun.admin.controller.market; ...@@ -2,6 +2,7 @@ package com.ctrip.fun.admin.controller.market;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
...@@ -20,6 +21,7 @@ import com.ctrip.fun.admin.controller.statistics.AbstractStatisticsController; ...@@ -20,6 +21,7 @@ import com.ctrip.fun.admin.controller.statistics.AbstractStatisticsController;
import com.ctrip.fun.admin.form.PaginationForm; import com.ctrip.fun.admin.form.PaginationForm;
import com.ctrip.fun.admin.form.statistics.StatisticsQueryForm; import com.ctrip.fun.admin.form.statistics.StatisticsQueryForm;
import com.ctrip.fun.admin.form.statistics.UserStatisticsQueryForm; import com.ctrip.fun.admin.form.statistics.UserStatisticsQueryForm;
import com.ctrip.fun.admin.service.market.CourseUserOrderInfoExcelExportService;
import com.ctrip.fun.admin.service.market.UserOrderBehaviourExcelExportService; import com.ctrip.fun.admin.service.market.UserOrderBehaviourExcelExportService;
import com.ctrip.fun.admin.service.market.UserOrderBehaviourStatisticsService; import com.ctrip.fun.admin.service.market.UserOrderBehaviourStatisticsService;
import com.ctrip.fun.common.core.util.DateUtil; import com.ctrip.fun.common.core.util.DateUtil;
...@@ -35,6 +37,9 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -35,6 +37,9 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
@Autowired @Autowired
private UserOrderBehaviourExcelExportService userOrderBehaviourExcelExportService; private UserOrderBehaviourExcelExportService userOrderBehaviourExcelExportService;
@Autowired
private CourseUserOrderInfoExcelExportService courseUserOrderInfoExcelExportService;
@RequestMapping(value = "/listUserCourseOrderBehaviour", method = RequestMethod.GET) @RequestMapping(value = "/listUserCourseOrderBehaviour", method = RequestMethod.GET)
public String listUserCourseOrderBehaviour(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) { public String listUserCourseOrderBehaviour(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) {
this.listUserOrderBehaviour(request, dto, model); this.listUserOrderBehaviour(request, dto, model);
...@@ -52,9 +57,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -52,9 +57,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
private void listUserOrderBehaviour(HttpServletRequest request,UserStatisticsQueryForm dto, ModelMap model) { private void listUserOrderBehaviour(HttpServletRequest request,UserStatisticsQueryForm dto, ModelMap model) {
UserStatisticsQuery query = new UserStatisticsQuery(); UserStatisticsQuery query = new UserStatisticsQuery();
if (dto.getSearchDateStart() == null) {
dto.setSearchDateStart(DateUtil.addDateField(new Date(), Calendar.YEAR, -2));
}
preHandlerQueryData(dto, query); preHandlerQueryData(dto, query);
query.setSearchDateStart(DateUtil.addDateField(query.getSearchDateEnd(), Calendar.YEAR, -2));
dto.setSearchDateStart(DateUtil.addDateField(query.getSearchDateEnd(), Calendar.YEAR, -2));
if(dto.getStatisticsType()==0){ if(dto.getStatisticsType()==0){
query.setStatisticsType(1); query.setStatisticsType(1);
}else{ }else{
...@@ -92,8 +98,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -92,8 +98,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
@RequestMapping(value = "/listCourseUserOrderInfo", method = RequestMethod.GET) @RequestMapping(value = "/listCourseUserOrderInfo", method = RequestMethod.GET)
public String listCourseUserOrderInfo(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) { public String listCourseUserOrderInfo(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) {
UserStatisticsQuery query = new UserStatisticsQuery(); UserStatisticsQuery query = new UserStatisticsQuery();
if (dto.getSearchDateStart() == null) {
dto.setSearchDateStart(DateUtil.addDateField(new Date(), Calendar.YEAR, -2));
}
preHandlerQueryData(dto, query); preHandlerQueryData(dto, query);
query.setSearchDateStart(DateUtil.addDateField(query.getSearchDateEnd(), Calendar.YEAR, -2));
if(dto.getStatisticsType()==0){ if(dto.getStatisticsType()==0){
query.setStatisticsType(1); query.setStatisticsType(1);
}else{ }else{
...@@ -123,16 +131,20 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -123,16 +131,20 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
pageCount = (0 == total % pageSize) ? (total / pageSize) : (total / pageSize + 1); pageCount = (0 == total % pageSize) ? (total / pageSize) : (total / pageSize + 1);
model.put("list", response.getResult()); model.put("list", response.getResult());
model.put("paginationData", new PaginationForm(currentPage, pageSize, pageCount, total)); model.put("paginationData", new PaginationForm(currentPage, pageSize, pageCount, total));
StringBuilder excel = new StringBuilder("excelExport?searchDateStart="); StringBuilder excel = new StringBuilder("excelExportCourseUserOrderInfo?searchDateStart=");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String searchDateStart = (query.getSearchDateStart() == null) ? ("") : (format.format(query.getSearchDateStart())); String searchDateStart = (query.getSearchDateStart() == null) ? ("") : (format.format(query.getSearchDateStart()));
String searchDateEnd = (query.getSearchDateEnd() == null) ? ("") : (format.format(query.getSearchDateEnd())); String searchDateEnd = (query.getSearchDateEnd() == null) ? ("") : (format.format(query.getSearchDateEnd()));
excel.append(searchDateStart); excel.append(searchDateStart);
excel.append("&searchDateEnd="); excel.append("&searchDateEnd=");
excel.append(searchDateEnd); excel.append(searchDateEnd);
excel.append("&statisticsType="); excel.append("&courseName=");
excel.append(query.getStatisticsType()); excel.append(query.getCourseName());
model.put("excelpath", ""); excel.append("&mobileNo=");
excel.append(query.getMobileNo());
excel.append("&dayOfWeek=");
excel.append(query.getDayOfWeek());
model.put("excelpath", excel.toString());
model.put("searchDateStart",searchDateStart); model.put("searchDateStart",searchDateStart);
model.put("searchDateEnd",searchDateEnd); model.put("searchDateEnd",searchDateEnd);
model.put("courseName",dto.getCourseName()); model.put("courseName",dto.getCourseName());
...@@ -142,11 +154,46 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -142,11 +154,46 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
} }
@RequestMapping(value = "/excelExportCourseUserOrderInfo", method = RequestMethod.GET)
public String excelExportCourseUserOrderInfo(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto,HttpServletResponse response) {
UserStatisticsQuery query = new UserStatisticsQuery();
if (dto.getSearchDateStart() == null) {
dto.setSearchDateStart(DateUtil.addDateField(new Date(), Calendar.YEAR, -2));
}
preHandlerQueryData(dto, query);
if(dto.getCourseName()==null){
dto.setCourseName("");
}
if(dto.getMobileNo()==null){
dto.setMobileNo("");
}
query.setCourseName(dto.getCourseName());
query.setDayOfWeek(dto.getDayOfWeek());
query.setMobileNo(dto.getMobileNo());
query.setPagerOffset(-1);
query.setPagerPerPage(-1);
courseUserOrderInfoExcelExportService.setDayOfWeek(dto.getDayOfWeek());
List<UserOrderBehaviourStatisticsBean> responseBean = courseUserOrderInfoExcelExportService.list("", query);
response.setContentType("application/binary;charset=ISO8859-1");
String filename = courseUserOrderInfoExcelExportService.createExcelName(query);
try {
ServletOutputStream outputStream = response.getOutputStream();
filename = filename.replaceAll("-", "");
response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("gb2312"), "ISO8859-1") + ".xlsx");
courseUserOrderInfoExcelExportService.exportExcel(filename, responseBean, outputStream);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@RequestMapping(value = "/listValidUserOrder", method = RequestMethod.GET) @RequestMapping(value = "/listValidUserOrder", method = RequestMethod.GET)
public String listValidUserOrder(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) { public String listValidUserOrder(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto, ModelMap model) {
UserStatisticsQuery query = new UserStatisticsQuery(); UserStatisticsQuery query = new UserStatisticsQuery();
preHandlerQueryData(dto, query); preHandlerQueryData(dto, query);
query.setSearchDateStart(DateUtil.addDateField(query.getSearchDateEnd(), Calendar.YEAR, -2));
if(dto.getCourseName()==null){ if(dto.getCourseName()==null){
dto.setCourseName(""); dto.setCourseName("");
} }
...@@ -195,8 +242,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo ...@@ -195,8 +242,10 @@ public class UserOrderBehaviourStatisticsController extends AbstractStatisticsCo
@RequestMapping(value = "/excelExport", method = RequestMethod.GET) @RequestMapping(value = "/excelExport", method = RequestMethod.GET)
public String getExcelExport(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto,HttpServletResponse response) { public String getExcelExport(HttpServletRequest request, @ModelAttribute("dto") UserStatisticsQueryForm dto,HttpServletResponse response) {
UserStatisticsQuery query = new UserStatisticsQuery(); UserStatisticsQuery query = new UserStatisticsQuery();
if (dto.getSearchDateStart() == null) {
dto.setSearchDateStart(DateUtil.addDateField(new Date(), Calendar.YEAR, -2));
}
preHandlerQueryData(dto, query); preHandlerQueryData(dto, query);
query.setSearchDateStart(DateUtil.addDateField(query.getSearchDateEnd(), Calendar.YEAR, -2));
if(dto.getStatisticsType()==0){ if(dto.getStatisticsType()==0){
query.setStatisticsType(1); query.setStatisticsType(1);
}else{ }else{
......
package com.ctrip.fun.admin.service.market;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.market.UserOrderBehaviourStatisticsBean;
import com.ctrip.fun.common.vo.statistics.query.StatisticsQuery;
import com.ctrip.fun.common.vo.statistics.query.UserStatisticsQuery;
public class CourseUserOrderInfoExcelExportService extends AbstractStatisticsExcelExportService<UserStatisticsQuery, UserOrderBehaviourStatisticsBean> {
private static Logger logger = LoggerFactory.getLogger(CourseUserOrderInfoExcelExportService.class);
private int dayOfWeek=0;
@Override
public String[] getRowsName() {
String[] title = null;
if(dayOfWeek==0){
title = new String[] { "球场名称", "用户名", "手机号", "性别", "用户属性","社员到期时间","下单次数"};
}else{
title = new String[] { "球场名称", "用户名", "手机号", "性别", "用户属性","社员到期时间","DayOfWeek","下单次数"};
}
return title;
}
@Override
public void setCellByListType(XSSFRow row, UserOrderBehaviourStatisticsBean bean, Integer cellNum, XSSFCellStyle bodyCellStyle) {
List<String> valueList = new ArrayList<String>();
valueList.add(bean.getCourseName());
valueList.add(bean.getUserName());
valueList.add(bean.getMobileNo());
valueList.add(bean.getGender());
valueList.add(bean.getVipGrade());
valueList.add(bean.getCommuneExpireTimeDesc());
if(dayOfWeek!=0){
switch (dayOfWeek) {
case 1:
valueList.add("周日");
break;
case 2:
valueList.add("周一");
break;
case 3:
valueList.add("周二");
break;
case 4:
valueList.add("周三");
break;
case 5:
valueList.add("周四");
break;
case 6:
valueList.add("周五");
break;
case 7:
valueList.add("周六");
break;
default:
valueList.add("");
}
}
valueList.add(bean.getPalceOrderTimes()+"");
for (int i = 0; i < cellNum; i++) {
XSSFCell cell = row.createCell(i);
cell.setCellStyle(bodyCellStyle);
if (valueList.get(i) == null) {
cell.setCellValue("");
} else {
cell.setCellValue(valueList.get(i));
}
}
}
public List<UserOrderBehaviourStatisticsBean> list(String userId,StatisticsQuery query) {
String uri = super.getServiceUri("uri.userOrderBehaviour.listCourseUserOrderInfo");
UserStatisticsQuery sub_query = (UserStatisticsQuery)query;
PagedResponseBean<UserOrderBehaviourStatisticsBean> responseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>(0, new ArrayList<UserOrderBehaviourStatisticsBean>());
HttpEntity<Request<UserStatisticsQuery>> entity = new HttpEntity<Request<UserStatisticsQuery>>(new Request<UserStatisticsQuery>(userId, sub_query));
Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> response = super.exchange(uri, HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>>>() {
}).getBody();
if (response.getStatus() == 0) {
responseBean = response.getBody();
} else {
logger.error("[查询用户下单行为] status: {}, msg: {}", response.getStatus(), response.getMessage());
}
return (List<UserOrderBehaviourStatisticsBean>) responseBean.getResult();
}
@Override
public String createExcelName(UserStatisticsQuery form) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String filename = format.format(form.getSearchDateStart())+"_"+format.format(form.getSearchDateEnd());
filename+=form.getCourseName();
switch (form.getDayOfWeek()) {
case 1:
filename+="周日下单用户";
break;
case 2:
filename+="周一下单用户";
break;
case 3:
filename+="周二下单用户";
break;
case 4:
filename+="周三下单用户";
break;
case 5:
filename+="周四下单用户";
break;
case 6:
filename+="周五下单用户";
break;
case 7:
filename+="周六下单用户";
break;
default:
filename+="下单用户";
break;
}
return filename;
}
public void setDayOfWeek(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
}
...@@ -220,7 +220,9 @@ ...@@ -220,7 +220,9 @@
<bean name="userOrderBehaviourExcelExportService" <bean name="userOrderBehaviourExcelExportService"
class="com.ctrip.fun.admin.service.market.UserOrderBehaviourExcelExportService" class="com.ctrip.fun.admin.service.market.UserOrderBehaviourExcelExportService"
parent="abstractStatisticsService" /> parent="abstractStatisticsService" />
<bean name="courseUserOrderInfoExcelExportService"
class="com.ctrip.fun.admin.service.market.CourseUserOrderInfoExcelExportService"
parent="abstractStatisticsService" />
<bean name="courseUserStatisticsService" <bean name="courseUserStatisticsService"
class="com.ctrip.fun.admin.service.statistics.course.CourseUserStatisticsService" class="com.ctrip.fun.admin.service.statistics.course.CourseUserStatisticsService"
parent="abstractStatisticsService" /> parent="abstractStatisticsService" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment