Browse Source

订单退款申请

master
张彭杰 10 months ago
parent
commit
dacb1db1a8
10 changed files with 92 additions and 20 deletions
  1. 5
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/ora/entity/OrderRefundApplication.java
  2. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/OrderRefundApplicationUserCommandController.java
  3. 29
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/request/UserAuditOrderRefundApplicationByOperationDto.java
  4. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/OrderRefundApplicationUserQueryController.java
  5. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/request/UserPageMarriageBountyOrderRefundApplicationQueryParams.java
  6. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/response/UserPageMarriageBountyOrderRefundApplicationVo.java
  7. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java
  8. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java
  9. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/ora/impl/OrderRefundApplicationQueryServiceImpl.java
  10. 28
      dating-agency-mall-server/src/main/resources/mapper/ora/OrderRefundApplicationMapper.xml

5
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/ora/entity/OrderRefundApplication.java

@ -34,7 +34,10 @@ public class OrderRefundApplication extends Entity<OrderRefundApplication> {
@ApiModelProperty("订单金额")
private BigDecimal orderAmount;
@ApiModelProperty("审核状态")
@ApiModelProperty("运营审核状态")
private OrderRefundApplicationStatus operationStatus;
@ApiModelProperty("财务审核状态")
private OrderRefundApplicationStatus status;
public static OrderRefundApplication build(Long orderId,

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

@ -1,5 +1,6 @@
package com.qniao.dam.api.command.ora.user;
import com.qniao.dam.api.command.ora.user.request.UserAuditOrderRefundApplicationByOperationDto;
import com.qniao.dam.api.command.ora.user.request.UserAuditOrderRefundApplicationDto;
import com.qniao.dam.application.service.ora.OrderRefundApplicationApplicationService;
import io.swagger.annotations.Api;
@ -16,10 +17,17 @@ public class OrderRefundApplicationUserCommandController {
@Resource
private OrderRefundApplicationApplicationService orderRefundApplicationApplicationService;
@PostMapping("audit/order-refund-application/by/operation")
@ApiOperation("运营人员订单退款申请审核")
public void userAuditOrderRefundApplicationByOperation(@RequestBody UserAuditOrderRefundApplicationByOperationDto dto,
@RequestParam("userId") Long userId) {
orderRefundApplicationApplicationService.auditByOperation(dto.trans2Domain());
}
@PostMapping("audit/order-refund-application")
@ApiOperation("订单退款申请审核")
public void userAuditSiteActivityParticipantQuitAudit(@RequestBody UserAuditOrderRefundApplicationDto dto,
@RequestParam("userId") Long userId) {
public void userAuditOrderRefundApplication(@RequestBody UserAuditOrderRefundApplicationDto dto,
@RequestParam("userId") Long userId) {
orderRefundApplicationApplicationService.audit(dto.trans2Domain());
}
}

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

@ -0,0 +1,29 @@
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 UserAuditOrderRefundApplicationByOperationDto implements Trans2DomainAssembler<OrderRefundApplication> {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")
private Long id;
@ApiModelProperty("运营审核状态")
@NotNull(message = "运营审核状态不能为空")
private OrderRefundApplicationStatus operationStatus;
@Override
public OrderRefundApplication trans2Domain() {
return TypeConvertUtils.convert(this, OrderRefundApplication.class);
}
}

13
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/OrderRefundApplicationUserQueryController.java

@ -2,6 +2,7 @@ package com.qniao.dam.api.query.ora.user;
import com.qniao.dam.api.query.ora.user.request.UserPageMarriageBountyOrderRefundApplicationQueryParams;
import com.qniao.dam.api.query.ora.user.response.UserPageMarriageBountyOrderRefundApplicationVo;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
@ -22,10 +23,18 @@ public class OrderRefundApplicationUserQueryController {
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@GetMapping("page/marriage-bounty-order/refund-application/by/operation")
@ApiOperation("运营人员查询订单退款申请分页")
public QnPage<UserPageMarriageBountyOrderRefundApplicationVo> userPageMarriageBountyOrderRefundApplicationByOperation(PageUtil pageUtil,
UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams) {
return PageUtil.convert(orderRefundApplicationQueryService.pageMarriageBountyOrder(queryParams, pageUtil), UserPageMarriageBountyOrderRefundApplicationVo.class);
}
@GetMapping("page/marriage-bounty-order/refund-application")
@ApiOperation("用户查询订单退款申请分页")
@ApiOperation("财务查询订单退款申请分页")
public QnPage<UserPageMarriageBountyOrderRefundApplicationVo> userPageMarriageBountyOrderRefundApplication(PageUtil pageUtil,
@Validated UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams) {
UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams) {
queryParams.setOperationStatus(OrderRefundApplicationStatus.APPROVED.getValue());
return PageUtil.convert(orderRefundApplicationQueryService.pageMarriageBountyOrder(queryParams, pageUtil), UserPageMarriageBountyOrderRefundApplicationVo.class);
}
}

3
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/request/UserPageMarriageBountyOrderRefundApplicationQueryParams.java

@ -9,6 +9,9 @@ import java.time.LocalDateTime;
@Data
public class UserPageMarriageBountyOrderRefundApplicationQueryParams {
@ApiModelProperty("运营审核状态")
private Integer operationStatus;
@ApiModelProperty("审核状态")
private Integer status;

5
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/response/UserPageMarriageBountyOrderRefundApplicationVo.java

@ -37,7 +37,10 @@ public class UserPageMarriageBountyOrderRefundApplicationVo {
@ApiModelProperty("订单金额")
private BigDecimal orderAmount;
@ApiModelProperty("审核状态")
@ApiModelProperty("运营审核状态")
private OrderRefundApplicationStatus operationStatus;
@ApiModelProperty("财务审核状态")
private OrderRefundApplicationStatus status;
@ApiModelProperty("申请时间")

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

@ -41,15 +41,24 @@ public class OrderRefundApplicationApplicationService extends BaseApplicationSer
}
OrderRefundApplication application = OrderRefundApplication.build(order, RefundOrderTypeEnum.MARRIAGE_BOUNTY,
preRefundInfoVo.getRefundableMeetingFee().add(preRefundInfoVo.getRefundableResultGift()), preRefundInfoVo.getPaidMount());
application.setOperationStatus(OrderRefundApplicationStatus.UNAUDITED);
application.setStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplicationAggregate.create(application);
}
public void audit(OrderRefundApplication orderRefundApplication) {
OrderRefundApplication existOrderRefundApplication = orderRefundApplicationDao.selectById(orderRefundApplication.getId());
if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.UNAUDITED)) {
if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.UNAUDITED)
&& existOrderRefundApplication.getOperationStatus().equals(OrderRefundApplicationStatus.APPROVED)) {
BaseDomainEvent event = orderRefundApplicationAggregate.audit(orderRefundApplication);
this.sendEvent(event);
}
}
public void auditByOperation(OrderRefundApplication orderRefundApplication) {
OrderRefundApplication existOrderRefundApplication = orderRefundApplicationDao.selectById(orderRefundApplication.getId());
if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getOperationStatus().equals(OrderRefundApplicationStatus.UNAUDITED)) {
orderRefundApplicationAggregate.update(orderRefundApplication);
}
}
}

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

