Commit a6f75336 by unknown

add the pricedate to prd_flashsale

parent b3037210
...@@ -424,7 +424,10 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -424,7 +424,10 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
criteria.add(Restrictions.eq("productType", ProductTypeEnum.NORMAL.getValue())); criteria.add(Restrictions.eq("productType", ProductTypeEnum.NORMAL.getValue()));
criteria.add(Restrictions.eq("productStatus", CourseProductStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("productStatus", CourseProductStatusEnum.VALID.getValue()));
criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue()));
criteria.add(Restrictions.le("flashSaleStartTime", DateUtil.addDays(DateUtil.parseDate(DateUtil.getDateStr(new Date())), 2))); // criteria.add(Restrictions.le("flashSaleStartTime", DateUtil.addDays(DateUtil.parseDate(DateUtil.getDateStr(new Date())), 2)));
//modify by caosy
criteria.add(Restrictions.sqlRestriction("PriceDate <= date_add(curdate(),interval ReserveDay day)"));
criteria.add(Restrictions.gt("priceDate", DateUtil.parseDate(DateUtil.getDateStr(new Date())))); criteria.add(Restrictions.gt("priceDate", DateUtil.parseDate(DateUtil.getDateStr(new Date()))));
ArrayList<Integer> list = ResourcePriceStatusEnum.getValid(null, "queryFlashSaleResource"); ArrayList<Integer> list = ResourcePriceStatusEnum.getValid(null, "queryFlashSaleResource");
criteria.add(Restrictions.in("priceStatus", list)); criteria.add(Restrictions.in("priceStatus", list));
...@@ -1086,7 +1089,10 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -1086,7 +1089,10 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
criteria.add(Restrictions.eq("productType", ProductTypeEnum.NORMAL.getValue())); criteria.add(Restrictions.eq("productType", ProductTypeEnum.NORMAL.getValue()));
criteria.add(Restrictions.eq("productStatus", CourseProductStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("productStatus", CourseProductStatusEnum.VALID.getValue()));
criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue()));
criteria.add(Restrictions.le("flashSaleStartTime", DateUtil.addDays(DateUtil.parseDate(DateUtil.getDateStr(new Date())), 2))); // criteria.add(Restrictions.le("flashSaleStartTime", DateUtil.addDays(DateUtil.parseDate(DateUtil.getDateStr(new Date())), 2)));
//modify by caosy
criteria.add(Restrictions.sqlRestriction("PriceDate <= date_add(curdate(),interval ReserveDay day)"));
criteria.add(Restrictions.gt("priceDate", DateUtil.parseDate(DateUtil.getDateStr(new Date())))); criteria.add(Restrictions.gt("priceDate", DateUtil.parseDate(DateUtil.getDateStr(new Date()))));
ArrayList<Integer> list = ResourcePriceStatusEnum.getValid(null, "queryFlashSaleResource"); ArrayList<Integer> list = ResourcePriceStatusEnum.getValid(null, "queryFlashSaleResource");
criteria.add(Restrictions.in("priceStatus", list)); criteria.add(Restrictions.in("priceStatus", list));
...@@ -1095,7 +1101,7 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -1095,7 +1101,7 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
return criteria.list(); return criteria.list();
} }
public List<AsmCourseresource> queryFlashSaleResourceByResourceId(int resourceId) { public List<AsmCourseresource> queryFlashSaleResourceByResourceId(int resourceId, String priceDate) {
Criteria criteria = this.getCriteria(); Criteria criteria = this.getCriteria();
criteria.add(Restrictions.eq("resourceId", resourceId)); criteria.add(Restrictions.eq("resourceId", resourceId));
criteria.add(Restrictions.eq("resourceType", ResourceTypeEnum.FLASHSALE.getValue())); criteria.add(Restrictions.eq("resourceType", ResourceTypeEnum.FLASHSALE.getValue()));
...@@ -1104,6 +1110,9 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource, ...@@ -1104,6 +1110,9 @@ public class AsmCourseResourceDao extends GenericHibernateDao<AsmCourseresource,
criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("resourceStatus", CourseResourceStatusEnum.VALID.getValue()));
criteria.add(Restrictions.eq("priceStatus", ResourcePriceStatusEnum.VALID.getValue())); criteria.add(Restrictions.eq("priceStatus", ResourcePriceStatusEnum.VALID.getValue()));
criteria.add(Restrictions.ne("courseStatus", CourseStatusEnum.INVALID.getValue())); criteria.add(Restrictions.ne("courseStatus", CourseStatusEnum.INVALID.getValue()));
if(priceDate != null && !"".equals(priceDate)){
criteria.add(Restrictions.eq("priceDate", DateUtil.parseDate(priceDate)));
}
return criteria.list(); return criteria.list();
} }
......
...@@ -11,24 +11,26 @@ import com.ctrip.fun.golf.domain.product.FlashSale; ...@@ -11,24 +11,26 @@ import com.ctrip.fun.golf.domain.product.FlashSale;
public class FlashSaleDao extends GenericHibernateDao<FlashSale, Integer> { public class FlashSaleDao extends GenericHibernateDao<FlashSale, Integer> {
public List<FlashSale> getByUid(String uid, int resourceId) { public List<FlashSale> getByUid(String uid, int resourceId, Date priceDate) {
String hql = "from FlashSale where uid = :uid and resourceId = :resourceId"; String hql = "from FlashSale where uid = :uid and resourceId = :resourceId and priceDate = :priceDate";
Session session = this.getSession(); Session session = this.getSession();
Query query = session.createQuery(hql); Query query = session.createQuery(hql);
query.setParameter("uid", uid); query.setParameter("uid", uid);
query.setParameter("resourceId", resourceId); query.setParameter("resourceId", resourceId);
query.setParameter("priceDate", priceDate);
return query.list(); return query.list();
} }
public List<FlashSale> getByUid(String uid, int resourceId, int status, int min) { public List<FlashSale> getByUid(String uid, int resourceId, int status, int min, Date priceDate) {
Date date = new Date(); Date date = new Date();
Date createdTime = new Date(date.getTime() - min * 60 * 1000 + 2 * 1000); Date createdTime = new Date(date.getTime() - min * 60 * 1000 + 2 * 1000);
String hql = "from FlashSale where uid = :uid and resourceId = :resourceId and status = :status and createdTime<=:createdTime"; String hql = "from FlashSale where uid = :uid and resourceId = :resourceId and status = :status and createdTime<=:createdTime and priceDate = :priceDate";
Session session = this.getSession(); Session session = this.getSession();
Query query = session.createQuery(hql); Query query = session.createQuery(hql);
query.setParameter("uid", uid); query.setParameter("uid", uid);
query.setParameter("resourceId", resourceId); query.setParameter("resourceId", resourceId);
query.setParameter("priceDate", priceDate);
query.setParameter("status", status); query.setParameter("status", status);
query.setParameter("createdTime", createdTime); query.setParameter("createdTime", createdTime);
return query.list(); return query.list();
...@@ -52,13 +54,14 @@ public class FlashSaleDao extends GenericHibernateDao<FlashSale, Integer> { ...@@ -52,13 +54,14 @@ public class FlashSaleDao extends GenericHibernateDao<FlashSale, Integer> {
query.executeUpdate(); query.executeUpdate();
} }
public void updateByUid(String uid, int resourceId, int status) { public void updateByUid(String uid, int resourceId, int status, Date priceDate) {
String hql = "update FlashSale set status = :status" + " where uid = :uid and resourceId = :resourceId"; String hql = "update FlashSale set status = :status" + " where uid = :uid and resourceId = :resourceId and priceDate = :priceDate";
Session session = this.getSession(); Session session = this.getSession();
Query query = session.createQuery(hql); Query query = session.createQuery(hql);
query.setParameter("status", status); query.setParameter("status", status);
query.setParameter("uid", uid); query.setParameter("uid", uid);
query.setParameter("resourceId", resourceId); query.setParameter("resourceId", resourceId);
query.setParameter("priceDate", priceDate);
query.executeUpdate(); query.executeUpdate();
} }
......
...@@ -22,10 +22,11 @@ public class FlashSale implements java.io.Serializable { ...@@ -22,10 +22,11 @@ public class FlashSale implements java.io.Serializable {
private int resourceId; private int resourceId;
private int status; private int status;
private Integer orderId; private Integer orderId;
private Date priceDate;
private Date createdTime; private Date createdTime;
private Date dataChange_LastTime; private Date dataChange_LastTime;
@Id @Id
@GeneratedValue(strategy = IDENTITY) @GeneratedValue(strategy = IDENTITY)
@Column(name = "ID", unique = true) @Column(name = "ID", unique = true)
...@@ -67,6 +68,15 @@ public class FlashSale implements java.io.Serializable { ...@@ -67,6 +68,15 @@ public class FlashSale implements java.io.Serializable {
this.orderId = orderId; this.orderId = orderId;
} }
@Temporal(TemporalType.DATE)
@Column(name = "priceDate", length = 10)
public Date getPriceDate() {
return this.priceDate;
}
public void setPriceDate(Date priceDate) {
this.priceDate = priceDate;
}
@org.hibernate.annotations.Generated(org.hibernate.annotations.GenerationTime.INSERT) @org.hibernate.annotations.Generated(org.hibernate.annotations.GenerationTime.INSERT)
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
......
package com.ctrip.fun.golf.service.product; package com.ctrip.fun.golf.service.product;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.BitSet; import java.util.BitSet;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
...@@ -613,6 +615,14 @@ public class CourseResourceService extends ...@@ -613,6 +615,14 @@ public class CourseResourceService extends
bean.setCurrentTime(currentTime); bean.setCurrentTime(currentTime);
bean.setFlashSaleTips(entity.getFlashSaleTips()); bean.setFlashSaleTips(entity.getFlashSaleTips());
bean.setCashRebate(entity.getCashRebate()); bean.setCashRebate(entity.getCashRebate());
//add by caosy: modify the flashSaleStartTime
Date flashSaleStartTime = entity.getFlashSaleStartTime();
Date realFlashSaleStartTime = DateUtil.addDays(entity.getPriceDate(), -entity.getReserveDay());
Date date1 = DateUtil.addDateField(realFlashSaleStartTime, Calendar.HOUR_OF_DAY, flashSaleStartTime.getHours());
Date date2 = DateUtil.addDateField(date1, Calendar.MINUTE, flashSaleStartTime.getMinutes());
Date date3 = DateUtil.addDateField(date2, Calendar.SECOND, flashSaleStartTime.getSeconds());
bean.setFlashSaleStartTime(date3);
result.add(bean); result.add(bean);
} }
// 排序 // 排序
...@@ -747,7 +757,7 @@ public class CourseResourceService extends ...@@ -747,7 +757,7 @@ public class CourseResourceService extends
public FlashSaleShareInfoBean shareFlashSaleResource(FlashSaleShareQuery query) { public FlashSaleShareInfoBean shareFlashSaleResource(FlashSaleShareQuery query) {
int resourceId = query.getResourceId(); int resourceId = query.getResourceId();
List<AsmCourseresource> asmList = this.asmCourseResourceDao List<AsmCourseresource> asmList = this.asmCourseResourceDao
.queryFlashSaleResourceByResourceId(resourceId); .queryFlashSaleResourceByResourceId(resourceId, query.getPriceDate());
Date currentTime = this.asmCourseResourceDao.getCurrentTime(); Date currentTime = this.asmCourseResourceDao.getCurrentTime();
if (asmList != null && asmList.size() != 0) { if (asmList != null && asmList.size() != 0) {
AsmCourseresource asm = asmList.get(0); AsmCourseresource asm = asmList.get(0);
...@@ -797,7 +807,7 @@ public class CourseResourceService extends ...@@ -797,7 +807,7 @@ public class CourseResourceService extends
long now = this.asmCourseResourceDao.getCurrentTime().getTime(); long now = this.asmCourseResourceDao.getCurrentTime().getTime();
if (now < startSec) if (now < startSec)
return FlashSaleStatusEnum.NOT_START.getValue();// 尚未开始 return FlashSaleStatusEnum.NOT_START.getValue();// 尚未开始
List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId); List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId, priceDate);
if (flashSaleList == null || flashSaleList.size() == 0) {// 第一次抢购该资源 if (flashSaleList == null || flashSaleList.size() == 0) {// 第一次抢购该资源
ResourceInventoryQuery riQuery = new ResourceInventoryQuery(); ResourceInventoryQuery riQuery = new ResourceInventoryQuery();
riQuery.setResourceCategory(ResourceCategoryEnum.COURSE.getValue()); riQuery.setResourceCategory(ResourceCategoryEnum.COURSE.getValue());
...@@ -906,7 +916,7 @@ public class CourseResourceService extends ...@@ -906,7 +916,7 @@ public class CourseResourceService extends
logger.info("尚未开始, resourceId = " + resourceId + ", uid = " + uid); logger.info("尚未开始, resourceId = " + resourceId + ", uid = " + uid);
throw new OrderException(-23, "尚未开始");// 尚未开始 throw new OrderException(-23, "尚未开始");// 尚未开始
} }
List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId); List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId, priceDate);
if (flashSaleList == null || flashSaleList.size() == 0) { if (flashSaleList == null || flashSaleList.size() == 0) {
logger.info("非法操作, resourceId = " + resourceId + ", uid = " + uid); logger.info("非法操作, resourceId = " + resourceId + ", uid = " + uid);
throw new OrderException(-24, "非法操作"); throw new OrderException(-24, "非法操作");
...@@ -949,7 +959,7 @@ public class CourseResourceService extends ...@@ -949,7 +959,7 @@ public class CourseResourceService extends
int type = courseResource.getResourceType(); int type = courseResource.getResourceType();
if (type != ResourceTypeEnum.FLASHSALE.getValue()) if (type != ResourceTypeEnum.FLASHSALE.getValue())
return true; return true;
List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId); List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId, priceDate);
if (flashSaleList == null || flashSaleList.size() == 0) { if (flashSaleList == null || flashSaleList.size() == 0) {
logger.info("非法操作, resourceId = " + resourceId + ", uid = " + uid); logger.info("非法操作, resourceId = " + resourceId + ", uid = " + uid);
throw new OrderException(-24, "非法操作"); throw new OrderException(-24, "非法操作");
...@@ -988,6 +998,14 @@ public class CourseResourceService extends ...@@ -988,6 +998,14 @@ public class CourseResourceService extends
public void copyFromAsmToFlashSale(FlashSaleResourceBean flashSaleResourceBean, public void copyFromAsmToFlashSale(FlashSaleResourceBean flashSaleResourceBean,
AsmCourseresource asmCourseResource) { AsmCourseresource asmCourseResource) {
String name = asmCourseResource.getResourceName(); String name = asmCourseResource.getResourceName();
//add by caosy:
name = name + "-"+DateUtil.chineseDayForWeek(asmCourseResource.getPriceDate());
BigDecimal priceDelta = new BigDecimal(asmCourseResource.getMarketPrice().toString()).subtract(new BigDecimal(asmCourseResource.getSalePrice().toString()));
if(asmCourseResource.getCashRebate() > 0){
name = name + "爱玩返现"+asmCourseResource.getCashRebate()+"元";
}else if(priceDelta.doubleValue() > 0){
name = name + "爱玩补贴"+ priceDelta.doubleValue()+"元";
}
Date startDate = asmCourseResource.getPriceDate(); Date startDate = asmCourseResource.getPriceDate();
String startTime = asmCourseResource.getStartTime(); String startTime = asmCourseResource.getStartTime();
Date flashSaleStartTime = asmCourseResource.getFlashSaleStartTime(); Date flashSaleStartTime = asmCourseResource.getFlashSaleStartTime();
...@@ -1149,12 +1167,12 @@ public class CourseResourceService extends ...@@ -1149,12 +1167,12 @@ public class CourseResourceService extends
return false; return false;
} }
public boolean hasGetFlashSale(String uid, int resourceId) { public boolean hasGetFlashSale(String uid, int resourceId, Date priceDate) {
return hasGetFlashSale(uid, resourceId, 1) || hasGetFlashSale(uid, resourceId, 3); return hasGetFlashSale(uid, resourceId, 1, priceDate) || hasGetFlashSale(uid, resourceId, 3, priceDate);
} }
public boolean hasGetFlashSale(String uid, int resourceId, int status) { public boolean hasGetFlashSale(String uid, int resourceId, int status, Date priceDate) {
List<FlashSale> fsList = flashSaleDao.getByUid(uid, resourceId); List<FlashSale> fsList = flashSaleDao.getByUid(uid, resourceId, priceDate);
if (fsList == null || fsList.size() == 0) if (fsList == null || fsList.size() == 0)
return false; return false;
for (FlashSale fs : fsList) { for (FlashSale fs : fsList) {
...@@ -1198,7 +1216,7 @@ public class CourseResourceService extends ...@@ -1198,7 +1216,7 @@ public class CourseResourceService extends
public FlashSaleResourceBean getFlashSaleDetail(FlashSaleDetailQuery query) { public FlashSaleResourceBean getFlashSaleDetail(FlashSaleDetailQuery query) {
int resourceId = query.getResourceId(); int resourceId = query.getResourceId();
List<AsmCourseresource> asmList = this.asmCourseResourceDao List<AsmCourseresource> asmList = this.asmCourseResourceDao
.queryFlashSaleResourceByResourceId(resourceId); .queryFlashSaleResourceByResourceId(resourceId, query.getPriceDate());
List<FlashSaleResourceBean> list = sortFlashSaleResourceBean(asmList); List<FlashSaleResourceBean> list = sortFlashSaleResourceBean(asmList);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return null; return null;
...@@ -1209,7 +1227,7 @@ public class CourseResourceService extends ...@@ -1209,7 +1227,7 @@ public class CourseResourceService extends
public FlashSaleTeeTimeBean getTeeTime(FlashSaleTeeTimeQuery query) { public FlashSaleTeeTimeBean getTeeTime(FlashSaleTeeTimeQuery query) {
int resourceId = query.getResourceId(); int resourceId = query.getResourceId();
List<AsmCourseresource> asmList = this.asmCourseResourceDao List<AsmCourseresource> asmList = this.asmCourseResourceDao
.queryFlashSaleResourceByResourceId(resourceId); .queryFlashSaleResourceByResourceId(resourceId, query.getPriceDate());
if (asmList != null && asmList.size() != 0) { if (asmList != null && asmList.size() != 0) {
AsmCourseresource asm = asmList.get(0); AsmCourseresource asm = asmList.get(0);
FlashSaleTeeTimeBean bean = new FlashSaleTeeTimeBean(); FlashSaleTeeTimeBean bean = new FlashSaleTeeTimeBean();
......
...@@ -6,6 +6,7 @@ import java.util.List; ...@@ -6,6 +6,7 @@ import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.vo.order.OrderStatusEnum; import com.ctrip.fun.common.vo.order.OrderStatusEnum;
import com.ctrip.fun.common.vo.product.FlashSaleCheckQuery; import com.ctrip.fun.common.vo.product.FlashSaleCheckQuery;
import com.ctrip.fun.common.vo.product.FlashSaleStatusEnum; import com.ctrip.fun.common.vo.product.FlashSaleStatusEnum;
...@@ -35,18 +36,20 @@ public class FlashSaleService { ...@@ -35,18 +36,20 @@ public class FlashSaleService {
flashSale.setResourceId(query.getResourceId()); flashSale.setResourceId(query.getResourceId());
flashSale.setUid(query.getUid()); flashSale.setUid(query.getUid());
flashSale.setStatus(status); flashSale.setStatus(status);
//add by caosy
flashSale.setPriceDate(DateUtil.parseDate(query.getPriceDate()));
flashSaleDao.save(flashSale); flashSaleDao.save(flashSale);
} }
public void updateFlashSale(String uid, int resourceId, Date priceDate, int status) { public void updateFlashSale(String uid, int resourceId, Date priceDate, int status) {
flashSaleDao.updateByUid(uid, resourceId, status); flashSaleDao.updateByUid(uid, resourceId, status, priceDate);
} }
public void overTimeTask(String uid, int resourceId, Date priceDate, int min) { public void overTimeTask(String uid, int resourceId, Date priceDate, int min) {
List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId, 1, min); List<FlashSale> flashSaleList = flashSaleDao.getByUid(uid, resourceId, 1, min, priceDate);
if (flashSaleList == null || flashSaleList.size() == 0) if (flashSaleList == null || flashSaleList.size() == 0)
return; return;
flashSaleDao.updateByUid(uid, resourceId, 2); flashSaleDao.updateByUid(uid, resourceId, 2, priceDate);
FlashSale fs = flashSaleList.get(0); FlashSale fs = flashSaleList.get(0);
fs.setStatus(2); fs.setStatus(2);
flashSaleDao.update(fs); flashSaleDao.update(fs);
......
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