扫码盒子支付,入库调整

master_pay
王绍全 3 weeks ago
parent 78ea51fc7e
commit 851dac15c5
  1. 1
      src/main/java/com/ynxbd/ali/helper/AliHelper.java
  2. 7
      src/main/java/com/ynxbd/common/action/PayMedRecordAction.java
  3. 14
      src/main/java/com/ynxbd/common/action/pay/PayAction.java
  4. 6
      src/main/java/com/ynxbd/common/dao/RegisterDao.java
  5. 10
      src/main/java/com/ynxbd/common/service/PEISService.java
  6. 3
      src/main/java/com/ynxbd/common/service/PayMedRecordService.java
  7. 1
      src/main/java/com/ynxbd/common/service/PayService.java
  8. 1
      src/main/java/com/ynxbd/wx/wxfactory/WxPayHelper.java

@ -296,6 +296,7 @@ public class AliHelper {
order.setOpenid(response.buyerUserId); order.setOpenid(response.buyerUserId);
order.setBankTransNo(response.tradeNo); order.setBankTransNo(response.tradeNo);
order.setOutTradeNo(response.outTradeNo); order.setOutTradeNo(response.outTradeNo);
order.setBizTradeNo(response.outTradeNo);
} catch (Exception e) { } catch (Exception e) {
log.info("【支付宝】[盒子支付]异常 {}", e.getMessage()); log.info("【支付宝】[盒子支付]异常 {}", e.getMessage());
order.setErrorMsg("网络异常或当前不支持支付宝"); order.setErrorMsg("网络异常或当前不支持支付宝");

@ -1,5 +1,6 @@
package com.ynxbd.common.action; package com.ynxbd.common.action;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.enums.MerchantEnum;
@ -148,7 +149,7 @@ public class PayMedRecordAction extends BaseAction {
try { try {
log.info("[病历复印]新增预约信息 openId={}, payOpenId={}, patientId={}, treatNum={}, applyName={}, useToNo={}, useToName={}, getWay={}, address={}, phone={}", log.info("[病历复印]新增预约信息 openId={}, payOpenId={}, patientId={}, treatNum={}, applyName={}, useToNo={}, useToName={}, getWay={}, address={}, phone={}",
openId, payOpenId, patientId, zyNum, 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); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
@ -200,7 +201,9 @@ public class PayMedRecordAction extends BaseAction {
} }
MerchantEnum merchantEnum = MerchantEnum.WX; MerchantEnum merchantEnum = MerchantEnum.WX;
if (ObjectUtils.isEmpty(payOpenId)) {
payOpenId = openId;
}
String bizTradeNo = merchantEnum.createBizTradeNo(); String bizTradeNo = merchantEnum.createBizTradeNo();
PayMedRecord order = new PayMedRecord(); PayMedRecord order = new PayMedRecord();
order.setOutTradeNo(bizTradeNo); order.setOutTradeNo(bizTradeNo);

@ -784,7 +784,6 @@ public class PayAction extends BaseAction {
} }
@Action("createBizTradeNo") @Action("createBizTradeNo")
public Result createBizTradeNo(String payCode) { public Result createBizTradeNo(String payCode) {
log.info("[生成订单号] payCode={}", payCode); log.info("[生成订单号] payCode={}", payCode);
@ -910,15 +909,15 @@ public class PayAction extends BaseAction {
/** /**
* @param payCode 支付方式 * @param payCode 支付方式
* @param openid openid * @param openId openid
* @param patientId 患者id * @param patientId 患者id
* @param treatNum 体检号 * @param treatNum 体检号
* @param totalFee 总金额 * @param totalFee 总金额
* @param noticeOrderNo 体检订单号 * @param noticeOrderNo 体检订单号
*/ */
@Action("createPEISOrder") @Action("createPEISOrder")
public Result createPEISOrder(String payCode, String payOpenId, String openid, String patientId, String treatNum, String totalFee, String 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); log.info("[体检预约]下单 payCode={}, openid={}, patientId={}, treatNum={}, totalFee={}, noticeOrderNo={}", payCode, openId, patientId, treatNum, totalFee, noticeOrderNo);
MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
@ -928,9 +927,10 @@ public class PayAction extends BaseAction {
return Result.error(ResultEnum.SYSTEM_CONFIG_ERROR); 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); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) { if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) {
return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); return Result.error(ResultEnum.PAY_MONEY_IS_ZERO);
} }
@ -944,12 +944,12 @@ public class PayAction extends BaseAction {
String bizTradeNo = merchantEnum.createBizTradeNo(); String bizTradeNo = merchantEnum.createBizTradeNo();
String ip = request.getRemoteAddr(); String ip = request.getRemoteAddr();
String body = "体检预约 患者:" + patientId + "\n体检号:" + treatNum + "\n订单号:" + noticeOrderNo; 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) { if (respJson == null) {
return Result.error(ResultEnum.PAY_ERROR); 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); log.info("{} [体检预约]订单信息保存失败 patientId={}, noticeOrderNo={}", merchantEnum.NAME, patientId, noticeOrderNo);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
} }

@ -291,8 +291,8 @@ public class RegisterDao {
if (reg.getPayMoney() == null) { if (reg.getPayMoney() == null) {
reg.setPayMoney(reg.getTotalFee()); 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)" 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(),?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?)"; + " values (now(),?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?)";
return DataBase.insert(sql, ps -> { return DataBase.insert(sql, ps -> {
ps.setInt(1, reg.getHisStatus()); ps.setInt(1, reg.getHisStatus());
ps.setInt(2, reg.getPayStatus()); ps.setInt(2, reg.getPayStatus());
@ -340,6 +340,8 @@ public class RegisterDao {
ps.setString(37, reg.getSubDeptCode()); ps.setString(37, reg.getSubDeptCode());
ps.setString(38, reg.getPayMchCode()); ps.setString(38, reg.getPayMchCode());
ps.setString(39, reg.getPayOpenId()); ps.setString(39, reg.getPayOpenId());
ps.setString(40, reg.getBizTradeNo());
ps.setString(41, reg.getMixTradeNo());
}) > 0; }) > 0;
} }

@ -58,14 +58,14 @@ public class PEISService {
/** /**
* 订单信息记录 * 订单信息记录
* *
* @param openid openid * @param openId openid
* @param patientId 患者id * @param patientId 患者id
* @param treatNum 体检号 * @param treatNum 体检号
* @param totalFee 金额 * @param totalFee 金额
* @param noticeOrderNo 体检订单号 * @param noticeOrderNo 体检订单号
* @return bool * @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 outTradeNo = prepayResp.findOutTradeNo();
String bizTradeNo = prepayResp.findBizTradeNo(); String bizTradeNo = prepayResp.findBizTradeNo();
String mixTradeNo = prepayResp.findMixTradeNo(); String mixTradeNo = prepayResp.findMixTradeNo();
@ -74,10 +74,14 @@ public class PEISService {
return false; return false;
} }
if (ObjectUtils.isEmpty(payOpenId)) {
payOpenId = openId;
}
PEISReserve order = new PEISReserve(); PEISReserve order = new PEISReserve();
order.setPayMchCode(merchantEnum.CODE); order.setPayMchCode(merchantEnum.CODE);
order.setPayOpenId(payOpenId); order.setPayOpenId(payOpenId);
order.setOpenid(openid); order.setOpenid(openId);
order.setPatientId(patientId); order.setPatientId(patientId);
order.setTreatNum(treatNum); order.setTreatNum(treatNum);
order.setOutTradeNo(outTradeNo); order.setOutTradeNo(outTradeNo);

@ -100,9 +100,6 @@ public class PayMedRecordService {
* @return bool * @return bool
*/ */
public boolean saveData(PayMedRecord order) { public boolean saveData(PayMedRecord order) {
// if (order == null || PayMedRecord.isEmpty(order.getApplyId()) || ObjectUtils.isEmpty(order.getPayStatus())) {
// return false;
// }
return new PayMedRecordDao().insert(order); return new PayMedRecordDao().insert(order);
} }

@ -397,6 +397,7 @@ public class PayService {
return order; return order;
} }
order.setBizTradeNo(outTradeNo);
order.setOutTradeNo(outTradeNo); order.setOutTradeNo(outTradeNo);
order.setAuthCode(authCode); order.setAuthCode(authCode);
order.setTotalFee(totalFee); order.setTotalFee(totalFee);

@ -709,6 +709,7 @@ public class WxPayHelper {
MerchantEnum mchEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); MerchantEnum mchEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
Order order = new Order(); Order order = new Order();
order.setOutTradeNo(outTradeNo); order.setOutTradeNo(outTradeNo);
order.setBizTradeNo(outTradeNo);
try { try {
MchOrderquery mchOrderquery = new MchOrderquery(); MchOrderquery mchOrderquery = new MchOrderquery();
String appId = mchEnum.APP_ID; String appId = mchEnum.APP_ID;

Loading…
Cancel
Save