Commit 0e4c6d47 by unknown

add the vip value to course list and detail

parent 82a70f5c
...@@ -1566,11 +1566,11 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -1566,11 +1566,11 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
} }
responseBean.setResult(result); responseBean.setResult(result);
this.setMaxCashRebate(courseIds, result, asmCourseresourceQuery); this.setMaxCashRebate(courseIds, result, asmCourseresourceQuery);
this.setMaxVipReduction(courseIds, result, asmCourseresourceQuery);
return responseBean; return responseBean;
} }
private void setMaxCashRebate(List<Integer> courseIds, List<AsmCourseresourceBean> result, AsmCourseresourceQuery asmCourseresourceQuery) { private void setMaxCashRebate(List<Integer> courseIds, List<AsmCourseresourceBean> result, AsmCourseresourceQuery asmCourseresourceQuery) {
if (courseIds == null || courseIds.isEmpty() || result == null || "web".equals(asmCourseresourceQuery.getFrom())) { if (courseIds == null || courseIds.isEmpty() || result == null || "web".equals(asmCourseresourceQuery.getFrom())) {
return; return;
} }
...@@ -1592,6 +1592,50 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -1592,6 +1592,50 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
} }
} }
private void setMaxVipReduction(List<Integer> courseIds, List<AsmCourseresourceBean> result, AsmCourseresourceQuery asmCourseresourceQuery) {
if (courseIds == null || courseIds.isEmpty() || result == null) {
return;
}
String sql = "select courseId,max(vipFirstReduction) as vipFirstReduction,max(vipMaxRandom) as vipMaxRandom from asm_courseresource where courseId in (:courseIds) and priceDate=:priceDate and resourceStatus="
+ CourseResourceStatusEnum.VALID.getValue()+" and productStatus="
+ CourseProductStatusEnum.VALID.getValue()+" group by courseId";
Query query = this.getSession().createSQLQuery(sql);
query.setParameter("priceDate", asmCourseresourceQuery.getDate());
query.setParameterList("courseIds", courseIds);
query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> queryResult = query.list();
if (queryResult != null) {
for (Map<String, Object> map : queryResult) {
AsmCourseresourceBean asmCourseresourceBean = this.findById(result, (Integer) map.get("courseId"));
if (asmCourseresourceBean != null) {
asmCourseresourceBean.setVipFirstReduction((double) map.get("vipFirstReduction"));
asmCourseresourceBean.setVipMaxRandom((double) map.get("vipMaxRandom"));
}
}
}
}
public void setMaxVipReduction(Integer courseId, AsmCourseresourceBean result, Date date) {
if (courseId == null) {
return;
}
String sql = "select courseId,max(vipFirstReduction) as vipFirstReduction,max(vipMaxRandom) as vipMaxRandom from asm_courseresource where courseId=:courseId and priceDate=:priceDate and resourceStatus="
+ CourseResourceStatusEnum.VALID.getValue()+" and productStatus="
+ CourseProductStatusEnum.VALID.getValue()+" group by courseId";
Query query = this.getSession().createSQLQuery(sql);
query.setParameter("priceDate", date);
query.setParameter("courseId", courseId);
query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> queryResult = query.list();
if (queryResult != null) {
for (Map<String, Object> map : queryResult) {
if (result != null) {
result.setVipFirstReduction((double) map.get("vipFirstReduction"));
result.setVipMaxRandom((double) map.get("vipMaxRandom"));
}
}
}
}
private AsmCourseresourceBean findById(List<AsmCourseresourceBean> result, Integer courseId) { private AsmCourseresourceBean findById(List<AsmCourseresourceBean> result, Integer courseId) {
for (AsmCourseresourceBean asmCourseresourceBean : result) { for (AsmCourseresourceBean asmCourseresourceBean : result) {
if (asmCourseresourceBean.getCourseId().equals(courseId)) { if (asmCourseresourceBean.getCourseId().equals(courseId)) {
......
...@@ -761,6 +761,28 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> { ...@@ -761,6 +761,28 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
} }
public List<Order> queryEventActivityOrders(Date priceDate, String playerPhone) {
String sql = "select t.orderId from ord_eventactivityorderitem t "
+ "join ord_customerinfo c on t.orderId=c.OrderID where c.MobileNo=:phone and t.playDate=:playDate";
Session session = this.getSession();
Query query = session.createSQLQuery(sql);
query.setParameter("playDate", priceDate);
query.setParameter("phone", playerPhone);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = query.list();
if (list == null || list.isEmpty()) {
return null;
}
List<Integer> orderIds = new ArrayList<Integer>();
for (Map<String, Object> map : list) {
orderIds.add((Integer) map.get("orderId"));
}
Criteria criteria = this.getCriteria();
criteria.add(Restrictions.in("orderId", orderIds));
return criteria.list();
}
/** /**
* 查询需要送积分的订单列表 * 查询需要送积分的订单列表
* *
......
...@@ -1099,9 +1099,18 @@ public class AsmCourseResourceService { ...@@ -1099,9 +1099,18 @@ public class AsmCourseResourceService {
} }
}} }}
//计算vip优惠
AsmCourseresourceBean temp = new AsmCourseresourceBean();
this.asmCourseResourceDao.setMaxVipReduction(asmCourseresourceQuery.getCourseId(), temp, asmCourseresourceQuery.getDate());
aggregationCourseResourceBean.setVipFirstReduction(temp.getVipFirstReduction());
aggregationCourseResourceBean.setVipMaxRandom(temp.getVipMaxRandom());
return aggregationCourseResourceBean; return aggregationCourseResourceBean;
} }
private String getCallWorkTime() { private String getCallWorkTime() {
String callWorkTime = "7:00-21:00"; String callWorkTime = "7:00-21:00";
try { try {
......
...@@ -383,20 +383,37 @@ public class EventActivityOrderService extends ...@@ -383,20 +383,37 @@ public class EventActivityOrderService extends
priceDate = eventActivityOrderResourceBean.getPlayDate(); priceDate = eventActivityOrderResourceBean.getPlayDate();
} }
EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery(); //modify by caosy, 非实时不需要继续预订了, 也就是不需要重复擦除库存了。
/* EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery();
eventCustomerInfoQuery.setResourceId(resourceId); eventCustomerInfoQuery.setResourceId(resourceId);
eventCustomerInfoQuery.setPriceDate(priceDate); eventCustomerInfoQuery.setPriceDate(priceDate);
eventCustomerInfoQuery.setUid(eventActivityOrderBean.getUid()); eventCustomerInfoQuery.setUid(eventActivityOrderBean.getUid());
List<EventCustomerInfo> previousOrdersEventCustomerInfos = eventCustomerInfoDao List<EventCustomerInfo> previousOrdersEventCustomerInfos = eventCustomerInfoDao
.getEventCustomerInfosInPreviousOrders(eventCustomerInfoQuery); .getEventCustomerInfosInPreviousOrders(eventCustomerInfoQuery);
if (previousOrdersEventCustomerInfos != null && eventActivityOrderBean.getRealTimeTeeTimeType() != ResourceRealTimeTeeTimeTypeEnum.REALTIME.getValue()) { if(previousOrdersEventCustomerInfos != null && eventActivityOrderBean.getRealTimeTeeTimeType() != ResourceRealTimeTeeTimeTypeEnum.REALTIME.getValue()){
if (false) {
boolean isCleanCustomer = true;
List<Order> orderList = getOrderDao().queryEventActivityOrders(
priceDate, eventActivityOrderBean.getUid(), resourceId);
// 如果这个用户在这个资源上之前已经下单成功了,就不要清除之前的占位和库存了,可以重新给别人占位
if (orderList != null) {
for (Order order : orderList) {
if (order.isPaied()) {
isCleanCustomer = false;
logger.info("该用户已经占位过,无需重新清除库存!, uid = " + eventActivityOrderBean.getUid()+", resourceId: "+resourceId);
break;
}
}
}
if(true){
// 将之前订单中的占位信息清除,目前使用与非实时teetime资源 // 将之前订单中的占位信息清除,目前使用与非实时teetime资源
for (EventCustomerInfo previousOrdersEventCustomerInfo : previousOrdersEventCustomerInfos) { for (EventCustomerInfo previousOrdersEventCustomerInfo : previousOrdersEventCustomerInfos) {
previousOrdersEventCustomerInfo.setValidFlag(false); previousOrdersEventCustomerInfo.setValidFlag(false);
eventCustomerInfoDao.update(previousOrdersEventCustomerInfo); eventCustomerInfoDao.update(previousOrdersEventCustomerInfo);
} }
eventCustomerInfoDao.flush(); eventCustomerInfoDao.flush();
//调整库存 //调整库存
// 上一个订单占位的数量 // 上一个订单占位的数量
int size = previousOrdersEventCustomerInfos.size(); int size = previousOrdersEventCustomerInfos.size();
...@@ -408,10 +425,11 @@ public class EventActivityOrderService extends ...@@ -408,10 +425,11 @@ public class EventActivityOrderService extends
resourceInventoryDao.update(resourceInventory); resourceInventoryDao.update(resourceInventory);
resourceInventoryDao.flush(); resourceInventoryDao.flush();
} }
}
} }
*/
int validGroupNum = 0; int validGroupNum = 0;
if (eventActivityOrderBean.getRealTimeTeeTimeType() != null if (eventActivityOrderBean.getRealTimeTeeTimeType() != null
&& eventActivityOrderBean.getRealTimeTeeTimeType() == ResourceRealTimeTeeTimeTypeEnum.REALTIME && eventActivityOrderBean.getRealTimeTeeTimeType() == ResourceRealTimeTeeTimeTypeEnum.REALTIME
...@@ -649,6 +667,8 @@ public class EventActivityOrderService extends ...@@ -649,6 +667,8 @@ public class EventActivityOrderService extends
throw new OrderException(-25, "同一天只能参加一场赛事活动,可以去订单中心取消更换赛事!"); throw new OrderException(-25, "同一天只能参加一场赛事活动,可以去订单中心取消更换赛事!");
} }
}*/ }*/
//打球人
return false; return false;
} }
} }
...@@ -730,9 +750,15 @@ public class EventActivityOrderService extends ...@@ -730,9 +750,15 @@ public class EventActivityOrderService extends
protected void checkOrderItem(EventActivityOrderBean eventActivityOrderBean) { protected void checkOrderItem(EventActivityOrderBean eventActivityOrderBean) {
UserExt userExt = this.getUserExtDao().getUserExtInfoByUid(eventActivityOrderBean.getUid()); UserExt userExt = this.getUserExtDao().getUserExtInfoByUid(eventActivityOrderBean.getUid());
boolean isCommuneUser = checkIfCommuneUser(userExt); boolean isCommuneUser = checkIfCommuneUser(userExt);
List<EventActivityOrderResourceBean> resourceList = eventActivityOrderBean.getResourceList();
if(resourceList == null || resourceList.size() <= 0) return;
EventActivityOrderResourceBean resourceBean = resourceList.get(0);
int communeNum =0,communeGuestNum=0; int communeNum =0,communeGuestNum=0;
for(CustomerInfoBean bean : eventActivityOrderBean.getCustomerInfoList()){ for(CustomerInfoBean bean : eventActivityOrderBean.getCustomerInfoList()){
if(StringUtils.isEmpty(bean.getMobileNo())){
//确保赛事活动这边的打球人都应该是有手机号的
throw new OrderException(-6, bean.getCname()+"的手机号为空,请完善!");
}
UserExt user = this.getUserExtDao().GetUserExtInfoByPhone(bean.getMobileNo()); UserExt user = this.getUserExtDao().GetUserExtInfoByPhone(bean.getMobileNo());
if(user!=null){ if(user!=null){
if(checkIfCommuneUser(user)){ if(checkIfCommuneUser(user)){
...@@ -743,15 +769,23 @@ public class EventActivityOrderService extends ...@@ -743,15 +769,23 @@ public class EventActivityOrderService extends
}else{ }else{
communeGuestNum++; communeGuestNum++;
} }
List<Order> orderList = getOrderDao().queryEventActivityOrders(resourceBean.getPlayDate(), bean.getMobileNo());
if(orderList != null){
for (Order order : orderList) {
if (order.isPaied()) {
logger.info("同一天只能参加一场赛事活动,不能重复参加, phone = " + bean.getMobileNo() + ", resourceId = " + resourceBean.getResourceId()
+ ", playDate =" + resourceBean.getPlayDate() + ", orderId = " + order.getOrderId());
throw new OrderException(-25, bean.getMobileNo()+"这一天已经预订了一场赛事了!");
}
}
}
} }
// //
if (eventActivityOrderBean.getResourceList() != null) { if (eventActivityOrderBean.getResourceList() != null) {
for (EventActivityOrderResourceBean resourceInfo : eventActivityOrderBean for (EventActivityOrderResourceBean resourceInfo : eventActivityOrderBean
.getResourceList()) { .getResourceList()) {
if (eventActivityOrderBean.getOrderNo() != null) { if (eventActivityOrderBean.getOrderNo() != null) {
// 继续预定需要将之前预定的人和库存释放 //继续预定需要将之前预定的人和库存释放
EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery(); EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery();
eventCustomerInfoQuery.setResourceId(resourceInfo.getResourceId()); eventCustomerInfoQuery.setResourceId(resourceInfo.getResourceId());
eventCustomerInfoQuery.setPriceDate(resourceInfo.getPlayDate()); eventCustomerInfoQuery.setPriceDate(resourceInfo.getPlayDate());
......
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