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); + } + */ }