diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java
index 2fbfcfb..c08fed1 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java
@@ -11,10 +11,19 @@ public class OrderVO extends Order{
// 支付
@ApiModelProperty("支付单号")
private String payNo;
+ @ApiModelProperty("已支付金额")
+ private BigDecimal payedAmount;
@ApiModelProperty("支付已退款金额")
private BigDecimal payRefunded;
@ApiModelProperty("支付退款中金额")
private BigDecimal payRefunding;
+
+ // 用户
+ @ApiModelProperty("用户名称")
+ private String userName;
+ @ApiModelProperty("用户手机号")
+ private String userPhone;
+
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderRefundDTO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderRefundDTO.java
index 04c23cd..c9e62fa 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderRefundDTO.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderRefundDTO.java
@@ -22,7 +22,7 @@ public class OrderRefundDTO implements LogBizParam {
private BigDecimal amount;
@ApiModelProperty("退款次数")
- @NotNull(message = "退款次数")
+ @NotNull(message = "退款次数不能为空")
@Min(value = 0, message = "退款次数不允许小于0")
private Integer number;
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml
index 952b483..548eab0 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml
@@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -33,14 +34,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bo.pay_amount,
bo.mark,
bo.status,
+ bo.refund_num,
bo.create_time,
bo.suit_id,
bo.suit_num,
bo.suit_amount,
bo.cancel_remark,
bo.pay_expire_time,
- bp.refunded,
- bp.refunding
+ bp.refunded as pay_refunded,
+ bp.refunding as pay_refunding,
+ bp.no as pay_no,
+ bp.amount as payed_amount,
+ su.nick_name as user_name,
+ su.user_name as user_phone
from
@@ -52,20 +58,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- and order_no = #{query.orderNo}
- and id = #{query.id}
- and store_id = #{query.storeId}
- and store_name like concat('%', #{query.storeName}, '%')
- and user_id = #{query.userId}
- and pay_id = #{query.payId}
- and pay_amount = #{query.payAmount}
- and mark = #{query.mark}
- and status = #{query.status}
- and suit_id = #{query.suitId}
- and suit_num = #{query.suitNum}
- and suit_amount = #{query.suitAmount}
- and cancel_remark = #{query.cancelRemark}
- and pay_expire_time = #{query.payExpireTime} ${@com.ruoyi.framework.util.DataScopeUtil@create(query.scope)
+ and bo.order_no = #{query.orderNo}
+ and bo.id = #{query.id}
+ and bo.store_id = #{query.storeId}
+ and bo.store_name like concat('%', #{query.storeName}, '%')
+ and bo.user_id = #{query.userId}
+ and bo.pay_id = #{query.payId}
+ and bp.no like concat('%', #{query.payNo}, '%')
+ and bo.pay_amount = #{query.payAmount}
+ and bo.mark = #{query.mark}
+ and bo.status = #{query.status}
+ and bo.suit_id = #{query.suitId}
+ and bo.suit_num = #{query.suitNum}
+ and bo.suit_amount = #{query.suitAmount}
+ and bo.cancel_remark = #{query.cancelRemark}
+ and bo.pay_expire_time = #{query.payExpireTime} ${@com.ruoyi.framework.util.DataScopeUtil@create(query.scope)
.userSetAlias("bs.user_id")
.build()
}
@@ -99,6 +106,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+ update bst_order
+ set refund_num = refund_num + #{number}
+ where pay_id = #{id} and suit_num >= refund_num + #{number}
+
insert into bst_order
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java
index 80f4a09..26b14e6 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java
@@ -9,6 +9,7 @@ import java.util.concurrent.TimeUnit;
import com.github.pagehelper.PageHelper;
import com.ruoyi.bst.changeRecord.domain.ChangeRecord;
+import com.ruoyi.bst.changeRecord.domain.enums.ChangeRecordBstType;
import com.ruoyi.bst.changeRecord.service.ChangeRecordService;
import com.ruoyi.bst.lightingNum.domain.LightingNum;
import com.ruoyi.bst.lightingNum.domain.LightingNumQuery;
@@ -279,6 +280,11 @@ public class OrderServiceImpl implements OrderService
return this.refund(order, dto.getAmount(), dto.getNumber(),dto.getReason(), dto.getUserId(), dto.getUserName());
}
+ @Override
+ public int addRefundNum(Long id, Integer number) {
+ return orderMapper.addRefundNum(id,number);
+ }
+
/**
* 退款
@@ -293,15 +299,15 @@ public class OrderServiceImpl implements OrderService
private int refund(OrderVO order, BigDecimal amount,Integer number, String reason, Long userId, String userName) {
ServiceUtil.assertion(order == null, "参数错误,order不允许为空");
ServiceUtil.assertion(!OrderStatus.canRefund().contains(order.getStatus()), "ID为%s的订单当前状态不允许退款", order.getId());
- ServiceUtil.assertion(amount == null || amount.compareTo(BigDecimal.ZERO) <= 0, "参数错误,退款金额不允许为空且必须大于0");
- ServiceUtil.assertion(number == null || number <= 0, "参数错误,退款次数不允许为空且必须大于0");
+ ServiceUtil.assertion(amount == null || amount.compareTo(BigDecimal.ZERO) < 0, "参数错误,退款金额不允许为空且");
+ ServiceUtil.assertion(number == null || number < 0, "参数错误,退款次数不允许为空且不允许小于0");
BigDecimal canRefundAmount = OrderUtil.calcCanRefundAmount(order);
ServiceUtil.assertion(canRefundAmount.compareTo(amount) < 0, "ID为%s的订单可退款金额不足,当前可退款金额为%s元", order.getId(), canRefundAmount);
// 退款原因
String refundReason = null;
- refundReason = String.format("%s:订单%s退款%s元 %s次", userName, order.getOrderNo(), amount ,number);
+ refundReason = String.format("%s:订单%s退款", userName, order.getOrderNo());
if (StringUtils.isNotBlank(reason)) {
refundReason += ":" + reason;
}
@@ -322,7 +328,7 @@ public class OrderServiceImpl implements OrderService
lightingNumService.reduceLightingNumByQuery(data,query);
// 生成次数变化记录表
ChangeRecord changeRecord = new ChangeRecord();
- changeRecord.setBstType(PayBstType.ORDER.getType());
+ changeRecord.setBstType(ChangeRecordBstType.REFUND.getCode());
changeRecord.setBstId(order.getId());
changeRecord.setUserId(order.getUserId());
changeRecord.setStoreId(order.getStoreId());
@@ -340,7 +346,7 @@ public class OrderServiceImpl implements OrderService
dto.setNumber(number);
dto.setUserId(userId);
dto.setUserName(userName);
- return payService.refund(dto);
+ return payService.refund(dto);
});
return result == null ? 0 : 1;