From 8c7d2f03421ccca369373bc940cfe082434b3a7e Mon Sep 17 00:00:00 2001 From: yupeng <roc__yu@163.com> Date: 星期一, 10 三月 2025 15:01:20 +0800 Subject: [PATCH] feat: 确认已缴费接口,添加支付类型现金的逻辑 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java | 5 +- generator/src/test/java/com/xizang/CodeGeneratorTests.java | 6 +- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 72 ++++++++++++++++++++++++----------- ruoyi-system/src/main/java/com/ruoyi/system/dto/OfflinePayCheckDto.java | 6 ++ 4 files changed, 60 insertions(+), 29 deletions(-) diff --git a/generator/src/test/java/com/xizang/CodeGeneratorTests.java b/generator/src/test/java/com/xizang/CodeGeneratorTests.java index 64dd914..8a5e34c 100644 --- a/generator/src/test/java/com/xizang/CodeGeneratorTests.java +++ b/generator/src/test/java/com/xizang/CodeGeneratorTests.java @@ -35,9 +35,9 @@ // 全局配置 GlobalConfig gc = new GlobalConfig(); - String projectPath = "F:\\workSpace\\xizang\\generator"; + String projectPath = "D:\\workspaces\\Project\\company\\changyun\\xizang\\xizang\\generator"; gc.setOutputDir(projectPath + "/src/main/java") - .setAuthor("xiaochen") + .setAuthor("yupeng") .setMapperName("%sMapper") .setXmlName("%sMapper") .setServiceName("%sService") @@ -144,7 +144,7 @@ // strategy.setTablePrefix(pc.getModuleName() + ""); // strategy.setLikeTable(new LikeTable("room")); //strategy.setLikeTable(new LikeTable("member")); - strategy.setLikeTable(new LikeTable("t_bank_flow"));// 生成表名 + strategy.setLikeTable(new LikeTable("sys_file"));// 生成表名 // strategy.setLikeTable(new LikeTable("t_hotel"));// 生成表名 // strategy.setLikeTable(new LikeTable("t_scan_message"));// 生成表名 // strategy.setNotLikeTable(new LikeTable("hotel_info"));// 不生成表名 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java index 99d7bb9..9893f69 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java @@ -43,7 +43,8 @@ // 访问SMTP服务时需要提供的密码(在控制台选择发信地址进行设置) props.put("mail.password", properties.getPassword()); props.setProperty("mail.smtp.socketFactory.fallback", "false"); - props.put("mail.smtp.ssl.enable", "false"); + props.put("mail.smtp.ssl.enable", "true"); + props.put("mail.smtp.ssl.protocols", "TLSv1.2"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { @Override @@ -101,7 +102,7 @@ TencentMailUtil tencentMailUtil = new TencentMailUtil(); MailProperties properties = new MailProperties(); tencentMailUtil.properties = properties; - tencentMailUtil.send("214491528@qq.com","大学城揽院24栋"); + tencentMailUtil.send("645025773@qq.com","大学城揽院24栋"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OfflinePayCheckDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OfflinePayCheckDto.java index 8a78c2d..51a9e92 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OfflinePayCheckDto.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OfflinePayCheckDto.java @@ -38,7 +38,11 @@ @ApiModelProperty("支付凭证") private String voucher; @ApiModelProperty("银行流水ID") - @NotEmpty(message = "银行流水ID不能为空") private String flowId; + @ApiModelProperty("支付类型") + @NotEmpty(message = "支付类型不能为空") + private Integer payType; + + } 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 1dd6cad..f9d94d9 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 @@ -241,42 +241,68 @@ @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())); + 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.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.setPayTime(billSave.getPayFeesTime()); save.setSysSerialNumber(OrderNos.getDid(30)); - save.setBankSerialNumber(bankflow.getBankSerialNumber()); - save.setFlowType(2); + save.setFlowType(1); save.setPaymentBillId(back.getId()); save.setDeductionMoney(back.getDeductionMoney()); save.setFlowMoney(dto.getAmount()); -- Gitblit v1.7.1