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