Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -102,7 +102,7 @@ public interface PayService {
|
|||||||
/**
|
/**
|
||||||
* 订单退款
|
* 订单退款
|
||||||
*/
|
*/
|
||||||
CzgResult<Object> refundOrder(Long shopId, Long orderId, Long payOrderId, String refPayOrderNo, String refundReason, BigDecimal refundAmount);
|
void refundOrder(Long shopId, Long orderId, Long payOrderId, String refPayOrderNo, String refundReason, BigDecimal refundAmount);
|
||||||
|
|
||||||
|
|
||||||
CzgResult<Map<String, Object>> queryPayOrder(@NonNull Long orderId);
|
CzgResult<Map<String, Object>> queryPayOrder(@NonNull Long orderId);
|
||||||
|
|||||||
@@ -620,9 +620,14 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
public void refundCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson) {
|
public void refundCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson) {
|
||||||
CzgRefundNotifyDTO czgCallBackDto = JSONObject.parseObject(resultJson.toString(), CzgRefundNotifyDTO.class);
|
CzgRefundNotifyDTO czgCallBackDto = JSONObject.parseObject(resultJson.toString(), CzgRefundNotifyDTO.class);
|
||||||
OrderPayment payment = paymentService.queryChain().eq(OrderPayment::getOrderNo, orderNo).one();
|
OrderPayment payment = paymentService.queryChain().eq(OrderPayment::getOrderNo, orderNo).one();
|
||||||
|
if (StrUtil.isNotBlank(payment.getTradeNumber())) {
|
||||||
|
log.info("订单处理过,payment id:{}", payment.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
paymentService.updateChain()
|
paymentService.updateChain()
|
||||||
.set(OrderPayment::getTradeNumber, czgCallBackDto.getRefundOrderId())
|
.set(OrderPayment::getTradeNumber, czgCallBackDto.getRefundOrderId())
|
||||||
.set(OrderPayment::getRespJson, resultJson.toString())
|
.set(OrderPayment::getRespJson, resultJson.toString())
|
||||||
|
.set(OrderPayment::getPayTime, czgCallBackDto.getRefundTime())
|
||||||
.where(OrderPayment::getId).eq(payment.getId())
|
.where(OrderPayment::getId).eq(payment.getId())
|
||||||
.update();
|
.update();
|
||||||
if (!"SUCCESS".equals(czgCallBackDto.getState())) {
|
if (!"SUCCESS".equals(czgCallBackDto.getState())) {
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ public class PayServiceImpl implements PayService {
|
|||||||
AssertUtil.isBlank(payParam.getPayType(), "支付方式不能为空");
|
AssertUtil.isBlank(payParam.getPayType(), "支付方式不能为空");
|
||||||
String payOrderNo = payParam.getPlatformType() + IdUtil.getSnowflakeNextId();
|
String payOrderNo = payParam.getPlatformType() + IdUtil.getSnowflakeNextId();
|
||||||
initOrderPayment(new OrderPayment(payParam.getShopId(), shopUser.getId(), isFree ? "free" : "memberIn", payOrderNo,
|
initOrderPayment(new OrderPayment(payParam.getShopId(), shopUser.getId(), isFree ? "free" : "memberIn", payOrderNo,
|
||||||
"", payParam.getAmount(),isFree ? payParam.getOrderId() : payParam.getActivateId()));
|
"", payParam.getAmount(), isFree ? payParam.getOrderId() : payParam.getActivateId()));
|
||||||
return jsPay(payParam.getShopId(), payParam.getPayType(), new CzgJsPayReq(payOrderNo, payParam.getAmount().multiply(MONEY_RATE).longValue(),
|
return jsPay(payParam.getShopId(), payParam.getPayType(), new CzgJsPayReq(payOrderNo, payParam.getAmount().multiply(MONEY_RATE).longValue(),
|
||||||
"会员充值", payParam.getOpenId(), clintIp, payParam.getReturnUrl(), payParam.getBuyerRemark(), ""));
|
"会员充值", payParam.getOpenId(), clintIp, payParam.getReturnUrl(), payParam.getBuyerRemark(), ""));
|
||||||
}
|
}
|
||||||
@@ -369,7 +369,7 @@ public class PayServiceImpl implements PayService {
|
|||||||
AssertUtil.isBlank(payParam.getPayType(), "支付方式不能为空");
|
AssertUtil.isBlank(payParam.getPayType(), "支付方式不能为空");
|
||||||
String payOrderNo = payParam.getPlatformType() + IdUtil.getSnowflakeNextId();
|
String payOrderNo = payParam.getPlatformType() + IdUtil.getSnowflakeNextId();
|
||||||
initOrderPayment(new OrderPayment(payParam.getShopId(), shopUser.getId(), isFree ? "free" : "memberIn", payOrderNo,
|
initOrderPayment(new OrderPayment(payParam.getShopId(), shopUser.getId(), isFree ? "free" : "memberIn", payOrderNo,
|
||||||
"", payParam.getAmount(),isFree ? payParam.getOrderId() : payParam.getActivateId()));
|
"", payParam.getAmount(), isFree ? payParam.getOrderId() : payParam.getActivateId()));
|
||||||
return ltPay(payParam.getShopId(), payParam.getPayType(), new CzgLtPayReq(payOrderNo, payParam.getAmount().multiply(MONEY_RATE).longValue(),
|
return ltPay(payParam.getShopId(), payParam.getPayType(), new CzgLtPayReq(payOrderNo, payParam.getAmount().multiply(MONEY_RATE).longValue(),
|
||||||
payParam.getPayType(), "会员充值", payParam.getOpenId(), clintIp, payParam.getReturnUrl(), payParam.getBuyerRemark(), ""));
|
payParam.getPayType(), "会员充值", payParam.getOpenId(), clintIp, payParam.getReturnUrl(), payParam.getBuyerRemark(), ""));
|
||||||
}
|
}
|
||||||
@@ -456,10 +456,17 @@ public class PayServiceImpl implements PayService {
|
|||||||
String refPayOrderNo = "REFVIP" + IdUtil.getSnowflakeNextId();
|
String refPayOrderNo = "REFVIP" + IdUtil.getSnowflakeNextId();
|
||||||
refPaymentId = initOrderPayment(new OrderPayment(refPayParam.getShopId(), shopUser.getId(),
|
refPaymentId = initOrderPayment(new OrderPayment(refPayParam.getShopId(), shopUser.getId(),
|
||||||
"memberRefund", refPayOrderNo, null, refPayParam.getRefAmount()));
|
"memberRefund", refPayOrderNo, null, refPayParam.getRefAmount()));
|
||||||
CzgResult<CzgRefundResp> res = refund(refPayParam.getShopId(), new CzgRefundReq(refPayOrderNo, refPayParam.getRemark(),
|
CzgResult<CzgRefundResp> refund = refund(refPayParam.getShopId(), new CzgRefundReq(refPayOrderNo, refPayParam.getRemark(),
|
||||||
refPayParam.getRefAmount().multiply(MONEY_RATE).longValue(), payment.getOrderNo(), ""));
|
refPayParam.getRefAmount().multiply(MONEY_RATE).longValue(), payment.getOrderNo(), ""));
|
||||||
if (res.getCode() != 200 || res.getData() == null) {
|
if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) {
|
||||||
return CzgResult.failure(res.getMsg());
|
throw new CzgException(refund.getMsg());
|
||||||
|
} else {
|
||||||
|
paymentService.updateChain()
|
||||||
|
.eq(OrderPayment::getId, refPaymentId)
|
||||||
|
.set(OrderPayment::getPayTime, refund.getData().getRefundTime())
|
||||||
|
.set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId())
|
||||||
|
.set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData()))
|
||||||
|
.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
|
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
|
||||||
@@ -526,7 +533,9 @@ public class PayServiceImpl implements PayService {
|
|||||||
orderDetail.setRefundRemark(orderDetail.getRefundRemark() + param.getRefundReason());
|
orderDetail.setRefundRemark(orderDetail.getRefundRemark() + param.getRefundReason());
|
||||||
orderDetail.setReturnAmount(refundDetail.getReturnAmount());
|
orderDetail.setReturnAmount(refundDetail.getReturnAmount());
|
||||||
orderDetailService.updateById(orderDetail);
|
orderDetailService.updateById(orderDetail);
|
||||||
returnProMap.put(Convert.toStr(orderDetail.getProductId()), refundDetail.getNum());
|
if (orderDetail.getProductId() != null && orderDetail.getProductId() > 0) {
|
||||||
|
returnProMap.put(Convert.toStr(orderDetail.getProductId()), refundDetail.getNum());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
long count = orderDetailService.queryChain()
|
long count = orderDetailService.queryChain()
|
||||||
.eq(OrderDetail::getOrderId, orderInfo.getId())
|
.eq(OrderDetail::getOrderId, orderInfo.getId())
|
||||||
@@ -596,17 +605,23 @@ public class PayServiceImpl implements PayService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public CzgResult<Object> refundOrder(@NonNull Long shopId, @NonNull Long orderId, @NonNull Long payOrderId, @NonNull String refPayOrderNo,
|
public void refundOrder(@NonNull Long shopId, @NonNull Long orderId, @NonNull Long payOrderId, @NonNull String refPayOrderNo,
|
||||||
@NonNull String refundReason, @NonNull BigDecimal refundAmount) {
|
@NonNull String refundReason, @NonNull BigDecimal refundAmount) {
|
||||||
OrderPayment payment = paymentService.getById(payOrderId);
|
OrderPayment payment = paymentService.getById(payOrderId);
|
||||||
AssertUtil.isNull(payment, "退款失败支付记录不存在");
|
AssertUtil.isNull(payment, "退款失败支付记录不存在");
|
||||||
initOrderPayment(new OrderPayment(shopId, orderId, "refund", refPayOrderNo, null, refundAmount));
|
Long refundId = initOrderPayment(new OrderPayment(shopId, orderId, "refund", refPayOrderNo, null, refundAmount));
|
||||||
CzgResult<CzgRefundResp> refund = refund(shopId, new CzgRefundReq(refPayOrderNo, refundReason, refundAmount.multiply(MONEY_RATE).longValue(),
|
CzgResult<CzgRefundResp> refund = refund(shopId, new CzgRefundReq(refPayOrderNo, refundReason, refundAmount.multiply(MONEY_RATE).longValue(),
|
||||||
payment.getOrderNo(), ""));
|
payment.getOrderNo(), ""));
|
||||||
if (refund.getCode() != 200 || refund.getData() == null) {
|
if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) {
|
||||||
return CzgResult.failure(refund.getMsg());
|
throw new CzgException(refund.getMsg());
|
||||||
|
} else {
|
||||||
|
paymentService.updateChain()
|
||||||
|
.eq(OrderPayment::getId, refundId)
|
||||||
|
.set(OrderPayment::getPayTime, refund.getData().getRefundTime())
|
||||||
|
.set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId())
|
||||||
|
.set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData()))
|
||||||
|
.update();
|
||||||
}
|
}
|
||||||
return CzgResult.success();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user