From 48effdca685a209c19dd2a0ccd456470a895784b Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 11 十月 2024 18:01:18 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java | 100 ++++++++++++++++++------------------------------- 1 files changed, 37 insertions(+), 63 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java index b85b63c..8d23b98 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; @@ -132,6 +133,7 @@ * @return */ @Override + @Transactional public ResultUtil paymentSettlementAmount(Integer driverId, Integer payType, Integer bankCardId, Integer language) throws Exception { Driver driver1 = driverService.selectById(driverId); QuerySettlementAmount querySettlementAmount = querySettlementAmount(language, driverId); @@ -172,7 +174,7 @@ ResultUtil resultUtil = ResultUtil.success(""); if(payType == 1){//手机支付 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1; + String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1.getId(); CheckoutRequest checkoutRequest = new CheckoutRequest(); checkoutRequest.setMsisdn(Long.valueOf(driver1.getPhone())); checkoutRequest.setCustomerEmail(driver1.getEmail()); @@ -196,7 +198,7 @@ if(payType == 2){//银行卡支付 BankCard bankCard = bankCardService.selectById(bankCardId); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1; + String merchantTransactionId = sdf.format(new Date()) + language + payType + driver1.getId(); CheckoutRequest checkoutRequest = new CheckoutRequest(); checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode())); checkoutRequest.setCustomerEmail(driver1.getEmail()); @@ -224,76 +226,48 @@ Double laveActivityMoney = driver1.getLaveActivityMoney(); Double laveBusinessMoney = driver1.getLaveBusinessMoney(); - //活动余额小于结算金额 - if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) < 0){ - driver1.setLaveActivityMoney(0D); - for (SettlementRecord settlementRecord : settlementRecords) { - Double payMoney1 = settlementRecord.getPayMoney(); - if(laveActivityMoney >= payMoney1){ - settlementRecord.setPayMoney(payMoney1); + + for (SettlementRecord settlementRecord : settlementRecords) { + Double payMoney1 = settlementRecord.getPayMoney(); + if(laveActivityMoney >= payMoney1){ + settlementRecord.setPayMoney(payMoney1); + settlementRecord.setPaymentStatus(2); + settlementRecord.setPayType(payType); + settlementRecord.setBalanceType(1); + settlementRecord.setPayTime(new Date()); + this.updateById(settlementRecord); + balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney1, settlementRecord.getType() + 2); + laveActivityMoney = new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney1)).doubleValue(); + }else{ + if(laveActivityMoney > 0){ + settlementRecord.setPayMoney(laveActivityMoney); settlementRecord.setPaymentStatus(2); settlementRecord.setPayType(payType); settlementRecord.setBalanceType(1); settlementRecord.setPayTime(new Date()); this.updateById(settlementRecord); - balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney1, settlementRecord.getType() + 2); - laveActivityMoney = new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney1)).doubleValue(); - }else{ - Double m = payMoney1; - if(laveActivityMoney > 0){ - settlementRecord.setPayMoney(laveActivityMoney); - settlementRecord.setPaymentStatus(2); - settlementRecord.setPayType(payType); - settlementRecord.setBalanceType(1); - settlementRecord.setPayTime(new Date()); - this.updateById(settlementRecord); - balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2); - laveActivityMoney = 0D; - m = new BigDecimal(payMoney1).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - } - - SettlementRecord settlementRecord1 = new SettlementRecord(); - BeanUtils.copyProperties(settlementRecord, settlementRecord1); - settlementRecord1.setId(null); - settlementRecord1.setPayMoney(m.doubleValue()); - settlementRecord1.setBalanceType(2); - this.insert(settlementRecord1); - balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, m.doubleValue(), settlementRecord.getType() + 2); - laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(m)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2); + laveActivityMoney = 0D; + payMoney1 = new BigDecimal(payMoney1).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } - } - driver1.setLaveBusinessMoney(laveBusinessMoney); - } - //活动余额大于结算金额 - if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) >= 0){ - driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - for (SettlementRecord settlementRecord : settlementRecords) { - settlementRecord.setPaymentStatus(2); - settlementRecord.setPayType(payType); - settlementRecord.setBalanceType(1); - settlementRecord.setPayTime(new Date()); - this.updateById(settlementRecord); - balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney, settlementRecord.getType() + 2); - } - } - if(null == laveActivityMoney || 0 == laveActivityMoney){ - driver1.setLaveActivityMoney(0D); - driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - for (SettlementRecord settlementRecord : settlementRecords) { - settlementRecord.setPaymentStatus(2); - settlementRecord.setPayType(payType); - settlementRecord.setBalanceType(1); - settlementRecord.setPayTime(new Date()); - this.updateById(settlementRecord); - balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney, settlementRecord.getType() + 2); - } - } - driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - + SettlementRecord settlementRecord1 = new SettlementRecord(); + BeanUtils.copyProperties(settlementRecord, settlementRecord1); + settlementRecord1.setId(null); + settlementRecord1.setPayMoney(payMoney1.doubleValue()); + settlementRecord1.setBalanceType(2); + this.insert(settlementRecord1); + balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney1.doubleValue(), settlementRecord.getType() + 2); + laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + } + } + driver1.setLaveBusinessMoney(laveBusinessMoney); + driver1.setLaveActivityMoney(laveActivityMoney); + driver1.setBalance(new BigDecimal(laveBusinessMoney).add(new BigDecimal(laveActivityMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver1); //添加交易明细 transactionDetailsService.saveData(driverId, "支付结算费用", payMoney, 2, 1, 2, null, null); - driverService.updateById(driver1); + return ResultUtil.success(""); } return resultUtil; -- Gitblit v1.7.1