84 lines
2.9 KiB
Java
84 lines
2.9 KiB
Java
package com.ghy.callback;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
|
import com.ghy.common.adapay.model.Event;
|
|
import com.ghy.common.adapay.model.PayReverseCallback;
|
|
import com.ghy.order.service.OrderDetailService;
|
|
import com.ghy.order.service.OrderMasterService;
|
|
import com.ghy.payment.domain.ReverseRecord;
|
|
import com.ghy.payment.mapper.ReverseRecordMapper;
|
|
import com.ghy.payment.service.CallBackService;
|
|
import com.ghy.payment.service.FinancialChangeRecordService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
/**
|
|
* 撤销支付回调
|
|
*
|
|
* @author HH 2022/5/31
|
|
*/
|
|
@Slf4j
|
|
@Service("payReverseCallbackService")
|
|
public class PayReverseCallbackService implements CallBackService {
|
|
|
|
private OrderMasterService orderMasterService;
|
|
private OrderDetailService orderDetailService;
|
|
private ReverseRecordMapper reverseRecordMapper;
|
|
private FinancialChangeRecordService financialChangeRecordService;
|
|
|
|
@Override
|
|
public void onCallback(Event event) {
|
|
log.debug("撤销支付 callback: {}", event);
|
|
PayReverseCallback callback = JSON.parseObject(event.getData(), PayReverseCallback.class);
|
|
String reverseId = callback.getId();
|
|
if (AdapayStatusEnum.succeeded.code.equals(callback.getStatus())) {
|
|
String orderNo = callback.getOrderNo();
|
|
String type = orderNo.substring(0, 3);
|
|
switch (type) {
|
|
case "ROM":
|
|
orderMasterService.refundSucceeded(reverseId);
|
|
break;
|
|
case "ROD":
|
|
orderDetailService.refundSucceeded(reverseId);
|
|
break;
|
|
case "RCG":
|
|
financialChangeRecordService.refundSucceeded(reverseId);
|
|
break;
|
|
case "RAS": // TODO
|
|
break;
|
|
default:
|
|
throw new IllegalArgumentException(String.format("未知的退款类型[%s]", type));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onResponse(JSONObject response) {
|
|
reverseRecordMapper.insert(JSONObject.toJavaObject(response, ReverseRecord.class));
|
|
}
|
|
|
|
@Autowired
|
|
public void setOrderMasterService(OrderMasterService orderMasterService) {
|
|
this.orderMasterService = orderMasterService;
|
|
}
|
|
|
|
@Autowired
|
|
public void setOrderDetailService(OrderDetailService orderDetailService) {
|
|
this.orderDetailService = orderDetailService;
|
|
}
|
|
|
|
@Autowired
|
|
public void setFinancialChangeRecordService(FinancialChangeRecordService financialChangeRecordService) {
|
|
this.financialChangeRecordService = financialChangeRecordService;
|
|
}
|
|
|
|
@Autowired
|
|
public void setReverseRecordMapper(ReverseRecordMapper reverseRecordMapper) {
|
|
this.reverseRecordMapper = reverseRecordMapper;
|
|
}
|
|
}
|