From 0ab9dfd8f122195e4e9f09bd50c59e0a47450bec Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 19 三月 2025 15:50:03 +0800 Subject: [PATCH] fix: resolve merge conflicts in .gitignore --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 70 insertions(+), 29 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java index 2d778f6..0376220 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.config.SmsProperties; @@ -7,10 +8,7 @@ import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.SmsUtil; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.TencentMailUtil; +import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.system.dto.*; import com.ruoyi.system.mapper.TBillMapper; @@ -243,41 +241,72 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean checkOfflinePay(OfflinePayCheckDto dto) { - TBankFlow bankflow = tBankFlowService.getById(dto.getFlowId()); TBillDto bill = getDetailByBillId(dto.getBillId()); - if (bankflow.getRemainingMoney().compareTo(BigDecimal.ZERO)<=0){ - throw new ServiceException("该流水已无可抵扣剩余金额"); - } - if (bankflow.getRemainingMoney().compareTo(dto.getAmount())<0){ - throw new ServiceException("实付金额不能高于于流水可抵扣剩余金额"); - } - //如果实付金额大于欠费金额 - if (dto.getAmount().compareTo(bill.getOutstandingMoney())>=0){ - throw new ServiceException("实付金额不能高于该账单欠费金额"); - } + if (dto.getPayType()==1){ //银行 + if (StringUtils.isEmpty(dto.getFlowId())){ + throw new ServiceException("银行流水ID不能为空"); + } + TBankFlow bankflow = tBankFlowService.getById(dto.getFlowId()); + if (bankflow.getRemainingMoney().compareTo(BigDecimal.ZERO)<=0){ + throw new ServiceException("该流水已无可抵扣剩余金额"); + } + if (bankflow.getRemainingMoney().compareTo(dto.getAmount())<0){ + throw new ServiceException("实付金额不能高于于流水可抵扣剩余金额"); + } + //如果实付金额大于欠费金额 + if (dto.getAmount().compareTo(bill.getOutstandingMoney())>0){ + throw new ServiceException("实付金额不能高于该账单欠费金额"); + } + TBill billSave = new TBill(); + billSave.setId(bill.getId()); + billSave.setPayFeesMoney(dto.getAmount()); + billSave.setBankSerialNumber(bankflow.getBankSerialNumber()); + billSave.setPayFeesTime(bankflow.getPayTime()); + billSave.setVoucher(dto.getVoucher()); + billSave.setPayFeesType(2); + TBill back = lockAndUpdateInfo(billSave, 2); + TBankFlow saveBankFlow = new TBankFlow(); + saveBankFlow.setId(bankflow.getId()); + saveBankFlow.setDeductionMoney(bankflow.getDeductionMoney().add(dto.getAmount())); + BigDecimal subtract = bankflow.getRemainingMoney().subtract(dto.getAmount()); + saveBankFlow.setRemainingMoney(subtract); + if (BigDecimal.ZERO.compareTo(subtract) == 0){ + saveBankFlow.setFlowStatus(1); + } + tBankFlowService.updateById(saveBankFlow); + //更新银行流水的已抵扣金额和剩余可抵扣金额 + //存流水 + TFlowManagement save = new TFlowManagement(); + save.setPayType(3); + save.setPayer(dto.getPayer()); + save.setPayTime(bankflow.getPayTime()); + save.setSysSerialNumber(OrderNos.getDid(30)); + save.setBankSerialNumber(bankflow.getBankSerialNumber()); + save.setFlowType(2); + save.setPaymentBillId(back.getId()); + save.setDeductionMoney(back.getDeductionMoney()); + save.setFlowMoney(dto.getAmount()); + save.setRemainingMoney(back.getOutstandingMoney()); + save.setPreOutstand(back.getPreOutstand()); + tFlowManagementService.save(save); + return true; + } + //现金支付 TBill billSave = new TBill(); billSave.setId(bill.getId()); billSave.setPayFeesMoney(dto.getAmount()); - billSave.setBankSerialNumber(bankflow.getBankSerialNumber()); - billSave.setPayFeesTime(bankflow.getPayTime()); + billSave.setPayFeesTime(dto.getPayTime()!=null?dto.getPayTime():DateUtils.dateToLocalDateTime(new Date())); billSave.setVoucher(dto.getVoucher()); billSave.setPayFeesType(2); TBill back = lockAndUpdateInfo(billSave, 2); - //更新银行流水的已抵扣金额和剩余可抵扣金额 - TBankFlow saveBankFlow = new TBankFlow(); - saveBankFlow.setId(bankflow.getId()); - saveBankFlow.setDeductionMoney(bankflow.getDeductionMoney().add(dto.getAmount())); - saveBankFlow.setRemainingMoney(bankflow.getRemainingMoney().subtract(dto.getAmount())); - tBankFlowService.updateById(saveBankFlow); - //存流水 TFlowManagement save = new TFlowManagement(); save.setPayType(3); save.setPayer(dto.getPayer()); - save.setPayTime(bankflow.getPayTime()); - save.setBankSerialNumber(bankflow.getBankSerialNumber()); - save.setFlowType(2); + save.setPayTime(billSave.getPayFeesTime()); + save.setSysSerialNumber(OrderNos.getDid(30)); + save.setFlowType(1); save.setPaymentBillId(back.getId()); save.setDeductionMoney(back.getDeductionMoney()); save.setFlowMoney(dto.getAmount()); @@ -332,6 +361,7 @@ saveFlow.setPayType(1); saveFlow.setPayer(order.getUserId()); saveFlow.setPayTime(DateUtils.dateToLocalDateTime(save.getPayTime())); + saveFlow.setSysSerialNumber(OrderNos.getDid(30)); saveFlow.setBankSerialNumber(save.getPayNo()); saveFlow.setFlowType(2); saveFlow.setPaymentBillId(bill.getId()); @@ -395,7 +425,8 @@ TBill save = new TBill(); save.setId(bill.getId()); try { - smsUtil.sendSms(bill.getPhone(), "2365726", new String[]{bill.getPartyTwoName()}); + String name = bill.getPartyTwoName().length()>5?bill.getPartyTwoName().substring(0,5):bill.getPartyTwoName(); + smsUtil.sendSms(bill.getPhone(), "2365726", new String[]{name}); save.setSmsStatus(1); }catch (ServiceException e){ failNum++; @@ -482,7 +513,11 @@ TBankFlow saveBankFlow = new TBankFlow(); saveBankFlow.setId(bankflow.getId()); saveBankFlow.setDeductionMoney(bankflow.getDeductionMoney().add(dto.getAmount())); - saveBankFlow.setRemainingMoney(bankflow.getRemainingMoney().subtract(dto.getAmount())); + BigDecimal subtract = bankflow.getRemainingMoney().subtract(dto.getAmount()); + saveBankFlow.setRemainingMoney(subtract); + if (BigDecimal.ZERO.compareTo(subtract) == 0){ + saveBankFlow.setFlowStatus(1); + } tBankFlowService.updateById(saveBankFlow); } //存流水 @@ -490,6 +525,7 @@ save.setPayType(3); save.setPayer(dto.getPayer()); save.setPayTime(bankflow!=null?bankflow.getPayTime():DateUtils.dateToLocalDateTime(new Date())); + save.setSysSerialNumber(OrderNos.getDid()); save.setBankSerialNumber(bankflow!=null?bankflow.getBankSerialNumber():null); save.setFlowType(dto.getPayType()==1?2:1); save.setPaymentBillId(back.getId()); @@ -511,5 +547,10 @@ return dto; } + @Override + public Integer batchBillCount(String userId, List<String> billIds) { + return this.baseMapper.batchBillCount(userId,billIds); + } + } -- Gitblit v1.7.1