diff --git a/src/main/java/com/ynxbd/common/TestA.java b/src/main/java/com/ynxbd/common/TestA.java
index 84f257c..6908ff0 100644
--- a/src/main/java/com/ynxbd/common/TestA.java
+++ b/src/main/java/com/ynxbd/common/TestA.java
@@ -1,6 +1,7 @@
package com.ynxbd.common;
import com.ynxbd.common.bean.Patient;
+import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.helper.common.HMACHelper;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.JsonResultEnum;
@@ -37,20 +38,20 @@ public class TestA {
public static void main(String[] args) {
- String respXML = "\n" +
- "\t1002\n" +
- "\t0\n" +
- "\t成功\n" +
- "\t932606\n" +
- "\t300349719\n" +
- "\t137087\n" +
- "";
- JsonResult result = JsonResult.xmlToBean(respXML, JsonResultEnum.SYS_HIS);
- if (result == null) {
- return;
- }
- Patient patient = result.dataMapToBean(Patient.class);
- System.out.println(patient);
+// String respXML = "\n" +
+// "\t1002\n" +
+// "\t0\n" +
+// "\t成功\n" +
+// "\t932606\n" +
+// "\t300349719\n" +
+// "\t137087\n" +
+// "";
+// JsonResult result = JsonResult.xmlToBean(respXML, JsonResultEnum.SYS_HIS);
+// if (result == null) {
+// return;
+// }
+// Patient patient = result.dataMapToBean(Patient.class);
+// System.out.println(patient);
}
diff --git a/src/main/java/com/ynxbd/common/action/pay/BcmPayAction.java b/src/main/java/com/ynxbd/common/action/pay/BcmPayAction.java
index af266a3..8bc531a 100644
--- a/src/main/java/com/ynxbd/common/action/pay/BcmPayAction.java
+++ b/src/main/java/com/ynxbd/common/action/pay/BcmPayAction.java
@@ -6,6 +6,7 @@ import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.PayResult;
import com.ynxbd.common.helper.common.DateHelper;
+import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ServiceException;
import com.ynxbd.common.service.RecipeService;
@@ -47,16 +48,17 @@ public class BcmPayAction extends BaseAction {
String payDate = DateHelper.getCurDate();
String payTime = DateHelper.getCurTime();
String bankMerchantNo = notifyInfo.getBankMerchantNo();
-
log.info("【交行】[{}] 收到通知 outTradeNo={}, bankTransNo={}, bankMerchantNo={}", notifyType, outTradeNo, bankTransNo, bankMerchantNo);
switch (PEnum.toEnum(notifyType)) {
case RECIPE:
+ openid = new RecipeService().queryOpenIdByOutTradeNo(outTradeNo);
new RecipeService().recipeListPay(MerchantEnum.BCM, totalFee.toString(), openid, outTradeNo, bankTransNo, bankMerchantNo, payDate, payTime, payInfo);
break;
case REG: // 挂号
try {
+ openid = new RegService().queryOpenIdByOutTradeNo(outTradeNo);
new RegService().regPaidNotify(MerchantEnum.BCM, totalFee, openid, bankTransNo, outTradeNo, bankMerchantNo, payDate, payTime, payInfo, new Date());
} catch (ServiceException e) {
log.info("【交行]挂号通知错误 outTradeNo={}, bankTransNo={}, message={}", outTradeNo, bankTransNo, e.getMessage());
diff --git a/src/main/java/com/ynxbd/common/dao/PayResultDao.java b/src/main/java/com/ynxbd/common/dao/PayResultDao.java
index 08da1a5..dc06c39 100644
--- a/src/main/java/com/ynxbd/common/dao/PayResultDao.java
+++ b/src/main/java/com/ynxbd/common/dao/PayResultDao.java
@@ -20,11 +20,11 @@ public class PayResultDao {
public boolean queryOrderByOutTradeNoAndOpenid(String outTradeNo, String openid) {
String sql = "select id from pay_result where outTradeNo=? and openid=?";
- return DataBase.select(sql, PayResult.class, ps -> {
+ return !DataBase.select(sql, PayResult.class, ps -> {
ps.setString(1, outTradeNo);
ps.setString(2, openid);
- }).size() > 0;
+ }).isEmpty();
}
diff --git a/src/main/java/com/ynxbd/common/service/HealthUploadService.java b/src/main/java/com/ynxbd/common/service/HealthUploadService.java
index 0c6380d..97211f9 100644
--- a/src/main/java/com/ynxbd/common/service/HealthUploadService.java
+++ b/src/main/java/com/ynxbd/common/service/HealthUploadService.java
@@ -2,6 +2,7 @@ package com.ynxbd.common.service;
import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.bean.enums.HealthCardEnum;
+import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.config.HealthCardConfig;
import com.ynxbd.common.dao.PatientDao;
import com.ynxbd.common.helper.HealthCardHelper;
@@ -22,16 +23,19 @@ public class HealthUploadService {
* @param deptName 科室名
* @param regDate 挂号日期
*/
- public void regPayReportHISData(String openid, String patientId, String deptName, String regDate) {
+ public void regPayReportHISData(MerchantEnum merchantEnum, String openid, String patientId, String deptName, String regDate) {
try {
if (!HealthCardConfig.IS_UPLOAD_DATA) { // 禁止数据上传
return;
}
-
if (!HealthCardConfig.isEnable()) { // 判断是否禁用电子健康卡
return;
}
+ if (!MerchantEnum.WX.equals(merchantEnum) && !MerchantEnum.BCM.equals(merchantEnum)) {
+ return;
+ }
+
if (deptName == null || openid == null || patientId == null || regDate == null) {
return;
}
@@ -63,7 +67,7 @@ public class HealthUploadService {
* @param openid openid
* @param patientId patientId
*/
- public void rxReportHISData(String openid, String patientId) {
+ public void rxReportHISData(MerchantEnum merchantEnum, String openid, String patientId) {
try {
if (!HealthCardConfig.IS_UPLOAD_DATA) { // 禁止数据上传
return;
@@ -71,6 +75,9 @@ public class HealthUploadService {
if (!HealthCardConfig.isEnable()) { // 判断是否禁用电子健康卡
return;
}
+ if (!MerchantEnum.WX.equals(merchantEnum) && !MerchantEnum.BCM.equals(merchantEnum)) { // 商户类型判断
+ return;
+ }
if (ObjectUtils.isEmpty(openid) || ObjectUtils.isEmpty(patientId)) {
return;
diff --git a/src/main/java/com/ynxbd/common/service/RecipeService.java b/src/main/java/com/ynxbd/common/service/RecipeService.java
index c9954d4..00a0c24 100644
--- a/src/main/java/com/ynxbd/common/service/RecipeService.java
+++ b/src/main/java/com/ynxbd/common/service/RecipeService.java
@@ -9,6 +9,7 @@ import com.ynxbd.common.bean.StandardPrice;
import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.Order;
import com.ynxbd.common.bean.pay.Recipe;
+import com.ynxbd.common.bean.pay.Register;
import com.ynxbd.common.dao.RecipeDao;
import com.ynxbd.common.dao.RefundDao;
import com.ynxbd.common.dao.SelfHelpDao;
@@ -375,7 +376,7 @@ public class RecipeService {
TZReserveConfig.reserveRun(patientId); // 天助医技预约
- new HealthUploadService().rxReportHISData(openid, patientId);
+ new HealthUploadService().rxReportHISData(merchantEnum, openid, patientId);
return true;
}
@@ -1058,6 +1059,7 @@ public class RecipeService {
return new RecipeDao().insert(recipe);
}
+ // 查询唯一订单-不支持查询多张发票的处方
public Order queryRxByOrderNo(String outTradeNo, String tradeNo) {
if (!ObjectUtils.isEmpty(outTradeNo)) {
return new RecipeDao().selectOneByOutTradeNo(outTradeNo);
@@ -1067,4 +1069,22 @@ public class RecipeService {
}
return new RecipeDao().selectByTradeNo(tradeNo);
}
+
+ // 查询处方订单集
+ public List queryRxListByOrderNo(String outTradeNo) {
+ if (ObjectUtils.isEmpty(outTradeNo)) {
+ return new ArrayList<>();
+ }
+ return new RecipeDao().selectListByOutTradeNo(outTradeNo);
+ }
+
+ // 查询订单openid
+ public String queryOpenIdByOutTradeNo(String outTradeNo) {
+ List rxList = queryRxListByOrderNo(outTradeNo);
+ if (rxList.isEmpty()) {
+ return null;
+ }
+ Recipe order = rxList.get(0);
+ return order.getOpenid();
+ }
}
diff --git a/src/main/java/com/ynxbd/common/service/RegService.java b/src/main/java/com/ynxbd/common/service/RegService.java
index 5d9c063..6553882 100644
--- a/src/main/java/com/ynxbd/common/service/RegService.java
+++ b/src/main/java/com/ynxbd/common/service/RegService.java
@@ -224,11 +224,7 @@ public class RegService {
MessagePushConfig.regAI(merchantEnum, reg);
- // 挂号导航推送
- MessagePushConfig.regNavigatePush(merchantEnum, reg);
-
- // 电子健康卡上报数据
- new HealthUploadService().regPayReportHISData(openid, patientId, reg.getDeptName(), reg.getRegDate());
+ MessagePushConfig.regNavigatePush(merchantEnum, reg); // 挂号导航推送
}
if (MerchantEnum.ALI.equals(merchantEnum)) {
@@ -239,6 +235,10 @@ public class RegService {
AliMessageHelper.hospitalOrder(openid, title, AliMsgEnum.MERCHANT_PREORDER_SUCCESS, reg.getUpdateTime(), true, totalFee, outTradeNo, reg.getRegDate(), reg.getBegTime(), reg.getDeptCode(), reg.getDeptName(), reg.getDoctName(),
AliHelper.getLink(link, null));
}
+
+ // 电子健康卡上报数据
+ new HealthUploadService().regPayReportHISData(merchantEnum, openid, patientId, reg.getDeptName(), reg.getRegDate());
+
return true;
}
@@ -1247,4 +1247,13 @@ public class RegService {
return new HisRegisterDao().queryHisRegSourceState(deptCode, subDeptCode, isTimeInterval, timeInterval);
}
}
+
+ // 查询订单openid
+ public String queryOpenIdByOutTradeNo(String outTradeNo) {
+ Order order = queryRegByOrderNo(outTradeNo, null);
+ if (order == null) {
+ return null;
+ }
+ return order.getOpenid();
+ }
}
diff --git a/src/main/java/com/ynxbd/wx/config/MessagePushConfig.java b/src/main/java/com/ynxbd/wx/config/MessagePushConfig.java
index 8f44880..ed848f0 100644
--- a/src/main/java/com/ynxbd/wx/config/MessagePushConfig.java
+++ b/src/main/java/com/ynxbd/wx/config/MessagePushConfig.java
@@ -89,8 +89,7 @@ public class MessagePushConfig {
*/
public static void regNavigatePush(MerchantEnum merchantEnum, Register reg) {
try {
- if (!merchantEnum.equals(MerchantEnum.WX)
- || !REG_NAVIGATE_IS_ENABLE || ObjectUtils.isEmpty(REG_NAVIGATE_URL)) {
+ if (!merchantEnum.equals(MerchantEnum.WX) || !REG_NAVIGATE_IS_ENABLE || ObjectUtils.isEmpty(REG_NAVIGATE_URL)) {
return;
}
@@ -186,8 +185,7 @@ public class MessagePushConfig {
*/
public static void regAI(MerchantEnum merchantEnum, Register reg) {
try {
- if (!merchantEnum.equals(MerchantEnum.WX)
- || !REG_AI_IS_ENABLE || reg == null || ObjectUtils.isEmpty(REG_AI_URL)) {
+ if (!merchantEnum.equals(MerchantEnum.WX) || !REG_AI_IS_ENABLE || reg == null || ObjectUtils.isEmpty(REG_AI_URL)) {
return;
}
@@ -199,8 +197,8 @@ public class MessagePushConfig {
}
String url = PWEHelper.getH5PWEUrl(reg.getOutTradeNo(), reg.getOpenid());
- if (url == null || "".equals(url)) {
- log.warn("[推送][推送]AI智能问诊推送通知失败,问诊获取参数为空 outTradeNo-{}", reg.getOutTradeNo());
+ if (ObjectUtils.isEmpty(url)) {
+ log.warn("[推送][推送]AI智能问诊推送通知失败,问诊获取参数为空 outTradeNo={}", reg.getOutTradeNo());
return;
}