一、例图

泛微rest接口 泛微接口开发_泛微rest接口


urlstr:发送短信url

urlToken:获取令牌url

sendTimeSecond :发送时间间隔

templateCode:短信模板

调通接口前需要先获取到令牌(令牌的有效期只有24个小时)
思路:
1、获取令牌
2、设置有效期
3、判断是否过期
4、发送调用短信接口
5、创建一个可配置的模板表
6、创建一个手机号表可供调整不发送短信的用户

二、代码实现

package weaver.sms;

import net.sf.json.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.protocol.HTTP;

import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.StaticObj;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 作者:null
 * 日期:2020/5/19
 * 作用:请求发送短信接口
 */
public class RSMFLSms extends BaseBean implements SmsService {




    // 下面这些赋值是为了其他接口调用短信接口获取参数用
    // 定时发送短信url
    static String urlstr = "http://192.168.1.1:8080/sms/api/AddSMSMessages";
    // 获取令牌url
    static String urlToken = "http://192.168.1.1:8080/usercenter/api/TokenAuth/Authenticate";
    // 账号
    String userNameOrEmailAddress = "user";
    // 密码
    String password = "password";
    // 默认一分钟后发送
    String sendTimeSecond = "60";
    // 用户名
    String username = "[系统提示]。";
    // 模板名
    String templateCode = "SMS_190720521342";

    public String getTemplateCode(){return  templateCode;}

    public void setTemplateCode(String templateCode){this.templateCode = templateCode;}

    public String getUrlstr() {
        return urlstr;
    }

    public void setUrlstr(String urlstr) {
        this.urlstr = urlstr;
    }


    public String getUrlToken() {
        return urlToken;
    }

    public void setUrlToken(String urlstr) {
        this.urlToken = urlToken;
    }

    RecordSet rs = new RecordSet();



    public String getUserNameOrEmailAddress() {
        return userNameOrEmailAddress;
    }

