保存汇付支付退款回调记录

This commit is contained in:
2023-05-31 16:05:18 +08:00
parent 52884983f5
commit 18670c07e5
10 changed files with 121 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
package com.jsowell.pile.domain;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -19,6 +20,7 @@ public class AdapayRefundRecord extends BaseEntity {
/**
* 主键id
*/
@JsonIgnore
private Integer id;
/**

View File

@@ -18,4 +18,6 @@ public interface AdapayCallbackRecordMapper {
int updateByPrimaryKeySelective(AdapayCallbackRecord record);
int updateByPrimaryKey(AdapayCallbackRecord record);
AdapayCallbackRecord selectByPaymentId(String paymentId);
}

View File

@@ -1,9 +1,14 @@
package com.jsowell.pile.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.jsowell.pile.domain.AdapayCallbackRecord;
public interface AdapayCallbackRecordService {
void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord);
void saveAdapayCallbackRecord(String data) throws JsonProcessingException;
AdapayCallbackRecord selectByOrderCode(String orderCode);
AdapayCallbackRecord selectByPaymentId(String paymentId);
}

View File

@@ -1,5 +1,6 @@
package com.jsowell.pile.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.jsowell.pile.domain.AdapayRefundRecord;
import java.util.List;
@@ -58,4 +59,6 @@ public interface IAdapayRefundRecordService {
* @return 结果
*/
public int deleteAdapayRefundRecordById(Integer id);
void saveAdapayRefundRecord(String data) throws JsonProcessingException;
}

View File

@@ -1,5 +1,10 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.util.StringUtils;
@@ -10,6 +15,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@Slf4j
@Service
public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordService {
@@ -25,6 +32,28 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
adapayCallbackRecordMapper.insert(callbackRecord);
}
@Override
public void saveAdapayCallbackRecord(String data) throws JsonProcessingException {
JSONObject jsonObject = JSON.parseObject(data);
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
AdapayCallbackRecord adapayCallbackRecord = mapper.readValue(jsonObject.toJSONString(), AdapayCallbackRecord.class);
adapayCallbackRecord.setExpend(jsonObject.getString("expend"));
adapayCallbackRecord.setPaymentId(jsonObject.getString("id"));
JSONObject descJson = JSON.parseObject(adapayCallbackRecord.getDescription());
String type = descJson.getString("type");
adapayCallbackRecord.setPayScenario(type);
String memberId = descJson.getString("memberId");
adapayCallbackRecord.setMemberId(memberId);
String orderCode = descJson.getString("orderCode");
adapayCallbackRecord.setOrderCode(orderCode);
BigDecimal amount = adapayCallbackRecord.getPayAmt();
// 保存到数据库
this.saveAdapayCallbackRecord(adapayCallbackRecord);
}
/**
* 根据订单号查询支付回调信息
* @param orderCode
@@ -52,4 +81,9 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
// log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
return record;
}
@Override
public AdapayCallbackRecord selectByPaymentId(String paymentId) {
return adapayCallbackRecordMapper.selectByPaymentId(paymentId);
}
}

View File

@@ -1,8 +1,16 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.jsowell.common.util.DateUtils;
import com.jsowell.pile.domain.AdapayCallbackRecord;
import com.jsowell.pile.domain.AdapayRefundRecord;
import com.jsowell.pile.mapper.AdapayRefundRecordMapper;
import com.jsowell.pile.service.AdapayCallbackRecordService;
import com.jsowell.pile.service.IAdapayRefundRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -20,6 +28,8 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
@Autowired
private AdapayRefundRecordMapper adapayRefundRecordMapper;
@Autowired
private AdapayCallbackRecordService adapayCallbackRecordService;
/**
* 查询【请填写功能名称】
*
@@ -86,4 +96,23 @@ public class AdapayRefundRecordServiceImpl implements IAdapayRefundRecordService
public int deleteAdapayRefundRecordById(Integer id) {
return adapayRefundRecordMapper.deleteAdapayRefundRecordById(id);
}
@Override
public void saveAdapayRefundRecord(String data) throws JsonProcessingException {
JSONObject jsonObject = JSON.parseObject(data);
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
AdapayRefundRecord adapayRefundRecord = mapper.readValue(jsonObject.toJSONString(), AdapayRefundRecord.class);
adapayRefundRecord.setRefundId(jsonObject.getString("id"));
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(adapayRefundRecord.getPaymentId());
if (adapayCallbackRecord != null) {
adapayRefundRecord.setMemberId(adapayCallbackRecord.getMemberId());
adapayRefundRecord.setOrderCode(adapayCallbackRecord.getOrderCode());
}
// 保存到数据库
this.insertAdapayRefundRecord(adapayRefundRecord);
}
}