@ -28,4 +28,8 @@ public class OrderRefundApplicationAggregate {
repository.save(entity);
return TypeConvertUtils.convert(entity, OrderRefundApplicationAuditedEvent.class);
}
public void update(OrderRefundApplication entity) {
repository.save(entity);
}
}

2
dating-agency-mall-server/src/main/java/com/qniao/dam/query/ora/impl/OrderRefundApplicationQueryServiceImpl.java

@ -24,7 +24,7 @@ public class OrderRefundApplicationQueryServiceImpl implements OrderRefundApplic
public boolean hasApplied(Long orderId) {
return orderRefundApplicationDao.selectCount(new LambdaQueryWrapper<OrderRefundApplication>()
.eq(OrderRefundApplication::getOrderId, orderId)
.in(OrderRefundApplication::getStatus, Arrays.asList(OrderRefundApplicationStatus.UNAUDITED, OrderRefundApplicationStatus.APPROVED))) > 0;
.in(OrderRefundApplication::getOperationStatus, Arrays.asList(OrderRefundApplicationStatus.UNAUDITED, OrderRefundApplicationStatus.APPROVED))) > 0;
}
@Override

28
dating-agency-mall-server/src/main/resources/mapper/ora/OrderRefundApplicationMapper.xml

@ -5,20 +5,24 @@
<select id="pageMarriageBountyOrder"
resultType="com.qniao.dam.api.query.ora.user.response.UserPageMarriageBountyOrderRefundApplicationVo">
select
dora.id,
dora.order_id,
dmi.nick_name as miName,
daa.tid as phone,
dora.refund_order_type as refundOrderType,
dora.refund_amount,
dora.order_amount,
dora.`status`,
dora.create_time as applyTime
dora.id,
dora.order_id,
dmi.nick_name as miName,
daa.tid as phone,
dora.refund_order_type as refundOrderType,
dora.refund_amount,
dora.order_amount,
dora.`operation_status`,
dora.`status`,
dora.create_time as applyTime
from da_order_refund_application as dora
LEFT JOIN da_marriage_bounty_order as dmbo on dmbo.id=dora.order_id
LEFT JOIN da_marriage_information as dmi on dmi.id=dmbo.mi_id
LEFT JOIN da_account as daa on daa.is_delete=0 and daa.type=2 and daa.user_id=dmbo.user_id
LEFT JOIN da_marriage_bounty_order as dmbo on dmbo.id=dora.order_id
LEFT JOIN da_marriage_information as dmi on dmi.id=dmbo.mi_id
LEFT JOIN da_account as daa on daa.is_delete=0 and daa.type=2 and daa.user_id=dmbo.user_id
where dora.is_delete=0 and dora.refund_order_type=1
<if test="queryParams.operationStatus != null">
and dora.`operation_status` = #{queryParams.operationStatus}
</if>
<if test="queryParams.status != null">
and dora.`status` = #{queryParams.status}
</if>

Loading…
Cancel
Save