1、石林医共体绑定问题排查。

2、石林医共体缴费数据上报至电子健康卡,查询用户数据存在不确定id是医共体的id还是患者id的问题修复。
3、兼容电子健康卡如果请求链接为http时,后端如果强制为https,调整为请求链接的协议。
4、非分时段挂号的数据合并存在数据错误的问题修复,判断今日是否有号的条件调整为默认以传入时段为主。
5、HIS请求兼容第三方HIS并新增配置请求地址,移除不使用的调用请求。新增响应数据调试。
debug
王绍全 4 hours ago
parent a1bb7fa762
commit 33aaf52d1f
  1. 38
      src/main/java/com/ynxbd/common/TestA.java
  2. 12
      src/main/java/com/ynxbd/common/action/AIGuidanceAction.java
  3. 2
      src/main/java/com/ynxbd/common/action/RegisterAction.java
  4. 2
      src/main/java/com/ynxbd/common/action/pay/PayAction.java
  5. 30
      src/main/java/com/ynxbd/common/dao/PatientDao.java
  6. 2
      src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java
  7. 8
      src/main/java/com/ynxbd/common/helper/HealthCardHelper.java
  8. 15
      src/main/java/com/ynxbd/common/helper/TestHelper.java
  9. 12
      src/main/java/com/ynxbd/common/helper/common/URLHelper.java
  10. 3
      src/main/java/com/ynxbd/common/helper/his/HisHelper.java
  11. 11
      src/main/java/com/ynxbd/common/service/HealthUploadService.java
  12. 4
      src/main/java/com/ynxbd/common/service/RegService.java
  13. 13
      src/main/java/com/ynxbd/wx/config/WeChatConfig.java
  14. 4
      src/main/java/com/ynxbd/wx/wxfactory/medical/Client.java
  15. 2
      src/main/resources/webservice.properties

