Commit 0e4c6d47 by unknown

add the vip value to course list and detail

parent 82a70f5c
......@@ -1566,15 +1566,37 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
}
responseBean.setResult(result);
this.setMaxCashRebate(courseIds, result, asmCourseresourceQuery);
this.setMaxVipReduction(courseIds, result, asmCourseresourceQuery);
return responseBean;
}
private void setMaxCashRebate(List<Integer> courseIds, List<AsmCourseresourceBean> result, AsmCourseresourceQuery asmCourseresourceQuery) {
if (courseIds == null || courseIds.isEmpty() || result == null || "web".equals(asmCourseresourceQuery.getFrom())) {
return;
}
String sql = "select courseId,max(cashRebate) as cashRebate 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.setCashRebate((double) map.get("cashRebate"));
}
}
}
}
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);
......@@ -1586,7 +1608,29 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
for (Map<String, Object> map : queryResult) {
AsmCourseresourceBean asmCourseresourceBean = this.findById(result, (Integer) map.get("courseId"));
if (asmCourseresourceBean != null) {
asmCourseresourceBean.setCashRebate((double) map.get("cashRebate"));
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"));
}
}
}
......
......@@ -760,6 +760,28 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
return criteria.list();
}
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 {
}
}}
//计算vip优惠
AsmCourseresourceBean temp = new AsmCourseresourceBean();
this.asmCourseResourceDao.setMaxVipReduction(asmCourseresourceQuery.getCourseId(), temp, asmCourseresourceQuery.getDate());
aggregationCourseResourceBean.setVipFirstReduction(temp.getVipFirstReduction());
aggregationCourseResourceBean.setVipMaxRandom(temp.getVipMaxRandom());
return aggregationCourseResourceBean;
}
private String getCallWorkTime() {
String callWorkTime = "7:00-21:00";
try {
......
......@@ -383,35 +383,53 @@ public class EventActivityOrderService extends
priceDate = eventActivityOrderResourceBean.getPlayDate();
}
EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery();
//modify by caosy, 非实时不需要继续预订了, 也就是不需要重复擦除库存了。
/* EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery();
eventCustomerInfoQuery.setResourceId(resourceId);
eventCustomerInfoQuery.setPriceDate(priceDate);
eventCustomerInfoQuery.setUid(eventActivityOrderBean.getUid());
List<EventCustomerInfo> previousOrdersEventCustomerInfos = eventCustomerInfoDao
.getEventCustomerInfosInPreviousOrders(eventCustomerInfoQuery);
if (previousOrdersEventCustomerInfos != null && eventActivityOrderBean.getRealTimeTeeTimeType() != ResourceRealTimeTeeTimeTypeEnum.REALTIME.getValue()) {
// 将之前订单中的占位信息清除,目前使用与非实时teetime资源
for (EventCustomerInfo previousOrdersEventCustomerInfo : previousOrdersEventCustomerInfos) {
previousOrdersEventCustomerInfo.setValidFlag(false);
eventCustomerInfoDao.update(previousOrdersEventCustomerInfo);
}
eventCustomerInfoDao.flush();
//调整库存
// 上一个订单占位的数量
int size = previousOrdersEventCustomerInfos.size();
ResourceInventory resourceInventory = this.resourceInventoryDao.getResourceInventory(priceDate,resourceId, 1);
if (resourceInventory != null && resourceInventory.getUsed() != null) {
int resetInvertorySize = resourceInventory.getUsed() - size;
resourceInventory.setUsed(resetInvertorySize < 0 ? 0
: resetInvertorySize);
resourceInventoryDao.update(resourceInventory);
resourceInventoryDao.flush();
}
.getEventCustomerInfosInPreviousOrders(eventCustomerInfoQuery);
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资源
for (EventCustomerInfo previousOrdersEventCustomerInfo : previousOrdersEventCustomerInfos) {
previousOrdersEventCustomerInfo.setValidFlag(false);
eventCustomerInfoDao.update(previousOrdersEventCustomerInfo);
}
eventCustomerInfoDao.flush();
//调整库存
// 上一个订单占位的数量
int size = previousOrdersEventCustomerInfos.size();
ResourceInventory resourceInventory = this.resourceInventoryDao.getResourceInventory(priceDate,resourceId, 1);
if (resourceInventory != null && resourceInventory.getUsed() != null) {
int resetInvertorySize = resourceInventory.getUsed() - size;
resourceInventory.setUsed(resetInvertorySize < 0 ? 0
: resetInvertorySize);
resourceInventoryDao.update(resourceInventory);
resourceInventoryDao.flush();
}
}
}
*/
int validGroupNum = 0;
if (eventActivityOrderBean.getRealTimeTeeTimeType() != null
&& eventActivityOrderBean.getRealTimeTeeTimeType() == ResourceRealTimeTeeTimeTypeEnum.REALTIME
......@@ -649,6 +667,8 @@ public class EventActivityOrderService extends
throw new OrderException(-25, "同一天只能参加一场赛事活动,可以去订单中心取消更换赛事!");
}
}*/
//打球人
return false;
}
}
......@@ -730,9 +750,15 @@ public class EventActivityOrderService extends
protected void checkOrderItem(EventActivityOrderBean eventActivityOrderBean) {
UserExt userExt = this.getUserExtDao().getUserExtInfoByUid(eventActivityOrderBean.getUid());
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;
for(CustomerInfoBean bean : eventActivityOrderBean.getCustomerInfoList()){
if(StringUtils.isEmpty(bean.getMobileNo())){
//确保赛事活动这边的打球人都应该是有手机号的
throw new OrderException(-6, bean.getCname()+"的手机号为空,请完善!");
}
UserExt user = this.getUserExtDao().GetUserExtInfoByPhone(bean.getMobileNo());
if(user!=null){
if(checkIfCommuneUser(user)){
......@@ -743,15 +769,23 @@ public class EventActivityOrderService extends
}else{
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) {
for (EventActivityOrderResourceBean resourceInfo : eventActivityOrderBean
.getResourceList()) {
if (eventActivityOrderBean.getOrderNo() != null) {
// 继续预定需要将之前预定的人和库存释放
//继续预定需要将之前预定的人和库存释放
EventCustomerInfoQuery eventCustomerInfoQuery = new EventCustomerInfoQuery();
eventCustomerInfoQuery.setResourceId(resourceInfo.getResourceId());
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