Commit 30dbc494 by box

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

parents 26d93f2c d672ee24
......@@ -126,7 +126,7 @@ public class RefundService {
}
// 如果券没有冲正,判断核销时间,默认使用订单的创建时间
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("三方券核销时间过长,无法申请退款");
}
}
......
......@@ -113,12 +113,22 @@ public class ThirdCouponOrderHandle {
* @param channelTypeEnum
* @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)) {
// 美团券不能超过 60天
// 商家核销的美团券不能超过 60天,自助核销的美团券不能超过 24小时
if (DateUtil.addDays(redeemDate, 60).compareTo(new Date()) < 0) {
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)) {
// 抖音券不能超过 1 小时(3600秒)
if (redeemDate.getTime() + 3600_000 < System.currentTimeMillis()) {
......@@ -192,7 +202,7 @@ public class ThirdCouponOrderHandle {
if (coupon.isCanceled()) {
return;
}
if (ThirdCouponOrderHandle.isCancelTimeout(coupon.getRedeemTime(), coupon.getEcologyChannelType())) {
if (ThirdCouponOrderHandle.isCancelTimeout(coupon, null)) {
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