退款问题
This commit is contained in:
@@ -1174,7 +1174,7 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
|
||||
else if ("distribution".equals(payment.getPayType())) {
|
||||
distributionUserService.open(payment.getSourceId(), payment.getAmount(), payment.getShopId(), payment.getId());
|
||||
}else if("point".equals(payment.getPayType())){
|
||||
goodPayService.payCallBack(payment.getSourceId());
|
||||
goodPayService.payCallBack(payment.getSourceId(), payment.getId());
|
||||
}
|
||||
}
|
||||
paymentService.updateById(payment);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.czg.service.order.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
@@ -848,22 +849,22 @@ public class PayServiceImpl implements PayService {
|
||||
Long refundId = initOrderPayment(new OrderPayment(shopId, sourceId, "refund", refPayOrderNo, null, refundAmount, payment.getId()));
|
||||
CzgResult<CzgRefundResp> refund = refund(shopId, new CzgRefundReq(refPayOrderNo, refundReason, refundAmount.multiply(MONEY_RATE).longValue(),
|
||||
payment.getOrderNo(), ""));
|
||||
OrderPayment uOrderPayment = new OrderPayment();
|
||||
uOrderPayment.setTradeNumber(refund.getData().getRefundOrderId());
|
||||
uOrderPayment.setRespJson(JSONObject.toJSONString(refund.getData()));
|
||||
if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) {
|
||||
paymentService.updateChain()
|
||||
.eq(OrderPayment::getId, refundId)
|
||||
.set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId())
|
||||
.set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData()))
|
||||
.set(OrderPayment::getPayStatus, "fail")
|
||||
.update();
|
||||
uOrderPayment.setPayStatus("fail");
|
||||
// paymentService.updateChain()
|
||||
// .eq(OrderPayment::getId, refundId)
|
||||
// .set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId())
|
||||
// .set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData()))
|
||||
// .set(OrderPayment::getPayStatus, "fail")
|
||||
// .update();
|
||||
} 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()))
|
||||
.set(OrderPayment::getPayStatus, "success")
|
||||
.update();
|
||||
uOrderPayment.setPayStatus("success");
|
||||
uOrderPayment.setPayTime(LocalDateTimeUtil.parse(refund.getData().getRefundTime(), "yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
paymentService.update(uOrderPayment, QueryWrapper.create().eq(OrderPayment::getId, refundId));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -874,22 +875,16 @@ public class PayServiceImpl implements PayService {
|
||||
Long refundId = refundPayment.getId();
|
||||
CzgResult<CzgRefundResp> refund = refund(payment.getShopId(), new CzgRefundReq(refPayOrderNo, "退款补偿", refundPayment.getAmount().multiply(MONEY_RATE).longValue(),
|
||||
payment.getOrderNo(), ""));
|
||||
OrderPayment uOrderPayment = new OrderPayment();
|
||||
uOrderPayment.setTradeNumber(refund.getData().getRefundOrderId());
|
||||
uOrderPayment.setRespJson(JSONObject.toJSONString(refund.getData()));
|
||||
if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) {
|
||||
paymentService.updateChain()
|
||||
.eq(OrderPayment::getId, refundId)
|
||||
.set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId())
|
||||
.set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData()))
|
||||
.set(OrderPayment::getPayStatus, "fail")
|
||||
.update();
|
||||
uOrderPayment.setPayStatus("fail");
|
||||
} 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()))
|
||||
.set(OrderPayment::getPayStatus, "success")
|
||||
.update();
|
||||
uOrderPayment.setPayStatus("success");
|
||||
uOrderPayment.setPayTime(LocalDateTimeUtil.parse(refund.getData().getRefundTime(), "yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
paymentService.update(uOrderPayment, QueryWrapper.create().eq(OrderPayment::getId, refundId));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.czg.service.order.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.czg.account.entity.ShopUser;
|
||||
import com.czg.account.service.ShopUserService;
|
||||
@@ -138,7 +139,8 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
|
||||
//退钱
|
||||
if (record.getExtraPaymentAmount() != null && record.getExtraPaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
||||
String refPayOrderNo = "REP" + IdUtil.getSnowflakeNextId();
|
||||
payService.unifyRefund(shopId, record.getId(), record.getPayOrderId(), refPayOrderNo, param.getReason(), record.getExtraPaymentAmount());
|
||||
payService.unifyRefund(shopId, record.getId(), record.getPayOrderId(), refPayOrderNo,
|
||||
StrUtil.isBlankIfStr(param.getReason()) ? "积分商品退款" : param.getReason(), record.getExtraPaymentAmount());
|
||||
}
|
||||
MkPointsGoodsRecord upRecord = new MkPointsGoodsRecord();
|
||||
upRecord.setId(record.getId());
|
||||
@@ -150,11 +152,14 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void payCallBack(Long recordId) {
|
||||
public void payCallBack(Long recordId, Long payOrderId) {
|
||||
MkPointsGoodsRecord record = goodsRecordService.getById(recordId);
|
||||
if (record == null) {
|
||||
log.error("积分兑换商品发放失败,记录不存在");
|
||||
return;
|
||||
}
|
||||
record.setPayOrderId(payOrderId);
|
||||
record.setPayTime(LocalDateTime.now());
|
||||
exchangeAfter(record, null);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user