Browse Source

悬赏招亲

master
张彭杰 1 year ago
parent
commit
3a3a4977fc
8 changed files with 27 additions and 18 deletions
  1. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java
  2. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java
  3. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java
  4. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java
  5. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java
  6. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java
  7. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java
  8. 20
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java

9
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") @PostMapping("/refund/marriage-bounty-order")
public void refundMarriageBountyOrder(@RequestBody @Validated RefundMarriageBountyOrderDto dto, public void refundMarriageBountyOrder(@RequestBody @Validated RefundMarriageBountyOrderDto dto,
@RequestParam Long userId) { @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);
} }
} }

2
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java

@ -35,7 +35,7 @@ public class MarriageBountyOrderUserQueryController {
@ApiOperation("用户获取悬赏招亲订单预退款信息") @ApiOperation("用户获取悬赏招亲订单预退款信息")
public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(@RequestParam("marriageBountyOrderId") Long marriageBountyOrderId, public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(@RequestParam("marriageBountyOrderId") Long marriageBountyOrderId,
@RequestParam("userId") Long userId) { @RequestParam("userId") Long userId) {
UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId);
UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId,false);
//补充退款申请如果发生退款申请则不能再次发起 //补充退款申请如果发生退款申请则不能再次发起
if (orderRefundApplicationQueryService.hasApplied(marriageBountyOrderId)) { if (orderRefundApplicationQueryService.hasApplied(marriageBountyOrderId)) {
refundInfoVo.setRefundable(false); refundInfoVo.setRefundable(false);

2
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); rewardApplicationService.acquireMatchmakerConfirmMatchReward(confirmMatchRewardDto);
} }
//其余未使用的费用退回 //其余未使用的费用退回
marriageBountyOrderApplicationService.refund(event.getId());
marriageBountyOrderApplicationService.refund(event.getId(),true);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("悬赏招亲订单确认匹配事件处理异常", e); log.error("悬赏招亲订单确认匹配事件处理异常", e);

2
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()); OrderRefundApplication orderRefundApplication = orderRefundApplicationDao.selectById(event.getId());
if (orderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.APPROVED)) { if (orderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.APPROVED)) {
if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.MARRIAGE_BOUNTY)) { if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.MARRIAGE_BOUNTY)) {
marriageBountyOrderApplicationService.refund(orderRefundApplication.getOrderId());
marriageBountyOrderApplicationService.refund(orderRefundApplication.getOrderId(),true);
} }
} }
} catch (Exception e) { } catch (Exception e) {

4
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()) { if (!preRefundInfoVo.getRefundable()) {
throw new BizException("不能发起退款"); throw new BizException("不能发起退款");
} else { } else {

4
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; 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)) { if (orderRefundApplicationQueryService.hasApplied(order)) {
preRefundInfoVo.setRefundable(false); preRefundInfoVo.setRefundable(false);

2
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 { public interface MarriageBountyOrderQueryService {
MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status, MarriageBountyOrderPaymentStatusEnum paymentStatus); MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status, MarriageBountyOrderPaymentStatusEnum paymentStatus);
UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId);
UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId,boolean management);
MarriageBountyOrder queryByOrderRel(Long orderRelId); MarriageBountyOrder queryByOrderRel(Long orderRelId);

20
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 @Override
public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId) {
public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(Long marriageBountyOrderId, boolean management) {
UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = new UserGetMarriageBountyOrderPreRefundInfoVo(); UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = new UserGetMarriageBountyOrderPreRefundInfoVo();
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); MarriageBountyOrder marriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId);
if (Objects.nonNull(marriageBountyOrder) && MarriageBountyOrderPaymentStatusEnum.PAID.equals(marriageBountyOrder.getPaymentStatus())) { if (Objects.nonNull(marriageBountyOrder) && MarriageBountyOrderPaymentStatusEnum.PAID.equals(marriageBountyOrder.getPaymentStatus())) {
@ -81,14 +81,16 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ
refundInfoVo.setRefundableResultGift(refundableResultGift); refundInfoVo.setRefundableResultGift(refundableResultGift);
refundInfoVo.setRefundableAmount(refundableMeetingFee.multiply(BigDecimal.valueOf(refundableMeetingQuantity)).add(refundableResultGift)); refundInfoVo.setRefundableAmount(refundableMeetingFee.multiply(BigDecimal.valueOf(refundableMeetingQuantity)).add(refundableResultGift));
refundInfoVo.setRefundable(refundInfoVo.getRefundableAmount().compareTo(BigDecimal.ZERO) > 0); 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; return refundInfoVo;

Loading…
Cancel
Save