主订单退款完成
This commit is contained in:
parent
24ed9cc666
commit
bd5dbb500d
|
|
@ -9,10 +9,7 @@ import com.ghy.common.core.domain.AjaxResult;
|
|||
import com.ghy.common.core.page.PageDomain;
|
||||
import com.ghy.common.core.page.TableDataInfo;
|
||||
import com.ghy.common.core.page.TableSupport;
|
||||
import com.ghy.common.enums.BusinessType;
|
||||
import com.ghy.common.enums.ImgType;
|
||||
import com.ghy.common.enums.PayStatus;
|
||||
import com.ghy.common.enums.RefundType;
|
||||
import com.ghy.common.enums.*;
|
||||
import com.ghy.common.utils.ExceptionUtil;
|
||||
import com.ghy.common.utils.StringUtils;
|
||||
import com.ghy.common.utils.poi.ExcelUtil;
|
||||
|
|
@ -857,11 +854,14 @@ public class OrderMasterController extends BaseController {
|
|||
Assert.isTrue(paid, "订单未支付");
|
||||
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
|
||||
|
||||
// 先改状态 后面出错就回滚
|
||||
orderMasterService.updatePayStatus(orderMasterId, PayStatus.REVERSING.getCode());
|
||||
// 改主订单的订单状态和支付状态
|
||||
orderMasterService.updateStatus(orderMasterId, OrderStatus.CANCEL.code());
|
||||
orderMasterService.updatePayStatus(orderMasterId, PayStatus.REFUND.getCode());
|
||||
// 改子订单的订单状态和支付状态
|
||||
OrderDetail odUpdate = new OrderDetail();
|
||||
odUpdate.setOrderMasterId(orderMasterId);
|
||||
odUpdate.setPayStatus(PayStatus.REVERSING.getCode());
|
||||
odUpdate.setPayStatus(PayStatus.REFUND.getCode());
|
||||
odUpdate.setOrderStatus(OrderStatus.CANCEL.code());
|
||||
orderDetailService.updateByOrderMasterId(odUpdate);
|
||||
|
||||
// 主订单金额=订单原价+加价
|
||||
|
|
@ -881,6 +881,10 @@ public class OrderMasterController extends BaseController {
|
|||
PayStatus.REFUNDING.getCode().equals(fd.getPayStatus()) ||
|
||||
PayStatus.REVERSING.getCode().equals(fd.getPayStatus())) {
|
||||
payMoney = payMoney.subtract(fd.getPayMoney());
|
||||
} else if (PayStatus.PAID.getCode().equals(fd.getPayStatus()) ||
|
||||
PayStatus.PAYED_ADD.getCode().equals(fd.getPayStatus())) {
|
||||
// 修改子单状态
|
||||
financialDetailService.updatePayStatus(fd.getId(), PayStatus.REVERSING.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -892,11 +896,14 @@ public class OrderMasterController extends BaseController {
|
|||
JSONObject response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt, RefundType.ROM);
|
||||
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status")) ||
|
||||
AdapayStatusEnum.pending.code.equals(response.getString("status"))) {
|
||||
// TODO 保存reverseId
|
||||
return AjaxResult.success();
|
||||
// 主订单退款 直接修改主财务单状态为退款中
|
||||
String reverseId = response.getString("id");
|
||||
financialMaster.setPayStatus(PayStatus.REVERSING.getCode());
|
||||
financialMaster.setReverseId(reverseId);
|
||||
financialMasterService.updateFinancialMaster(financialMaster);
|
||||
} else {
|
||||
// TODO 重试
|
||||
return AjaxResult.error(response.getString("error_msg"));
|
||||
logger.error("FM[{}]撤销支付失败: {}", financialMaster.getId(), response.toJSONString());
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -411,6 +411,6 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
|||
|
||||
@Override
|
||||
public void refundSucceeded(String reverseId) {
|
||||
// TODO
|
||||
financialMasterService.refundSucceeded(reverseId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,9 @@ public class FinancialMaster extends BaseEntity {
|
|||
@Excel(name = "Adapay的唯一支付ID", cellType = Excel.ColumnType.STRING)
|
||||
private String paymentId;
|
||||
|
||||
@Excel(name = "Adapay的撤销支付ID", cellType = Excel.ColumnType.STRING)
|
||||
private String reverseId;
|
||||
|
||||
private List<Long> ids;
|
||||
|
||||
private Integer type;
|
||||
|
|
|
|||
|
|
@ -77,4 +77,11 @@ public interface FinancialMasterMapper {
|
|||
FinancialMaster selectByPaymentId(String paymentId);
|
||||
|
||||
List<FinancialMaster> selectByOrderMasterIds(@Param(value = "orderMasterIds") Set<Long> orderMasterIds);
|
||||
|
||||
/**
|
||||
* 撤销支付成功
|
||||
*
|
||||
* @param reverseId 撤销支付ID
|
||||
*/
|
||||
void refundSucceeded(@Param("reverseId") String reverseId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,4 +98,6 @@ public interface FinancialMasterService {
|
|||
* @param paymentId 支付ID
|
||||
*/
|
||||
FinancialMaster selectByPaymentId(String paymentId);
|
||||
|
||||
void refundSucceeded(String reverseId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ package com.ghy.payment.service.impl;
|
|||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||
import com.ghy.common.core.text.Convert;
|
||||
import com.ghy.common.enums.PayStatus;
|
||||
import com.ghy.common.enums.RefundType;
|
||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||
import com.ghy.payment.mapper.FinancialChangeRecordMapper;
|
||||
import com.ghy.payment.service.AdapayService;
|
||||
import com.ghy.payment.service.FinancialChangeRecordService;
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
|
@ -23,6 +25,7 @@ import java.util.StringJoiner;
|
|||
/**
|
||||
* @author clunt
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class FinancialChangeRecordServiceImpl implements FinancialChangeRecordService {
|
||||
|
||||
|
|
@ -141,7 +144,10 @@ public class FinancialChangeRecordServiceImpl implements FinancialChangeRecordSe
|
|||
FinancialChangeRecord update = new FinancialChangeRecord();
|
||||
update.setId(fcr.getId());
|
||||
update.setReverseId(response.getString("id"));
|
||||
update.setPayStatus(PayStatus.REFUNDING.getCode());
|
||||
update(update);
|
||||
} else {
|
||||
log.error("改价单退款失败: {}", response.toJSONString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,11 @@ public class FinancialMasterServiceImpl implements FinancialMasterService {
|
|||
return financialMasterMapper.selectByPaymentId(paymentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refundSucceeded(String reverseId) {
|
||||
financialMasterMapper.refundSucceeded(reverseId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FinancialMaster> selectByOrderMasterIds(Set<Long> orderMasterIds) {
|
||||
if (CollectionUtils.isEmpty(orderMasterIds)) {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
<result property="payStatus" column="pay_status"/>
|
||||
<result property="payTime" column="pay_time"/>
|
||||
<result property="paymentId" column="payment_id"/>
|
||||
<result property="reverseId" column="reverse_id"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
|
|
@ -27,7 +28,7 @@
|
|||
|
||||
<sql id="selectFinancialMaster">
|
||||
SELECT id, dept_id, code, order_master_id, order_master_code, total_money, discount_money, pay_money, server_money,
|
||||
pay_type, pay_status, pay_time, payment_id, create_by, create_time, update_by, update_time, remark
|
||||
pay_type, pay_status, pay_time, payment_id, reverse_id, create_by, create_time, update_by, update_time, remark
|
||||
FROM financial_master
|
||||
</sql>
|
||||
|
||||
|
|
@ -102,6 +103,7 @@
|
|||
<if test="payTime != null">pay_time = #{payTime},</if>
|
||||
<if test="payMoney != null">pay_money = #{payMoney},</if>
|
||||
<if test="paymentId != null and paymentId != ''">payment_id = #{paymentId},</if>
|
||||
<if test="reverseId != null and reverseId != ''">reverse_id = #{reverseId},</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
update_time = SYSDATE()
|
||||
</set>
|
||||
|
|
@ -131,6 +133,13 @@
|
|||
WHERE code = #{orderMasterCode}
|
||||
</update>
|
||||
|
||||
<update id="refundSucceeded">
|
||||
UPDATE financial_master SET
|
||||
pay_status = 3 ,
|
||||
update_time = SYSDATE()
|
||||
WHERE reverse_id = #{reverseId}
|
||||
</update>
|
||||
|
||||
<insert id="insertFinancialMaster" parameterType="com.ghy.payment.domain.FinancialMaster" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO financial_master(
|
||||
<if test="deptId != null">dept_id,</if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue