diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java index cb54581..d89a324 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java @@ -20,7 +20,14 @@ public class MarriageBountyOrderUserCommandController { @PostMapping("/refund/marriage-bounty-order") public void refundMarriageBountyOrder(@RequestBody @Validated RefundMarriageBountyOrderDto dto, @RequestParam Long userId) { - orderRefundApplicationApplicationService.refundMarriageBountyOrder(dto.getMarriageBountyOrderId()); + orderRefundApplicationApplicationService.refundMarriageBountyOrder(dto.getMarriageBountyOrderId(), false); + } + + @ApiOperation("管理员发起悬赏招亲退款") + @PostMapping("/refund/marriage-bounty-order/by-management") + public void refundMarriageBountyOrderByManagement(@RequestBody @Validated RefundMarriageBountyOrderDto dto, + @RequestParam Long userId) { + orderRefundApplicationApplicationService.refundMarriageBountyOrder(dto.getMarriageBountyOrderId(), true); } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java index 3364370..70066b9 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java @@ -35,7 +35,7 @@ public class MarriageBountyOrderUserQueryController { @ApiOperation("用户获取悬赏招亲订单预退款信息") public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(@RequestParam("marriageBountyOrderId") Long marriageBountyOrderId, @RequestParam("userId") Long userId) { - UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId); + UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId,false); //补充退款申请,如果发生退款申请则不能再次发起 if (orderRefundApplicationQueryService.hasApplied(marriageBountyOrderId)) { refundInfoVo.setRefundable(false); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java index 3d8c001..ac9b4d4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -102,7 +102,7 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { rewardApplicationService.acquireMatchmakerConfirmMatchReward(confirmMatchRewardDto); } //其余未使用的费用退回 - marriageBountyOrderApplicationService.refund(event.getId()); + marriageBountyOrderApplicationService.refund(event.getId(),true); } } catch (Exception e) { log.error("悬赏招亲订单确认匹配事件处理异常", e); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java index d390bb0..85ada82 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java @@ -28,7 +28,7 @@ public class OrderRefundApplicationEventHandler extends BaseApplicationService { OrderRefundApplication orderRefundApplication = orderRefundApplicationDao.selectById(event.getId()); if (orderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.APPROVED)) { if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.MARRIAGE_BOUNTY)) { - marriageBountyOrderApplicationService.refund(orderRefundApplication.getOrderId()); + marriageBountyOrderApplicationService.refund(orderRefundApplication.getOrderId(),true); } } } catch (Exception e) { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java index cd55595..93f4911 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java @@ -128,8 +128,8 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic } } - public void refund(Long marriageBountyOrderId) { - UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId); + public void refund(Long marriageBountyOrderId,boolean management) { + UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId,management); if (!preRefundInfoVo.getRefundable()) { throw new BizException("不能发起退款"); } else { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java index c77a0aa..5ff4093 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java @@ -29,8 +29,8 @@ public class OrderRefundApplicationApplicationService extends BaseApplicationSer private OrderRefundApplicationDao orderRefundApplicationDao; - public void refundMarriageBountyOrder(Long order) { - UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(order); + public void refundMarriageBountyOrder(Long order, boolean management) { + UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(order, management); //补充退款申请,如果发生退款申请则不能再次发起 if (orderRefundApplicationQueryService.hasApplied(order)) { preRefundInfoVo.setRefundable(false); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java index 0e15d62..af9acc3 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java @@ -10,7 +10,7 @@ import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrder public interface MarriageBountyOrderQueryService { MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status, MarriageBountyOrderPaymentStatusEnum paymentStatus); - UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId); + UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId,boolean management); MarriageBountyOrder queryByOrderRel(Long orderRelId); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java index 86eb4a4..656ca61 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java @@ -57,7 +57,7 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ } @Override - public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId) { + public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId, boolean management) { UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = new UserGetMarriageBountyOrderPreRefundInfoVo(); MarriageBountyOrder marriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); if (Objects.nonNull(marriageBountyOrder) && MarriageBountyOrderPaymentStatusEnum.PAID.equals(marriageBountyOrder.getPaymentStatus())) { @@ -81,14 +81,16 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ refundInfoVo.setRefundableResultGift(refundableResultGift); refundInfoVo.setRefundableAmount(refundableMeetingFee.multiply(BigDecimal.valueOf(refundableMeetingQuantity)).add(refundableResultGift)); refundInfoVo.setRefundable(refundInfoVo.getRefundableAmount().compareTo(BigDecimal.ZERO) > 0); - //服务退款有效期校验 - RewardTypeEnum rewardType = marriageBountyOrder.getValidityPeriodType(); - RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(rewardType); - if (Objects.nonNull(rewardConfig) && LocalDateTime.now().isBefore(rewardConfig.getRefundableTime(marriageBountyOrder.getCreateTime()))) { - refundInfoVo.setRefundable(false); - //补充因有效期原因无法撤销原因 悬赏-包牵手(6月)正在服务中,无法撤销,如有疑问或特殊情况请联系客服处理; - refundInfoVo.setNonRefundableReason(marriageBountyOrder.getType().getDesc() + "(" + rewardConfig.getValue() + "月)" - + "正在服务中,无法撤销,如有疑问或特殊情况请联系客服处理"); + //服务退款有效期校验,管理员退款不需要校验时间 + if (!management) { + RewardTypeEnum rewardType = marriageBountyOrder.getValidityPeriodType(); + RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(rewardType); + if (Objects.nonNull(rewardConfig) && LocalDateTime.now().isBefore(rewardConfig.getRefundableTime(marriageBountyOrder.getCreateTime()))) { + refundInfoVo.setRefundable(false); + //补充因有效期原因无法撤销原因 悬赏-包牵手(6月)正在服务中,无法撤销,如有疑问或特殊情况请联系客服处理; + refundInfoVo.setNonRefundableReason(marriageBountyOrder.getType().getDesc() + "(" + rewardConfig.getValue() + "月)" + + "正在服务中,无法撤销,如有疑问或特殊情况请联系客服处理"); + } } } return refundInfoVo;