    public void setUserNameOrEmailAddress(String userNameOrEmailAddress) {
        this.userNameOrEmailAddress = userNameOrEmailAddress;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSendTimeSecond() {
        return sendTimeSecond;
    }

    public void setSendTimeSecond(String sendTimeSecond) {
        this.sendTimeSecond = sendTimeSecond;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }




    // 令牌缓存
    public   StaticObj staticObj = null;
    // 不发送短信手机号缓存
    public StaticObj mobileObj = null;
    public RSMFLSms() throws Exception{
        staticObj = StaticObj.getInstance();
        mobileObj = StaticObj.getInstance();

        /*rs.writeLog("开始缓存手机号码");
        this.mobileCache(); // 开始缓存手机号码*/

    }




    // 获取当前日期,这个费用系统的时间格式
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
    // 给当前日期赋值
    String currentTime = null;

    @Override
    public boolean sendSMS(String sumid, String mobile, String content) {
//         writeLog(getUrlToken()+"  url:"+getUrlstr()+"    密码:"+getPassword()+"   用户:"+getUserNameOrEmailAddress()+"   发送秒:"+getSendTimeSecond()+"     模板代码:"+getTemplateCode() +"    用户名称:"+getUsername() );
        currentTime = dateFormat.format(new Date());

        /* userNameOrEmailAddress =getUserNameOrEmailAddress(); // 账号
         password = getPassword(); // 密码*/
        // 登录密码账号
        Map<String,String> map = new HashMap<String,String>();
        map.put("userNameOrEmailAddress",String.valueOf(getUserNameOrEmailAddress()));
        map.put("password",String.valueOf(getPassword()));


        try {


                // 获取用户名
            /*User user = new User();
            String username = SystemEnv.getHtmlLabelName(-15112,user.getLanguage());  // 获取 用户名*/
                username = String.valueOf(getUsername());
                if( staticObj.getObject("accessToken") != null) {
                    // 获取当前时间 并修改格式

                    Date currentData = dateFormat.parse(currentTime);
                    Date expireData = dateFormat.parse(staticObj.getObject("expireTime").toString());
                    boolean b = currentData.before(expireData); // 判断当前时间是否在这之前

                    // 判断时间是否过期
                    if(b){
                        // 直接调用
					/*Map<String,Object> objVal =  new HashMap<String, Object>();
					objVal.put("accessToken",staticObj.getObject("accessToken"));*/
                        writeLog("打印缓存令牌未过期时间:"+staticObj.getObject("expireTime"));

                        // 把令牌存储到Map中用于发送短信
                        Map<String,String > tokenValue = new HashMap<String, String>();
                        tokenValue.put("accessToken",staticObj.getObject("accessToken").toString());

                        // writeLog("打印成功缓存令牌"+tokenValue.get("accessToken"));
                        //writeLog("打印从缓存那里取的数据:"+staticObj.getObject("accessToken")+"  过期时间:"+staticObj.getObject("expireTime")+"  用户名:"+username+"   令牌:"+tokenValue);


                        // 判断短信维护人员
                        if(mobileObj.getObject(mobile) == null || mobileObj.getObject(mobile) == "" ){
                            return sendMessage(mobile,content,username,tokenValue);
                        }else{
                            writeLog("用户手机号:"+mobile+"无需发送提醒!");
                            return false;
                        } // 判断短信维护人员结束

                    }else{
                        writeLog("打印缓存令牌过期时间:"+staticObj.getObject("expireTime"));
                        // 清楚原先缓存中的令牌数据
                        staticObj.removeObject("accessToken");
                        staticObj.removeObject("expireTime");

                        // 重新获取令牌  获取令牌请求
                        Map<String,String> tokenValue = addCache();//this.getToken(getUrlToken(),map);
                        //writeLog("打印存储后从缓存那里取的数据:"+staticObj.getObject("accessToken")+"  过期时间:"+staticObj.getObject("expireTime")+"  用户名:"+username+"   令牌:"+tokenValue);


                        // 判断短信维护人员
                        if(mobileObj.getObject(mobile) == null || mobileObj.getObject(mobile) == "" ){
                            return sendMessage(mobile,content,username,tokenValue);
                        }else{
                            writeLog("用户手机号:"+mobile+"无需发送提醒!");
                            return false;
                        } // 判断短信维护人员结束
                    }

                }else{
                    // 重新获取令牌  获取令牌请求
                    writeLog("打印未缓存令牌:"+staticObj.getObject("expireTime"));
                    Map<String,String> tokenValue = addCache();//this.getToken(getUrlToken(),map);

                    //writeLog("打印存储后从缓存那里取的数据:"+staticObj.getObject("accessToken")+"  过期时间:"+staticObj.getObject("expireTime")+"  用户名:"+username+"   令牌:"+tokenValue);

                    // 判断短信维护人员
                    if(mobileObj.getObject(mobile) == null || mobileObj.getObject(mobile) == "" ){
                        return sendMessage(mobile,content,username,tokenValue);
                    }else{
                        writeLog("用户手机号:"+mobile+"无需发送提醒!");
                        return false;
                    } // 判断短信维护人员结束
                }



        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            writeLog(""+e.toString());
            return false;
        }


    }




    public static void main(String args[]) throws Exception {


        Map<String,String > keyValue = new HashMap<String,String>();
        keyValue.put("ss1","ss11");
        keyValue.put("ss2","ss12");
        keyValue.put("ss3","ss13");

        for(String key:keyValue.keySet()) {
            String parma = Util.null2String((key));
            System.out.println(parma+"  打印数据   "+keyValue.get(key));
        }
    }





    /**
     * 获取令牌
     * @param urlstr 链接
     * @param map  账号、密码
     * @return 令牌值
     */
    public Map<String,String> getToken(String urlstr,Map<String,String> map){
        try {
            JSONObject jsonstr = JSONObject.fromObject(map);
            Map<String,String> nullMap = new HashMap<String, String>();
            // 获取到短信接口的令牌
            String value = this.sendConn(urlstr,jsonstr,nullMap);;
   
            JSONObject json1=JSONObject.fromObject(value);
            Map<String, Object> jsonMap =json1;
            //writeLog("获取令牌服务器返回值:"+jsonMap);
            Map<String,String> resultMap = (Map<String, String>) jsonMap.get("result");

            return resultMap;
        }catch (Exception e ){
            e.getMessage();
        }
        return  null;
    }


    /**
     *  发送短信方法
     * @param urlstr 链接
     * @param json  标题、用户名
     * @param map2 令牌响应头
     * @return 状态
     */
    public Map<String,Object> sendMessages(String urlstr, JSONObject json , Map<String,String> map2){
        try {
            // 获取到短信接口的令牌
            String value = this.sendConn(urlstr,json,map2);
         
            JSONObject json1=JSONObject.fromObject(value);
            Map<String, Object> jsonMap =json1;
            writeLog("发送短信服务器返回值:"+jsonMap);
            Map<String,String> resultMap = (Map<String, String>) jsonMap.get("result");

            return jsonMap;
        }catch (Exception e ){
            e.getMessage();
        }
        return  null;
    }



    /**
     * post提交http接口
     *
     * @param url
     * @param obj
     * @param map
     * @return result
     * @throws Exception
     */
    public String sendConn(String url, JSONObject obj,Map<String,String> map) throws Exception {

        org.apache.http.client.HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(url);
        //DefaultHttpClient client = new DefaultHttpClient();

        post.setHeader("Content-Type", "application/json");
        post.setHeader("Accept", "application/json");
        // 判断令牌是否为空,如果为空就直接获取令牌,有就在响应头塞入令牌
        if(map!=null && map.size()>0){
            String authorization = map.get("accessToken");
            post.setHeader("Authorization", "bearer "+authorization);
        }

        String result = "";

        try {

            StringEntity s = new StringEntity(obj.toString(), "utf-8");
            s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                    "application/json"));
            post.setEntity(s);

            // 发送请求
            //client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,1000);//超时时间毫秒
            HttpResponse httpResponse = client.execute(post);

            // 获取响应输入流
            InputStream inStream = httpResponse.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    inStream, "utf-8"));
            StringBuilder strber = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null)
                strber.append(line + "\n");
            inStream.close();

            result = strber.toString();
            writeLog("result:"+result);

            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                writeLog("请求服务器成功,做相应处理");
            } else {
                writeLog("请求服务端失败");
            }
        } catch (Exception e) {
            writeLog("请求异常");
            throw new RuntimeException(e);
        }

        return result;
    }


    /**
     * 添减时间
     * @param date  日期
     * @param daySum  添加的小时
     * @return  添加的时间
     */
    public   String addDTime(String date,int daySum)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dt = null;
        try {
            dt = sdf.parse(date);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Calendar rightNow = Calendar.getInstance();
        rightNow.setTime(dt);
        rightNow.add(Calendar.MILLISECOND, daySum);
        Date dt1 = rightNow.getTime();
        String reStr = sdf.format(dt1);
        return reStr;
    }


    /**
     * 发送短信
     * @param mobile 手机号
     * @param content 短信内容
     * @param userName 用户名
     * @param tokenValue 令牌
     */
    public boolean sendMessage(String mobile,String content,String userName,Map<String,String> tokenValue) throws Exception {
        // 发送时间  默认1分钟后发送
        String sendTime = this.addDTime(currentTime, Integer.parseInt(getSendTimeSecond())*1000);
        //writeLog("五分钟后:"+sendTime);
        // 默认明天早上8点发送时间
        String defaultSendTime = dateFormat2.format(new Date());
        defaultSendTime = defaultSendTime+" 08:00:00";
        defaultSendTime = this.addDTime(defaultSendTime, 86400*1000);


        /*
         *  判断发送人员的身份状态
         * */
        String status_sql="select status from HRMRESOURCE where mobile='"+mobile+"'  ";
        RecordSet rs=new RecordSet();
        rs.executeSql(status_sql);
        rs.next();
        String status=Util.null2String(rs.getString("status"));
        writeLog("status:"+status);
        if(status != null && status != "") {
            int count = Integer.parseInt(status);
            boolean b = count < 4 && count >= 0 ? true : false;
            if (b) {
                // 发送内容
                // 下面注释的是List集合和Map集合的值,原生
                // List<Map<String , String>> dataList = new ArrayList<Map<String , String>>();
                // Map<String,String> contentMap = new HashMap<String, String>();
                // 用JSON方法进行封装
                //JSONArray dataList = new JSONArray();
                //JSONObject contentMap = new JSONObject();
                List<Map<String , String>> dataList = new ArrayList<Map<String , String>>();
                LinkedHashMap<String,String> contentMap = new LinkedHashMap<String, String>();
                contentMap.put("templateCode",String.valueOf(getTemplateCode())); // 模板
                LinkedHashMap<String,String> templateParamtersMap = new LinkedHashMap<String, String>();
                templateParamtersMap.put("FlowName",content);
                templateParamtersMap.put("UserName",userName);


                // 发送内容
                contentMap.put("templateParamters",JSONObject.fromObject(templateParamtersMap).toString());
                contentMap.put("receiver",mobile);
                contentMap.put("setSendTime",sendTime);
                contentMap.put("businessCode","费用系统短信提醒");
                contentMap.put("receiverType","0"); // 手机号码
                dataList.add(contentMap);



                //Map<String,String> dataMap = new HashMap<String, String>();
                JSONObject dataMap = new JSONObject();
                dataMap.put("smsMessageList",dataList);
                writeLog("短信拼接json数据:"+dataMap);

                // 立即发送短信
                Map<String,Object> statesMap = this.sendMessages(getUrlstr(),dataMap,tokenValue);
                //System.out.println("返回值是否成功:"+statesMap.get("result"));

                writeLog("短信发送返回值:"+statesMap.toString());
                if("true".equals(statesMap.get("success").toString())){
                    writeLog("短信调用成功:true");
                    return true;
                }else{
                    writeLog("短信调用失败:false");
                    return false;
                }



            }else {
                writeLog("该人员已离职");
                return false;
            }
        } else {
            writeLog("找不到该人员的号码");
            return false;
        }



    }


    /**
     * 令牌为空或过期,缓存令牌存储
     * @return  缓存
     */
    public   Map<String,String> addCache()
    {
        // 缓存手机号码
        mobileCache();

        Map<String,String> tokenValue = new HashMap<String, String>();
        writeLog("开始缓存令牌");
        Map<String,String> map = new HashMap<String,String>();
        map.put("userNameOrEmailAddress",String.valueOf(getUserNameOrEmailAddress()));
        map.put("password",String.valueOf(getPassword()));
        // 获取令牌
        tokenValue = this.getToken(getUrlToken(),map);

        staticObj.putObject("accessToken",tokenValue.get("accessToken"));
        String expireInSeconds = String.valueOf(tokenValue.get("expireInSeconds"));
        int expireInSecondsInt = Integer.parseInt(expireInSeconds);
        // 默认过期时间1天  expireInSecondsInt*999
        String expireInSecondsTime = this.addDTime(currentTime,  (expireInSecondsInt*998));
        // 缓存进过期时间
        staticObj.putObject("expireTime",expireInSecondsTime);

        return tokenValue;
    }

    /**
     * 如手机号码存在缓存中,不发送短信
     * @return 缓存对象
     */
    public boolean mobileCache(){
        staticObj.clearRecord(); // 清除缓存

        rs.execute("select sjh,yh from uf_dxfsyw");
        //staticObj.removeObject("expireTime");
        while(rs.next()){
            mobileObj.putObject(Util.null2String(rs.getString(1)),Util.null2String(rs.getString(2)));
        }
        return  true;
    }


	/*
		//sms.sendSMS("", mobile, "提交纸质单据提醒:您的流程已通过纸质单据:"+requestName+"");
		map.put("key1", "您的流程已通过财务二审");
		map.put("key2", requestName);
		rsms.sendFinanceSms(mobile, "SMS_191832394", map);

	 */

    /**
     *
     * 提供其他接口调用的短信接口方法
     * 参数:
     * - mobile 手机号,
     * - templateCode 模板号,
     * - keyValue 参数和值:
     *    - key1:1
     *    - key2:2
     *    - ...
     */
    public boolean sendFinanceSms(String mobile,String templateCode,Map<String,String> keyValue) throws Exception {
        // 下面获取到token令牌
        //writeLog(getUrlToken()+"  url:"+getUrlstr()+"    密码:"+getPassword()+"   用户:"+getUserNameOrEmailAddress()+"   发送秒:"+getSendTimeSecond()+"     模板代码:"+getTemplateCode() +"    用户名称:"+getUsername() );
        currentTime = dateFormat.format(new Date());
        Map<String,String> tokenValue = new HashMap<String, String>();
        if(staticObj.getObject("accessToken") != null){
            writeLog("打印缓存不为空");
            Date currentData = dateFormat.parse(currentTime);
            Date expireData = dateFormat.parse(staticObj.getObject("expireTime").toString());
            boolean b = currentData.before(expireData); // 判断当前时间是否在这之前
            writeLog("打印缓存时间"+expireData);
            // 判断时间是否过期
            if(b) {

                writeLog("打印缓存令牌未过期时间:" + staticObj.getObject("expireTime"));
                // 把令牌存储到Map中用于发送短信
                tokenValue.put("accessToken",staticObj.getObject("accessToken").toString());
            }else{
                writeLog("打印缓存令牌过期时间:" + staticObj.getObject("expireTime"));
                // 清楚原先缓存中的令牌数据
                staticObj.removeObject("accessToken");
                staticObj.removeObject("expireTime");

                // 缓存过期,缓存改造
                tokenValue = addCache();

            }

        } else{
            writeLog("打印缓存令牌为空");
            // 缓存过期,缓存改造
            tokenValue = addCache();

        }

        writeLog("打印缓存令牌数据"+tokenValue.toString());

        // 处理业务逻辑
        // 发送时间 默认一分钟后发送
        String sendTime = this.addDTime(currentTime, Integer.parseInt(getSendTimeSecond())*1000); //


        // 发送内容
        // 下面注释的是List集合和Map集合的值,原生
        // List<Map<String , String>> dataList = new ArrayList<Map<String , String>>();
        // Map<String,String> contentMap = new HashMap<String, String>();
        // 用JSON方法进行封装
        //JSONArray dataList = new JSONArray();
        //JSONObject contentMap = new JSONObject();
        List<Map<String , String>> dataList = new ArrayList<Map<String , String>>();
        LinkedHashMap<String,String> contentMap = new LinkedHashMap<String, String>();
        contentMap.put("templateCode",templateCode); // 模板
        LinkedHashMap<String,String> templateParamtersMap = new LinkedHashMap<String, String>();
        RecordSet rs = new RecordSet();
        String sql = "select * from uf_smsinfor where template='"+templateCode+"'";
        rs.executeSql(sql);
        rs.next();
        for(String key:keyValue.keySet()) {
            String parma = Util.null2String(rs.getString(key));
            templateParamtersMap.put(parma,keyValue.get(key));
        }
        //templateParamtersMap.put("content",content);
        //templateParamtersMap.put("requestName",userName);



        contentMap.put("templateParamters",JSONObject.fromObject(templateParamtersMap).toString());  // 发送内容
        contentMap.put("receiver",mobile);
        contentMap.put("setSendTime",sendTime);
        contentMap.put("businessCode","系统短信提醒");
        contentMap.put("receiverType","0"); // 手机号码
        dataList.add(contentMap);



        //Map<String,String> dataMap = new HashMap<String, String>();
        JSONObject dataMap = new JSONObject();
        dataMap.put("smsMessageList",dataList);
        writeLog("短信拼接json数据:"+dataMap);

        // 立即发送短信
        Map<String,Object> statesMap = this.sendMessages(getUrlstr(),dataMap,tokenValue);
        //System.out.println("返回值是否成功:"+statesMap.get("result"));

        writeLog("短信发送返回值:"+statesMap.toString());
        if("true".equals(statesMap.get("success").toString())){
            writeLog("短信调用成功:true");
            return true;
        }else{
            writeLog("短信调用失败:false");
            return false;
        }


    }

}

