mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 订单逻辑改造工厂模式
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user