Browse Source

订单退款申请

master
张彭杰 1 year ago
parent
commit
0f05f1789c
19 changed files with 490 additions and 5 deletions
  1. 40
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/ora/constant/OrderRefundApplicationStatus.java
  2. 34
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/ora/constant/RefundOrderTypeEnum.java
  3. 52
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/ora/entity/OrderRefundApplication.java
  4. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java
  5. 20
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ora/user/OrderRefundApplicationUserCommandController.java
  6. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java
  7. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/response/UserGetMarriageBountyOrderPreRefundInfoVo.java
  8. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/OrderRefundApplicationUserQueryController.java
  9. 28
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/request/UserPageMarriageBountyOrderRefundApplicationQueryParams.java
  10. 46
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/ora/user/response/UserPageMarriageBountyOrderRefundApplicationVo.java
  11. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java
  12. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java
  13. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/repository/OrderRefundApplicationRepository.java
  14. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/ora/OrderRefundApplicationDao.java
  15. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/OrderRefundApplicationRepositoryImpl.java
  16. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java
  17. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/ora/OrderRefundApplicationQueryService.java
  18. 35
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/ora/impl/OrderRefundApplicationQueryServiceImpl.java
  19. 35
      dating-agency-mall-server/src/main/resources/mapper/ora/OrderRefundApplicationMapper.xml

40
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/ora/constant/OrderRefundApplicationStatus.java

