diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java index 2bbb4ab48..ad44182b0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java @@ -6,13 +6,15 @@ import com.google.common.collect.Lists; import com.jsowell.adapay.vo.PaymentInfo; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.core.redis.RedisCache; -import com.jsowell.common.enums.ykc.ActionTypeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderPayRecordEnum; import com.jsowell.common.enums.ykc.PaymentInstitutionsEnum; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.domain.*; +import com.jsowell.pile.domain.AdapayCallbackRecord; +import com.jsowell.pile.domain.OrderBasicInfo; +import com.jsowell.pile.domain.OrderPayRecord; +import com.jsowell.pile.domain.WxpayCallbackRecord; import com.jsowell.pile.mapper.OrderPayRecordMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.web.OrderDetailInfoVO; @@ -98,18 +100,12 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService { for (OrderPayRecord orderPayRecord : orderPayRecordList) { OrderDetailInfoVO.PayRecord payInfo = new OrderDetailInfoVO.PayRecord(); - // 余额支付如果是由本金和赠送一起支付的,合并为一个 - // BigDecimal bigDecimal = orderPayRecordList.stream() - // .map(OrderPayRecord::getPayAmount) - // .reduce(BigDecimal.ZERO, BigDecimal::add); - // payInfo.setPayAmount(bigDecimal.toString()); payInfo.setPayAmount(orderPayRecord.getPayAmount().toString()); - payInfo.setPayStatus(orderBasicInfo.getPayStatus()); + // payInfo.setPayStatus(orderBasicInfo.getPayStatus()); payInfo.setPayTime(DateUtils.formatDateTime(orderBasicInfo.getPayTime())); - // if (orderBasicInfo.getRefundAmount() != null) { - // payInfo.setRefundAmount(orderBasicInfo.getRefundAmount().toString()); - // } + payInfo.setRefundAmount(String.valueOf(orderPayRecord.getRefundAmount())); + // 支付方式(1-本金余额支付;2-赠送余额支付;3-白名单支付;4-微信支付;5-支付宝支付) String payMode = orderPayRecord.getPayMode(); if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue()) || StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) { @@ -122,31 +118,45 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService { payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel()); // 判断是微信支付还是汇付支付 - MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue()); - if (record != null) { - String paymentInstitutions = record.getPaymentInstitutions(); - if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { - // 查微信支付回调记录 - WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); - if (wxpayCallbackRecord != null) { - payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); - payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); - } - } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { - // 查询汇付支付回调 - AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); - if (adapayCallbackRecord != null) { - payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); - payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); - } + // MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue()); + // if (record != null) { + // String paymentInstitutions = record.getPaymentInstitutions(); + // if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { + // // 查微信支付回调记录 + // WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); + // if (wxpayCallbackRecord != null) { + // payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); + // payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); + // } + // } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { + // // 查询汇付支付回调 + // AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); + // if (adapayCallbackRecord != null) { + // payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); + // payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); + // } + // } + // } + + // 判断是微信支付还是汇付支付 + String paymentInstitutions = orderPayRecord.getAcquirer(); + if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { + // 查微信支付回调记录 + WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); + if (wxpayCallbackRecord != null) { + payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); + payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); + } + } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { + List paymentInfos = parseDeductionRecord(orderPayRecord.getDeductionRecord()); + // 查询汇付支付回调 + // AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); + AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(paymentInfos.get(0).getPaymentId()); + if (adapayCallbackRecord != null) { + payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); + payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); } } - // 查微信支付回调记录 - // WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); - // if (wxpayCallbackRecord != null) { - // payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); - // payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); - // } } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())) { // 使用白名单支付 payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());