陈昶聿
3 天以前 3998703641edf236113f77f15c79561fd7f75c59
【市一】短信发送
已修改3个文件
82 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -10,7 +10,10 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sms.smsUtils;
import com.smartor.common.MtSubmitSmUtil;
import com.smartor.common.ShiyiSmsUtil;
import com.smartor.domain.ServiceOutPath;
import com.smartor.domain.ShiyiSmsRequest;
import com.smartor.domain.ShiyiSmsResponse;
import com.smartor.domain.smsVO;
import com.smartor.mapper.UtilsMapper;
import com.smartor.service.IServiceOutPathService;
@@ -43,6 +46,9 @@
    @Autowired
    private MtSubmitSmUtil mtSubmitSmUtil;
    @Autowired
    private ShiyiSmsUtil shiyiSmsUtil;
    @Value("${xhsmsAccount}")
    private String xhsmsAccount;
@@ -73,6 +79,18 @@
    public AjaxResult send(@RequestBody smsVO vo) {
        String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), vo.getContent());
        return AjaxResult.success(sendMsg);
    }
    @ApiOperation("市一HIS短信XML测试")
    @PostMapping("/sendShiyiTest")
    public AjaxResult sendShiyiTest(@RequestBody ShiyiSmsRequest request) {
        try {
            ShiyiSmsResponse response = shiyiSmsUtil.sendSms(request);
            return AjaxResult.success(response);
        } catch (Exception e) {
            log.error("市一HIS短信XML测试失败", e);
            return AjaxResult.error("市一HIS短信XML测试失败: " + e.getMessage());
        }
    }
    /**
@@ -167,4 +185,6 @@
        }
        return AjaxResult.success(sendMsg);
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
@@ -157,6 +157,66 @@
     * @param respBodyClass 响应体类型
     * @return 返回的响应结果
     */
    public static String postXmlRequest(String url, String request) throws HttpRequestException {
        return postXmlRequest(url, request, EMPTY_HEADERS);
    }
    public static String postXmlRequest(String url, String request, Map<String, String> headers) throws HttpRequestException {
        Assert.hasLength(url, "璇锋眰url涓嶈兘涓虹┖瀛楃涓层€?");
        Assert.notNull(request, "XML request must not be null");
        EntityEnclosingMethod httpMethod = new PostMethod(url);
        httpMethod.addRequestHeader(CONTENT_TYPE, TEXT_XML_UTF8);
        setHeaderRequestId(httpMethod);
        if (headers != null && headers != EMPTY_HEADERS) {
            setReqHeaders(headers, httpMethod);
        }
        try {
            RequestEntity entity = new StringRequestEntity(request, TEXT_XML, StandardCharsets.UTF_8.name());
            httpMethod.setRequestEntity(entity);
            int resultCode = httpClient.executeMethod(httpMethod);
            String contentType = httpMethod.getResponseHeader(CONTENT_TYPE) == null
                    ? null : httpMethod.getResponseHeader(CONTENT_TYPE).getValue();
            String charset = StandardCharsets.UTF_8.name();
            if (contentType != null && contentType.contains("charset=")) {
                String[] parts = contentType.split("charset=");
                if (parts.length > 1) {
                    charset = parts[1].split(";")[0].trim();
                }
            }
            InputStream inputStream = httpMethod.getResponseBodyAsStream();
            if (inputStream == null) {
                throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "鍝嶅簲涓簄ull");
            }
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
            StringBuilder stringBuilder = new StringBuilder();
            String str;
            while ((str = reader.readLine()) != null) {
                stringBuilder.append(str);
            }
            reader.close();
            String respXml = stringBuilder.toString();
            if (resultCode == OK) {
                return respXml;
            } else {
                throw new HttpRequestException(resultCode, respXml);
            }
        } catch (UnsupportedEncodingException e) {
            throw new HttpRequestException(ENCODING_ERROR_CODE, e);
        } catch (HttpException e) {
            throw new HttpRequestException(HTTP_ERROR_CODE, e);
        } catch (IOException e) {
            throw new HttpRequestException(IO_ERROR_CODE, e);
        } finally {
            if (httpMethod != null) {
                httpMethod.releaseConnection();
            }
        }
    }
    @SuppressWarnings("unchecked")
    public static <RESPBODY> HttpEntity<RESPBODY> postJsonRequestV2(String url, HttpEntity<?> reqEntity, Class<RESPBODY> respBodyClass) {
        Assert.hasLength(url, "请求url不能为空字符串。");
smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java
@@ -94,7 +94,7 @@
     */
    public String invokeRunService(String tradeType, String tradeMsg) {
        String soapEnvelope = buildSoapEnvelope(tradeType, tradeMsg);
        String hisServiceUrl = "http://192.200.54.57:7790/MediInfoHis.svc";
        String hisServiceUrl = "http://192.178.0.104:7790/MediInfoHis.svc";
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(new MediaType("text", "xml", StandardCharsets.UTF_8));