我参与了学校java兴趣小组,任务是二次开发完善图书管理系统,该项目使用的是SSH框架.目前这个项目仍在母校上使用.在这个项目中我主要负责学生借书期限快过期与已过期的邮件提醒模块.由于保密协议,所以代码拿不出来.那我就简单说一下我负责模块吧.因为如今我校很多学生借书后逾期没还,或者忘还,导致校园卡上由于还书原因出现巨额欠款.所以我校图书馆开发此业务用于提醒学生按期还书.
先说一下我使用的提醒检测需要还书的模块:首先周二,周四,周六早上9:00,会检测图书馆所有用户是否正在借书,再条件筛选还书时间距离今天9:00少于2天甚至逾期没还的,记录该用户id和该还书的id,最后检测完后,会统一发邮件提醒该还书的用户.
具体细节,发邮件前准备的类有两个,第一个是MailUtil,用来定义发邮件的方法,参数有收件人,短信内容,主题,第二个是MailDetail,用来注入quartz任务工厂,执行定时任务,当然,定时周期为隔一天的上午9:00
举个例子,比如现在是周二上午9:00,MailDetail所注入的任务工厂执行定时任务,第一步创建一个map的集合,用来存放需要发短信的用户,key是用户id.User里面有一个属性List returnBook,用来存放需要还的书.当遍历完所有用户后,开始向需要发短信的用户发信息
遍历map集合,开启线程,调用MailUtil中sendEmail()的方法,传入参数,收件人为用户的email,短信内容为用户需要还的所有书名,主题是还书提醒,发送下一个用户前,睡眠一秒,保证线程安全