|
@@ -8,7 +8,10 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Service
|
|
@@ -32,7 +35,11 @@ public class ProductCouponService {
|
|
|
productCouponDao.update(productCoupon);
|
|
|
}
|
|
|
|
|
|
- public List<ProductCoupon> getList(ProductCoupon productCoupon){
|
|
|
+ public List<ProductCoupon> getList(ProductCoupon productCoupon) {
|
|
|
+ List<ProductCoupon> list = productCouponDao.getList(productCoupon);
|
|
|
+ for (ProductCoupon p : list) {
|
|
|
+ updateTerminateState(p);
|
|
|
+ }
|
|
|
return productCouponDao.getList(productCoupon);
|
|
|
}
|
|
|
|
|
@@ -66,11 +73,31 @@ public class ProductCouponService {
|
|
|
productCoupon.setUserId(userId);
|
|
|
productCoupon.setProductCouponModelId(productCouponModel.getId());
|
|
|
productCouponDao.save(productCoupon);
|
|
|
- productCoupon.setState(1);
|
|
|
- productCouponDao.update(productCoupon);
|
|
|
+
|
|
|
+ ProductCoupon updateProductCoupon = productCouponDao.get(productCoupon.getId());
|
|
|
+ updateProductCoupon.setState(1);
|
|
|
+ updateProductCoupon.setReceiveTime(new Date());
|
|
|
+ // 领取时间
|
|
|
+ LocalDateTime receiveTime = updateProductCoupon.getReceiveTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
+ // 加小时
|
|
|
+ LocalDateTime newDateTime = receiveTime.plusHours(updateProductCoupon.getLifespan());
|
|
|
+ // 失效时间
|
|
|
+ Date date = Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
+ updateProductCoupon.setTerminateTime(date);
|
|
|
+ productCouponDao.update(updateProductCoupon);
|
|
|
}
|
|
|
|
|
|
public ProductCoupon getUserId(long productCouponId, long userId) {
|
|
|
return productCouponDao.getUserId(productCouponId, userId);
|
|
|
}
|
|
|
+
|
|
|
+ // 判断优惠券是否过期
|
|
|
+ public void updateTerminateState(ProductCoupon productCoupon) {
|
|
|
+ Date currentDate = new Date();
|
|
|
+ boolean isBefore = productCoupon.getTerminateTime().before(currentDate);
|
|
|
+ if (isBefore) {
|
|
|
+ productCouponDao.updateTerminateState(productCoupon.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|