Browse Source

订单退款申请

master
张彭杰 1 year ago
parent
commit
dc89768eec
6 changed files with 115 additions and 2 deletions
  1. 20
      dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/ora/event/OrderRefundApplicationAuditedEvent.java
  2. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/OrderRefundApplicationUserCommandController.java
  3. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/request/UserAuditOrderRefundApplicationDto.java
  4. 39
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java
  5. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java
  6. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java

20
dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/ora/event/OrderRefundApplicationAuditedEvent.java

@ -0,0 +1,20 @@
package com.qniao.dam.domian.aggregate.ora.event;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.domain.BaseDomainEvent;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OrderRefundApplicationAuditedEvent extends BaseDomainEvent {
private Long id;
private OrderRefundApplicationStatus status;
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/OrderRefundApplicationUserCommandController.java

@ -1,7 +1,9 @@
package com.qniao.dam.api.command.ora.user;
import com.qniao.dam.api.command.ora.user.request.UserAuditOrderRefundApplicationDto;
import com.qniao.dam.application.service.ora.OrderRefundApplicationApplicationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -14,4 +16,10 @@ public class OrderRefundApplicationUserCommandController {
@Resource
private OrderRefundApplicationApplicationService orderRefundApplicationApplicationService;
@PostMapping("audit/order-refund-application")
@ApiOperation("订单退款申请审核")
public void userAuditSiteActivityParticipantQuitAudit(@RequestBody UserAuditOrderRefundApplicationDto dto,
@RequestParam("userId") Long userId) {
orderRefundApplicationApplicationService.audit(dto.trans2Domain());
}
}

26
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/request/UserAuditOrderRefundApplicationDto.java

@ -0,0 +1,26 @@
package com.qniao.dam.api.command.ora.user.request;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.domain.Trans2DomainAssembler;
import com.qniao.framework.utils.TypeConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserAuditOrderRefundApplicationDto implements Trans2DomainAssembler<OrderRefundApplication> {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")
private Long id;
@ApiModelProperty("审核状态")
private OrderRefundApplicationStatus status;
@Override
public OrderRefundApplication trans2Domain() {
return TypeConvertUtils.convert(this, OrderRefundApplication.class);
}
}

39
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java

@ -0,0 +1,39 @@
package com.qniao.dam.application.handler.ora;
import com.google.common.eventbus.Subscribe;
import com.qniao.dam.application.service.marriagebounty.MarriageBountyOrderApplicationService;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum;
import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationAuditedEvent;
import com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao;
import com.qniao.domain.BaseApplicationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
@Slf4j
public class OrderRefundApplicationEventHandler extends BaseApplicationService {
@Resource
private MarriageBountyOrderApplicationService marriageBountyOrderApplicationService;
@Resource
private OrderRefundApplicationDao orderRefundApplicationDao;
@Subscribe
public void handle(OrderRefundApplicationAuditedEvent event) {
try {
OrderRefundApplication orderRefundApplication = orderRefundApplicationDao.selectById(event.getId());
if (orderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.APPROVED)) {
if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.MARRIAGE_BOUNTY)) {
marriageBountyOrderApplicationService.refund(orderRefundApplication.getOrderId());
}
}
} catch (Exception e) {
log.error("订单退款申请审核处理异常:", e);
}
}
}

17
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java

@ -5,23 +5,28 @@ import com.qniao.dam.domain.aggregate.ora.OrderRefundApplicationAggregate;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import com.qniao.domain.BaseApplicationService;
import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.exception.BizException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
@Service
public class OrderRefundApplicationApplicationService {
public class OrderRefundApplicationApplicationService extends BaseApplicationService {
@Resource
private MarriageBountyOrderQueryService marriageBountyOrderQueryService;
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@Resource
private OrderRefundApplicationAggregate orderRefundApplicationAggregate;
@Resource
private OrderRefundApplicationDao orderRefundApplicationDao;
public void refundMarriageBountyOrder(Long order) {
@ -38,4 +43,12 @@ public class OrderRefundApplicationApplicationService {
application.setStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplicationAggregate.create(application);
}
public void audit(OrderRefundApplication orderRefundApplication) {
OrderRefundApplication existOrderRefundApplication = orderRefundApplicationDao.selectById(orderRefundApplication.getOrderId());
if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.UNAUDITED)) {
BaseDomainEvent event = orderRefundApplicationAggregate.audit(orderRefundApplication);
this.sendEvent(event);
}
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java

@ -2,6 +2,9 @@ package com.qniao.dam.domain.aggregate.ora;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domain.aggregate.ora.repository.OrderRefundApplicationRepository;
import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationAuditedEvent;
import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -21,4 +24,8 @@ public class OrderRefundApplicationAggregate {
repository.save(entity);
}
public BaseDomainEvent audit(OrderRefundApplication entity) {
repository.save(entity);
return TypeConvertUtils.convert(entity, OrderRefundApplicationAuditedEvent.class);
}
}
Loading…
Cancel
Save