⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notify_daily.jsp

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 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 + -