diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/adapay/AdapayStatusEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/adapay/AdapayStatusEnum.java new file mode 100644 index 000000000..094820446 --- /dev/null +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/adapay/AdapayStatusEnum.java @@ -0,0 +1,31 @@ +package com.jsowell.common.enums.adapay; + +public enum AdapayStatusEnum { + PENDING("pending", "交易处理中"), + SUCCEEDED("succeeded", "交易成功"), + FAILED("failed", "交易失败"), + ; + private String value; + private String label; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + AdapayStatusEnum(String value, String label) { + this.value = value; + this.label = label; + } +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 660e5fa74..9b2be175e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -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 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); } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/transaction/dto/ClearingBillTransactionDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/dto/ClearingBillTransactionDTO.java new file mode 100644 index 000000000..9e96ab6f6 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/dto/ClearingBillTransactionDTO.java @@ -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 billDetailList; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java index ae864f450..45a7fd93a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java @@ -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()); + } + } + }