diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/service/impl/AdapayUnsplitRecordHandleServiceImpl.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/service/impl/AdapayUnsplitRecordHandleServiceImpl.java index 2ab8938f2..23c6cbba5 100644 --- a/jsowell-quartz/src/main/java/com/jsowell/quartz/service/impl/AdapayUnsplitRecordHandleServiceImpl.java +++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/service/impl/AdapayUnsplitRecordHandleServiceImpl.java @@ -1068,37 +1068,40 @@ public class AdapayUnsplitRecordHandleServiceImpl implements AdapayUnsplitRecord return latestRemaining.compareTo(BigDecimal.ZERO) > 0 ? latestRemaining : BigDecimal.ZERO; } + private AdapayUnsplitRecord buildUpdateRecordByPaymentId(String paymentId) { + List existingRecords = adapayUnsplitRecordService.selectByPaymentIds(Lists.newArrayList(paymentId)); + AdapayUnsplitRecord record = new AdapayUnsplitRecord(); + record.setPaymentId(paymentId); + record.setUpdateTime(DateUtils.getNowDate()); + if (CollectionUtils.isNotEmpty(existingRecords)) { + record.setId(existingRecords.get(0).getId()); + } + return record; + } + private void updateConfirmedSplitAmount(AdapayUnsplitRecordVO item, BigDecimal confirmAmt, String paymentId) { BigDecimal oldConfirmedAmt = parseAmount(item.getConfirmedSplitAmount()); BigDecimal newConfirmedAmt = oldConfirmedAmt.add(confirmAmt).setScale(2, BigDecimal.ROUND_HALF_UP); - AdapayUnsplitRecord updateRecord = new AdapayUnsplitRecord(); - updateRecord.setPaymentId(paymentId); + AdapayUnsplitRecord updateRecord = buildUpdateRecordByPaymentId(paymentId); updateRecord.setConfirmedSplitAmount(newConfirmedAmt); - updateRecord.setUpdateTime(DateUtils.getNowDate()); adapayUnsplitRecordService.insertOrUpdateSelective(updateRecord); } private void markSplitResult(String paymentId, String splitFlag) { - AdapayUnsplitRecord updateRecord = new AdapayUnsplitRecord(); - updateRecord.setPaymentId(paymentId); + AdapayUnsplitRecord updateRecord = buildUpdateRecordByPaymentId(paymentId); updateRecord.setSplitFlag(splitFlag); - updateRecord.setUpdateTime(DateUtils.getNowDate()); adapayUnsplitRecordService.insertOrUpdateSelective(updateRecord); } private void updateRefundAmount(String paymentId, BigDecimal refundAmount) { - AdapayUnsplitRecord updateRecord = new AdapayUnsplitRecord(); - updateRecord.setPaymentId(paymentId); + AdapayUnsplitRecord updateRecord = buildUpdateRecordByPaymentId(paymentId); updateRecord.setRefundAmount(refundAmount.setScale(2, BigDecimal.ROUND_HALF_UP)); - updateRecord.setUpdateTime(DateUtils.getNowDate()); adapayUnsplitRecordService.insertOrUpdateSelective(updateRecord); } private void markRefundResult(String paymentId, String refundFlag) { - AdapayUnsplitRecord updateRecord = new AdapayUnsplitRecord(); - updateRecord.setPaymentId(paymentId); + AdapayUnsplitRecord updateRecord = buildUpdateRecordByPaymentId(paymentId); updateRecord.setRefundFlag(refundFlag); - updateRecord.setUpdateTime(DateUtils.getNowDate()); adapayUnsplitRecordService.insertOrUpdateSelective(updateRecord); }