一、例图
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设置缓存
设置缓存是为了一些特殊人员不发送短信
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 + "'}";
}*/
%>