三、前端页面jsp设置缓存

设置缓存是为了一些特殊人员不发送短信

泛微rest接口 泛微接口开发_泛微rest接口_02


SMSExpireTimeTest.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@page import="weaver.general.*,weaver.hrm.*,weaver.interfaces.swfa.AmountUtil,java.text.SimpleDateFormat"%>
<%@ page import="weaver.interfaces.FL.workflow.action.HW_SyncAutoSubmitForHWTSFYLC" %>
<%@ page import="weaver.soa.workflow.request.RequestInfo" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.soa.workflow.request.RequestService" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="weaver.systeminfo.template.UserTemplate" %>
<%@ page import="com.sso.fl.CWSSOServlet" %>
<%@ page import="weaver.login.VerifyLogin" %>
<%@ page import="weaver.soa.workflow.request.DetailTable" %>
<%@ page import="weaver.login.Account" %>
<%@ page import="weaver.sms.RSMFLSms" %>
<%@ page import="java.util.*" %>

<script type="text/javascript" src="/wui/common/jquery/jquery.min_wev8.js"></script>

<script>

    function addCacheUser(){

        var idVal = document.getElementById("id").value;
        var sjhVal = document.getElementById("sjh").value;
        //获取剩余二级科目金额
        jQuery.ajax({
            type: 'post',
            url: "/interface/js/AjaxData.jsp?t=" + new Date().getTime(),
            data: {"idVal": idVal, "sjhVal": sjhVal, "option": "cacheMobile"},
            async:true,
            success:function(result){
                var res = eval("("+result+")");
                if (res.status == "true" ) {
                    window.location.reload();
                } else {
                    alert("添加更新失败");
                }
            }
        })

    }


    function deleteCacheUser(){
        /*var idVal=$("#id").val;
        var sjhVal=$("#sjh").val;*/
        var idVal = document.getElementById("id_d").value;
        var sjhVal = document.getElementById("sjh_d").value;
        //获取剩余二级科目金额
        jQuery.ajax({
            type: 'post',
            url: "/interface/js/AjaxData.jsp?t=" + new Date().getTime(),
            data: {"idVal": idVal, "sjhVal": sjhVal, "option": "cacheRemoveMobile"},
            async:true,
            success:function(result){
                var res = eval("("+result+")");
                //alert("json解析后:"+res.status)
                if (res.status == "true") {
                    window.location.reload();
                } else {
                    alert("删除缓存失败");
                }
            }
        })

    }

