Commit 0b374d9d by ping.wu

Merge branch 'feature/20231101_订单宝支付退款_wuping' of…

Merge branch 'feature/20231101_订单宝支付退款_wuping' of https://gitlab.freemud.com/order-group-application/order-group into develop
parents 4ff89491 2118bb59
......@@ -40,9 +40,10 @@ public class MultiRefundService {
/**
* 多种支付方式支付退款
*/
public PayRefundResponse multiRefund(String partnerId, String storeCode, String orderCode, BigDecimal refundAmount,List<OrderPayItemResp> orderPayItem){
public PayRefundResponse multiRefund(String partnerId, String storeCode, String orderCode, BigDecimal refundAmount,
List<OrderPayItemResp> orderPayItem, Integer orderClient){
//是否多种支付方式支付退款
if(!getMultiRefund(orderPayItem)){
if(!getMultiRefund(orderPayItem,orderClient)){
return null;
}
return multiRefund(partnerId, storeCode, orderCode, refundAmount);
......@@ -56,11 +57,16 @@ public class MultiRefundService {
* @param orderPayItems
* @return
*/
private Boolean getMultiRefund(List<OrderPayItemResp> orderPayItems){
private Boolean getMultiRefund(List<OrderPayItemResp> orderPayItems,Integer orderClient){
boolean isMultiRefund = false;
if(CollectionUtils.isEmpty(orderPayItems)){
return isMultiRefund;
}
//订单宝支付走混合支付接口,退款走混合支付退款
List<Integer> orderClients = Arrays.asList(38);
if(orderClients.contains(orderClient)){
return true;
}
List<Integer> multiPayChannelType = Arrays.asList(3,10,50,51,52);
for(OrderPayItemResp orderPayItemResp : orderPayItems){
//有储值卡支付,调混合支付退款
......
......@@ -94,7 +94,8 @@ public class PaymentHandle {
BigDecimal maxRefundAmount = openMemberCardCost != null ? new BigDecimal(orderBean.getAmount()).subtract(openMemberCardCost.getCostAmount()) : new BigDecimal(orderBean.getAmount());
BigDecimal refundAmount = getRefundAmount(orderBean.getCompanyId(), maxRefundAmount, orderBean.getOid());
//订单支付明细表新saas都会存数据,ka,pass商户需要兼容
PayRefundResponse multiRefundResponse = multiRefundService.multiRefund(orderBean.getCompanyId(), orderBean.getShopId(), orderBean.getOid(), refundAmount, orderBean.getOrderPayItem());
PayRefundResponse multiRefundResponse = multiRefundService.multiRefund(orderBean.getCompanyId(), orderBean.getShopId(),
orderBean.getOid(), refundAmount, orderBean.getOrderPayItem(),Integer.parseInt(orderBean.getOrderClient()));
if (multiRefundResponse != null) {
refundResponse = multiRefundResponse;
}else {
......@@ -156,7 +157,8 @@ public class PaymentHandle {
BigDecimal maxRefundAmount = openMemberCardCost != null ? order.getSettlementAmount().subtract(openMemberCardCost.getCostAmount()) : order.getSettlementAmount();
BigDecimal refundAmount = getRefundAmount(order.getPartnerId(), maxRefundAmount, order.getOrderCode());
PayRefundResponse multiRefundResponse = multiRefundService.multiRefund(order.getPartnerId(), order.getStoreId(), order.getOrderCode(), refundAmount, order.getOrderPayItemCreateReqList());
PayRefundResponse multiRefundResponse = multiRefundService.multiRefund(order.getPartnerId(), order.getStoreId(),
order.getOrderCode(), refundAmount, order.getOrderPayItemCreateReqList(),order.getOrderClient());
if (multiRefundResponse != null) {
// payment/application/refund
refundResponse = multiRefundResponse;
......
......@@ -243,17 +243,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
public BaseResponse<OrderManagerResponse> orderAgreeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
//取消配送单
deliveryHandle.cancelDelivery(orderBean, request);
PayRefundResponse refundResponse;
if (PayType.ONLINE_PAY.getCode().equals(orderBean.getPayType())) {
//支付退款
refundResponse = this.payRefundCommon(request, orderBean);
} else {
// 线下退款,直接默认为退款成功
refundResponse = new PayRefundResponse();
refundResponse.setRefundId(UUID.randomUUID().toString().replaceAll("-", ""));
refundResponse.setPayRefundStatus(PayRefundStatus.SUCCESS);
refundResponse.setMessage(PayRefundStatus.SUCCESS.getDesc());
}
// 支付退款 包括线上小程序付款的订单,订单宝其他支付方式收款(汇来米,收钱吧,现金,其他)老板通发起退款
PayRefundResponse refundResponse = this.payRefundCommon(request, orderBean);
// 退款异常
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.COMPATIBILITY_STATUS.getCode()) == 0) {
return ResponseUtil.error(refundResponse.getResult());
......@@ -282,8 +273,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
/**
* 拒单退款、同意退款、取消订单退款
* 小程序点餐订单退款,无单收银退款,订单宝扫码付、其他支付方式收款(汇来米,收钱吧,现金,其他)等有支付流水等退款
*/
private PayRefundResponse payRefundCommon(OrderManagerRequest request, OrderBeanV1 orderBean) {
if (orderBean.getAmount() == 0) {
// 0元订单
PayRefundResponse refundResponse = new PayRefundResponse();
refundResponse.setRefundId(UUID.randomUUID().toString().replaceAll("-", ""));
refundResponse.setPayRefundStatus(PayRefundStatus.SUCCESS);
refundResponse.setMessage(PayRefundStatus.SUCCESS.getDesc());
return refundResponse;
}
PayRefundResponse refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
// 同意退款退款失败记录到订单售后单
if (orderBean.getAfterSalesOrderResp() != null && Objects.equals(PayRefundStatus.FAIL.getCode(), refundResponse.getPayRefundStatus().getCode())) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment