From 851dac15c5d2ab09b0acef62b77dd74800776b10 Mon Sep 17 00:00:00 2001 From: wangsq Date: Thu, 24 Sep 2026 11:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E7=A0=81=E7=9B=92=E5=AD=90=E6=94=AF?= =?UTF-8?q?=E4=BB=98=EF=BC=8C=E5=85=A5=E5=BA=93=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ynxbd/ali/helper/AliHelper.java | 1 + .../ynxbd/common/action/PayMedRecordAction.java | 7 +++++-- .../com/ynxbd/common/action/pay/PayAction.java | 14 +++++++------- .../java/com/ynxbd/common/dao/RegisterDao.java | 6 ++++-- .../java/com/ynxbd/common/service/PEISService.java | 10 +++++++--- .../ynxbd/common/service/PayMedRecordService.java | 3 --- .../java/com/ynxbd/common/service/PayService.java | 1 + .../java/com/ynxbd/wx/wxfactory/WxPayHelper.java | 1 + 8 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/ynxbd/ali/helper/AliHelper.java b/src/main/java/com/ynxbd/ali/helper/AliHelper.java index 642bc6b..a6e3775 100644 --- a/src/main/java/com/ynxbd/ali/helper/AliHelper.java +++ b/src/main/java/com/ynxbd/ali/helper/AliHelper.java @@ -296,6 +296,7 @@ public class AliHelper { order.setOpenid(response.buyerUserId); order.setBankTransNo(response.tradeNo); order.setOutTradeNo(response.outTradeNo); + order.setBizTradeNo(response.outTradeNo); } catch (Exception e) { log.info("【支付宝】[盒子支付]异常 {}", e.getMessage()); order.setErrorMsg("网络异常或当前不支持支付宝"); diff --git a/src/main/java/com/ynxbd/common/action/PayMedRecordAction.java b/src/main/java/com/ynxbd/common/action/PayMedRecordAction.java index 7f90ce3..7b8822e 100644 --- a/src/main/java/com/ynxbd/common/action/PayMedRecordAction.java +++ b/src/main/java/com/ynxbd/common/action/PayMedRecordAction.java @@ -1,5 +1,6 @@ package com.ynxbd.common.action; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.bean.enums.MerchantEnum; @@ -148,7 +149,7 @@ public class PayMedRecordAction extends BaseAction { try { log.info("[病历复印]新增预约信息 openId={}, payOpenId={}, patientId={}, treatNum={}, applyName={}, useToNo={}, useToName={}, getWay={}, address={}, phone={}", openId, payOpenId, patientId, zyNum, applyName, useToNo, useToName, getWay, address, phone); - if (ObjectUtils.isEmpty(openId) || ObjectUtils.isEmpty(patientId)) { + if (StrUtil.hasBlank(openId, patientId)) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } @@ -200,7 +201,9 @@ public class PayMedRecordAction extends BaseAction { } MerchantEnum merchantEnum = MerchantEnum.WX; - + if (ObjectUtils.isEmpty(payOpenId)) { + payOpenId = openId; + } String bizTradeNo = merchantEnum.createBizTradeNo(); PayMedRecord order = new PayMedRecord(); order.setOutTradeNo(bizTradeNo); diff --git a/src/main/java/com/ynxbd/common/action/pay/PayAction.java b/src/main/java/com/ynxbd/common/action/pay/PayAction.java index b7d405f..306c295 100644 --- a/src/main/java/com/ynxbd/common/action/pay/PayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/PayAction.java @@ -784,7 +784,6 @@ public class PayAction extends BaseAction { } - @Action("createBizTradeNo") public Result createBizTradeNo(String payCode) { log.info("[生成订单号] payCode={}", payCode); @@ -910,15 +909,15 @@ public class PayAction extends BaseAction { /** * @param payCode 支付方式 - * @param openid openid + * @param openId openid * @param patientId 患者id * @param treatNum 体检号 * @param totalFee 总金额 * @param noticeOrderNo 体检订单号 */ @Action("createPEISOrder") - public Result createPEISOrder(String payCode, String payOpenId, String openid, String patientId, String treatNum, String totalFee, String noticeOrderNo) { - log.info("[体检预约]下单 payCode={}, openid={}, patientId={}, treatNum={}, totalFee={}, noticeOrderNo={}", payCode, openid, patientId, treatNum, totalFee, noticeOrderNo); + public Result createPEISOrder(String payCode, String payOpenId, String openId, String patientId, String treatNum, String totalFee, String noticeOrderNo) { + log.info("[体检预约]下单 payCode={}, openid={}, patientId={}, treatNum={}, totalFee={}, noticeOrderNo={}", payCode, openId, patientId, treatNum, totalFee, noticeOrderNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); @@ -928,9 +927,10 @@ public class PayAction extends BaseAction { return Result.error(ResultEnum.SYSTEM_CONFIG_ERROR); } - if (openid == null || patientId == null || treatNum == null || totalFee == null || noticeOrderNo == null) { + if (StrUtil.hasBlank(openId, patientId, treatNum, totalFee, noticeOrderNo)) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } + if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) { return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); } @@ -944,12 +944,12 @@ public class PayAction extends BaseAction { String bizTradeNo = merchantEnum.createBizTradeNo(); String ip = request.getRemoteAddr(); String body = "体检预约 患者:" + patientId + "\n体检号:" + treatNum + "\n订单号:" + noticeOrderNo; - JSONObject respJson = PayService.createOrder(merchantEnum, PEnum.PEIS_RESERVE, payOpenId, openid, patientId, totalFee, bizTradeNo, ip, body); + JSONObject respJson = PayService.createOrder(merchantEnum, PEnum.PEIS_RESERVE, payOpenId, openId, patientId, totalFee, bizTradeNo, ip, body); if (respJson == null) { return Result.error(ResultEnum.PAY_ERROR); } - if (!peisService.savePEISOrder(merchantEnum, payOpenId, openid, patientId, treatNum, totalFee, noticeOrderNo, new ApiPrepayResp(respJson))) { + if (!peisService.savePEISOrder(merchantEnum, payOpenId, openId, patientId, treatNum, totalFee, noticeOrderNo, new ApiPrepayResp(respJson))) { log.info("{} [体检预约]订单信息保存失败 patientId={}, noticeOrderNo={}", merchantEnum.NAME, patientId, noticeOrderNo); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); } diff --git a/src/main/java/com/ynxbd/common/dao/RegisterDao.java b/src/main/java/com/ynxbd/common/dao/RegisterDao.java index 34f7f59..1692faa 100644 --- a/src/main/java/com/ynxbd/common/dao/RegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/RegisterDao.java @@ -291,8 +291,8 @@ public class RegisterDao { if (reg.getPayMoney() == null) { reg.setPayMoney(reg.getTotalFee()); } - String sql = "insert into register(updateTime, hisStatus, payStatus, openid, patientId, idCardNo, outTradeNo, bankTransNo, tradeNo, regFee, clinicFee, totalFee, payMoney, address, deptCode, deptName, doctCode, doctName, payDeviceId, clinicCode, regType, regDate, regCode, tid, tName, begTime, endTime, treatNum, queueNum, sourceId, tel, payWay, authCode, invoiceTransNo, hisTransNo, operateUser, hospitalArea, subDeptCode, payMchCode, payOpenId)" - + " values (now(),?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?)"; + String sql = "insert into register(updateTime, hisStatus, payStatus, openid, patientId, idCardNo, outTradeNo, bankTransNo, tradeNo, regFee, clinicFee, totalFee, payMoney, address, deptCode, deptName, doctCode, doctName, payDeviceId, clinicCode, regType, regDate, regCode, tid, tName, begTime, endTime, treatNum, queueNum, sourceId, tel, payWay, authCode, invoiceTransNo, hisTransNo, operateUser, hospitalArea, subDeptCode, payMchCode, payOpenId, bizTradeNo, mixTradeNo)" + + " values (now(),?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?)"; return DataBase.insert(sql, ps -> { ps.setInt(1, reg.getHisStatus()); ps.setInt(2, reg.getPayStatus()); @@ -340,6 +340,8 @@ public class RegisterDao { ps.setString(37, reg.getSubDeptCode()); ps.setString(38, reg.getPayMchCode()); ps.setString(39, reg.getPayOpenId()); + ps.setString(40, reg.getBizTradeNo()); + ps.setString(41, reg.getMixTradeNo()); }) > 0; } diff --git a/src/main/java/com/ynxbd/common/service/PEISService.java b/src/main/java/com/ynxbd/common/service/PEISService.java index 66a35e4..016e4a8 100644 --- a/src/main/java/com/ynxbd/common/service/PEISService.java +++ b/src/main/java/com/ynxbd/common/service/PEISService.java @@ -58,14 +58,14 @@ public class PEISService { /** * 订单信息记录 * - * @param openid openid + * @param openId openid * @param patientId 患者id * @param treatNum 体检号 * @param totalFee 金额 * @param noticeOrderNo 体检订单号 * @return bool */ - public boolean savePEISOrder(MerchantEnum merchantEnum, String payOpenId, String openid, String patientId, String treatNum, String totalFee, String noticeOrderNo, ApiPrepayResp prepayResp) { + public boolean savePEISOrder(MerchantEnum merchantEnum, String payOpenId, String openId, String patientId, String treatNum, String totalFee, String noticeOrderNo, ApiPrepayResp prepayResp) { String outTradeNo = prepayResp.findOutTradeNo(); String bizTradeNo = prepayResp.findBizTradeNo(); String mixTradeNo = prepayResp.findMixTradeNo(); @@ -74,10 +74,14 @@ public class PEISService { return false; } + if (ObjectUtils.isEmpty(payOpenId)) { + payOpenId = openId; + } + PEISReserve order = new PEISReserve(); order.setPayMchCode(merchantEnum.CODE); order.setPayOpenId(payOpenId); - order.setOpenid(openid); + order.setOpenid(openId); order.setPatientId(patientId); order.setTreatNum(treatNum); order.setOutTradeNo(outTradeNo); diff --git a/src/main/java/com/ynxbd/common/service/PayMedRecordService.java b/src/main/java/com/ynxbd/common/service/PayMedRecordService.java index 47c30e7..3f5ca48 100644 --- a/src/main/java/com/ynxbd/common/service/PayMedRecordService.java +++ b/src/main/java/com/ynxbd/common/service/PayMedRecordService.java @@ -100,9 +100,6 @@ public class PayMedRecordService { * @return bool */ public boolean saveData(PayMedRecord order) { -// if (order == null || PayMedRecord.isEmpty(order.getApplyId()) || ObjectUtils.isEmpty(order.getPayStatus())) { -// return false; -// } return new PayMedRecordDao().insert(order); } diff --git a/src/main/java/com/ynxbd/common/service/PayService.java b/src/main/java/com/ynxbd/common/service/PayService.java index ffe3e45..adb8c80 100644 --- a/src/main/java/com/ynxbd/common/service/PayService.java +++ b/src/main/java/com/ynxbd/common/service/PayService.java @@ -397,6 +397,7 @@ public class PayService { return order; } + order.setBizTradeNo(outTradeNo); order.setOutTradeNo(outTradeNo); order.setAuthCode(authCode); order.setTotalFee(totalFee); diff --git a/src/main/java/com/ynxbd/wx/wxfactory/WxPayHelper.java b/src/main/java/com/ynxbd/wx/wxfactory/WxPayHelper.java index 85d77c2..c792099 100644 --- a/src/main/java/com/ynxbd/wx/wxfactory/WxPayHelper.java +++ b/src/main/java/com/ynxbd/wx/wxfactory/WxPayHelper.java @@ -709,6 +709,7 @@ public class WxPayHelper { MerchantEnum mchEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); Order order = new Order(); order.setOutTradeNo(outTradeNo); + order.setBizTradeNo(outTradeNo); try { MchOrderquery mchOrderquery = new MchOrderquery(); String appId = mchEnum.APP_ID;