sinake
9 小时以前 02e4e3a9fcfbe2a366fc75868dfa019145cea9d2
市一短信和微信问卷及orgid过滤优化
已修改12个文件
174 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceOutPathService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -11,6 +11,7 @@
import com.smartor.domain.HtmlContentVO;
import com.smartor.domain.ServiceOutPath;
import com.smartor.domain.smsVO;
import com.smartor.mapper.UtilsMapper;
import com.smartor.service.IServiceOutPathService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -27,6 +28,7 @@
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
@RestController
@Api(description = "知信接口")
@@ -54,6 +56,8 @@
    @Autowired
    private IServiceOutPathService iServiceOutPathService;
    @Autowired
    private UtilsMapper utilsMapper;
    /**
     * @param
@@ -76,31 +80,29 @@
        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());
        String format ="";
        if(ObjectUtils.isNotEmpty(vo.getSubId())) {
            format = String.format("%03X", Integer.parseInt(vo.getSubId()));
            serviceOutPath.setRadix(format);
        }
        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        String url=ip + ":" + req_path + "/wt?p=" + format;
        String url = ip + ":" + req_path + "/wt?p=" + format;
        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);
        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);
            log.info(sendMsg);
        }catch (Exception ex){
        } catch (Exception ex) {
            log.error(ex.getMessage());
        }
        return AjaxResult.success(sendMsg);
@@ -116,21 +118,22 @@
        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 + "&param2=" + patid
                + "&param3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
        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());
        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        String content="您好,邀请您填写出院调查表,请点击" + url + "填写。感谢您配合!";
        String url = ip + ":" + req_path + "/wt?p=" + format;
        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());
        }
        String sendMsg =  smsUtils.sendChat(url,vo.getPhone(),vo.getIdCard());
        return AjaxResult.success(sendMsg);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java
@@ -24,8 +24,8 @@
     */
    @ApiOperation("随访电话详情列表")
    @GetMapping("/getList")
    public AjaxResult getList() {
        return AjaxResult.success(telService.getList());
    public AjaxResult getList(String orgid) {
        return AjaxResult.success(telService.getList(orgid));
    }
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -13,6 +13,12 @@
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ruoyi.common.constant.Constants;
@@ -112,6 +118,7 @@
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            conn.setRequestProperty("Accept-Charset", "utf-8");
            conn.setRequestProperty("Charsert", "UTF-8");
            conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
            conn.setDoOutput(true);
            conn.setDoInput(true);
@@ -308,4 +315,21 @@
            return true;
        }
    }
    public static String sendPost(String url){
        HttpPost post = new HttpPost(url);
        CloseableHttpClient client = HttpClients.createDefault();
        //启动执行请求,并获得返回值
        CloseableHttpResponse execute = null;
        try {
            execute = client.execute(post);
            HttpEntity entity = execute.getEntity();
            //把实体对象转换为string
            return EntityUtils.toString(entity, "UTF-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "调用失败";
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java
@@ -5,13 +5,16 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class smsUtils {
@@ -40,4 +43,28 @@
        return sendMsg;
    }
    /**
     * 杭州市一医院吴山院区我短信接口
     *
     * @param url      微信URL
     * @param phone    手机号 13500000001
     * @param idCard  身份证
     * @return 两个参数的和
     */
    public static String sendChat(String url,String phone,String idCard){
        String urlTemp = "http://192.200.54.14:5003/sfjk/SendMessage?sfzh="
                + idCard
                + "&title=您好,邀请您填写出院调查表,请点击填写。&content=待随访&phone=" + phone
                + "&url=" + url + "&key=ff76f8904f5f32b5ee1739e8ea46e60g";
        String sendMsg = "";
        try {
            sendMsg = HttpUtils.sendPost(urlTemp);
            log.info(sendMsg);
        } catch (Exception ex) {
            sendMsg=ex.getMessage();
            log.error(ex.getMessage());
        }
        return  sendMsg;
    }
}
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
@@ -127,6 +127,10 @@
        if (originalSql.contains("insert into") || originalSql.contains("INSERT INTO") || originalSql.contains("from sys_menu") || originalSql.contains("sys_job") || originalSql.contains("update sys_menu") || originalSql.contains("information_schema.tables") || originalSql.contains("information_schema.columns") || originalSql.contains("gen_table") || originalSql.toUpperCase().contains("ORGID IS NULL") || originalSql.toUpperCase().contains("FROM CRYXX") || originalSql.toUpperCase().contains("FROM MZXX") || originalSql.toUpperCase().contains("FROM JBXX") || originalSql.toUpperCase().contains("FROM BMXX") || originalSql.toUpperCase().contains("FROM HZJBXX") || originalSql.toUpperCase().contains("RENAME TABLE") || originalSql.toUpperCase().contains("FROM YHYKSXX") || originalSql.toUpperCase().contains("FROM YHYJSXX") || originalSql.toUpperCase().contains("ALTER TABLE") || originalSql.toUpperCase().contains("CREATE TABLE")) {
            return originalSql;
        }
        if(originalSql.contains("and onorgid")){
            originalSql=originalSql.replace("and onorginid","");
            return originalSql;
        }
        // 提取 orgid 的 WHERE 子句
        String whereClause = " orgid = '" + orgid + "'";
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -645,10 +645,19 @@
                                }
                                String wxCode = "";
                                if (visitHosp == 3) {//市一医院
                                    String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+serviceSubtask.getSfzh()
                                            +"&title=您好,邀请您填写出院调查表,请点击填写。&content=您好,邀请您填写出院调查表,请点击填写。&phone="+patArchive.getTelcode()
                                            +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g";
                                    HttpUtils.sendGet(urlTemp);
                                    String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().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(ivrTask1.getTaskName());
                                    serviceOutPath.setParam6(subId);
                                    serviceOutPath.setRadix(format);
                                    serviceOutPath.setCreateTime(new Date());
                                    iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                                    url = ip + ":" + req_path + "/wt?p=" + format;
                                    smsUtils.sendChat(url,patArchive.getTelcode(),serviceSubtask.getSfzh());
                                }else{
                                    wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
                                }
smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java
@@ -60,4 +60,11 @@
     * @return 结果
     */
    public int deleteServiceOutPathByIds(Long[] ids);
    /**
     * 查询自增ID
     *
     * @return ID
     */
    public Integer selectAutoId();
}
smartor/src/main/java/com/smartor/service/IServiceOutPathService.java
@@ -58,4 +58,11 @@
     * @return 结果
     */
    public int deleteServiceOutPathById(Long id);
    /**
     * 查询自增ID
     *
     * @return ID
     */
    public Integer selectAutoId();
}
smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java
@@ -10,7 +10,7 @@
     *
     * @return 结果
     */
    public List<Map<String,Object>> getList();
    public List<Map<String,Object>> getList(String orgid);
    /**
     * 设置电话状态
smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java
@@ -84,4 +84,14 @@
    public int deleteServiceOutPathById(Long id) {
        return serviceOutPathMapper.deleteServiceOutPathById(id);
    }
    /**
     * 查询自增ID
     *
     * @return ID
     */
    @Override
    public Integer selectAutoId() {
        return serviceOutPathMapper.selectAutoId();
    }
}
smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java
@@ -4,6 +4,7 @@
import com.smartor.mapper.UtilsMapper;
import com.smartor.service.IServiceTelInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -22,8 +23,11 @@
     * @return 结果
     */
    @Override
    public List<Map<String,Object>> getList() {
       List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo where state=0  OR DATE_ADD(editTime, INTERVAL 10 MINUTE)< NOW()  ");
    public List<Map<String,Object>> getList(String orgid) {
        String where=" where state=0  OR DATE_ADD(editTime, INTERVAL 10 MINUTE)< NOW() ";
        if(ObjectUtils.isNotEmpty(orgid))
            where=where+" and orgid='"+orgid+"'";
       List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo " +where);
        return lists;
    }
    /**
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -151,6 +151,9 @@
            #{id}
        </foreach>
    </update>
    <select id="selectAutoId" resultType="Integer" >
        SELECT AUTO_INCREMENT FROM  INFORMATION_SCHEMA.TABLES
         WHERE  TABLE_NAME  = 'service_out_path'  AND table_schema = DATABASE() and onorgid
    </select>
</mapper>