This commit is contained in:
2023-07-28 17:04:52 +08:00
parent 9d2a251e8b
commit 4dca727883
4 changed files with 100 additions and 7 deletions

View File

@@ -25,6 +25,7 @@ import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.AcquirerEnum;
import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.adapay.AdapayStatusEnum;
import com.jsowell.common.enums.ykc.*;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.*;
@@ -35,6 +36,7 @@ import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
@@ -97,9 +99,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
@Value("${adapay.callback}")
private String ADAPAY_CALLBACK_URL;
@Value("${adapay.refundCallback}")
private String ADAPAY_REFUND_CALLBACK_URL;
@Autowired
private WxAppletRemoteService wxAppletRemoteService;
@@ -904,14 +903,36 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return;
}
// 清分账单信息
ClearingBillInfo clearingBillInfo = new ClearingBillInfo();
clearingBillInfo.setBillStatus("1");
String clearingBillCode = "CLE" + IdUtils.getOrderCode();
clearingBillInfo.setClearingBillCode(clearingBillCode);
clearingBillInfo.setClearingTime(DateUtils.getNowDate());
clearingBillInfo.setMerchantId(merchantId);
clearingBillInfo.setOrderSource("1");
List<ClearingBillDetail> billDetailList = Lists.newArrayList();
// 执行分账
orderBasicInfos.parallelStream().forEach(x -> {
try {
PaymentConfirmResponse paymentConfirmResponse = doPaymentConfirm(x, adapayMemberAccount);
if (paymentConfirmResponse != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(paymentConfirmResponse.getStatus())) {
JSONObject jsonObject = JSON.parseObject(paymentConfirmResponse.getDescription());
String orderCode = (String) jsonObject.get("orderCode");
billDetailList.add(ClearingBillDetail.builder().clearingBillCode(clearingBillCode).orderCode(orderCode).build());
}
} catch (Exception e) {
logger.error("订单交易确认失败:{}", x.getOrderCode(), e);
}
});
// 保存清分账单
ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO();
dto.setClearingBillInfo(clearingBillInfo);
dto.setBillDetailList(billDetailList);
transactionService.createClearingBill(dto);
}
}

View File

@@ -0,0 +1,24 @@
package com.jsowell.pile.transaction.dto;
import com.jsowell.pile.domain.ClearingBillDetail;
import com.jsowell.pile.domain.ClearingBillInfo;
import lombok.*;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ClearingBillTransactionDTO {
/**
* 清分账单信息
*/
private ClearingBillInfo clearingBillInfo;
/**
* 清分账单详情
*/
private List<ClearingBillDetail> billDetailList;
}

View File

@@ -10,11 +10,10 @@ import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
import com.jsowell.pile.mapper.PileConnectorInfoMapper;
import com.jsowell.pile.service.ClearingBillDetailService;
import com.jsowell.pile.service.ClearingBillInfoService;
import com.jsowell.pile.service.IOrderBasicInfoService;
import com.jsowell.pile.transaction.dto.BillingTemplateTransactionDTO;
import com.jsowell.pile.transaction.dto.MemberTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.dto.PileTransactionDTO;
import com.jsowell.pile.transaction.dto.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +52,12 @@ public class TransactionService {
@Autowired
private IOrderBasicInfoService orderBasicInfoService;
@Autowired
private ClearingBillInfoService clearingBillInfoService;
@Autowired
private ClearingBillDetailService clearingBillDetailService;
@Autowired
private RedisCache redisCache;
@@ -182,4 +187,16 @@ public class TransactionService {
}
}
/**
* 保存清分账单
*/
public void createClearingBill(ClearingBillTransactionDTO dto) {
if (Objects.nonNull(dto.getClearingBillInfo())) {
clearingBillInfoService.insert(dto.getClearingBillInfo());
}
if (CollectionUtils.isNotEmpty(dto.getBillDetailList())) {
clearingBillDetailService.batchInsert(dto.getBillDetailList());
}
}
}