@ -0,0 +1,40 @@
package com.qniao.dam.domian.aggregate.ora.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum OrderRefundApplicationStatus {
UNAUDITED(1, "未审核"),
APPROVED(2, "已通过"),
REJECTED(3, "已拒绝");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
OrderRefundApplicationStatus(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static OrderRefundApplicationStatus get(Integer v) {
for (OrderRefundApplicationStatus e : OrderRefundApplicationStatus.values()) {
if (e.getValue().equals(v)) {
return e;
}
}
return null;
}
}

34
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/ora/constant/RefundOrderTypeEnum.java

@ -0,0 +1,34 @@
package com.qniao.dam.domian.aggregate.ora.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum RefundOrderTypeEnum {
MARRIAGE_BOUNTY(1, "悬赏招亲");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
RefundOrderTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static RefundOrderTypeEnum get(Object code) {
for (RefundOrderTypeEnum e : RefundOrderTypeEnum.values()) {
if (e.getValue().equals(code)) {
return e;
}
}
return null;
}
}

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

@ -0,0 +1,52 @@
package com.qniao.dam.domain.aggregate.ora.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.qniao.domain.Entity;
import java.math.BigDecimal;
/**
* 订单退款申请
*
* @date 2024/08/03
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_order_refund_application")
public class OrderRefundApplication extends Entity<OrderRefundApplication> {
@ApiModelProperty("订单标识")
private Long orderId;
@ApiModelProperty("退款订单类型")
private RefundOrderTypeEnum refundOrderType;
@ApiModelProperty("退款金额")
private BigDecimal refundAmount;
@ApiModelProperty("订单金额")
private BigDecimal orderAmount;
@ApiModelProperty("审核状态")
private OrderRefundApplicationStatus status;
public static OrderRefundApplication build(Long orderId,
RefundOrderTypeEnum refundOrderType,
BigDecimal refundAmount,
BigDecimal orderAmount) {
OrderRefundApplication orderRefundApplication = new OrderRefundApplication();
orderRefundApplication.setOrderId(orderId);
orderRefundApplication.setRefundOrderType(refundOrderType);
orderRefundApplication.setRefundAmount(refundAmount);
orderRefundApplication.setOrderAmount(orderAmount);
return orderRefundApplication;
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/marriagebounty/user/MarriageBountyOrderUserCommandController.java

@ -1,7 +1,7 @@
package com.qniao.dam.api.command.marriagebounty.user;
import com.qniao.dam.api.command.marriagebounty.user.request.RefundMarriageBountyOrderDto;
import com.qniao.dam.application.service.marriagebounty.MarriageBountyOrderApplicationService;
import com.qniao.dam.application.service.ora.OrderRefundApplicationApplicationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
@ -13,15 +13,14 @@ import javax.annotation.Resource;
@RequestMapping("user")
@Api(tags = "悬赏招亲订单")
public class MarriageBountyOrderUserCommandController {
@Resource
private MarriageBountyOrderApplicationService marriageBountyOrderApplicationService;
private OrderRefundApplicationApplicationService orderRefundApplicationApplicationService;
@ApiOperation("用户发起悬赏招亲退款")
@PostMapping("/refund/marriage-bounty-order")
public void refundMarriageBountyOrder(@RequestBody @Validated RefundMarriageBountyOrderDto dto,
@RequestParam Long userId) {
marriageBountyOrderApplicationService.refund(dto.getMarriageBountyOrderId());
orderRefundApplicationApplicationService.refundMarriageBountyOrder(dto.getMarriageBountyOrderId());
}
}

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

@ -0,0 +1,20 @@
package com.qniao.dam.api.command.ora.user;
import com.qniao.dam.api.command.ora.user.request.*;
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;
import javax.validation.Valid;
@Api(tags = "订单退款申请")
@RestController
@RequestMapping("user")
public class OrderRefundApplicationUserCommandController {
@Resource
private OrderRefundApplicationApplicationService orderRefundApplicationApplicationService;
}

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

@ -6,6 +6,7 @@ import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBount
import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBountyOrderProductInfoVo;
import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBountyOrderPreRefundInfoVo;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
@ -20,6 +21,8 @@ public class MarriageBountyOrderUserQueryController {
@Resource
private MarriageBountyOrderQueryService marriageBountyOrderQueryService;
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@GetMapping("get/marriage-bounty-order/product-info")
@ApiOperation("用户获取悬赏招亲订单信息")
@ -32,7 +35,12 @@ public class MarriageBountyOrderUserQueryController {
@ApiOperation("用户获取悬赏招亲订单预退款信息")
public UserGetMarriageBountyOrderPreRefundInfoVo getMarriageBountyOrderPreRefundInfo(@RequestParam("marriageBountyOrderId") Long marriageBountyOrderId,
@RequestParam("userId") Long userId) {
return marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId);
UserGetMarriageBountyOrderPreRefundInfoVo refundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(marriageBountyOrderId);
//补充退款申请如果发生退款申请则不能再次发起
if (orderRefundApplicationQueryService.hasApplied(marriageBountyOrderId)) {
refundInfoVo.setRefundable(false);
}
return refundInfoVo;
}
@GetMapping("get/marriage-bounty-order/detail")

3
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/response/UserGetMarriageBountyOrderPreRefundInfoVo.java

@ -14,6 +14,9 @@ public class UserGetMarriageBountyOrderPreRefundInfoVo {
@JsonSerialize(using = ToStringSerializer.class)
private Long marriageBountyOrderId;
@ApiModelProperty("奖励金额")
private BigDecimal rewardAmount;
@ApiModelProperty("可退款见面费用")
private BigDecimal refundableMeetingFee = BigDecimal.ZERO;

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

@ -0,0 +1,31 @@
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.query.ora.OrderRefundApplicationQueryService;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "订单退款申请")
@RestController
@RequestMapping("user")
public class OrderRefundApplicationUserQueryController {
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@GetMapping("page/marriage-bounty-order/refund-application")
@ApiOperation("用户查询订单退款申请分页")
public QnPage<UserPageMarriageBountyOrderRefundApplicationVo> userPageMarriageBountyOrderRefundApplication(PageUtil pageUtil,
@Validated UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams) {
return PageUtil.convert(orderRefundApplicationQueryService.pageMarriageBountyOrder(queryParams, pageUtil), UserPageMarriageBountyOrderRefundApplicationVo.class);
}
}

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

@ -0,0 +1,28 @@
package com.qniao.dam.api.query.ora.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class UserPageMarriageBountyOrderRefundApplicationQueryParams {
@ApiModelProperty("审核状态")
private Integer status;
@ApiModelProperty("客户名称")
private String miName;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("申请开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyTimeFrom;
@ApiModelProperty("申请结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyTimeTo;
}

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

@ -0,0 +1,46 @@
package com.qniao.dam.api.query.ora.user.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class UserPageMarriageBountyOrderRefundApplicationVo {
@ApiModelProperty("唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("订单标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long orderId;
@ApiModelProperty("客户名称")
private String miName;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("退款订单类型")
private RefundOrderTypeEnum refundOrderType;
@ApiModelProperty("退款金额")
private BigDecimal refundAmount;
@ApiModelProperty("订单金额")
private BigDecimal orderAmount;
@ApiModelProperty("审核状态")
private OrderRefundApplicationStatus status;
@ApiModelProperty("申请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyTime;
}

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

@ -0,0 +1,41 @@
package com.qniao.dam.application.service.ora;
import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBountyOrderPreRefundInfoVo;
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.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import com.qniao.framework.exception.BizException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class OrderRefundApplicationApplicationService {
@Resource
private MarriageBountyOrderQueryService marriageBountyOrderQueryService;
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@Resource
private OrderRefundApplicationAggregate orderRefundApplicationAggregate;
public void refundMarriageBountyOrder(Long order) {
UserGetMarriageBountyOrderPreRefundInfoVo preRefundInfoVo = marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(order);
//补充退款申请如果发生退款申请则不能再次发起
if (orderRefundApplicationQueryService.hasApplied(order)) {
preRefundInfoVo.setRefundable(false);
}
if (!preRefundInfoVo.getRefundable()) {
throw new BizException("不能发起退款");
}
OrderRefundApplication application = OrderRefundApplication.build(order, RefundOrderTypeEnum.MARRIAGE_BOUNTY,
preRefundInfoVo.getRewardAmount(), preRefundInfoVo.getRefundableMeetingFee().add(preRefundInfoVo.getRefundableResultGift()));
application.setStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplicationAggregate.create(application);
}
}

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

@ -0,0 +1,24 @@
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 订单退款申请
*
* @date 2024/08/03
*/
@Service
public class OrderRefundApplicationAggregate {
@Resource
private OrderRefundApplicationRepository repository;
public void create(OrderRefundApplication entity) {
repository.save(entity);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/repository/OrderRefundApplicationRepository.java

@ -0,0 +1,12 @@
package com.qniao.dam.domain.aggregate.ora.repository;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.domain.Repository;
/**
* 订单退款申请
*
* @date 2024/08/03
*/
public interface OrderRefundApplicationRepository extends Repository<OrderRefundApplication, Long> {
}

19
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/ora/OrderRefundApplicationDao.java

@ -0,0 +1,19 @@
package com.qniao.dam.infrastructure.persistent.dao.ora;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qniao.dam.api.query.ora.user.request.UserPageMarriageBountyOrderRefundApplicationQueryParams;
import com.qniao.dam.api.query.ora.user.response.UserPageMarriageBountyOrderRefundApplicationVo;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import org.apache.ibatis.annotations.Param;
/**
* 订单退款申请
*
* @date 2024/08/03
*/
public interface OrderRefundApplicationDao extends BaseMapper<OrderRefundApplication> {
IPage<UserPageMarriageBountyOrderRefundApplicationVo> pageMarriageBountyOrder(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams);
}

41
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/OrderRefundApplicationRepositoryImpl.java

@ -0,0 +1,41 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domain.aggregate.ora.repository.OrderRefundApplicationRepository;
import com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 订单退款申请
*
* @date 2024/08/03
*/
@Service
public class OrderRefundApplicationRepositoryImpl implements OrderRefundApplicationRepository {
@Resource
private OrderRefundApplicationDao dao;
@Override
public OrderRefundApplication load(Long id) {
return dao.selectById(id);
}
@Override
public Long save(OrderRefundApplication entity) {
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) {
dao.insert(entity);
} else {
dao.updateById(entity);
}
return entity.getId();
}
@Override
public void delete(Long id) {
dao.deleteById(id);
}
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java

@ -15,6 +15,7 @@ import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderDao
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderRelDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderRewardDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import com.qniao.dam.query.product.ProductQueryService;
import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service;
@ -35,6 +36,8 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ
private MarriageBountyOrderRelDao marriageBountyOrderRelDao;
@Resource
private MarriageBountyOrderRewardDao marriageBountyOrderRewardDao;
@Resource
private OrderRefundApplicationQueryService orderRefundApplicationQueryService;
@Override
public MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status,
@ -59,6 +62,7 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId);
if (Objects.nonNull(marriageBountyOrder) && MarriageBountyOrderPaymentStatusEnum.PAID.equals(marriageBountyOrder.getPaymentStatus())) {
refundInfoVo.setMarriageBountyOrderId(marriageBountyOrder.getId());
refundInfoVo.setRewardAmount(marriageBountyOrder.getRewardAmount());
BigDecimal refundableMeetingFee = BigDecimal.ZERO;
BigDecimal refundableResultGift = BigDecimal.ZERO;
int refundableMeetingQuantity = 0;

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

@ -0,0 +1,13 @@
package com.qniao.dam.query.ora;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.ora.user.request.UserPageMarriageBountyOrderRefundApplicationQueryParams;
import com.qniao.dam.api.query.ora.user.response.UserPageMarriageBountyOrderRefundApplicationVo;
import com.qniao.framework.utils.PageUtil;
public interface OrderRefundApplicationQueryService {
boolean hasApplied(Long orderId);
IPage<UserPageMarriageBountyOrderRefundApplicationVo> pageMarriageBountyOrder(UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams, PageUtil pageUtil);
}

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

@ -0,0 +1,35 @@
package com.qniao.dam.query.ora.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.ora.user.request.UserPageMarriageBountyOrderRefundApplicationQueryParams;
import com.qniao.dam.api.query.ora.user.response.UserPageMarriageBountyOrderRefundApplicationVo;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao;
import com.qniao.dam.query.ora.OrderRefundApplicationQueryService;
import com.qniao.framework.utils.PageUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
@Service
public class OrderRefundApplicationQueryServiceImpl implements OrderRefundApplicationQueryService {
@Resource
private OrderRefundApplicationDao orderRefundApplicationDao;
@Override
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;
}
@Override
public IPage<UserPageMarriageBountyOrderRefundApplicationVo> pageMarriageBountyOrder(UserPageMarriageBountyOrderRefundApplicationQueryParams queryParams,
PageUtil pageUtil) {
return orderRefundApplicationDao.pageMarriageBountyOrder(pageUtil.toPageWithoutOrders(), queryParams);
}
}

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

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao">
<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
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
where dora.is_delete=0
<if test="queryParams.status != null">
and dora.`status` = #{queryParams.status}
</if>
<if test="queryParams.miName != null and queryParams.miName != '' ">
AND queryParams.miName LIKE CONCAT('%', TRIM(#{queryParams.miName}), '%')
</if>
<if test="queryParams.phone != null and queryParams.phone != '' ">
AND daa.tid LIKE CONCAT('%', TRIM(#{queryParams.phone}), '%')
</if>
<if test="queryParams.applyTimeFrom != null and queryParams.applyTimeTo != null">
and dora.create_time BETWEEN #{queryParams.applyTimeFrom} and #{queryParams.applyTimeTo}
</if>
</select>
</mapper>
Loading…
Cancel
Save