新增测试环境用户限制

debug
wangsq 1 year ago
parent 2d03d453ff
commit 97a5542288
  1. 6
      src/main/java/com/ynxbd/common/action/PWEAction.java
  2. 2
      src/main/java/com/ynxbd/common/action/RecipeAction.java
  3. 18
      src/main/java/com/ynxbd/wx/pwe/PWEConfig.java
  4. 12
      src/main/java/com/ynxbd/wx/pwe/PWEHelper.java
  5. 1
      src/main/resources/pwe.properties

@ -54,13 +54,13 @@ public class PWEAction extends BaseAction {
* [预问诊][患者端]获取预问诊H5链接 * [预问诊][患者端]获取预问诊H5链接
*/ */
@Action("getH5PWEUrl") @Action("getH5PWEUrl")
public Result getH5PWEUrl(String registerId) { public Result getH5PWEUrl(String registerId, String openid) {
try { try {
log.info("[预问诊][患者端]获取预问诊h5链接 registerId={}", registerId); log.info("[预问诊][患者端]获取预问诊h5链接 registerId={}", registerId);
if (ObjectUtils.isEmpty(registerId)) { if (ObjectUtils.isEmpty(registerId)) {
return Result.error(ResultEnum.PARAM_IS_BLANK); return Result.error(ResultEnum.PARAM_IS_BLANK);
} }
String miniPWEUrl = PWEHelper.getH5PWEUrl(registerId); String miniPWEUrl = PWEHelper.getH5PWEUrl(registerId, openid);
return Result.success(miniPWEUrl); return Result.success(miniPWEUrl);
} catch (Exception e) { } catch (Exception e) {
return Result.error(e); return Result.error(e);
@ -111,7 +111,7 @@ public class PWEAction extends BaseAction {
Register order = new PWEReportDao().selectRegOrderInfo(registeredId); Register order = new PWEReportDao().selectRegOrderInfo(registeredId);
log.info("[预问诊]6.3 预问诊完成通知 partnerId={}, hospitalId={}, registeredId={}, progress={}", partnerId, hospitalId, registeredId, progress); log.info("[预问诊]6.3 预问诊完成通知 partnerId={}, hospitalId={}, registeredId={}, progress={}", partnerId, hospitalId, registeredId, progress);
if ("1".equals(progress)) { if ("1".equals(progress)) {
log.info("进度100%"); log.info("[预问诊]报告生成进度100%");
MessagePushConfig.regAIReport(order.getPatientId()); MessagePushConfig.regAIReport(order.getPatientId());
} }
return PWEResult.success(); return PWEResult.success();

@ -6,7 +6,6 @@ import com.ynxbd.common.bean.NatRecord;
import com.ynxbd.common.bean.Patient; import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.Recipe; import com.ynxbd.common.bean.pay.Recipe;
import com.ynxbd.common.bean.xk.medicalRecipe;
import com.ynxbd.common.dao.NatRecordDao; import com.ynxbd.common.dao.NatRecordDao;
import com.ynxbd.common.dao.PatientDao; import com.ynxbd.common.dao.PatientDao;
import com.ynxbd.common.dao.his.HisRecipeDao; import com.ynxbd.common.dao.his.HisRecipeDao;
@ -17,7 +16,6 @@ import com.ynxbd.common.helper.his.HisHelper;
import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.Result; import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.service.PeisService;
import com.ynxbd.common.service.RecipeService; import com.ynxbd.common.service.RecipeService;
import com.ynxbd.wx.config.WeChatConfig; import com.ynxbd.wx.config.WeChatConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

@ -2,6 +2,10 @@ package com.ynxbd.wx.pwe;
import com.ynxbd.common.helper.ProperHelper; import com.ynxbd.common.helper.ProperHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import java.util.Arrays;
import java.util.List;
@Slf4j @Slf4j
public class PWEConfig { public class PWEConfig {
@ -10,6 +14,7 @@ public class PWEConfig {
public static final String PARTNER_SECRET; // 合作方密钥 public static final String PARTNER_SECRET; // 合作方密钥
public static final String HOSPITAL_ID; // 医院ID public static final String HOSPITAL_ID; // 医院ID
public static final String SECRET_KEY; // 私钥 public static final String SECRET_KEY; // 私钥
public static final String OPEN_IDS; // openIds
// //
public static final boolean IS_DEV; public static final boolean IS_DEV;
@ -24,16 +29,29 @@ public class PWEConfig {
PARTNER_ID = config.getString("pwe.partner_id"); PARTNER_ID = config.getString("pwe.partner_id");
PARTNER_SECRET = config.getString(IS_DEV ? "pwe.dev.partner_secret" : "pwe.partner_secret"); PARTNER_SECRET = config.getString(IS_DEV ? "pwe.dev.partner_secret" : "pwe.partner_secret");
SECRET_KEY = config.getString(IS_DEV ? "pwe.dev.secret_key" : "pwe.secret_key"); SECRET_KEY = config.getString(IS_DEV ? "pwe.dev.secret_key" : "pwe.secret_key");
OPEN_IDS = config.getString("pwe.dev.open_ids");
} else { } else {
IS_DEV = false; IS_DEV = false;
HOSPITAL_ID = null; HOSPITAL_ID = null;
PARTNER_ID = null; PARTNER_ID = null;
PARTNER_SECRET = null; PARTNER_SECRET = null;
SECRET_KEY = null; SECRET_KEY = null;
OPEN_IDS = null;
} }
if (PARTNER_ID == null || PARTNER_SECRET == null) { if (PARTNER_ID == null || PARTNER_SECRET == null) {
log.error("[预问诊]读取配置文件pwe.properties失败"); log.error("[预问诊]读取配置文件pwe.properties失败");
} }
} }
public static boolean hasOpenId(String openid) {
if (ObjectUtils.isEmpty(openid)) {
return false;
}
String openIds = OPEN_IDS == null ? "" : OPEN_IDS;
List<String> openIdList = Arrays.asList(openIds.split(","));
return openIdList.contains(openid);
}
} }

@ -2,7 +2,6 @@ package com.ynxbd.wx.pwe;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.helper.common.CodeHelper; import com.ynxbd.common.helper.common.CodeHelper;
import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.common.URLHelper; import com.ynxbd.common.helper.common.URLHelper;
import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.helper.http.OkHttpHelper;
import com.ynxbd.common.result.ServiceException; import com.ynxbd.common.result.ServiceException;
@ -12,7 +11,6 @@ import org.apache.commons.lang3.ObjectUtils;
import javax.crypto.Mac; import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -69,11 +67,17 @@ public class PWEHelper {
* *
* @param registerId 挂号ID商户订单号 outTradeNo * @param registerId 挂号ID商户订单号 outTradeNo
*/ */
public static String getH5PWEUrl(String registerId) { public static String getH5PWEUrl(String registerId, String openid) {
log.info("[患者端]获取预问诊h5链接 registerId={}", registerId); log.info("[患者端]获取预问诊h5链接 registerId={}", registerId);
String registerIdSign = toHmacSha256Example(PWEConfig.SECRET_KEY, (PWEConfig.HOSPITAL_ID + registerId)); String registerIdSign = toHmacSha256Example(PWEConfig.SECRET_KEY, (PWEConfig.HOSPITAL_ID + registerId));
if (ObjectUtils.isEmpty(registerIdSign)) { if (ObjectUtils.isEmpty(registerIdSign)) {
log.error("签名失败"); log.error("[患者端]获取预问诊h5链接,签名失败");
return null;
}
// 测试环境,并且未找到用户
if (PWEConfig.IS_DEV && !PWEConfig.hasOpenId(openid)) {
log.error("[患者端]测试环境未找到用户 openid={}", openid);
return null;
} }
String params = URLHelper.mapToUrl(map -> { String params = URLHelper.mapToUrl(map -> {
map.put("partnerId", PWEConfig.PARTNER_ID); map.put("partnerId", PWEConfig.PARTNER_ID);

@ -9,3 +9,4 @@ pwe.secret_key=ZLU6bW&x#%k@2kxW
# dev================== # dev==================
pwe.dev.partner_secret=ad99d34eb89b5fb517380ff4745ada1e pwe.dev.partner_secret=ad99d34eb89b5fb517380ff4745ada1e
pwe.dev.secret_key=P*HEi#aNN8hJ6*EA pwe.dev.secret_key=P*HEi#aNN8hJ6*EA
pwe.dev.open_ids=1,2
Loading…
Cancel
Save