From 2a17a4dbd6daa7fe6425beca4f89addea3b8d598 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 11 Sep 2019 15:42:40 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=B8=E5=8C=85][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=9B=A0=E5=88=86=E8=B4=A6=E9=99=90=E5=88=B6=EF=BC=8C=E6=9C=89?= =?UTF-8?q?=E4=BB=B7=E5=88=B8=E7=9A=84=E5=88=B8=E5=8C=85=E6=9C=89=E6=95=88?= =?UTF-8?q?=E6=9C=9F=E9=99=90=E5=88=B6=E4=B8=BA30=E5=A4=A9=E4=BB=A5?= =?UTF-8?q?=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxOrderServiceImpl.java | 29 ++++++++++++------- .../java/com/iformall/utils/Constant.java | 2 ++ .../java/com/iformall/utils/DateUtils.java | 10 +++++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 24c7b82a2..02e9de7e0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -16,10 +16,7 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; -import com.iformall.utils.DateUtils; -import com.iformall.utils.PressUtils; -import com.iformall.utils.RedisLock; -import com.iformall.utils.Utility; +import com.iformall.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -642,17 +639,27 @@ public class WxOrderServiceImpl implements WxOrderService { private WxCouponOrder createCouponOrder(WxOrder order, WxCUser user, WxCoupon coupon) { Date curr = new Date(); Date valid_date = null; + int limit_days = Constant.WX_LIMIT_DAYS; if (coupon.getValidType().equals(EnumValidStatus.VALID_RANGE.getCode()) || coupon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) { valid_date = coupon.getValidEndDate(); + if (coupon.getSalePrice() > 0) { + // 有价券核销有效期不能大于分账过期时间 + Date limit_date = DateUtils.getTimeAfterDays(limit_days, curr); + if (valid_date.after(limit_date)) { + valid_date = limit_date; + } + } } else { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(curr); - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - calendar.add(Calendar.DAY_OF_MONTH, 1 + coupon.getValidDays()); - valid_date = calendar.getTime(); + if (coupon.getSalePrice() > 0) { + // 有价券核销有效期不能大于分账过期时间 + if (coupon.getValidDays() < Constant.WX_LIMIT_DAYS) { + limit_days = coupon.getValidDays(); + } + } else { + limit_days = coupon.getValidDays(); + } + valid_date = DateUtils.getTimeAfterDays(limit_days, curr); } boolean isCard = false; // 检查是否是储值卡 diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 3447c5646..f04c6be2b 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -8,6 +8,8 @@ public class Constant { public static final int SYS_MENU_MAX = 2000; // 系统菜单最大值 + public static final int WX_LIMIT_DAYS = 30; // 微信分账限制30天 + // 1小时过期, public final static int H_EXPIRE = 3600000; diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index ea224abba..114f02929 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1250,4 +1250,14 @@ public class DateUtils { LocalDate startLocalDate = LocalDate.of(startYear,startMonth,startDay); return startLocalDate.until(endLocalDate, ChronoUnit.DAYS); } + + /* + public static void main(String[] args) throws Exception { + SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + Date ll; + ll = dd.parse("2019-07-27 11:00:00"); + Date next = DateUtils.getTimeAfterDays(30, ll); + System.out.println(next); + } + */ }