Commit 7771004d by chongli

会服用户订单统计模块

parent afa3323e
package com.ctrip.fun.golf.api.user;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
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.ResponseStatusEnum;
import com.ctrip.fun.common.vo.market.UserOrderBehaviourStatisticsBean;
import com.ctrip.fun.common.vo.statistics.query.UserStatisticsQuery;
import com.ctrip.fun.golf.api.statistics.AbstractStatisticsController;
import com.ctrip.fun.golf.service.user.UserOrderBehaviourStatisticsService;
@Controller
@RequestMapping(value = "/userOrderBehaviour")
public class UserOrderBehaviourStatisticsController extends AbstractStatisticsController {
@Autowired
private UserOrderBehaviourStatisticsService userOrderBehaviourStatisticsService = null;
/*
*没有下单用户信息列表
*/
@ResponseBody
@RequestMapping(value = "/listUserOrderBehaviour", method = RequestMethod.POST)
public Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> listUserOrderBehaviour(@RequestBody Request<UserStatisticsQuery> bean) {
checkParameters(bean);
Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> response = new Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>>();
PagedResponseBean<UserOrderBehaviourStatisticsBean> result = userOrderBehaviourStatisticsService.listUserOrderBehaviour(bean.getBody());
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
response.setBody(result);
return response;
}
/*
*查询某个球场,一段时间内,周一到周日,用户的下单情况。
*/
@ResponseBody
@RequestMapping(value = "/listCourseUserOrderInfo", method = RequestMethod.POST)
public Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> listCourseUserOrderInfo(@RequestBody Request<UserStatisticsQuery> bean) {
checkParameters(bean);
Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> response = new Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>>();
PagedResponseBean<UserOrderBehaviourStatisticsBean> result = userOrderBehaviourStatisticsService.listCourseUserOrderInfo(bean.getBody());
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
response.setBody(result);
return response;
}
/*
*查询某个用户在某个球场的订单信息
*/
@ResponseBody
@RequestMapping(value = "/listValidUserOrder", method = RequestMethod.POST)
public Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> listValidUserOrder(@RequestBody Request<UserStatisticsQuery> bean) {
checkParameters(bean);
Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>> response = new Response<PagedResponseBean<UserOrderBehaviourStatisticsBean>>();
PagedResponseBean<UserOrderBehaviourStatisticsBean> result = userOrderBehaviourStatisticsService.listValidUserOrder(bean.getBody());
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
response.setBody(result);
return response;
}
}
package com.ctrip.fun.golf.dao.user;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.transform.Transformers;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.vo.market.UserOrderBehaviourStatisticsBean;
import com.ctrip.fun.common.vo.order.OrderBean;
import com.ctrip.fun.common.vo.statistics.query.UserStatisticsQuery;
import com.ctrip.fun.golf.dao.GenericHibernateDao;
import com.ctrip.fun.golf.domain.user.CommuneAdm;
import com.ctrip.fun.golf.vo.PagedEntityBean;
public class UserOrderBehaviourStatisticsDao extends GenericHibernateDao<CommuneAdm, Integer> {
/*
* 获取一段时间内单定场产生有效订单的用户的信息
*/
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listSinglePlaceOrderUser(UserStatisticsQuery query) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS DISTINCT a.MobileNo as mobileNo,DATE_ADD(c.communeAgainTime,INTERVAL 1 YEAR) as communeExpireTime,c.UserName as userName, COUNT(a.orderId) as palceOrderTimes ");
sql.append("FROM ord_customerinfo a ");
sql.append("JOIN v b ON (a.OrderID = b.OrderID AND b.OrderCategory=1) ");
sql.append("LEFT JOIN bsc_userext c ON (a.MobileNo = c.BindedMobilePhone ) ");
//AND c.vipGrade&2=2
sql.append("WHERE mobileNo<>'' AND b.OrderDate>:searchDateStart AND b.OrderDate<:searchDateEnd ");
sql.append("GROUP BY a.MobileNo,c.vipGrade,c.communeAgainTime,c.umNickName,c.UserName ");
sql.append("ORDER BY c.communeAgainTime DESC");
return this.userOrderBehaviourSqlExecute(sql, query);
}
/*
* 获取一段时间内单定场没有产生有效订单的用户的信息
*/
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listSingleNonOrderUser(UserStatisticsQuery query) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS username userName,BindedMobilePhone mobileNo,gender,birth,case vipGrade&2 when 2 then '会员' else '非会员' end as vipGrade,DATE_ADD(communeAgainTime,INTERVAL 1 YEAR) communeExpireTime ");
sql.append("FROM bsc_userext WHERE vipGrade&2=2 AND BindedMobilePhone NOT IN(");
sql.append("SELECT DISTINCT a.MobileNo ");
sql.append("FROM ord_customerinfo a ");
sql.append("JOIN v b ON (a.OrderID = b.OrderID AND b.OrderCategory=1)");
sql.append("LEFT JOIN bsc_userext c ON (a.MobileNo = c.BindedMobilePhone ) ");
sql.append("WHERE mobileNo<>'' AND c.vipGrade&2=2 ");
sql.append("AND b.OrderDate>:searchDateStart AND b.OrderDate<:searchDateEnd)");
return this.userOrderBehaviourSqlExecute(sql, query);
}
/*
* 获取一段时间内赛事产生订单的用户的信息
*/
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listEventPlaceOrderUser(UserStatisticsQuery query) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS DISTINCT a.MobileNo as mobileNo,DATE_ADD(c.communeAgainTime,INTERVAL 1 YEAR) as communeExpireTime,c.UserName as userName, COUNT(a.orderId) as palceOrderTimes ");
sql.append("FROM ord_customerinfo a ");
sql.append("JOIN v b ON (a.OrderID = b.OrderID AND b.OrderCategory=14) ");
sql.append("LEFT JOIN bsc_userext c ON (a.MobileNo = c.BindedMobilePhone ) ");
sql.append("WHERE mobileNo<>'' AND b.OrderDate>:searchDateStart AND b.OrderDate<:searchDateEnd ");
sql.append("GROUP BY a.MobileNo,c.vipGrade,c.communeAgainTime,c.umNickName,c.UserName ");
sql.append("ORDER BY c.communeAgainTime DESC");
return this.userOrderBehaviourSqlExecute(sql, query);
}
/*
* 获取一段时间内赛事没有产生订单的用户的信息
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listEventNonOrderUser(UserStatisticsQuery query) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS username userName,BindedMobilePhone mobileNo,gender,birth,DATE_ADD(communeAgainTime,INTERVAL 1 YEAR) communeExpireTime ");
sql.append("FROM bsc_userext WHERE vipGrade&2=2 AND BindedMobilePhone NOT IN(");
sql.append("SELECT DISTINCT a.MobileNo ");
sql.append("FROM ord_customerinfo a ");
sql.append("JOIN v b ON (a.OrderID = b.OrderID AND b.OrderCategory=14)");
sql.append("LEFT JOIN bsc_userext c ON (a.MobileNo = c.BindedMobilePhone ) ");
sql.append("WHERE mobileNo<>'' AND c.vipGrade&2=2 ");
sql.append("AND b.OrderDate>:searchDateStart AND b.OrderDate<:searchDateEnd)");
return this.userOrderBehaviourSqlExecute(sql, query);
}
private PagedEntityBean<UserOrderBehaviourStatisticsBean> userOrderBehaviourSqlExecute(StringBuilder sql,UserStatisticsQuery query){
SQLQuery sqlQuery = this.getSession().createSQLQuery(sql.toString());
sqlQuery.setDate("searchDateStart", query.getSearchDateStart());
sqlQuery.setDate("searchDateEnd", query.getSearchDateEnd());
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
if(query.getPagerOffset()>=0&&query.getPagerPerPage()>=0){
sqlQuery.setFirstResult(query.getPagerOffset());
sqlQuery.setMaxResults(query.getPagerPerPage());
}
List<Map<String, Object>> list = sqlQuery.list();
List<UserOrderBehaviourStatisticsBean> result = new ArrayList<UserOrderBehaviourStatisticsBean>();
if (list != null) {
for (Map<String, Object> map : list) {
UserOrderBehaviourStatisticsBean userOrderBehaviourStatisticsBean = new UserOrderBehaviourStatisticsBean();
BeanConverter.populate(userOrderBehaviourStatisticsBean, map);
result.add(userOrderBehaviourStatisticsBean);
}
}
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean = new PagedEntityBean<UserOrderBehaviourStatisticsBean>();
pagedEntityBean.setResult(result);
Query queryCount = getSession().createSQLQuery(" SELECT FOUND_ROWS() ");
long count = ((BigInteger) queryCount.uniqueResult()).longValue();
pagedEntityBean.setCount(count);
return pagedEntityBean;
}
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listCourseUserOrderInfo(UserStatisticsQuery query) {
Map<String, Object> parameters = new HashMap<String, Object>();
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS Name courseName,mobileNO mobileNo,UserName userName,gender,DATE_ADD(communeAgainTime,INTERVAL 1 YEAR) AS communeExpireTime,case vipGrade&2 when 2 then '会员' else '非会员' end as vipGrade,dayweek dayOfWeek,COUNT(dayweek) palceOrderTimes from (");
sql.append("SELECT cs.Name,OC.mobileNO,u.UserName,u.communeAgainTime,u.vipGrade,u.Gender,dayofweek(orderitem.playDate) dayweek FROM v od ");
sql.append("JOIN ord_orderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID) ");
sql.append("JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) ");
sql.append("WHERE od.orderDate >=:searchDateStart ");
sql.append("AND od.orderDate <=:searchDateEnd AND (oc.MobileNo<>'') ");
if (query.getCourseName() != null&!"".equals(query.getCourseName())) {
sql.append("AND cs.`Name` LIKE :courseName ");
parameters.put("courseName", "%"+query.getCourseName()+"%");
}
if(query.getMobileNo()!=null&&!"".equals(query.getMobileNo())){
sql.append("AND oc.MobileNo=:mobileNo ");
parameters.put("mobileNo", query.getMobileNo());
}
if(query.getDayOfWeek()!=0){
sql.append("AND dayofweek(orderitem.playDate) =:dayOfWeek ");
parameters.put("dayOfWeek", query.getDayOfWeek());
}
sql.append("union all ");
sql.append("SELECT cs.Name,OC.mobileNO,u.UserName,u.communeAgainTime,u.vipGrade,u.Gender,dayofweek(orderitem.playDate) dayweek ");
sql.append("FROM v od JOIN ord_eventactivityorderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID) ");
sql.append("JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) ");
sql.append("WHERE od.orderDate >=:searchDateStart AND od.orderDate <=:searchDateEnd AND (oc.MobileNo<>'') ");
if (query.getCourseName() != null&!"".equals(query.getCourseName())) {
sql.append("AND cs.`Name` LIKE :courseName ");
parameters.put("courseName", "%"+query.getCourseName()+"%");
}
if(query.getMobileNo()!=null&&!"".equals(query.getMobileNo())){
sql.append("AND oc.MobileNo=:mobileNo ");
parameters.put("mobileNo", query.getMobileNo());
}
if(query.getDayOfWeek()!=0){
sql.append("AND dayofweek(orderitem.playDate) =:dayOfWeek ");
parameters.put("dayOfWeek", query.getDayOfWeek());
}
sql.append(") temp GROUP BY Name,mobileNO,userName,dayweek ORDER BY COUNT(dayweek) desc");
parameters.put("searchDateStart", query.getSearchDateStart());
parameters.put("searchDateEnd", query.getSearchDateEnd());
SQLQuery sqlQuery = this.getSession().createSQLQuery(sql.toString());
for (Entry<String, Object> entry : parameters.entrySet()) {
sqlQuery.setParameter(entry.getKey(), entry.getValue());
}
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
if(query.getPagerOffset()>0&&query.getPagerPerPage()>0){
sqlQuery.setFirstResult(query.getPagerOffset());
sqlQuery.setMaxResults(query.getPagerPerPage());
}
List<Map<String, Object>> list = sqlQuery.list();
List<UserOrderBehaviourStatisticsBean> result = new ArrayList<UserOrderBehaviourStatisticsBean>();
if (list != null) {
for (Map<String, Object> map : list) {
UserOrderBehaviourStatisticsBean userOrderBehaviourStatisticsBean = new UserOrderBehaviourStatisticsBean();
BeanConverter.populate(userOrderBehaviourStatisticsBean, map);
result.add(userOrderBehaviourStatisticsBean);
}
}
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean = new PagedEntityBean<UserOrderBehaviourStatisticsBean>();
pagedEntityBean.setResult(result);
Query queryCount = getSession().createSQLQuery(" SELECT FOUND_ROWS() ");
long count = ((BigInteger) queryCount.uniqueResult()).longValue();
pagedEntityBean.setCount(count);
return pagedEntityBean;
}
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listCourseUserOrderInfoAllWeek(UserStatisticsQuery query) {
Map<String, Object> parameters = new HashMap<String, Object>();
StringBuilder sql = new StringBuilder();
sql.append("SELECT SQL_CALC_FOUND_ROWS Name courseName,mobileNO mobileNo,UserName userName,gender,DATE_ADD(communeAgainTime,INTERVAL 1 YEAR) AS communeExpireTime,case vipGrade&2 when 2 then '会员' else '非会员' end as vipGrade,COUNT(*) palceOrderTimes from (");
sql.append("SELECT cs.Name,OC.mobileNO,u.UserName,u.communeAgainTime,u.vipGrade,u.Gender FROM v od ");
sql.append("JOIN ord_orderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID) ");
sql.append("JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) ");
sql.append("WHERE od.orderDate >=:searchDateStart ");
sql.append("AND od.orderDate <=:searchDateEnd AND (oc.MobileNo<>'') ");
if (query.getCourseName() != null&!"".equals(query.getCourseName())) {
sql.append("AND cs.`Name` LIKE :courseName ");
parameters.put("courseName", "%"+query.getCourseName()+"%");
}
if(query.getMobileNo()!=null&&!"".equals(query.getMobileNo())){
sql.append("AND oc.MobileNo=:mobileNo ");
parameters.put("mobileNo", query.getMobileNo());
}
sql.append("union all ");
sql.append("SELECT cs.Name,OC.mobileNO,u.UserName,u.communeAgainTime,u.vipGrade,u.Gender ");
sql.append("FROM v od JOIN ord_eventactivityorderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID) ");
sql.append("JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) ");
sql.append("WHERE od.orderDate >=:searchDateStart AND od.orderDate <=:searchDateEnd AND (oc.MobileNo<>'') ");
if (query.getCourseName() != null&!"".equals(query.getCourseName())) {
sql.append("AND cs.`Name` LIKE :courseName ");
}
if(query.getMobileNo()!=null&&!"".equals(query.getMobileNo())){
sql.append("AND oc.MobileNo=:mobileNo ");
}
sql.append(") temp GROUP BY Name,mobileNO,userName,communeAgainTime,vipGrade,Gender ORDER BY COUNT(*) desc");
parameters.put("searchDateStart", query.getSearchDateStart());
parameters.put("searchDateEnd", query.getSearchDateEnd());
SQLQuery sqlQuery = this.getSession().createSQLQuery(sql.toString());
for (Entry<String, Object> entry : parameters.entrySet()) {
sqlQuery.setParameter(entry.getKey(), entry.getValue());
}
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
if(query.getPagerOffset()>0&&query.getPagerPerPage()>0){
sqlQuery.setFirstResult(query.getPagerOffset());
sqlQuery.setMaxResults(query.getPagerPerPage());
}
List<Map<String, Object>> list = sqlQuery.list();
List<UserOrderBehaviourStatisticsBean> result = new ArrayList<UserOrderBehaviourStatisticsBean>();
if (list != null) {
for (Map<String, Object> map : list) {
UserOrderBehaviourStatisticsBean userOrderBehaviourStatisticsBean = new UserOrderBehaviourStatisticsBean();
BeanConverter.populate(userOrderBehaviourStatisticsBean, map);
result.add(userOrderBehaviourStatisticsBean);
}
}
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean = new PagedEntityBean<UserOrderBehaviourStatisticsBean>();
pagedEntityBean.setResult(result);
Query queryCount = getSession().createSQLQuery(" SELECT FOUND_ROWS() ");
long count = ((BigInteger) queryCount.uniqueResult()).longValue();
pagedEntityBean.setCount(count);
return pagedEntityBean;
}
public PagedEntityBean<UserOrderBehaviourStatisticsBean> listValidOrderInfo(UserStatisticsQuery query) {
StringBuilder sql = new StringBuilder();
Map<String, Object> parameters = new HashMap<String, Object>();
sql.append("SELECT SQL_CALC_FOUND_ROWS * from (SELECT cs.Name courseName,oc.MobileNo mobileNo,u.UserName userName,od.OrderNo orderNo,od.actualAmount actualAmount,od.orderCategory orderCategory, od.OrderDate orderDate,orderitem.PlayDate playDate,dayofweek(orderitem.playDate) dayOfWeek,orderitem.TeeTime teeTime from v od ");
sql.append("JOIN ord_orderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID and oc.MobileNo<>'') ");
sql.append("left JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) where od.orderDate >=:searchDateStart AND od.orderDate <=:searchDateEnd union all SELECT cs.Name courseName,oc.MobileNo mobileNo,u.UserName userName,od.OrderNo orderNo,od.actualAmount actualAmount,od.orderCategory orderCategory, od.OrderDate orderDate,orderitem.PlayDate playDate,dayofweek(orderitem.playDate) dayOfWeek,orderitem.TeeTime teeTime from v od ");
sql.append("JOIN ord_eventactivityorderitem orderitem ON (od.OrderID = orderitem.OrderID) ");
sql.append("JOIN prd_course cs ON orderitem.courseId = cs.id ");
sql.append("join ord_customerinfo oc ON (od.OrderID=oc.OrderID and oc.MobileNo<>'') ");
sql.append("left JOIN bsc_userext u on (OC.MobileNo=u.bindedMobilePhone) where od.orderDate >=:searchDateStart AND od.orderDate <=:searchDateEnd ) temp where 1=1 ");
if (query.getCourseName() != null&!"".equals(query.getCourseName())) {
sql.append("AND courseName LIKE :courseName ");
parameters.put("courseName", "%"+query.getCourseName()+"%");
}
if (query.getMobileNo() != null&!"".equals(query.getMobileNo())) {
sql.append("AND mobileNo LIKE :mobileNo ");
parameters.put("mobileNo", query.getMobileNo());
}
if (query.getName() != null&!"".equals(query.getName())) {
sql.append("AND userName LIKE :userName ");
parameters.put("userName", query.getName());
}
if(query.getDayOfWeek()!=0){
sql.append("AND dayofweek(playDate) =:dayOfWeek ");
parameters.put("dayOfWeek", query.getDayOfWeek());
}
if(query.getOrderCategory()!=null&!"".equals(query.getOrderCategory())){
sql.append("AND orderCategory =:orderCategory ");
parameters.put("orderCategory", query.getOrderCategory());
}
sql.append("order by orderDate desc ");
parameters.put("searchDateStart", query.getSearchDateStart());
parameters.put("searchDateEnd", query.getSearchDateEnd());
SQLQuery sqlQuery = this.getSession().createSQLQuery(sql.toString());
for (Entry<String, Object> entry : parameters.entrySet()) {
sqlQuery.setParameter(entry.getKey(), entry.getValue());
}
sqlQuery.setFirstResult(query.getPagerOffset());
sqlQuery.setMaxResults(query.getPagerPerPage());
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = sqlQuery.list();
List<UserOrderBehaviourStatisticsBean> result = new ArrayList<UserOrderBehaviourStatisticsBean>();
if (list != null) {
for (Map<String, Object> map : list) {
UserOrderBehaviourStatisticsBean userOrderBehaviourStatisticsBean = new UserOrderBehaviourStatisticsBean();
BeanConverter.populate(userOrderBehaviourStatisticsBean, map);
result.add(userOrderBehaviourStatisticsBean);
}
}
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean = new PagedEntityBean<UserOrderBehaviourStatisticsBean>();
pagedEntityBean.setResult(result);
Query queryCount = getSession().createSQLQuery(" SELECT FOUND_ROWS() ");
long count = ((BigInteger) queryCount.uniqueResult()).longValue();
pagedEntityBean.setCount(count);
return pagedEntityBean;
}
}
package com.ctrip.fun.golf.service.user;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.market.UserOrderBehaviourStatisticsBean;
import com.ctrip.fun.common.vo.statistics.query.UserStatisticsQuery;
import com.ctrip.fun.golf.dao.user.UserOrderBehaviourStatisticsDao;
import com.ctrip.fun.golf.vo.PagedEntityBean;
public class UserOrderBehaviourStatisticsService {
@Autowired
private UserOrderBehaviourStatisticsDao userOrderBehaviourStatisticsDao = null;
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listUserOrderBehaviour(
UserStatisticsQuery query) {
PagedResponseBean<UserOrderBehaviourStatisticsBean> pagedResponseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>();
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean;
switch(query.getStatisticsType()){
case 1:
pagedEntityBean = userOrderBehaviourStatisticsDao.listSinglePlaceOrderUser(query);
break;
case 2:
pagedEntityBean = userOrderBehaviourStatisticsDao.listSingleNonOrderUser(query);
break;
case 3:
pagedEntityBean = userOrderBehaviourStatisticsDao.listEventPlaceOrderUser(query);
break;
default:
pagedEntityBean = userOrderBehaviourStatisticsDao.listEventNonOrderUser(query);
break;
}
List<UserOrderBehaviourStatisticsBean> list = (List<UserOrderBehaviourStatisticsBean>) pagedEntityBean
.getResult();
pagedResponseBean.setCount(Integer.valueOf(String
.valueOf(pagedEntityBean.getCount())));
pagedResponseBean.setResult(list);
return pagedResponseBean;
}
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listCourseUserOrderInfo(
UserStatisticsQuery query) {
PagedResponseBean<UserOrderBehaviourStatisticsBean> pagedResponseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>();
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean;
if(query.getDayOfWeek()==0){
pagedEntityBean = userOrderBehaviourStatisticsDao.listCourseUserOrderInfoAllWeek(query);
}else{
pagedEntityBean = userOrderBehaviourStatisticsDao.listCourseUserOrderInfo(query);
}
List<UserOrderBehaviourStatisticsBean> list = (List<UserOrderBehaviourStatisticsBean>) pagedEntityBean
.getResult();
pagedResponseBean.setCount(Integer.valueOf(String
.valueOf(pagedEntityBean.getCount())));
pagedResponseBean.setResult(list);
return pagedResponseBean;
}
public PagedResponseBean<UserOrderBehaviourStatisticsBean> listValidUserOrder(UserStatisticsQuery query) {
PagedResponseBean<UserOrderBehaviourStatisticsBean> pagedResponseBean = new PagedResponseBean<UserOrderBehaviourStatisticsBean>();
PagedEntityBean<UserOrderBehaviourStatisticsBean> pagedEntityBean;
pagedEntityBean = userOrderBehaviourStatisticsDao.listValidOrderInfo(query);
List<UserOrderBehaviourStatisticsBean> list = (List<UserOrderBehaviourStatisticsBean>) pagedEntityBean
.getResult();
pagedResponseBean.setCount(Integer.valueOf(String
.valueOf(pagedEntityBean.getCount())));
pagedResponseBean.setResult(list);
return pagedResponseBean;
}
}
...@@ -23,6 +23,10 @@ ...@@ -23,6 +23,10 @@
<property name="sessionFactory" ref="sessionFactory"></property> <property name="sessionFactory" ref="sessionFactory"></property>
</bean> </bean>
<bean name="userOrderBehaviourStatisticsDao" class="com.ctrip.fun.golf.dao.user.UserOrderBehaviourStatisticsDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean name="userDestinationStatisticsDao" class="com.ctrip.fun.golf.dao.statistics.user.UserDestinationStatisticsDao"> <bean name="userDestinationStatisticsDao" class="com.ctrip.fun.golf.dao.statistics.user.UserDestinationStatisticsDao">
<property name="sessionFactory" ref="sessionFactory"></property> <property name="sessionFactory" ref="sessionFactory"></property>
</bean> </bean>
...@@ -37,6 +41,7 @@ ...@@ -37,6 +41,7 @@
<bean name="tourOrderStatisticsService" class="com.ctrip.fun.golf.service.statistics.order.TourOrderStatisticsService"></bean> <bean name="tourOrderStatisticsService" class="com.ctrip.fun.golf.service.statistics.order.TourOrderStatisticsService"></bean>
<bean name="rechargeOrderStatisticsService" class="com.ctrip.fun.golf.service.statistics.order.RechargeOrderStatisticsService"></bean> <bean name="rechargeOrderStatisticsService" class="com.ctrip.fun.golf.service.statistics.order.RechargeOrderStatisticsService"></bean>
<bean name="userLoginStatisticsService" class="com.ctrip.fun.golf.service.statistics.user.UserLoginStatisticsService"></bean> <bean name="userLoginStatisticsService" class="com.ctrip.fun.golf.service.statistics.user.UserLoginStatisticsService"></bean>
<bean name="userOrderBehaviourStatisticsService" class="com.ctrip.fun.golf.service.user.UserOrderBehaviourStatisticsService"></bean>
<bean name="userDestinationStatisticsService" class="com.ctrip.fun.golf.service.statistics.user.UserDestinationStatisticsService"></bean> <bean name="userDestinationStatisticsService" class="com.ctrip.fun.golf.service.statistics.user.UserDestinationStatisticsService"></bean>
<bean name="courseUserStatisticsService" class="com.ctrip.fun.golf.service.statistics.course.CourseUserStatisticsService"></bean> <bean name="courseUserStatisticsService" class="com.ctrip.fun.golf.service.statistics.course.CourseUserStatisticsService"></bean>
......
package com.ctrip.fun.golf.dao.statistics.user;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.vo.market.RmdCodeReportQuery;
import com.ctrip.fun.common.vo.market.UserOrderBehaviourStatisticsBean;
import com.ctrip.fun.common.vo.statistics.query.UserStatisticsQuery;
import com.ctrip.fun.golf.dao.user.UserOrderBehaviourStatisticsDao;
import com.ctrip.fun.golf.vo.PagedEntityBean;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:*.spring.xml"})
public class UserOrderBehaviourStatisticsDaoTest{
@Autowired
private UserOrderBehaviourStatisticsDao userOrderBehaviourStatisticsDao;
@Test
public void testListNonOrderUser() throws Exception {
UserStatisticsQuery query = new UserStatisticsQuery();
DateUtil.parseDate("2016-02-05");
query.setSearchDateStart(DateUtil.parseDate("2016-02-05"));
query.setSearchDateEnd(DateUtil.parseDate("2019-02-05"));
query.setDayOfWeek(1);
query.setCourseName("上海天马乡村高尔夫");
query.setPagerOffset(1);
query.setPagerPerPage(10);
PagedEntityBean<UserOrderBehaviourStatisticsBean> list = userOrderBehaviourStatisticsDao.listValidOrderInfo(null);
List<UserOrderBehaviourStatisticsBean> ha = (List<UserOrderBehaviourStatisticsBean>) list.getResult();
for(UserOrderBehaviourStatisticsBean bean:ha){
System.out.println(bean.getMobileNo());
}
System.out.println(list.getResult());
}
@Test
public void testListOrderUser() throws Exception {
}
}
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