Commit fdc3fc87 by Huang Linyu

社员活动日历排期

parent a755c22f
......@@ -30,6 +30,7 @@ import com.ctrip.fun.common.vo.product.AsmCourseresourceQuery;
import com.ctrip.fun.common.vo.product.CheckFlashSaleResponse;
import com.ctrip.fun.common.vo.product.CommuneResourceBean;
import com.ctrip.fun.common.vo.product.CommuneResourceQuery;
import com.ctrip.fun.common.vo.product.CommuneResourceV4;
import com.ctrip.fun.common.vo.product.CourseMinPriceBean;
import com.ctrip.fun.common.vo.product.CourseMinPriceQuery;
import com.ctrip.fun.common.vo.product.CourseProductBean;
......@@ -136,6 +137,16 @@ public class AsmCourseResourceController {
}
@ResponseBody
@RequestMapping(value = "/queryCommuneResourceListV4", method = RequestMethod.POST)
public Response<List<CommuneResourceV4>> queryCommuneResourceListV4(@RequestBody Request<CommuneResourceQuery> request) {
Response<List<CommuneResourceV4>> respose = new Response<List<CommuneResourceV4>>();
respose.setStatus(ResponseStatusEnum.SUCCESS.getValue());
respose.setMessage(ResponseStatusEnum.SUCCESS.getMsg());
respose.setBody(this.asmCourseResourceService.queryCommuneResourceListV4(request.getBody()));
return respose;
}
@ResponseBody
@RequestMapping(value = "/queryCommuneResourceByCourse", method = RequestMethod.POST)
public Response<PagedResponseBean<CommuneResourceBean>> queryCommuneResourceByCourse(@RequestBody Request<CommuneResourceQuery> request) {
Response<PagedResponseBean<CommuneResourceBean>> respose = new Response<PagedResponseBean<CommuneResourceBean>>();
......
......@@ -540,6 +540,30 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
return pagedEntityBean;
}
/**
* getPriceDate = null
* hotEvent = false
* courseId = null
* @param query
* @return
*/
@SuppressWarnings("unchecked")
public List<AsmCourseresource> queryCommuneResourceV4(CommuneResourceQuery query) {
Criteria criteria = this.getCriteria();
List<Integer> list = queryCommuneResourceAsmIdsV3(query);
Long count = 0l;
List<AsmCourseresource> result = new ArrayList<AsmCourseresource>();
if (list != null && !list.isEmpty()) {
criteria.add(Restrictions.in("id", list));
criteria.addOrder(Order.asc("priceDate"));
result = criteria.list();
}
return result;
}
/**
* 获取对应时间段内对应球场的赛事资源AsmIds
......
package com.ctrip.fun.golf.service.assemble;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
......@@ -34,6 +36,8 @@ import com.ctrip.fun.common.vo.product.CampaignBean;
import com.ctrip.fun.common.vo.product.CommuneResourceBean;
import com.ctrip.fun.common.vo.product.CommuneResourceKeyBean;
import com.ctrip.fun.common.vo.product.CommuneResourceQuery;
import com.ctrip.fun.common.vo.product.CommuneResourceV4;
import com.ctrip.fun.common.vo.product.CommuneResourceV4PriceBean;
import com.ctrip.fun.common.vo.product.CourseBean;
import com.ctrip.fun.common.vo.product.CourseMinPriceBean;
import com.ctrip.fun.common.vo.product.CourseProductBean;
......@@ -68,6 +72,7 @@ import com.ctrip.fun.golf.service.client.ClientConfigService;
import com.ctrip.fun.golf.service.order.EventCustomerInfoService;
import com.ctrip.fun.golf.utils.DistrictUtil;
import com.ctrip.fun.golf.vo.PagedEntityBean;
import com.mysql.fabric.xmlrpc.base.Array;
public class AsmCourseResourceService {
......@@ -476,8 +481,141 @@ public class AsmCourseResourceService {
result.setResult(list);
return result;
}
/**
* 查詢社员资源V3
*
* @param communeResourceQuery CommuneResourceQuery
* @return PagedResponseBean<CommuneResourceBean> PagedResponseBean<CommuneResourceBean>
*/
public List<CommuneResourceV4> queryCommuneResourceListV4(CommuneResourceQuery communeResourceQuery) {
List<AsmCourseresource> asmCourseresources = this.asmCourseResourceDao.queryCommuneResourceV4(communeResourceQuery);
// PagedResponseBean<CommuneResourceBean> result = new PagedResponseBean<CommuneResourceBean>();
// PagedEntityBean<AsmCourseresource> pagedEntityBeans = this.asmCourseResourceDao.queryCommuneResourceV3(communeResourceQuery);
// Collection<AsmCourseresource> asmCourseresources = pagedEntityBeans.getResult();
List<CommuneResourceBean> list = new ArrayList<CommuneResourceBean>();
if (asmCourseresources != null) {
for (AsmCourseresource asm : asmCourseresources) {
CommuneResourceBean communeResourceBean = new CommuneResourceBean();
communeResourceBean.setCashRebate(asm.getCashRebate());
communeResourceBean.setSaleStartTime(asm.getFlashSaleStartTime());
communeResourceBean.setSaleEndTime(asm.getFlashSaleEndTime());
communeResourceBean.setPriceDate(asm.getPriceDate());
communeResourceBean.setId(asm.getId());
communeResourceBean.setCourseId(asm.getCourseId());
communeResourceBean.setProductId(asm.getProductId());
communeResourceBean.setPriceId(asm.getPriceId());
communeResourceBean.setResourceName(asm.getName());
communeResourceBean.setImagePath(asm.getImagePath());
communeResourceBean.setCurrency(asm.getCurrency());
communeResourceBean.setPaymentType(asm.getPaymentType());
communeResourceBean.setPrepaidPrice(asm.getPrepaidPrice());
communeResourceBean.setStartTime(asm.getStartTime());
communeResourceBean.setCurrentTime(new Date());
communeResourceBean.setInventoryType(asm.getInventoryType());
communeResourceBean.setResourceId(asm.getResourceId());
communeResourceBean.setReserveDay(asm.getReserveDay());
communeResourceBean.setResourceType(asm.getResourceType());
CourseProduct courseProduct = this.getCourseProductDao().findById(communeResourceBean.getProductId());
communeResourceBean.setProductName(courseProduct != null ? courseProduct.getName() : communeResourceBean.getResourceName());
CourseResource courseResource = this.getCourseResourceDao().findById(asm.getResourceId());
communeResourceBean.setReserveTime(courseResource != null ? courseResource.getReserveTime() : null);
communeResourceBean.setRealTimeTeeTimeType(asm.getRealTimeTeeTimeType() != null ? asm.getRealTimeTeeTimeType() : 1);
list.add(communeResourceBean);
}
List<Integer> priceIdList = new ArrayList<Integer>();
List<ResourcePrice> resourcePrices = new ArrayList<ResourcePrice>();
if (list != null && list.size() > 0) {
for (CommuneResourceBean communeResourceBean : list) {
priceIdList.add(communeResourceBean.getPriceId());
}
resourcePrices = this.resourcePriceDao.getResourcePriceByOrderIds(priceIdList);
}
/*if (resourcePrices.size() == 0) {
return result;
}*/
for (CommuneResourceBean communeResourceBean : list) {
ResourcePrice resourcePrice = this.findResourcePrice(communeResourceBean.getPriceId(), resourcePrices);
communeResourceBean.setCommuneGuestMinus(resourcePrice.getCommuneGuestMinus());
communeResourceBean.setCommuneGuestPrice(resourcePrice.getCommuneGuestPrice());
communeResourceBean.setCommuneMinus(resourcePrice.getCommuneMinus());
communeResourceBean.setCommunePrice(resourcePrice.getCommunePrice());
}
}
List<CommuneResourceV4> v4list = new ArrayList<CommuneResourceV4>();
if(list.size()>0){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
for(CommuneResourceBean asm : list){
Date priceDate = asm.getPriceDate();
String priceDateStr = df.format(priceDate);
int index = containDate(v4list,priceDateStr);
CommuneResourceV4PriceBean bean = new CommuneResourceV4PriceBean();
String productName = asm.getProductName();
//System.out.println(productName.getBytes());
int endIndex = productName.indexOf("爱玩公社活动日");
String simpleProductName = productName.substring(2,endIndex);
bean.setProductName(simpleProductName);
bean.setCashRebate(asm.getCashRebate());
bean.setCommunePrice(asm.getCommunePrice());
bean.setCommuneMinus(asm.getCommuneMinus());
if(index>=0){
CommuneResourceV4 v4 = v4list.get(index);
List<CommuneResourceV4PriceBean> priceBeanList = v4.getCourses();
priceBeanList.add(bean);
}else{
CommuneResourceV4 v4 = new CommuneResourceV4();
List<CommuneResourceV4PriceBean> priceBeanList = new ArrayList<CommuneResourceV4PriceBean>();
priceBeanList.add(bean);
v4.setDate(priceDateStr);
v4.setCourses(priceBeanList);
v4list.add(v4);
}
}
}
return v4list;
}
/**
* 判断某个 List<Map<Date, List<CommuneResourceBean>>> v4list 是否包含key为priceDate的Map元素
* @param priceDateStr
* @param v4list
* @param v4list
* @param priceDate
* @return index 代表 list表中所在的位置,默认-1
*/
private int containDate(List<CommuneResourceV4> v4list, String priceDateStr) {
int index=-1;
if(v4list.size()>0){
//如果v4list包含日起为priceDate的数据 将asm 写入
for(CommuneResourceV4 v4 : v4list){
index++;
if(v4.getDate().equals(priceDateStr)){
return index;
}
}
return -1;
}else{
return index;
}
}
/**
* 查詢社區资源
*
* @param communeResourceQuery CommuneResourceQuery
......
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