ghy-all/ghy-admin/src/main/java/com/ghy/callback/PayReverseCallbackService.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;
}
}