From f0a09ee996ab2605869844d6a3d812709e2bf0fa Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 16 十月 2026 16:07:25 +0800
Subject: [PATCH] 任务模块、电话模块
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java | 234 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 162 insertions(+), 72 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 5a8093a..b55411c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -1,46 +1,55 @@
package com.ruoyi.web.controller.common;
-import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.common.utils.sms.smsUtils;
-import com.ruoyi.framework.config.ServerConfig;
-import com.smartor.domain.HtmlContentVO;
-import com.smartor.domain.ServiceOutPath;
-import com.smartor.domain.smsVO;
-import com.smartor.service.IServiceOutPathService;
+import com.ruoyi.message.SendResult;
+import com.ruoyi.message.sms.SmsSendRequest;
+import com.ruoyi.message.sms.SmsSenderFactory;
+import com.ruoyi.message.sms.provider.shiyi.ShiyiSmsRequest;
+import com.ruoyi.message.sms.provider.shiyi.ShiyiSmsResponse;
+import com.ruoyi.message.sms.provider.shiyi.ShiyiSmsUtil;
+import com.ruoyi.message.wechat.WechatSendRequest;
+import com.ruoyi.message.wechat.WechatSenderFactory;
+import com.smartor.domain.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
import java.util.Date;
+import com.ruoyi.task.domain.ServiceSubtask;
+import com.ruoyi.task.domain.ServiceOutPath;
+import com.ruoyi.task.service.IServiceOutPathService;
+import com.ruoyi.task.service.IServiceSubtaskService;
+/**
+ * 鐭ヤ俊鎺ュ彛锛堝澶栫煭淇� / 寰俊鍏紬鍙峰彂閫佸叆鍙o級銆�
+ * <p>
+ * 璇存槑锛氱煭淇′笌鍏紬鍙风殑绔欑偣宸紓锛堟姤鏂囨牸寮忋�佺鍚嶃�乼oken銆佽繑鍥炲垽瀹氾級宸插叏閮ㄦ敹鍙e埌
+ * {@code ruoyi-message} 妯″潡锛屾湰绫诲彧璐熻矗鍙傛暟缁勮涓庢寜 {@code active} 璺敱銆�
+ */
@RestController
@Api(description = "鐭ヤ俊鎺ュ彛")
@RequestMapping("/sms")
@Slf4j
public class SmsController {
- @Value("${xhsmsPath}")
- private String xhsmsPath;
- @Value("${xhsmsAccount}")
- private String xhsmsAccount;
+ @Autowired
+ private SmsSenderFactory smsSenderFactory;
- @Value("${xhsmsPwd}")
- private String xhsmsPwd;
+ @Autowired
+ private WechatSenderFactory wechatSenderFactory;
+
+ @Autowired
+ private ShiyiSmsUtil shiyiSmsUtil;
@Value("${localIP}")
private String ip;
@@ -53,84 +62,165 @@
@Autowired
private IServiceOutPathService iServiceOutPathService;
+ @Autowired
+ private IServiceSubtaskService iServiceSubtaskService;
+ @Value("${spring.profiles.active}")
+ private String active;
/**
- * @param
- * @return
+ * 鐭俊鍙戦�侊紙娴嬭瘯锛�
*/
@ApiOperation("鐭俊鍙戦��")
@PostMapping("/sendTest")
public AjaxResult send(@RequestBody smsVO vo) {
- String sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),vo.getContent());
- return AjaxResult.success(sendMsg);
+ //涓庡師瀹炵幇涓�鑷达細娴嬭瘯鎺ュ彛鍥哄畾璧板競涓�锛坰msUtils.sendSms锛屽惔灞辩鍚嶏級
+ SmsSendRequest request = SmsSendRequest.of(vo.getPhone(), vo.getContent());
+ request.setCampus("2");
+ SendResult sendResult = smsSenderFactory.send("hzszlyy", request);
+ return AjaxResult.success(sendResult.getRawResponse());
}
+
+ @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());
+ }
+ }
+
/**
- * @param
- * @return
+ * 鐭俊鍙戦��
*/
@ApiOperation("鐭俊鍙戦��")
@PostMapping("/send")
public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException {
- RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
- String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
- String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
- String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
- ServiceOutPath serviceOutPath = new ServiceOutPath();
- serviceOutPath.setParam1(taskId);
- serviceOutPath.setParam2(patid);
- serviceOutPath.setParam3(vo.getTaskName());
- serviceOutPath.setParam6(subId);
- serviceOutPath.setCreateTime(new Date());
- String format ="";
- if(ObjectUtils.isNotEmpty(vo.getSubId())) {
- format = String.format("%03X", Integer.parseInt(vo.getSubId()));
- serviceOutPath.setRadix(format);
+ String content = "";
+ if (StringUtils.isNotEmpty(vo.getSubId())) {
+ ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+ if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+ return AjaxResult.error(content);
}
- iServiceOutPathService.insertServiceOutPath(serviceOutPath);
- String url=ip + ":" + req_path + "/wt?p=" + format;
+ if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
+ String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
+ String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
+ Integer radix = iServiceOutPathService.selectAutoId();
+ String format = String.format("%03X", radix);
+ ServiceOutPath serviceOutPath = new ServiceOutPath();
+ serviceOutPath.setParam1(taskId);
+ serviceOutPath.setParam2(patid);
+ serviceOutPath.setParam3(vo.getTaskName());
+ serviceOutPath.setParam6(subId);
+ serviceOutPath.setRadix(format);
+ serviceOutPath.setCreateTime(new Date());
+ serviceOutPath.setOrgid(vo.getOrgid());
+ String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format;
+ content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+ serviceOutPath.setUrl(url);
+ iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+ }
- String content="鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
- if(ObjectUtils.isNotEmpty(vo.getContent()))
- content=vo.getContent();
- else
- sendChat(vo);
- String sendMsg="";
- try{
- sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),content);
+ if (ObjectUtils.isNotEmpty(vo.getContent())) content = vo.getContent();
+
+ String sendMsg = "false";
+ try {
+ if ("ls".equals(active)) {
+ //涓庡師瀹炵幇涓�鑷达細涓芥按13瀹跺尰闄㈢殑鐭俊鍔熻兘鏍囪涓烘湭寮�閫�
+ return AjaxResult.error("璇ョ煭淇″姛鑳借繕鏈紑閫�");
+ }
+ SmsSendRequest request = SmsSendRequest.of(vo.getPhone(), content, vo.getOrgid());
+ //甯備竴鍖哄垎婀栨花/鍚村北绛惧悕锛屾鎺ュ彛鏃犻櫌鍖轰俊鎭紝涓庡師瀹炵幇涓�鑷达紙闈炴箹婊ㄥ嵆鍚村北锛�
+ SendResult sendResult = smsSenderFactory.send(active, request);
+ sendMsg = sendResult.asLegacyFlag();
log.info(sendMsg);
- }catch (Exception ex){
+ } catch (Exception ex) {
log.error(ex.getMessage());
}
return AjaxResult.success(sendMsg);
}
/**
- * @param
- * @return
+ * 寰俊鍙戦��
*/
@ApiOperation("寰俊鍙戦��")
@PostMapping("/sendChat")
- public AjaxResult sendChat(@RequestBody smsVO vo) throws UnsupportedEncodingException {
- RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
- String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
- String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
- String url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid
- + "¶m3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false";
-
- String content="鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
-
- String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+vo.getIdCard()
- +"&title=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&content="+content+"&phone="+vo.getPhone()
- +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g";
- String sendMsg= "";
- try{
- sendMsg= HttpUtils.sendGet(urlTemp);
- log.info(sendMsg);
- }catch (Exception ex){
- log.error(ex.getMessage());
+ public AjaxResult sendChat(@RequestBody smsVO vo) {
+ String sendMsg = "";
+ if (StringUtils.isNotEmpty(vo.getSubId())) {
+ ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+ if (serviceSubtask.getSendstate() == 4L) sendMsg = "璇ヤ换鍔′笉鎵ц";
+ return AjaxResult.error(sendMsg);
+ }
+ if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
+ String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
+ String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
+ Integer radix = iServiceOutPathService.selectAutoId();
+ String format = String.format("%03X", radix);
+ ServiceOutPath serviceOutPath = new ServiceOutPath();
+ serviceOutPath.setParam1(taskId);
+ serviceOutPath.setParam2(patid);
+ serviceOutPath.setParam3(vo.getTaskName());
+ serviceOutPath.setParam6(subId);
+ serviceOutPath.setRadix(format);
+ serviceOutPath.setCreateTime(new Date());
+ serviceOutPath.setOrgid(vo.getOrgid());
+ iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+ String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format;
+ //涓庡師瀹炵幇涓�鑷达細璇ユ帴鍙e浐瀹氳蛋甯備竴鍏紬鍙�
+ WechatSendRequest request = new WechatSendRequest();
+ request.setIdCard(vo.getIdCard());
+ request.setPhone(vo.getPhone());
+ request.setUrl(url);
+ request.setOrgid(vo.getOrgid());
+ SendResult sendResult = wechatSenderFactory.send("hzszlyy", request);
+ sendMsg = sendResult.getRawResponse();
}
return AjaxResult.success(sendMsg);
}
+
+ /**
+ * 鐢熸垚澶栭摼
+ */
+ @ApiOperation("鐢熸垚澶栭摼")
+ @PostMapping("/getUrl")
+ public AjaxResult getUrl(@RequestBody smsVO vo) throws UnsupportedEncodingException {
+ String content = "";
+ if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
+ String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
+ String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
+ Integer radix = iServiceOutPathService.selectAutoId();
+ String format = String.format("%03X", radix);
+ ServiceOutPath serviceOutPath = new ServiceOutPath();
+ serviceOutPath.setParam1(taskId);
+ serviceOutPath.setParam2(patid);
+ serviceOutPath.setParam3(vo.getTaskName());
+ serviceOutPath.setParam6(subId);
+ serviceOutPath.setRadix(format);
+ serviceOutPath.setCreateTime(new Date());
+ serviceOutPath.setOrgid(vo.getOrgid());
+ String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format;
+// content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+ content = url;
+ serviceOutPath.setUrl(url);
+ iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+ }
+ if (StringUtils.isNotEmpty(vo.getSubId())) {
+ ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+ if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+ }
+
+ return AjaxResult.success(content);
+ }
+
}
--
Gitblit v1.9.3