</script>


<form  id="addForm" method="post" action="<%="/FL/SMSExpireTimeTest.jsp"%>">
    请先维护短信不发送人员运维表后再填写信息,添加进缓存。温馨提示:如有更新成功请20秒后刷新页面,是否有null未缓存,如有请重新缓存。
    <br>
    手机号:<input type="text" placeholder="手机号"  id="sjh" name="sjh"/>
    用户id:<input type="text" placeholder="用户id"  id="id" name="id"/>
    <input type="button" value="添加" onclick="addCacheUser()">
</form>

<br>

<form  id="addForm" method="post" action="<%="/FL/SMSExpireTimeTest.jsp"%>">
    输入手机号,用户id删除缓存。
    <br>
    手机号:<input type="text" placeholder="手机号"  id="sjh_d" name="sjh"/>
    用户id:<input type="text" placeholder="用户id"  id="id_d" name="id"/>
    <input type="button" value="删除" onclick="deleteCacheUser()">
</form>


<%





    RSMFLSms rsmflSms = new RSMFLSms();
    // 缓存对象
    StaticObj staticObj =StaticObj.getInstance();
    // 不发送短信手机号缓存
    StaticObj mobileObj = StaticObj.getInstance();

   /* rst.writeLog("打印过期时间:"+staticObj.getObject("expireTime").toString());
    rst.writeLog("打印令牌:"+staticObj.getObject("accessToken").toString());*/


    out.println("发送时间秒:"+rsmflSms.getPassword());
    out.print("<br>");
    out.println("打印过期时间:"  +staticObj.getObject("expireTime").toString());
    out.print("<br>");
    out.println("打印令牌:"+staticObj.getObject("accessToken").toString());
    out.print("<br>");
    out.println("---------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>打印不发送短信提醒人员<<<<<<<<<<<<<<<<<<<<<<<<<<<--------------------------");
    out.print("<br>");
    // 打印缓存人员
    RecordSet rs = new RecordSet();
    RecordSet rs1 = new RecordSet();
    String userName = "";
    String sql = "";
    /**
     * 如手机号码存在缓存中,不发送短信
     * @return 缓存对象
     */
    int i = 1;
    rs.execute("select sjh,yh from uf_dxfsyw");
    //staticObj.removeObject("expireTime");
    while(rs.next()){

        sql = "select lastname from hrmresource where id="+mobileObj.getObject(Util.null2String(rs.getString(1)));
        rs1.executeSql(sql);
        rs1.next();
        userName = Util.null2String(rs1.getString(1));

        out.print("打印第"+i+"条缓存不发送短信提醒---手机号:"+Util.null2String(rs.getString(1))+"---用户名:"+userName  +"---用户id:"+mobileObj.getObject(Util.null2String(rs.getString(1))));
        out.print("<br>");
        i++;
    }







    /*// 短信不发送人员添加缓存 add by lzt 2021-02-25
    if ("cacheMobile".equals(option)) {
        String idVal = Util.null2String(request.getParameter("idVal")); // 用户id
        String sjhVal = Util.null2String(request.getParameter("sjhVal")); // 手机号
        boolean status = false;

        if (!"".equals(sjhVal)) {
            // 不发送短信手机号缓存
            StaticObj mobileObj = StaticObj.getInstance();
             mobileObj.removeObject(sjhVal);
            mobileObj.putObject(sjhVal,idVal);
            status = true;
        }
        returnstr = "{'status':'" + status + "'}";
    }

    // 短信不发送人员删除缓存 add by lzt 2021-02-25
    if ("cacheRemoveMobile".equals(option)) {
        String idVal = Util.null2String(request.getParameter("idVal")); // 用户id
        String sjhVal = Util.null2String(request.getParameter("sjhVal")); // 手机号
        boolean status = false;

        if (!"".equals(sjhVal)) {
            // 不发送短信手机号缓存
            StaticObj mobileObj = StaticObj.getInstance();
            if( mobileObj.getObject(sjhVal) != null || mobileObj.getObject(sjhVal) != ""){
                mobileObj.removeObject(sjhVal);
                status = true;
            }

        }
        returnstr = "{'status':'" + status + "'}";
    }*/



%>