@ -1,7 +1,9 @@
package com.ynxbd.common; package com.ynxbd.common;
import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.helper.common.HMACHelper; import com.ynxbd.common.helper.common.HMACHelper;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.JsonResultEnum;
public class TestA { public class TestA {
@ -22,15 +24,33 @@ public class TestA {
// System.out.println(cacheSign); // System.out.println(cacheSign);
// } // }
// public static void main(String[] args) {
// String KEY = "795b207e12572839976d9310bdde32be";
// String PARTNER_ID = "100000317";
//
// String timestamp = System.currentTimeMillis() + "";
// String str = PARTNER_ID + timestamp;
// String cacheSign = HMACHelper.sha256(str, KEY);
// System.out.println(timestamp);
// System.out.println(cacheSign);
// }
public static void main(String[] args) { public static void main(String[] args) {
String KEY = "795b207e12572839976d9310bdde32be"; String respXML = "<Response>\n" +
String PARTNER_ID = "100000317"; "\t<TransactionCode>1002</TransactionCode>\n" +
"\t<ResponseCode>0</ResponseCode>\n" +
String timestamp = System.currentTimeMillis() + ""; "\t<ResponseMessage>成功</ResponseMessage>\n" +
String str = PARTNER_ID + timestamp; "\t<PatientID>932606</PatientID>\n" +
String cacheSign = HMACHelper.sha256(str, KEY); "\t<Empi_Id>300349719</Empi_Id>\n" +
System.out.println(timestamp); "\t<HISTrasNo>137087</HISTrasNo>\n" +
System.out.println(cacheSign); "</Response>";
JsonResult result = JsonResult.xmlToBean(respXML, JsonResultEnum.SYS_HIS);
if (result == null) {
return;
}
Patient patient = result.dataMapToBean(Patient.class);
System.out.println(patient);
} }

@ -61,9 +61,9 @@ public class AIGuidanceAction extends BaseAction {
*/ */
@Action("getDeptList") @Action("getDeptList")
public Result getDeptList(String hosId, String branchId) { public Result getDeptList(String hosId, String branchId) {
// if (!AIGuidanceConfig.isVerifySign(request)) { if (!AIGuidanceConfig.isVerifySign(request)) {
// return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 return Result.error(ResultEnum.SIGN_ERROR); // 签名异常
// } }
return new AIGuidanceService().getDeptList(hosId, branchId); return new AIGuidanceService().getDeptList(hosId, branchId);
} }
@ -72,9 +72,9 @@ public class AIGuidanceAction extends BaseAction {
*/ */
@Action("getDoctorList") @Action("getDoctorList")
public Result getDoctorList(String hosId, String branchId, String deptId) { public Result getDoctorList(String hosId, String branchId, String deptId) {
// if (!AIGuidanceConfig.isVerifySign(request)) { if (!AIGuidanceConfig.isVerifySign(request)) {
// return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 return Result.error(ResultEnum.SIGN_ERROR); // 签名异常
// } }
return new AIGuidanceService().getDoctorList(hosId, branchId, deptId); return new AIGuidanceService().getDoctorList(hosId, branchId, deptId);
} }

@ -117,7 +117,7 @@ public class RegisterAction extends BaseAction {
* [挂号]查询号源状态[POST] * [挂号]查询号源状态[POST]
* *
* @param isSplitTime 是否为分时段 * @param isSplitTime 是否为分时段
* @param isTimeInterval 是否根据时段判断今日是否有号 * @param isTimeInterval 是否使用时段作为返回是否有号源的判断默认true
* @param deptCode 科室编码 * @param deptCode 科室编码
* @param subDeptCode 亚专科编码 * @param subDeptCode 亚专科编码
* @param timeInterval 时段[分时段无需传参] * @param timeInterval 时段[分时段无需传参]

@ -310,7 +310,7 @@ public class PayAction extends BaseAction {
/** /**
* 扫码盒子[His退费] * 盒子退费[HIS退费]
* *
* @param callNo 调用码 { recipe处方register挂号in_hosp住院预交金 } * @param callNo 调用码 { recipe处方register挂号in_hosp住院预交金 }
* @param patientId 患者ID * @param patientId 患者ID

@ -137,6 +137,34 @@ public class PatientDao {
return !dataList.isEmpty() ? dataList.get(0) : null; return !dataList.isEmpty() ? dataList.get(0) : null;
} }
/**
* [患者信息]查询上传数据主要用于处方缴费查询患者信息
*
* @param openid openid
* @param epId 医共体id|本院id
* @return 患者信息
*/
public Patient selectHCUploadByOpenidAndEPId(String openid, String epId) {
if (ObjectUtils.isEmpty(epId)) {
return null;
}
String sql;
if (WeChatConfig.IS_ENABLE_GMC) {
sql = "select * from patientBase where openid= ? and (patientId= ? or empiId= ?) and deletedState = 0";
} else {
sql = "select * from patientBase where openid= ? and patientId= ? and deletedState = 0";
}
List<Patient> dataList = DataBase.select(sql, Patient.class, ps -> {
ps.setString(1, openid);
ps.setString(2, epId);
if (WeChatConfig.IS_ENABLE_GMC) {
ps.setString(3, epId);
}
});
return !dataList.isEmpty() ? dataList.get(0) : null;
}
/** /**
* 健康卡解绑 * 健康卡解绑
* *
@ -304,7 +332,7 @@ public class PatientDao {
// 设置插入的占位符 // 设置插入的占位符
private void setInsertPs(PreparedStatement ps, Patient item) throws SQLException { private void setInsertPs(PreparedStatement ps, Patient item) throws SQLException {
item.setGmcBindState(WeChatConfig.IS_ENABLE_GMC ? 1 : item.getGmcBindState() == null ? 0 : item.getGmcBindState()); item.setGmcBindState(WeChatConfig.IS_ENABLE_GMC ? 1 : item.getGmcBindState() == null ? 0 : item.getGmcBindState());
item.setEmpiId(WeChatConfig.IS_ENABLE_GMC ? null : item.getEmpiId()); item.setEmpiId(WeChatConfig.IS_ENABLE_GMC ? item.getEmpiId() : null);
HCardTypeEnum cardTypeEnum = item.getCardTypeEnum(); HCardTypeEnum cardTypeEnum = item.getCardTypeEnum();

@ -117,7 +117,7 @@ public class HisRegisterDao {
*/ */
public Map<String, Integer> queryHisRegSourceState(String deptCode, String subDeptCode, Boolean isTimeInterval, String timeInterval) { public Map<String, Integer> queryHisRegSourceState(String deptCode, String subDeptCode, Boolean isTimeInterval, String timeInterval) {
if (isTimeInterval == null) { if (isTimeInterval == null) {
isTimeInterval = false; isTimeInterval = true;
} }
List<Doctor> doctorList = queryHisResRegDoctorList(deptCode, null); List<Doctor> doctorList = queryHisResRegDoctorList(deptCode, null);

@ -37,7 +37,7 @@ public class HealthCardHelper {
} }
String domain = WeChatConfig.getDomain(false, false); String domain = WeChatConfig.getDomain(false, false);
String webURL = WeChatConfig.getWebReqURL(isHttps); String webURL = WeChatConfig.reqProtocolToWebURL(isHttps);
// 授权成功回调页 // 授权成功回调页
String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}"); String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}");
@ -112,7 +112,7 @@ public class HealthCardHelper {
return null; return null;
} }
String webURL = WeChatConfig.getWebReqURL(isHttps); String webURL = WeChatConfig.reqProtocolToWebURL(isHttps);
// 授权成功回调页 // 授权成功回调页
String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}"); String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}");
@ -246,7 +246,7 @@ public class HealthCardHelper {
patient.setBirthday(card.getString("birthday")); patient.setBirthday(card.getString("birthday"));
patient.setIsMyself(card.getBoolean("isSelf")); patient.setIsMyself(card.getBoolean("isSelf"));
log.info("[电子健康卡]健康卡授权码获取健康卡信息 info:{}", JsonHelper.toJsonString(patient)); log.info("[电子健康卡]健康卡授权码获取健康卡信息 info:[{}]", JsonHelper.toJsonString(patient));
return patient; return patient;
} }
@ -444,7 +444,7 @@ public class HealthCardHelper {
throw new ServiceException("[电子健康卡]实人认证生成orderId-请求体CommonIn缺失"); throw new ServiceException("[电子健康卡]实人认证生成orderId-请求体CommonIn缺失");
} }
String webURL = WeChatConfig.getWebReqURL(isHttps); String webURL = WeChatConfig.reqProtocolToWebURL(isHttps);
String verifySuccessRedirectUrl = webURL + redirectPage + "?registerOrderId=${registerOrderId}" + redirectHash; String verifySuccessRedirectUrl = webURL + redirectPage + "?registerOrderId=${registerOrderId}" + redirectHash;
String verifyFailRedirectUrl = webURL + "health-card-fail.html?code=-3"; String verifyFailRedirectUrl = webURL + "health-card-fail.html?code=-3";

@ -4,6 +4,7 @@ import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator; import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.algorithms.Algorithm;
import com.ynxbd.common.helper.common.JwtHelper; import com.ynxbd.common.helper.common.JwtHelper;
import com.ynxbd.wx.utils.DesEncryptHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Calendar; import java.util.Calendar;
@ -41,11 +42,17 @@ public class TestHelper {
} }
} }
// public static void main(String[] args) {
// String token = createOpenIdToken("token", "openid-123");
// System.out.println(token);
// String openid = getUserOpenId(token);
// System.out.println(openid);
// }
public static void main(String[] args) { public static void main(String[] args) {
String token = createOpenIdToken("token", "openid-123"); String token = "99CB4E005E234DDA73B67CB9F369425933951D90DA1778B1DDA55F3E0E6E24DCD40BBA9E60FDBB1D607848053494BFBCF9E39900626C6B3208CA72FF386E13401F65C2F874614CA7C085D6DC51C258F4800EA613E482FB3F87006ABD62C2730FFC16B1AE0E44762D76775510A3EEB8785B871B9759F1A7D22E860BE284C18F095F5F6D38C31D9965B4C0434D3BBBBE39";
System.out.println(token); String deToken = DesEncryptHelper.deCode(token);
String openid = getUserOpenId(token); System.out.println(deToken);
System.out.println(openid);
} }
/** /**

@ -73,6 +73,18 @@ public class URLHelper {
return url; return url;
} }
public static String URLToHttp(String url) {
if (ObjectUtils.isEmpty(url)) {
return null;
}
int index = url.indexOf("https://");
if (index == 0) {
return "http://" + url.substring(8);
}
return url;
}
public static String encodeURL(String param, boolean isReturnNull) { public static String encodeURL(String param, boolean isReturnNull) {
param = encodeURL(param); param = encodeURL(param);
if (param == null) { if (param == null) {

@ -219,9 +219,6 @@ public class HisHelper {
} }
} }
} }
new MiddleOfficeService().req_his_JH0104(soapUrl, HIS_WX_MED_URL, params, transactionCode, result);
} catch (DocumentException e) { } catch (DocumentException e) {
ErrorHelper.println(e); ErrorHelper.println(e);
} }

@ -1,12 +1,12 @@
package com.ynxbd.common.service; package com.ynxbd.common.service;
import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.bean.Patient; import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.bean.enums.HealthCardEnum; import com.ynxbd.common.bean.enums.HealthCardEnum;
import com.ynxbd.common.config.HealthCardConfig; import com.ynxbd.common.config.HealthCardConfig;
import com.ynxbd.common.dao.PatientDao; import com.ynxbd.common.dao.PatientDao;
import com.ynxbd.common.helper.HealthCardHelper; import com.ynxbd.common.helper.HealthCardHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -36,9 +36,6 @@ public class HealthUploadService {
return; return;
} }
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String today = format.format(new Date());
Patient patient = new PatientDao().selectByOpenidAndEPId(openid, patientId); Patient patient = new PatientDao().selectByOpenidAndEPId(openid, patientId);
if (patient == null) { if (patient == null) {
return; return;
@ -47,6 +44,8 @@ public class HealthUploadService {
String healthCardId = patient.getHealthCardId(); String healthCardId = patient.getHealthCardId();
String idCardNo = patient.getIdCardNo(); String idCardNo = patient.getIdCardNo();
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String scene = regDate.equals(today) String scene = regDate.equals(today)
? HealthCardEnum.SCENE_REGISTER_SITE.STATUS ? HealthCardEnum.SCENE_REGISTER_SITE.STATUS
: HealthCardEnum.SCENE_REGISTER_RESERVE.STATUS; : HealthCardEnum.SCENE_REGISTER_RESERVE.STATUS;
@ -73,11 +72,11 @@ public class HealthUploadService {
return; return;
} }
if (patientId == null || openid == null) { if (ObjectUtils.isEmpty(openid) || ObjectUtils.isEmpty(patientId)) {
return; return;
} }
Patient patient = new PatientDao().selectByOpenidAndEPId(openid, patientId); Patient patient = new PatientDao().selectHCUploadByOpenidAndEPId(openid, patientId);
if (patient == null) { if (patient == null) {
return; return;
} }

@ -1076,9 +1076,7 @@ public class RegService {
HisRegisterDao hisRegisterDao = new HisRegisterDao(); HisRegisterDao hisRegisterDao = new HisRegisterDao();
List<Dept> deptList = hisRegisterDao.getRegResDeptList(); List<Dept> deptList = hisRegisterDao.getRegResDeptList();
List<Dept> todayDeptList = hisRegisterDao.getRegResDeptList(); List<Dept> todayDeptList = hisRegisterDao.getRegTodayDeptList(null);
hisRegisterDao.getRegTodayDeptList(null);
String sourceInfo = "今日有号"; String sourceInfo = "今日有号";

@ -182,6 +182,19 @@ public class WeChatConfig {
return url; return url;
} }
// 根据请求的协议类型返回相同协议的地址
public static String reqProtocolToWebURL(boolean isHttps) {
String url = WEB_REQ_URL;
if (isHttps && !HAS_HTTPS_BY_BASE_URL) {
return URLHelper.URLToHttps(url);
}
if (!isHttps && HAS_HTTPS_BY_BASE_URL) {
return URLHelper.URLToHttp(url);
}
return url;
}
public static String getGMCAuthDomain(boolean isHttps, boolean isServerName) { public static String getGMCAuthDomain(boolean isHttps, boolean isServerName) {
String domain = GMC_AUTH_DOMAIN; String domain = GMC_AUTH_DOMAIN;
if (domain == null) { if (domain == null) {

@ -359,7 +359,7 @@ public class Client {
String message = respJson.getString("message"); String message = respJson.getString("message");
log.info("respJson={}", JsonHelper.toJsonString(respJson)); log.info("respJson={}", JsonHelper.toJsonString(respJson));
if (!"0".equals(code)) { if (!"0".equals(code)) {
log.error("【微信-医保】[授权]失败 resp={}", respJson); log.warn("【微信-医保】[授权]失败 resp={}", respJson);
info.setMessage(String.format("[%s] %s", code, message)); info.setMessage(String.format("[%s] %s", code, message));
return info; return info;
@ -381,7 +381,7 @@ public class Client {
info.setCardNo(cardNo); info.setCardNo(cardNo);
respJson.remove("user_card_no"); respJson.remove("user_card_no");
} }
log.error("【微信-医保】[授权]返回 resp={}", respJson); log.info("【微信-医保】[授权]返回 resp={}", respJson);
info.setUserName(userName); info.setUserName(userName);
info.setPayAuthNo(payAuthNo); info.setPayAuthNo(payAuthNo);

@ -1 +1 @@
# \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false # \u672C\u5730 #his.url=127.0.0.1:8888 # HIS\u662F\u5426\u5F00\u542F\u652F\u4ED8\u5B9D\u5206\u5F00\u5BF9\u8D26 his.is_ali_mer=false # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=false # \u5DDE\u50A3\u533B\u4F7F\u7528 his.is_req_cdata=false # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=200.200.200.105:8888 # \u533B\u4FDD=========================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u5FAE\u4FE1\u533B\u4FDD his.wx_med_url=10.20.10.7:7885 # \u652F\u4ED8\u5B9D\u533B\u4FDD his.ali_med_url=10.20.10.7:7885 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u77F3\u6797\u6D4B\u8BD5 #his.url=200.200.200.105:8888 # \u6D4B\u8BD5============================================================ # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:9999 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u5B81\u8497\u53BF\u533B\u9662 his.url=192.168.10.8:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910 # \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false # \u672C\u5730 #his.url=127.0.0.1:8888 # HIS\u662F\u5426\u5F00\u542F\u652F\u4ED8\u5B9D\u5206\u5F00\u5BF9\u8D26 his.is_ali_mer=false # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=false # \u5DDE\u50A3\u533B\u4F7F\u7528 his.is_req_cdata=false # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=200.200.200.105:8888 # \u533B\u4FDD=========================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u5FAE\u4FE1\u533B\u4FDD his.wx_med_url=10.20.10.7:7885 # \u652F\u4ED8\u5B9D\u533B\u4FDD his.ali_med_url=10.20.10.7:7885 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u77F3\u6797\u6D4B\u8BD5 #his.url=200.200.200.105:8888 # \u6D4B\u8BD5============================================================ # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:9999 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u5B81\u8497\u53BF\u533B\u9662 #his.url=192.168.10.8:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 #\u666F\u6D2A\u4E2D\u50A3\u533B his.url=192.168.197.217:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910
Loading…
Cancel
Save