Commit 30dbc494 by box

Merge branch 'feature/box/三方券订单退款退券' into qa

parents 26d93f2c d672ee24
...@@ -126,7 +126,7 @@ public class RefundService { ...@@ -126,7 +126,7 @@ public class RefundService {
} }
// 如果券没有冲正,判断核销时间,默认使用订单的创建时间 // 如果券没有冲正,判断核销时间,默认使用订单的创建时间
if (!coupon.isCanceled()) { if (!coupon.isCanceled()) {
if (ThirdCouponOrderHandle.isCancelTimeout(new Date(Long.parseLong(order.getCreateTime())), coupon.getEcologyChannelType())) { if (ThirdCouponOrderHandle.isCancelTimeout(coupon, new Date(Long.parseLong(order.getCreateTime())))) {
throw new ServiceException("三方券核销时间过长,无法申请退款"); throw new ServiceException("三方券核销时间过长,无法申请退款");
} }
} }
......
...@@ -113,12 +113,22 @@ public class ThirdCouponOrderHandle { ...@@ -113,12 +113,22 @@ public class ThirdCouponOrderHandle {
* @param channelTypeEnum * @param channelTypeEnum
* @return * @return
*/ */
public static boolean isCancelTimeout(Date redeemDate, @Nullable EcologyChannelTypeEnum channelTypeEnum) { public static boolean isCancelTimeout(ThirdCouponOrderHandle.ThirdCouponDto couponDto, @Nullable Date redeemDate) {
EcologyChannelTypeEnum channelTypeEnum = couponDto.getEcologyChannelType();
if (redeemDate == null) {
redeemDate = couponDto.getRedeemTime();
}
if (EcologyChannelTypeEnum.MEITUAN.equals(channelTypeEnum)) { if (EcologyChannelTypeEnum.MEITUAN.equals(channelTypeEnum)) {
// 美团券不能超过 60天 // 商家核销的美团券不能超过 60天,自助核销的美团券不能超过 24小时
if (DateUtil.addDays(redeemDate, 60).compareTo(new Date()) < 0) { if (DateUtil.addDays(redeemDate, 60).compareTo(new Date()) < 0) {
return true; return true;
} }
// 长度超过 20位,认为是加密券号(自助核销的券号是加密的)
if (couponDto.getCouponCodes().stream().anyMatch(code -> code.length() > 20)) {
if (redeemDate.getTime() + 24 * 3600_000 < System.currentTimeMillis()) {
return true;
}
}
} else if (EcologyChannelTypeEnum.TIKTOK.equals(channelTypeEnum)) { } else if (EcologyChannelTypeEnum.TIKTOK.equals(channelTypeEnum)) {
// 抖音券不能超过 1 小时(3600秒) // 抖音券不能超过 1 小时(3600秒)
if (redeemDate.getTime() + 3600_000 < System.currentTimeMillis()) { if (redeemDate.getTime() + 3600_000 < System.currentTimeMillis()) {
...@@ -192,7 +202,7 @@ public class ThirdCouponOrderHandle { ...@@ -192,7 +202,7 @@ public class ThirdCouponOrderHandle {
if (coupon.isCanceled()) { if (coupon.isCanceled()) {
return; return;
} }
if (ThirdCouponOrderHandle.isCancelTimeout(coupon.getRedeemTime(), coupon.getEcologyChannelType())) { if (ThirdCouponOrderHandle.isCancelTimeout(coupon, null)) {
throw new RuntimeException("核销时间超过可冲正期限,撤销核销失败"); throw new RuntimeException("核销时间超过可冲正期限,撤销核销失败");
} }
// 美团、抖音平台三方券 // 美团、抖音平台三方券
......
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 to comment