Commit c14ae4af by unknown

modify the calendar commune resource list for add usedtotal

parent 437d7d8a
......@@ -784,7 +784,139 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
return idResult;
}
/** add by caosy
* 获取对应时间段内对应球场的赛事资源AsmIds
* @throws Exception
* @throws
*/
@SuppressWarnings("unchecked")
public List<CommuneResourceBean> queryCommuneResourceListForCalendar(CommuneResourceQuery communeResourceQuery) throws Exception {
StringBuilder sql1 = new StringBuilder();
// 非实时TeeTime资源列表
sql1.append("SELECT a.cashRebate,a.PriceDate,p.communePrice,p.communeMinus,a.ProductId,IFNULL(pcp.Name,a.resourceName) AS productName,pr.used AS totalUsed");
// sql1.append(",pr.used AS totalUsed,pr.Size AS totalSize,pr.Size-pr.used as size");
sql1.append(" FROM asm_courseresource a ");
sql1.append(" LEFT JOIN prd_courseresource pc ON pc.ID = a.ResourceId");
sql1.append(" LEFT JOIN prd_courseproduct pcp ON a.ProductId = pcp.ID");
sql1.append(" INNER JOIN prd_resourceprice p ON a.ResourceId = p.ResourceID AND a.PriceDate = p.priceDate ");
sql1.append(" JOIN prd_resourceinventory pr ON pr.ResourceID = a.ResourceId AND pr.TheDate = a.PriceDate");
sql1.append(" WHERE 1=1 ");
sql1.append(" and a.productType = ").append(ProductTypeEnum.EVENT_ACTIVITY.getValue());
sql1.append(" and a.productStatus = ").append(CourseProductStatusEnum.VALID.getValue());
sql1.append(" and a.resourceStatus = ").append(CourseResourceStatusEnum.VALID.getValue());
ArrayList<Integer> list = ResourcePriceStatusEnum.getValid(null, "queryCommuneResource");
sql1.append(" and a.priceStatus in (").append(StringUtils.collectionToDelimitedString(list, ",")).append(")");
sql1.append(" and a.courseStatus <> ").append(CourseStatusEnum.INVALID.getValue());
sql1.append(" and a.publishDate < a.priceDate");
sql1.append(" and a.offlineDate >= a.priceDate ");
sql1.append(" and a.realTimeTeeTimeType= ").append(ResourceRealTimeTeeTimeTypeEnum.NORMAL.getValue());
sql1.append(" and p.communePrice IS NOT NULL ");
StringBuilder sql2 = new StringBuilder();
// 实时TeeTime资源列表 同一天只显示一个资源在列表页
sql2.append("SELECT b.cashRebate,b.PriceDate,q.communePrice,q.communeMinus,b.ProductId,IFNULL(pcp.Name,b.resourceName) AS productName,SUM(pri.used) AS totalUsed");
sql2.append(" FROM asm_courseresource b");
sql2.append(" LEFT JOIN prd_courseresource pc ON pc.ID = b.ResourceId");
sql2.append(" LEFT JOIN prd_courseproduct pcp ON b.ProductId = pcp.ID");
sql2.append(" INNER JOIN prd_resourceprice q ON b.ResourceId = q.ResourceID AND b.PriceDate = q.priceDate ");
sql2.append(" JOIN prd_resourceinventory pri ON pri.ResourceID = b.ResourceId AND pri.TheDate = b.PriceDate");
sql2.append(" WHERE 1=1 ");
sql2.append("");
sql2.append(" and b.productType = ").append(ProductTypeEnum.EVENT_ACTIVITY.getValue());
sql2.append(" and b.productStatus = ").append(CourseProductStatusEnum.VALID.getValue());
sql2.append(" and b.resourceStatus = ").append(CourseResourceStatusEnum.VALID.getValue());
sql2.append(" and b.priceStatus in (").append(StringUtils.collectionToDelimitedString(list, ",")).append(")");
sql2.append(" and b.courseStatus <> ").append(CourseStatusEnum.INVALID.getValue());
sql2.append(" and b.publishDate < b.priceDate");
sql2.append(" and b.offlineDate >= b.priceDate ");
sql2.append(" and b.realTimeTeeTimeType= ").append(ResourceRealTimeTeeTimeTypeEnum.REALTIME.getValue());
sql2.append(" and q.communePrice IS NOT NULL ");
Map<String, Object> parameters = new HashMap<String, Object>();
if (communeResourceQuery.getPriceDate() != null) {
sql1.append(" and a.priceDate=:priceDate ");
sql2.append(" and b.priceDate=:priceDate ");
parameters.put("priceDate", DateUtil.parseDate(DateUtil.getDateStr(communeResourceQuery.getPriceDate())));
} else {
//默认展示两个月的
Calendar cale1 = Calendar.getInstance();
cale1.add(Calendar.MONTH, 0);
cale1.set(Calendar.DAY_OF_MONTH, 1);
Calendar cale2 = Calendar.getInstance();
cale2.add(Calendar.MONTH, 2);
cale2.set(Calendar.DAY_OF_MONTH, 1);
sql1.append(" and a.priceDate>=:startDate ");
sql2.append(" and b.priceDate>=:startDate ");
parameters.put("startDate", cale1.getTime());
sql1.append(" and a.priceDate<:endDate ");
sql2.append(" and b.priceDate<:endDate ");
parameters.put("endDate", cale2.getTime());
}
if (communeResourceQuery.getCourseId() != null && communeResourceQuery.getCourseId() != 0) {
sql1.append(" and a.courseId=:courseId ");
sql2.append(" and b.courseId=:courseId ");
parameters.put("courseId", communeResourceQuery.getCourseId());
}
if (communeResourceQuery.getCityId() != null && communeResourceQuery.getCityId() != 0) {
sql1.append(" and (a.districtId=:districtId or a.districtId2=:districtId) ");
sql2.append(" and (b.districtId=:districtId or b.districtId2=:districtId) ");
parameters.put("districtId", communeResourceQuery.getCityId());
}
if (communeResourceQuery.getResourceTypeList() != null && communeResourceQuery.getResourceTypeList().size() > 0) {
sql1.append(" and a.resourceType in (:resourceType) ");
sql2.append(" and b.resourceType in (:resourceType) ");
parameters.put("resourceType", StringUtils.collectionToDelimitedString(communeResourceQuery.getResourceTypeList(), ","));
}
if (communeResourceQuery.getHotEvent() != null) {
sql1.append(" and a.hotEvent=:hotEvent ");
sql2.append(" and b.hotEvent=:hotEvent ");
parameters.put("hotEvent", communeResourceQuery.getHotEvent());
}
//add hotevent by caosy
if(communeResourceQuery.getHotEvent() != null && communeResourceQuery.getHotEvent()){
sql1.append("LIMIT 1 ");
// sql2.append(" order by q.communePrice-q.communeMinus) b GROUP BY b.productId, b.priceDate LIMIT 1);");
sql2.append(" GROUP BY b.productId, b.priceDate ORDER BY q.communePrice-q.communeMinus limit 1");
}else{
// sql2.append(" order by p.communePrice-p.communeMinus) b GROUP BY b.productId, b.priceDate);");
sql2.append(" GROUP BY b.productId, b.priceDate ORDER BY q.communePrice-q.communeMinus ");
}
StringBuilder sql = new StringBuilder();
StringBuilder sqlUnion = new StringBuilder();
sql.append(" SELECT u.cashRebate,u.priceDate,u.communePrice,u.communeMinus,u.productId,u.productName,u.totalUsed");
sqlUnion.append(" FROM( ");
sqlUnion.append(sql1.toString());
sqlUnion.append(" UNION ( ");
sqlUnion.append(sql2.toString());
sqlUnion.append(" )");
sqlUnion.append(" ) u order by u.priceDate, (u.communePrice - u.communeMinus)");
sql.append(sqlUnion.toString());
Session session = this.getSession();
Query querySQL = session.createSQLQuery(sql.toString());
for (Entry<String, Object> entry : parameters.entrySet()) {
querySQL.setParameter(entry.getKey(), entry.getValue());
}
querySQL.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> rlist = querySQL.list();
List<CommuneResourceBean> resultList = new ArrayList<CommuneResourceBean>();
if (rlist != null) {
for (Map<String, Object> map : rlist) {
CommuneResourceBean bean = new CommuneResourceBean();
BeanUtils.populate(bean, map);
resultList.add(bean);
}
}
return resultList;
}
/**
* 获取对应时间段内对应球场的赛事资源AsmIds
* @throws Exception
......
......@@ -162,13 +162,15 @@ public class ResourcePriceDao extends GenericHibernateDao<ResourcePrice, Integer
}
public List<CommuneResourceBean> getEventActivityResources(CommuneResourceQuery communeResourceQuery){
String hql1 = "select pcp.`Name` as productName, pr.priceDate, pr.CashRebate as cashRebate, pr.communePrice, pr.communeMinus from prd_resourceprice pr join prd_courseresource pcr on pr.ResourceID=pcr.ID"
+" AND pcr.`Status`=:resourceStatus AND pr.`Status` IN (:priceStatus) AND pcr.realTimeTeeTimeType =:realTimeTeeTimeType1 AND pcr.ResourceType=:resourceType"
String hql1 = "select pcp.`Name` as productName, pr.priceDate, pr.CashRebate as cashRebate, pr.communePrice, pr.communeMinus, pri.used as totalUsed from prd_resourceprice pr"
+" join prd_resourceinventory pri on pr.ResourceID=pri.ResourceID AND pri.TheDate=pr.priceDate"
+" join prd_courseresource pcr on pr.ResourceID=pcr.ID AND pcr.`Status`=:resourceStatus AND pr.`Status` IN (:priceStatus) AND pcr.realTimeTeeTimeType =:realTimeTeeTimeType1 AND pcr.ResourceType=:resourceType"
+" join prd_courseproduct pcp on pcp.ID = pcr.ProductID AND pcp.OfflineDate >= pr.priceDate AND pcp.PublishDate < pr.priceDate AND pcp.`Status` =:productStatus AND pcp.Type=:productType"
+" join prd_course pc ON pc.ID = pcp.CourseID AND pc.`Status`<> :courseStatus AND (pc.DistrictID=:districtId OR pc.DistrictID2=:districtId)"
+" WHERE pr.priceDate >= :startDate AND pr.priceDate < :endDate AND pr.communePrice IS NOT NULL";
String hql2 = "select pcp.`Name`as productName, pr.priceDate, pr.CashRebate as cashRebate, pr.communePrice, pr.communeMinus from prd_resourceprice pr join prd_courseresource pcr on pr.ResourceID=pcr.ID"
+" AND pcr.`Status`=:resourceStatus AND pr.`Status` IN (:priceStatus) AND pcr.realTimeTeeTimeType =:realTimeTeeTimeType2 AND pcr.ResourceType=:resourceType"
String hql2 = "select pcp.`Name`as productName, pr.priceDate, pr.CashRebate as cashRebate, pr.communePrice, pr.communeMinus,SUM(pri.used) AS totalUsed from prd_resourceprice pr"
+" join prd_resourceinventory pri on pr.ResourceID=pri.ResourceID AND pri.TheDate=pr.priceDate"
+" join prd_courseresource pcr on pr.ResourceID=pcr.ID AND pcr.`Status`=:resourceStatus AND pr.`Status` IN (:priceStatus) AND pcr.realTimeTeeTimeType =:realTimeTeeTimeType2 AND pcr.ResourceType=:resourceType"
+" join prd_courseproduct pcp on pcp.ID = pcr.ProductID AND pcp.OfflineDate >= pr.priceDate AND pcp.PublishDate < pr.priceDate AND pcp.`Status` =:productStatus AND pcp.Type=:productType"
+" join prd_course pc ON pc.ID = pcp.CourseID AND pc.`Status`<> :courseStatus AND (pc.DistrictID=:districtId OR pc.DistrictID2=:districtId)"
+" WHERE pr.priceDate >= :startDate AND pr.priceDate < :endDate AND pr.communePrice IS NOT NULL"
......
......@@ -535,15 +535,13 @@ public class AsmCourseResourceService {
*/
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) {
List<CommuneResourceBean> list = new ArrayList<CommuneResourceBean>();
try {
list = this.asmCourseResourceDao.queryCommuneResourceListForCalendar(communeResourceQuery);
} catch (Exception e) {
e.printStackTrace();
}
/* if (list != null) {
for (AsmCourseresource asm : asmCourseresources) {
CommuneResourceBean communeResourceBean = new CommuneResourceBean();
communeResourceBean.setCashRebate(asm.getCashRebate());
......@@ -581,9 +579,9 @@ public class AsmCourseResourceService {
}
resourcePrices = this.resourcePriceDao.getResourcePriceByOrderIds(priceIdList);
}
/*if (resourcePrices.size() == 0) {
if (resourcePrices.size() == 0) {
return result;
}*/
}
for (CommuneResourceBean communeResourceBean : list) {
ResourcePrice resourcePrice = this.findResourcePrice(communeResourceBean.getPriceId(), resourcePrices);
......@@ -592,7 +590,7 @@ public class AsmCourseResourceService {
communeResourceBean.setCommuneMinus(resourcePrice.getCommuneMinus());
communeResourceBean.setCommunePrice(resourcePrice.getCommunePrice());
}
}
}*/
//add by caosy: 增加已经从资源库asmresource表中删除的资源
......@@ -628,6 +626,11 @@ public class AsmCourseResourceService {
bean.setCommunePrice(asm.getCommunePrice());
bean.setCommuneMinus(asm.getCommuneMinus());
bean.setValidRes(asm.getProductId() != null? true:false);
boolean hotFlag = false;
if(asm.getUsedInventory() != null && asm.getUsedInventory()>=20){
hotFlag = true;
}
bean.setHotFlag(hotFlag);
if(index>=0){
CommuneResourceV4 v4 = v4list.get(index);
List<CommuneResourceV4PriceBean> priceBeanList = v4.getCourses();
......
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