📄 notify_daily.jsp
字号:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<jsp:directive.page import="cn.jsprun.utils.BeanFactory" />
<jsp:directive.page import="cn.jsprun.utils.Mail" />
<jsp:directive.page import="cn.jsprun.utils.DataParse" />
<jsp:directive.page import="cn.jsprun.utils.ForumInit" />
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="cn.jsprun.utils.Common"%>
<%@page import="cn.jsprun.dao.CronsDao"%>
<%@page import="java.sql.Connection"%>
<%!
private String tablepre = "jrun_";
private CronsDao cronsDao = ((CronsDao)BeanFactory.getBean("cronsSetDao"));
private DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
%>
<%
int timestamp=(Integer)request.getAttribute("timestamp");
Connection connection = (Connection)request.getAttribute("connection");
Map<String,String> settings=ForumInit.settings;
Float timeoffset = Float.valueOf(settings.get("timeoffset"));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd : HH:mm");
String bbname =settings.get("bbname");
String boardurl = (String)session.getAttribute("boardurl");
List<Map<String, String>> subscriptions = cronsDao.executeQuery(connection,"SELECT t.tid, t.subject, t.author, t.lastpost, t.lastposter, t.views, t.replies, m.username, m.email FROM "+ tablepre+ "subscriptions s, "+ tablepre+ "members m, "+ tablepre+ "threads t WHERE s.lastpost>s.lastnotify AND m.uid=s.uid AND t.tid=s.tid");
if (subscriptions != null && subscriptions.size() > 0) {
Map<String,String> mails=dataParse.characterParse(settings.get("mail"), false);
Mail mail=new Mail(mails);
for(Map<String, String> subscription:subscriptions){
String context = "\n您好,\n这封信是由 "+bbname+" 发送的。\n\n您收到这封邮件,是因为您订阅的以下主题在最近 24 小时内有了新的回复。\n如果您并没有访问过我们的论坛,或没有进行上述操作,请忽略这封邮件。\n您不需要退订或进行其他进一步的操作。\n\n----------------------------------------------------------------------\n主题信息\n----------------------------------------------------------------------\nURL: "+boardurl+"viewthread.jsp?tid="+subscription.get("tid")+"\n标题: "+subscription.get("subject")+"\n作者: "+subscription.get("author")+"\n查看: "+subscription.get("views")+"\n回复: "+subscription.get("replies")+"\n\n该主题最近一次由 "+subscription.get("lastposter")+" 于 "+Common.gmdate(dateFormat,Integer.parseInt(subscription.get("lastpost")),timeoffset)+" 回复。\n\n您订阅的主题可能有更多的回复,为了不影响您信箱的正常使用,我们每 24小时至多只会发送一次新回复通知,在此期间如果有新回复,将在下次一并通知。\n\n\n\n\n此致\n"+bbname+" 管理团队.\n"+boardurl;
mail.sendMessage(mails.get("from"),subscription.get("username")+" <"+subscription.get("email")+">","《" + subscription.get("subject") + "》新回复通知",context,null);
}
}
cronsDao.execute(connection,"UPDATE "+tablepre+"subscriptions SET lastnotify='"+timestamp+"' WHERE lastpost>lastnotify");
RequestDispatcher dispatcher = request.getRequestDispatcher("/include/crons/setNextrun.jsp");
try {
dispatcher.include(request, response);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,String> crons = (Map<String,String>)request.getAttribute("crons");
if("0".equals(crons.get("available"))){
cronsDao.execute(connection,"UPDATE "+tablepre+"crons SET available='0' WHERE cronid="+crons.get("cronid"));
}else{
cronsDao.execute(connection,"UPDATE "+tablepre+"crons SET lastrun='"+timestamp+"',nextrun='"+crons.get("nextrun")+"' WHERE cronid="+crons.get("cronid"));
}
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -