Commit c22a50e1 by chongli

会服用户订单统计模块

parent fbffdb59
...@@ -6,6 +6,22 @@ public class UserStatisticsQueryForm extends StatisticsQueryForm { ...@@ -6,6 +6,22 @@ public class UserStatisticsQueryForm extends StatisticsQueryForm {
* 是否有余额 * 是否有余额
*/ */
private Boolean hasBalance = false; private Boolean hasBalance = false;
/**
* 订单分析类型1单定场订单分析 14 赛事订单分析
*/
private int statisticsType;
private int dayOfWeek;//1:星期日 2:星期一 3:星期二 4:星期三 5:星期四 6:星期五 7:星期六
private String courseName;//球场名称
private String mobileNo;//打球人电话
private String name;//打球人姓名
private String orderCategory;//订单类型
public Boolean getHasBalance() { public Boolean getHasBalance() {
return hasBalance; return hasBalance;
...@@ -15,4 +31,53 @@ public class UserStatisticsQueryForm extends StatisticsQueryForm { ...@@ -15,4 +31,53 @@ public class UserStatisticsQueryForm extends StatisticsQueryForm {
this.hasBalance = hasBalance; this.hasBalance = hasBalance;
} }
public int getStatisticsType() {
return statisticsType;
}
public void setStatisticsType(int statisticsType) {
this.statisticsType = statisticsType;
}
public int getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getMobileNo() {
return mobileNo;
}
public void setMobileNo(String mobileNo) {
this.mobileNo = mobileNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOrderCategory() {
return orderCategory;
}
public void setOrderCategory(String orderCategory) {
this.orderCategory = orderCategory;
}
} }
package com.ctrip.fun.admin.service.market;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.Collection;
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.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.ctrip.fun.admin.service.BaseService;
import com.ctrip.fun.admin.utility.ExportUtil;
import com.ctrip.fun.common.vo.statistics.query.StatisticsQuery;
/**
* @author b.xu
* @version 2014-7-30
*/
public abstract class AbstractStatisticsExcelExportService<H extends StatisticsQuery, T > extends BaseService {
/**
* @param listType
* 返回excel列属性
* @return
*/
public abstract String[] getRowsName();
public abstract void setCellByListType(XSSFRow row, T bean, Integer cellNum, XSSFCellStyle bodyCellStyle);
/**
* @param userId
* @param query
* @return
*/
public abstract List<T> list(String userId, StatisticsQuery query);
/**
* 获得excel文件
*
* @param filename
* @param title
* @param collection
* @param outputStream
*/
public void exportExcel(String filename,Collection<T> collection, OutputStream outputStream) {
XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet();
ExportUtil exportUtil = new ExportUtil(workBook, sheet);
XSSFCellStyle headStyle = exportUtil.getHeadStyle();
XSSFCellStyle bodyStyle = exportUtil.getBodyStyle();
String title[] = this.getRowsName();
XSSFRow headRow = sheet.createRow(0);
XSSFCell cell = null;
for (int i = 0; i < title.length; i++) {
cell = headRow.createCell(i);
cell.setCellStyle(headStyle);
cell.setCellValue(title[i]);
sheet.setColumnWidth(i, 8000);
}
int count = 1;
for (T item : collection) {
XSSFRow row = sheet.createRow(count++);
row.setHeightInPoints(30);
this.setCellByListType(row, item, title.length, bodyStyle);
}
try {
workBook.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public String createExcelName(H form) {
StringBuilder excelName = new StringBuilder();
Class orderQueryFormClass = form.getClass();
Field[] orderQueryFormField = orderQueryFormClass.getDeclaredFields();
for (int i = 0; i < orderQueryFormField.length; i++) {
try {
orderQueryFormField[i].setAccessible(true);
if ((orderQueryFormField[i].get(form) != null)
&& (!orderQueryFormField[i].get(form).toString()
.equals(""))) {
if (!orderQueryFormField[i].get(form).toString()
.equals("0")) {
excelName.append(orderQueryFormField[i].get(form)
.toString() + "+");
}
}
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
return excelName.toString();
}
}
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 UserOrderBehaviourExcelExportService extends AbstractStatisticsExcelExportService<UserStatisticsQuery, UserOrderBehaviourStatisticsBean> {
private static Logger logger = LoggerFactory.getLogger(UserOrderBehaviourExcelExportService.class);
private int statisticsType = 0;
@Override
public String[] getRowsName() {
String[] title = null;
switch(statisticsType)
{
case 1:
title = new String[] { "手机号", "社员到期时间", "用户名", "下单次数"};
break;
case 2:
title = new String[] { "用户名", "手机号", "性别", "生日", "vipGrade", "社员到期时间"};
break;
case 3:
title = new String[] { "手机号", "社员到期时间", "用户名", "下单次数"};
break;
default:
title = new String[] { "用户名", "手机号", "性别", "生日", "社员到期时间"};
}
return title;
}
@Override
public void setCellByListType(XSSFRow row, UserOrderBehaviourStatisticsBean bean, Integer cellNum, XSSFCellStyle bodyCellStyle) {
List<String> valueList = new ArrayList<String>();
switch(statisticsType){
case 1:
valueList.add(bean.getMobileNo());
valueList.add(bean.getCommuneExpireTimeDesc());
valueList.add(bean.getUserName());
valueList.add(bean.getPalceOrderTimes()+"");
break;
case 2:
valueList.add(bean.getUserName());
valueList.add(bean.getMobileNo());
valueList.add(bean.getGender());
valueList.add(bean.getBirth());
valueList.add(bean.getVipGrade()+"");
valueList.add(bean.getCommuneExpireTimeDesc());
break;
case 3:
valueList.add(bean.getMobileNo());
valueList.add(bean.getCommuneExpireTimeDesc());
valueList.add(bean.getUserName());
valueList.add(bean.getPalceOrderTimes()+"");
break;
default:
valueList.add(bean.getUserName());
valueList.add(bean.getMobileNo());
valueList.add(bean.getGender());
valueList.add(bean.getBirth());
valueList.add(bean.getCommuneExpireTimeDesc());
}
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.listUserOrderBehaviour");
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());
switch (form.getStatisticsType()) {
case 1:
filename+="单定场有效下单用户";
break;
case 2:
filename+="单定场无有效下单用户";
break;
case 3:
filename+="赛事有效下单用户";
break;
default:
filename+="赛事无有效下单用户";
break;
}
return filename;
}
public void setStatisticsType(int statisticsType) {
this.statisticsType = statisticsType;
}
}
package com.ctrip.fun.admin.service.market;
import java.util.ArrayList;
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.admin.service.statistics.AbstractStatisticsService;
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.UserStatisticsQuery;
public class UserOrderBehaviourStatisticsService extends AbstractStatisticsService {
private static final Logger logger = LoggerFactory.getLogger(UserOrderBehaviourStatisticsService.class);
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listUserOrderBehaviour(String userId, UserStatisticsQuery query) {
String uri = super.getServiceUri("uri.userOrderBehaviour.listUserOrderBehaviour");
PagedResponseBean<UserOrderBehaviourStatisticsBean> responseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>(0, new ArrayList<UserOrderBehaviourStatisticsBean>());
HttpEntity<Request<UserStatisticsQuery>> entity = new HttpEntity<Request<UserStatisticsQuery>>(new Request<UserStatisticsQuery>(userId, 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 responseBean;
}
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listCourseUserOrderInfo(String userId, UserStatisticsQuery query) {
String uri = super.getServiceUri("uri.userOrderBehaviour.listCourseUserOrderInfo");
PagedResponseBean<UserOrderBehaviourStatisticsBean> responseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>(0, new ArrayList<UserOrderBehaviourStatisticsBean>());
HttpEntity<Request<UserStatisticsQuery>> entity = new HttpEntity<Request<UserStatisticsQuery>>(new Request<UserStatisticsQuery>(userId, 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 responseBean;
}
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listValidUserOrder(String userId, UserStatisticsQuery query) {
String uri = super.getServiceUri("uri.userOrderBehaviour.listValidUserOrder");
PagedResponseBean<UserOrderBehaviourStatisticsBean> responseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>(0, new ArrayList<UserOrderBehaviourStatisticsBean>());
HttpEntity<Request<UserStatisticsQuery>> entity = new HttpEntity<Request<UserStatisticsQuery>>(new Request<UserStatisticsQuery>(userId, 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 responseBean;
}
}
...@@ -214,7 +214,13 @@ ...@@ -214,7 +214,13 @@
<bean name="userDestinationStatisticsService" <bean name="userDestinationStatisticsService"
class="com.ctrip.fun.admin.service.statistics.user.UserDestinationStatisticsService" class="com.ctrip.fun.admin.service.statistics.user.UserDestinationStatisticsService"
parent="abstractStatisticsService" /> parent="abstractStatisticsService" />
<bean name="userOrderBehaviourStatisticsService"
class="com.ctrip.fun.admin.service.market.UserOrderBehaviourStatisticsService"
parent="abstractStatisticsService" />
<bean name="userOrderBehaviourExcelExportService"
class="com.ctrip.fun.admin.service.market.UserOrderBehaviourExcelExportService"
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" />
......
...@@ -462,6 +462,9 @@ uri.communeAdm.myBindList=/fun-golf-service/communeAdm/myBindList ...@@ -462,6 +462,9 @@ uri.communeAdm.myBindList=/fun-golf-service/communeAdm/myBindList
uri.communeAdm.getByCommuneExtId=/fun-golf-service/communeAdm/getByCommuneExtId uri.communeAdm.getByCommuneExtId=/fun-golf-service/communeAdm/getByCommuneExtId
uri.communeAdm.findAllLabels=/fun-golf-service/communeAdm/findAllLabels uri.communeAdm.findAllLabels=/fun-golf-service/communeAdm/findAllLabels
uri.communeAdm.updateLabels=/fun-golf-service/communeAdm/updateLabels uri.communeAdm.updateLabels=/fun-golf-service/communeAdm/updateLabels
uri.userOrderBehaviour.listUserOrderBehaviour=/fun-golf-service/userOrderBehaviour/listUserOrderBehaviour
uri.userOrderBehaviour.listCourseUserOrderInfo=/fun-golf-service/userOrderBehaviour/listCourseUserOrderInfo
uri.userOrderBehaviour.listValidUserOrder=/fun-golf-service/userOrderBehaviour/listValidUserOrder
# workPoint # workPoint
uri.workPoint.queryWorkPointLogsList=/fun-golf-service/userWorkPointLog/query uri.workPoint.queryWorkPointLogsList=/fun-golf-service/userWorkPointLog/query
......
...@@ -505,6 +505,19 @@ ${pageCss} ...@@ -505,6 +505,19 @@ ${pageCss}
<li <#if current == "communeAdm_myBindList">class="active"</#if>> <li <#if current == "communeAdm_myBindList">class="active"</#if>>
<a href="/communeAdm/myBindList">我管理的社员</a> <a href="/communeAdm/myBindList">我管理的社员</a>
</li> </li>
<li class="nav-header">用户下单行为分析</li>
<li <#if current == "userOrderBehaviour_listUserCourseOrderBehaviour">class="active"</#if>>
<a href="/userOrderBehaviour/listUserCourseOrderBehaviour?statisticsType=1">单订场下单</a>
</li>
<li <#if current == "userOrderBehaviour_listUserEventOrderBehaviour">class="active"</#if>>
<a href="/userOrderBehaviour/listUserEventOrderBehaviour?statisticsType=3">赛事下单</a>
</li>
<li <#if current == "userOrderBehaviour_listCourseUserOrderInfo">class="active"</#if>>
<a href="/userOrderBehaviour/listCourseUserOrderInfo?dayOfWeek=1">球场下单用户分析</a>
</li>
<li <#if current == "userOrderBehaviour_listValidUserOrder">class="active"</#if>>
<a href="/userOrderBehaviour/listValidUserOrder">用户有效订单查询</a>
</li>
</ul> </ul>
</#if> </#if>
</div> </div>
......
<#assign pageJsContent>
<script src="${staticServer}/js/lib/highcharts.js"></script>
<script src="${staticServer}/js/app/myHighcharts.js"></script>
<script src="${staticServer}/js/app/statistics.js"></script>
<script>
</script>
</#assign>
<#assign pageCssContent>
<link rel="stylesheet" href='${staticServer}/css/app/statistics.css'/>
<style>
</style>
</#assign>
<@com.layout title="用户下单行为分析" module="communeAdm" current="userOrderBehaviour_listCourseUserOrderInfo" pageCss=pageCssContent pageJs=pageJsContent>
<form id="J_Form" class="form-inline search-box" action="/userOrderBehaviour/listCourseUserOrderInfo" method="get">
<table class="labTable">
<tr style="height:40px;">
<td style="width:350px;padding-left:10px;">
查询时间:<br/>
<input type="date" name="searchDateStart" value="${searchDateStart}" style="margin-left: 0px;width:150px" class="input-medium">
<input type="date" name="searchDateEnd" value="${searchDateEnd}" style="margin-left: 0px;width:150px" class="input-medium">
</td>
<td style="width:200px;padding-left:10px;">
球场名称:<input type="text" name="courseName" style="margin-left: 0px;width:160px" value="${courseName}" />
</td>
<td style="margin-left: 200px;">
打球人电话:<input type="text" name="mobileNo" style="margin-left: 0px;width:140px" value="${mobileNo}" />
</td>
<td>
DayOfWeek:
<select name='dayOfWeek' style="width:100px;">
<option value='0' <#if dto.dayOfWeek==0>selected</#if> >所有</option>
<option value='2' <#if dto.dayOfWeek==2>selected</#if> >周一</option>
<option value='3' <#if dto.dayOfWeek==3>selected</#if> >周二</option>
<option value='4' <#if dto.dayOfWeek==4>selected</#if> >周三</option>
<option value='5' <#if dto.dayOfWeek==5>selected</#if> >周四</option>
<option value='6' <#if dto.dayOfWeek==6>selected</#if> >周五</option>
<option value='7' <#if dto.dayOfWeek==7>selected</#if> >周六</option>
<option value='1' <#if dto.dayOfWeek==1>selected</#if> >周日</option>
</select>
</td>
<td style="width:200px;"><a id="anyTime_J_submit" class="btn btn-primary">查询</a></td>
</tr>
</table>
<#if errorMsg??>
<table class="labTable"><tr><td class="red">error:${errorMsg!}</td></tr></table>
</#if>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th>球场名称</th>
<th>用户名</th>
<th>手机号</th>
<th>性别</th>
<th>用户属性</th>
<th>社员到期时间</th>
<#if dto.dayOfWeek!=0>
<th>dayOfWeek</th>
</#if>
<th>下单次数</th>
</tr>
</thead>
<tbody class="J_shift">
<#list list as item>
<tr>
<td>${item.courseName!}</td>
<td>${item.userName!}</td>
<td>${item.mobileNo!}</td>
<#if item.gender??>
<#if (item.gender=="M")>
<td>男</td>
<#elseif (item.gender=="F")>
<td>女</td>
<#else>
<td>未知</td>
</#if>
<#else>
<td>未知</td>
</#if>
<td>${item.vipGrade!}</td>
<td>${item.communeExpireTimeDesc!}</td>
<#if dto.dayOfWeek!=0>
<td>
<#switch item.dayOfWeek>
<#case 1>
周日 <#break>
<#case 2>
周一<#break>
<#case 3>
周二<#break>
<#case 4>
周三<#break>
<#case 5>
周四<#break>
<#case 6>
周五<#break>
<#default>
周六
</#switch>
</td>
</#if>
<td><a href='/userOrderBehaviour/listValidUserOrder?searchDateStart=${searchDateStart}&searchDateEnd=${searchDateEnd}&courseName=${item.courseName!}&mobileNo=${item.mobileNo!}&name=${item.userName!}&dayOfWeek=${item.dayOfWeek!}'>${item.palceOrderTimes!}</a> </td>
</tr>
</#list>
</tbody>
</table>
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right" style="width:1100px;">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</form>
</@com.layout>
<#assign pageJsContent>
<script src="${staticServer}/js/lib/highcharts.js"></script>
<script src="${staticServer}/js/app/myHighcharts.js"></script>
<script src="${staticServer}/js/app/statistics.js"></script>
<script>
</script>
</#assign>
<#assign pageCssContent>
<link rel="stylesheet" href='${staticServer}/css/app/statistics.css'/>
<style>
</style>
</#assign>
<@com.layout title="用户下单行为分析" module="communeAdm" current="userOrderBehaviour_listUserCourseOrderBehaviour" pageCss=pageCssContent pageJs=pageJsContent>
<form id="J_Form" class="form-inline search-box" action="/userOrderBehaviour/listUserCourseOrderBehaviour" method="get">
<table class="labTable">
<tr style="height:40px;">
<td style="width:500px;padding-left:10px;"><@com.textInputTwoDate type="date" path1="dto.searchDateStart" path2="dto.searchDateEnd" attributes="style=\"margin-left: 0px;\"" label="查询时间:"/></td>
<td>
<select name='statisticsType' style="margin-left:65px;">
<option value='1' <#if dto.statisticsType==1>selected</#if> >单定场有效下单用户</option>
<option value='2' <#if dto.statisticsType==2>selected</#if> >单定场无有效下单用户</option>
</select>
</td>
<td style="width:200px;"><a id="anyTime_J_submit" class="btn btn-primary">查询</a></td>
</tr>
</table>
<#if errorMsg??>
<table class="labTable"><tr><td class="red">error:${errorMsg!}</td></tr></table>
</#if>
<#if dto.statisticsType==1 || dto.statisticsType==3>
<table class="table table-bordered table-striped widthShow">
<tr>
<th>手机号</th>
<th>社员到期时间</th>
<th>用户名</th>
<th>下单次数</th>
</tr>
<#list list as item>
<tr>
<td>${item.mobileNo!}</td>
<td>${item.communeExpireTimeDesc!}</td>
<td>${item.userName!}</td>
<td><a href="/userOrderBehaviour/listValidUserOrder?mobileNo=${item.mobileNo!}&searchDateStart=${searchDateStart}&searchDateEnd=${searchDateEnd}&orderCategory=1">${item.palceOrderTimes!}</a></td>
</tr>
</#list>
</table>
</#if>
<#if dto.statisticsType==2>
<table class="table table-bordered table-striped widthShow">
<tr>
<th>用户名</th>
<th>手机号</th>
<th>性别</th>
<th>生日</th>
<th>vipGrade</th>
<th>社员到期时间</th>
</tr>
<#list list as item>
<tr>
<td>${item.userName!}</td>
<td>${item.mobileNo!}</td>
<#if item.gender??>
<#if (item.gender=="M")>
<td>男</td>
<#elseif (item.gender=="F")>
<td>女</td>
<#else>
<td>未知</td>
</#if>
<#else>
<td>未知</td>
</#if>
<td>${item.birth!}</td>
<td>${item.vipGrade!}</td>
<td>${item.communeExpireTimeDesc!}</td>
</tr>
</#list>
</table>
</#if>
<#if dto.statisticsType==4>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th>用户名</th>
<th>手机号</th>
<th>性别</th>
<th>生日</th>
<th>社员到期时间</th>
</tr>
</thead>
<tbody class="J_shift">
<#list list as item>
<tr>
<td>${item.userName!}</td>
<td>${item.mobileNo!}</td>
<#if item.gender??>
<#if (item.gender=="M")>
<td>男</td>
<#elseif (item.gender=="F")>
<td>女</td>
<#else>
<td>未知</td>
</#if>
<#else>
<td>未知</td>
</#if>
<td>${item.birth!}</td>
<td>${item.communeExpireTimeDesc!}</td>
</tr>
</#list>
</tbody>
</table>
</#if>
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right" style="width:1100px;">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</form>
</@com.layout>
<#assign pageJsContent>
<script src="${staticServer}/js/lib/highcharts.js"></script>
<script src="${staticServer}/js/app/myHighcharts.js"></script>
<script src="${staticServer}/js/app/statistics.js"></script>
<script>
</script>
</#assign>
<#assign pageCssContent>
<link rel="stylesheet" href='${staticServer}/css/app/statistics.css'/>
<style>
</style>
</#assign>
<@com.layout title="用户下单行为分析" module="communeAdm" current="userOrderBehaviour_listUserEventOrderBehaviour" pageCss=pageCssContent pageJs=pageJsContent>
<form id="J_Form" class="form-inline search-box" action="/userOrderBehaviour/listUserEventOrderBehaviour" method="get">
<table class="labTable">
<tr style="height:40px;">
<td style="width:500px;padding-left:10px;"><@com.textInputTwoDate type="date" path1="dto.searchDateStart" path2="dto.searchDateEnd" attributes="style=\"margin-left: 0px;\"" label="查询时间:"/></td>
<td>
<select name='statisticsType' style="margin-left:65px;">
<option value='3' <#if dto.statisticsType==3>selected</#if> >赛事有效下单用户</option>
<option value='4' <#if dto.statisticsType==4>selected</#if> >赛事无有效下单用户</option>
</select>
</td>
<td style="width:200px;"><a id="anyTime_J_submit" class="btn btn-primary">查询</a></td>
</tr>
</table>
<#if errorMsg??>
<table class="labTable"><tr><td class="red">error:${errorMsg!}</td></tr></table>
</#if>
<#if dto.statisticsType==3>
<table class="table table-bordered table-striped widthShow">
<tr>
<th>手机号</th>
<th>社员到期时间</th>
<th>用户名</th>
<th>下单次数</th>
</tr>
<#list list as item>
<tr>
<td>${item.mobileNo!}</td>
<td>${item.communeExpireTimeDesc!}</td>
<td>${item.userName!}</td>
<td><a href="/userOrderBehaviour/listValidUserOrder?mobileNo=${item.mobileNo!}&searchDateStart=${searchDateStart}&searchDateEnd=${searchDateEnd}&orderCategory=14">${item.palceOrderTimes!}</a></td>
</tr>
</#list>
</table>
</#if>
<#if dto.statisticsType==4>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th>用户名</th>
<th>手机号</th>
<th>性别</th>
<th>生日</th>
<th>社员到期时间</th>
</tr>
</thead>
<tbody class="J_shift">
<#list list as item>
<tr>
<td>${item.userName!}</td>
<td>${item.mobileNo!}</td>
<#if item.gender??>
<#if (item.gender=="M")>
<td>男</td>
<#elseif (item.gender=="F")>
<td>女</td>
<#else>
<td>未知</td>
</#if>
<#else>
<td>未知</td>
</#if>
<td>${item.birth!}</td>
<td>${item.communeExpireTimeDesc!}</td>
</tr>
</#list>
</tbody>
</table>
</#if>
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right" style="width:1100px;">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</form>
</@com.layout>
<#assign pageJsContent>
<script src="${staticServer}/js/lib/highcharts.js"></script>
<script src="${staticServer}/js/app/myHighcharts.js"></script>
<script src="${staticServer}/js/app/statistics.js"></script>
<script>
</script>
</#assign>
<#assign pageCssContent>
<link rel="stylesheet" href='${staticServer}/css/app/statistics.css'/>
<style>
</style>
</#assign>
<@com.layout title="用户下单行为分析" module="communeAdm" current="userOrderBehaviour_listValidUserOrder" pageCss=pageCssContent pageJs=pageJsContent>
<form id="J_Form" class="form-inline search-box" action="/userOrderBehaviour/listValidUserOrder" method="get">
<table class="labTable">
<tr style="height:40px;">
<td style="width:250px;padding-left:10px;">
查询时间:
<input type="date" name="searchDateStart" value="${searchDateStart}" style="margin-left: 0px;width:150px" class="input-medium">
<input type="date" name="searchDateEnd" value="${searchDateEnd}" style="margin-left: 0px;width:150px" class="input-medium">
</td>
<td style="width:180px;">
球场名称:&nbsp;&nbsp;&nbsp;<input type="text" name="courseName" style="margin-left: 15px;width:160px" value="${courseName}" />
</td>
<td style="margin-left: 100px;">
打球人电话:<input type="text" name="mobileNo" style="margin-left: 0px;width:160px" value="${mobileNo}" />
</td>
</tr>
<tr>
<td>
订单类型:
<select name='orderCategory' style="width:150px;margin-left:10px;">
<option value='' selected >订单类型</option>
<option value='1' <#if dto.orderCategory=='1'>selected</#if> >单定场订单</option>
<option value='14' <#if dto.orderCategory=='14'>selected</#if> >赛事订单</option>
</select>
</td>
<td>
DayOfWeek:
<select name='dayOfWeek' style="width:100px;">
<option value='0' <#if dto.dayOfWeek==0>selected</#if> >所有</option>
<option value='2' <#if dto.dayOfWeek==2>selected</#if> >周一</option>
<option value='3' <#if dto.dayOfWeek==3>selected</#if> >周二</option>
<option value='4' <#if dto.dayOfWeek==4>selected</#if> >周三</option>
<option value='5' <#if dto.dayOfWeek==5>selected</#if> >周四</option>
<option value='6' <#if dto.dayOfWeek==6>selected</#if> >周五</option>
<option value='7' <#if dto.dayOfWeek==7>selected</#if> >周六</option>
<option value='1' <#if dto.dayOfWeek==1>selected</#if> >周日</option>
</select>
</td>
<td style="width:200px;"><a id="anyTime_J_submit" class="btn btn-primary">查询</a></td>
</tr>
</table>
<#if errorMsg??>
<table class="labTable"><tr><td class="red">error:${errorMsg!}</td></tr></table>
</#if>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th>球场名称</th>
<th>用户名</th>
<th>手机号</th>
<th>订单号</th>
<th>订单日期</th>
<th>打球日期</th>
<th>实付金额</th>
<th>TeeTime</th>
</tr>
</thead>
<tbody class="J_shift">
<#list list as item>
<tr>
<td>${item.courseName!}</td>
<td>${item.userName!}</td>
<td> <a href='/system/user/list?mobilePhone=${item.mobileNo!}'>${item.mobileNo!}</a></td>
<#if item.orderCategory??>
<#if (item.orderCategory=="1")>
<td><a href="/order/orderList/list_all?orderNo=${item.orderNo!}&orderStartDate=${searchDateStart}&orderEndDate=${searchDateEnd}">${item.orderNo!}</a> </td>
<#elseif (item.orderCategory=="14")>
<td><a href="/eventActivityOrder/orderList/list_all?orderNo=${item.orderNo!}&orderStartDate=${searchDateStart}&orderEndDate=${searchDateEnd}">${item.orderNo!}</a> </td>
<#else>
<td><a href="">${item.orderNo!}</a> </td>
</#if>
<#else>
<td>未知</td>
</#if>
<td>${item.orderDate?substring(0,10)}</td>
<td>${item.playDate?substring(0,10)}(
<#switch item.dayOfWeek>
<#case 1>
周日 <#break>
<#case 2>
周一<#break>
<#case 3>
周二<#break>
<#case 4>
周三<#break>
<#case 5>
周四<#break>
<#case 6>
周五<#break>
<#default>
周六
</#switch>
)
</td>
<td>${item.actualAmount!} </td>
<td>${item.teeTime!} </td>
</tr>
</#list>
</tbody>
</table>
<div class="pagination pagination-right" style="width:1100px;">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</form>
</@com.layout>
\ No newline at end of file
...@@ -57,6 +57,11 @@ $(function(){ ...@@ -57,6 +57,11 @@ $(function(){
$("#J_Form").submit(); $("#J_Form").submit();
}); });
//任何时间
$("#anyTime_J_submit").click(function(){
$("#J_Form").submit();
});
//昨天 //昨天
$("#J_submit_yestoday").click(function(){ $("#J_submit_yestoday").click(function(){
var date = new Date(); var date = new Date();
......
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