update 订单逻辑改造工厂模式

This commit is contained in:
2023-09-01 17:29:59 +08:00
parent c2be91227b
commit 45af011278
4 changed files with 139 additions and 2 deletions

View File

@@ -979,6 +979,9 @@ public class OrderService {
} else if (AdapayEventEnum.refund_succeeded.getValue().equals(type)) {
// 退款成功
refundSucceeded(data);
} else if (AdapayEventEnum.refund_failed.getValue().equals(type)) {
// 退款失败
refundFailed(data);
} else if (AdapayEventEnum.corp_member_failed.getValue().equals(type)) {
// 开户失败 删除
corpMemberFailed(data);
@@ -1121,13 +1124,47 @@ public class OrderService {
* 汇付退款成功
*/
private void refundSucceeded(String data) {
log.info("退款成功 data:{}", JSON.toJSONString(data));
// 保存退款回调记录
adapayRefundRecordService.saveAdapayRefundRecord(data);
JSONObject jsonObject = JSON.parseObject(data);
JSONObject reason = jsonObject.getJSONObject("reason");
if (ScenarioEnum.BALANCE.getValue().equals(reason.getString("scenarioType"))) {
// 这笔支付订单原来是充值余额的,退款成功了,需要扣掉会员的本金金额
UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO();
String memberId = reason.getString("memberId");
dto.setMemberId(memberId);
dto.setUpdatePrincipalBalance(new BigDecimal(jsonObject.getString("refund_amt"))); // 更新会员本金金额,单位元
dto.setType(MemberWalletEnum.TYPE_OUT.getValue());
dto.setSubType(MemberWalletEnum.SUBTYPE_USER_REFUND.getValue());
memberBasicInfoService.updateMemberBalance(dto);
// 收到回调,删除缓存
String redisKey = CacheConstants.MEMBER_BALANCE_REFUNDS_ARE_IN_PROGRESS + memberId;
redisCache.deleteObject(redisKey);
}
}
/**
* 退款失败
* @param data
*/
private void refundFailed(String data) {
log.info("退款失败 data:{}", JSON.toJSONString(data));
JSONObject jsonObject = JSON.parseObject(data);
JSONObject reason = jsonObject.getJSONObject("reason");
if (ScenarioEnum.BALANCE.getValue().equals(reason.getString("scenarioType"))) {
String memberId = reason.getString("memberId");
// 收到回调,删除缓存
String redisKey = CacheConstants.MEMBER_BALANCE_REFUNDS_ARE_IN_PROGRESS + memberId;
redisCache.deleteObject(redisKey);
}
}
/**
* 对公账户创建失败
* @param data
*/
private void corpMemberFailed(String data) {
// 删除表中的记录
@@ -1147,7 +1184,6 @@ public class OrderService {
/**
* 对公账户创建成功
* @param data
*/
private void corpMemberSucceeded(String data) {
JSONObject jsonObject = JSON.parseObject(data);